blob: 0d73dc774783fa52aca7790eef75d3fd05f21acb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#ifndef MIXER_ALSA_H
#define MIXER_ALSA_H
// QT includes
#include <qvaluelist.h>
// Forward QT includes
class QString;
class QSocketNotifier;
#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 QString errorText(int mixer_error);
typedef QValueList<snd_mixer_selem_id_t *>AlsaMixerSidList;
AlsaMixerSidList mixer_sid_list;
typedef QValueList<snd_mixer_elem_t *> AlsaMixerElemList; // !! remove
AlsaMixerElemList mixer_elem_list; // !! remove
bool _initialUpdate;
snd_mixer_t *_handle;
QString devName;
struct pollfd *m_fds;
QSocketNotifier **m_sns;
int m_count;
};
class ALSA_DevIterator : public DevIterator
{
public:
ALSA_DevIterator();
virtual void next();
};
#endif
|