#pragma once #include #include 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 TQString iconName() const = 0; virtual Category category() const = 0; virtual int volume() const = 0; // 0-100 virtual bool muted() const = 0; virtual int pan() const = 0; // -50 (left) .. 0 .. +50 (right) virtual void setVolume( int v ) = 0; virtual void setMuted( bool m ) = 0; virtual void setPan( int p ) = 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 panChanged( int p ); void levelChanged( float level ); void nameChanged( const TQString &name ); void recordingActiveChanged( bool active ); };