Add Settings JSON RPC methods

This commit is contained in:
Synced Synapse 2015-12-14 19:21:04 +00:00
parent 346cd06344
commit 9f159460f1
1 changed files with 381 additions and 0 deletions

View File

@ -0,0 +1,381 @@
/*
* Copyright 2015 Synced Synapse. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.xbmc.kore.jsonrpc.method;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.xbmc.kore.jsonrpc.ApiException;
import org.xbmc.kore.jsonrpc.ApiMethod;
/**
* All JSON RPC methods in Settings.*
*/
public class Settings {
// Get the settings from:
// https://github.com/xbmc/xbmc/blob/master/system/settings/settings.xml
// The settings are only defined here on as as-needed basis
// lookandfeel.skin
// lookandfeel.skinsettings
// lookandfeel.skintheme
// lookandfeel.skincolors
// lookandfeel.font
// lookandfeel.skinzoom
// lookandfeel.startupwindow
// lookandfeel.soundskin
// lookandfeel.stereostrength
// lookandfeel.enablerssfeeds
// lookandfeel.rssedit
// locale.language
// locale.country
// locale.charset
// locale.keyboardlayouts
// locale.timezonecountry
// locale.timezone
// locale.shortdateformat
// locale.longdateformat
// locale.timeformat
// locale.use24hourclock
// locale.temperatureunit
// locale.speedunit
// filelists.showparentdiritems
// filelists.showextensions
// filelists.ignorethewhensorting
// filelists.allowfiledeletion
// filelists.showaddsourcebuttons
// filelists.showhidden
// screensaver.mode
// screensaver.settings
// screensaver.preview
// screensaver.time
// screensaver.usemusicvisinstead
// screensaver.usedimonpause
// window.width
// window.height
// videolibrary.showunwatchedplots
// videolibrary.actorthumbs
// myvideos.flatten
// videolibrary.flattentvshows
// videolibrary.tvshowsselectfirstunwatcheditem
// videolibrary.tvshowsincludeallseasonsandspecials
// videolibrary.showallitems
// videolibrary.groupmoviesets
// videolibrary.groupsingleitemsets
// videolibrary.showemptytvshows
// videolibrary.updateonstartup
// videolibrary.backgroundupdate
// videolibrary.cleanup
// videolibrary.export
// videolibrary.import
// locale.audiolanguage
// videoplayer.preferdefaultflag
// videoplayer.autoplaynextitem
// videoplayer.seeksteps
// videoplayer.seekdelay
// videoplayer.adjustrefreshrate
// videoplayer.usedisplayasclock
// videoplayer.errorinaspect
// videoplayer.stretch43
// videoplayer.teletextenabled
// videoplayer.teletextscale
// videoplayer.stereoscopicplaybackmode
// videoplayer.quitstereomodeonstop
// videoplayer.rendermethod
// videoplayer.hqscalers
// videoplayer.useamcodec
// videoplayer.usevdpau
// videoplayer.usevdpaumixer
// videoplayer.usevdpaumpeg2
// videoplayer.usevdpaumpeg4
// videoplayer.usevdpauvc1
// videoplayer.usevaapi
// videoplayer.usevaapimpeg2
// videoplayer.usevaapimpeg4
// videoplayer.usevaapivc1
// videoplayer.prefervaapirender
// videoplayer.usedxva2
// videoplayer.useomxplayer
// videoplayer.useomx
// videoplayer.usevideotoolbox
// videoplayer.usevda
// myvideos.selectaction
// myvideos.extractflags
// myvideos.extractchapterthumbs
// myvideos.replacelabels
// myvideos.extractthumb
// myvideos.stackvideos
// locale.subtitlelanguage
// subtitles.parsecaptions
// subtitles.align
// subtitles.stereoscopicdepth
// subtitles.font
// subtitles.height
// subtitles.style
// subtitles.color
// subtitles.charset
// subtitles.overrideassfonts
// subtitles.languages
// subtitles.storagemode
// subtitles.custompath
// subtitles.pauseonsearch
// subtitles.downloadfirst
// subtitles.tv
// subtitles.movie
// dvds.autorun
// dvds.playerregion
// dvds.automenu
// bluray.playerregion
// disc.playback
// accessibility.audiovisual
// accessibility.audiohearing
// accessibility.subhearing
// scrapers.moviesdefault
// scrapers.tvshowsdefault
// scrapers.musicvideosdefault
// pvrmanager.enabled
// pvrmanager.hideconnectionlostwarning
// pvrmanager.syncchannelgroups
// pvrmanager.backendchannelorder
// pvrmanager.usebackendchannelnumbers
// pvrmanager.channelmanager
// pvrmanager.groupmanager
// pvrmanager.channelscan
// pvrmanager.resetdb
// pvrmenu.displaychannelinfo
// pvrmenu.closechannelosdonswitch
// pvrmenu.iconpath
// pvrmenu.searchicons
// epg.daystodisplay
// epg.selectaction
// epg.hidenoinfoavailable
// epg.epgupdate
// epg.preventupdateswhileplayingtv
// epg.ignoredbforclient
// epg.resetepg
// pvrplayback.playminimized
// pvrplayback.startlast
// pvrplayback.signalquality
// pvrplayback.scantime
// pvrplayback.confirmchannelswitch
// pvrplayback.channelentrytimeout
// pvrplayback.fps
// pvrplayback.enableradiords
// pvrplayback.trafficadvisory
// pvrplayback.trafficadvisoryvolume
// pvrplayback.sendrdstrafficmsg
// pvrrecord.instantrecordtime
// pvrrecord.defaultpriority
// pvrrecord.defaultlifetime
// pvrrecord.marginstart
// pvrrecord.marginend
// pvrrecord.preventduplicateepisodes
// pvrrecord.timernotifications
// pvrpowermanagement.enabled
// pvrpowermanagement.backendidletime
// pvrpowermanagement.setwakeupcmd
// pvrpowermanagement.prewakeup
// pvrpowermanagement.dailywakeup
// pvrpowermanagement.dailywakeuptime
// pvrparental.enabled
// pvrparental.pin
// pvrparental.duration
// pvrclient.menuhook
// pvrtimers.timertypefilter
// pvrtimers.hidedisabledtimers
// musiclibrary.showcompilationartists
// musiclibrary.downloadinfo
// musiclibrary.albumsscraper
// musiclibrary.artistsscraper
// musiclibrary.overridetags
// musiclibrary.showallitems
// musiclibrary.updateonstartup
// musiclibrary.backgroundupdate
// musiclibrary.cleanup
// musiclibrary.export
// musiclibrary.import
// musicplayer.autoplaynextitem
// musicplayer.queuebydefault
// musicplayer.seeksteps
// musicplayer.seekdelay
// musicplayer.replaygaintype
// musicplayer.replaygainpreamp
// musicplayer.replaygainnogainpreamp
// musicplayer.replaygainavoidclipping
// musicplayer.crossfade
// musicplayer.crossfadealbumtracks
// musicplayer.visualisation
// musicfiles.usetags
// musicfiles.trackformat
// musicfiles.nowplayingtrackformat
// musicfiles.librarytrackformat
// musicfiles.findremotethumbs
// audiocds.autoaction
// audiocds.usecddb
// audiocds.recordingpath
// audiocds.trackpathformat
// audiocds.encoder
// audiocds.settings
// audiocds.ejectonrip
// mymusic.startwindow
// mymusic.songthumbinvis
// mymusic.defaultlibview
// pictures.generatethumbs
// pictures.showvideos
// pictures.displayresolution
// slideshow.staytime
// slideshow.displayeffects
// slideshow.shuffle
// weather.currentlocation
// weather.addon
// weather.addonsettings
// services.devicename
// services.upnpserver
// services.upnpannounce
// services.upnplookforexternalsubtitles
// services.upnpcontroller
// services.upnprenderer
// services.webserver
// services.webserverport
// services.webserverusername
// services.webserverpassword
// services.webskin
// services.esenabled
// services.esport
// services.esportrange
// services.esmaxclients
// services.esallinterfaces
// services.esinitialdelay
// services.escontinuousdelay
// services.zeroconf
// services.airplay
// services.airplayvolumecontrol
// services.useairplaypassword
// services.airplaypassword
// services.airplayvideosupport
// smb.winsserver
// smb.workgroup
// videoscreen.monitor
// videoscreen.screen
// videoscreen.resolution
// videoscreen.screenmode
// videoscreen.fakefullscreen
// videoscreen.blankdisplays
// videoscreen.delayrefreshchange
// videoscreen.stereoscopicmode
// videoscreen.preferedstereoscopicmode
// videoscreen.vsync
// videoscreen.guicalibration
// videoscreen.testpattern
// videoscreen.limitedrange
// videoscreen.dither
// videoscreen.ditherdepth
// audiooutput.audiodevice
// audiooutput.channels
// audiooutput.config
// audiooutput.samplerate
// audiooutput.stereoupmix
// audiooutput.maintainoriginalvolume
// audiooutput.processquality
// audiooutput.streamsilence
// audiooutput.supportdtshdcpudecoding
// audiooutput.dspaddonsenabled
// audiooutput.dspsettings
// audiooutput.dspresetdb
// audiooutput.guisoundmode
// audiooutput.passthrough
// audiooutput.passthroughdevice
// audiooutput.ac3passthrough
// audiooutput.ac3transcode
// audiooutput.eac3passthrough
// audiooutput.dtspassthrough
// audiooutput.truehdpassthrough
// audiooutput.dtshdpassthrough
// input.peripherals
// input.enablemouse
// input.enablejoystick
// network.usehttpproxy
// network.httpproxytype
// network.httpproxyserver
// network.httpproxyport
// network.httpproxyusername
// network.httpproxypassword
// network.bandwidth
// powermanagement.displaysoff
// powermanagement.shutdowntime
// powermanagement.shutdownstate
// powermanagement.wakeonaccess
// eventlog.enabled
// eventlog.enablednotifications
// eventlog.show
// debug.showloginfo
// debug.extralogging
// debug.setextraloglevel
// debug.screenshotpath
// masterlock.lockcode
// masterlock.startuplock
// masterlock.maxretries
// cache.harddisk
// cachevideo.dvdrom
// cachevideo.lan
// cachevideo.internet
// cacheaudio.dvdrom
// cacheaudio.lan
// cacheaudio.internet
// cachedvd.dvdrom
// cachedvd.lan
// cacheunknown.internet
// system.playlistspath
// general.addonupdates
// general.addonnotifications
// general.addonforeignfilter
// general.addonbrokenfilter
public final static String PVRMANAGER_ENABLED = "pvrmanager.enabled";
/**
* Retrieves the value of a setting
* Note, this returns a raw JsonNode. It is the responsibility of the caller to
* retrieve and parse the value, taking into account the specific setting type
* that was requested
*/
public static final class GetSettingValue extends ApiMethod<JsonNode> {
public final static String METHOD_NAME = "Settings.GetSettingValue";
/**
* Retrieves the value of a setting
* Note, this returns a raw JsonNode. It is the responsibility of the caller to
* retrieve and parse the value, taking into account the specific setting type
* that was requested
*/
public GetSettingValue(String setting) {
super();
addParameterToRequest("setting", setting);
}
@Override
public String getMethodName() {
return METHOD_NAME;
}
@Override
public JsonNode resultFromJson(ObjectNode jsonObject) throws ApiException {
return jsonObject.get(RESULT_NODE).get("value");
}
}
}