public async static Task Clear(PlayelistType playlistType) { int playlistId = GetPlaylistId(playlistType); JObject parameters = new JObject( new JProperty("playlistid", playlistId)); await ConnectionManager.ExecuteRPCRequest("Playlist.Clear", parameters); }
public async static Task Remove(PlayelistType playlistType, int position) { int playlistId = GetPlaylistId(playlistType); JObject parameters = new JObject( new JProperty("position", position), new JProperty("playlistid", playlistId)); await ConnectionManager.ExecuteRPCRequest("Playlist.Remove", parameters); }
// Returns the current playlist for video/audio public async static Task <IEnumerable <Object> > GetItems(PlayelistType playlistType) { int playlistId = GetPlaylistId(playlistType); JObject parameters = new JObject(new JProperty("playlistid", playlistId)); if (playlistType == PlayelistType.Audio) { parameters.Add(new JProperty("properties", new JArray("album", "artist", "duration", "track", "disc"))); } else if (playlistType == PlayelistType.Video) { parameters.Add(new JProperty("properties", new JArray("runtime", "showtitle", "season", "title", "artist"))); } JObject res = await ConnectionManager.ExecuteRPCRequest("Playlist.GetItems", parameters); JArray itemsListObject = (JArray)res["result"]["items"]; if (itemsListObject == null) { return(new List <Object>()); } if (playlistType == PlayelistType.Audio) { var songs = itemsListObject.Select(i => new Song() { SongId = i["id"].ToObject <int>(), Album = i["album"].ToString(), AlbumArtist = i["artist"].ToObject <List <String> >(), Label = i["label"].ToString(), Track = i["track"].ToObject <int>(), Duration = i["duration"].ToObject <int>(), Disc = i["disc"].ToObject <int>() }).ToList(); return(songs); } //TODO: check the video return output -- currently in the app this is not used but should it be in the future, this will have to be checked if (playlistType == PlayelistType.Video) { var movies = itemsListObject.Select(i => new Movie() { MovieId = i["id"].ToObject <int>(), Title = i["title"].ToString(), Runtime = i["runtime"].ToObject <int>() }).ToList(); return(movies); } return(new List <Object>()); }
private static int GetPlaylistId(PlayelistType playlistType) { int playlistId; switch (playlistType) { case PlayelistType.Video: playlistId = 1; break; case PlayelistType.Picture: playlistId = 2; break; case PlayelistType.Audio: default: playlistId = 0; break; } return playlistId; }
private static int GetPlaylistId(PlayelistType playlistType) { int playlistId; switch (playlistType) { case PlayelistType.Video: playlistId = 1; break; case PlayelistType.Picture: playlistId = 2; break; case PlayelistType.Audio: default: playlistId = 0; break; } return(playlistId); }
// Returns the current playlist for video/audio public async static Task<IEnumerable<Object>> GetItems(PlayelistType playlistType) { int playlistId = GetPlaylistId(playlistType); JObject parameters = new JObject(new JProperty("playlistid", playlistId)); if (playlistType == PlayelistType.Audio) parameters.Add(new JProperty("properties", new JArray("album", "artist", "duration"))); else if (playlistType == PlayelistType.Video) parameters.Add(new JProperty("properties", new JArray("runtime", "showtitle", "season", "title", "artist"))); JObject res = await ConnectionManager.ExecuteRPCRequest("Playlist.GetItems", parameters); JArray itemsListObject = (JArray)res["result"]["items"]; if (itemsListObject == null) return new List<Object>(); if (playlistType == PlayelistType.Audio) { var songs = itemsListObject.Select(i => new Song() { SongId = i["id"].ToObject<int>(), Album = i["album"].ToString(), AlbumArtist = i["artist"].ToObject<List<String>>(), Label = i["label"].ToString(), Duration = i["duration"].ToObject<int>() }).ToList(); return songs; } //TODO: check the video return output -- currently in the app this is not used but should it be in the future, this will have to be checked if (playlistType == PlayelistType.Video) { List<Movie> listToReturn = itemsListObject.ToObject<List<Movie>>(); return listToReturn; } return new List<Object>(); }