summaryrefslogtreecommitdiff
path: root/libopie2/opiemm/osoundsystem.h
Side-by-side diff
Diffstat (limited to 'libopie2/opiemm/osoundsystem.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/osoundsystem.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/libopie2/opiemm/osoundsystem.h b/libopie2/opiemm/osoundsystem.h
index 3c3b622..bd69114 100644
--- a/libopie2/opiemm/osoundsystem.h
+++ b/libopie2/opiemm/osoundsystem.h
@@ -41,193 +41,192 @@ namespace MM {
class OAudioInterface;
class OMixerInterface;
class OSoundCard;
/*======================================================================================
* OSoundSystem
*======================================================================================*/
/**
* @brief A container class for all audio interfaces
*
* This class provides access to all available audio/midi/sequencer interfaces of your computer.
*
* @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
*/
class OSoundSystem : public QObject
{
Q_OBJECT
public:
typedef QDict<OSoundCard> CardMap;
typedef QDictIterator<OSoundCard> CardIterator;
public:
/**
* @returns the number of available interfaces
*/
int count() const;
/**
* @returns a pointer to the (one and only) @ref ONetwork instance.
*/
static OSoundSystem* instance();
/**
* @returns an iterator usable for iterating through all network interfaces.
*/
CardIterator iterator() const;
/**
* @returns a pointer to the @ref OAudioInterface object for the specified @a interface or 0, if not found
* @see OAudioInterface
*/
OSoundCard* card( const QString& interface ) const;
/**
* @internal Rebuild the internal interface database
* @note Sometimes it might be useful to call this from client code,
* e.g. after issuing a cardctl insert
*/
void synchronize();
protected:
OSoundSystem();
private:
static OSoundSystem* _instance;
CardMap _interfaces;
class Private;
Private *d;
};
/*======================================================================================
* OSoundCard
*======================================================================================*/
class OSoundCard : public QObject
{
Q_OBJECT
public:
/**
* Constructor. Normally you don't create @ref OSoundCard objects yourself,
* but access them via @ref OSoundSystem::card().
*/
OSoundCard( QObject* parent, const char* name );
/**
* Destructor.
*/
virtual ~OSoundCard();
bool hasMixer() const { return _audio; };
bool hasAudio() const { return _mixer; };
OAudioInterface* audio() const { return _audio; };
OMixerInterface* mixer() const { return _mixer; };
protected:
OAudioInterface* _audio;
OMixerInterface* _mixer;
private:
void init();
private:
class Private;
Private *d;
};
/*======================================================================================
* OAudioInterface
*======================================================================================*/
class OAudioInterface : public QObject
{
Q_OBJECT
public:
/**
* Constructor. Normally you don't create @ref OAudioInterface objects yourself,
* but access them via the @ref OSoundCard interface.
*/
OAudioInterface( QObject* parent, const char* name );
/**
* Destructor.
*/
virtual ~OAudioInterface();
protected:
const int _sfd;
private:
void init();
private:
class Private;
Private *d;
};
/*======================================================================================
* OMixerInterface
*======================================================================================*/
class OMixerInterface : public QObject
{
Q_OBJECT
public:
typedef QMap<QString,int>::ConstIterator ChannelIterator;
/**
* Constructor. Normally you don't create @ref OMixerInterface objects yourself,
* but access them via the @ref OSoundCard interface.
*/
OMixerInterface( QObject* parent, const char* name );
/**
* Destructor.
*/
virtual ~OMixerInterface();
/**
* @returns all available channels.
*/
QStringList allChannels() const;
/**
* @returns recordable channels.
*/
QStringList recChannels() const;
/**
* @returns playable channels.
*/
QStringList playChannels() const;
/**
* @returns true, if @a channel exists.
*/
bool hasChannel( const QString& channel );
/**
* Set the @a left and @a right volumes for @a channel.
* If no value for right is given, the value for left is taken for that.
*/
void setVolume( const QString& channel, int left, int right = -1 );
/**
* @returns the volume of @a channel or -1, if the channel doesn't exist.
* @note You might want to use @ref hasChannel() to check if a channel exists.
*/
int volume( const QString& channel ) const;
protected:
int _fd;
QMap<QString, int> _channels;
private:
void init();
private:
class Private;
Private *d;
};
}
}
#endif // OSOUNDSYSTEM_H
-