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); }
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(); }
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)); } }