protected void mediaRendererFoundSink(CpAVRenderer _avRenderer) { Renderer.Renderer renderer; this.writeLog(LogType.Info, String.Format("MediaRenderer '{0}' gefunden (UDN: {1})", _avRenderer.FriendlyName, _avRenderer.UniqueDeviceName)); if (_avRenderer.isVirtualRenderer()) { renderer = new RendererVirtual(_avRenderer); if (renderers.ContainsKey(renderer.udn)) renderers.Remove(renderer.udn); renderers.Add(renderer.udn, renderer); this.linkVirtualRendererToZone((RendererVirtual)renderer); } else { renderer = new RendererRoom(_avRenderer); if (renderers.ContainsKey(renderer.udn)) renderers.Remove(renderer.udn); renderers.Add(renderer.udn, renderer); this.linkRoomRendererToRoom((RendererRoom)renderer); } renderer.muteStateChanged += renderer_muteStateChangedSink; renderer.volumeChanged += renderer_volumeChangedSink; if (mediaRendererFound != null) mediaRendererFound(); }