/// <summary> /// Retrieve all tv show episodes /// </summary> public async Task<XBMCRPC.VideoLibrary.GetEpisodesResponse> GetEpisodes(XBMCRPC.VideoLibrary.GetEpisodes_filterGenreid filter, int tvshowid=0, int season=0, XBMCRPC.Video.Fields.Episode properties=null, XBMCRPC.List.Limits limits=null, XBMCRPC.List.Sort sort=null) { var jArgs = new JObject(); if (tvshowid != null) { var jproptvshowid = JToken.FromObject(tvshowid, _client.Serializer); jArgs.Add(new JProperty("tvshowid", jproptvshowid)); } if (season != null) { var jpropseason = JToken.FromObject(season, _client.Serializer); jArgs.Add(new JProperty("season", jpropseason)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } if (sort != null) { var jpropsort = JToken.FromObject(sort, _client.Serializer); jArgs.Add(new JProperty("sort", jpropsort)); } if (filter != null) { var jpropfilter = JToken.FromObject(filter, _client.Serializer); jArgs.Add(new JProperty("filter", jpropfilter)); } return await _client.GetData<XBMCRPC.VideoLibrary.GetEpisodesResponse>("VideoLibrary.GetEpisodes", jArgs); }
/// <summary> /// Retrieve all albums from specified artist or genre /// </summary> public async Task<XBMCRPC.AudioLibrary.GetAlbumsResponse> GetAlbums(XBMCRPC.AudioLibrary.GetAlbums_filterGenreid filter, XBMCRPC.Audio.Fields.Album properties=null, XBMCRPC.List.Limits limits=null, XBMCRPC.List.Sort sort=null) { var jArgs = new JObject(); if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } if (sort != null) { var jpropsort = JToken.FromObject(sort, _client.Serializer); jArgs.Add(new JProperty("sort", jpropsort)); } if (filter != null) { var jpropfilter = JToken.FromObject(filter, _client.Serializer); jArgs.Add(new JProperty("filter", jpropfilter)); } return await _client.GetData<XBMCRPC.AudioLibrary.GetAlbumsResponse>("AudioLibrary.GetAlbums", jArgs); }
/// <summary> /// Enumerates all actions and descriptions /// </summary> public async Task<XBMCRPC.JSONRPC.IntrospectResponse> Introspect(bool getdescriptions=false, bool getmetadata=false, bool filterbytransport=false, XBMCRPC.JSONRPC.Introspect_filter filter=null) { var jArgs = new JObject(); if (getdescriptions != null) { var jpropgetdescriptions = JToken.FromObject(getdescriptions, _client.Serializer); jArgs.Add(new JProperty("getdescriptions", jpropgetdescriptions)); } if (getmetadata != null) { var jpropgetmetadata = JToken.FromObject(getmetadata, _client.Serializer); jArgs.Add(new JProperty("getmetadata", jpropgetmetadata)); } if (filterbytransport != null) { var jpropfilterbytransport = JToken.FromObject(filterbytransport, _client.Serializer); jArgs.Add(new JProperty("filterbytransport", jpropfilterbytransport)); } if (filter != null) { var jpropfilter = JToken.FromObject(filter, _client.Serializer); jArgs.Add(new JProperty("filter", jpropfilter)); } return await _client.GetData<XBMCRPC.JSONRPC.IntrospectResponse>("JSONRPC.Introspect", jArgs); }
/// <summary> /// Add a favourite with the given details /// </summary> public async Task<string> AddFavourite(string title=null, XBMCRPC.Favourite.Type type=0, string path=null, string window=null, string windowparameter=null, string thumbnail=null) { var jArgs = new JObject(); if (title != null) { var jproptitle = JToken.FromObject(title, _client.Serializer); jArgs.Add(new JProperty("title", jproptitle)); } if (type != null) { var jproptype = JToken.FromObject(type, _client.Serializer); jArgs.Add(new JProperty("type", jproptype)); } if (path != null) { var jproppath = JToken.FromObject(path, _client.Serializer); jArgs.Add(new JProperty("path", jproppath)); } if (window != null) { var jpropwindow = JToken.FromObject(window, _client.Serializer); jArgs.Add(new JProperty("window", jpropwindow)); } if (windowparameter != null) { var jpropwindowparameter = JToken.FromObject(windowparameter, _client.Serializer); jArgs.Add(new JProperty("windowparameter", jpropwindowparameter)); } if (thumbnail != null) { var jpropthumbnail = JToken.FromObject(thumbnail, _client.Serializer); jArgs.Add(new JProperty("thumbnail", jpropthumbnail)); } return await _client.GetData<string>("Favourites.AddFavourite", jArgs); }
/// <summary> /// Get the directories and files in the given directory /// </summary> public async Task<XBMCRPC.Files.GetDirectoryResponse> GetDirectory(string directory=null, XBMCRPC.Files.Media media=0, XBMCRPC.List.Fields.Files properties=null, XBMCRPC.List.Sort sort=null, XBMCRPC.List.Limits limits=null) { var jArgs = new JObject(); if (directory != null) { var jpropdirectory = JToken.FromObject(directory, _client.Serializer); jArgs.Add(new JProperty("directory", jpropdirectory)); } if (media != null) { var jpropmedia = JToken.FromObject(media, _client.Serializer); jArgs.Add(new JProperty("media", jpropmedia)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } if (sort != null) { var jpropsort = JToken.FromObject(sort, _client.Serializer); jArgs.Add(new JProperty("sort", jpropsort)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } return await _client.GetData<XBMCRPC.Files.GetDirectoryResponse>("Files.GetDirectory", jArgs); }
/// <summary> /// Retrieve the current profile /// </summary> public async Task<XBMCRPC.Profiles.Details.Profile> GetCurrentProfile(XBMCRPC.Profiles.Fields.Profile properties=null) { var jArgs = new JObject(); if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Profiles.Details.Profile>("Profiles.GetCurrentProfile", jArgs); }
/// <summary> /// Toggle fullscreen/GUI /// </summary> public async Task<bool> SetFullscreen(XBMCRPC.Global.Toggle2 fullscreen) { var jArgs = new JObject(); if (fullscreen != null) { var jpropfullscreen = JToken.FromObject(fullscreen, _client.Serializer); jArgs.Add(new JProperty("fullscreen", jpropfullscreen)); } return await _client.GetData<bool>("GUI.SetFullscreen", jArgs); }
/// <summary> /// Retrieves the values of the given properties /// </summary> public async Task<XBMCRPC.System.Property.Value> GetProperties(XBMCRPC.System.GetProperties_properties properties=null) { var jArgs = new JObject(); if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.System.Property.Value>("System.GetProperties", jArgs); }
/// <summary> /// Toggle mute/unmute /// </summary> public async Task<bool> SetMute(XBMCRPC.Global.Toggle2 mute) { var jArgs = new JObject(); if (mute != null) { var jpropmute = JToken.FromObject(mute, _client.Serializer); jArgs.Add(new JProperty("mute", jpropmute)); } return await _client.GetData<bool>("Application.SetMute", jArgs); }
/// <summary> /// Exports all items from the audio library /// </summary> public async Task<string> Export(XBMCRPC.AudioLibrary.Export_options1 options) { var jArgs = new JObject(); if (options != null) { var jpropoptions = JToken.FromObject(options, _client.Serializer); jArgs.Add(new JProperty("options", jpropoptions)); } return await _client.GetData<string>("AudioLibrary.Export", jArgs); }
/// <summary> /// Retrieve all textures /// </summary> public async Task<XBMCRPC.Textures.GetTexturesResponse> GetTextures(XBMCRPC.Textures.Fields.Texture properties=null) { var jArgs = new JObject(); if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Textures.GetTexturesResponse>("Textures.GetTextures", jArgs); }
/// <summary> /// Execute a specific action /// </summary> public async Task<string> ExecuteAction(XBMCRPC.Input.Action action=0) { var jArgs = new JObject(); if (action != null) { var jpropaction = JToken.FromObject(action, _client.Serializer); jArgs.Add(new JProperty("action", jpropaction)); } return await _client.GetData<string>("Input.ExecuteAction", jArgs); }
/// <summary> /// Retrieves the details of a specific channel group /// </summary> public async Task<XBMCRPC.PVR.GetChannelGroupDetailsResponse> GetChannelGroupDetails(int channelgroupid, XBMCRPC.PVR.GetChannelGroupDetails_channels channels=null) { var jArgs = new JObject(); if (channelgroupid != null) { var jpropchannelgroupid = JToken.FromObject(channelgroupid, _client.Serializer); jArgs.Add(new JProperty("channelgroupid", jpropchannelgroupid)); } if (channels != null) { var jpropchannels = JToken.FromObject(channels, _client.Serializer); jArgs.Add(new JProperty("channels", jpropchannels)); } return await _client.GetData<XBMCRPC.PVR.GetChannelGroupDetailsResponse>("PVR.GetChannelGroupDetails", jArgs); }
/// <summary> /// Retrieves the details of a specific channel /// </summary> public async Task<XBMCRPC.PVR.GetChannelDetailsResponse> GetChannelDetails(int channelid=0, XBMCRPC.PVR.Fields.Channel properties=null) { var jArgs = new JObject(); if (channelid != null) { var jpropchannelid = JToken.FromObject(channelid, _client.Serializer); jArgs.Add(new JProperty("channelid", jpropchannelid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.PVR.GetChannelDetailsResponse>("PVR.GetChannelDetails", jArgs); }
/// <summary> /// Go to previous/next/specific item in the playlist /// </summary> public async Task<string> GoTo(XBMCRPC.Player.GoTo_to1 to, int playerid=0) { var jArgs = new JObject(); if (playerid != null) { var jpropplayerid = JToken.FromObject(playerid, _client.Serializer); jArgs.Add(new JProperty("playerid", jpropplayerid)); } if (to != null) { var jpropto = JToken.FromObject(to, _client.Serializer); jArgs.Add(new JProperty("to", jpropto)); } return await _client.GetData<string>("Player.GoTo", jArgs); }
/// <summary> /// Retrieves the values of the given properties /// </summary> public async Task<XBMCRPC.Player.Property.Value> GetProperties(int playerid=0, XBMCRPC.Player.GetProperties_properties properties=null) { var jArgs = new JObject(); if (playerid != null) { var jpropplayerid = JToken.FromObject(playerid, _client.Serializer); jArgs.Add(new JProperty("playerid", jpropplayerid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Player.Property.Value>("Player.GetProperties", jArgs); }
/// <summary> /// Retrieves the currently played item /// </summary> public async Task<XBMCRPC.Player.GetItemResponse> GetItem(int playerid=0, XBMCRPC.List.Fields.All properties=null) { var jArgs = new JObject(); if (playerid != null) { var jpropplayerid = JToken.FromObject(playerid, _client.Serializer); jArgs.Add(new JProperty("playerid", jpropplayerid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Player.GetItemResponse>("Player.GetItem", jArgs); }
/// <summary> /// Retrieve details about a specific tv show episode /// </summary> public async Task<XBMCRPC.VideoLibrary.GetEpisodeDetailsResponse> GetEpisodeDetails(int episodeid=0, XBMCRPC.Video.Fields.Episode properties=null) { var jArgs = new JObject(); if (episodeid != null) { var jpropepisodeid = JToken.FromObject(episodeid, _client.Serializer); jArgs.Add(new JProperty("episodeid", jpropepisodeid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.VideoLibrary.GetEpisodeDetailsResponse>("VideoLibrary.GetEpisodeDetails", jArgs); }
/// <summary> /// Activates the given window /// </summary> public async Task<string> ActivateWindow(XBMCRPC.GUI.Window window=0, global::System.Collections.Generic.List<string> parameters=null) { var jArgs = new JObject(); if (window != null) { var jpropwindow = JToken.FromObject(window, _client.Serializer); jArgs.Add(new JProperty("window", jpropwindow)); } if (parameters != null) { var jpropparameters = JToken.FromObject(parameters, _client.Serializer); jArgs.Add(new JProperty("parameters", jpropparameters)); } return await _client.GetData<string>("GUI.ActivateWindow", jArgs); }
/// <summary> /// Retrieve all favourites /// </summary> public async Task<XBMCRPC.Favourites.GetFavouritesResponse> GetFavourites(XBMCRPC.Favourite.Type type=0, XBMCRPC.Favourite.Fields.Favourite properties=null) { var jArgs = new JObject(); if (type != null) { var jproptype = JToken.FromObject(type, _client.Serializer); jArgs.Add(new JProperty("type", jproptype)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Favourites.GetFavouritesResponse>("Favourites.GetFavourites", jArgs); }
/// <summary> /// Retrieve details about a specific album /// </summary> public async Task<XBMCRPC.AudioLibrary.GetAlbumDetailsResponse> GetAlbumDetails(int albumid=0, XBMCRPC.Audio.Fields.Album properties=null) { var jArgs = new JObject(); if (albumid != null) { var jpropalbumid = JToken.FromObject(albumid, _client.Serializer); jArgs.Add(new JProperty("albumid", jpropalbumid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.AudioLibrary.GetAlbumDetailsResponse>("AudioLibrary.GetAlbumDetails", jArgs); }
/// <summary> /// Add item(s) to playlist /// </summary> public async Task<string> Add(XBMCRPC.Playlist.ItemEpisodeid item, int playlistid=0) { var jArgs = new JObject(); if (playlistid != null) { var jpropplaylistid = JToken.FromObject(playlistid, _client.Serializer); jArgs.Add(new JProperty("playlistid", jpropplaylistid)); } if (item != null) { var jpropitem = JToken.FromObject(item, _client.Serializer); jArgs.Add(new JProperty("item", jpropitem)); } return await _client.GetData<string>("Playlist.Add", jArgs); }
/// <summary> /// Retrieves all settings /// </summary> public async Task<XBMCRPC.Settings.GetSettingsResponse> GetSettings(XBMCRPC.Settings.GetSettings_filter1 filter, XBMCRPC.Setting.Level level=0) { var jArgs = new JObject(); if (level != null) { var jproplevel = JToken.FromObject(level, _client.Serializer); jArgs.Add(new JProperty("level", jproplevel)); } if (filter != null) { var jpropfilter = JToken.FromObject(filter, _client.Serializer); jArgs.Add(new JProperty("filter", jpropfilter)); } return await _client.GetData<XBMCRPC.Settings.GetSettingsResponse>("Settings.GetSettings", jArgs); }
/// <summary> /// Retrieves all setting sections /// </summary> public async Task<XBMCRPC.Settings.GetSectionsResponse> GetSections(XBMCRPC.Setting.Level level=0, XBMCRPC.Settings.GetSections_properties properties=null) { var jArgs = new JObject(); if (level != null) { var jproplevel = JToken.FromObject(level, _client.Serializer); jArgs.Add(new JProperty("level", jproplevel)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Settings.GetSectionsResponse>("Settings.GetSections", jArgs); }
/// <summary> /// Retrieve all profiles /// </summary> public async Task<XBMCRPC.Profiles.GetProfilesResponse> GetProfiles(XBMCRPC.Profiles.Fields.Profile properties=null, XBMCRPC.List.Limits limits=null, XBMCRPC.List.Sort sort=null) { var jArgs = new JObject(); if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } if (sort != null) { var jpropsort = JToken.FromObject(sort, _client.Serializer); jArgs.Add(new JProperty("sort", jpropsort)); } return await _client.GetData<XBMCRPC.Profiles.GetProfilesResponse>("Profiles.GetProfiles", jArgs); }
/// <summary> /// Load the specified profile /// </summary> public async Task<string> LoadProfile(string profile=null, bool prompt=false, XBMCRPC.Profiles.Password password=null) { var jArgs = new JObject(); if (profile != null) { var jpropprofile = JToken.FromObject(profile, _client.Serializer); jArgs.Add(new JProperty("profile", jpropprofile)); } if (prompt != null) { var jpropprompt = JToken.FromObject(prompt, _client.Serializer); jArgs.Add(new JProperty("prompt", jpropprompt)); } if (password != null) { var jproppassword = JToken.FromObject(password, _client.Serializer); jArgs.Add(new JProperty("password", jproppassword)); } return await _client.GetData<string>("Profiles.LoadProfile", jArgs); }
/// <summary> /// Retrieves the program of a specific channel /// </summary> public async Task<XBMCRPC.PVR.GetBroadcastsResponse> GetBroadcasts(int channelid=0, XBMCRPC.PVR.Fields.Broadcast properties=null, XBMCRPC.List.Limits limits=null) { var jArgs = new JObject(); if (channelid != null) { var jpropchannelid = JToken.FromObject(channelid, _client.Serializer); jArgs.Add(new JProperty("channelid", jpropchannelid)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } return await _client.GetData<XBMCRPC.PVR.GetBroadcastsResponse>("PVR.GetBroadcasts", jArgs); }
/// <summary> /// Get the sources of the media windows /// </summary> public async Task<XBMCRPC.Files.GetSourcesResponse> GetSources(XBMCRPC.Files.Media media=0, XBMCRPC.List.Limits limits=null, XBMCRPC.List.Sort sort=null) { var jArgs = new JObject(); if (media != null) { var jpropmedia = JToken.FromObject(media, _client.Serializer); jArgs.Add(new JProperty("media", jpropmedia)); } if (limits != null) { var jproplimits = JToken.FromObject(limits, _client.Serializer); jArgs.Add(new JProperty("limits", jproplimits)); } if (sort != null) { var jpropsort = JToken.FromObject(sort, _client.Serializer); jArgs.Add(new JProperty("sort", jpropsort)); } return await _client.GetData<XBMCRPC.Files.GetSourcesResponse>("Files.GetSources", jArgs); }
/// <summary> /// Get details for a specific file /// </summary> public async Task<XBMCRPC.Files.GetFileDetailsResponse> GetFileDetails(string file=null, XBMCRPC.Files.Media media=0, XBMCRPC.List.Fields.Files properties=null) { var jArgs = new JObject(); if (file != null) { var jpropfile = JToken.FromObject(file, _client.Serializer); jArgs.Add(new JProperty("file", jpropfile)); } if (media != null) { var jpropmedia = JToken.FromObject(media, _client.Serializer); jArgs.Add(new JProperty("media", jpropmedia)); } if (properties != null) { var jpropproperties = JToken.FromObject(properties, _client.Serializer); jArgs.Add(new JProperty("properties", jpropproperties)); } return await _client.GetData<XBMCRPC.Files.GetFileDetailsResponse>("Files.GetFileDetails", jArgs); }
/// <summary> /// Executes the given addon with the given parameters (if possible) /// </summary> public async Task<string> ExecuteAddon(XBMCRPC.Addons.ExecuteAddon_params1 params_arg, string addonid=null, bool wait=false) { var jArgs = new JObject(); if (addonid != null) { var jpropaddonid = JToken.FromObject(addonid, _client.Serializer); jArgs.Add(new JProperty("addonid", jpropaddonid)); } if (params_arg != null) { var jpropparams_arg = JToken.FromObject(params_arg, _client.Serializer); jArgs.Add(new JProperty("params_arg", jpropparams_arg)); } if (wait != null) { var jpropwait = JToken.FromObject(wait, _client.Serializer); jArgs.Add(new JProperty("wait", jpropwait)); } return await _client.GetData<string>("Addons.ExecuteAddon", jArgs); }