You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/kmix/mixer_alsa.h

61 lines
1.5 KiB

#ifndef MIXER_ALSA_H
#define MIXER_ALSA_H
// QT includes
#include <tqvaluelist.h>
// Forward QT includes
class TQString;
class TQSocketNotifier;
#include "mixer_backend.h"
class Mixer_ALSA : public Mixer_Backend
{
public:
Mixer_ALSA( int device = -1 );
~Mixer_ALSA();
virtual int readVolumeFromHW( int devnum, Volume &vol );
virtual int writeVolumeToHW( int devnum, Volume &vol );
virtual bool setRecsrcHW( int devnum, bool on);
virtual bool isRecsrcHW( int devnum );
virtual void setEnumIdHW(int mixerIdx, unsigned int);
virtual unsigned int enumIdHW(int mixerIdx);
virtual bool prepareUpdateFromHW();
virtual bool needsPolling() { return false; }
virtual void prepareSignalling( Mixer *mixer );
protected:
virtual int open();
virtual int close();
private:
int identify( snd_mixer_selem_id_t *sid );
snd_mixer_elem_t* getMixerElem(int devnum);
void removeSignalling();
virtual TQString errorText(int mixer_error);
typedef TQValueList<snd_mixer_selem_id_t *>AlsaMixerSidList;
AlsaMixerSidList mixer_sid_list;
typedef TQValueList<snd_mixer_elem_t *> AlsaMixerElemList; // !! remove
AlsaMixerElemList mixer_elem_list; // !! remove
bool _initialUpdate;
snd_mixer_t *_handle;
TQString devName;
struct pollfd *m_fds;
TQSocketNotifier **m_sns;
int m_count;
};
class ALSA_DevIterator : public DevIterator
{
public:
ALSA_DevIterator();
virtual void next();
};
#endif