private void CreateZone(XElement zoneXml) { var players = zoneXml.Descendants("ZoneGroupMember").Where(x => x.Attribute("Invisible") == null).ToList(); if (players.Count > 0) { var zone = new SonosZone((string)zoneXml.Attribute("Coordinator")); foreach (var playerXml in players) { var player = new SonosPlayer { Name = (string)playerXml.Attribute("ZoneName"), UUID = (string)playerXml.Attribute("UUID"), ControlPoint = ControlPoint }; zone.AddPlayer(player); Players.Add(player); // This can happen before or after the topology event... if (playerDevices.ContainsKey(player.UUID)) { player.SetDevice(playerDevices[player.UUID]); } } Zones.Add(zone); } }
public void AddPlayer(SonosPlayer player) { if (player.UUID == CoordinatorUUID) { Coordinator = player; } players.Add(player); }
public void SetVolume(ushort volume) { SonosPlayer pl = gtw.FindPlayerByName(playerName); if (pl != null) { pl.SetVolume(volume); } }
public void UnMute() { SonosPlayer pl = gtw.FindPlayerByName(playerName); if (pl != null) { pl.UnMute(); } }
public void StopPlayer() { SonosPlayer pl = gtw.FindPlayerByName(playerName); if (pl != null) { pl.Pause(); } }
public void PlayFavorite(int favoriteNumber) { IList <SonosItem> si = gtw.GetSonosFavorites(); if (favoriteNumber > si.Count) { return; } SonosPlayer pl = gtw.FindPlayerByName(playerName); if (pl != null) { pl.SetAVTransportURI(new SonosTrack { Uri = si[favoriteNumber].Track.Uri, MetaData = si[favoriteNumber].Track.MetaData }); Thread.Sleep(1000); pl.Play(); } }
private void SonosPlayerController_StateChanged(SonosPlayer obj) { currentState.CurrentSeekPosition = obj.CurrentState.RelTime.ToString(); currentState.CurrentVolume = obj.CurrentState.Volume; currentState.CurrentMuteState = obj.CurrentState.MuteStatus; currentState.CurrentPowerState = obj.CurrentStatus == PlayerStatus.Playing ? true : false; List <string> stationList = new List <string>(); IList <SonosItem> gtwList = gtw.GetSonosFavorites(); if (gtwList != null) { foreach (SonosItem si in gtw.GetSonosFavorites()) { stationList.Add(si.DIDL.Title); } currentState.CurrentList = stationList.ToArray(); } if (StateChanged != null) { StateChanged(this, new DeviceStateChangedEventArgs(currentState)); } }