diff options
Diffstat (limited to 'src/model/audiodevice.h')
| -rw-r--r-- | src/model/audiodevice.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/model/audiodevice.h b/src/model/audiodevice.h new file mode 100644 index 0000000..e753fc9 --- /dev/null +++ b/src/model/audiodevice.h @@ -0,0 +1,38 @@ +#pragma once + +#include <tqobject.h> +#include <tqstring.h> + +class TQWidget; + +class AudioDevice : public TQObject +{ + TQ_OBJECT + +public: + enum Category { + Output, // sinks, hardware output + Input, // sources, hardware input + Playback, // sink inputs (per-app playback streams) + Recording, // source outputs (per-app recording streams) + }; + + AudioDevice( TQObject *parent = 0 ) : TQObject(parent) {} + virtual ~AudioDevice() {} + + virtual TQString name() const = 0; + virtual Category category() const = 0; + + virtual int volume() const = 0; // 0-100 + virtual bool muted() const = 0; + virtual void setVolume( int v ) = 0; + virtual void setMuted( bool m ) = 0; + + // Creates the widget for this device. Caller takes ownership. + virtual TQWidget *createWidget( TQWidget *parent ) = 0; + +signals: + void volumeChanged( int v ); + void muteChanged( bool m ); + void nameChanged( const TQString &name ); +}; |
