diff options
author | waker <wakeroid@gmail.com> | 2009-08-17 20:02:22 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2009-08-17 20:02:22 +0200 |
commit | f7c785122aa6c2015010f1b8ace5f811e4b8efaf (patch) | |
tree | 23130709f6354ce15e98f0bd69cec97941d0290c /palsa.c | |
parent | 939c26369d53241ff6e66c08a2cf262aa547aa90 (diff) |
disabled alsa hwpause to fix pausing
Diffstat (limited to 'palsa.c')
-rw-r--r-- | palsa.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -88,7 +88,7 @@ palsa_init (void) { goto open_error; } - canpause = snd_pcm_hw_params_can_pause (hw_params); + canpause = 0;//snd_pcm_hw_params_can_pause (hw_params); int val = alsa_rate; int ret = 0; @@ -149,6 +149,8 @@ palsa_init (void) { goto open_error; } + snd_pcm_start (audio); + // take returned fragsize samplebuffer = malloc (bufsize); @@ -157,7 +159,6 @@ palsa_init (void) { printf ("AUDIO: Unable to allocate memory for sample buffers.\n"); goto open_error; } - snd_pcm_pause (audio, 1); // put into STOPPED state alsa_terminate = 0; mutex = mutex_create (); @@ -202,6 +203,7 @@ palsa_hw_pause (int pause) { } else { snd_pcm_prepare (audio); + snd_pcm_start (audio); } hwpaused = pause; } @@ -221,7 +223,7 @@ palsa_play (void) { } if (state != 1) { state = 1; - palsa_hw_pause (0); + snd_pcm_start (audio); } return 0; } @@ -231,7 +233,7 @@ int palsa_stop (void) { // set stop state state = 0; - palsa_hw_pause (1); + snd_pcm_drop (audio); return 0; } @@ -257,8 +259,10 @@ palsa_pause (void) { int palsa_unpause (void) { // unset pause state - state = 1; - palsa_hw_pause (0); + if (state == 2) { + state = 1; + palsa_hw_pause (0); + } return 0; } |