示例#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();
            }
        }
        private void ZoneTracklistControlRepeat_ClickSink(object sender, RoutedEventArgs e)
        {
            RendererVirtual rendererVirtual = rfController.rendererManager.getRendererByZoneUDN(currentSelectedZoneUDN);

            if (rendererVirtual == null)
            {
                return;
            }
            rendererVirtual.setPlayMode(getPlayModeFromRepeatAndRandom(ZoneTracklistTrackControl.RandomizeTrack, getNextTrackRepeatState(ZoneTracklistTrackControl.RepeatTacks)));
        }
        private void ZoneTracklistControlBack_ClickSink(object sender, RoutedEventArgs e)
        {
            RendererVirtual rendererVirtual = rfController.rendererManager.getRendererByZoneUDN(currentSelectedZoneUDN);

            if (rendererVirtual == null)
            {
                return;
            }
            rendererVirtual.previous();
        }
        private void ZoneTracklistControlPlayPause_ClickSink(object sender, RoutedEventArgs e)
        {
            TrackStateControl control         = (TrackStateControl)sender;
            RendererVirtual   rendererVirtual = rfController.rendererManager.getRendererByZoneUDN(currentSelectedZoneUDN);

            if (rendererVirtual == null)
            {
                return;
            }
            rendererVirtual.playPauseToggle();
        }
        // plays selected track from currently selected playlist
        protected void zoneTracklistPlaySelectedTrack()
        {
            if (ZoneTracklistControl.SelectedItem == null)
            {
                return;
            }
            MediaItem_Track trackItem       = (MediaItem_Track)ZoneTracklistControl.SelectedItem;
            RendererVirtual rendererVirtual = rfController.rendererManager.getRendererByZoneUDN(currentSelectedZoneUDN);

            if (rendererVirtual == null)
            {
                return;
            }
            rendererVirtual.playTrack(trackItem.listIndex);
        }
        protected void zoneTracklistSetPlayPauseButtonByZoneUDN(String _zoneUDN)
        {
            Zone zone = rfController.zoneManager.getZone(_zoneUDN);

            if (zone == null)
            {
                return;
            }
            RendererVirtual renderer = zone.getRenderer();

            if (renderer == null)
            {
                return;
            }
            this.zoneTracklistSetPlayPauseButton(renderer.playState);
        }
示例#7
0
        override protected void listActionDone()
        {
            int             trackIndex;
            RendererVirtual renderer = (RendererVirtual)Global.getRendererManager().getRendererByZoneUDN(zoneUDN);

            base.listActionDone();

            // search track in list
            trackIndex = this.getListPositionOfObjectId(objectIdTmp);
            if (trackIndex == -1)
            {
                if (this.list.Count == 0)
                {
                    renderer.getRendererObject().Connections[0].SetAvTransportUri("", "");
                    currentTrackIndexPlaying = 0;
                }
                else
                {
                    if (this.list.Count < currentTrackIndexPlaying)
                    {
                        currentTrackIndexPlaying = this.list.Count;
                    }
                    else if (currentTrackIndexPlaying < 0)
                    {
                        currentTrackIndexPlaying = 0;
                    }
                    // Track was not found. Play next one
                    renderer.playTrack(currentTrackIndexPlaying);
                    //this.setTrackNrPlaying((int)trackNrPlaying);
                }
            }
            else
            {
                currentTrackIndexPlaying = trackIndex;
                renderer.getRendererObject().Connections[0].BendAvTransportUri(this.buildAvTransportUri(), containerInfoMetaData);
            }

            this.setListItemSelectedForPlaying();
        }
示例#8
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));
            }
        }