示例#1
0
        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();
        }
示例#2
0
        public void linkVirtualRendererToZone(RendererVirtual _virtualRenderer, Boolean _unlink = false, Boolean _crossLink = true)
        {
            Zone zone;
            ZoneManager zoneManager = Global.getZoneManager();
            zone = zoneManager.getZoneUUID(_virtualRenderer.getRendererObject().UniqueDeviceName);
            if (zone != null)
            {
                if (_unlink)
                    zone.rendererUDN = String.Empty;
                else
                    zone.rendererUDN = _virtualRenderer.udn;
                zone.rendererLinked();
                //zoneManager.updateZonesValue(zone);
                if (_crossLink)
                    zoneManager.linkZoneToVirtualRenderer(zone, _unlink, false);

                if (_unlink == true)
                    this.writeLog(LogType.Info, String.Format("Renderer '{1}' wurde von Zone '{0}' entfernt", zone.udn, _virtualRenderer.udn));
                else
                    this.writeLog(LogType.Info, String.Format("Renderer '{1}' wurde zu Zone '{0}' zugeordnet", zone.udn, _virtualRenderer.udn));
            }
            else
            {
                this.writeLog(LogType.Warning, String.Format("Keine Zone für virtuellen Renderer '{0}' für Zuordnung gefunden", _virtualRenderer.getRendererObject().UniqueDeviceName));
            }
        }