[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdemultimedia/akode/plugins/alsa_sink
From: Allan Sandfeld Jensen <kde () carewolf ! com>
Date: 2005-01-07 23:37:18
Message-ID: 20050107233718.F3A0D1939B () office ! kde ! org
[Download RAW message or body]
CVS commit by carewolf:
Completly close and reopen pcm-channels when changing configuration
M +8 -2 alsa_sink.cpp 1.10
--- kdemultimedia/akode/plugins/alsa_sink/alsa_sink.cpp #1.9:1.10
@@ -74,5 +74,5 @@ void ALSASink::close()
{
if (m_data->pcm_playback) {
- snd_pcm_drop(m_data->pcm_playback);
+ snd_pcm_drain(m_data->pcm_playback);
snd_pcm_close(m_data->pcm_playback);
}
@@ -86,4 +86,11 @@ int ALSASink::setAudioConfiguration(cons
if (m_data->error) return -1;
+ // Get back to OPEN state (is SETUP state enough with snd_pcm_drop?)
+ snd_pcm_state_t state = snd_pcm_state( m_data->pcm_playback );
+ if (state != SND_PCM_STATE_OPEN) {
+ close();
+ if (!open()) return -1;
+ }
+
int res = 0;
m_data->config = *config;
@@ -151,5 +158,4 @@ int ALSASink::setAudioConfiguration(cons
m_data->buffer = new char[m_data->fragmentSize];
m_data->filled = 0;
- m_data->open = false;
if (snd_pcm_hw_params(m_data->pcm_playback, hw) < 0) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic