diff options
-rw-r--r-- | dxr3audio-alsa.c | 13 | ||||
-rw-r--r-- | dxr3audio-alsa.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/dxr3audio-alsa.c b/dxr3audio-alsa.c index 23af170..9d36df6 100644 --- a/dxr3audio-alsa.c +++ b/dxr3audio-alsa.c @@ -262,10 +262,12 @@ void cAudioAlsa::write(uchar* data, size_t size) void cAudioAlsa::flush() { - int err = snd_pcm_drop(handle); + snd_pcm_nonblock(handle, 0); + int err = snd_pcm_drain(handle); if (err < 0) { esyslog("[dxr3-audio-alsa] failed to pcm_drop: %s", snd_strerror(err)); } + snd_pcm_nonblock(handle, 1); err = snd_pcm_prepare(handle); if (err < 0) { @@ -273,6 +275,15 @@ void cAudioAlsa::flush() } } +void cAudioAlsa::setDigitalAudio(bool on) +{ + if (digitalAudio == on) { + return; + } + + // TODO stub +} + void cAudioAlsa::Xrun() { int res; diff --git a/dxr3audio-alsa.h b/dxr3audio-alsa.h index 81588ab..b07bf79 100644 --- a/dxr3audio-alsa.h +++ b/dxr3audio-alsa.h @@ -37,7 +37,7 @@ public: virtual void setup(int channels, int samplerate); virtual void write(uchar* data, size_t size); virtual void flush(); - virtual void setDigitalAudio(bool on) {} + virtual void setDigitalAudio(bool on); private: snd_pcm_t *handle; |