40 |
*/ |
*/ |
41 |
class AudioOutputDeviceAlsa : public AudioOutputDevice, protected Thread { |
class AudioOutputDeviceAlsa : public AudioOutputDevice, protected Thread { |
42 |
public: |
public: |
43 |
AudioOutputDeviceAlsa(std::map<String,String> Parameters); |
AudioOutputDeviceAlsa(std::map<String,DeviceCreationParameter*> Parameters); |
44 |
~AudioOutputDeviceAlsa(); |
~AudioOutputDeviceAlsa(); |
45 |
|
|
46 |
// derived abstract methods from class 'AudioOutputDevice' |
// derived abstract methods from class 'AudioOutputDevice' |
53 |
|
|
54 |
virtual String Driver(); |
virtual String Driver(); |
55 |
|
|
56 |
|
static String Name(); |
57 |
|
|
58 |
static String Description(); |
static String Description(); |
59 |
static String Version(); |
static String Version(); |
60 |
|
|
|
static std::map<String,DeviceCreationParameter*> AvailableParameters(); |
|
|
|
|
61 |
class ParameterCard : public DeviceCreationParameterString { |
class ParameterCard : public DeviceCreationParameterString { |
62 |
public: |
public: |
63 |
ParameterCard(AudioOutputDevice* pDevice) { this->pDevice = pDevice; InitWithDefault();} |
ParameterCard( void ) : DeviceCreationParameterString () { InitWithDefault(); } |
64 |
ParameterCard(AudioOutputDevice* pDevice, String card) throw (LinuxSamplerException) : DeviceCreationParameterString(card) { this->pDevice = pDevice; } |
ParameterCard( String s ) : DeviceCreationParameterString (s) {} |
65 |
virtual String Description() { return "Sound card to be used"; } |
virtual String Description() { return "Sound card to be used"; } |
66 |
virtual bool Fix() { return true; } |
virtual bool Fix() { return true; } |
67 |
virtual bool Mandatory() { return false; } |
virtual bool Mandatory() { return false; } |
69 |
virtual optional<String> Default(std::map<String,String> Parameters) { return "0,0"; /* first card by default */ } |
virtual optional<String> Default(std::map<String,String> Parameters) { return "0,0"; /* first card by default */ } |
70 |
virtual std::vector<String> PossibilitiesAsString(std::map<String,String> Parameters) { return std::vector<String>(); /*TODO: return possible cards*/ } |
virtual std::vector<String> PossibilitiesAsString(std::map<String,String> Parameters) { return std::vector<String>(); /*TODO: return possible cards*/ } |
71 |
virtual void OnSetValue(String s) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
virtual void OnSetValue(String s) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
72 |
protected: |
static String Name( void ) { return "card"; } |
|
AudioOutputDevice* pDevice; |
|
73 |
}; |
}; |
74 |
|
|
75 |
class ParameterFragments : public DeviceCreationParameterInt { |
class ParameterFragments : public DeviceCreationParameterInt { |
76 |
public: |
public: |
77 |
ParameterFragments(AudioOutputDevice* pDevice) { this->pDevice = pDevice; InitWithDefault();} |
ParameterFragments( void ) : DeviceCreationParameterInt () { InitWithDefault(); } |
78 |
ParameterFragments(AudioOutputDevice* pDevice, String val) throw (LinuxSamplerException) : DeviceCreationParameterInt(val) { this->pDevice = pDevice; } |
ParameterFragments( String s ) : DeviceCreationParameterInt (s) {} |
79 |
virtual String Description() { return "Number of buffer fragments"; } |
virtual String Description() { return "Number of buffer fragments"; } |
80 |
virtual bool Fix() { return true; } |
virtual bool Fix() { return true; } |
81 |
virtual bool Mandatory() { return false; } |
virtual bool Mandatory() { return false; } |
85 |
virtual optional<int> RangeMaxAsInt(std::map<String,String> Parameters) { return optional<int>::nothing; } |
virtual optional<int> RangeMaxAsInt(std::map<String,String> Parameters) { return optional<int>::nothing; } |
86 |
virtual std::vector<int> PossibilitiesAsInt(std::map<String,String> Parameters) { return std::vector<int>(); } |
virtual std::vector<int> PossibilitiesAsInt(std::map<String,String> Parameters) { return std::vector<int>(); } |
87 |
virtual void OnSetValue(int i) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
virtual void OnSetValue(int i) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
88 |
protected: |
static String Name( void ) { return "fragments"; } |
|
AudioOutputDevice* pDevice; |
|
89 |
}; |
}; |
90 |
|
|
91 |
class ParameterFragmentSize : public DeviceCreationParameterInt { |
class ParameterFragmentSize : public DeviceCreationParameterInt { |
92 |
public: |
public: |
93 |
ParameterFragmentSize(AudioOutputDevice* pDevice) { this->pDevice = pDevice; InitWithDefault();} |
ParameterFragmentSize( void ) : DeviceCreationParameterInt () { InitWithDefault(); } |
94 |
ParameterFragmentSize(AudioOutputDevice* pDevice, String val) throw (LinuxSamplerException) : DeviceCreationParameterInt(val) { this->pDevice = pDevice; } |
ParameterFragmentSize( String s ) : DeviceCreationParameterInt (s) {} |
95 |
virtual String Description() { return "Size of each buffer fragment"; } |
virtual String Description() { return "Size of each buffer fragment"; } |
96 |
virtual bool Fix() { return true; } |
virtual bool Fix() { return true; } |
97 |
virtual bool Mandatory() { return false; } |
virtual bool Mandatory() { return false; } |
101 |
virtual optional<int> RangeMaxAsInt(std::map<String,String> Parameters) { return optional<int>::nothing; } |
virtual optional<int> RangeMaxAsInt(std::map<String,String> Parameters) { return optional<int>::nothing; } |
102 |
virtual std::vector<int> PossibilitiesAsInt(std::map<String,String> Parameters) { return std::vector<int>(); } |
virtual std::vector<int> PossibilitiesAsInt(std::map<String,String> Parameters) { return std::vector<int>(); } |
103 |
virtual void OnSetValue(int i) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
virtual void OnSetValue(int i) throw (LinuxSamplerException) { /* not posssible, as parameter is fix */ } |
104 |
protected: |
static String Name( void ) { return "fragmentsize"; } |
|
AudioOutputDevice* pDevice; |
|
105 |
}; |
}; |
106 |
|
|
107 |
protected: |
protected: |
108 |
int Main(); ///< Implementation of virtual method from class Thread |
int Main(); ///< Implementation of virtual method from class Thread |
|
//AudioOutputDeviceAlsa(uint Channels = 2, uint Samplerate = 44100, uint Fragments = 2, uint FragmentSize = 128, String Card = "0,0"); |
|
109 |
|
|
|
std::map<String,DeviceCreationParameter*> CreateParameters(std::map<String,String> Parameters); |
|
110 |
private: |
private: |
111 |
uint uiAlsaChannels; |
uint uiAlsaChannels; |
112 |
uint uiSamplerate; |
uint uiSamplerate; |