Banshee.MediaEngine.PlayerEngineService.DisconnectEvent C# (CSharp) Méthode

DisconnectEvent() public méthode

public DisconnectEvent ( PlayerEventHandler handler ) : void
handler PlayerEventHandler
Résultat void
        public void DisconnectEvent (PlayerEventHandler handler)
        {
            lock (event_handlers) {
                LinkedListNode<PlayerEventHandlerSlot> node = FindEventNode (handler);
                if (node != null) {
                    event_handlers.Remove (node);
                }
            }
        }

Usage Example

Exemple #1
0
        private void AssertTransition(System.Func <PlayerState?, PlayerEvent?, bool> ignore, System.Action action, params object [] states)
        {
            Log.DebugFormat("AssertTransition: {0}", String.Join(", ", states.Select(s => s.ToString()).ToArray()));
            int result_count = 0;
            var reset_event  = new ManualResetEvent(false);
            var handler      = new PlayerEventHandler(a => {
                lock (states) {
                    if (result_count < states.Length)
                    {
                        var sca = a as PlayerEventStateChangeArgs;

                        var last_state = sca != null ? sca.Current : service.CurrentState;
                        var last_event = a.Event;

                        if (ignore != null && ignore(last_state, last_event))
                        {
                            Log.DebugFormat("   > ignoring {0}/{1}", last_event, last_state);
                            return;
                        }

                        if (sca == null)
                        {
                            Log.DebugFormat("   > {0}", a.Event);
                        }
                        else
                        {
                            Log.DebugFormat("   > {0}", last_state);
                        }

                        var evnt  = (states[result_count] as PlayerEvent?) ?? PlayerEvent.StateChange;
                        var state = states[result_count] as PlayerState?;

                        result_count++;
                        Assert.AreEqual(evnt, last_event);
                        if (state != null)
                        {
                            Assert.AreEqual(state, last_state);
                        }
                    }
                }
                reset_event.Set();
            });

            service.ConnectEvent(handler);

            if (action != null)
            {
                action();
            }

            while (result_count < states.Length)
            {
                reset_event.Reset();
                if (!reset_event.WaitOne(2000))
                {
                    Assert.Fail(String.Format("Waited 1s for state/event, didnt' happen"));
                    break;
                }
            }

            service.DisconnectEvent(handler);
        }
All Usage Examples Of Banshee.MediaEngine.PlayerEngineService::DisconnectEvent