/* * Copyright (C) 2005-2014 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC Remote; see the file license. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ package org.xbmc.android.jsonrpc.api.model; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.node.ArrayNode; import org.codehaus.jackson.node.ObjectNode; import org.xbmc.android.jsonrpc.api.AbstractModel; public final class GUIModel { /** * API Name: <tt>GUI.Property.Value</tt> * <p/> * Note: This class is used as result only.<br/> * <i>This class was generated automatically from XBMC's JSON-RPC introspect.</i> */ public static class PropertyValue extends AbstractModel { public final static String API_TYPE = "GUI.Property.Value"; // field names public static final String CURRENTCONTROL = "currentcontrol"; public static final String CURRENTWINDOW = "currentwindow"; public static final String FULLSCREEN = "fullscreen"; public static final String SKIN = "skin"; // class members public final Currentcontrol currentcontrol; public final Currentwindow currentwindow; public final Boolean fullscreen; public final Skin skin; /** * @param currentcontrol * @param currentwindow * @param fullscreen * @param skin */ public PropertyValue(Currentcontrol currentcontrol, Currentwindow currentwindow, Boolean fullscreen, Skin skin) { this.currentcontrol = currentcontrol; this.currentwindow = currentwindow; this.fullscreen = fullscreen; this.skin = skin; } /** * Construct from JSON object. * @param node JSON object representing a PropertyValue object */ public PropertyValue(JsonNode node) { currentcontrol = node.has(CURRENTCONTROL) ? new Currentcontrol(node.get(CURRENTCONTROL)) : null; currentwindow = node.has(CURRENTWINDOW) ? new Currentwindow(node.get(CURRENTWINDOW)) : null; fullscreen = parseBoolean(node, FULLSCREEN); skin = node.has(SKIN) ? new Skin(node.get(SKIN)) : null; } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(CURRENTCONTROL, currentcontrol.toJsonNode()); node.put(CURRENTWINDOW, currentwindow.toJsonNode()); node.put(FULLSCREEN, fullscreen); node.put(SKIN, skin.toJsonNode()); return node; } /** * Extracts a list of {@link PropertyValue} objects from a JSON array. * @param node ObjectNode containing the list of objects. * @param key Key pointing to the node where the list is stored. */ static List<PropertyValue> getGUIModelPropertyValueList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode)node.get(key); final List<PropertyValue> l = new ArrayList<PropertyValue>(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new PropertyValue((JsonNode)a.get(i))); } return l; } return new ArrayList<PropertyValue>(0); } /** * Flatten this object into a Parcel. * @param parcel the Parcel in which the object should be written. * @param flags additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeValue(currentcontrol); parcel.writeValue(currentwindow); parcel.writeInt(fullscreen ? 1 : 0); parcel.writeValue(skin); } /** * Construct via parcel. */ protected PropertyValue(Parcel parcel) { currentcontrol = parcel.<Currentcontrol>readParcelable(Currentcontrol.class.getClassLoader()); currentwindow = parcel.<Currentwindow>readParcelable(Currentwindow.class.getClassLoader()); fullscreen = parcel.readInt() == 1; skin = parcel.<Skin>readParcelable(Skin.class.getClassLoader()); } /** * Generates instances of this Parcelable class from a Parcel. */ public static final Parcelable.Creator<PropertyValue> CREATOR = new Parcelable.Creator<PropertyValue>() { @Override public PropertyValue createFromParcel(Parcel parcel) { return new PropertyValue(parcel); } @Override public PropertyValue[] newArray(int n) { return new PropertyValue[n]; } }; @Override public int describeContents() { return 0; } /** * Note: This class is used as result only.<br/> * <i>This class was generated automatically from XBMC's JSON-RPC introspect.</i> */ public static class Skin extends AbstractModel { // field names public static final String ID = "id"; public static final String NAME = "name"; // class members public final String id; public final String name; /** * @param id * @param name */ public Skin(String id, String name) { this.id = id; this.name = name; } /** * Construct from JSON object. * @param node JSON object representing a Skin object */ public Skin(JsonNode node) { id = node.get(ID).getTextValue(); // required value name = parseString(node, NAME); } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(ID, id); node.put(NAME, name); return node; } /** * Extracts a list of {@link Skin} objects from a JSON array. * @param node ObjectNode containing the list of objects. * @param key Key pointing to the node where the list is stored. */ static List<Skin> getGUIModelSkinList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode)node.get(key); final List<Skin> l = new ArrayList<Skin>(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new Skin((JsonNode)a.get(i))); } return l; } return new ArrayList<Skin>(0); } /** * Flatten this object into a Parcel. * @param parcel the Parcel in which the object should be written. * @param flags additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeValue(id); parcel.writeValue(name); } /** * Construct via parcel. */ protected Skin(Parcel parcel) { id = parcel.readString(); name = parcel.readString(); } /** * Generates instances of this Parcelable class from a Parcel. */ public static final Parcelable.Creator<Skin> CREATOR = new Parcelable.Creator<Skin>() { @Override public Skin createFromParcel(Parcel parcel) { return new Skin(parcel); } @Override public Skin[] newArray(int n) { return new Skin[n]; } }; @Override public int describeContents() { return 0; } } /** * Note: This class is used as result only.<br/> * <i>This class was generated automatically from XBMC's JSON-RPC introspect.</i> */ public static class Currentwindow extends AbstractModel { // field names public static final String ID = "id"; public static final String LABEL = "label"; // class members public final Integer id; public final String label; /** * @param id * @param label */ public Currentwindow(Integer id, String label) { this.id = id; this.label = label; } /** * Construct from JSON object. * @param node JSON object representing a Currentwindow object */ public Currentwindow(JsonNode node) { id = node.get(ID).getIntValue(); // required value label = node.get(LABEL).getTextValue(); // required value } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(ID, id); node.put(LABEL, label); return node; } /** * Extracts a list of {@link Currentwindow} objects from a JSON array. * @param node ObjectNode containing the list of objects. * @param key Key pointing to the node where the list is stored. */ static List<Currentwindow> getGUIModelCurrentwindowList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode)node.get(key); final List<Currentwindow> l = new ArrayList<Currentwindow>(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new Currentwindow((JsonNode)a.get(i))); } return l; } return new ArrayList<Currentwindow>(0); } /** * Flatten this object into a Parcel. * @param parcel the Parcel in which the object should be written. * @param flags additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeValue(id); parcel.writeValue(label); } /** * Construct via parcel. */ protected Currentwindow(Parcel parcel) { id = parcel.readInt(); label = parcel.readString(); } /** * Generates instances of this Parcelable class from a Parcel. */ public static final Parcelable.Creator<Currentwindow> CREATOR = new Parcelable.Creator<Currentwindow>() { @Override public Currentwindow createFromParcel(Parcel parcel) { return new Currentwindow(parcel); } @Override public Currentwindow[] newArray(int n) { return new Currentwindow[n]; } }; @Override public int describeContents() { return 0; } } /** * Note: This class is used as result only.<br/> * <i>This class was generated automatically from XBMC's JSON-RPC introspect.</i> */ public static class Currentcontrol extends AbstractModel { // field names public static final String LABEL = "label"; // class members public final String label; /** * @param label */ public Currentcontrol(String label) { this.label = label; } /** * Construct from JSON object. * @param node JSON object representing a Currentcontrol object */ public Currentcontrol(JsonNode node) { label = node.get(LABEL).getTextValue(); // required value } @Override public JsonNode toJsonNode() { final ObjectNode node = OM.createObjectNode(); node.put(LABEL, label); return node; } /** * Extracts a list of {@link Currentcontrol} objects from a JSON array. * @param node ObjectNode containing the list of objects. * @param key Key pointing to the node where the list is stored. */ static List<Currentcontrol> getGUIModelCurrentcontrolList(JsonNode node, String key) { if (node.has(key)) { final ArrayNode a = (ArrayNode)node.get(key); final List<Currentcontrol> l = new ArrayList<Currentcontrol>(a.size()); for (int i = 0; i < a.size(); i++) { l.add(new Currentcontrol((JsonNode)a.get(i))); } return l; } return new ArrayList<Currentcontrol>(0); } /** * Flatten this object into a Parcel. * @param parcel the Parcel in which the object should be written. * @param flags additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel parcel, int flags) { parcel.writeValue(label); } /** * Construct via parcel. */ protected Currentcontrol(Parcel parcel) { label = parcel.readString(); } /** * Generates instances of this Parcelable class from a Parcel. */ public static final Parcelable.Creator<Currentcontrol> CREATOR = new Parcelable.Creator<Currentcontrol>() { @Override public Currentcontrol createFromParcel(Parcel parcel) { return new Currentcontrol(parcel); } @Override public Currentcontrol[] newArray(int n) { return new Currentcontrol[n]; } }; @Override public int describeContents() { return 0; } } } /** * API Name: <tt>GUI.Property.Name</tt> */ public interface PropertyName { public final String CURRENTWINDOW = "currentwindow"; public final String CURRENTCONTROL = "currentcontrol"; public final String SKIN = "skin"; public final String FULLSCREEN = "fullscreen"; public final static Set<String> values = new HashSet<String>(Arrays.asList(CURRENTWINDOW, CURRENTCONTROL, SKIN, FULLSCREEN)); } /** * API Name: <tt>GUI.Window</tt> */ public interface Window { public final String HOME = "home"; public final String PROGRAMS = "programs"; public final String PICTURES = "pictures"; public final String FILEMANAGER = "filemanager"; public final String FILES = "files"; public final String SETTINGS = "settings"; public final String MUSIC = "music"; public final String VIDEO = "video"; public final String VIDEOS = "videos"; public final String TV = "tv"; public final String PVR = "pvr"; public final String PVRGUIDEINFO = "pvrguideinfo"; public final String PVRRECORDINGINFO = "pvrrecordinginfo"; public final String PVRTIMERSETTING = "pvrtimersetting"; public final String PVRGROUPMANAGER = "pvrgroupmanager"; public final String PVRCHANNELMANAGER = "pvrchannelmanager"; public final String PVRGUIDESEARCH = "pvrguidesearch"; public final String PVRCHANNELSCAN = "pvrchannelscan"; public final String PVRUPDATEPROGRESS = "pvrupdateprogress"; public final String PVROSDCHANNELS = "pvrosdchannels"; public final String PVROSDGUIDE = "pvrosdguide"; public final String PVROSDDIRECTOR = "pvrosddirector"; public final String PVROSDCUTTER = "pvrosdcutter"; public final String PVROSDTELETEXT = "pvrosdteletext"; public final String SYSTEMINFO = "systeminfo"; public final String TESTPATTERN = "testpattern"; public final String SCREENCALIBRATION = "screencalibration"; public final String GUICALIBRATION = "guicalibration"; public final String PICTURESSETTINGS = "picturessettings"; public final String PROGRAMSSETTINGS = "programssettings"; public final String WEATHERSETTINGS = "weathersettings"; public final String MUSICSETTINGS = "musicsettings"; public final String SYSTEMSETTINGS = "systemsettings"; public final String VIDEOSSETTINGS = "videossettings"; public final String NETWORKSETTINGS = "networksettings"; public final String SERVICESETTINGS = "servicesettings"; public final String APPEARANCESETTINGS = "appearancesettings"; public final String PVRSETTINGS = "pvrsettings"; public final String TVSETTINGS = "tvsettings"; public final String SCRIPTS = "scripts"; public final String VIDEOFILES = "videofiles"; public final String VIDEOLIBRARY = "videolibrary"; public final String VIDEOPLAYLIST = "videoplaylist"; public final String LOGINSCREEN = "loginscreen"; public final String PROFILES = "profiles"; public final String SKINSETTINGS = "skinsettings"; public final String ADDONBROWSER = "addonbrowser"; public final String YESNODIALOG = "yesnodialog"; public final String PROGRESSDIALOG = "progressdialog"; public final String VIRTUALKEYBOARD = "virtualkeyboard"; public final String VOLUMEBAR = "volumebar"; public final String SUBMENU = "submenu"; public final String FAVOURITES = "favourites"; public final String CONTEXTMENU = "contextmenu"; public final String INFODIALOG = "infodialog"; public final String NUMERICINPUT = "numericinput"; public final String GAMEPADINPUT = "gamepadinput"; public final String SHUTDOWNMENU = "shutdownmenu"; public final String MUTEBUG = "mutebug"; public final String PLAYERCONTROLS = "playercontrols"; public final String SEEKBAR = "seekbar"; public final String MUSICOSD = "musicosd"; public final String ADDONSETTINGS = "addonsettings"; public final String VISUALISATIONSETTINGS = "visualisationsettings"; public final String VISUALISATIONPRESETLIST = "visualisationpresetlist"; public final String OSDVIDEOSETTINGS = "osdvideosettings"; public final String OSDAUDIOSETTINGS = "osdaudiosettings"; public final String VIDEOBOOKMARKS = "videobookmarks"; public final String FILEBROWSER = "filebrowser"; public final String NETWORKSETUP = "networksetup"; public final String MEDIASOURCE = "mediasource"; public final String PROFILESETTINGS = "profilesettings"; public final String LOCKSETTINGS = "locksettings"; public final String CONTENTSETTINGS = "contentsettings"; public final String SONGINFORMATION = "songinformation"; public final String SMARTPLAYLISTEDITOR = "smartplaylisteditor"; public final String SMARTPLAYLISTRULE = "smartplaylistrule"; public final String BUSYDIALOG = "busydialog"; public final String PICTUREINFO = "pictureinfo"; public final String ACCESSPOINTS = "accesspoints"; public final String FULLSCREENINFO = "fullscreeninfo"; public final String KARAOKESELECTOR = "karaokeselector"; public final String KARAOKELARGESELECTOR = "karaokelargeselector"; public final String SLIDERDIALOG = "sliderdialog"; public final String ADDONINFORMATION = "addoninformation"; public final String MUSICPLAYLIST = "musicplaylist"; public final String MUSICFILES = "musicfiles"; public final String MUSICLIBRARY = "musiclibrary"; public final String MUSICPLAYLISTEDITOR = "musicplaylisteditor"; public final String TELETEXT = "teletext"; public final String SELECTDIALOG = "selectdialog"; public final String MUSICINFORMATION = "musicinformation"; public final String OKDIALOG = "okdialog"; public final String MOVIEINFORMATION = "movieinformation"; public final String TEXTVIEWER = "textviewer"; public final String FULLSCREENVIDEO = "fullscreenvideo"; public final String FULLSCREENLIVETV = "fullscreenlivetv"; public final String VISUALISATION = "visualisation"; public final String SLIDESHOW = "slideshow"; public final String FILESTACKINGDIALOG = "filestackingdialog"; public final String KARAOKE = "karaoke"; public final String WEATHER = "weather"; public final String SCREENSAVER = "screensaver"; public final String VIDEOOSD = "videoosd"; public final String VIDEOMENU = "videomenu"; public final String VIDEOTIMESEEK = "videotimeseek"; public final String MUSICOVERLAY = "musicoverlay"; public final String VIDEOOVERLAY = "videooverlay"; public final String STARTWINDOW = "startwindow"; public final String STARTUP = "startup"; public final String PERIPHERALS = "peripherals"; public final String PERIPHERALSETTINGS = "peripheralsettings"; public final String EXTENDEDPROGRESSDIALOG = "extendedprogressdialog"; public final String MEDIAFILTER = "mediafilter"; public final static Set<String> values = new HashSet<String>(Arrays.asList(HOME, PROGRAMS, PICTURES, FILEMANAGER, FILES, SETTINGS, MUSIC, VIDEO, VIDEOS, TV, PVR, PVRGUIDEINFO, PVRRECORDINGINFO, PVRTIMERSETTING, PVRGROUPMANAGER, PVRCHANNELMANAGER, PVRGUIDESEARCH, PVRCHANNELSCAN, PVRUPDATEPROGRESS, PVROSDCHANNELS, PVROSDGUIDE, PVROSDDIRECTOR, PVROSDCUTTER, PVROSDTELETEXT, SYSTEMINFO, TESTPATTERN, SCREENCALIBRATION, GUICALIBRATION, PICTURESSETTINGS, PROGRAMSSETTINGS, WEATHERSETTINGS, MUSICSETTINGS, SYSTEMSETTINGS, VIDEOSSETTINGS, NETWORKSETTINGS, SERVICESETTINGS, APPEARANCESETTINGS, PVRSETTINGS, TVSETTINGS, SCRIPTS, VIDEOFILES, VIDEOLIBRARY, VIDEOPLAYLIST, LOGINSCREEN, PROFILES, SKINSETTINGS, ADDONBROWSER, YESNODIALOG, PROGRESSDIALOG, VIRTUALKEYBOARD, VOLUMEBAR, SUBMENU, FAVOURITES, CONTEXTMENU, INFODIALOG, NUMERICINPUT, GAMEPADINPUT, SHUTDOWNMENU, MUTEBUG, PLAYERCONTROLS, SEEKBAR, MUSICOSD, ADDONSETTINGS, VISUALISATIONSETTINGS, VISUALISATIONPRESETLIST, OSDVIDEOSETTINGS, OSDAUDIOSETTINGS, VIDEOBOOKMARKS, FILEBROWSER, NETWORKSETUP, MEDIASOURCE, PROFILESETTINGS, LOCKSETTINGS, CONTENTSETTINGS, SONGINFORMATION, SMARTPLAYLISTEDITOR, SMARTPLAYLISTRULE, BUSYDIALOG, PICTUREINFO, ACCESSPOINTS, FULLSCREENINFO, KARAOKESELECTOR, KARAOKELARGESELECTOR, SLIDERDIALOG, ADDONINFORMATION, MUSICPLAYLIST, MUSICFILES, MUSICLIBRARY, MUSICPLAYLISTEDITOR, TELETEXT, SELECTDIALOG, MUSICINFORMATION, OKDIALOG, MOVIEINFORMATION, TEXTVIEWER, FULLSCREENVIDEO, FULLSCREENLIVETV, VISUALISATION, SLIDESHOW, FILESTACKINGDIALOG, KARAOKE, WEATHER, SCREENSAVER, VIDEOOSD, VIDEOMENU, VIDEOTIMESEEK, MUSICOVERLAY, VIDEOOVERLAY, STARTWINDOW, STARTUP, PERIPHERALS, PERIPHERALSETTINGS, EXTENDEDPROGRESSDIALOG, MEDIAFILTER)); } }