Add Settings JSON RPC methods
This commit is contained in:
parent
346cd06344
commit
9f159460f1
|
@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue