From: <tr...@ff...> - 2008-05-25 14:38:47
|
Author: ppalmers Date: 2008-05-25 07:38:53 -0700 (Sun, 25 May 2008) New Revision: 1214 Modified: branches/libffado-2.0/src/libcontrol/ClockSelect.cpp branches/libffado-2.0/src/libcontrol/ClockSelect.h Log: add generic samplerate control Modified: branches/libffado-2.0/src/libcontrol/ClockSelect.cpp =================================================================== --- branches/libffado-2.0/src/libcontrol/ClockSelect.cpp 2008-05-25 09:28:37 UTC (rev 1213) +++ branches/libffado-2.0/src/libcontrol/ClockSelect.cpp 2008-05-25 14:38:53 UTC (rev 1214) @@ -169,4 +169,51 @@ getName().c_str(), m_Device.getActiveClockSource().description.c_str()); } +// --- samplerate selection --- + +SamplerateSelect::SamplerateSelect(FFADODevice &d) +: Discrete(&d) +, m_Device( d ) +{ + setName("SamplerateSelect"); + setLabel("Samplerate Select"); + setDescription("Select the device sample rate"); +} + +bool +SamplerateSelect::setValue(int v) +{ + return m_Device.setSamplingFrequency(v); +} + +int +SamplerateSelect::getValue() +{ + return m_Device.getSamplingFrequency(); +} + +bool +SamplerateSelect::setValue(int idx, int v) +{ + return m_Device.setSamplingFrequency(v); +} + +int +SamplerateSelect::getValue(int idx) +{ + return m_Device.getSamplingFrequency(); +} + +int +SamplerateSelect::getMinimum() +{ + return 32000; +} + +int +SamplerateSelect::getMaximum() +{ + return 192000; +} + } // namespace Control Modified: branches/libffado-2.0/src/libcontrol/ClockSelect.h =================================================================== --- branches/libffado-2.0/src/libcontrol/ClockSelect.h 2008-05-25 09:28:37 UTC (rev 1213) +++ branches/libffado-2.0/src/libcontrol/ClockSelect.h 2008-05-25 14:38:53 UTC (rev 1214) @@ -63,6 +63,28 @@ FFADODevice &m_Device; }; +/*! +@brief Samplerate selection control element +@note this is a workaround and should be done more elegant +*/ +class SamplerateSelect +: public Discrete +{ +public: + SamplerateSelect(FFADODevice &); + virtual ~SamplerateSelect() {}; + + virtual bool setValue(int v); + virtual int getValue(); + virtual bool setValue(int idx, int v); + virtual int getValue(int idx); + + virtual int getMinimum(); + virtual int getMaximum(); +protected: + FFADODevice &m_Device; +}; + }; // namespace Control #endif // CONTROL_CLOCK_SELECT_H |