view base/Thread.h @ 391:5858cc462d0a

* Fix #1628781 changes to layer visibility and mute should use a command * Also use a command for changes to layer playback pan, gain, plugin settings * Refactor PlayParameterRepository to remove dependency on audioio from base * Fix failure to save play parameters for main model in session file
author Chris Cannam
date Thu, 13 Mar 2008 14:06:03 +0000
parents 85bf384db35f
children 183ee2a55fc7
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

/*
    Sonic Visualiser
    An audio file viewer and annotation editor.
    Centre for Digital Music, Queen Mary, University of London.
    This file copyright 2006 Chris Cannam.
    
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.  See the file
    COPYING included with this distribution for more information.
*/

#ifndef _THREAD_H_
#define _THREAD_H_

#include <QThread>
#include <QMutexLocker>

class Thread : public QThread
{
Q_OBJECT

public:
    enum Type { RTThread, NonRTThread };

    Thread(Type type = NonRTThread, QObject *parent = 0);

public slots:
    void start();

private:    
    Type m_type;
};


class MutexLocker
{
public:
    MutexLocker(QMutex *mutex, const char *name);
    ~MutexLocker();

private:
    class Printer {
    public:
        Printer(const char *name);
        ~Printer();

    private:
        const char *m_name;
    };

    Printer m_printer;
    QMutexLocker m_locker;
};

#endif