]> code.delx.au - pulseaudio/commitdiff
The OSS spec is unclear what should happen when a reset is requested. Let's
authorPierre Ossman <ossman@cendio.se>
Mon, 6 Nov 2006 10:17:39 +0000 (10:17 +0000)
committerPierre Ossman <ossman@cendio.se>
Mon, 6 Nov 2006 10:17:39 +0000 (10:17 +0000)
have a nicer attitude and keep as much settings as possible.

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1406 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/utils/padsp.c

index c7bfe5abde8bec8c0f18ab93d41a0231e864ad72..5d96a984e082120872e5fe9c28742539d1e059c0 100644 (file)
@@ -1003,12 +1003,21 @@ static void free_streams(fd_info *i) {
         pa_stream_disconnect(i->play_stream);
         pa_stream_unref(i->play_stream);
         i->play_stream = NULL;
+        i->io_flags |= PA_IO_EVENT_INPUT;
     }
 
     if (i->rec_stream) {
         pa_stream_disconnect(i->rec_stream);
         pa_stream_unref(i->rec_stream);
         i->rec_stream = NULL;
+        i->io_flags |= PA_IO_EVENT_OUTPUT;
+    }
+
+    if (i->io_event) {
+        pa_mainloop_api *api;
+
+        api = pa_threaded_mainloop_get_api(i->mainloop);
+        api->io_enable(i->io_event, i->io_flags);
     }
 }
 
@@ -1954,7 +1963,6 @@ static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno)
 
             free_streams(i);
             dsp_flush_socket(i);
-            reset_params(i);
 
             i->optr_n_blocks = 0;