protected void RendererAddedSink(AVRendererDiscovery sender, AVRenderer renderer) { if (InvokeRequired) { Invoke(new AVRendererDiscovery.DiscoveryHandler(RendererAddedSink), sender, renderer); return; } renderer.OnRemovedConnection += new AVRenderer.ConnectionHandler(RemovedConnectionSink); TreeNode node = NodeTagSearch(rendererRootNode, renderer); if (node == null) { TreeNode varNode = new TreeNode(renderer.FriendlyName,1,1); varNode.Tag = renderer; rendererRootNode.Nodes.Add(varNode); renderer.OnCreateConnection += new AVRenderer.ConnectionHandler(RendererCreateConnectionSink); renderer.OnRecycledConnection += new AVRenderer.ConnectionHandler(RendererRecycledConnectionSink); renderer.OnCreateConnectionFailed += new AVRenderer.FailedConnectionHandler(RendererCreateConnectionFailedSink); foreach (AVConnection connection in renderer.Connections) { RendererCreateConnectionSink(renderer, connection, 0); } } rendererRootNode.Expand(); }
protected void RendererRemovedSink(AVRendererDiscovery sender, AVRenderer renderer) { if (InvokeRequired) { Invoke(new AVRendererDiscovery.DiscoveryHandler(RendererRemovedSink), sender, renderer); return; } renderer.OnCreateConnection -= new AVRenderer.ConnectionHandler(RendererCreateConnectionSink); foreach (AVConnection connection in renderer.Connections) { connection.OnVolume -= new AVConnection.VolumeChangedHandler(VolumeChangedHandlerSink); connection.OnPlayStateChanged -= new AVConnection.PlayStateChangedHandler(PlayStateChangedHandlerSink); connection.OnMute -= new AVConnection.MuteStateChangedHandler(MuteStateChangedHandlerSink); connection.OnPositionChanged -= new AVConnection.PositionChangedHandler(PositionChangedHandlerSink); connection.OnMediaResourceChanged -= new AVConnection.MediaResourceChangedHandler(MediaResourceChangedHandlerSink); connection.OnRemoved -= new AVConnection.RendererHandler(RemovedConnectionHandlerSink); connection.OnTrackChanged -= new AVConnection.CurrentTrackChangedHandler(TrackChangedSink); connection.OnCurrentMetaDataChanged -= new AVConnection.CurrentMetaDataChangedHandler(MetaDataSink); } TreeNode node = NodeTagSearch(rendererRootNode,renderer); if (node != null) { if (rendererFormTable.ContainsKey(node.Tag)) { RendererControlForm form = (RendererControlForm)rendererFormTable[node.Tag]; form.Close(); rendererFormTable.Remove(node.Tag); } rendererRootNode.Nodes.Remove(node); } }
public MainForm() { // // Required for Windows Form Designer support // InitializeComponent(); dockedRendererControl = new RendererControl(); dockedRendererControl.Visible = false; dockedRendererControl.Dock = DockStyle.Top; mediaPropertyControl = new MediaPropertyControl(); mediaPropertyControl.Visible = false; mediaPropertyControl.Dock = DockStyle.Bottom; mediaPropertyControlSplitter = new System.Windows.Forms.Splitter(); mediaPropertyControlSplitter.Visible = false; mediaPropertyControlSplitter.Dock = DockStyle.Bottom; this.Controls.Add(dockedRendererControl); this.Controls.Add(mediaPropertyControl); this.Controls.Add(mediaPropertyControlSplitter); this.Controls.SetChildIndex(dockedRendererControl,0); this.Controls.SetChildIndex(mediaPropertyControl,0); this.Controls.SetChildIndex(mediaPropertyControlSplitter,0); this.Controls.SetChildIndex(listInfo,0); this.Controls.SetChildIndex(mediaListView,0); deviceTree.Nodes.Add(rendererRootNode); containerDiscovery = ContainerDiscovery.GetInstance(); cdsRootNode.Tag = containerDiscovery.AllRoots; deviceTree.Nodes.Add(cdsRootNode); containerDiscovery.AllRoots.OnContainerChanged += new CpRootContainer.Delegate_OnContainerChanged(ContainerChangedSink); eventPanel.Visible = false; splitter2.Visible = false; rendererDiscovery = new AVRendererDiscovery((new AVRendererDiscovery.DiscoveryHandler(RendererAddedSink))); rendererDiscovery.OnRendererRemoved += new AVRendererDiscovery.DiscoveryHandler(new AVRendererDiscovery.DiscoveryHandler(RendererRemovedSink)); this.m_SpiderTimer = new System.Timers.Timer(); this.m_SpiderTimer.Interval = 10000; this.m_SpiderTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimeToClearSpiderCache); this.m_SpiderTimer.Enabled = true; }
protected void RemoveSink(AVRendererDiscovery sender, AVRenderer r) { RendererList.Remove(r); if (CurrentRenderer.UniqueDeviceName == r.UniqueDeviceName) { CurrentRenderer = null; CurrentConnection = null; if (RendererList.Count > 0) CurrentRenderer = (AVRenderer)RendererList[0]; ShowRenderer(); } }
protected void DiscoSink(AVRendererDiscovery sender, AVRenderer r) { r.OnEventRenewalFailure += new AVRenderer.EventRenewalFailureHandler(EventFailSink); lock (this) { r.OnCreateConnection += new AVRenderer.ConnectionHandler(NewConnectionsSink); r.OnRecycledConnection += new AVRenderer.ConnectionHandler(RecycledConnectionsSink); r.OnRemovedConnection += new AVRenderer.ConnectionHandler(RemovedConnectionSink); r.OnCreateConnectionFailed += new AVRenderer.FailedConnectionHandler(FailedConnectionSink); RendererList.Add(r); if (CurrentRenderer == null) { CurrentRenderer = r; if (CurrentRenderer.Connections.Count != 0) { CurrentConnection = (AVConnection)CurrentRenderer.Connections[0]; foreach (AVConnection c in CurrentRenderer.Connections) { c.OnPlayStateChanged += new AVConnection.PlayStateChangedHandler(PlayStateSink); c.OnVolume += new AVConnection.VolumeChangedHandler(VolumeChangeSink); c.OnPositionChanged += new AVConnection.PositionChangedHandler(PositionChangeSink); c.OnTrackChanged += new AVConnection.CurrentTrackChangedHandler(TrackChangedSink); c.OnNumberOfTracksChanged += new AVConnection.NumberOfTracksChangedHandler(NumberOfTracksChangedSink); c.OnTrackURIChanged += new AVConnection.TrackURIChangedHandler(TrackURIChangedSink); c.OnCurrentPlayModeChanged += new AVConnection.CurrentPlayModeChangedHandler(PlayModeChangedSink); } } else { CurrentConnection = null; } ShowRenderer(); } } }
private void MainForm_Load(object sender, System.EventArgs e) { AVDisco = new AVRendererDiscovery(new AVRendererDiscovery.DiscoveryHandler(DiscoSink)); AVDisco.OnRendererRemoved += new AVRendererDiscovery.DiscoveryHandler(RemoveSink); }