Exemplo n.º 1
0
        /// <summary>
        /// Läd die übergebene Playlist
        /// </summary>
        /// <param name="pl"></param>
        /// <param name="sp"></param>
        /// <returns></returns>
        public static Boolean LoadPlaylist(SonosItem pl, SonosPlayer sp)
        {
            //laden der übergebenen Playlist
            StringBuilder stringb = new StringBuilder();

            try
            {
                stringb.AppendLine(sp.Name);
                //stringb.AppendLine("Suchen nach Playlist" + pl);
                //    var playlists = GetAllPlaylist();
                //var playlist = playlists.FirstOrDefault(x => x.Title.ToLower() == pl.ToLower());
                //if(playlist == null) throw new NullReferenceException("Playlist nicht gefunden");
                //stringb.AppendLine("Playlist gefunden" + playlist.Title);


                stringb.AppendLine("Löschen aller Tracks von " + sp.Name);
                sp.RemoveAllTracksFromQueue();
                Thread.Sleep(300);
                sp.Enqueue(pl, true);
                Thread.Sleep(200);
                stringb.AppendLine("Playlist wurde ersetzt.");
                sp.SetAVTransportURI(SonosConstants.xrinconqueue + sp.UUID + "#0");
                Thread.Sleep(500);
                return(true);
            }
            catch
            {
                SonosHelper.TraceLog("Loadplaylist.log", stringb.ToString());
                return(false);
            }
        }
Exemplo n.º 2
0
        public void FillPlaylist(SonosPlayer pl)
        {
            IList <PlaylistItem> list = new List <PlaylistItem>();

            try
            {
                var xml = pl.GetPlaylistWithTotalNumbers(NumberReturned, 0);
                if (xml[0] == null || xml[0].Length == 0)
                {
                    xml = pl.GetPlaylistWithTotalNumbers(NumberReturned, 0, 500);
                }
                if (xml[0] == null || xml[0].Length == 0)
                {
                    SonosHelper.ServerErrorsAdd("Playlist:FillPlaylist:Block1", new Exception("Zurückgelieferte Liste Leer"));
                }

                if (xml[1] != null)
                {
                    TotalMatches = Convert.ToInt16(xml[1]);
                    list         = ParseSonosXML(xml[0]);
                }
            }
            catch (Exception ex)
            {
                SonosHelper.ServerErrorsAdd("Playlist:FillPlaylist:Block1", ex);
            }

            //Eintrag in der Liste vorhanden
            if (TotalMatches == 0 && list.Count == 0)
            {
                PlayListItems.Add(new PlaylistItem()
                {
                    Album = "Leer", Artist = "Leer", Title = "Leer"
                });
                return;
            }
            try
            {
                if (list.Count > 0)
                {
                    PlayListItems.AddRange(list);
                    NumberReturned = Convert.ToUInt16(PlayListItems.Count);
                }

                if (PlayListItems.Count < TotalMatches)
                {
                    FillPlaylist(pl);
                }
            }
            catch (Exception ex)
            {
                SonosHelper.ServerErrorsAdd("Playlist:FillPlaylist:Block2", ex);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Schreibt die Informationen nieder
 /// </summary>
 private static void WriteData()
 {
     try
     {
         if (File.Exists(_savepath))
         {
             File.Delete(_savepath);
         }
         Directory.CreateDirectory(_savepath);
         StreamWriter textWriter = new StreamWriter(_savepathfile);
         _xmls.Serialize(textWriter, RatedListItems);
         textWriter.Close();
         textWriter.Dispose();
     }
     catch (Exception ex)
     {
         SonosHelper.TraceLog("SonosStreamRating", "Writedata:Exception:" + ex.Message);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Prüft ob das Ziel Konstrukt schon vorhanden ist.
        /// </summary>
        /// <param name="primaray"></param>
        /// <param name="listOfPlayers"></param>
        /// <returns></returns>
        public static Boolean IsSonosTargetGroupExist(SonosPlayer primaray, List <SonosPlayer> listOfPlayers)
        {
            SonosZone sz = SonosHelper.GetZone(primaray.Name);

            if (sz == null || sz.Players.Count != listOfPlayers.Count || sz.Players.Count == 0 || listOfPlayers.Count == 0)
            {
                return(false);
            }

            foreach (SonosPlayer sonosPlayer in sz.Players)
            {
                if (!listOfPlayers.Contains(sonosPlayer))
                {
                    return(false);
                }
            }



            return(true);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Prüft die übergebene Playlist mit dem Übergeben Player ob neu geladen werden muss.
 /// </summary>
 /// <param name="pl">Playliste, die geladen werden soll.</param>
 /// <param name="sp">Coordinator aus der Führenden Zone</param>
 /// <returns>True muss neu geladen werden</returns>
 public static Boolean CheckPlaylist(string pl, SonosPlayer sp)
 {
     try
     {
         Boolean retval     = false;
         var     evtlStream = sp.GetAktSongInfo();
         if (SonosItemHelper.CheckItemForStreamingUriCheck(evtlStream.TrackURI))
         {
             return(true);
         }
         var actpl = sp.GetPlaylist(0, 10);
         if (actpl.Count == 0)
         {
             return(true);
         }
         var toLoadpl = sp.BrowsingWithLimitResults(pl, 10);
         if (toLoadpl.Count == 0)
         {
             return(true);                    //eigentlich ein Fehler
         }
         for (int i = 0; i < actpl.Count; i++)
         {
             if (actpl[i].Title == toLoadpl[i].Title)
             {
                 continue;
             }
             retval = true;
             break;
         }
         return(retval);
     }
     catch (Exception ex)
     {
         SonosHelper.ServerErrorsAdd("Dash2:CheckPlaylist", ex);
         return(true);
     }
 }