Author: fejj
Date: 2007-11-08 16:11:35 -0500 (Thu, 08 Nov 2007)
New Revision: 89258

Modified:
   trunk/olive/class/agclr/System.Windows.Controls/ChangeLog
   trunk/olive/class/agclr/System.Windows.Controls/MediaElement.cs
Log:
2007-11-08  Jeffrey Stedfast  <[EMAIL PROTECTED]>

        * MediaElement.cs: Fixed all of the remove events to not /add/ the
        event ;-)
        (InvokeMarkerReached): Pass a TimelineMarkerEventArgs arg to the
        handler rather than null.



Modified: trunk/olive/class/agclr/System.Windows.Controls/ChangeLog
===================================================================
--- trunk/olive/class/agclr/System.Windows.Controls/ChangeLog   2007-11-08 
21:07:45 UTC (rev 89257)
+++ trunk/olive/class/agclr/System.Windows.Controls/ChangeLog   2007-11-08 
21:11:35 UTC (rev 89258)
@@ -1,3 +1,10 @@
+2007-11-08  Jeffrey Stedfast  <[EMAIL PROTECTED]>
+
+       * MediaElement.cs: Fixed all of the remove events to not /add/ the
+       event ;-)
+       (InvokeMarkerReached): Pass a TimelineMarkerEventArgs arg to the
+       handler rather than null.
+
 2007-10-04  Zoltan Varga  <[EMAIL PROTECTED]>
 
        * Control.cs (InitialzeFromXaml): Load dependencies synchronously.

Modified: trunk/olive/class/agclr/System.Windows.Controls/MediaElement.cs
===================================================================
--- trunk/olive/class/agclr/System.Windows.Controls/MediaElement.cs     
2007-11-08 21:07:45 UTC (rev 89257)
+++ trunk/olive/class/agclr/System.Windows.Controls/MediaElement.cs     
2007-11-08 21:11:35 UTC (rev 89258)
@@ -292,9 +292,9 @@
                                events.AddHandler 
(BufferingProgressChangedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler 
(BufferingProgressChangedEvent, value);
                                if (events[BufferingProgressChangedEvent] == 
null)
-                                       Events.AddHandler (this, 
"BufferingProgressChanged", buffering_progress_changed);
-                               events.AddHandler 
(BufferingProgressChangedEvent, value);
+                                       Events.RemoveHandler (this, 
"BufferingProgressChanged", buffering_progress_changed);
                        }
                }
 
@@ -305,11 +305,12 @@
                                events.AddHandler (CurrentStateChangedEvent, 
value);
                        }
                        remove {
+                               events.RemoveHandler (CurrentStateChangedEvent, 
value);
                                if (events[CurrentStateChangedEvent] == null)
-                                       Events.AddHandler (this, 
"CurrentStateChanged", current_state_changed);
-                               events.AddHandler (CurrentStateChangedEvent, 
value);
+                                       Events.RemoveHandler (this, 
"CurrentStateChanged", current_state_changed);
                        }
                }
+               
                public event EventHandler DownloadProgressChanged {
                        add {
                                if (events[DownloadProgressChangedEvent] == 
null)
@@ -317,11 +318,12 @@
                                events.AddHandler 
(DownloadProgressChangedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler 
(DownloadProgressChangedEvent, value);
                                if (events[DownloadProgressChangedEvent] == 
null)
-                                       Events.AddHandler (this, 
"DownloadProgressChanged", download_progress_changed);
-                               events.AddHandler 
(DownloadProgressChangedEvent, value);
+                                       Events.RemoveHandler (this, 
"DownloadProgressChanged", download_progress_changed);
                        }
                }
+               
                public event TimelineMarkerEventHandler MarkerReached {
                        add {
                                if (events[MarkerReachedEvent] == null)
@@ -329,9 +331,9 @@
                                events.AddHandler (MarkerReachedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler (MarkerReachedEvent, 
value);
                                if (events[MarkerReachedEvent] == null)
-                                       Events.AddHandler (this, 
"MarkerReached", marker_reached);
-                               events.AddHandler (MarkerReachedEvent, value);
+                                       Events.RemoveHandler (this, 
"MarkerReached", marker_reached);
                        }
                }
 
@@ -342,9 +344,9 @@
                                events.AddHandler (MediaOpenedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler (MediaOpenedEvent, value);
                                if (events[MediaOpenedEvent] == null)
-                                       Events.AddHandler (this, "MediaOpened", 
media_opened);
-                               events.AddHandler (MediaOpenedEvent, value);
+                                       Events.RemoveHandler (this, 
"MediaOpened", media_opened);
                        }
                }
 
@@ -355,9 +357,9 @@
                                events.AddHandler (MediaEndedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler (MediaEndedEvent, value);
                                if (events[MediaEndedEvent] == null)
-                                       Events.AddHandler (this, "MediaEnded", 
media_ended);
-                               events.AddHandler (MediaEndedEvent, value);
+                                       Events.RemoveHandler (this, 
"MediaEnded", media_ended);
                        }
                }
 
@@ -368,9 +370,9 @@
                                events.AddHandler (MediaFailedEvent, value);
                        }
                        remove {
+                               events.RemoveHandler (MediaFailedEvent, value);
                                if (events[MediaFailedEvent] == null)
-                                       Events.AddHandler (this, "MediaFailed", 
media_failed);
-                               events.AddHandler (MediaFailedEvent, value);
+                                       Events.RemoveHandler (this, 
"MediaFailed", media_failed);
                        }
                }
 
@@ -385,67 +387,93 @@
                static UnmanagedEventHandler media_ended = new 
UnmanagedEventHandler (media_ended_cb);
                static UnmanagedEventHandler media_failed = new 
UnmanagedEventHandler (media_failed_cb);
 
-               private static void buffering_progress_changed_cb (IntPtr 
target, IntPtr calldata, IntPtr closure) {
+               private static void buffering_progress_changed_cb (IntPtr 
target, IntPtr calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeBufferingProgressChanged ();
                }
+               
                private void InvokeBufferingProgressChanged ()
                {
-                       EventHandler h = 
(EventHandler)events[BufferingProgressChangedEvent];
-                       if (h != null) h (this, EventArgs.Empty);
+                       EventHandler h = (EventHandler) 
events[BufferingProgressChangedEvent];
+                       if (h != null)
+                               h (this, EventArgs.Empty);
                }
-
-               private static void current_state_changed_cb (IntPtr target, 
IntPtr calldata, IntPtr closure) {
+               
+               private static void current_state_changed_cb (IntPtr target, 
IntPtr calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeCurrentStateChanged ();
                }
+               
                private void InvokeCurrentStateChanged ()
                {
-                       EventHandler h = 
(EventHandler)events[CurrentStateChangedEvent];
-                       if (h != null) h (this, EventArgs.Empty);
+                       EventHandler h = (EventHandler) 
events[CurrentStateChangedEvent];
+                       if (h != null)
+                               h (this, EventArgs.Empty);
                }
-
-               private static void download_progress_changed_cb (IntPtr 
target, IntPtr calldata, IntPtr closure) {
+               
+               private static void download_progress_changed_cb (IntPtr 
target, IntPtr calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeDownloadProgressChanged ();
                }
+               
                private void InvokeDownloadProgressChanged ()
                {
-                       EventHandler h = 
(EventHandler)events[DownloadProgressChangedEvent];
-                       if (h != null) h (this, EventArgs.Empty);
+                       EventHandler h = (EventHandler) 
events[DownloadProgressChangedEvent];
+                       if (h != null)
+                               h (this, EventArgs.Empty);
                }
 
-               private static void marker_reached_cb (IntPtr target, IntPtr 
calldata, IntPtr closure) {
-                       ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeMarkerReached ();
+               private static void marker_reached_cb (IntPtr target, IntPtr 
calldata, IntPtr closure)
+               {
+                       ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeMarkerReached (calldata);
                }
-               private void InvokeMarkerReached ()
+               
+               private void InvokeMarkerReached (IntPtr calldata)
                {
-                       TimelineMarkerEventHandler h = 
(TimelineMarkerEventHandler)events[MarkerReachedEvent];
-                       if (h != null) h (this, null); // XXX
+                       TimelineMarkerEventHandler h = 
(TimelineMarkerEventHandler) events[MarkerReachedEvent];
+                       
+                       if (h == null)
+                               return;
+                       
+                       TimelineMarker marker = new TimelineMarker (calldata);
+                       
+                       h (this, new TimelineMarkerEventArgs (marker));
                }
-
-               private static void media_opened_cb (IntPtr target, IntPtr 
calldata, IntPtr closure) {
+               
+               private static void media_opened_cb (IntPtr target, IntPtr 
calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeMediaOpened ();
                }
+               
                private void InvokeMediaOpened ()
                {
-                       EventHandler h = (EventHandler)events[MediaOpenedEvent];
-                       if (h != null) h (this, EventArgs.Empty); // XXX
+                       EventHandler h = (EventHandler) 
events[MediaOpenedEvent];
+                       if (h != null)
+                               h (this, EventArgs.Empty); // XXX
                }
 
-               private static void media_ended_cb (IntPtr target, IntPtr 
calldata, IntPtr closure) {
+               private static void media_ended_cb (IntPtr target, IntPtr 
calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeMediaEnded ();
                }
+               
                private void InvokeMediaEnded ()
                {
-                       EventHandler h = (EventHandler)events[MediaEndedEvent];
-                       if (h != null) h (this, EventArgs.Empty); // XXX
+                       EventHandler h = (EventHandler) events[MediaEndedEvent];
+                       if (h != null)
+                               h (this, EventArgs.Empty); // XXX
                }
 
-               private static void media_failed_cb (IntPtr target, IntPtr 
calldata, IntPtr closure) {
+               private static void media_failed_cb (IntPtr target, IntPtr 
calldata, IntPtr closure)
+               {
                        ((MediaElement) Helper.GCHandleFromIntPtr 
(closure).Target).InvokeMediaFailed ();
                }
+               
                private void InvokeMediaFailed ()
                {
                        EventHandler h = (EventHandler)events[MediaFailedEvent];
-                       if (h != null) h (this, EventArgs.Empty); // XXX
+                       if (h != null)
+                               h (this, EventArgs.Empty); // XXX
                }
        }
 }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to