[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mono-patches
Subject:    [Mono-patches] r114519 - trunk/moon/src
From:       "Rolf Bjarne Kvinge (rolfkvinge () ya ! com)"
Date:       2008-09-30 22:02:42
Message-ID: 20080930220242.6333E9472C () mono-cvs ! ximian ! com
[Download RAW message or body]

Author: rolf
Date: 2008-09-30 18:02:42 -0400 (Tue, 30 Sep 2008)
New Revision: 114519

Modified:
   trunk/moon/src/ChangeLog
   trunk/moon/src/audio-pulse.cpp
   trunk/moon/src/audio-pulse.h
Log:
* audio-pulse.cpp, audio-pulse.h: Don't use callbacks with
  pa_stream_[cork|trigger|flush|drain] since the audio source might
  have gotten deleted by the time the callback is called.

Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog	2008-09-30 21:52:31 UTC (rev 114518)
+++ trunk/moon/src/ChangeLog	2008-09-30 22:02:42 UTC (rev 114519)
@@ -1,3 +1,9 @@
+2008-10-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+	* audio-pulse.cpp, audio-pulse.h: Don't use callbacks with
+	  pa_stream_[cork|trigger|flush|drain] since the audio source might
+	  have gotten deleted by the time the callback is called.
+
 2008-09-30  Chris Toshok  <toshok@ximian.com>
 
 	* dirty.cpp (Surface::ProcessDownDirtyElements): use

Modified: trunk/moon/src/audio-pulse.cpp
===================================================================
--- trunk/moon/src/audio-pulse.cpp	2008-09-30 21:52:31 UTC (rev 114518)
+++ trunk/moon/src/audio-pulse.cpp	2008-09-30 22:02:42 UTC (rev 114519)
@@ -410,48 +410,24 @@
 PulseSource::PACork (bool cork)
 {
 	LOG_PULSE ("PulseSource::PACork (%i)\n", cork);
-	player->WaitForOperation (pa_stream_cork (pulse_stream, cork, OnCorked, this));
+	pa_operation_unref (pa_stream_cork (pulse_stream, cork, NULL, this));
 }
 
 void
 PulseSource::PATrigger ()
 {
 	LOG_PULSE ("PulseSource::PATrigger (), triggered: %i\n", triggered);
-	player->WaitForOperation (pa_stream_trigger (pulse_stream, OnTriggered, this));	
+	pa_operation_unref (pa_stream_trigger (pulse_stream, NULL, this));
 	triggered = true;
 }
 
 void
 PulseSource::PAFlush ()
 {
-	player->WaitForOperation (pa_stream_flush (pulse_stream, OnFlushed, this));
+	pa_operation_unref (pa_stream_flush (pulse_stream, NULL, this));
 }
 
 void
-PulseSource::OnCorked (pa_stream *pulse_stream, int successs, void *userdata)
-{
-	((PulseSource *) userdata)->player->SignalLoop ();
-}
-
-void
-PulseSource::OnFlushed (pa_stream *pulse_stream, int success, void *userdata)
-{
-	((PulseSource *) userdata)->player->SignalLoop ();
-}
-
-void
-PulseSource::OnTriggered (pa_stream *pulse_stream, int success, void *userdata)
-{
-	((PulseSource *) userdata)->player->SignalLoop ();
-}
-
-void
-PulseSource::OnDrained (pa_stream *pulse_stream, int success, void *userdata)
-{
-	((PulseSource *) userdata)->player->SignalLoop ();
-}
-
-void
 PulseSource::Played ()
 {
 	LOG_PULSE ("PulseSource::Played ()\n");

Modified: trunk/moon/src/audio-pulse.h
===================================================================
--- trunk/moon/src/audio-pulse.h	2008-09-30 21:52:31 UTC (rev 114518)
+++ trunk/moon/src/audio-pulse.h	2008-09-30 22:02:42 UTC (rev 114519)
@@ -38,10 +38,6 @@
 	void OnStateChanged (pa_stream *stream);
 	void OnWrite (size_t length);	
 	
-	static void OnCorked (pa_stream *pulse_stream, int success, void *userdata);
-	static void OnDrained (pa_stream *pulse_stream, int success, void *userdata);
-	static void OnTriggered (pa_stream *pulse_stream, int success, void *userdata);
-	static void OnFlushed (pa_stream *pulse_stream, int success, void *userdata);
 	static void OnUnderflow (pa_stream *pulse_stream, void *userdata);
 	static void OnWrite (pa_stream *pulse_stream, size_t length, void *userdata);
 	static void OnStateChanged (pa_stream *pulse_stream, void *userdata);

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic