Skinning Manual
Development | Skin development | Skinning Manual |
XBMC includes a new GUI library written from scratch. This library allows you to skin/change everything you see in XBMC, from the images, the sizes and positions of all controls, colours, fonts, and text, through to altering navigation and even adding new functionality.
The skin system is quite complex, and this portion of the manual is dedicated to providing in depth information on how it all works, along with tips to make the experience a little more pleasant.
If you are just getting started with skinning XBMC, then it is suggested that the best way to learn is by modifying one of the many existing skins that are available. The default skin, Confluence, includes almost all the various tricks and features that make the XBMC skinning engine so powerful, so is an ideal place to start. You may wish to start by having a look through the tutorial section on skinning XBMC as well as the "Skinning XBMC" article, and try modifying a window or two by adding a button, or altering the textures or layout.
Anatomy of a Skin
XBMC skins once installed are located in userdata addons folder. This is the folder where all skins are placed and listed.
Any additional skins you create, or download from or be installed via zip XBMC will load and ask you if you would like to load the skin and also allow you to load them up from within the Appearance Settings. It is suggested that if you want to make your own skin, then starting by copying an existing skins files over into a new folder (let's say skin/myskin) is a good place to start. You can then edit each of the files as you become more familiar with the skinning system.
Each skin folder contains several subdirectorys, and one file:
- myskin/720p
- This is a resolution-specific directory. XBMC can run in multiple resolutions, and thus can use different files for some resolutions (as there is a big difference between NTSC at 720x480 pixels and 1080i at 1920x1080 pixels!)
- myskin/backgrounds
- optional folder containing the background images used in the skin
- myskin/colors
- contains a defaults.xml file which is used to define the colours used in the skin
- myskin/font
- This subdirectory contains all fonts used by the skin. you can add/replace fonts here
- myskin/language
- contains several subfolders for each language (English/strings.po). you can define strings used in your skin in this file.
- myskin/media
- This subdirectory contains all the media files (.png/.gif/.jpg...) You can replace/edit these as you like.
- myskin/_screenshots
- place 10 jpeg screenshots (1280x720) of your skin in here. Name them screenshot01.jpg, screenshot02.jpg ect.
- myskin/sounds
- put the sounds (.wav files) you're using in the skin in this folder as well as a sounds.xml file which defines what sounds are used where.
- myskin/addon.xml
- This contains the information that XBMC uses to find the other files that XBMC requires to describe it's skin. It also contains credits information, and versioning information.
- myskin/changelog.txt
- a textfile detailing what has changed in every version of the skin
- myskin/fanart.jpg
- a 1280x720 or 1920x1080 jpeg fanart image for your skin
- myskin/icon.png
- a 256x256 png image for your skin
- myskin/LICENSE.txt
- we recommend to include a Creative Commons license file in your skin: http://creativecommons.org/licenses/
See here for the order in which it looks for skin files.
Skin Themes
All the basic media files for a skin should be compressed into the Textures.xbt file, and placed in the media/ folder. You can use the tool Texturepacker for this. All the images that make up the default skin theme should be in the Textures.xbt file.
In addition to this, XBMC allows other .xbt files in the media/ folder, each one representing a different theme for your skin. For instance, you could tint all your main textures a red colour, and create a new theme package Red.xbt. This gives users more choice in the look of a particular skin, and only the textures change when you change themes – the layout stays the same. If the user has selected a theme, then when a control requires a texture, XBMC will first look in the <themename>.xbt file for the texture. It will fall back to the Textures.xbt file if <themename>.xbt doesn't contain the image. This means that the theme .xbt files need only contain the changed textures – all other textures will fallback to using Textures.xbt as usual.
A suggested method of creating a theme is as follows:
- Run Texturepacker.exe on the folder containing the default texture files, to generate Textures.xbt as you would normally do.
- Identify the textures you wish to have themed and copy them to a separate folder.
- Create a separate folder for each theme outside of your normal skin work area, and place the altered copies of each of the textures in them.
- Run Texturepacker.exe on each of the theme folders created in step 3 to create the themed .xbt files (note you can use the -output switch with Texturepacker.exe to name the theme appropriately).
- Place Textures.xbt and each of the theme .xbt files in the media/ folder of your skin. XBMC will automatically pick them up.
Includes
The other special (and arguably the most important skinning file of all) is includes.xml. This is, as its title suggests, a place from which you can define the default look, size, and positioning of controls, to save you replicating many of the control's attributes throughout the window .xml files. For instance, you can setup the size, and textures used for a button control, thus allowing you to leave those details out in the rest of the skin files, unless of course you want to override the default look or size etc. in a particular window.
This is extremely valuable as it allows you to greatly simplify a lot of the work in building a skin. For one thing, it means that once you have include files setup, many of the default parameters for a different resolution can be done by just altering the parameters within the include file(s) for the different resolution.
With the 2.1 skinning engine, you can infact have more than one include file - you can specify the file attribute when including from a different file, allowing you to have an include file dedicated to a particular set of attributes.
The layout of an includes file is as follows.
<?xml version="1.0" encoding="UTF-8"?> <includes> <include name="whitetext"> <textcolor>ffffffff</textcolor> </include> <include file="listdefaults.xml" /> <default type="button"> <include>whitetext</include> </default> <constant name="leftedge">50</constant> </includes>
You'll notice in the above example that we have 4 different types of includes. The first <include> tag basically allows a substitution of the tags underneath it whenever it occurs. For instance, if in a window .xml file you have this:
<control type="togglebutton"> <include>whitetext</include> ... other tags go here </control>
Then it would substitute the <textcolor> tag for where the include tag is. You can have as many includes as you like, and as many tags can be inside an include - even complete controls, or complete control groups.
The second <include> tag in the example demonstrates how to include from a different file. As there is no include name specified, it will include the contents of the entire file at that point.
The <default> tag is similar to an include, except that it is used in every control of that type - even if you don't specify that the control is to use includes. Thus every buttoncontrol will have the whitetext include in it. Note that you can override this by specifying the <textcolor> tag in the buttoncontrol.
And finally, the <constant> tag allows you to define a numeric (floating point) constant by name for use in place of numeric values (<posx>, height="" etc.) would otherwise be used. This allows alignment of items using the same position values which can then easily be altered in one place.
Variables
Variables are a special kind of include. You can put them in Includes.xml. But usually, to keep them separate, Includes.xml gets extended with a file named Variables.xml. You can extend on the file Includes.xml by adding a line like this:
<include file="Variables.xml" />
Variables can be used in textures or labels/textbox/buttons ect. Instead of having to include two whole controls with a condition, they allow you to just apply the condition to the actual texture or label. Meaning less controls to maintain ect. The values in the variable are read from top to bottom and the first condition that is met gets used. The last value usually has no condition and it's content acts as a fallback. The following example shows the album label if the player has audio, the year if there is no audio and no fallback is used (because there either is or is not any audio).
<variable name="Example"> <value condition="Player.HasAudio">$INFO[ListItem.Album]</value> <value condition="!Player.HasAudio">$INFO[ListItem.Year]</value> <value>-</value> </variable>
You can use a variable in a label control like this:
<label>$VAR[Example]</label>
The Window XML Files
The other xml files each define the skin for a single window. They all have the same basic layout, allowing you to place different controls on the window, and define how navigation should operate.
A list of all window .xml files and what they represent may be found in Appendix I: List of Windows.
The important thing to remember is that each window has a unique identifying number (id). This is how XBMC identifies the window from within the source code.
Furthermore, many of the controls within each window should have a unique id as well, unless they're just used as images or labels where navigation is unimportant and XBMC does not need to be able to identify them uniquely. The window id's are all listed in the Appendix I: List of Windows.
The structure of the window .xml files can be found below in the Window Structure.
addon.xml
Windows
Window Structure
About the Window XML Files
Each window in an Kodi skin is represented by a single .xml file. See here for a list of the standard windows and links to their .xml files.
The important thing to remember is that each window has a unique identifying name. This is how Kodi identifies the window from within the source code. The window names are all listed in the Appendix I: List of Windows.
Each .xml file has the same basic structure – it starts with some heading information that pertains to the window as a whole, and then contains a <controls> block within which all the controls that describe the window are defined. Many of the controls within each window should have a unique id's, unless they're just used as images or labels where navigation is unimportant and Kodi does not need to be able to identify them uniquely.
Window Header
<?xml version="1.0" encoding="UTF-8"?> <window> <onload>RunScript(script.foobar)</onload> <onunload>SetProperty(foo,bar)</onunload> <defaultcontrol always="false">2</defaultcontrol> <menucontrol>9000</menucontrol> <backgroundcolor>0xff00ff00</backgroundcolor> <views>50,51,509,510</views> <visible>Window.IsActive(Home)</visible> <animation effect="fade" time="100">WindowOpen</animation> <animation effect="slide" end="0,576" time="100">WindowClose</animation> <zorder>1</zorder> <coordinates> <left>40</left> <top>50</top> <origin x="100" y="50">Window.IsActive(Home)</origin> </coordinates> <previouswindow>MyVideos</previouswindow> <controls> <control> </control> .... </controls> </window>
One thing to note is that all tag names are lower case. XML tag names are case sensitive!
The header contains the following tags:
- onload
- Optional: the build-in function to execute when the window opens
- onunload
- Optional: the build-in function to execute when the window closes
- defaultcontrol
- This specifies the default control of the window. This is the id of the control that will receive focus when the window is first opened. Note that most Kodi windows save the current focus when you leave the window, and will return to the last focused item when you return to a window. This behaviour can be stopped by specifying the attribute always="true".
- menucontrol
- This specifies the control that will be focused when the users presses the 'menu' / 'm' button.
- backgroundcolor
- Specifies whether the window needs clearing prior to rendering, and if so which colour to use. Defaults to clearing to black. Set to 0 (or 0x00000000) to have no clearing at all. If your skin always renders opaque textures over the entire screen (eg using a backdrop image or multiple backdrop images) then setting the background color to 0 is the most optimal value and may improve performance significantly on slow GPUs.
- visible
- Specifies the conditions under which a dialog will be visible. Kodi evaluates this at render time, and shows or hides a dialog depending on the evaluation of this tag. See here for more details. Applies only to type="dialog" windows.. By default if a dialog visibility depends on visible condition it will be set as Modeless. A modeless dialog won't be able to catch input as any keystroke/action will be sent to the underlying window. Since v20 you can override this behaviour by setting modality="modal" on the root element of the window/dialog XML definition.
- animation
- Specifies the animation effect to perform when opening or closing the window. See here for more details.
- zorder
- This specifies the “depth” that the window should be drawn at. Windows with higher zorder are drawn on top of windows with lower z-order. All dialogs by default have zorder 1, so if you have a particular dialog that you want underneath all others, give it a zorder of 0. (Note that the normal render order is: The base window, then the overlays (music + video), then dialogs. <zorder> only effects the rendering of the dialogs.
- coordinates
- This block is used to specify how Kodi should compute the coordinates of all controls.
- left
- Sets the horizontal “origin” position of the window. Defaults to 0 if not present.
- top
- Sets the vertical “origin” position of the window. Defaults to 0 if not present.
- origin
- Sets a conditional origin for the window. The window will display at (x,y) whenever the origin condition is met. You can have as many origin tags as you like – they are evaluated in the order present in the file, and the first one for which the condition is met wins. If none of the origin conditions are met, we fall back to the <left> and <top> tags.
- previouswindow
- This can be used to specify a window to force Kodi to go to on press of the Back button. Normally Kodi keeps a “window stack” of previous windows to handle this. This tag allows you to override this behaviour. The value is the name of the window.
- views
- This tag lets you use view id's beyond 50 to 59 it also lets you set the order in which they cycle with the change view button in the skin. Only useful in My<Foo>.xml windows.
- controls
- This is the block the defines all controls that will appear on this window.
The Different Types of Controls
Kodi supports many different types of controls.
Click here for the control types and what they all do.
Some of these controls are required on specific windows, as they're necessary for that window to perform it's duty, or, the contents of the control are only valid on a particular window. The mandatory controls for each window are listed here. While the controls are mandatory, you can ofcourse move them about and change their appearance within the windows to your hearts content!
Adding Extra Windows
All of the windows in the window list are defined within the executable of Kodi itself, as most of them have a specific purpose. However, the skinner may add extra windows as and when they are needed or wanted. The only restriction to this is that only controls that do not require specific source code to operate can be used. This is not too much of a restriction though, as many skinners have found out.
To add an extra window, all you need to do is design up the window's .xml file in the usual way, assign it an <id> within the 1100–1199 range (see window list), and then name the file customN.xml, where N is a number or name. You can have as many as you like, as long as they have unique <id>'s, and are named differently. Then just define the type of window you want, the coordinate system and so on, add the controls and setup the navigation. To activate your window, you can do it by adding a button control elsewhere in the skin, or you can get it to popup on a press of the controller or remote via keymap.xml and so on. Basically you just need to run ActivateWindow(id) from a suitable place.
Controls
Controls are the substance of your skin. They define everything from buttons, to text labels, to visualization placement. This portion of the manual will explain each and every control in detail.
Label Control
Fade Label Control
Button Control
The button control is used for creating push buttons in Kodi. You can choose the position, size, and look of the button, as well as choosing what action(s) should be performed when pushed.
Example
<control type="button" id="1"> <description>My first button control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <texturefocus colordiffuse="FFFFAAFF">myfocustexture.png</texturefocus> <texturenofocus colordiffuse="FFFFAAFF">mynormaltexture.png</texturenofocus> <label>29</label> <wrapmultiline>true</wrapmultiline> <font>font12</font> <textcolor>FFFFFFFF</textcolor> <focusedcolor>FFFFFFFF</focusedcolor> <disabledcolor>80FFFFFF</disabledcolor> <invalidcolor>FFFFFFFF</invalidcolor> <align></align> <aligny></aligny> <textoffsetx></textoffsetx> <textoffsety></textoffsety> <pulseonselect></pulseonselect> <onclick>ActivateWindow(MyVideos)</onclick> <onfocus></onfocus> <onunfocus></onunfocus> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> </control>
Available tags
In addition to the Default_control_tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
texturefocus | Specifies the image file which should be displayed when the button has focus. See here for additional information about textures. |
texturenofocus | Specifies the image file which should be displayed when the button does not have focus. |
label | The label used on the button. It can be a link into strings.po, or an actual text label. |
font | Font used for the button label. From fonts.xml. |
textcolor | Color used for displaying the button label. In AARRGGBB hex format, or a name from the colour theme. |
focusedcolor | Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the colour theme. |
disabledcolor | Color used for the button label if the button is disabled. In AARRGGBB hex format or a name from the colour theme. |
invalidcolor | Color used for the button if the user entered some invalid value. In AARRGGBB hex format or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the colour theme. |
angle | The angle the text should be rendered at, in degrees. A value of 0 is horizontal. |
align | Label horizontal alignment on the button. Defaults to left, can also be center or right. |
aligny | Label vertical alignment on the button. Defaults to top, can also be center. |
textoffsetx | Amount to offset the label from the left (or right) edge of the button when using left or right alignment. |
textoffsety | Amount to offset the label from the top edge of the button when using top alignment. |
textwidth | Will truncate any text that's too long. |
onclick | Specifies the action to perform when the button is pressed. Should be a built in function. See here for more information. You may have more than one <onclick> tag, and they'll be executed in sequence. |
onfocus | Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. See here for more information. |
onunfocus | Specifies the action to perform when the button loses focus. Should be a built in function. |
wrapmultiline | Will wrap the label across multiple lines if the label exceeds the control width. |
Multiselect Control
Image Control
The image control is used for displaying images in Kodi. You can choose the position, size, transparency and contents of the image to be displayed.
Example
<control type="image" id="1"> <description>My first image control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <fadetime>200</fadetime> <texture border="5" flipy="true" flipx="false">mytexture.png</texture> <bordertexture border="5" infill="false">mybordertexture.png</bordertexture> <bordersize>5</bordersize> <aspectratio>keep</aspectratio> </control>
Image Size and Type Restrictions
For the <texture> tags, and for all <texture> tags in other controls, there is a small set of rules that you should follow if at all possible:
Size
Images can be any size, though some graphics cards allow only power of 2 textures, so this may be a consideration. For the most case, it doesn't really matter what size things are - Kodi will quite happily load most files.
Formats
If you wish to use transparency, then use PNG. It is suggested that you use PNG and JPG as much as possible. Note that once the images are injected into Textures.xbt, they are not stored as JPG or PNG – rather they are stored in a native format used for GPUs for faster loading, such as ARGB or DXTc textures. The size of the images (in kb) is therefore not as important as the size of the images in pixels – so feel free to store them in a lossless (eg PNG) manner if you wish.
The only exception to this is if you require an animated texture. In this case, we support only animated GIF. There are also some animated gifs that may not work. Use ImageReady CS and make sure you set the gif-anim to “restore to background” and they should work fine.
Available tags and attributes
In addition to the default control tags, the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
aspectratio | This specifies how the image will be drawn inside the box defined by <width> and <height> . See here for more information.
|
texture | Specifies the image file which should be displayed. See here for additional information about textures. |
bordertexture | Specifies the image file which should be displayed as a border around the image. Use the <bordersize> to specify the size of the border. The <width> ,<height> box specifies the size of the image plus border. Set the argument infill="false" to hint to the GUI that the inner portion of the border doesn't have to be rendered.
|
bordersize | Specifies the size of the border. A single number specifies the border should be the same size all the way around the image, whereas a comma separated list of 4 values indicates left,top,right,bottom values. |
info | Specifies the information that this image control is presenting. Kodi will select the texture to use based on this tag. See here for more information. |
fadetime | This specifies a crossfade time that will be used whenever the underlying <texture> filename changes. The previous image will be held until the new image is ready, and then they will be crossfaded. This is particularly useful for a large thumbnail image showing the focused item in a list, or for fanart or other large backdrops. |
background | For images inside a container, you can specify background="true" to load the textures in a background worker thread. |
Texture Loading
Normal texture loading
The only textures loaded by Kodi are the ones currently visible. Nothing displays on the screen until all the images have been loaded in memory, this can result in "jerky" scrolling through panel containers. As you scroll down, Kodi will delay the scrolling animation until all of the images in the next row are loaded.
Background loading
Images are loaded one at a time in a background worker thread and are shown as soon as xbmc processes them. Has the benefit that images can be loaded into memory before they're visible, resulting in smoother scrolling and transitions.
Preloading
Used to automatically load the next items (or rows/columns in the case of a panel) while scrolling. Currently limited to 2.
MultiImage Control
The MultiImage control is used for displaying a slideshow of images from a folder in Kodi. You can choose the position and size of the slideshow, as well as timing information.
Example
<control type="multiimage" id="1"> <description>My first slideshow control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <imagepath>myimagepath</imagepath> <timeperimage>5000</timeperimage> <fadetime>2000</fadetime> <pauseatend>10000</pauseatend> <randomize>true</randomize> <loop>no</loop> <aspectratio>stretch</aspectratio> </control>
Image Size and Type Restrictions
For the <texture> tags, and for all <texture> tags in other controls, there is a small set of rules that you should follow if at all possible:
Formats
If you wish to use full 8 bit transparency, then use PNG. If you only need a single transparent colour, then you can specify this in the <colorkey> tag, so any image will be fine. It is suggested that you use PNG and JPG as much as possible. The size of the images (in kb) is therefore not as important as the size of the images in pixels – so feel free to store them in a lossless (eg PNG) manner if you wish.
The only exception to this is if you require an animated texture. In this case, we only support animated GIF. There are also SOME animated gifs that may not work. Use ImageReady CS and make sure you set the gif-anim to “restore to background” and they should work fine.
Available tags and attributes
In addition to the default control tags, the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
imagepath | Specifies the path containing the images to use for the slideshow. Kodi will first look inside the compressed Textures.xbt file for images, and then will look in the actual folder. The path is relative to the media/ folder if it is not specified completely. |
timeperimage | Time in milliseconds that an image is shown for. |
fadetime | Time in milliseconds to fade between images. |
pauseatend | Time in milliseconds to pause (in addition to <timeperimage>) on the last image at the end of a complete cycle through the images. Only useful if <loop> is set to yes. |
loop | If set to no, the last image will display indefinitely. Setting it to yes will loop around once they reach the last image. Defaults to yes. |
aspectratio | This specifies how the image will be drawn inside the box defined by <width> and <height>. See here for more info |
Radio button Control
The radio button control is used for creating push button on/off settings in Kodi. You can choose the position, size, and look of the button. When the user clicks on the radio button, the state will change, toggling the extra textures (textureradioon and textureradiooff). Used for settings controls.
Example
<control type="radiobutton" id="2"> <description>My first radiobutton control</description> <type>radiobutton</type> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <texturefocus>myfocustexture.png</texturefocus> <texturenofocus>mynormaltexture.png</texturenofocus> <textureradioonfocus colordiffuse="FFFFAAFF">myradiobutton.png</textureradioonfocus> <textureradioonnofocus colordiffuse="FFFFAAFF">myradiobutton.png</textureradioonnofocus> <textureradioofffocus colordiffuse="FFFFAAFF">myradiobutton_nf.png</textureradioofffocus> <textureradiooffnofocus colordiffuse="FFFFAAFF">myradiobutton_nf.png</textureradiooffnofocus> <selected>Player.Paused</selected> <onclick>PlayerControls(Pause)</onclick> <label>29</label> <font>font12</font> <textcolor>FFFFFFFF</textcolor> <focusedcolor>FFFFFFFF</focusedcolor> <disabledcolor>80FFFFFF</disabledcolor> <align>left</align> <aligny>center</aligny> <textoffsetx>4</textoffsetx> <textoffsety>5</textoffsety> <pulseonselect>false</pulseonselect> <onfocus></onfocus> <onunfocus></onunfocus> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> </control>
Available tags
In addition to the Default_control_tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
texturefocus |
Specifies the image file which should be displayed when the button has focus. See here for additional information about textures. |
texturenofocus | Specifies the image file which should be displayed when the button does not have focus. |
textureradioonfocus | Specifies the image file which should be displayed for the radio button portion when it's the button is on and focused. This texture is positioned on the right of the button – it's positioned 24 pixels from the right edge of the button, and 8 pixels above the center vertically. |
textureradioonnofocus | Specifies the image file which should be displayed for the radio button portion when it's the button is on and unfocused. This texture is positioned on the right of the button – it's positioned 24 pixels from the right edge of the button, and 8 pixels above the center vertically. |
textureradioon | A shortcut to set both of the above textures to the same image file. |
textureradioondisabled | Specifies the image file which should be displayed for the radio button portion when the button is on and disabled. |
textureradioofffocus | Specifies the image file which should be displayed for the radio button portion when the button is off and focused. |
textureradiooffnofocus | Specifies the image file which should be displayed for the radio button portion when the button is off and unfocused. |
textureradiooff | A shortcut to set both of the above textures to the same image file. |
textureradioondisabled | Specifies the image file which should be displayed for the radio button portion when the button is off and disabled. |
label | The label used on the button. It can be a link into strings.po, or an actual text label. |
label2 | Optional. Will display an 'on' or 'off' label. Only available if you specify an empty radiowidth and radioheight. |
font | Font used for the button label. From fonts.xml. |
textcolor | Color used for displaying the button label. In AARRGGBB hex format, or a name from the colour theme. |
focusedcolor | Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the colour theme. |
disabledcolor | Color used for the button label if the button is disabled. In AARRGGBB hex format, or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the colour theme. |
align | Label horizontal alignment on the button. Defaults to left, can also be center or right. |
aligny | Label vertical alignment on the button. Defaults to top, can also be center. |
textoffsetx | Amount to offset the label from the left (or right) edge of the button when using left or right alignment. |
textoffsety | Amount to offset the label from the top edge of the button when using top alignment. |
textwidth | Will truncate any text that's too long. |
selected | The boolean condition that when met will cause the control to become selected. see here for more information. |
onclick | The function to perform when the radio button is clicked. Should be a built in function. |
radioposx | X offset of the dot or radio button itself |
radioposy | Y offset of the dot or radio button itself |
radiowidth | Width in Pixels of the dot or radio button itself |
radioheight | Height in Pixels of the dot or radio button itself |
onfocus | Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. See here for more information. |
onunfocus | Specifies the action to perform when the button loses focus. Should be a built in function. |
Select button control
Toggle button control
The toggle button control is used for creating buttons that have 2 states. You can choose the position, size, and look of the button. When the user clicks on the toggle button, the state will change, toggling the extra textures (alttexturefocus and alttexturenofocus). Used for controls where two states are needed (pushed in and pushed out for instance).
Example
<control type="togglebutton" id="25"> <description>My first togglebutton control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <texturefocus>myfocustexture.png</texturefocus> <texturenofocus>mynormaltexture.png</texturenofocus> <alttexturefocus>myselectedTexture.png</alttexturefocus> <alttexturenofocus>myselectedTexture_nf.png</alttexturenofocus> <usealttexture>!Player.IsPaused</usealttexture> <label>29</label> <altlabel>29</altlabel> <font>font12</font> <textcolor>FFFFFFFF</textcolor> <disabledcolor>80FFFFFF</disabledcolor> <align>left</align> <aligny>center</aligny> <textoffsetx>4</textoffsetx> <textoffsety>5</textoffsety> <pulseonselect>false</pulseonselect> <onclick>Player.Pause</onclick> <onfocus></onfocus> <onunfocus></onunfocus> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> <wrapmultiline>false</wrapmultiline> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
texturefocus |
Specifies the image file which should be displayed when the button has focus. See here for additional information about texture tags. |
texturenofocus | Specifies the image file which should be displayed when the button does not have focus. |
alttexturefocus | Specifies the image file which should be displayed when the toggle button is in it's selected state. This texture replaces the <texturefocus> texture when the toggle button is selected. |
alttexturenofocus | Specifies the image file which should be displayed when the button is in it's selected state but unfocused. |
usealttexture |
Specifies the conditions under which the Alternative Textures should be shown. Some toggle button controls are handled by Kodi internally, but any extra ones that the skinner has can be controlled using this tag. See here for more information. |
label | The label used on the button. It can be a link into strings.po, or an actual text label. |
altlabel | The alternate label used on the button. It can be a link into strings.po, or an actual text label. |
altclick | The alternate action to perform when the button is pressed. Should be a built in function. See here for more information. You may have more than one <altclick> tag, and they'll be executed in sequence. |
font | Font used for the button label. From fonts.xml. |
textcolor | Color used for displaying the button label. In AARRGGBB hex format, or a name from the colour theme. |
disabledcolor | Color used for the button label if the button is disabled. In AARRGGBB hex format, or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text. In AARRGGBB hex format, or a name from the colour theme. |
align | Label horizontal alignment on the button. Defaults to left, can also be center or right. |
aligny | Label vertical alignment on the button. Defaults to top, can also be center. |
textoffsetx | Amount to offset the label from the left (or right) edge of the button when using left or right alignment. |
textoffsety | Amount to offset the label from the top edge of the button when using top alignment. |
textwidth | Will truncate any text that's too long. |
onclick |
Specifies the action to perform when the button is pressed. Should be a built in function. See here for more information. You may have more than one <onclick> tag, and they'll be executed in sequence. |
onfocus |
Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. See here for more information. |
onunfocus |
Specifies the action to perform when the button loses focus. Should be a built in function. |
wrapmultiline |
Allows wrapping on the label across multiple lines. Defaults to false. |
Spin Control
The spin control is used for when a list of options can be chosen (such as a page up/down control). You can choose the position, size, and look of the spin control.
Example
<control type="spincontrol" id="14"> <description>My first spin control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <textureup colordiffuse="FFFFAAFF">myuptexture.png</textureup> <textureupfocus colordiffuse="FFFFAAFF">myupfocustexture.png</textureupfocus> <texturedown colordiffuse="FFFFAAFF">mydowntexture.png</texturedown> <texturedownfocus colordiffuse="FFFFAAFF">mydownfocustexture.png</texturedownfocus> <textureupdisabled colordiffuse="AAFFAAFF">mydowntexture.png</textureupdisabled> <texturedowndisabled colordiffuse="AAFFAAFF">mydownfocustexture.png</texturedowndisabled> <subtype>page</subtype> <font>font12</font> <textcolor>FFFFFFFF</textcolor> <disabledcolor>80FFFFFF</disabledcolor> <align></align> <aligny></aligny> <textoffsetx></textoffsetx> <textoffsety></textoffsety> <pulseonselect></pulseonselect> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
textureup | Specifies the image file which should be displayed for the up arrow when it doesn't have focus. See here for additional information about textures. |
textureupfocus | Specifies the image file which should be displayed for the up button when it has focus. |
textureupdisabled | Specifies the image file which should be displayed for the up arrow when the button is disabled. |
texturedown | Specifies the image file which should be displayed for the down button when it is not focused. |
texturedownfocus | Specifies the image file which should be displayed for the down button when it has focus. |
texturedowndisabled | Specifies the image file which should be displayed for the up arrow when the button is disabled. |
font | Font used for the button label. From fonts.xml. |
spincolor | The colour of the text used for this spin control. In AARRGGBB hex format. As of Helix, this doesn't actually get processed, use textcolor |
textcolor | Color used for displaying the label. In AARRGGBB hex format, or a name from the colour theme.. |
disabledcolor | Color used for the label if the control is disabled. In AARRGGBB hex format, or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text. In AARRGGBB format, or a name from the colour theme. |
subtype | Defines what type of information the spinner holds. Can be int, float, text or page. Defaults to text. Make sure you use page for a page control. |
align | Label horizontal alignment on the control. Defaults to right, can also be left. |
aligny | Label vertical alignment on the control. Defaults to top, can also be center. |
textoffsetx | Amount to offset the label from the left (or right) edge of the button when using left or right alignment. |
textoffsety | Amount to offset the label from the top edge of the button when using top alignment. |
textwidth | Will truncate any text that's too long. |
Settings Spin Control
The settings spin control is used in the settings screens for when a list of options can be chosen from using up/down arrows. You can choose the position, size, and look of the spin control. It is basically a cross between the button control and a spin control. It has a label and focus and non focus textures, as well as a spin control on the right.
Example
<control type="spincontrolex" id="12"> <description>My first settings spin control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <spinposx>220</spinposx> <spinposy>180</spinposy> <spinwidth>16</spinwidth> <spinheight>16</spinheight> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <texturefocus>myfocustexture.png</texturefocus> <texturenofocus>mynofocustexture.png</texturenofocus> <textureup>myuptexture.png</textureup> <textureupfocus>myupfocustexture.png</textureupfocus> <texturedown>mydowntexture.png</texturedown> <texturedownfocus>mydownfocustexture.png</texturedownfocus> <textureupdisabled colordiffuse="AAFFAAFF">mydowntexture.png</textureupdisabled> <texturedowndisabled colordiffuse="AAFFAAFF">mydownfocustexture.png</texturedowndisabled> <label>46</label> <font>font12</font> <textcolor>FFFFFFFF</textcolor> <disabledcolor>80FFFFFF</disabledcolor> <align></align> <aligny></aligny> <textoffsetx></textoffsetx> <textoffsety></textoffsety> <pulseonselect></pulseonselect> <reverse></reverse> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
spinposx | The horizontal position of the spin control for multipage lists. This is offset from the top left of the list. |
spinposy | The vertical position of the spin control for multipage lists. This is offset from the top left of the list. |
spinwidth | The width of one of the spin control buttons. The textures for this spin control will be scaled to fit this width. |
spinheight | The height of one of the spin control buttons. The textures for this spin control will be scaled to fit this height. |
texturefocus | Specifies the image file which should be displayed for the control when it has focus. See here for additional information about textures. |
texturenofocus | Specifies the image file which should be displayed for the control when it doesn't focus. |
textureup | Specifies the image file which should be displayed for the up arrow when it doesn't have focus. It is displayed to the left of the down arrow. |
textureupfocus | Specifies the image file which should be displayed for the up arrow when it has focus. |
textureupdisabled | Specifies the image file which should be displayed for the up arrow when the button is disabled. |
texturedown | Specifies the image file which should be displayed for the down arrow when it is not focused. It is displayed to the right of the up arrow so that it's right edge is <textoffsetx> pixels away from the right edge of the control. |
texturedownfocus | Specifies the image file which should be displayed for the down arrow when it has focus. |
texturedowndisabled | Specifies the image file which should be displayed for the up arrow when the button is disabled. |
label | Either a numeric reference into strings.po (for localization), or a string that will be shown on the left of the control. |
font | Font used for the controls label. From fonts.xml. |
textcolor | Color used for displaying the label. In AARRGGBB hex format, or a name from the colour theme. |
disabledcolor | Color used for the label if the control is disabled. In AARRGGBB hex format, or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text. In AARRGGBB hex format, or a name from the colour theme. |
align | Label horizontal alignment on the control. Defaults to left. |
aligny | Label vertical alignment on the control. Defaults to top, can also be center. |
textoffsetx | Amount to offset the label from the left (or right) edge of the button when using left or right alignment. |
textoffsety | Amount to offset the label from the top edge of the button when using top alignment. |
textwidth | Will truncate any text that's too long. |
reverse | Will reverse the up/down actions of the up and down textures. |
Slider Control
The slider control is used for things where a sliding bar best represents the operation at hand (such as a volume control or seek control). You can choose the position, size, and look of the slider control.
Example
<control type="slider" id="17"> <description>My first slider control</description> <left>80</left> <top>60</top> <width>250</width> <height>30</height> <visible>true</visible> <texturesliderbar>mybackgroundtexture.png</texturesliderbar> <texturesliderbardisabled>mydisabledbackgroundtexture.png</texturesliderbardisabled> <textureslidernib>mydowntexture.png</textureslidernib> <textureslidernibfocus>mydownfocustexture.png</textureslidernibfocus> <textureslidernibdisabled>mydowndisabledtexture.png</textureslidernibdisabled> <info></info> <action></action> <controloffsetx></controloffsetx> <controloffsety></controloffsety> <pulseonselect></pulseonselect> <orientation>horizontal</orientation> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
texturesliderbar |
Specifies the image file which should be displayed in the background of the slider control. See here for additional information about textures. |
texturesliderbardisabled |
Specifies the image file which should be displayed in the background of the slider control when it is disabled. (v21+) |
textureslidernib | Specifies the image file which should be displayed for the slider nib. |
textureslidernibfocus | Specifies the image file which should be displayed for the slider nib when it has focus. |
textureslidernibdisabled | Specifies the image file which should be displayed for the slider nib when it it is disabled. (v21+) |
controloffsetx | Amount to offset the slider background texture from the left edge of the control. Only useful if a value is being rendered as well (ie in int or float mode). |
controloffsety | Amount to offset the slider background texture from the top edge of the control. |
info | Specifies the information that the slider controls. See here for more information. |
action | Can be 'volume' to adjust the volume, 'seek' to change the seek position or 'pvr.seek' for timeshifting in PVR |
orientation | Can be horizontal or vertical (default). |
List Container
The list container is one of several containers used to display items from file lists in various ways. The list container is very flexible - it's only restriction is that it is a list - i.e. a single column or row of items. The layout of the items is very flexible and is up to the skinner.
Example
<control type="list" id="50"> <description>My first list container</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> <viewtype label="3D list">list</viewtype> <orientation>vertical</orientation> <pagecontrol>25</pagecontrol> <autoscroll>true</autoscroll> <scrolltime tween="sine" easing="out">200</scrolltime> <itemlayout width="650" height="29"> <control type="image"> <left>5</left> <top>3</top> <width>22</width> <height>22</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label"> <left>30</left> <top>3</top> <width>430</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="label"> <left>475</left> <top>3</top> <width>300</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <textcolor>grey</textcolor> <align>right</align> <label>$INFO[ListItem.Label2]</label> </control> </itemlayout> <focusedlayout height="29" width="650"> <control type="image"> <width>485</width> <height>29</height> <left>0</left> <top>0</top> <visible>Control.HasFocus(50)</visible> <texture>list-focus.png</texture> </control> <control type="image"> <left>5</left> <top>3</top> <width>22</width> <height>22</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label"> <left>30</left> <top>3</top> <width>430</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="label"> <left>475</left> <top>3</top> <width>300</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <textcolor>grey</textcolor> <align>right</align> <label>$INFO[ListItem.Label2]</label> </control> </focusedlayout> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
viewtype | The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.po. viewtype has no effect on the view itself. It is used by kodi when switching skin to automatically select a view with a similar layout. Skinners should try to set viewtype to describe the layout as best as possible. |
orientation | The orientation of the list. Defaults to vertical. |
pagecontrol | Used to set the <id> of the page control used to control this list. |
scrolltime | The time (in ms) to scroll from one item to another. By default, this is 200ms. The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available tween methods. |
itemlayout | Specifies the layout of items in the list. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <itemlayout> then contains as many label and image controls as required. See here for more information. |
focusedlayout | Specifies the layout of items in the list that have focus. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <focusedlayout> then contains as many label and image controls as required. See here for more information. |
content | Used to set the item content that this list will contain. Allows the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control. See here for more information |
preloaditems | Used in association with the Background Image Loader. |
autoscroll | Used to make the container scroll automatically |
Wraplist Container
The wrap list container is one of several containers used to display items from file lists in various ways. The wrap list container is the same as the List Container, with two exceptions:
- The focused item is fixed.
- The items "wrap" around once they reach the end.
As with all container controls, the layout of the items within the control is very flexible.
Example
<control type="wraplist" id="50"> <description>My first wraplist container</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <onup>2</onup> <ondown>3</ondown> <onleft>1</onleft> <onright>1</onright> <viewtype label="3D list">list</viewtype> <orientation>vertical</orientation> <pagecontrol>25</pagecontrol> <focusposition>3</focusposition> <scrolltime tween="sine" easing="out">200</scrolltime> <autoscroll>true</autoscroll> <itemlayout width="650" height="29"> <control type="image"> <left>5</left> <top>3</top> <width>22</width> <height>22</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label"> <left>30</left> <top>3</top> <width>430</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="label"> <left>475</left> <top>3</top> <width>300</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <textcolor>grey</textcolor> <align>right</align> <label>$INFO[ListItem.Label2]</label> </control> </itemlayout> <focusedlayout height="29" width="650"> <control type="image"> <width>485</width> <height>29</height> <left>0</left> <top>0</top> <visible>Control.HasFocus(50)</visible> <texture>list-focus.png</texture> </control> <control type="image"> <left>5</left> <top>3</top> <width>22</width> <height>22</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label"> <left>30</left> <top>3</top> <width>430</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="label"> <left>475</left> <top>3</top> <width>300</width> <height>22</height> <font>font13</font> <aligny>center</aligny> <selectedcolor>green</selectedcolor> <textcolor>grey</textcolor> <align>right</align> <label>$INFO[ListItem.Label2]</label> </control> </focusedlayout> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
viewtype | The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.po. viewtype has no effect on the view itself. It is used by kodi when switching skin to automatically select a view with a similar layout. Skinners should try to set viewtype to describe the layout as best as possible. |
orientation | The orientation of the list. Defaults to vertical. |
pagecontrol | Used to set the <id> of the page control used to control this list. |
scrolltime | The time (in ms) to scroll from one item to another. By default, this is 200ms. The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available tween methods. |
focusposition | Specifies the index (from 0 -> number items displayable - 1) of the focused item. The focused item doesn't move - as the user moves up and down (or left and right) the items scroll instead. |
itemlayout | Specifies the layout of items in the list. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <itemlayout> then contains as many label and image controls as required. See here for more information. |
focusedlayout | Specifies the layout of items in the list that have focus. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The <focusedlayout> then contains as many label and image controls as required. See here for more information. |
content | Used to set the item content that this list will contain. Allows the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control. See here for more information |
autoscroll | Used to make the container scroll automatically |
FixedList Container
Panel Container
The panel container is one of several containers used to display items from file lists in various ways. The panel container is very flexible - it's essentially a multi-column list. The layout of the items is very flexible and is up to the skinner.
Example
<control type="panel" id="52"> <left>190</left> <top>100</top> <width>485</width> <height>425</height> <onleft>9000</onleft> <onright>60</onright> <onup>52</onup> <ondown>52</ondown> <scrolltime tween="sine" easing="out">200</scrolltime> <autoscroll>true</autoscroll> <viewtype label="536">icon</viewtype> <pagecontrol>60</pagecontrol> <include>contentpanelslide</include> <itemlayout height="150" width="120"> <control type="image"> <left>10</left> <top>10</top> <width>100</width> <height>100</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="image"> <left>80</left> <top>75</top> <width>32</width> <height>32</height> <texture>$INFO[ListItem.Overlay]</texture> </control> <control type="label"> <left>0</left> <top>115</top> <width>110</width> <height>22</height> <font>font13</font> <selectedcolor>green</selectedcolor> <align>center</align> <label>$INFO[ListItem.Label]</label> </control> </itemlayout> <focusedlayout height="150" width="120"> <control type="image"> <width>110</width> <height>110</height> <left>5</left> <top>5</top> <texture>folder-focus.png</texture> <animation effect="zoom" end="0,0,120,120" time="100">focus</animation> </control> <control type="image"> <left>10</left> <top>10</top> <width>100</width> <height>100</height> <texture>$INFO[ListItem.Icon]</texture> <animation effect="zoom" end="5,5,110,110" time="100">focus</animation> </control> <control type="image"> <left>80</left> <top>75</top> <width>32</width> <height>32</height> <texture>$INFO[ListItem.Overlay]</texture> <animation effect="slide" end="5,5" time="100">focus</animation> </control> <control type="label"> <left>0</left> <top>120</top> <width>110</width> <height>22</height> <font>font13</font> <selectedcolor>green</selectedcolor> <align>center</align> <label>$INFO[ListItem.Label]</label> </control> </focusedlayout> </control>
Available tags
In addition to the Default Control Tags, the following tags are also available. Note that each tag is lower case only. This is important, as XML tags are case-sensitive.
Tag | Description |
---|---|
<viewtype label="">…</viewtype>
|
The type of view, valid values are: list , icon , wide , wrap , biglist , bigicon , bigwide , bigwrap , info and biginfo . The label attribute indicates the label that will be used in the "View As" control within the GUI. It is localizable via strings.po. This tag has no effect on the view itself, it is simply used by Kodi when switching skins to automatically select a view with a similar layout; skinners should try to set it to best describe the layout provided.
|
<orientation>…</orientation>
|
The orientation of the panel, defaults to vertical .
|
<pagecontrol>…</pagecontrol>
|
Used to set the id of the page control used to control that panel.
|
<scrolltime tween="" easing="">…</scrolltime>
|
The time (in ms) to scroll from one item to another, by default this is 200ms. The panel will scroll smoothly from one item to another as needed; set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available tween methods. |
<itemlayout height="" width="">…</itemlayout>
|
Specifies the container item layout for the list, and requires both the width and height attributes to be set. It will contain as many label and image controls as needed.
|
<focusedlayout height="" width="">…</focusedlayout>
|
Specifies the container item layout for items that have focus in the list, and requires both the width and height attributes to be set. It will contain as many label and image controls as needed.
|
<content>…</content>
|
Used to set the static list content that the panel will contain, allowing the skinner to create a panel anywhere they want with a static set of content, as a useful counterpart to the grouplist control.
|
<preloaditems>…</preloaditems>
|
Used in association with the background image loader. |
<autoscroll>…</autoscroll>
|
Used to make the container scroll automatically, accepts the boolean values of either true or false .
|
Progress Control
The progress control is used to show the progress of an item that may take a long time, or to show how far through a movie you are. You can choose the position, size, and look of the progress control.
Example
<control type="progress" id="12"> <description>My first progress control</description> <left>80</left> <top>60</top> <width>250</width> <height>30</height> <visible>true</visible> <reveal>false</reveal> <texturebg>mybackgroundtexture.png</texturebg> <lefttexture>mydowntexture.png</lefttexture> <midtexture>mymidtexture.png</midtexture> <righttexture>myrighttexture.png</righttexture> <overlaytexture>myoverlaytexture.png</overlaytexture> <info></info> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description | |
---|---|---|
reveal | If set to true the midtexture will reveal itself instead of stretching to fill the gap (works best when its the same size as texturebg) | |
texturebg |
Specifies the image file which should be displayed in the background of the progress control. See here for additional information about textures. | |
lefttexture | Specifies the image file which should be displayed for the left side of the progress bar. This is rendered on the left side of the bar. | |
midtexture | Specifies the image file which should be displayed for the middle portion of the progress bar. This is the fill texture used to fill up the bar. It's positioned on the right of the <lefttexture> texture, and fills the gap between the <lefttexture> and <righttexture> textures, depending on how far progressed the item is. | |
righttexture | Specifies the image file which should be displayed for the right side of the progress bar. This is rendered on the right side of the bar. | |
overlaytexture | Specifies the image file which should be displayed over the top of all other images in the progress bar. It is centered vertically and horizontally within the space taken up by the background image. | |
info |
Specifies the information that the progress bar is reporting on. See here for more information. |
|
info2 |
Specifies the second piece of information that the progress bar is reporting on (PVR only). See here for more information. |
Text Box
The text box is used for showing a large multipage piece of text in Kodi. You can choose the position, size, and look of the text.
Example
<control type="textbox" id="2"> <description>My first text box control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> <colordiffuse>FFFFFFFF</colordiffuse> <font>font13</font> <monofont>mono30</monofont> <textcolor>FFFFFFFF</textcolor> <pulseonselect></pulseonselect> <pagecontrol>13</pagecontrol> <scrolltime>200</scrolltime> <autoscroll delay="3000" time="1000" repeat="10000">!Control.HasFocus(13)</autoscroll> <label>Text to display goes here [CR] next line...</label> <align>center</align> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
height | <height>auto</height> is supported in textbox controls |
font | Font used for the items first label. From fonts.xml. |
textcolor | Color used for displaying the text. In AARRGGBB hex format, or a name from the colour theme. |
shadowcolor | Specifies the color of the drop shadow on the text. In AARRGGBB format, or a name from the colour theme. |
pagecontrol | Specifies the <id> of the page control used to control this textbox. The page control can either be a Spin Control or a Scroll Bar Control. |
scrolltime | The time (in ms) to scroll from one item to another. By default, this is 200ms. The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. |
align | possible values for text alignment: left, right, center, justify |
autoscroll | Specifies the timing and conditions of any autoscrolling this textbox should have. Times are in milliseconds. The content is delayed for the given delay, then scrolls at a rate of one line per time interval until the end. If the repeat tag is present, it then delays for the repeat time, fades out over 1 second, and repeats. It does not wrap or reset to the top at the end of the scroll. You can use any bool condition to specify when autoscrolling should be allowed. |
monofont | Monotype font. For use in the TextViewer dialog only. |
RSS feed Control
Visualisation Control
The visualisation control is used for displaying those funky patterns that jump to the music in Kodi. You can choose the position, and size of the visualisation displayed. Note that the control is only rendered if music is being played.
Example
<control type="visualisation" id ="3"> <description>My first visualisation control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> </control>
Available tags
Only the default control tags are applicable to this control.
Video Control
The videowindow control is used for displaying the currently playing video elsewhere in the Kodi GUI. You can choose the position, and size of the video displayed. Note that the control is only rendered if video is being played.
Example
<control type="videowindow" id="2"> <description>My first video control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <visible>true</visible> </control>
Available tags
Only the default control tags are applicable to this control.
Mover Control
The mover control is used for the screen calibration portions of Kodi. You can choose the size and look of the mover control.
Example
<control type="mover" id="3"> <description>My first mover control</description> <left>80</left> <top>60</top> <width>250</width> <height>200</height> <texturefocus>mytexture.png</texturefocus> <texturenofocus>mytexture.png</texturenofocus> <pulseonselect>true</pulseonselect> </control>
Available tags
In addition to the default control tags, the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
texturefocus |
Specifies the image file which should be displayed when the mover has focus. See here for additional information about textures. |
texturenofocus | Specifies the image file which should be displayed when the mover does not have focus. |
Resize Control
Edit Control
The edit control allows a user to input text in Kodi. You can choose the font, size, colour, location and header of the text to be displayed.
Example
<control type="edit" id="1"> <description>My First edit control</description> <left>80</left> <top>60</top> <width>250</width> <visible>true</visible> <aligny>center</aligny> <label>Search</label> <hinttext>Enter search string</hinttext> <font>font14</font> <textoffsetx>10</textoffsetx> <textcolor>FFB2D4F5</textcolor> <disabledcolor>FF000000</disabledcolor> <invalidcolor>FFFFFFFF</invalidcolor> <texturefocus>button-focus.png</texturefocus> <texturenofocus>button-nofocus.png</texturenofocus> <pulseonselect>no</pulseonselect> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
aligny | Can be top or center. Aligns the text within its given control <height>. Defaults to top |
label |
Specifies the header text which should be shown. You should specify an entry from the strings.po here (either the Kodi strings.po or your skin's strings.po file), however you may also hardcode a piece of text also if you wish, though of course it will not be localized. You can use the full label formatting syntax and you may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.strings.xml) |
hinttext | Specifies the text which should be displayed in the edit label control, until the user enters some text. It can be used to provide a clue as to what a user should enter in this control. |
font | Specifies the font to use from the font.xml file. |
textcolor | Specifies the color the text should be, in hex AARRGGBB format, or a name from the colour theme. |
textwidth | Will truncate any text that's too long. |
EPGGrid Control
The epggrid control is used for creating an epg timeline in Kodi. You can choose the position, size, and look of the grid and it's contents.
Example
<control type="epggrid" id="10"> <description>EPG Grid</description> <left>80</left> <top>81</top> <width>1120</width> <height>555</height> <pagecontrol>10</pagecontrol> <scrolltime>350</scrolltime> <timeblocks>40</timeblocks> <rulerunit>6</rulerunit> <progresstexture border="5">PVR-EpgProgressIndicator.png</progresstexture> <onleft>31</onleft> <onright>31</onright> <onup>10</onup> <ondown>10</ondown> <orientation>Horizontal</orientation> <rulerdatelayout width="1700" height="45" condition="$PARAM[has_rulerdate_layout]"> <control type="label"> <width>1700</width> <height>45</height> <font>font24</font> <label>$INFO[ListItem.Label]</label> <textcolor>button_focus</textcolor> <align>center</align> <aligny>center</aligny> </control> </rulerdatelayout> <rulerlayout height="35" width="40"> <control type="image" id="1"> <width>40</width> <height>29</height> <left>0</left> <top>0</top> <texture border="5">button-nofocus.png</texture> </control> <control type="label" id="2"> <left>10</left> <top>0</top> <width>34</width> <height>29</height> <font>font12</font> <aligny>center</aligny> <selectedcolor>selected</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> </rulerlayout> <channellayout height="52" width="280"> <animation effect="fade" start="110" time="200">UnFocus</animation> <control type="image" id="1"> <left>0</left> <top>0</top> <width>270</width> <height>52</height> <texture border="5">button-nofocus.png</texture> </control> <control type="label"> <left>5</left> <top>5</top> <width>40</width> <height>35</height> <font>font12</font> <align>left</align> <aligny>center</aligny> <textcolor>grey</textcolor> <selectedcolor>grey</selectedcolor> <label>$INFO[ListItem.ChannelNumber]</label> </control> <control type="image"> <left>45</left> <top>4</top> <width>45</width> <height>44</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label" id="1"> <left>94</left> <top>0</top> <width>160</width> <height>52</height> <font>special12</font> <aligny>center</aligny> <selectedcolor>selected</selectedcolor> <align>left</align> <label>$INFO[ListItem.ChannelName]</label> </control> </channellayout> <focusedchannellayout height="52" width="280"> <animation effect="fade" start="110" time="200">OnFocus</animation> <control type="image" id="1"> <left>0</left> <top>0</top> <width>270</width> <height>52</height> <texture border="5">button-focus.png</texture> </control> <control type="label"> <left>5</left> <top>5</top> <width>40</width> <height>35</height> <font>font12</font> <align>left</align> <aligny>center</aligny> <textcolor>grey</textcolor> <selectedcolor>grey</selectedcolor> <label>$INFO[ListItem.ChannelNumber]</label> </control> <control type="image"> <left>45</left> <top>4</top> <width>45</width> <height>44</height> <texture>$INFO[ListItem.Icon]</texture> </control> <control type="label" id="1"> <left>94</left> <top>0</top> <width>160</width> <height>52</height> <font>special12</font> <aligny>center</aligny> <selectedcolor>selected</selectedcolor> <align>left</align> <label>$INFO[ListItem.ChannelName]</label> </control> </focusedchannellayout> <itemlayout height="52" width="40"> <control type="image" id="2"> <width>40</width> <height>52</height> <left>0</left> <top>0</top> <aspectratio>stretch</aspectratio> <texture border="3">epg-genres/$INFO[ListItem.Property(GenreType)].png</texture> </control> <control type="label" id="1"> <left>6</left> <top>3</top> <width>30</width> <height>25</height> <font>font12</font> <aligny>center</aligny> <selectedcolor>selected</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="image"> <left>5</left> <top>28</top> <width>30</width> <height>20</height> <texture>PVR-IsRecording.png</texture> <visible>ListItem.IsRecording</visible> </control> <control type="image"> <left>5</left> <top>28</top> <width>20</width> <height>20</height> <texture>PVR-HasTimer.png</texture> <visible>ListItem.HasTimer + !ListItem.IsRecording</visible> </control> </itemlayout> <focusedlayout height="52" width="40"> <control type="image" id="14"> <width>40</width> <height>52</height> <left>0</left> <top>0</top> <texture border="5">folder-focus.png</texture> </control> <control type="image" id="2"> <width>40</width> <height>52</height> <left>0</left> <top>0</top> <aspectratio>stretch</aspectratio> <texture border="3">epg-genres/$INFO[ListItem.Property(GenreType)].png</texture> </control> <control type="label" id="1"> <left>6</left> <top>3</top> <width>30</width> <height>25</height> <font>font12</font> <aligny>center</aligny> <selectedcolor>selected</selectedcolor> <align>left</align> <label>$INFO[ListItem.Label]</label> </control> <control type="image"> <left>5</left> <top>28</top> <width>30</width> <height>20</height> <texture>PVR-IsRecording.png</texture> <visible>ListItem.IsRecording</visible> </control> <control type="image"> <left>5</left> <top>28</top> <width>20</width> <height>20</height> <texture>PVR-HasTimer.png</texture> <visible>ListItem.HasTimer + !ListItem.IsRecording</visible> </control> </focusedlayout> </control>
Available tags
In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.
Tag | Description |
---|---|
timeblocks | The number of timeframes on the top row. |
rulerunit | Timeframe of each unit on the top row. 1 unit equals 5 minutes. |
rulerdatelayout | The layout of the date header. |
rulerlayout | The layout of the top row. |
progresstexture | A texture which indicates the current progress time |
channellayout | The layout of the left column. |
focusedchannellayout | The focused layout of the left column. |
itemlayout | The layout of the grid |
focusedlayout | The focused layout of the grid |
orientation | The orientation (Horizontal/Vertical) of the grid |
Console Control
used to display the last few items added to the video database.
Checkmark Control
Used on the Kai Host Dialog. Similar to Radio Button but does not have the button texture, and the checkmark is on the left
Extended List Control
used in the XLink Kai window.
Conditional_Visibility
XBMC's skinning engine versatility is based upon the fact that the skinner can display and hide portions of the skin using a variety of conditional statements that can be combined to create very user friendly UI implementations. For further information of available variable and how they can be applied.
All controls benefit from conditional visibility support. This means that instead of specifying just YES or NO for the <visible> tag, you can provide one of the many preset boolean conditions. Not only that, you can also specify how Kodi should transistion between a visible state and a hidden state.
For example, the Project Mayhem 3 skin has <visible>!Player.HasMedia</visible> tags on all the background images on the home page. The reason is that we don't want the images being displayed while a media file (audio or video) is playing or paused, as the video or visualisation will cover the images anyway, so they only take up memory unnecessarily. They also slow down navigation, as the need to be loaded/unloaded depending on whether they are visible (ie whether or not the user has a particular button focused).
How They Work
The condition given in the <visible> tag is evaluated at during the control's Render() function. Kodi decides whether or not the condition is true, and updates the control's visibility accordingly. So it all happens without Kodi having to do the extra chores of maintaining which controls need to be shown at which points in time. The controls automatically update themselves.
Conditional Visibility for Dialogs
Dialogs can also be made to popup automatically based on a visibility condition. This is done by supplying the <visible> tag at the top of the window file (where the <id>, <type> and <coordinate> tags are). Kodi once again evaluates this visibility at render time, and if necessary, will create and show the dialog at the appropriate time. It'll also close them once that visibility has vanished.
This only works with dialogs. For custom windows, you can specify the type of window you require by specifying it using the <type> tag. For more information see the window .xml structure page.
Combining Conditions
You can combine two (or more) of the above settings by using:
- + as AND operator
- | as OR operator
- ! as NOT operator
- [ and ] to bracket expressions
For example, <visible>Player.HasVideo + Player.Rewinding8x</visible> will only show the control when the player is rewinding a video at 8x, whereas <visible>Player.HasVideo | Player.IsRecording</visible> will show the control if a video is playing, or if we are recording something.
The AND operator takes precedence over the OR operator when evaluating the logic. AND operators are read from left to right.
So if you want to show something when condition1 OR condition2 is true AND condition3 is true, you can do: <visible>[condition1 | condition2] + condition3</visible>
Note that if you missed the brackets, then it would actually be reading «if condition1 or (condition2 and condition3)" due to AND taking precedence over OR.
Some pointers on boolean logic. The following holds true:
A + (B | C) = A + B | A + C
A | (B + C) = (A | B) + (A | C)
!(A + B) =!A | !B
!(A | B) =!A + !B
A common mistake is to do something like this:
!A | !B | !C
This is false only if A, B and C are all simultaneously true (as it's the same as !(A + B + C)), and you may have possibly been after
!A + !B + !C
which is false if A is true, or B is true, or C is true.
One thing you will notice, is that when a control is hidden, it can't be focused. This means you can't move to a control and have it automatically become visible (eg even if it had Control.HasFocus(myID) it wouldn't come back on, as Kodi wouldn't allow navigation to the hidden control). To solve this issue, you can use:
<visible allowhiddenfocus="true">Control.HasFocus(21)</visible>
on a control of <id> 21. This will allow the control to be focusable even when it's hidden. When the user moves to the hidden control, it will automatically unhide itself, due to the Control.HasFocus(21) visibility condition.
Animating Your Skin
The XBMC skinning engine supports animations of any control allowing them to rotate, slide, fade or any combination there-of. Combining animations with conditional statements ensure your skin will have stunning effects that appear as professional as a 1st party product. Animating Your Skin
Fonts
XBMC allows you to customize which fonts are displayed onscreen in the User Interface.
There's one special file called Font.xml. This file contains a list of all fonts the skin uses. kodi will load all the fonts mentioned in this file from the /myskin/fonts directory first, and if that fails, will attempt to load them from Kodi/media/fonts. In the event that Kodi is unable to locate the specified font, it will default to "font13". It is required that every skin has a font13 definition in their Font.xml file. Apart from that, you can modify this file as you like and add/delete/change fonts. The user friendly font name is referenced by the other xml files mentioned below.
Format of the Font.xml File
The Font.xml file is divided into font sets, which includes a set of fonts used by the skin. Every font set must contain the same font names in order for the skin to work with all font sets.
<?xml version="1.0" encoding="UTF-8"?> <fonts> <fontset id="Default" idloc="31390"> <font> .... </font> <font> .... </font> .... </fontset> <fontset id="Arial" idloc="31391"> <font> .... </font> .... </fontset> </fonts>
A font set has the following attributes:
- id
- Name of the font set. Displayed to the user. Can have any value.
- idloc
- Refers to a string in the Skins' language file, so font names can be localized.
It is possible to use includes (eg. <include>MonoSpace</include>) in Font.xml There has to be at least one font set with the unicode attribute set to true else languages like Chinese or Korean will not display properly. There is a font called Arialuni.TTF with a size of 20MB. It is a unicode True Type Font and works with all languages Kodi supports.
Note: Kodi will automatically switch to the first available unicode font set if the user selects a language that needs one. This switch will not be made if the currently loaded font set already supports unicode.
Supported Font Types
True type Fonts
True type fonts must have a .ttf suffix. For a true type font it is possible to define the size (default 20) and a style normal, bold, italics, or bolditalics. Frodo also includes lowercase or uppercase. Isengard includes capitalize. Jarvis includes lighten.
Note: Multiple styles can be used by separating them with a space.
Example:
<font> <name>font12</name> <filename>arial.ttf</name> <size>12</size> <style>uppercase lowercase capitalize bold lighten</style> <aspect>0.75</aspect> <linespacing>1.0</linespacing> </font>
The <aspect> tag specifies the aspect ratio of the font. An aspect of 0.75 means that the width of the font will be 0.75 of the height. By default the aspect is 1.0 for all but the SD 16x9 modes (PAL16x9, NTSC16x9 and 480p16x9) where the aspect ratio is 0.75, due to the stretched pixels.
The <linespacing> tag defines height of each line (sometimes called leading or inteline spacing). By default linespacing is set to 1.0.
How to add a new Font
Font files go in in .kodi/media/fonts (to make them available to all skins), or in the .kodi\addons\skin.myskin\fonts folder if the font file is to be used with your skin only.
- Place the TTF ( such as verdana.ttf from your PC (C:\Windows\Fonts)) files in .kodi\media\fonts.
- Edit the file .kodi\addons\skin.myskin\1080p\Font.xml and duplicate the "Default" section.
- Change the 'id' to the name of your new font
- change the filename for each definition to the filename of your name font file.
- Finally go to settings > interface > skin > fonts and select the new font.
Example Font.xml
<fonts> <fontset id="Default" idloc="31390" unicode="true"> <!-- Normal Fonts --> <font> <name>font12</name> <filename>DejaVuSans.ttf</filename> <size>16</size> </font> <font> <name>font12caps</name> <filename>DefaultCaps.ttf</filename> <size>16</size> </font> <font> <name>font13</name> <filename>DejaVuSans.ttf</filename> <size>20</size> </font> ... </fontset> <fontset id="MyFont" idloc="31392" unicode="true"> <!-- Normal Fonts --> <font> <name>font12</name> <filename>Arial.ttf</filename> <size>16</size> </font> <font> <name>font12caps</name> <filename>Arial.ttf</filename> <size>16</size> </font> <font> <name>font13</name> <filename>Arial.ttf</filename> <size>20</size> </font> ... </fontset> </fonts>
Appendix I: List of Windows
This table cross-references Window names, Window definitions, and Window ID.
Code that performs the cross-reference is found on Github as follows:
Master Branch - WindowTranslator.cpp |
Master Branch - WindowsIDs.h |
- keymap.xml uses the Window name.
- Kodi's C++ code uses the Window definitions and Window ID's.
- ActivateWindow() should use the Window name.
- sounds.xml should use the window name
You can use secondary parameters with all media windows, as can be seen here:
Name | Definition | Window ID | source XML file | Remark |
---|---|---|---|---|
home
|
WINDOW_HOME
|
10000
|
Home.xml | |
programs
|
WINDOW_PROGRAMS
|
10001
|
MyPrograms.xml | |
pictures
|
WINDOW_PICTURES
|
10002
|
MyPics.xml | |
filemanager
|
WINDOW_FILES
|
10003
|
FileManager.xml | |
settings
|
WINDOW_SETTINGS_MENU
|
10004
|
Settings.xml | |
systeminfo
|
WINDOW_SYSTEM_INFORMATION
|
10007
|
SettingsSystemInfo.xml | |
screencalibration
|
WINDOW_SCREEN_CALIBRATION
|
10011
|
SettingsScreenCalibration.xml | |
systemsettings
|
WINDOW_SETTINGS_START
|
10016
|
SettingsCategory.xml | |
systemsettings
|
WINDOW_SETTINGS_SYSTEM
|
10016
|
SettingsCategory.xml | |
servicesettings
|
WINDOW_SETTINGS_SERVICE
|
10018
|
SettingsCategory.xml | |
pvrsettings
|
WINDOW_SETTINGS_MYPVR
|
10021
|
SettingsCategory.xml | |
gamesettings
|
WINDOW_SETTINGS_MYGAMES
|
10022
|
SettingsCategory.xml | |
videos
|
WINDOW_VIDEO_NAV
|
10025
|
MyVideoNav.xml | |
videoplaylist
|
WINDOW_VIDEO_PLAYLIST
|
10028
|
MyPlaylist.xml | |
loginscreen
|
WINDOW_LOGIN_SCREEN
|
10029
|
LoginScreen.xml | |
playersettings
|
WINDOW_SETTINGS_PLAYER
|
10030
|
SettingsCategory.xml | |
mediasettings
|
WINDOW_SETTINGS_MEDIA
|
10031
|
SettingsCategory.xml | |
interfacesettings
|
WINDOW_SETTINGS_INTERFACE
|
10032
|
SettingsCategory.xml | |
profiles
|
WINDOW_SETTINGS_PROFILES
|
10034
|
SettingsProfile.xml | |
skinsettings
|
WINDOW_SKIN_SETTINGS
|
10035
|
SkinSettings.xml | |
addonbrowser
|
WINDOW_ADDON_BROWSER
|
10040
|
AddonBrowser.xml | |
eventlog
|
WINDOW_EVENT_LOG
|
10050
|
EventLog.xml | |
favouritesbrowser
|
WINDOW_FAVOURITES
|
10060
|
MyFavourites.xml | Added in Kodi v20 Nexus [1] |
pointer
|
WINDOW_DIALOG_POINTER
|
10099
|
Pointer.xml | |
yesnodialog
|
WINDOW_DIALOG_YES_NO
|
10100
|
DialogConfirm.xml | |
progressdialog
|
WINDOW_DIALOG_PROGRESS
|
10101
|
DialogConfirm.xml | |
virtualkeyboard
|
WINDOW_DIALOG_KEYBOARD
|
10103
|
DialogKeyboard.xml | |
volumebar
|
WINDOW_DIALOG_VOLUME_BAR
|
10104
|
DialogVolumeBar.xml | |
submenu
|
WINDOW_DIALOG_SUB_MENU
|
10105
|
DialogSubMenu.xml | |
contextmenu
|
WINDOW_DIALOG_CONTEXT_MENU
|
10106
|
DialogContextMenu.xml | |
notification
|
WINDOW_DIALOG_KAI_TOAST
|
10107
|
DialogNotification.xml | |
numericinput
|
WINDOW_DIALOG_NUMERIC
|
10109
|
DialogNumeric.xml | |
gamepadinput
|
WINDOW_DIALOG_GAMEPAD
|
10110
|
DialogSelect.xml | |
shutdownmenu
|
WINDOW_DIALOG_BUTTON_MENU
|
10111
|
DialogButtonMenu.xml | |
playercontrols
|
WINDOW_DIALOG_PLAYER_CONTROLS
|
10114
|
PlayerControls.xml | |
seekbar
|
WINDOW_DIALOG_SEEK_BAR
|
10115
|
DialogSeekBar.xml | |
playerprocessinfo
|
WINDOW_DIALOG_PLAYER_PROCESS_INFO
|
10116
|
DialogPlayerProcessInfo.xml | |
musicosd
|
WINDOW_DIALOG_MUSIC_OSD
|
10120
|
MusicOSD.xml | |
visualisationpresetlist
|
WINDOW_DIALOG_VIS_SETTINGS
|
10121
|
||
visualisationpresetlist
|
WINDOW_DIALOG_VIS_PRESET_LIST
|
10122
|
DialogSelect.xml | |
osdvideosettings
|
WINDOW_DIALOG_VIDEO_OSD_SETTINGS
|
10123
|
DialogSettings.xml | |
osdaudiosettings
|
WINDOW_DIALOG_AUDIO_OSD_SETTINGS
|
10124
|
DialogSettings.xml | |
videobookmarks
|
WINDOW_DIALOG_VIDEO_BOOKMARKS
|
10125
|
VideoOSDBookmarks.xml | |
filebrowser
|
WINDOW_DIALOG_FILE_BROWSER
|
10126
|
FileBrowser.xml | |
networksetup
|
WINDOW_DIALOG_NETWORK_SETUP
|
10128
|
DialogSettings.xml | |
mediasource
|
WINDOW_DIALOG_MEDIA_SOURCE
|
10129
|
DialogMediaSource.xml | |
profilesettings
|
WINDOW_DIALOG_PROFILE_SETTINGS
|
10130
|
DialogSettings.xml | |
locksettings
|
WINDOW_DIALOG_LOCK_SETTINGS
|
10131
|
DialogSettings.xml | |
contentsettings
|
WINDOW_DIALOG_CONTENT_SETTINGS
|
10132
|
DialogSettings.xml | |
libexportsettings
|
WINDOW_DIALOG_LIBEXPORT_SETTINGS
|
10133
|
DialogSettings.xml | |
favourites
|
WINDOW_DIALOG_FAVOURITES
|
10134
|
DialogFavourites.xml | Deprecated. Will be removed in Kodi v21 |
songinformation
|
WINDOW_DIALOG_SONG_INFO
|
10135
|
DialogMusicInfo.xml | |
smartplaylisteditor
|
WINDOW_DIALOG_SMART_PLAYLIST_EDITOR
|
10136
|
SmartPlaylistEditor.xml | |
smartplaylistrule
|
WINDOW_DIALOG_SMART_PLAYLIST_RULE
|
10137
|
SmartPlaylistRule.xml | |
busydialog
|
WINDOW_DIALOG_BUSY
|
10138
|
DialogBusy.xml | |
pictureinfo
|
WINDOW_DIALOG_PICTURE_INFO
|
10139
|
DialogPictureInfo.xml | |
addonsettings
|
WINDOW_DIALOG_ADDON_SETTINGS
|
10140
|
DialogAddonSettings.xml | |
fullscreeninfo
|
WINDOW_DIALOG_FULLSCREEN_INFO
|
10142
|
DialogFullScreenInfo.xml | |
sliderdialog
|
WINDOW_DIALOG_SLIDER
|
10145
|
DialogSlider.xml | |
addoninformation
|
WINDOW_DIALOG_ADDON_INFO
|
10146
|
DialogAddonInfo.xml | |
textviewer
|
WINDOW_DIALOG_TEXT_VIEWER
|
10147
|
DialogTextViewer.xml | |
|
WINDOW_DIALOG_PLAY_EJECT
|
10148
|
DialogConfirm.xml | |
|
WINDOW_DIALOG_PERIPHERALS
|
10149
|
DialogSelect.xml | |
peripheralsettings
|
WINDOW_DIALOG_PERIPHERAL_SETTINGS
|
10150
|
DialogSettings.xml | |
extendedprogressdialog
|
WINDOW_DIALOG_EXT_PROGRESS
|
10151
|
DialogExtendedProgressBar.xml | |
mediafilter
|
WINDOW_DIALOG_MEDIA_FILTER
|
10152
|
DialogSettings.xml | |
subtitlesearch
|
WINDOW_DIALOG_SUBTITLES
|
10153
|
DialogSubtitles.xml | |
|
WINDOW_DIALOG_KEYBOARD_TOUCH
|
10156
|
||
osdcmssettings
|
WINDOW_DIALOG_CMS_OSD_SETTINGS
|
10157
|
DialogSettings.xml | |
infoprovidersettings
|
WINDOW_DIALOG_INFOPROVIDER_SETTINGS
|
10158
|
DialogSettings.xml | |
osdsubtitlesettings
|
WINDOW_DIALOG_SUBTITLE_OSD_SETTINGS
|
10159
|
DialogSettings.xml | |
busydialognocancel
|
WINDOW_DIALOG_BUSY_NOCANCEL
|
10160
|
DialogBusy.xml | |
musicplaylist
|
WINDOW_MUSIC_PLAYLIST
|
10500
|
MyPlaylist.xml | |
music
|
WINDOW_MUSIC_NAV
|
10502
|
MyMusicNav.xml | |
musicplaylisteditor
|
WINDOW_MUSIC_PLAYLIST_EDITOR
|
10503
|
MyMusicPlaylistEditor.xml | |
teletext
|
WINDOW_DIALOG_OSD_TELETEXT
|
10550
|
||
pvrguideinfo
|
WINDOW_DIALOG_PVR_GUIDE_INFO
|
10600
|
DialogPVRInfo.xml | |
pvrrecordinginfo
|
WINDOW_DIALOG_PVR_RECORDING_INFO
|
10601
|
DialogPVRInfo.xml | |
pvrtimersetting
|
WINDOW_DIALOG_PVR_TIMER_SETTING
|
10602
|
DialogSettings.xml | |
pvrgroupmanager
|
WINDOW_DIALOG_PVR_GROUP_MANAGER
|
10603
|
DialogPVRGroupManager.xml | |
pvrchannelmanager
|
WINDOW_DIALOG_PVR_CHANNEL_MANAGER
|
10604
|
DialogPVRChannelManager.xml | |
pvrguidesearch
|
WINDOW_DIALOG_PVR_GUIDE_SEARCH
|
10605
|
DialogPVRGuideSearch.xml | |
pvrchannelscan
|
WINDOW_DIALOG_PVR_CHANNEL_SCAN
|
10606
|
none (unused) | |
pvrupdateprogress
|
WINDOW_DIALOG_PVR_UPDATE_PROGRESS
|
10607
|
none (unused) | |
pvrosdchannels
|
WINDOW_DIALOG_PVR_OSD_CHANNELS
|
10608
|
DialogPVRChannelsOSD.xml | |
pvrchannelguide
|
WINDOW_DIALOG_PVR_CHANNEL_GUIDE
|
10609
|
DialogPVRChannelGuide.xml | |
pvrradiordsinfo
|
WINDOW_DIALOG_PVR_RADIO_RDS_INFO
|
10610
|
DialogPVRRadioRDSInfo.xml | |
pvrrecordingsettings
|
WINDOW_DIALOG_PVR_RECORDING_SETTING
|
10611
|
DialogSettings.xml | |
|
WINDOW_DIALOG_PVR_CLIENT_PRIORITIES
|
10612
|
DialogSettings.xml | |
pvrguidecontrols
|
WINDOW_DIALOG_PVR_GUIDE_CONTROLS
|
10613
|
[2] | |
tvchannels
|
WINDOW_TV_CHANNELS
|
10700
|
MyPVRChannels.xml | |
tvrecordings
|
WINDOW_TV_RECORDINGS
|
10701
|
MyPVRRecordings.xml | |
tvguide
|
WINDOW_TV_GUIDE
|
10702
|
MyPVRGuide.xml | |
tvtimers
|
WINDOW_TV_TIMERS
|
10703
|
MyPVRTimers.xml | |
tvsearch
|
WINDOW_TV_SEARCH
|
10704
|
MyPVRSearch.xml | |
radiochannels
|
WINDOW_RADIO_CHANNELS
|
10705
|
MyPVRChannels.xml | |
radiorecordings
|
WINDOW_RADIO_RECORDINGS
|
10706
|
MyPVRRecordings.xml | |
radioguide
|
WINDOW_RADIO_GUIDE
|
10707
|
MyPVRGuide.xml | |
radiotimers
|
WINDOW_RADIO_TIMERS
|
10708
|
MyPVRTimers.xml | |
radiosearch
|
WINDOW_RADIO_SEARCH
|
10709
|
MyPVRSearch.xml | |
tvtimerrules
|
WINDOW_TV_TIMER_RULES
|
10710
|
MyPVRTimers.xml | |
radiotimerrules
|
WINDOW_RADIO_TIMER_RULES
|
10711
|
MyPVRTimers.xml | |
FullscreenLiveTV
|
WINDOW_FULLSCREEN_LIVETV
|
10800
|
None (shortcut to fullscreenvideo) | |
fullscreenradio
|
WINDOW_FULLSCREEN_RADIO
|
10801
|
None (shortcut to visualisation) | |
fullscreenlivetvpreview
|
WINDOW_FULLSCREEN_LIVETV_PREVIEW
|
10802
|
None (shortcut to fullscreenlivetv) | |
fullscreenradiopreview
|
WINDOW_FULLSCREEN_RADIO_PREVIEW
|
10803
|
None (shortcut to fullscreenradio | |
fullscreenlivetvinput
|
WINDOW_FULLSCREEN_LIVETV_INPUT
|
10804
|
None (shortcut to fullscreenlivetv) | |
fullscreenradioinput
|
WINDOW_FULLSCREEN_RADIO_INPUT
|
10805
|
None (shortcut to fullscreenradio) | |
gamecontrollers
|
WINDOW_DIALOG_GAME_CONTROLLERS
|
10820
|
DialogGameControllers.xml | |
games
|
WINDOW_GAMES
|
10821
|
MyGames.xml | |
gameosd
|
WINDOW_DIALOG_GAME_OSD
|
10822
|
GameOSD.xml | |
gamevideofilter
|
WINDOW_DIALOG_GAME_VIDEO_FILTER
|
10823
|
DialogSelect.xml | |
gameviewmode
|
WINDOW_DIALOG_GAME_STRETCH_MODE
|
10824
|
DialogSelect.xml | |
gamevolume
|
WINDOW_DIALOG_GAME_VOLUME
|
10825
|
DialogVolumeBar.xml | |
gameadvancedsettings
|
WINDOW_DIALOG_GAME_ADVANCED_SETTINGS
|
10826
|
DialogAddonSettings.xml | |
gamevideorotation
|
WINDOW_DIALOG_GAME_VIDEO_ROTATION
|
10827
|
DialogSelect.xml | |
gameports
|
WINDOW_DIALOG_GAME_PORTS
|
10828
|
DialogGameControllers.xml | [3] |
ingamesaves
|
WINDOW_DIALOG_IN_GAME_SAVES
|
10829
|
DialogSelect.xml | [4] |
gamesaves
|
WINDOW_DIALOG_GAME_SAVES
|
10830
|
DialogSelect.xml | [5] |
gameagents
|
WINDOW_DIALOG_GAME_AGENTS
|
10831
|
DialogGameControllers.xml | [6] |
Custom Skin Windows
|
-
|
-
|
custom*.xml - WINDOW_ID's from 11100 to 11199 reserved for Skins | |
selectdialog
|
WINDOW_DIALOG_SELECT
|
12000
|
DialogSelect.xml | |
musicinformation
|
WINDOW_DIALOG_MUSIC_INFO
|
12001
|
DialogMusicInfo.xml | |
okdialog
|
WINDOW_DIALOG_OK
|
12002
|
DialogConfirm.xml | |
movieinformation
|
WINDOW_DIALOG_VIDEO_INFO
|
12003
|
DialogVideoInfo.xml | |
managevideoversions
|
WINDOW_DIALOG_MANAGE_VIDEO_VERSIONS
|
12004
|
DialogVideoManager.xml | Added in Kodi v21 Omega |
fullscreenvideo
|
WINDOW_FULLSCREEN_VIDEO
|
12005
|
VideoFullScreen.xml | |
visualisation
|
WINDOW_VISUALISATION
|
12006
|
MusicVisualisation.xml | |
slideshow
|
WINDOW_SLIDESHOW
|
12007
|
SlideShow.xml | |
dialogcolorpicker
|
WINDOW_DIALOG_COLOR_PICKER
|
12008
|
DialogColorPicker.xml | Added in Kodi v20 Nexus |
selectvideoversion
|
WINDOW_DIALOG_SELECT_VIDEO_VERSION
|
12015
|
DialogSelect.xml | Added in Kodi v21 Omega |
selectvideoextra
|
WINDOW_DIALOG_SELECT_VIDEO_EXTRA
|
12016
|
DialogSelect.xml | Added in Kodi v21 Omega |
managevideoextras
|
WINDOW_DIALOG_MANAGE_VIDEO_EXTRAS
|
12017
|
DialogVideoManager.xml | Added in Kodi v21 Omega |
weather
|
WINDOW_WEATHER
|
12600
|
MyWeather.xml | |
screensaver
|
WINDOW_SCREENSAVER
|
12900
|
none | |
videoosd
|
WINDOW_DIALOG_VIDEO_OSD
|
12901
|
VideoOSD.xml | |
videomenu
|
WINDOW_VIDEO_MENU
|
12902
|
none | |
videotimeseek
|
WINDOW_VIDEO_TIME_SEEK
|
12905
|
none | |
fullscreengame
|
WINDOW_FULLSCREEN_GAME
|
12906
|
none | |
splash
|
WINDOW_SPLASH
|
12997
|
||
startwindow
|
WINDOW_START
|
12998
|
shortcut to the current startwindow | |
startup
|
WINDOW_STARTUP_ANIM
|
12999
|
Startup.xml | |
In addition, there are the following "special" windows whose id is not really a concern (and you'll notice isn't unique) | ||||
Python Windows
|
-
|
-
|
WINDOW_ID's from 13000 to 13099 reserved for Python | |
addon
|
-
|
-
|
WINDOW_ID's from 14000 to 14099 reserved for Addons |
Appendix II: List of Boolean Conditions
Skins can use boolean conditions with the <visible> tag or with condition attributes. Scripts can read boolean conditions with xbmc.getCondVisibility(condition)
.
Container
InfoLabels | Definition | Version |
---|---|---|
Container.HasThumb
|
Returns true if the current container you are in has a thumb assigned to it | |
Container.Content(parameter)
|
Returns true if the current container you are in contains the following: files, songs, artists, albums, movies, tvshows, seasons, episodes, musicvideos, genres, years, actors, playlists, plugins, studios, directors, sets, tags, countries, roles, images (Note: these currently only work in the Video and Music Library or unless a Plugin has set the value) also available are Addons true when a list of add-ons is shown LiveTV true when a htsp (tvheadend) directory is shown | |
Container(id).OnNext
|
Returns true if the container with id (or current container if id is omitted) is moving to the next item. Allows views to be custom-designed (such as 3D coverviews etc.) | |
Container(id).OnScrollNext
|
Returns true if the container with id (or current container if id is omitted) is scrolling to the next item. Differs from OnNext in that OnNext triggers on movement even if there is no scroll involved. | |
Container(id).OnPrevious
|
Returns true if the container with id (or current container if id is omitted) is moving to the previous item. Allows views to be custom-designed (such as 3D coverviews etc.) | |
Container(id).OnScrollPrevious
|
Returns true if the container with id (or current container if id is omitted) is scrolling to the previous item. Differs from OnPrevious in that OnPrevious triggers on movement even if there is no scroll involved. | |
Container(id).HasFocus(item_number)
|
Returns true if the container with id (or current container if id is omitted) has static content and is focused on the item with id item_number. | |
Container.HasFiles
|
Returns true if the container contains files. | |
Container.HasFolders
|
Returns true if the container contains folders. | |
Container(id).HasNext
|
Returns true if the container or textbox with id (id) has a next page. | |
Container(id).HasPrevious
|
Returns true if the container or textbox with id (id) has a previous page. | |
Container(id).IsUpdating
|
Returns true if the container with dynamic list content is currently updating. | |
Container.IsStacked
|
Returns true if the container is currently in stacked mode. | |
Container.CanFilter
|
Returns true when the current container can be filtered. | |
Container.CanFilterAdvanced
|
Returns true when advanced filtering can be applied to the current container. | |
Container.Filtered
|
Returns true when a mediafilter is applied to the current container. | |
Container(id).HasParent
|
Return true when the container with id (or current container if id is omitted) contains a parent ('..') item. | |
Container.SortDirection(ascending)
|
Returns true the sort direction of a container is ascending. | |
Container.SortDirection(descending)
|
Returns true the sort direction of a container is descending. | |
Container(id).Row(row)
|
Returns true if the container with id (or current container if id is omitted) is focused on the row given. | |
Container(id).Column(col)
|
Returns true if the container with id (or current container if id is omitted) is focused on the column given. | |
Container(id).Position(pos)
|
Returns true if the container with id (or current container if id is omitted) is focused on the position given. | |
Container(id).Scrolling
|
Returns true if the user is currently scrolling through the container with id (or current container if id is omitted). Note that this is slightly delayed from the actual scroll start. Use Container(id).OnScrollNext/OnScrollPrevious to trigger animations immediately on scroll. | |
Container(id).SubItem
|
Returns true if the container with id (or current container if id is omitted) is focused on the specified subitem. | |
Container.Sortmethod(id)
|
Returns true if the current sort method matches the specified SortID [see list of sort methods]. |
Control
InfoLabels | Definition | Version |
---|---|---|
Control.IsEnabled(id)
|
Returns true if the control with id "id" is enabled. | |
Control.IsVisible(id)
|
Returns true if the control with id "id" is visible. | |
Control.HasFocus(id)
|
Returns true if the currently focused control has id "id". | |
ControlGroup(group).HasFocus(id)
|
Returns true if the control group with id “group” has control id “id” as it's focused item. If “id” is not present, or is 0, then it will return true if the currently focused control is in the control group with id “group”.Note that if the control group with id “group” does not have focus, then this will still return true if the last focused item in the group had control id “id”. WARNING: Avoid using IDs 9000-9999 as this is the range assigned to groups with no ID value. |
Integer
InfoLabels | Definition | Version |
---|---|---|
Integer.IsEqual(info,number)
|
Returns true if the value of the infolabel is equal to the supplied number. Example: Integer.IsEqual(ListItem.Year,2000) |
v17 Addition |
Integer.IsEven(info)
|
Returns true if the value of the infolabel is even. Example: Integer.IsEven(ListItem.CurrentItem) |
v19 Addition |
Integer.IsGreater(info,number)
|
Returns true if the value of the infolabel is greater than to the supplied number. Example: Integer.IsGreater(ListItem.Year,2000) |
v17 Addition |
Integer.IsGreaterOrEqual(info,number)
|
Returns true if the value of the infolabel is greater or equal to the supplied number. Example: Integer.IsGreaterOrEqual(ListItem.Year,2000) |
v17 Addition |
Integer.IsLess(info,number)
|
Returns true if the value of the infolabel is less than the supplied number. Example: Integer.IsLess(ListItem.Year,2000) |
v17 Addition |
Integer.IsLessOrEqual(info,number)
|
Returns true if the value of the infolabel is less or equal to the supplied number. Example: Integer.IsLessOrEqual(ListItem.Year,2000) |
v17 Addition |
Integer.IsOdd(info)
|
Returns true if the value of the infolabel is odd. Example: Integer.IsOdd(ListItem.CurrentItem) |
v19 Addition |
Library
InfoLabels | Definition | Version |
---|---|---|
Library.HasContent(string)
|
Returns true if the Kodi libraries have the content from string. Valid Strings are (Video, Music, Movies, TVShows, MusicVideos, MovieSets, BoxSets) | |
Library.IsScanningMusic
|
Returns true if the music library is being updated | |
Library.IsScanningVideo
|
Returns true if the video library is being updated | |
Library.HasContent(Role, Composer)
|
Tag can be Composer, Conductor, Orchestra, Lyricist, Remixer, Arranger, Engineer, Producer, DJMixer or Mixer. Returns true if there are any artists with that role in the library | v17 addition |
Library.HasNode(path)
|
Returns True if the specified node is available (example: Library.HasNode(library://video/movies/titles.xml)) | v19 addition |
ListItem
InfoLabels | Definition | Version |
---|---|---|
ListItem.HasVideoVersions
|
Returns true if the ListItem has video versions | |
ListItem.HasVideoExtras
|
Returns true if the ListItem has video extras | |
ListItem.IsFolder
|
Returns whether the current ListItem is a folder | |
ListItem.IsPlaying
|
Returns whether the current ListItem.* info labels and images are currently Playing media | |
ListItem.IsResumable
|
Returns true when the current ListItem has been partially played | |
ListItem.IsCollection
|
Returns true when the current ListItem is a movie set | |
ListItem.IsSelected
|
Returns whether the current ListItem is selected (f.e. currently playing in playlist window) | |
ListItem.HasArchive
|
returns True when the selected channel has a server-side back buffer (PVR) | v19 addition |
ListItem.HasEpg
|
Returns true when the selected programme has epg info (PVR) | |
ListItem.HasReminder
|
returns True if the item has a reminder set (PVR) | v19 addition |
ListItem.HasReminderRule
|
returns True if the item was scheduled by a reminder timer rule (PVR) | v19 addition |
ListItem.HasTimer
|
Returns true when a recording timer has been set for the selected programme (PVR) | |
ListItem.IsRecording
|
Returns true when the selected programme is being recorded (PVR) | |
ListItem.IsEncrypted
|
Returns true when the selected programme is encrypted (PVR) | |
ListItem.IsStereoscopic
|
Returns true when the selected video is a 3D (stereoscopic) video | |
ListItem.Property(IsSpecial)
|
Returns whether the current Season/Episode is a Special | |
ListItem.Property(DateLabel)
|
Can be used in the rulerlayout of the epggrid control. Will return true if the item is a date label, returns false if the item is a time label. | |
ListItem.Property(Addon.IsEnabled)
|
Returns true when the selected addon is enabled (for use in the addon info dialog only). | |
ListItem.Property(Addon.IsInstalled)
|
Returns true when the selected addon is installed (for use in the addon info dialog only). | |
ListItem.Property(Addon.HasUpdate)
|
Returns true when there's an update available for the selected addon. | |
ListItem.HasTimerSchedule
|
Whether the item is part of a repeating timer schedule (PVR). | v16 addition |
ListItem.TimerHasError
|
Whether the item has a timer and it won't be recorded because of an error (PVR). | v17 addition |
ListItem.TimerHasConflict
|
Whether the item has a timer and it won't be recorded because of a conflict (PVR). | v17 addition |
ListItem.TimerIsActive
|
Whether the item has a timer that will be recorded, i.e. the timer is enabled (PVR). | v17 addition |
ListItem.Property(Addon.Orphaned)
|
Returns true if the slected addon is orphaned (not needed anymore by any other addon) | v17 addition |
ListItem.IsParentFolder
|
Returns true is the slected item is the 'up' item | v17 addition |
ListItem.IsNew
|
[PVR] will return true if the item is a premiere (for example, a Live TV show that will be first aired). | v19 addition |
ListItem.IsPlayable
|
Returns True when the selected programme can be played (PVR) | v19 addition |
ListItem.IsBoxset
|
Returns True if the item is part of a boxset album | v19 addition |
ListItem.IsPremiere
|
Returns true if the item is a premiere (for example, a Movie first showing or season first on Live TV) | v19 addition |
ListItem.IsFinale
|
Returns true if the item is a finale (for example, a season finale showing on Live TV) | v19 addition |
ListItem.IsLive
|
Returns true if the item is live (for example, a Live TV sports event) | v19 addition |
ListItem.Property(Addon.IsFromOfficialRepo)
|
Returns true if the addon is from an official repository | v19 addition |
ListItem.Property(Addon.IsBinary)
|
Returns true for binary addons | v19 addition |
ListItem.Property(Addon.IsUpdate)
|
Returns True if this add-on is a valid update of an installed outdated add-on | v19 addition |
ListItem.IsAutoUpdateable
|
Returns True if this add-on can be updated automatically | v19 addition |
Player
InfoLabels | Definition | Version |
---|---|---|
Player.HasMedia
|
Returns true if the player has an audio or video file. | |
Player.HasAudio
|
Returns true if the player has an audio file. | |
Player.HasDuration
|
Returns true if Media isn't a true stream | |
Player.HasVideo
|
Returns true if the player has a video file. | |
Player.Passthrough
|
Returns true if the player is using audio passthrough. | |
Player.Playing
|
Returns true if the player is currently playing (ie not ffwding, rewinding or paused.) | |
Player.Paused
|
Returns true if the player is paused. | |
Player.Forwarding
|
Returns true if the player is fast forwarding. | |
Player.Forwarding2x
|
Returns true if the player is fast forwarding at 2x. | |
Player.Forwarding4x
|
Returns true if the player is fast forwarding at 4x. | |
Player.Forwarding8x
|
Returns true if the player is fast forwarding at 8x. | |
Player.Forwarding16x
|
Returns true if the player is fast forwarding at 16x. | |
Player.Forwarding32x
|
Returns true if the player is fast forwarding at 32x. | |
Player.Rewinding
|
Returns true if the player is rewinding. | |
Player.Rewinding2x
|
Returns true if the player is rewinding at 2x. | |
Player.Rewinding4x
|
Returns true if the player is rewinding at 4x. | |
Player.Rewinding8x
|
Returns true if the player is rewinding at 8x. | |
Player.Rewinding16x
|
Returns true if the player is rewinding at 16x. | |
Player.Rewinding32x
|
Returns true if the player is rewinding at 32x. | |
Player.PauseEnabled
|
Returns true if the currently playing stream can be paused. | |
Player.Caching
|
Returns true if the player is current re-caching data (internet based video playback). | |
Player.DisplayAfterSeek
|
Returns true for the first 2.5 seconds after a seek. | |
Player.Seeking
|
Returns true if a seek is in progress | |
Player.SeekEnabled
|
Returns true if player can seek | |
Player.ShowTime
|
Returns true if the user has requested the time to show (occurs in video fullscreen) | |
Player.ShowInfo
|
Returns true if the user has requested the song info to show (occurs in visualisation fullscreen and slideshow) | |
Player.IsInternetStream
|
Returns true if the player is playing an internet stream. | |
Player.Muted
|
Returns true if the volume is muted. | |
Player.Process(videohwdecoder)
|
Returns true if the currently playing video is decoded in hardware | v17 addition |
Player.TempoEnabled
|
Returns true if the current player supports changing the playback speed | v17 addition |
Player.IsTempo
|
Returns true if the current playbackspeed is not equal to 1 | v17 addition |
Player.HasGame
|
Returns true if the player is playing a game | v18 |
Player.HasResolutions
|
Returns true when multiple resolutions are available | v18 |
Player.FrameAdvance
|
Returns true if player is in frame advance mode | v18 |
Player.ChannelPreviewActive
|
Returns true if PVR channel preview is active (used channel tag different from played tag) |
MusicPlayer
InfoLabels | Definition | Version |
---|---|---|
MusicPlayer.HasNext
|
Returns true if the music player has a next song queued in the Playlist. | |
MusicPlayer.HasPrevious
|
Returns true if the music player has a a Previous Song in the Playlist . | |
MusicPlayer.Offset(number).Exists
|
Returns true if the music players playlist has a song queued in position (number). | |
MusicPlayer.Content(parameter)
|
Returns true if the current audio you are playing matches the specified content. The following values are accepted: files, livetv | |
MusicPartyMode.Enabled
|
Returns true if Party Mode is enabled | |
MusicPlayer.IsMultiDisc
|
Returns true if the current album consists of two or more discs | v19 addition |
VideoPlayer
InfoLabels | Definition | Version | |
---|---|---|---|
VideoPlayer.HasVideoVersions
|
Returns true if the currently playing video has versions. | v21 | |
VideoPlayer.UsingOverlays
|
Returns true if the video player is using the hardware overlays render method. Useful, as with hardware overlays you have no alpha blending to the video image, so shadows etc. need redoing, or disabling. | ||
VideoPlayer.IsFullscreen
|
Returns true if the video player is in fullscreen mode. | ||
VideoPlayer.HasMenu
|
Returns true if the video player has a menu (ie is playing a DVD) | ||
VideoPlayer.HasInfo
|
Returns true if the current playing video has information from the library or from a plugin (eg director/plot etc.) | ||
VideoPlayer.Content(parameter)
|
Returns true if the current Video you are playing is contained in corresponding Video Library sections. The following values are accepted : files, movies, episodes, musicvideos, livetv | ||
VideoPlayer.HasSubtitles
|
Returns true if there are subtitles available for video. (available for version 11.0 and above) | ||
VideoPlayer.IsStereoscopic
|
Returns true when the currently playing video is a 3D (stereoscopic) video | ||
VideoPlayer.SubtitlesEnabled
|
Returns true if subtitles are turned on for video. (available for version 11.0 and above) | ||
VideoPlayer.HasEpg
|
Returns true when epg information is available for the currently playing programme (PVR). | ||
VideoPlayer.HasTeletext
|
Returns true when teletext is available. |
PlayList
InfoLabels | Definition | Version |
---|---|---|
Playlist.IsRandom
|
Returns true if the player is in random mode. | |
Playlist.IsRepeat
|
Returns true if the player is in repeat all mode. | |
Playlist.IsRepeatOne
|
Returns true if the player is in repeat one mode. |
PVR
InfoLabels | Definition | Version | |
---|---|---|---|
Pvr.HasTimer
|
Returns true when a recording timer is active. | ||
Pvr.HasNonRecordingTimer
|
Returns true when a non recording timer is active. | ||
Pvr.HasTVChannels
|
Returns true if there are tv channels available | ||
Pvr.HasRadioChannels
|
Returns true if there are radio channels available | ||
Pvr.IsPlayingTv
|
Returns true when live tv is being watched. | ||
Pvr.IsPlayingRadio
|
Returns true when live radio is being listened to. | ||
Pvr.IsPlayingRecording
|
Returns true when a recording is being watched. | ||
Pvr.IsRecording
|
Returns true when the system is recording a tv programme. | ||
Pvr.IsTimeShift
|
Returns true when the playback is timeshifted. | ||
Pvr.ActStreamIsEncrypted
|
Returns true if the stream is encrypted | ||
Pvr.RadioNextRecordingChannelIcon
|
Icon of the next recording radio channel | v17 Addition | |
Pvr.IsRecordingTV
|
Returns true when the system is recording a tv programme. | v17 Addition | |
Pvr.HasTVTimer
|
Returns true if at least one tv timer is active. | v17 Addition | |
Pvr.HasNonRecordingTVTimer
|
Returns true if there are tv timers present who currently not do recording | v17 Addition | |
Pvr.IsRecordingRadio
|
Returns true when the system is recording a radio programme. | v17 Addition | |
Pvr.HasRadioTimer
|
Returns true if at least one radio timer is active. | v17 Addition | |
Pvr.HasNonRecordingRadioTimer
|
Returns true if there are radio timers present who currently not do recording | v17 Addition | |
Pvr.CanRecordPlayingChannel
|
Returns true if the player can record the current internet stream. | v18 Addition | |
Pvr.IsRecordingPlayingChannel
|
Returns true if the player is recording the current internet stream. | v18 Addition | |
Pvr.IsPlayingActiveRecording
|
Returns true when Kodi is currently playing a recording that is in progress. | v19 Addition |
RDS
InfoLabels | Definition | Version |
---|---|---|
RDS.HasRds
|
Returns true if RDS is present | |
RDS.HasRadioText
|
Returns true if RDS contains also Radiotext | |
RDS.HasRadioTextPlus
|
Returns true if RDS with Radiotext contains also the plus information | |
RDS.HasHotline
|
Returns true if a hotline phone number is present (Only be available on RadiotextPlus) | |
RDS.HasStudio
|
Returns true if a studio name is present (Only be available on RadiotextPlus) |
Skin
InfoLabels | Definition | Version |
---|---|---|
Skin.HasTheme(theme)
|
Returns true if the user has selected the theme with name ?theme?. | |
Skin.HasSetting(setting)
|
Returns the state of the skin-specified setting ?setting?. You can toggle a setting from a button by using <onclick>Skin.ToggleSetting(setting)</onclick>. | |
Skin.String(string)
|
Returns whether the skin string (set via Skin.SetString, Skin.SetPath, or Skin.SetImage) is non-empty. | |
Skin.String(string1,string2)
|
Same as String.IsEqual(Skin.String(string1),string2). Returns true if Skin.String(string1) equals string2. |
SlideShow
InfoLabels | Definition | Version |
---|---|---|
Slideshow.IsActive
|
Returns true if the picture slideshow is running | |
Slideshow.IsPaused
|
Returns true if the picture slideshow is paused | |
Slideshow.IsRandom
|
Returns true if the picture slideshow is in random mode | |
Slideshow.IsVideo
|
Returns true if the picture slideshow is playing a video |
String
InfoLabels | Definition | Version |
---|---|---|
String.IsEmpty(info)
|
Returns true if the info is empty. Example of info: ListItem.Title, ListItem.Genre. Please note that string can also be a $LOCALIZE[]. Also note that in a panelview or similar this only works on the focused item. |
v17 Addition |
String.IsEqual(info,string)
|
Returns true if the info is equal to the given string. Example of info: ListItem.Title, ListItem.Genre. Please note that string can also be a $LOCALIZE[] or info label (without $INFO prefix). Also note that in a panelview or similar this only works on the focused item. |
v17 Addition |
String.StartsWith(info,substring)
|
Returns true if the info starts with the given substring. Example of info: ListItem.Title, ListItem.Genre. Please note that string can also be a $LOCALIZE[] or info label (without $INFO prefix). Also note that in a panelview or similar this only works on the focused item. |
v17 Addition |
String.EndsWith(info,substring)
|
Returns true if the info ends with the given substring. Example of info: ListItem.Title, ListItem.Genre. Please note that string can also be a $LOCALIZE[] or info label (without $INFO prefix). Also note that in a panelview or similar this only works on the focused item. |
v17 Addition |
String.Contains(info,substring)
|
Returns true if the info contains the given substring. Example of info: ListItem.Title, ListItem.Genre. Please note that string can also be a $LOCALIZE[] or info label (without $INFO prefix). Also note that in a panelview or similar this only works on the focused item. |
v17 Addition |
System
InfoLabels | Definition | Version |
---|---|---|
System.AddonIsEnabled(id)
|
Returns true if the specified addon is enabled on the system | v19 addition |
System.HasAddon(id)
|
Returns true if the specified addon is installed on the system. | |
System.HasPVRAddon
|
Returns true if at least one PVR addon is installed on the system. | |
System.HasAlarm(alarm)
|
Returns true if the system has the ?alarm? alarm set. | |
System.AlarmLessOrEqual(alarmname,seconds)
|
Returns true if the alarm with ?alarmname? has less or equal to ?seconds? left. Standard use would be system.alarmlessorequal(shutdowntimer,119), which would return true when the shutdowntimer has less then 2 minutes left. | |
System.HasNetwork
|
Returns true if the ethernet cable is plugged in. | |
System.InternetState
|
Returns true if the system is connected to the internet, returns false in case no internet connection is available. | |
System.HasMediadvd
|
Returns true if there is a CD or DVD in the DVD-ROM drive. | |
System.HasMediaAudioCD
|
Returns true if there is an audio CD in the optical drive. False if no drive available, empty drive or other medium. | v18 Addition |
System.IdleTime(time)
|
Returns true if Kodi has had no input for ?time? amount of seconds. | |
System.IsStandalone
|
Returns true if Kodi is running in standalone mode. | |
System.IsFullscreen
|
Returns true if Kodi is running fullscreen. | |
System.IsLoggedOn
|
Returns true if a user is currently logged on under a profile | |
System.HasLoginScreen
|
Returns true if the profile login screen is enabled | |
System.HasActiveModalDialog
|
Returns true true when a modal dialog is active, disregarding any animations (Leia (v18) and newer versions) | v18 |
System.HasVisibleModalDialog
|
Returns true if a modal dialog is visible, eg when the animations are finished (Leia (v18) and newer versions) | v18 |
System.Time(startTime,endTime)
|
Returns true if the current system time is >= startTime and < endTime. endTime is optional. Time must be specified in the format HH:mm, using a 24 hour clock. | |
System.Date(startDate,endDate)
|
Returns true if the current system date is >= startDate and < endDate. endDate is optional. Date must be specified in the format MM-DD. | |
System.Platform.Linux
|
Returns true if Kodi is running on a linux/unix based computer. | |
System.Platform.Windows
|
Returns true if Kodi is running on a windows based computer. | |
System.Platform.OSX
|
Returns true if Kodi is running on an OSX based computer. | |
System.Platform.IOS
|
Returns true if Kodi is running on an IOS device. | |
System.Platform.Darwin
|
Returns true if Kodi is running on an OSX or IOS system. | |
System.Platform.Android
|
Returns true if Kodi is running on an android device. | |
System.Platform.UWP
|
Returns true if Kodi is running on Universal Windows Platform (UWP). | v18 Addition |
System.CanPowerDown
|
Returns true if Kodi can powerdown the system. | |
System.CanSuspend
|
Returns true if Kodi can suspend the system. | |
System.CanHibernate
|
Returns true if Kodi can hibernate the system. | |
System.HasHiddenInput
|
Return true when to osd keyboard/numeric dialog requests a password/pincode. | |
System.CanReboot
|
Returns true if Kodi can reboot the system. | |
System.ScreenSaverActive
|
Returns true if ScreenSaver is active. | |
System.Setting(hidewatched)
|
Returns true if 'hide watched items' is selected. | |
System.IsInhibit
|
Returns true when shutdown on idle is disabled. | |
System.HasShutdown
|
Returns true when shutdown on idle is enabled. | |
System.HasCMS
|
Returns true if colour management is supported in Kodi. | v17 Addition |
System.GetBool(boolean)
|
Returns the value of any standard system boolean setting. Will not work with settings in advancedsettings.xml | |
System.HasLocks
|
Returns true if the profile has lock preferences configured | |
System.IsMaster
|
Returns true if the profile has entered the master mode | |
System.SupportsCPUUsage
|
Return True if the system provides CPU info | v19 Addition |
Visualisation
InfoLabels | Definition | Version |
---|---|---|
Visualisation.Enabled
|
Returns true if any visualisation has been set in settings (so not None). | |
Visualisation.HasPresets
|
Returns true if the visualisation has built in presets. | |
Visualisation.Locked
|
Returns true if the current visualisation preset is locked (eg in Milkdrop.) |
Weather
InfoLabels | Definition | Version |
---|---|---|
Weather.IsFetched
|
Returns true if the weather data has been downloaded. |
Window
InfoLabels | Definition | Version |
---|---|---|
Window.IsVisible(window)
|
Returns true if the window is visible (includes fade out time on dialogs) | |
Window.IsActive(window)
|
Returns true if the window with id or title ?window? is active (excludes fade out time on dialogs) See here for a list of windows | |
Window.IsTopMost(window)
|
Returns true if the window with id or title ?window? is on top of the window stack (excludes fade out time on dialogs) See here for a list of windows | |
Window.IsMedia
|
Returns true if this window is a media window (programs, music, video, scripts, pictures) | |
Window.Next(window)
|
Returns true if the window with id or title ?window? is being moved to. See here for a list of windows. Only valid while windows are changing. | |
Window.Previous(window)
|
Returns true if the window with id or title ?window? is being moved from. See here for a list of windows. Only valid while windows are changing. | |
Window.Is(name)
|
Useful in xml files that are shared between multiple windows/dialogs. Will return true if the window with the given name is visible | v17 addition |
Appendix III: List of Info Labels
Skins can use infolabels with $INFO[infolabel] or the <info> tag. Scripts can read infolabels with xbmc.getInfoLabel('infolabel')
.
Container
InfoLabels | Definition | Version |
---|---|---|
Container.Content | Shows content of the current container | |
Container.FolderPath | Shows complete path of currently displayed folder | |
Container.FolderName | Shows top most folder in currently displayed folder | |
Container.Viewmode | Returns the current viewmode (list, icons etc.) | |
Container.SortMethod | Returns the current sort method (returns the localized name of: title, year, rating, etc.) | |
Container.SortOrder | Returns the current sort order (Ascending/Descending) | |
Container.PluginName | Returns the current plugins base folder name | |
Container.PluginCategory | Returns the current plugins category (set by the scripter) | |
Container.ShowPlot | Returns the TV Show plot of the current container and can be used at season and episode level | |
Container.ShowTitle | Returns the TV Show title of the current container and can be used at season and episode level | v17 addition |
Container(id).NumPages | Number of pages in the container with given id. If no id is specified it grabs the current container. | |
Container(id).NumItems | Number of items in the container or grouplist with given id. If no id is specified it grabs the current container. | |
Container(id).NumAllItems | Number of all items in the container or grouplist with given id including parent folder item. | v18 |
Container(id).NumNonFolderItems | Number of items in the container or grouplist with given id excluding all folder items. | v18 |
Container(id).CurrentPage | Current page in the container with given id. If no id is specified it grabs the current container. | |
Container(id).CurrentItem | Current absolute item in the container or grouplist with given id. If no id is specified it grabs the current container. | |
Container(id).Position | Returns the current focused position of the container / grouplist (id) as a numeric label. | |
Container(id).Column | Returns the column number of the focused position in a panel container. | |
Container(id).Row | Returns the row number of the focused position in a panel container. | |
Container.Totaltime | Returns the total time of all items in the current container | |
Container.TotalWatched | Returns the number of watched items in the current container | |
Container.TotalUnWatched | Returns the number of unwatched items in the current container | |
Container(id).ListItem(offset).Label | Shows ListItem.Label for a specific List or Panel Container with a offset ( eg: Container(50).Listitem(2).Label ) | |
Container(id).ListItem(offset).Label2 | Shows ListItem.Label2 for a specific List or Panel Container with a offset ( eg: Container(50).Listitem(-2).Label2 ) | |
Container(id).ListItem(offset).Icon | Shows ListItem.Icon for a specific List or Panel Container with a offset ( eg: Container(52).Listitem(1).Icon) | |
Container(id).ListItem(offset).ActualIcon | Shows ListItem.ActualIcon for a specific List or Panel Container with a offset ( eg: Container(50).Listitem(0).ActualIcon ) | |
Container(id).ListItem(offset).Thumb | Shows ListItem.Thumb for a specific List or Panel Container with a offset ( eg: Container(50).Listitem(0).Thumb ) | |
Container(id).ListItemNoWrap(offset).Property | Basically returns the same as ListItem(offset) but it won't wrap. That means if the last item of a list is focused, ListItemNoWrap(1) will be empty while ListItem(1) will return the first item of the list. Property has to be replaced with Label, Label2, Icon etc. ( eg: Container(50).ListitemNoWrap(1).Plot ) | |
Container(id).ListItemPosition(id).[infolabel] | Shows the infolabel for an item at position 'id' in a Container. the id is an offset to the first *visible* item of the container. ( eg: Container(50).ListItemPosition(4).Genre ) | |
Container(id).ListItemAbsolute(id).[infolabel] | Shows the infolabel for an item in a Container. the item id is the absolute position in the container. ( eg: Container(50).ListItemAbsolute(4).Genre ) | |
Container.Property(addoncategory) | Returns the current add-on category | |
Container.Property(reponame) | Returns the current add-on repository name | |
Container.ViewCount | The number of available skin view modes for the current container listing. |
Control
InfoLabels | Definition | Version |
---|---|---|
Control.GetLabel(id)[.index()] | Returns the label value or texture name of the control with the given id. Optionally you can specify index(1) to retrieve label2 from an Edit control. |
Fanart
InfoLabels | Definition | Version |
---|---|---|
Fanart.Color1 | Returns the first of three colors included in the currently selected Fanart theme for the parent TV Show. Colors are arranged Lightest to Darkest. | |
Fanart.Color2 | Returns the second of three colors included in the currently selected Fanart theme for the parent TV Show. Colors are arranged Lightest to Darkest. | |
Fanart.Color3 | Returns the third of three colors included in the currently selected Fanart theme for the parent TV Show. Colors are arranged Lightest to Darkest. |
Game
InfoLabels | Definition | Version |
---|---|---|
Game.Title | Name of the game | v18 |
Game.Platform | Platform the game runs on (eg. Atari 2600) | v18 |
Game.Genres | Gerne of the game (eg. Action) | v18 |
Game.Publisher | Publishing company of the game (eg. Nintendo) | v18 |
Game.Developer | Developer of the game | v18 |
Game.Overview | Game description | v18 |
Game.Year | Year the game was released | v18 |
Game.GameClient | Name of the used emulator | v18 |
ListItem
InfoLabels | Definition | Version | |
---|---|---|---|
ListItem.AddonBroken | Deprecated! use ListItem.AddonLifecycleDesc instead | ||
ListItem.AddonCreator | Shows the name of the author the currently selected addon | ||
ListItem.AddonDescription | Shows the full description of the currently selected addon | ||
ListItem.AddonDisclaimer | Shows the disclaimer of the currently selected addon | ||
ListItem.AddonInstallDate | Date the addon was installed | ||
ListItem.AddonLastUpdated | Date the addon was last updated | ||
ListItem.AddonLastUsed | Date the addon was used last | ||
ListItem.AddonLifecycleDesc | Description of the Lifecycle type (example: broken due to website changes) | v19 | |
ListItem.AddonLifecycleType | The Lifecycle type of the addon (returns a localized string: normal / broken / deprecated) | v19 | |
ListItem.AddonName | Shows the name of the currently selected addon | ||
ListItem.AddonNews | Returns a brief changelog, taken from the addons' addon.xml file | ||
ListItem.AddonSize | Filesize of the addon | ||
ListItem.AddonSummary | Shows a short description of the currently selected addon | ||
ListItem.AddonType | Shows the type (screensaver, script, skin, etc...) of the currently selected addon | ||
ListItem.AddonVersion | Shows the version of the currently selected addon | ||
ListItem.Album | Shows the album of the currently selected song in a container | ||
ListItem.AlbumArtist | Shows the artist of the currently selected album in a list | ||
ListItem.AlbumStatus | Returns the Musicbrainz release status of the album (offical, bootleg, promotion etc) | v19 | |
ListItem.Appearances | Returns the number of movies featuring the selected actor / directed by the selected director | v17 | |
ListItem.Artist | Shows the artist of the currently selected song in a container | ||
ListItem.AudioChannels | Shows the number of audio channels of the currently selected video (possible values: 1, 2, 4, 5, 6, 7, 8, 10) | ||
ListItem.AudioCodec | Shows the audio codec of the currently selected video (common values: aac, ac3, cook, dca, dtshd_hra, dtshd_ma, eac3, mp1, mp2, mp3, pcm_s16be, pcm_s16le, pcm_u8, truehd, vorbis, wmapro, wmav2) | ||
ListItem.AudioLanguage | Shows the audio language of the currently selected video (returns an ISO 639-2 three character code, e.g. eng, epo, deu) | ||
ListItem.BitRate | Returns the bitrate of the current song (Actual rate for CBR, average rate for VBR) | v19 | |
ListItem.BPM | Returns the Beats Per Minute for a song | v19 | |
ListItem.Cast | Shows a concatenated string of cast members of the currently selected movie, for use in dialogvideoinfo.xml | ||
ListItem.CastAndRole | Shows a concatenated string of cast members and roles of the currently selected movie, for use in dialogvideoinfo.xml | ||
ListItem.ChannelName | Name of current selected TV channel in a container | ||
ListItem.ChannelName | Channelname of the selected item (PVR). | ||
ListItem.ChannelNumber | Channel number of the selected item (PVR). | ||
ListItem.ChannelNumberLabel | Channel and subchannel number of the currently selected channel that's currently playing (PVR). | ||
ListItem.Comment | Comment assigned to the item (PVR/MUSIC). | ||
ListItem.ContributorAndRole | List of all people and their role who've contributed to the selected song | ||
ListItem.Contributors | List of all people who've contributed to the selected song | ||
ListItem.Country | Shows the production country of the currently selected movie in a container | ||
ListItem.CurrentItem | will return the current index of the item in a container starting at 1. | v19 | |
ListItem.Date | Shows the file date of the currently selected song or movie in a container / Aired date of an episode / Day, start time and end time of current selected TV programme (PVR) | ||
ListItem.DateAdded | Shows the date the currently selected item was added to the library / Date and time of an event in the EventLog window. | ||
ListItem.DBID | Shows the database id of the currently selected ListItem in a container | ||
ListItem.DBTYPE | Shows the database type of the ListItem.DBID for videos (video, movie, set, tvshow, season, episode, musicvideo) or for audio (music, song, album, artist). Beware with season, the "*all seasons" entry does give a DBTYPE "season" and a DBID, but you can't get the details of that entry since it's a virtual entry in the Video Library. | ||
ListItem.Director | Shows the director of the currently selected movie in a container | ||
ListItem.DiscNumber | Shows the disc number of the currently selected song in a container | ||
ListItem.DiscTitle | The disc title of the currently selected album or song | v19 | |
ListItem.Duration[(format)] | Shows the song or movie duration of the currently selected movie in a container. Optionally specify a time format, hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | ||
ListItem.EndDate | End date of the selected item (PVR). | ||
ListItem.EndTime | End time of current selected TV programme in a container | ||
ListItem.EndTime | End time of the selected item (PVR). | ||
ListItem.EndTimeResume | Returns the time a video will end if you resume it, instead of playing it from the beginning. | ||
ListItem.Episode | Shows the episode number value for the currently selected episode. It also shows the number of total, watched or unwatched episodes for the currently selected tvshow or season, based on the the current watched filter. | ||
ListItem.EpisodeName | (PVR only) The name of the episode if the selected EPG item is a TV Show | ||
ListItem.FileExtension | Shows the file extension (without leading dot) of the currently selected item in a container | ||
ListItem.FileName | Shows the filename of the currently selected song or movie in a container | ||
ListItem.FileNameAndPath | Shows the full path with filename of the currently selected song or movie in a container | ||
ListItem.FileNameNoExtension | Returns the filename without its extension. | v19 | |
ListItem.FolderName | Shows top most folder of the path of the currently selected song or movie in a container | ||
ListItem.FolderPath | Shows the complete path of the currently selected song or movie in a container (without user details). | ||
ListItem.Genre | Shows the genre of the currently selected song, album or movie in a container | ||
ListItem.HdrType | Shows the HDR type of the currently selected video (possible values: hdr10, dolbyvision and hlg) | v20 | |
ListItem.IMDBNumber | The IMDB iD of the selected Video in a container | ||
ListItem.IsBoxset | Returns true if the item is part of a boxset | v19 | |
ListItem.Label | Shows the left label of the currently selected item in a container | ||
ListItem.Label2 | Shows the right label of the currently selected item in a container | ||
ListItem.LastPlayed | Last play date of Video in a container | ||
ListItem.Mood | Mood of the selected song | ||
ListItem.Mpaa | Show the MPAA rating of the currently selected movie in a container | ||
ListItem.MusicChannels | Returns the number of audio channels for a song | v19 | |
ListItem.NextDuration | Duration of the next item (PVR). | v18 | |
ListItem.NextEndDate | End date of the next item (PVR). | ||
ListItem.NextEndTime | End of the next item (PVR). | ||
ListItem.NextGenre | Genre of the next item (PVR). | ||
ListItem.NextPlot | Plot of the next item (PVR). | ||
ListItem.NextPlotOutline | Plot outline of the next item (PVR). | ||
ListItem.NextStartDate | Start date of the next item (PVR). | ||
ListItem.NextStartTime | Start time of the next item (PVR). | ||
ListItem.NextTitle | Title of the next item (PVR). | ||
ListItem.OriginalDate | Returns the original release date of the item | v19 | |
ListItem.OriginalTitle | Shows the original title of the currently selected movie in a container | ||
ListItem.Path | Shows the complete path of the currently selected song or movie in a container | ||
ListItem.PercentPlayed | Returns percentage value [0-100] of how far the selected video has been played | ||
ListItem.PictureAperture | Shows the F-stop used to take the selected picture. This is the value of the EXIF FNumber tag (hex code 0x829D). | ||
ListItem.PictureAuthor | Shows the name of the person involved in writing about the selected picture. This is the value of the IPTC Writer tag (hex code 0x7A). | ||
ListItem.PictureByline | Shows the name of the person who created the selected picture. This is the value of the IPTC Byline tag (hex code 0x50). | ||
ListItem.PictureBylineTitle | Shows the title of the person who created the selected picture. This is the value of the IPTC BylineTitle tag (hex code 0x55). | ||
ListItem.PictureCamMake | Shows the manufacturer of the camera used to take the selected picture. This is the value of the EXIF Make tag (hex code 0x010F). | ||
ListItem.PictureCamModel | Shows the manufacturer's model name or number of the camera used to take the selected picture. This is the value of the EXIF Model tag (hex code 0x0110). | ||
ListItem.PictureCaption | Shows a description of the selected picture. This is the value of the IPTC Caption tag (hex code 0x78). | ||
ListItem.PictureCategory | Shows the subject of the selected picture as a category code. This is the value of the IPTC Category tag (hex code 0x0F). | ||
ListItem.PictureCCDWidth | Shows the width of the CCD in the camera used to take the selected picture. This is calculated from three EXIF tags (0xA002 * 0xA210 / 0xA20e). | ||
ListItem.PictureCity | Shows the city where the selected picture was taken. This is the value of the IPTC City tag (hex code 0x5A). | ||
ListItem.PictureColour | Shows whether the selected picture is "Colour" or "Black and White". | ||
ListItem.PictureComment | Shows a description of the selected picture. This is the value of the EXIF User Comment tag (hex code 0x9286). This is the same value as Slideshow.SlideComment. | ||
ListItem.PictureCopyrightNotice | Shows the copyright notice of the selected picture. This is the value of the IPTC Copyright tag (hex code 0x74). | ||
ListItem.PictureCountry | Shows the full name of the country where the selected picture was taken. This is the value of the IPTC CountryName tag (hex code 0x65). | ||
ListItem.PictureCountryCode | Shows the country code of the country where the selected picture was taken. This is the value of the IPTC CountryCode tag (hex code 0x64). | ||
ListItem.PictureCredit | Shows who provided the selected picture. This is the value of the IPTC Credit tag (hex code 0x6E). | ||
ListItem.PictureDate | Shows the localized date of the selected picture. The short form of the date is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | ||
ListItem.PictureDatetime | Shows the date/timestamp of the selected picture. The localized short form of the date and time is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | ||
ListItem.PictureDesc | Shows a short description of the selected picture. The SlideComment, EXIFComment, or Caption values might contain a longer description. This is the value of the EXIF ImageDescription tag (hex code 0x010E). | ||
ListItem.PictureDigitalZoom | Shows the digital zoom ratio when the selected picture was taken. This is the value of the EXIF DigitalZoomRatio tag (hex code 0xA404). | ||
ListItem.PictureExpMode | Shows the exposure mode of the selected picture. The possible values are "Automatic", "Manual", and "Auto bracketing". This is the value of the EXIF ExposureMode tag (hex code 0xA402). | ||
ListItem.PictureExposure | Shows the class of the program used by the camera to set exposure when the selected picture was taken. Values include "Manual", "Program (Auto)", "Aperture priority (Semi-Auto)", "Shutter priority (semi-auto)", etc. This is the value of the EXIF ExposureProgram tag (hex code 0x8822). | ||
ListItem.PictureExposureBias | Shows the exposure bias of the selected picture. Typically this is a number between -99.99 and 99.99. This is the value of the EXIF ExposureBiasValue tag (hex code 0x9204). | ||
ListItem.PictureExpTime | Shows the exposure time of the selected picture, in seconds. This is the value of the EXIF ExposureTime tag (hex code 0x829A). If the ExposureTime tag is not found, the ShutterSpeedValue tag (hex code 0x9201) might be used. | ||
ListItem.PictureFlashUsed | Shows the status of flash when the selected picture was taken. The value will be either "Yes" or "No", and might include additional information. This is the value of the EXIF Flash tag (hex code 0x9209). | ||
ListItem.PictureFocalLen | Shows the lens focal length of the selected picture | ||
ListItem.PictureFocusDist | Shows the focal length of the lens, in mm. This is the value of the EXIF FocalLength tag (hex code 0x920A). | ||
ListItem.PictureGPSAlt | Shows the altitude in meters where the selected picture was taken. This is the value of the EXIF GPSInfo.GPSAltitude tag. | ||
ListItem.PictureGPSLat | Shows the latitude where the selected picture was taken (degrees, minutes, seconds North or South). This is the value of the EXIF GPSInfo.GPSLatitude and GPSInfo.GPSLatitudeRef tags. | ||
ListItem.PictureGPSLon | Shows the longitude where the selected picture was taken (degrees, minutes, seconds East or West). This is the value of the EXIF GPSInfo.GPSLongitude and GPSInfo.GPSLongitudeRef tags. | ||
ListItem.PictureHeadline | Shows a synopsis of the contents of the selected picture. This is the value of the IPTC Headline tag (hex code 0x69). | ||
ListItem.PictureImageType | Shows the color components of the selected picture. This is the value of the IPTC ImageType tag (hex code 0x82). | ||
ListItem.PictureIPTCDate | Shows the date when the intellectual content of the selected picture was created, rather than when the picture was created. This is the value of the IPTC DateCreated tag (hex code 0x37). | ||
ListItem.PictureIPTCTime | Shows the time when the intellectual content of the selected picture was created, rather than when the picture was created. This is the value of the IPTC TimeCreated tag (hex code 0x3C). | ||
ListItem.PictureISO | Shows the ISO speed of the camera when the selected picture was taken. This is the value of the EXIF ISOSpeedRatings tag (hex code 0x8827). | ||
ListItem.PictureKeywords | Shows keywords assigned to the selected picture. This is the value of the IPTC Keywords tag (hex code 0x19). | ||
ListItem.PictureLightSource | Shows the kind of light source when the picture was taken. Possible values include "Daylight", "Fluorescent", "Incandescent", etc. This is the value of the EXIF LightSource tag (hex code 0x9208). | ||
ListItem.PictureLongDate | Shows only the localized date of the selected picture. The long form of the date is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | ||
ListItem.PictureLongDatetime | Shows the date/timestamp of the selected picture. The localized long form of the date and time is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. if the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | ||
ListItem.PictureMeteringMode | Shows the metering mode used when the selected picture was taken. The possible values are "Center weight", "Spot", or "Matrix". This is the value of the EXIF MeteringMode tag (hex code 0x9207). | ||
ListItem.PictureObjectName | Shows a shorthand reference for the selected picture. This is the value of the IPTC ObjectName tag (hex code 0x05). | ||
ListItem.PictureOrientation | Shows the orientation of the selected picture. Possible values are "Top Left", "Top Right", "Left Top", "Right Bottom", etc. This is the value of the EXIF Orientation tag (hex code 0x0112). | ||
ListItem.PicturePath | Shows the filename and path of the selected picture | ||
ListItem.PictureProcess | Shows the process used to compress the selected picture | ||
ListItem.PictureReferenceService | Shows the Service Identifier of a prior envelope to which the selected picture refers. This is the value of the IPTC ReferenceService tag (hex code 0x2D). | ||
ListItem.PictureResolution | Shows the dimensions of the selected picture | ||
ListItem.PictureSource | Shows the original owner of the selected picture. This is the value of the IPTC Source tag (hex code 0x73). | ||
ListItem.PictureSpecialInstructions | Shows other editorial instructions concerning the use of the selected picture. This is the value of the IPTC SpecialInstructions tag (hex code 0x28). | ||
ListItem.PictureState | Shows the State/Province where the selected picture was taken. This is the value of the IPTC ProvinceState tag (hex code 0x5F). | ||
ListItem.PictureSublocation | Shows the location within a city where the selected picture was taken - might indicate the nearest landmark. This is the value of the IPTC SubLocation tag (hex code 0x5C). | ||
ListItem.PictureSupplementalCategories | Shows supplemental category codes to further refine the subject of the selected picture. This is the value of the IPTC SuppCategory tag (hex code 0x14). | ||
ListItem.PictureTransmissionReference | Shows a code representing the location of original transmission of the selected picture. This is the value of the IPTC TransmissionReference tag (hex code 0x67). | ||
ListItem.PictureUrgency | Shows the urgency of the selected picture. Values are 1-9. The "1" is most urgent. Some image management programs use urgency to indicate picture rating, where urgency "1" is 5 stars and urgency "5" is 1 star. Urgencies 6-9 are not used for rating. This is the value of the IPTC Urgency tag (hex code 0x0A). | ||
ListItem.PictureWhiteBalance | Shows the white balance mode set when the selected picture was taken. The possible values are "Manual" and "Auto". This is the value of the EXIF WhiteBalance tag (hex code 0xA403). | ||
ListItem.PlayCount | Playcount of Video in a container | ||
ListItem.Plot | Complete Text Summary of Video in a container | ||
ListItem.PlotOutline | Small Summary of current Video in a container | ||
ListItem.Premiered | Shows the release/aired date of the currently selected episode, show, movie or EPG item in a container | ||
ListItem.PrivacyPolicy | Returns the official Kodi privacy-policy | v17 | |
ListItem.ProgramCount | Shows the number of times an xbe has been run from "my programs" | ||
ListItem.Progress | Part of the programme that's been played (PVR). | ||
ListItem.Property(Addon.Changelog) | Shows the changelog of the currently selected addon | ||
ListItem.Property(Addon.ID) | Shows the identifier of the currently selected addon | ||
ListItem.Property(Addon.Path) | Shows the path of the currently selected addon | ||
ListItem.Property(Addon.Status) | Shows the status of the currently selected addon | ||
ListItem.Property(Album_Description) | Shows a review of the currently selected Album | ||
ListItem.Property(Album_Duration) | Returns the duration of an album in HH:MM:SS | v19 | |
ListItem.Property(Album_Label) | Shows the record label of the currently selected Album | ||
ListItem.Property(Album_Mood) | Shows the moods of the currently selected Album | ||
ListItem.Property(Album_Rating) | Shows the scraped rating of the currently selected Album | ||
ListItem.Property(Album_Style) | Shows the styles of the currently selected Album | ||
ListItem.Property(Album_Theme) | Shows the themes of the currently selected Album | ||
ListItem.Property(Album_Type) | Shows the Album Type (e.g. compilation, enhanced, explicit lyrics) of the currently selected Album | ||
ListItem.Property(Album_UserRating) | Shows the user rating of the currently selected Album | ||
ListItem.Property(Artist_Born) | Date of Birth of the currently selected Artist | ||
ListItem.Property(Artist_Description) | Shows a biography of the currently selected artist | ||
ListItem.Property(Artist_Died) | Date of Death of the currently selected Artist | ||
ListItem.Property(Artist_Disambiguation) | Brief description of the currently selected Artist that differentiates them from others with the same name | v18 | |
ListItem.Property(Artist_Disbanded) | Disbanding date of the currently selected Band | ||
ListItem.Property(Artist_Formed) | Formation date of the currently selected Band | ||
ListItem.Property(Artist_Gender) | Gender of the currently selected Artist - male, female, other | v18 | |
ListItem.Property(Artist_Genre) | Shows the genre of the currently selected artist | ||
ListItem.Property(Artist_Instrument) | Instruments played by the currently selected artist | ||
ListItem.Property(Artist_Mood) | Shows the moods of the currently selected artist | ||
ListItem.Property(Artist_Sortname) | Sortname of the currently selected Artist | v18 | |
ListItem.Property(Artist_Style) | Shows the styles of the currently selected artist | ||
ListItem.Property(Artist_Type) | Type of the currently selected Artist - person, group, orchestra, choir etc. | v18 | |
ListItem.Property(Artist_YearsActive) | Years the currently selected artist has been active | ||
ListItem.Property(AudioChannels.[n]) | Shows the number of audio channels of the currently selected video, 'n' defines the number of the audiostream (values: see ListItem.AudioChannels) | ||
ListItem.Property(AudioCodec.[n]) | Shows the audio codec of the currently selected video, 'n' defines the number of the audiostream (values: see ListItem.AudioCodec) | ||
ListItem.Property(AudioLanguage.[n]) | Shows the audio language of the currently selected video, 'n' defines the number of the audiostream (values: see ListItem.AudioLanguage) | ||
ListItem.Property(game.stretchmode) | Name of the stretch mode (eg. Stretch 4:3) | v18 | |
ListItem.Property(game.videofilter) | Name of the video filter (eg. Bilinear) | v18 | |
ListItem.Property(game.videorotation) | Angle of the rotation | v18 | |
ListItem.Property(NumEpisodes) | Shows the number of total, watched or unwatched episodes for the currently selected tvshow or season, based on the the current watched filter. | ||
ListItem.Property(Role.Arranger) | Returns the name of the person who arranged the selected song | ||
ListItem.Property(Role.Composer) | Returns the name of the person who composed the selected song | ||
ListItem.Property(Role.Conductor) | Returns the name of the person who conducted the selected song | ||
ListItem.Property(Role.DJMixer) | Returns the name of the dj who remixed the selected song | ||
ListItem.Property(Role.Engineer) | Returns the name of the person who was the engineer of the selected song | ||
ListItem.Property(Role.Lyricist) | Returns the name of the person who wrote the lyrics of the selected song | ||
ListItem.Property(Role.Mixer) | Returns the name of the person who mixed the selected song | ||
ListItem.Property(Role.Orchestra) | Returns the name of the orchestra performing the selected song | ||
ListItem.Property(Role.Producer) | Returns the name of the person who produced the selected song | ||
ListItem.Property(Role.Remixer) | Returns the name of the person who remixed the selected song | ||
ListItem.Property(SubtitleLanguage.[n]) | Shows the subtitle language of the currently selected video, 'n' defines the number of the subtitle (values: see ListItem.SubtitleLanguage) | ||
ListItem.Property(TotalEpisodes) | Shows the total number of episodes for the currently selected tvshow or season | ||
ListItem.Property(TotalSeasons) | Shows the total number of seasons for the currently selected tvshow | ||
ListItem.Property(UnWatchedEpisodes) | Shows the number of unwatched episodes for the currently selected tvshow or season | ||
ListItem.Property(WatchedEpisodes) | Shows the number of watched episodes for the currently selected tvshow or season | ||
ListItem.Rating[(name)] | Shows the scraped rating of the currently selected item in a container. Optionally you can specify the name of the scraper to retrieve a specific rating, for use in dialogvideoinfo.xml. | ||
ListItem.RatingAndVotes[(name)] | Shows the IMDB rating and votes of the currently selected movie in a container. Optionally you can specify the name of the scraper to retrieve a specific rating and votes, for use in dialogvideoinfo.xml. | ||
ListItem.ReleaseDate | Returns the release date of the current item | v19 | |
ListItem.SampleRate | Returns the sample rate of a song / 1000.0 eg 44.1, 48, 96 etc | v19 | |
ListItem.Season | Shows the season value for the currently selected tvshow | ||
ListItem.Set | Shows the name of the set the movie is part of | ||
ListItem.SetId | Shows the id of the set the movie is part of | ||
ListItem.Size | Shows the file size of the currently selected song or movie in a container | ||
ListItem.SortLetter | Shows the first letter of the current file in a container | ||
ListItem.StartDate | Start date of current selected TV programme in a container | ||
ListItem.StartDate | Start date of the selected item (PVR). | ||
ListItem.StartTime | Start time of current selected TV programme in a container | ||
ListItem.StartTime | Start time of the selected item (PVR). | ||
ListItem.Status | For use with tv shows. It can return one of the following: 'returning series','in production','planned','cancelled' or 'ended' | ||
ListItem.StereoscopicMode | Returns the stereomode of the selected video (i.e. mono, split_vertical, split_horizontal, row_interleaved, anaglyph_cyan_red, anaglyph_green_magenta) | ||
ListItem.Studio | Studio of current selected Music Video in a container | ||
ListItem.SubtitleLanguage | Shows the subtitle language of the currently selected video (returns an ISO 639-2 three character code, e.g. eng, epo, deu) | ||
ListItem.Tag | Will return the name of the 'tag' this movie is part of. | ||
ListItem.Tagline | Small Summary of current Video in a container | ||
ListItem.Title | Shows the title of the currently selected song or movie in a container | ||
ListItem.Top250 | Shows the IMDb top250 position of the currently selected ListItem in a container. | ||
ListItem.TotalDiscs | The total amount of discs belonging to an album | v19 | |
ListItem.TrackNumber | Shows the track number of the currently selected song in a container | ||
ListItem.Trailer | Shows the full trailer path with filename of the currently selected movie in a container | ||
ListItem.TvShowDBID | Returns the tv show DBID of the selected season or episode a container | v19 | |
ListItem.TVShowTitle | Shows the name value for the currently selected tvshow in the season and episode depth of the video library | ||
ListItem.UniqueID() | Returns the UniqueID of the selected item in a container | v19 | |
ListItem.UserRating | Shows the user rating of the currently selected item in a container | ||
ListItem.VideoAspect | Shows the aspect ratio of the currently selected video (possible values: 1.33, 1.37, 1.66, 1.78, 1.85, 2.20, 2.35, 2.40, 2.55, 2.76, Note: Kodi v20: 1.00, 1.19, 2.00 ) | ||
ListItem.VideoCodec | Shows the video codec of the currently selected video (common values: 3iv2, avc1, div2, div3, divx, divx 4, dx50, flv, h264, microsoft, mp42, mp43, mp4v, mpeg1video, mpeg2video, mpg4, rv40, svq1, svq3, theora, vp6f, wmv2, wmv3, wvc1, xvid) | ||
ListItem.VideoResolution | Shows the resolution of the currently selected video (possible values: 480, 576, 540, 720, 1080, 4K, 8K [Note: v18 addition]). Note that 540 usually means a widescreen format (around 960x540) while 576 means PAL resolutions (normally 720x576), therefore 540 is actually better resolution than 576. | v18 | |
ListItem.VideoVersionName | Shows the name of the video version. | v21 | |
ListItem.Votes[(name)] | Shows the IMDB votes of the currently selected movie in a container. Optionally you can specify the name of the scraper to retrieve specific votes, for use in dialogvideoinfo.xml. | ||
ListItem.Writer | Name of Writer of current Video in a container | ||
ListItem.Year | Shows the year of the currently selected song, album or movie in a container |
Musicpartymode labels
InfoLabels | Definition | Version |
---|---|---|
MusicPartyMode.SongsPlayed | Number of songs played during Party Mode | |
MusicPartyMode.MatchingSongs | Number of songs available to Party Mode | |
MusicPartyMode.MatchingSongsPicked | Number of songs picked already for Party Mode | |
MusicPartyMode.MatchingSongsLeft | Number of songs left to be picked from for Party Mode | |
MusicPartyMode.RelaxedSongsPicked | Not currently used | |
MusicPartyMode.RandomSongsPicked | Number of unique random songs picked during Party Mode |
Network labels
InfoLabels | Definition | Version |
---|---|---|
Network.IsDHCP | Network type is DHCP or FIXED | |
Network.IPAddress | The system's IP Address (<ipaddress> is returned as a string) | |
Network.LinkState | Network linkstate e.g. 10mbit/100mbit etc. | |
Network.MacAddress | The system's mac address | |
Network.SubnetMask | Network subnet mask | |
Network.GatewayAddress | Network gateway address | |
Network.DNS1Address | Network dns server 1 address | |
Network.DNS2Address | Network dns server 2 address | |
Network.DHCPAddress | DHCP server ip address |
Player labels
InfoLabels | Definition | Version |
---|---|---|
Player.FinishTime | Time playing media will end | |
Player.FinishTime(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.Chapter | Current chapter of current playing media | |
Player.ChapterCount | Total number of chapters of current playing media | |
Player.Time | Elapsed time of current playing media | |
Player.Time(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.TimeRemaining | Remaining time of current playing media | |
Player.TimeRemaining(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.Duration | Total duration of the current playing media | |
Player.Duration(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.SeekTime | Time to which the user is seeking | |
Player.SeekBar | Time to which the user is seeking as a percentage (for use in slider controls) | |
Player.SeekOffset | Indicates the seek offset after a seek press (eg user presses BigStepForward, player.seekoffset returns +10:00) | |
Player.SeekOffset(format) | Shows hours (hh), minutes (mm) or seconds (ss). Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.SeekStepSize | Displays the seek step size. (v15 addition) | |
Player.Progress | Shows how much (percentage) of the file has been played | |
Player.ProgressCache | Shows how much of the file is cached above current play percentage | |
Player.Folderpath | Shows the full path of the currently playing song or movie. (supports .offset() and .position()) | |
Player.Filenameandpath | Shows the full path with filename of the currently playing song or movie. (supports .offset() and .position()) | |
Player.StartTime | Returns the starttime (from the epg) of a tv program, for all other videos it will return the time you started watching this video. | |
Player.StartTime(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). | |
Player.Title | Returns the musicplayer title for audio and the videoplayer title for videos. (supports .offset() and .position()) | |
Player.Filename | Returns the filename of the currently playing media. (supports .offset() and .position()) | |
Player.Volume | Returns the volume level in dB | |
Player.PlaySpeed | Current playspeed. (range:0.8 to 1.5) | |
Player.Process(AudioBitsPerSample) | Bits per sample of the currently playing item | |
Player.Process(AudioChannels) | Number of audiochannels of the currently playing item | |
Player.Process(AudioDecoder) | Audiodecoder name of the currently playing item | |
Player.Process(AudioSamplerate) | Samplerate f the currently playing item | |
Player.Process(DeintMethod) | Deinterlace method of the currently playing video | |
Player.Process(PixFormat) | Pixel format of the currently playing video | |
Player.Process(VideoDAR) | Display aspect ratio of the currently playing video | |
Player.Process(VideoFPS) | Video framerate of the currently playing video | |
Player.Process(VideoHeight) | Height of the currently playing video | |
Player.Process(VideoDecoder) | Videodecoder name of the currently playing video | |
Player.Process(VideoWidth) | Width of the currently playing video | |
Player.Process(VideoScanType) | The scan type identifier of the currently playing video p (for progressive) or i (for interlaced) | v20 |
Player.CutList | this infolabel can be used with the Ranges Control, as EDL and chapter markers | v19 |
Player.Chapters | this infolabel can be used with the Ranges Control, as EDL and chapter markers | v19 |
Music player
InfoLabels | Definition | Version |
---|---|---|
MusicPlayer.Title | Title of the currently playing song, also available are "MusicPlayer.offset(number).Title" offset is relative to the current playing item and "MusicPlayer.Position(number).Title" position is relative to the start of the playlist | |
MusicPlayer.Album | Album from which the current song is from, also available are "MusicPlayer.offset(number).Album" offset is relative to the current playing item and "MusicPlayer.Position(number).Album" position is relative to the start of the playlist | |
MusicPlayer.Property(Album_Mood) | Shows the moods of the currently playing Album | |
MusicPlayer.Property(Album_Style) | Shows the styles of the currently playing Album | |
MusicPlayer.Property(Album_Theme) | Shows the themes of the currently playing Album | |
MusicPlayer.Property(Album_Type) | Shows the Album Type (e.g. compilation, enhanced, explicit lyrics) of the currently playing Album | |
MusicPlayer.Property(Album_Label) | Shows the record label of the currently playing Album | |
MusicPlayer.Property(Album_Description) | Shows a review of the currently playing Album | |
MusicPlayer.Artist | Artist(s) of current song, also available are "MusicPlayer.offset(number).Artist" offset is relative to the current playing item and "MusicPlayer.Position(number).Artist" position is relative to the start of the playlist | |
MusicPlayer.Property(Artist_Born) | Date of Birth of the currently playing Artist | |
MusicPlayer.Property(Artist_Died) | Date of Death of the currently playing Artist | |
MusicPlayer.Property(Artist_Formed) | Formation date of the currently playing Artist/Band | |
MusicPlayer.Property(Artist_Disbanded) | Disbanding date of the currently playing Artist/Band | |
MusicPlayer.Property(Artist_YearsActive) | Years the currently Playing artist has been active | |
MusicPlayer.Property(Artist_Instrument) | Instruments played by the currently playing artist | |
MusicPlayer.Property(Artist_Description) | Shows a biography of the currently playing artist | |
MusicPlayer.Property(Artist_Mood) | Shows the moods of the currently playing artist | |
MusicPlayer.Property(Artist_Style) | Shows the styles of the currently playing artist | |
MusicPlayer.Property(Artist_Genre) | Shows the genre of the currently playing artist | |
MusicPlayer.Property(Artist_Sortname) | Sortname of the currently playing Artist | v18 |
MusicPlayer.Property(Artist_Type) | Type of the currently playing Artist - person, group, orchestra, choir etc. | v18 |
MusicPlayer.Property(Artist_Gender) | Gender of the currently playing Artist - male, female, other | v18 |
MusicPlayer.Property(Artist_Disambiguation) | Brief description of the currently playing Artist that differentiates them from others with the same name | v18 |
MusicPlayer.Genre | Genre(s) of current song, also available are "MusicPlayer.offset(number).Genre" offset is relative to the current playing item and "MusicPlayer.Position(number).Genre" position is relative to the start of the playlist | |
MusicPlayer.Lyrics | Lyrics of current song stored in ID tag info | |
MusicPlayer.Year | Year of release of current song, also available are "MusicPlayer.offset(number).Year" offset is relative to the current playing item and "MusicPlayer.Position(number).Year" position is relative to the start of the playlist | |
MusicPlayer.Rating | Numeric Rating of current song, also available are "MusicPlayer.offset(number).Rating" offset is relative to the current playing item and "MusicPlayer.Position(number).Rating" position is relative to the start of the playlist | |
MusicPlayer.DiscNumber | Disc Number of current song stored in ID tag info, also available are "MusicPlayer.offset(number).DiscNumber" offset is relative to the current playing item and "MusicPlayer.Position(number).DiscNumber" position is relative to the start of the playlist | |
MusicPlayer.Comment | Comment of current song stored in ID tag info, also available are "MusicPlayer.offset(number).Comment" offset is relative to the current playing item and "MusicPlayer.Position(number).Comment" position is relative to the start of the playlist | |
MusicPlayer.Time | Current time in song | |
MusicPlayer.TimeRemaining | Current remaining time in song | |
MusicPlayer.TimeSpeed | Both the time and the playspeed formatted up. eg 1:23 (2x) | |
MusicPlayer.TrackNumber | Track number of current song, also available are "MusicPlayer.offset(number).TrackNumber" offset is relative to the current playing item and "MusicPlayer.Position(number).TrackNumber" position is relative to the start of the playlist | |
MusicPlayer.Duration | Duration of current song, also available are "MusicPlayer.offset(number).Duration" offset is relative to the current playing item and "MusicPlayer.Position(number).Duration" position is relative to the start of the playlist | |
MusicPlayer.BitRate | Bitrate of current song | |
MusicPlayer.Channels | Number of channels of current song | |
MusicPlayer.BitsPerSample | Number of bits per sample of current song | |
MusicPlayer.SampleRate | Samplerate of current song | |
MusicPlayer.Codec | Codec of current song | |
MusicPlayer.PlaylistPosition | Position of the current song in the current music playlist | |
MusicPlayer.PlaylistLength | Total size of the current music playlist | |
MusicPlayer.ChannelName | Channel name of the radio programme that's currently playing (PVR). | |
MusicPlayer.ChannelNumberLabel | Channel and subchannel number of the radio channel that's currently playing (PVR). | |
MusicPlayer.ChannelGroup | Channel group of of the radio programme that's currently playing (PVR). | |
MusicPlayer.Contributors | List of all people who've contributed to the currently playing song | |
MusicPlayer.ContributorAndRole | List of all people and their role who've contributed to the currently playing song | |
MusicPlayer.Mood | Mood of the currently playing song | |
MusicPlayer.Property(Role.Arranger) | Returns the name of the person who arranged the selected song | |
MusicPlayer.Property(Role.Composer) | Returns the name of the person who composed the selected song | |
MusicPlayer.Property(Role.Conductor) | Returns the name of the person who conducted the selected song | |
MusicPlayer.Property(Role.DJMixer) | Returns the name of the dj who remixed the selected song | |
MusicPlayer.Property(Role.Engineer) | Returns the name of the person who was the engineer of the selected song | |
MusicPlayer.Property(Role.Lyricist) | Returns the name of the person who wrote the lyrics of the selected song | |
MusicPlayer.Property(Role.Mixer) | Returns the name of the person who mixed the selected song | |
MusicPlayer.Property(Role.Orchestra) | Returns the name of the orchestra performing the selected song | |
MusicPlayer.Property(Role.Producer) | Returns the name of the person who produced the selected song | |
MusicPlayer.Property(Role.Remixer) | Returns the name of the person who remixed the selected song | |
MusicPlayer.UserRating | The rating the user gave to the currently playing song | |
MusicPlayer.DBID | The database id of the currently playing song | v17 Addition |
MusicPlayer.DiscTitle | The title of the disc currently playing | v19 |
MusicPlayer.ReleaseDate | Returns the release date of the song currently playing | v19 |
MusicPlayer.OriginalDate | Returns the original release date of the song currently playing | v19 |
MusicPlayer.BPM | Returns the Beats Per Minute of the currently playing song | v19 |
MusicPlayer.TotalDiscs | Returns the number of discs associated with the album of the currently playing song | v19 |
Video player
InfoLabels | Definition | Version | |
---|---|---|---|
VideoPlayer.VideoVersionName | Show the name of the video version | v21 | |
VideoPlayer.Time | Current time in movie | ||
VideoPlayer.TimeRemaining | Current remaining time in movie | ||
VideoPlayer.TimeSpeed | Current time + playspeed. eg 1:23:14 (-4x) | ||
VideoPlayer.Duration | Length of current movie | ||
VideoPlayer.Title | Title of currently playing video. If it's in the database it will return the database title, else the filename. (supports .offset() and .position()) | ||
VideoPlayer.OriginalTitle | The original title of currently playing video. (supports .offset() and .position()) | ||
VideoPlayer.TVShowTitle | Title of currently playing episode's tvshow name. (supports .offset() and .position()) | ||
VideoPlayer.Season | Season number of the currently playing episode, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Episode | Episode number of the currently playing episode. (supports .offset() and .position()) | ||
VideoPlayer.Genre | Genre(s) of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Director | Director of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Country | Production country of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Year | Year of release of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Premiered | The release/aired date of the currently selected episode, show, movie or EPG item. (supports .offset() and .position()) | ||
VideoPlayer.Rating | IMDb user rating of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.UserRating | Shows the user rating of the currently playing item. (supports .offset() and .position()) | ||
VideoPlayer.Votes | IMDb votes of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.RatingAndVotes | IMDb user rating and votes of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.mpaa | MPAA rating of current movie, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.IMDBNumber | The IMDB iD of the current video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.EpisodeName | (PVR only) The name of the episode if the playing video is a TV Show, if it's in the database | ||
VideoPlayer.PlaylistPosition | Position of the current song in the current video playlist | ||
VideoPlayer.PlaylistLength | Total size of the current video playlist | ||
VideoPlayer.Cast | A concatenated string of cast members of the current movie, if it's in the database | ||
VideoPlayer.CastAndRole | A concatenated string of cast members and roles of the current movie, if it's in the database | ||
VideoPlayer.Trailer | The trailer of the current movie. (supports .offset() and .position()) | ||
VideoPlayer.Album | Album from which the current Music Video is from, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Artist | Artist(s) of current Music Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Studio | Studio of current Music Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Writer | Name of Writer of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Tagline | Small Summary of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.PlotOutline | Small Summary of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Plot | Complete Text Summary of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.Top250 | Shows the IMDb top250 position of the current playing Video. (supports .offset() and .position()) | ||
VideoPlayer.LastPlayed | Last play date of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.PlayCount | Playcount of current playing Video, if it's in the database. (supports .offset() and .position()) | ||
VideoPlayer.HdrType | Shows the HDR type of the currently playing video (possible values: hdr10, dolbyvision and hlg) | v20 | |
VideoPlayer.VideoCodec | Shows the video codec of the currently playing video (common values: see ListItem.VideoCodec) | ||
VideoPlayer.VideoResolution | Shows the video resolution of the currently playing video (possible values: see ListItem.VideoResolution) | ||
VideoPlayer.VideoAspect | Shows the aspect ratio of the currently playing video (possible values: see ListItem.VideoAspect) | ||
VideoPlayer.AudioCodec | Shows the audio codec of the currently playing video, optionally 'n' defines the number of the audiostream (common values: see ListItem.AudioCodec) | ||
VideoPlayer.AudioChannels | Shows the number of audio channels of the currently playing video (possible values: see ListItem.AudioChannels) | ||
VideoPlayer.AudioLanguage | Shows the language of the audio of the currently playing video(possible values: see ListItem.AudioLanguage) | ||
VideoPlayer.SubtitlesLanguage | Shows the language of the subtitle of the currently playing video (possible values: see ListItem.SubtitlesLanguage) | ||
VideoPlayer.StereoscopicMode | Shows the stereoscopic mode of the currently playing video (possible values: see ListItem.StereoscopicMode) | ||
VideoPlayer.EndTime | End date of the currently playing programme (PVR). | ||
VideoPlayer.NextTitle | Title of the programme that will be played next (PVR). | ||
VideoPlayer.NextGenre | Genre of the programme that will be played next (PVR). | ||
VideoPlayer.NextPlot | Plot of the programme that will be played next (PVR). | ||
VideoPlayer.NextPlotOutline | Plot outline of the programme that will be played next (PVR). | ||
VideoPlayer.NextStartTime | Start time of the programme that will be played next (PVR). | ||
VideoPlayer.NextEndTime | End time of the programme that will be played next (PVR). | ||
VideoPlayer.NextDuration | Duration of the programme that will be played next (PVR). | ||
VideoPlayer.ChannelName | Name of the curently tuned channel (PVR). | ||
VideoPlayer.ChannelNumberLabel | Channel and subchannel number of the tv channel that's currently playing (PVR). | ||
VideoPlayer.ChannelGroup | Group of the curently tuned channel (PVR). | ||
VideoPlayer.ParentalRating | Parental rating of the currently playing programme (PVR). | ||
VideoPlayer.DBID | The database id of the currently playing video. (supports .offset() and .position()) | v17 Addition | |
VideoPlayer.UniqueID() | Returns the UniqueID of the currently playing video | v19 | |
VideoPlayer.TvShowDBID | Returns the tv show DBID of the currently playing episode | v19 |
Playlist
InfoLabels | Definition | Version |
---|---|---|
Playlist.Length(media) | Total size of the current playlist. optional parameter media is either video or music. | |
Playlist.Position(media) | Position of the current item in the current playlist. optional parameter media is either video or music. | |
Playlist.Random | Returns 'On' or 'Off' | |
Playlist.Repeat | Returns string ID's 592 (Repeat One), 593 (Repeat All), or 594 (Repeat Off) |
PVR
InfoLabels | Definition | Version |
---|---|---|
PVR.NowRecordingTitle | Title of the programme being recorded | |
PVR.NowRecordingDateTime | Start date and time of the current recording | |
PVR.NowRecordingChannel | Channel number that's being recorded | |
PVR.NextRecordingTitle | Title of the next programme that will be recorded | |
PVR.NextRecordingDateTime | Start date and time of the next recording | |
PVR.NextRecordingChannel | Channel name of the next recording | |
PVR.BackendName | Name of the backend being used | |
PVR.BackendVersion | Version of the backend that's being used | |
PVR.BackendHost | Backend hostname | |
PVR.BackendDiskSpace | Available diskspace on the backend | |
PVR.BackendChannels | Number of available channels the backend provides | |
PVR.BackendTimers | Number of timers set for the backend | |
PVR.BackendRecordings | Number of recording available on the backend | |
PVR.BackendDiskspace | Free diskspace available for recordings on the backend | |
PVR.BackendNumber | Backend number | |
PVR.TotalDiscSpace | Total diskspace available for recordings | |
PVR.NextTimer | Next timer date | |
PVR.EpgEventDuration[(format)] | Returns the duration of the currently played title on TV. See ListItem.Duration for optinional formatting options | |
PVR.EpgEventElapsedTime[(format)] | Returns the time position of the currently played title on TV. See ListItem.Duration for optinional formatting options | |
PVR.EpgEventRemainingTime[(format)] | Returns the remaining time for currently playing epg event. See ListItem.Duration for optinional formatting options | v18 |
PVR.EpgEventFinishTime[(format)] | Returns the time the currently playing epg event will end. See ListItem.Duration for optinional formatting options | v18 |
PVR.EpgEventSeekTime[(format)] | Returns the seek time of the currently playing epg event. See ListItem.Duration for optinional formatting options | v18 |
PVR.EpgEventProgress | Returns the position of currently played title on TV as integer | |
PVR.TimeShiftStart[(format)] | Start position of the timeshift. See ListItem.Duration for optinional formatting options | |
PVR.TimeShiftEnd[(format)] | End position of the timeshift. See ListItem.Duration for optinional formatting options | |
PVR.TimeShiftCur[(format)] | Current position of the timeshift. See ListItem.Duration for optinional formatting options | |
PVR.TimeShiftOffset[(format)] | Current offset of the timeshift. See ListItem.Duration for optinional formatting options | |
PVR.TimeShiftProgress | Returns the position of currently timeshifted title on TV as interger | |
PVR.ActStreamClient | Stream client name | |
PVR.ActStreamDevice | Stream device name | |
PVR.ActStreamStatus | Status of the stream | |
PVR.ActStreamSignal | Signal quality of the stream | |
PVR.ActStreamSnr | Signal to noise ratio of the stream | |
PVR.ActStreamBer | Bit error rate of the stream | |
PVR.ActStreamUnc | UNC value of the stream | |
PVR.ActStreamVideoBitRate | Video bitrate of the stream | |
PVR.ActStreamAudioBitRate | Audio bitrate of the stream | |
PVR.ActStreamDolbyBitRate | Dolby bitrate of the stream | |
PVR.ActStreamProgrSignal | Signal quality of the programme | |
PVR.ActStreamProgrSnr | Signal to noise ratio of the programme | |
PVR.ActStreamEncryptionName | Encryption used on the stream | |
PVR.TVNowRecordingTitle | Title of the tv programme being recorded | v17 Addition |
PVR.TVNowRecordingDateTime | Start date and time of the current tv recording | v17 Addition |
PVR.TVNowRecordingChannel | Channel name of the current tv recording | v17 Addition |
PVR.TVNowRecordingChannelIcon | Icon of the current recording TV channel | v17 Addition |
PVR.TVNextRecordingTitle | Title of the next tv programme that will be recorded | v17 Addition |
PVR.TVNextRecordingDateTime | Start date and time of the next tv recording | v17 Addition |
PVR.TVNextRecordingChannel | Channel name of the next tv recording | v17 Addition |
PVR.TVNextRecordingChannelIcon | Icon of the next recording tv channel | v17 Addition |
PVR.RadioNowRecordingTitle | Title of the radio programme being recorded | v17 Addition |
PVR.RadioNowRecordingDateTime | Start date and time of the current radio recording | v17 Addition |
PVR.RadioNowRecordingChannel | Channel name of the current radio recording | v17 Addition |
PVR.RadioNowRecordingChannelIcon | Icon of the current recording radio channel | v17 Addition |
PVR.RadioNextRecordingTitle | Title of the next radio programme that will be recorded | v17 Addition |
PVR.RadioNextRecordingDateTime | Start date and time of the next radio recording | v17 Addition |
PVR.RadioNextRecordingChannel | Channel name of the next radio recording | v17 Addition |
PVR.ChannelNumberInput | Label displaying the number the user entered on remote or keyboard | v18 |
PVR.TimeshiftProgressDuration | Returns the duration of the PVR timeshift progress in the format hh:mm:ss. hh: will be omitted if hours value is zero | v18 |
PVR.TimeshiftProgressDuration(format) | Returns the duration of the PVR timeshift progress in different formats, hours (hh), minutes (mm) or seconds (ss) | v18 |
PVR.TimeshiftProgressStartTime | Returns the start time of the PVR timeshift progress in the format hh:mm:ss. hh: will be omitted if hours value is zero | v18 |
PVR.TimeshiftProgressStartTime(format) | Returns the start time of the PVR timeshift progress in different formats, hours (hh), minutes (mm) or seconds (ss) | v18 |
PVR.TimeshiftProgressEndTime | Returns the end time of the PVR timeshift progress in the format hh:mm:ss. hh: will be omitted if hours value is zero | v18 |
PVR.TimeshiftProgressEndTime(format) | Returns the end time of the PVR timeshift progress in different formats, hours (hh), minutes (mm) or seconds (ss) | v18 |
PVR.TimeshiftProgressPlayPos | Returns the percentage of the current play position within the PVR timeshift progress | v18 |
PVR.TimeshiftProgressEpgStart | Returns the percentage of the start of the currently playing epg event within the PVR timeshift progress | v18 |
PVR.TimeshiftProgressEpgEnd | Returns the percentage of the end of the currently playing epg event within the PVR timeshift progress | v18 |
PVR.TimeshiftProgressBufferStart | Returns the percentage of the start of the timeshift buffer within the PVR timeshift progress | v18 |
PVR.TimeshiftProgressBufferEnd | Returns the percentage of the end of the timeshift buffer within the PVR timeshift progress | v18 |
PVR.TimeShiftSeekbar | This is the equivalent of Player.Seekbar, but for LiveTV (can be used in a slider control and indicates the position being seeked to) | v19 |
RDS
InfoLabels | Definition | Version |
---|---|---|
RDS.AudioLanguage | The from RDS reported audio language of channel | |
RDS.ChannelCountry | Country where the radio channel is sended | |
RDS.GetLine(number) | Returns the last sended RDS text messages on givern number, 0 is thelast and 4 rows are supported (0-3) | |
RDS.Title | Title of item; e.g. track title of an album (Only be available on RadiotextPlus) | |
RDS.Artist | A person or band/collective generally considered responsible for the work (Only be available on RadiotextPlus) | |
RDS.Band | Band/orchestra/accompaniment/musician (Only be available on RadiotextPlus) | |
RDS.Composer | Name of the original composer/author (Only be available on RadiotextPlus) | |
RDS.Conductor | The artist(s) who performed the work. In classical music this would bethe conductor (Only be available on RadiotextPlus) | |
RDS.Album | The collection name to which this track belongs (Only be available on RadiotextPlus) | |
RDS.TrackNumber | The track number of the item on the album on which it was originallyreleased. (Only be available on RadiotextPlus) | |
RDS.RadioStyle | The from radio channel used style of currently played part, e.g "popmusic", "news" or "weather" | |
RDS.Comment | Radio station comment string if available (Only be available on RadiotextPlus) | |
RDS.InfoNews | Message / headline (if available) (Only be available on RadiotextPlus) | |
RDS.InfoNewsLocal | Local information news sended from radio channel (if available) (Only be available on RadiotextPlus) | |
RDS.InfoStock | Quote information; either as one part or as several distinct parts:"name 99latest value 99change 99high 99low 99volume" (if available) (Only be available on RadiotextPlus) | |
RDS.InfoStockSize | Number of rows present in stock information (Only be available on RadiotextPlus) | |
RDS.InfoSport | Result of a game; either as one part or as several distinct parts:"match 99result", e.g. "Bayern München : Borussia 995:5" (if available) (Only be available on RadiotextPlus) | |
RDS.InfoSportSize | Number of rows present in sport information (Only be available on RadiotextPlus) | |
RDS.InfoLottery | Raffle / lottery: "key word 99values" (if available) (Only be available on RadiotextPlus) | |
RDS.InfoLotterySize | Number of rows present in lottery information (Only be available on RadiotextPlus) | |
RDS.InfoWeather | Weather informations sended from radio channel (if available) (Only be available on RadiotextPlus) | |
RDS.InfoWeatherSize | Number of rows present in weather information (Only be available on RadiotextPlus) | |
RDS.InfoCinema | Information about movies in cinema (if available) (Only be available on RadiotextPlus) | |
RDS.InfoCinemaSize | Number of rows present in cinema information (Only be available on RadiotextPlus) | |
RDS.InfoHoroscope | Horoscope; either as one part or as two distinct parts:"key word 99text", e.g. "sign of the zodiac 99blablabla" (if available) (Only be available on RadiotextPlus) | |
RDS.InfoHoroscopeSize | Number of rows present in horoscope information (Only be available on RadiotextPlus) | |
RDS.InfoOther | Other information, not especially specified: "key word 99info" (if available) (Only be available on RadiotextPlus) | |
RDS.InfoOtherSize | Number of rows present with other informations (Only be available on RadiotextPlus) | |
RDS.ProgStation | Name of the radio channel@note becomes also be set from epg if from RDS not available | |
RDS.ProgNow | Now played program name@note becomes also be set from epg if from RDS not available | |
RDS.ProgNext | Next played program name (if available)@note becomes also be set from epg if from RDS not available | |
RDS.ProgHost | Name of the host of the radio show | |
RDS.ProgEditStaff | Name of the editorial staff; e.g. name of editorial journalist (Only be available on RadiotextPlus) | |
RDS.ProgHomepage | Link to radio station homepage (Only be available on RadiotextPlus) | |
RDS.ProgStyle | Human readable string about radiostyle defined from RDS or RBDS | |
RDS.PhoneHotline | The telephone number of the radio station's hotline (Only be available on RadiotextPlus) | |
RDS.PhoneStudio | The telephone number of the radio station's studio (Only be available on RadiotextPlus) | |
RDS.SmsStudio | The sms number of the radio stations studio (to send directly a sms to the studio) (if available) (Only be available on RadiotextPlus) | |
RDS.EmailHotline | The email adress of the radio stations hotline (if available) (Only be available on RadiotextPlus) | |
RDS.EmailStudio | The email adress of the radio stations studio (if available) (Only be available on RadiotextPlus) |
Skin
InfoLabels | Definition | Version |
---|---|---|
Skin.CurrentTheme | Returns the current selected skin theme. | |
Skin.CurrentColourTheme | Returns the current selected colour theme of the skin. | |
Skin.Font | Returns the current fontset from Font.xml. | v18 addition |
Skin.String(name) | Returns the user-set skin string, set via the Skin.SetString(name) List of Built In Functions. Allows skinners to have user-customisable labels. | |
Skin.AspectRatio | Returns the closest aspect ratio match using the resolution info from the skin's addon.xml file. |
Slideshow
InfoLabels | Definition | Version |
---|---|---|
Slideshow.Altitude | Shows the altitude in meters where the current picture was taken. This is the value of the EXIF GPSInfo.GPSAltitude tag. | |
Slideshow.Aperture | Shows the F-stop used to take the current picture. This is the value of the EXIF FNumber tag (hex code 0x829D). | |
Slideshow.Author | Shows the name of the person involved in writing about the current picture. This is the value of the IPTC Writer tag (hex code 0x7A). | |
Slideshow.Byline | Shows the name of the person who created the current picture. This is the value of the IPTC Byline tag (hex code 0x50). | |
Slideshow.BylineTitle | Shows the title of the person who created the current picture. This is the value of the IPTC BylineTitle tag (hex code 0x55). | |
Slideshow.CameraMake | Shows the manufacturer of the camera used to take the current picture. This is the value of the EXIF Make tag (hex code 0x010F). | |
Slideshow.CameraModel | Shows the manufacturer's model name or number of the camera used to take the current picture. This is the value of the EXIF Model tag (hex code 0x0110). | |
Slideshow.Caption | Shows a description of the current picture. This is the value of the IPTC Caption tag (hex code 0x78). | |
Slideshow.Category | Shows the subject of the current picture as a category code. This is the value of the IPTC Category tag (hex code 0x0F). | |
Slideshow.CCDWidth | Shows the width of the CCD in the camera used to take the current picture. This is calculated from three EXIF tags (0xA002 * 0xA210 / 0xA20e). | |
Slideshow.City | Shows the city where the current picture was taken. This is the value of the IPTC City tag (hex code 0x5A). | |
Slideshow.Colour | Shows whether the current picture is "Colour" or "Black and White". | |
Slideshow.CopyrightNotice | Shows the copyright notice of the current picture. This is the value of the IPTC Copyright tag (hex code 0x74). | |
Slideshow.Country | Shows the full name of the country where the current picture was taken. This is the value of the IPTC CountryName tag (hex code 0x65). | |
Slideshow.CountryCode | Shows the country code of the country where the current picture was taken. This is the value of the IPTC CountryCode tag (hex code 0x64). | |
Slideshow.Credit | Shows who provided the current picture. This is the value of the IPTC Credit tag (hex code 0x6E). | |
Slideshow.DigitalZoom | Shows the digital zoom ratio when the current picture was taken. This is the value of the EXIF .DigitalZoomRatio tag (hex code 0xA404). | |
Slideshow.EXIFComment | Shows a description of the current picture. This is the value of the EXIF User Comment tag (hex code 0x9286). This is the same value as Slideshow.SlideComment. | |
Slideshow.EXIFDate | Shows the localized date of the current picture. The short form of the date is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | |
Slideshow.EXIFDescription | Shows a short description of the current picture. The SlideComment, EXIFComment, or Caption values might contain a longer description. This is the value of the EXIF ImageDescription tag (hex code 0x010E). | |
Slideshow.EXIFSoftware | Shows the name and version of the firmware used by the camera that took the current picture. This is the value of the EXIF Software tag (hex code 0x0131). | |
Slideshow.EXIFTime | Shows the date/timestamp of the current picture. The localized short form of the date and time is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | |
Slideshow.Exposure | Shows the class of the program used by the camera to set exposure when the current picture was taken. Values include "Manual", "Program (Auto)", "Aperture priority (Semi-Auto)", "Shutter priority (semi-auto)", etc. This is the value of the EXIF ExposureProgram tag (hex code 0x8822). | |
Slideshow.ExposureBias | Shows the exposure bias of the current picture. Typically this is a number between -99.99 and 99.99. This is the value of the EXIF ExposureBiasValue tag (hex code 0x9204). | |
Slideshow.ExposureMode | Shows the exposure mode of the current picture. The possible values are "Automatic", "Manual", and "Auto bracketing". This is the value of the EXIF ExposureMode tag (hex code 0xA402). | |
Slideshow.ExposureTime | Shows the exposure time of the current picture, in seconds. This is the value of the EXIF ExposureTime tag (hex code 0x829A). If the ExposureTime tag is not found, the ShutterSpeedValue tag (hex code 0x9201) might be used. | |
Slideshow.Filedate | Shows the file date of the current picture | |
Slideshow.Filename | Shows the file name of the current picture | |
Slideshow.Filesize | Shows the file size of the current picture | |
Slideshow.FlashUsed | Shows the status of flash when the current picture was taken. The value will be either "Yes" or "No", and might include additional information. This is the value of the EXIF Flash tag (hex code 0x9209). | |
Slideshow.FocalLength | Shows the focal length of the lens, in mm. This is the value of the EXIF FocalLength tag (hex code 0x920A). | |
Slideshow.FocusDistance | Shows the distance to the subject, in meters. This is the value of the EXIF SubjectDistance tag (hex code 0x9206). | |
Slideshow.Headline | Shows a synopsis of the contents of the current picture. This is the value of the IPTC Headline tag (hex code 0x69). | |
Slideshow.ImageType | Shows the color components of the current picture. This is the value of the IPTC ImageType tag (hex code 0x82). | |
Slideshow.IPTCDate | Shows the date when the intellectual content of the current picture was created, rather than when the picture was created. This is the value of the IPTC DateCreated tag (hex code 0x37). | |
Slideshow.ISOEquivalence | Shows the ISO speed of the camera when the current picture was taken. This is the value of the EXIF ISOSpeedRatings tag (hex code 0x8827). | |
Slideshow.Keywords | Shows keywords assigned to the current picture. This is the value of the IPTC Keywords tag (hex code 0x19). | |
Slideshow.Latitude | Shows the latitude where the current picture was taken (degrees, minutes, seconds North or South). This is the value of the EXIF GPSInfo.GPSLatitude and GPSInfo.GPSLatitudeRef tags. | |
Slideshow.LightSource | Shows the kind of light source when the picture was taken. Possible values include "Daylight", "Fluorescent", "Incandescent", etc. This is the value of the EXIF LightSource tag (hex code 0x9208). | |
Slideshow.LongEXIFDate | Shows only the localized date of the current picture. The long form of the date is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. If the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | |
Slideshow.LongEXIFTime | Shows the date/timestamp of the current picture. The localized long form of the date and time is used. The value of the EXIF DateTimeOriginal tag (hex code 0x9003) is preferred. if the DateTimeOriginal tag is not found, the value of DateTimeDigitized (hex code 0x9004) or of DateTime (hex code 0x0132) might be used. | |
Slideshow.Longitude | Shows the longitude where the current picture was taken (degrees, minutes, seconds East or West). This is the value of the EXIF GPSInfo.GPSLongitude and GPSInfo.GPSLongitudeRef tags. | |
Slideshow.MeteringMode | Shows the metering mode used when the current picture was taken. The possible values are "Center weight", "Spot", or "Matrix". This is the value of the EXIF MeteringMode tag (hex code 0x9207). | |
Slideshow.ObjectName | Shows a shorthand reference for the current picture. This is the value of the IPTC ObjectName tag (hex code 0x05). | |
Slideshow.Orientation | Shows the orientation of the current picture. Possible values are "Top Left", "Top Right", "Left Top", "Right Bottom", etc. This is the value of the EXIF Orientation tag (hex code 0x0112). | |
Slideshow.Path | Shows the file path of the current picture | |
Slideshow.Process | Shows the process used to compress the current picture | |
Slideshow.ReferenceService | Shows the Service Identifier of a prior envelope to which the current picture refers. This is the value of the IPTC ReferenceService tag (hex code 0x2D). | |
Slideshow.Resolution | Shows the dimensions of the current picture (Width x Height) | |
Slideshow.SlideComment | Shows a description of the current picture. This is the value of the EXIF User Comment tag (hex code 0x9286). This is the same value as Slideshow.EXIFComment. | |
Slideshow.SlideIndex | Shows the slide index of the current picture | |
Slideshow.Source | Shows the original owner of the current picture. This is the value of the IPTC Source tag (hex code 0x73). | |
Slideshow.SpecialInstructions | Shows other editorial instructions concerning the use of the current picture. This is the value of the IPTC SpecialInstructions tag (hex code 0x28). | |
Slideshow.State | Shows the State/Province where the current picture was taken. This is the value of the IPTC ProvinceState tag (hex code 0x5F). | |
Slideshow.Sublocation | Shows the location within a city where the current picture was taken - might indicate the nearest landmark. This is the value of the IPTC SubLocation tag (hex code 0x5C). | |
Slideshow.SupplementalCategories | Shows supplemental category codes to further refine the subject of the current picture. This is the value of the IPTC SuppCategory tag (hex code 0x14). | |
Slideshow.TimeCreated | Shows the time when the intellectual content of the current picture was created, rather than when the picture was created. This is the value of the IPTC TimeCreated tag (hex code 0x3C). | |
Slideshow.TransmissionReference | Shows a code representing the location of original transmission of the current picture. This is the value of the IPTC TransmissionReference tag (hex code 0x67). | |
Slideshow.Urgency | Shows the urgency of the current picture. Values are 1-9. The 1 is most urgent. Some image management programs use urgency to indicate picture rating, where urgency 1 is 5 stars and urgency 5 is 1 star. Urgencies 6-9 are not used for rating. This is the value of the IPTC Urgency tag (hex code 0x0A). | |
Slideshow.WhiteBalance | Shows the white balance mode set when the current picture was taken. The possible values are "Manual" and "Auto". This is the value of the EXIF WhiteBalance tag (hex code 0xA403). |
System
InfoLabels | Definition | Version |
---|---|---|
System.Time | Current time | |
System.Time(format) | Shows hours (hh), minutes (mm) or seconds (ss). When 12 hour clock is used (xx) will return AM/PM. Also supported: (hh:mm), (mm:ss), (hh:mm:ss), (hh:mm:ss). (xx) option added after dharma | |
System.Date | Current date | |
System.Date(format) | Show current date using format, available markings: d (day of month 1-31), dd (day of month 01-31), ddd (short day of the week Mon-Sun), DDD (long day of the week Monday-Sunday), m (month 1-12), mm (month 01-12), mmm (short month name Jan-Dec), MMM (long month name January-December), yy (2-digit year), yyyy (4-digit year). Added after dharma. | |
System.AlarmPos | Shutdown Timer position | |
System.BatteryLevel | Returns the remaining battery level in range 0-100 | |
System.FreeSpace | Total Freespace on the drive | |
System.UsedSpace | Total Usedspace on the drive | |
System.TotalSpace | Totalspace on the drive | |
System.UsedSpacePercent | Total Usedspace Percent on the drive | |
System.FreeSpacePercent | Total Freespace Percent on the drive | |
System.CPUTemperature | Current CPU temperature | |
System.CpuUsage | Displays the cpu usage for each individual cpu core. | |
System.CoreUsage(id) | Displays the usage of the cpu core with the given 'id' | |
System.GPUTemperature | Current GPU temperature | |
System.FanSpeed | Current fan speed | |
System.BuildVersion | Version of build | |
System.BuildDate | Date of build | |
System.FriendlyName | Returns the Kodi instance name. It will auto append (%hostname%) in case the device name was not changed. eg. "Kodi (htpc)" | |
System.FPS | Current rendering speed (frames per second) | |
System.FreeMemory | Amount of free memory in Mb | |
System.Memory(format) | Available formats: used, used.percent, free, free.percent, total | |
System.ScreenMode | Screenmode (eg windowed / fullscreen) | |
System.ScreenWidth | Width of screen in pixels | |
System.ScreenHeight | Height of screen in pixels | |
System.StartupWindow | The Window Kodi will load on startup | |
System.CurrentWindow | Current Window we are in | |
System.CurrentControl | Current focused control | |
System.CurrentControlID | ID of the currently focused control. | |
System.DVDLabel | Label of the disk in the DVD-ROM drive | |
System.HddTemperature | Hdd temperature | |
System.OSVersionInfo | System name + kernel version | |
System.KernelVersion (deprecated) | System name + kernel version | |
System.Uptime | System current uptime | |
System.TotalUptime | System total uptime | |
System.CpuFrequency | System cpu frequency | |
System.ScreenResolution | Screen resolution | |
System.VideoEncoderInfo | Video encoder info | |
System.InternetState | Will return the internet state, 'connected' or 'not connected' (localized) | |
System.Language | Shows the current language | |
System.ProfileName | Shows the User name of the currently logged in Kodi user | |
System.ProfileCount | Shows the number of defined profiles | |
System.ProfileAutoLogin | The profile Kodi will auto login to | |
System.Progressbar | The percentage of the currently active progress. | |
System.StereoscopicMode | The prefered stereoscopic mode (settings > video > playback) | |
System.TemperatureUnits | Shows Celsius or Fahrenheit symbol | |
System.AddonTitle(id) | Returns the title of the addon with the given id | |
System.AddonVersion(id) | Returns the version of the addon with the given id | |
System.BuildVersionCode | The internal version of the kodi build | v19 |
System.BuildVersionGit | The git version (sha) of the kodi build | v19 |
System.AddonUpdateCount | The number of available addon updates | v19 |
Visualisation
InfoLabels | Definition | Version |
---|---|---|
Visualisation.Preset | Shows the current preset of the visualisation. | |
Visualisation.Name | Shows the name of the visualisation. |
Weather labels
InfoLabels | Definition | Version |
---|---|---|
Weather.Conditions | Current weather conditions – this is looked up in a background process. | |
Weather.Temperature | Current weather temperature | |
Weather.Location | City/town which the above two items are for | |
Weather.fanartcode | Current weather fanartcode. | |
Weather.plugin | Current weather plugin. |
Window
InfoLabels | Definition | Version |
---|---|---|
Window([window]).Property(key) | Window property. (key can be any value, optional window can be id or name) | |
Window.Property(xmlfile) | Displays the name of the xml file currently shown | |
Window.Property(IsRadio) | Returns "true" if the window is a radio window, empty string otherwise (for use in the PVR windows) | |
Window(AddonBrowser).Property(Updated) | Shows the date and time the addon repo was last checked for updates | |
Window.Property(Addon.ID) | Returns the id of the selected addon, in DialogAddonSettings.xml | |
Window(Home).Property(key) | The home window has the following info labels.
Movies.Count, Movies.Watched, Movies.UnWatched, TVShows.Count, TVShows.Watched, TVShows.UnWatched, Episodes.Count, Episodes.Watched, Episodes.UnWatched, MusicVideos.Count, MusicVideos.Watched, MusicVideos.UnWatched, Music.SongsCount, Music.AlbumsCount, Music.ArtistsCount LatestMovie.[1-10].Title, LatestMovie.[1-10].Year, LatestMovie.[1-10].RunningTime, LatestMovie.[1-10].Rating, LatestMovie.[1-10].Plot, LatestMovie.[1-10].Trailer, LatestMovie.[1-10].Thumb, LatestMovie.[1-10].Fanart, LatestMovie.[1-10].Path LatestEpisode.[1-10].ShowTitle, LatestEpisode.[1-10].EpisodeTitle, LatestEpisode.[1-10].EpisodeNo, LatestEpisode.[1-10].EpisodeSeason, LatestEpisode.[1-10].EpisodeNumber, LatestEpisode.[1-10].Rating, LatestEpisode.[1-10].Plot, LatestEpisode.[1-10].Thumb, LatestEpisode.[1-10].ShowThumb, LatestEpisode.[1-10].SeasonThumb, LatestEpisode.[1-10].Fanart, LatestEpisode.[1-10].Path LatestMusicVideo.[1-10].Title, LatestMusicVideo.[1-10].Thumb, LatestMusicVideo.[1-10].Year, LatestMusicVideo.[1-10].Plot, LatestMusicVideo.[1-10].RunningTime, LatestMusicVideo.[1-10].Path, LatestMusicVideo.[1-10].Artist, LatestMusicVideo.[1-10].Fanart LatestSong.[1-10].Title, LatestSong.[1-10].Artist, LatestSong.[1-10].Album, LatestSong.[1-10].Year, LatestSong.[1-10].Rating, LatestSong.[1-10].Thumb, LatestSong.[1-10].Fanart, LatestSong.[1-10].Path LatestAlbum.[1-10].Title, LatestAlbum.[1-10].Artist, LatestAlbum.[1-10].Year, LatestAlbum.[1-10].Rating, LatestAlbum.[1-10].Thumb, LatestAlbum.[1-10].Fanart, LatestAlbum.[1-10].Path |
|
Window(Weather).Property(key) | The weather window has the following info labels.
Location, Updated, Current.Condition, Current.Temperature, Current.FeelsLike, Current.UVIndex, Current.Wind (From <wind dir.> at <speed> <unit>), Current.WindSpeed, Current.WindDirection, Current.DewPoint, Current.Humidity, Day[0-6].Title, Day[0-6].HighTemp, Day[0-6].LowTemp, Day[0-6].Outlook, WeatherProvider
|
Images Available in Kodi
See Artwork/Accessing with skins and JSON-RPC for the general pattern of accessing artwork for media items. Below is a list of other possible images available as InfoLabels.
InfoLabels | Definition | Version |
---|---|---|
ListItem.Art(type) | Artwork for the current listitem. | |
Fanart.Image | Fanart image for the parent TV Show. Note: Deprecated, use ListItem.Art(tvshow.fanart) instead. | |
ListItem.Thumb | Shows the thumbnail (if it exists) of the currently selected item in a list or thumb control. Note: Deprecated but still available, returns the same as ListItem.Art(thumb). | |
ListItem.Icon | Shows the thumbnail (if it exists) of the currently selected item in a list or thumb control. If no thumbnail image exists, it will show the default icon. | |
ListItem.ActualIcon | Shows the default icon of the currently selected item in a list or thumb control. | |
ListItem.Overlay | Shows the Overlay Icon status (compressed file [OverlayRAR.png], watched [OverlayWatched.png], unwatched [OverlayUnwatched.png], locked [OverlayLocked.png]) of the currently selected item in a list or thumb control. | |
ListItem.EPGEventIcon | Returns the icon of the EPG programme (if available). | v18 |
ListItem.Property(Fanart_Image) | Fanart Image currently selected item or of the parent TV show. Note: Deprecated, use ListItem.Art(fanart) or ListItem.Art(tvshow.fanart) instead. | |
MusicPlayer.Cover | Cover of currently playing album | |
MusicPlayer.Property(Fanart_Image) | Fanart image of the currently playing artist | |
Player.Art(type) | Artwork for the currently playing item. | |
Player.Icon | Shows the thumbnail (if it exists) of the currently playing item. If no thumbnail image exists, it will show the icon. | v18 |
Player.StarRating | Returns a value of 0 to 5 as a graphical display from images named rating0.png to rating5.png of the skin | |
Pvr.NowRecordingChannelIcon | Channel icon of the programme currently being recorded. | |
Pvr.NextRecordingChannelIcon | Channel icon of the programme that will be recorded next. | |
Pvr.EPGEventIcon | Returns the icon of the currently playing EPG programme (if available). | v18 |
Skin.String(name) | Returns the image or image folder set by the user via a Skin.SetPath(name) or Skin.SetImage(name) List of Built In Functions. Allows skinners to have user-customisable images and multiimages. | |
System.AddonIcon(id) | Returns the Icon of the specified addon. Instead of specifying the id directly, one can also use an infolabel (eg. $INFO[Skin.String(Foo)]) | |
System.ProfileThumb | Shows the Thumbnail image of the currently logged in Kodi user | |
VideoPlayer.Cover | Cover of currently playing movie. Note: Deprecated, use Player.Art(type) instead. | |
Weather.ConditionsIcon | Image of current weather conditions (NOTE: Can be used to load/refresh weather conditions) | |
Window([window]).Property(key) | Window property. (key can be any value, optional window can be id or name) | |
Window(Weather).Property(key) | The weather window has the following info images.
Current.ConditionIcon, Day[0-6].OutlookIcon, Current.FanartCode, Day[0-6].FanartCode, WeatherProviderLogo |
Appendix IV: List of Built In Functions
Skins can use built-in functions with the <onclick> or <onfocus> tag. Scripts can call built-in functions with xbmc.executebuiltin(function, block)
.
The latest up-to-date list of built-in functions can be found in the source code files in [1].
In addition to the following list, for most <onclick> and <onfocus> button actions in the skin you can also use the functions from Keyboard.xml.
Example:
<onclick>VolumeUp</onclick>
<onclick>VolumeDown</onclick>
You can use parameters with all media windows, as can be seen here:
List of functions
Add-on built-in's
Function | Description | Version |
---|---|---|
Addon.Default.OpenSettings(extensionpoint)
|
Open a settings dialog for the default addon of the given type (extensionpoint) | |
Addon.Default.Set(extensionpoint)
|
Open a select dialog to allow choosing the default addon of the given type (extensionpoint) | |
Addon.OpenSettings(id)
|
Open a settings dialog for the addon of the given id | |
EnableAddon(id)
|
Enables the specified plugin/script | v19 addition |
InstallAddon(id)
|
Will install the addon with the given id. | |
InstallFromZip
|
Opens the "Install from zip"-dialog if "Unknown sources" is enabled. Prompts the warning message if not. | |
RunAddon(id)
|
Runs the specified plugin/script | |
RunAppleScript(script[,args]*)
|
Run the specified AppleScript command | |
RunPlugin(plugin)
|
Runs the plugin. Full path must be specified. Does not work for folder plugins | |
RunScript(script[,args]*)
|
Runs the python script. You must specify the add-on id of the script. As of 2007/02/24, all extra parameters are passed to the script as arguments and can be accessed by python using sys.argv | |
StopScript(id)
|
Stop the script by ID or path, if running | v12 Addition |
UpdateAddonRepos
|
Triggers a forced update of enabled add-on repositories. | |
UpdateLocalAddons
|
Triggers a scan of local add-on directories. |
Android built-in's
Function | Description | Version |
---|---|---|
StartAndroidActivity(package,[intent,dataType,dataURI])
|
Launch an Android native app with the given package name. Optional parms (in order): intent, dataType, dataURI. example: StartAndroidActivity(com.android.chrome,android.intent.action.VIEW,,http://kodi.tv/) | v13 Addition |
Application built-in's
Function | Description | Version |
---|---|---|
Extract(archive_url[, destination])
|
Extracts a specified archive to an optionally specified 'absolute' path. | |
Mute
|
Mutes (or unmutes) the volume. | |
NotifyAll(sender, data [, json])
|
Notify all connected clients | v13 Addition |
SetVolume(percent[,showvolumebar])
|
Sets the volume to the percentage specified. Optionally, show the Volume Dialog in Kodi when setting the volume. | |
ToggleDebug
|
Enables/disables debug mode | v12 Addition |
ToggleDPMS
|
Toggle DPMS (VESA Display Power Management Signaling) mode manually | |
WakeOnLan(mac)
|
Sends the wake-up packet to the broadcast address for the specified MAC address (Format: FF:FF:FF:FF:FF:FF or FF-FF-FF-FF-FF-FF). |
CEC built-in's
Function | Description | Version |
---|---|---|
CECActivateSource
|
Wake up playing device via a CEC peripheral | v13 Addition |
CECStandby
|
Put playing device on standby via a CEC peripheral | v13 Addition |
CECToggleState
|
Toggle state of playing device via a CEC peripheral | v13 Addition |
EPG built-in's
Function | Description | Version |
---|---|---|
PVR.EpgGridControl(command)
|
supported commands: firstprogramme (jump to the first programme) / currentprogramme (jump to the current programme) / lastprogramme (jump to the last programme) / selectdate (jump to the selected date & time) / +XX (jump XX hours forward) / -XX (jump XX hours back) / firstchannel (jump to the first channel) / playingchannel (jump to the currently playing channel) / lastchannel (jump to the last channel) / previousgroup (switch the epg to the previous group) / nextgroup (switch the epg to the next group) / selectgroup (select a group) | v19 Addition |
GUI built-in's
Function | Description | Version |
---|---|---|
Action(action[,window])
|
Executes an action (same as in keymap) for the given window or the active window if the parameter window is omitted. The parameter window can either be the window's id, or in the case of a standard window, the window's name. See Action IDs for a list of available actions. | |
ActivateWindow(window[,dir,return])
|
Opens the given window. The parameter window can either be the window's id, or in the case of a standard window, the window's name. See Window IDs for a list of window names, and their respective ids. If, furthermore, the window is Music, Video, Pictures, or Program files, then the optional dir parameter specifies which folder Kodi should default to once the window is opened. This must be a source as specified in sources.xml, or a subfolder of a valid source. For some windows (MusicLibrary and VideoLibrary), the return parameter may be specified, which indicates that Kodi should use this folder as the "root" of the level, and thus the "parent directory" action from within this folder will return the user to where they were prior to the window activating. | |
ActivateWindowAndFocus(id1, id2,item1, id3,item2)
|
Activate window with id1, first focus control id2 and then focus control id3. if either of the controls is a container, you can specify which item to focus (else, set it to 0). | v12 Addition |
AlarmClock(name,command,[time,silent,loop])
|
Pops up a dialog asking for the length of time (mm:ss) for the alarm (unless the parameter time is specified), and starts a timer. When the timer runs out, it'll execute the built-in command (the parameter command) if it is specified, otherwise it'll pop up an alarm notice. Add silent to hide the alarm notification. Add loop for the alarm to execute the command each time the specified time interval expires. If defining the last optional parameters (silent and loop) both have to be defined for any to take effect. The parameter "time" accepts an integer value (in minutes) or a timestring in the format "hh:mm:ss" or "mm min". | |
CancelAlarm(name[,silent])
|
Cancel a running alarm. Set silent to true to hide the alarm notification. | |
ClearProperty(key[,id])
|
Clears a window property for the current focused window/dialog(key), or the specified window (key,id). | |
Dialog.Close(dialog[,force])
|
Close a dialog. Set force to true to bypass animations. Use (all,true) to close all opened dialogs at once. | |
NextChannelGroup
|
Navigate to the next PVR channel group (in DialogPVRChannelsOSD.xml) | v13 Addition |
NextStereoMode
|
Changes the stereo mode of the GUI to the next available mode. | v13 Addition |
Notification(header,message[,time,image])
|
Will display a notification dialog with the specified header and message, in addition you can set the length of time it displays in milliseconds and a icon image. | |
PreviousChannelGroup
|
Navigate to the previous PVR channel group (in DialogPVRChannelsOSD.xml) | v13 Addition |
PreviousStereoMode
|
Changes the stereo mode of the GUI to the previous available mode. | v13 Addition |
RefreshRSS
|
Reload RSS feeds from RSSFeeds.xml | |
ReplaceWindow(window,dir)
|
Replaces the current window with the given window. This is the same as ActivateWindow() but it doesn't update the window history list, so when you go back from the new window it will not return to the previous window, rather will return to the previous window's previous window. | |
ReplaceWindowAndFocus(id1, id2,item1, id3,item2)
|
Replace window with id1, first focus control id2 and then focus control id3. if either of the controls is a container, you can specify which item to focus (else, set it to 0). | v13 Addition |
Resolution
|
Change Kodi's Resolution. | |
SetGUILanguage(value)
|
Set GUI Language, 'value' is the language file to use. SetGUILanguage(resource.language.de_de) | v13 Addition |
SetProperty(key,value[,id])
|
Sets a window property for the current window (key,value), or the specified window (key,value,id). | |
SetStereoMode
|
Changes the stereo mode of the GUI. Params can be: toggle, next, previous, select, tomono or any of the supported stereomodes (off, split_vertical, split_horizontal, row_interleaved, hardware_based, anaglyph_cyan_red, anaglyph_green_magenta, monoscopic) | v13 Addition |
settingslevelchange
|
Toggles the visible settings (in SettingsCategory.xml) between 'basic', 'standard', 'advanced and 'expert' | v13 Addition |
TakeScreenshot([filenameandpath,sync])
|
Takes a Screenshot. You can optionally specify the filename (including the path). Note: only .png files are supported. Add "sync" parameter to run synchronously (slow). | |
ToggleDirtyRegionVisualization
|
makes dirty regions visible for debugging proposes. | v16 Addition |
ToggleStereoMode
|
Toggle the stereoscopic mode of the GUI (on/off). | v13 Addition |
GUI container built-in's
Function | Description | Version |
---|---|---|
Container.NextSortMethod
|
Change to the next sort method. | |
Container.NextViewMode
|
Select the next view mode. | |
Container.PreviousSortMethod
|
Change to the previous sort method. | |
Container.PreviousViewMode
|
Select the previous view mode. | |
Container.Refresh
|
Refresh current listing. | |
Container.SetSortMethod(id)
|
Change to the specified sort method. (For list of ID's see [list of sort methods]) | |
Container.SetViewMode(id)
|
Set the current view mode (list, icons etc.) to the given container id. | |
Container.SetSortDirection
|
Toggle the sort direction. | |
Container.Update
|
Update current listing. Send Container.Update(path,replace) to reset the path history. |
GUI control built-in's
Function | Description | Version |
---|---|---|
Control.Message(id,message,[windowid])
|
Sends a given message to a control in a given window (or active window if omitted). Messages can be movedown, moveup, pagedown, pageup, click. | |
Control.Move(id,offset)
|
Will make a Container with the "id" specified in the command move focus by "offset". | |
Control.SetFocus(id,position[,absolute])
|
Will make a list with the "id" specified in the command gain focus at "position" number in its list. Set absolute to focus the first listitem of a container instead of the first visible listitem. Alias SetFocus(id,position) | |
PageDown
|
Send a page down event to the pagecontrol with given id. | |
PageUp
|
Send a page up event to the pagecontrol with given id. | |
SendClick(windowid,id)
|
Sends a click to a control in a given window (or active window if omitted). | |
SetFocus(id,position[,absolute])
|
Will make a list with the "id" specified in the command gain focus at "position" number in its list. Set absolute to focus the first listitem of a container instead of the first visible listitem. Alias Control.SetFocus(id,position) |
Library built-in's
Function | Description | Version |
---|---|---|
CleanLibrary(database)
|
This funtion will perform a number of 'cleanup' tasks on your video database and can be run if you have moved, deleted or renamed files. Takes either "video" or "music" as a parameter to begin cleaning the corresponding database. | |
exportlibrary(music,false,filepath)
|
The music library will be exported to a single file stored at filepath location. | |
exportlibrary(video,true,thumbs,overwrite,actorthumbs)
|
The video library is exported to multiple files with the given options. Here thumbs, overwrite and actorthumbs are boolean values (true or false). | |
UpdateLibrary(database,[path])
|
Takes either "video" or "music" as a parameter to begin updating the corresponding database. For "video" you can additionally specify a specific path to be scanned. | |
VideoLibrary.Search
|
Brings up a search dialog which will search the library |
Optical container built-in's
Function | Description | Version |
---|---|---|
EjectTray()
|
Either opens or closes the DVD tray, depending on its current state | |
RipCD
|
Will rip the inserted CD from the DVD-ROM drive. |
Picture built-in's
Function | Description | Version |
---|---|---|
RecursiveSlideShow(dir)
|
Run a slideshow from the specified directory, including all subdirs | |
ShowPicture(picture)
|
Show a picture by its file path/url. | v13 Addition |
SlideShow(dir[,recursive][,[not]random][,pause][,beginslide="/path/to/start/slide.jpg"])
|
Starts a slideshow of pictures in the folder dir. Optional parameters are 'recursive', 'random' or 'notrandom', 'pause' and 'beginslide="/path/to/some/image.jpg"' parameters. The "recursive" parameter starts a recursive slideshow, adding images from sub-folders. The "random" and "notrandom" parameters override the Randomize setting found in the pictures media window. The "pause" parameter will start the slideshow paused. "beginslide" will start the slideshow with the specified image. |
Player built-in's
Function | Description | Version |
---|---|---|
PlayDisc(param)
|
Will play the inserted CD or DVD media from the DVD-ROM drive. | |
PlayerControl(command)
|
Allows control of music and videos. The command may be one of Play, Stop, Forward, Rewind, Next, Previous, BigSkipForward, BigSkipBackward, SmallSkipForward, SmallSkipBackward, FrameAdvance(#), TempoUp, TempoDown, Tempo(value), Random, RandomOn, RandomOff, Repeat, RepeatOne, RepeatAll, RepeatOff, Partymode(music) or Partymode(video) or Partymode(path to .xsp file) or Reset.
Play will either pause, resume, or stop ffwding or rewinding. Random toggles random playback and Repeat cycles through the repeat modes (these both take an optional second parameter, Notify, that notifies the user of the new state). Partymode(music/video) toggles the appropriate partymode, defaults to music if no parameter is given, besides the default music or video partymode you can also pass a path to a custom smartplaylist (.xsp) as parameter. Reset only applies to games and will reset the currently playing game. |
|
PlayerResolutionSelect
|
Select a different resolution | v18 |
Playlist.Clear
|
Clear the current playlist | |
Playlist.PlayOffset
|
Start playing from a particular offset in the playlist | |
PlayMedia(mediaPath[,isdir][,1][,playoffset=xx][,resume][,noresume][,playlist_type_hint=x])
|
Plays the media. This can be a playlist, music, or video file, directory, plugin or a url. The optional parameter ",isdir" can be used for playing a directory. ",1" will start the media without switching to fullscreen. If media is a playlist, you can use playoffset=xx where xx is the position to start playback from. Set "resume" to force resuming. Set "noresume" to force not resuming.
Note: Following parameters are available from Kodi v20. If media is a playlist (e.g. STRM), you can set the type of playlist with "playlist_type_hint=x" where x can be 0 for music playlist or 1 for video playlist, if not set will be used music playlist. |
|
PlayWith()
|
Play the selected item with the specified player core. | |
QueueMedia() [7]
|
Queues the given media. This can be a playlist\, music\, or video file\, directory\, plugin or an Url. The optional parameter "\,isdir" can be used for playing a directory. "\,1" will start the media without switching to fullscreen. If media is a playlist\, you can use playoffset=xx where xx is the position to start playback from.
|
|
Seek(seconds)
|
Seeks to the specified relative amount of seconds within the current playing media. A negative value will seek backward and a positive value forward. | v15 Addition |
Profile built-in's
Function | Description | Version |
---|---|---|
LoadProfile(profilename,[prompt])
|
Load the specified profile. If prompt is not specified, and a password would be required for the requested profile, this command will silently fail. If promp' is specified and a password is required, a password dialog will be shown. | |
Mastermode
|
Runs Kodi in master mode | |
System.LogOff
|
Log off current user. |
PVR built-in's
Function | Description | Version |
---|---|---|
PVR.SearchMissingChannelIcons
|
Will start a search for missing channel icons | v16 Addition |
PVR.ToggleRecordPlayingChannel
|
Will toggle recording on playing channel, if any | v18 |
PVR.SeekPercentage
|
Performs a seek to the given percentage in timeshift buffer, if timeshifting is supported |
Skin built-in's
Function | Description | Version |
---|---|---|
ReloadSkin()
|
Reloads the current skin – useful for Skinners to use after they upload modified skin files (saves power cycling) | |
Skin.Reset(setting)
|
Resets the skin setting (setting) . If (setting) is a bool setting (i.e. set via SetBool or ToggleSetting) then the setting is reset to false. If (setting) is a string (Set via SetString, SetImage, or SetPath) then it is set to empty.
|
|
Skin.ResetSettings
|
Resets all the above skin settings to their defaults (toggles all set to false, strings all set to empty.) | |
Skin.SelectBool(header, label1|setting1, label2|setting2)
|
Pops up select dialog to select between multiple skin setting options. Skin.SelectBool(424, 31411|RecentWidget, 31412|RandomWidget, 31413|InProgressWidget) | |
Skin.SetAddon(string,type)
|
Pops up a select dialog and allows the user to select an add-on of the given type to be used elsewhere in the skin via the info tag Skin.String(string). The most common types are xbmc.addon.video, xbmc.addon.audio, xbmc.addon.image, xbmc.addon.executable and kodi.gameclient. | |
Skin.SetBool(setting)
|
Sets the skin setting (setting) to true, for use with the conditional visibility tags containing Skin.HasSetting(setting). The settings are saved per-skin in settings.xml just like all the other Kodi settings.
|
|
Skin.SetFile(string,mask,folderpath)
|
Pops up a folder browser and allows the user to select a file off the hard-disk to be used else where in the skin via the info tag Skin.String(string). If the mask parameter is specified, then the file browser will only search for the extension specified (.avi,.mp3,.m3u,.png,.bmp,etc.,etc.). To use multiple extensions separate them using "|" (minus quotes). If the folderpath parameter is set the file browser will start in that folder. | |
Skin.SetImage(string[,value,path])
|
Pops up a file browser and allows the user to select an image file to be used in an image control elsewhere in the skin via the info tag Skin.String(string). If the value parameter is specified, then the file browser dialog does not pop up, and the image path is set directly. the path option allows you to open the file browser in the specified folder. | |
Skin.SetNumeric(numeric[,value])
|
Pops up a keyboard dialog and allows the user to input a numerical. | |
Skin.SetPath(string[,folderpath])
|
Pops up a folder browser and allows the user to select a folder of images to be used in a multi image control else where in the skin via the info tag Skin.String(string). If the folderpath parameter is set the file browser will start in that folder. | |
Skin.SetString(string[,value])
|
Pops up a keyboard dialog and allows the user to input a string which can be used in a label control elsewhere in the skin via the info tag Skin.String(string). If the value parameter is specified, then the keyboard dialog does not pop up, and the string is set directly. | |
Skin.Theme(1)
|
Cycles the skin theme. Skin.Theme(-1) will go backwards. | |
Skin.ToggleDebug
|
Toggles skin debug info on/off | |
Skin.ToggleSetting(setting)
|
Toggles the skin setting (setting) for use with conditional visibility tags containing Skin.HasSetting(setting).
|
|
UnloadSkin()
|
Unloads the current skin |
System built-in's
Function | Description | Version |
---|---|---|
ActivateScreensaver
|
Starts the screensaver | v13 Addition |
Hibernate
|
Hibernate (S4) the System | |
InhibitIdleShutdown(true/false)
|
Prevent the system to shutdown on idle. | v12 Addition |
InhibitScreensaver(true/false)
|
Prevent activation of the screensaver. | v19 Addition |
Minimize
|
Minimizes Kodi | |
Powerdown
|
Powerdown system | |
Quit
|
Quits Kodi | |
Reboot
|
Cold reboots the system (power cycle) | |
Reset
|
Reset the system (same as reboot) | |
RestartApp
|
Restarts Kodi (only implemented under Windows and Linux) | |
ShutDown
|
Trigger default Shutdown action defined in System Settings | |
Suspend
|
Suspends (S3 / S1 depending on bios setting) the System | |
System.Exec(exec)
|
Execute shell commands. The full path to the script has to be placed inside the parentheses. | |
System.ExecWait(exec)
|
Execute shell commands and freezes Kodi until shell is closed. As well as for "System.Exec(exec)", the full path to the script has to be placed inside the parentheses. |
Weather built-in's
Function | Description | Version |
---|---|---|
Weather.LocationNext
|
Switch to next weather location | |
Weather.LocationPrevious
|
Switch to previous weather location | |
Weather.LocationSet
|
Switch to given weather location (parameter can be 1-3) | |
Weather.Refresh
|
Force weather data refresh |
Appendix V: List of Built In Controls
.xml files
AddonBrowser.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
5 | radiobutton | Enable auto-updating of the installed add-on's |
6 | radiobutton | Enable add-on notifications |
7 | radiobutton | Enable language filter |
8 | radiobutton | Hide broken addons |
9 | button | Check for repo updates |
DialogAddonInfo.xml
ID | Type | Description |
---|---|---|
6 | button | Install the selected add-on |
7 | button | Disable the selected add-on |
8 | button | Update the selected add-on |
9 | button | Show the settings of the selected add-on |
10 | button | Show the dependencies of the selected add-on |
12 | button | Run the selected add-on |
13 | radiobutton | Auto-update |
14 | button | Select add-on version |
50 | container | List of available screenshots |
DialogAddonSettings.xml
ID | Type | Description |
---|---|---|
2 | label | Heading label |
3 | grouplist | Grouplist template |
5 | grouplist | Grouplist template |
6 | textbox | Setting description help text |
7 | button | Button template |
8 | radiobutton | Radiobutton template |
9 | spincontrolex | Spincontrolex template |
10 | togglebutton | Togglebutton template |
11 | image | Default separator image |
12 | edit | Edit template |
13 | sliderex | Slider template |
14 | label | Label template |
15 | button | Colour button |
20 | button | Settings level change button |
28 | button | OK button |
29 | button | Cancel button |
30 | button | <unused button> |
DialogAudioDSPManager.xml
ID | Type | Description |
---|---|---|
20 | container | List with available options |
21 | container | List with active options |
22 | radiobutton | Continuous save button |
23 | button | Apply button |
24 | button | Clear button |
9000 | container | List with available modes |
DialogBusy.xml
ID | Type | Description |
---|---|---|
10 | progress | Progress bar |
DialogButtonMenu.xml
ID | Type | Description |
---|---|---|
3100 | label | Label of the focused button |
DialogColorPicker.xml
ID | Type | Description |
---|---|---|
1 | label | Heading label |
6 | container | List of colors |
7 | button | Cancel button |
DialogConfirm.xml
ID | Type | Description |
---|---|---|
1 | label | Heading label |
9 | textbox | Message |
10 | button | No button |
11 | button | Yes button |
12 | button | (for future use) |
20 | progress | Progress bar |
DialogContextMenu.xml
ID | Type | Description |
---|---|---|
999 | image | Background image of the context menu (center part) (deprecated) |
998 | image | Background image of the context menu (bottom part) (deprecated) |
997 | image | Background image of the context menu (top part) (deprecated) |
996 | grouplist | Grouplist template |
999 | image | Background image of the context menu |
1000 | button | Button template |
DialogExtendedProgressBar.xml
ID | Type | Description |
---|---|---|
30 | label | Heading label |
31 | label | Line 1 |
32 | progress | Scan progress bar |
DialogGameControllers.xml
ID | Type | Description |
---|---|---|
3 | grouplist | List of controller types |
5 | grouplist | List of feature types |
7 | button | Button template |
8 | label | Settings category label template |
9 | image | Settings separator image template |
10 | button | Button template |
17 | button | Help button |
18 | button | OK button |
19 | button | Reset button |
20 | button | Get more... button |
21 | button | Ignore input button |
22 | button | Get all button |
31 | gamecontroller | Gamecontroller image template |
32 | textbox | Controller description |
DialogFavourites.xml
ID | Type | Description |
---|---|---|
450 | container | List of available favourites |
DialogKeyboard.xml
ID | Type | Description |
---|---|---|
8 | button | Backspace button |
100 – 111 | button | Digits 0 – 9 |
120 – 171 | button | Characters A – Z |
300 | button | Done Button |
301 | button | Cancel button |
302 | radiobutton | Shift button |
303 | radiobutton | Caps-Lock button |
304 | radiobutton | Switch to symbols |
305 | button | Navigate left button |
306 | button | Navigate right button |
307 | button | Enter IP address button |
309 | button | Layout button |
311 | label | Heading label |
312 | edit | Label displaying the text being entered |
313 | label | Label displaying the text being entered (when keyboard layout is Chinese) |
314 | label | Label displaying the available choices (when keyboard layout is Chinese) |
DialogMediaSource.xml
ID | Type | Description |
---|---|---|
2 | label | Heading label |
10 | container | List of added media sources |
11 | button | Browse for location button |
12 | edit | Button for entering the name for the selected source |
13 | button | Add new source button |
14 | button | Delete source button |
18 | button | OK button |
19 | button | Cancel button (unused) |
DialogMusicInfo.xml
ID | Type | Description |
---|---|---|
6 | button | Refresh artist information / Refresh album information |
7 | button | User rating |
8 | button | Play album/song |
10 | button | Get artist thumbnail / Get album thumbnail |
11 | button | Connect to the Last.fm radio channel for this artist |
12 | button | Get artist fanart image |
13 | button | Get song thumbnail |
50 | container | Discography of the selected artist / tracks on the selected album / contributors on the selected song |
DialogNotification.xml
ID | Type | Description |
---|---|---|
400 | image | Default Icon |
401 | label | Heading text |
402 | label | Message text |
DialogNumeric.xml
ID | Type | Description |
---|---|---|
1 | label | Heading label |
4 | label | Label displaying the digits being entered |
10 – 19 | button | Digits 0 – 9 |
20 | button | Navigate left button |
21 | button | Enter Button |
22 | button | Navigate right button |
23 | button | Backspace button |
DialogPictureInfo.xml
ID | Type | Description |
---|---|---|
5 | container | List of the available exif information of the image currently being displayed |
DialogPVRChannelManager.xml
ID | Type | Description |
---|---|---|
4 | button | OK button |
5 | button | Apply button |
6 | button | Cancel button |
7 | radiobutton | Activate channel button |
6 | button | Cancel button |
8 | edit | Channel name |
9 | button | Channel logo |
11 | spincontrolex | Select group |
12 | radiobutton | Activate EPG |
13 | spincontrolex | Select EPG source button |
30 | button | Switch to group management |
31 | button | New channel |
34 | button | Toggle radio / tv channels |
20 | container | Channel list |
DialogPVRChannelsOSD.xml
ID | Type | Description |
---|---|---|
11 | container | Channels list |
DialogPVRGroupManager.xml
ID | Type | Description |
---|---|---|
11 | container | Ungrouped channels |
12 | container | Grouped channels |
13 | container | Group list |
25 | radiobutton | Hide / Unhide button |
26 | button | Add button |
27 | button | Rename button |
28 | button | Delete button |
29 | button | OK button |
34 | togglebutton | Switch between TV / Radio |
DialogPVRChannelGuide.xml
ID | Type | Description |
---|---|---|
11 | container | Guide list |
DialogPVRGuideSearch.xml
ID | Type | Description |
---|---|---|
9 | edit | Search string |
10 | radiobutton | Include description |
11 | radiobutton | Case sensitive |
12 | spincontrolex | Minimal duration |
13 | spincontrolex | Maximal duration |
14 | edit | Start date |
15 | edit | End date |
16 | edit | Start time |
17 | edit | End Time |
18 | spincontrolex | Genre |
19 | radiobutton | Avoid repeats |
20 | radiobutton | Unknown genres |
21 | spincontrolex | Groups |
22 | radiobutton | FTA |
23 | spincontrolex | Channels |
24 | radiobutton | Ignore timers |
25 | button | Cancel button |
26 | button | Search button |
27 | radiobutton | Ignore recordings |
28 | button | Defaults button |
DialogPVRInfo.xml
ID | Type | Description |
---|---|---|
4 | button | Similar button |
5 | button | Switch to channel button |
6 | button | Record button |
7 | button | OK button |
8 | button | Play recording button |
9 | button | Add timer button |
10 | button | Play programme button |
11 | button | Set reminder button |
DialogSeekBar.xml
ID | Type | Description |
---|---|---|
401 | slider | Marker representing the current seek position |
402 | slider | Marker representing the epg seek position (PVR) |
403 | slider | Marker representing the current timeshift position (PVR) |
DialogSelect.xml
ID | Type | Description |
---|---|---|
1 | label | Heading label |
2 | label | Number of items in the list |
3 | container | List of available options |
5 | button | OK (on multiple selection) or Manual/Get More... button |
6 | container | List of available add-ons |
7 | button | Cancel button |
8 | button | Add/Get More... button |
11 | container | List with game video thumbnails |
12 | textbox | Description of the currently-selected video filter |
DialogSettings.xml
ID | Type | Description |
---|---|---|
2 | label | Header label |
5 | grouplist | Grouplist template |
7 | button | button template |
8 | radiobutton | radiobutton template |
9 | spincontrolex | spincontrolex template |
11 | image | image template |
12 | edit | edit template |
13 | sliderex | sliderex template |
14 | label | label template |
28 | button | ok button |
29 | button | cancel button |
30 | button | clear/settings button |
DialogSlider.xml
ID | Type | Description |
---|---|---|
10 | label | Heading label |
11 | slider | Slider |
12 | label | Label representing the slider value |
DialogSubtitles.xml
ID | Type | Description |
---|---|---|
100 | label | Name of subtitle service |
110 | image | Logo of subtitle service |
120 | container | List of available subtitles |
130 | label | Local subtitle available |
140 | label | Number of available subtitles |
150 | container | List of available subtitle services |
160 | button | Manual search buttom |
DialogTextViewer.xml
ID | Type | Description |
---|---|---|
5 | textbox | Text area for add-on output |
DialogVideoInfo.xml
ID | Type | Description |
---|---|---|
3 | image | Video thumb |
4 | textbox | Text area for displaying the video plot |
5 | button | Toggle between video review and cast members (Deprecated) |
6 | button | Refresh video information |
7 | button | User rating |
8 | button | Play video |
9 | button | Resume video |
10 | button | Get video Fanart, Poster, Banner, or Thumb |
11 | button | Play movie trailer |
13 | button | Show all movies by the director of the selected movie |
50 | container | List of cast members of the currently selected movie |
DialogVideoManager.xml
ID | Type | Description |
---|---|---|
21 | button | Play |
22 | button | Add version |
23 | button | Add extra |
24 | button | Rename version |
25 | button | Set default |
26 | button | Remove |
27 | button | Choose art |
28 | button | Rename extra |
MyFavourites.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype |
3 | button | Select sort method |
4 | togglebutton | Select sortmode (ascending or descending) |
19 | radiobutton / edit | Filter the content to only show items that include the specified string in the name |
EventLog.xml
ID | Type | Description |
---|---|---|
4 | togglebutton | Select sortmode (ascending or descending) |
20 | button | Clear button |
21 | button | Level button |
22 | radiobutton | Only show current level radiobutton |
50 | container | Container with event loglines |
FileBrowser.xml
ID | Type | Description |
---|---|---|
450 | container | Directory list |
451 | container | List of available thumbnails |
411 | label | Heading label |
412 | label | Path of the selected item |
413 | button | OK button |
414 | button | Cancel button |
415 | button | Create folder |
416 | radiobutton | Flip Image horizontally |
FileManager.xml
ID | Type | Description |
---|---|---|
12 | label | Number of items in directory list 1 |
13 | label | Number of items in directory list 2 |
20 | container | Directory list 1 |
21 | container | Directory list 2 |
101 | label | Path of the currently selected directory in list 1 |
102 | label | Path of the currently selected directory in list 2 |
GameOSD.xml
ID | Type | Description |
---|---|---|
1101 | label | Help text |
1102 | gamecontroller | Controller layout |
LoginScreen.xml
ID | Type | Description |
---|---|---|
2 | label | Heading label |
3 | label | Number of the currently selected profile |
52 | container | List of the available profiles |
MusicOSD.xml
ID | Type | Description |
---|---|---|
500 | button | Select visualization |
501 | button | Lock visualization to the current preset |
MusicVisualisation.xml
ID | Type | Description |
---|---|---|
2 | visualisation | Background Visualization |
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
5 | radiobutton | Switch to file mode |
8 | edit | Search for a string anywhere in the Kodi music database |
12 | label | Number of items in the list |
15 | label | Filter label |
16 | radiobutton | Start party mode (randomly play songs from your entire music collection) |
17 | button | Manually enter artist and album name to lookup the artist and album information on the internet |
18 | label | Warning to the user to turn off library mode when no scanned media is found |
19 | radiobutton / edit | Filter the media files to only show items that include the specified string in the name |
20 | button | Update library |
MyMusicPlaylistEditor.xml
ID | Type | Description |
---|---|---|
6 | button | Load the playlist |
7 | button | Save the playlist |
8 | button | Clear the playlist |
12 | label | Number of items in the current directory or library list |
XX | container | List allowing you to browse your directories and music library |
100 | container | List of songs in the playlist |
101 | label | Number of items in the playlist |
MyPics.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
6 | button | Start a picture slideshow |
7 | button | Start a recursive picture slideshow |
9 | radiobutton | Randomize the picture slideshow |
12 | label | Number of items in the list |
MyPlaylist.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
12 | label | Number of items in the playlist |
20 | radiobutton | Shuffle the playlist |
21 | button | Save the playlist |
22 | button | Clear the playlist |
23 | button | Play the playlist |
24 | button | Play the next item in the playlist |
25 | button | Play the previous item in the playlist |
26 | button | Put the playlist on repeat |
MyPrograms.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
12 | label | Number of items in the list |
MyPVRChannels.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
6 | radiobutton | Show hidden channels |
28 | button | Channel groups button |
29 | label | Channel groups name |
31 | radiobutton | Filter |
MyPVRGuide.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
10 | epggrid | EPG Guide Timeline |
11 | container | Channel groups selector |
28 | button | Channel groups button |
29 | label | View name (Now / Next / Timeline) |
30 | label | Channel groups name |
MyPVRRecordings.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
5 | radiobutton | Group items by folder structure |
7 | radiobutton | Show deleted recordings |
10 | button | Show only watched, unwatched or all recordings |
28 | button | Channelgroups button |
29 | label | 'Deleted' (When show deleted recordings is enabled, otherwise empty) |
MyPVRSearch.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
28 | button | Channel groups button |
MyPVRTimers.xml
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
8 | radiobutton | Hide disabled timers |
28 | button | Channel groups button |
ID | Type | Description |
---|---|---|
2 | button | Select viewtype (list, thumbnail, media info, etc...) |
3 | button | Select sort method (sort by: name, date size, etc...) |
4 | togglebutton | Select sortmode (ascending or descending) |
5 | button | Switch to file mode |
6 | button | Play DVD (used the play physical DVD discs) |
8 | button | Search for a string anywhere in the Kodi video database |
10 | button | Show only watched, unwatched or all videos |
12 | label | Number of items in the list |
14 | button | Show only unwatched or all videos |
11 | button | Unlock shares |
15 | label | Filter label |
16 | button | Start party mode (randomly play musicvideos from your collection) |
18 | label | Warning to the user to turn off library mode when no scanned media is found |
19 | radiobutton / edit | Filter the media files to only show items that include the specified string in the name |
20 | button | Update library |
MyWeather.xml
ID | Type | Description |
---|---|---|
2 | button | Refresh the weather information |
3 | spincontrolex | Change weather location |
11 | label | Shows the time of last weather update |
31 | label | Current day label |
32 | label | Today's high temperature value |
33 | label | Today's low temperature value |
34 | label | Today's weather condition |
35 | image | Today's weather icon |
223 | label | Localized “Temperature” string |
224 | label | Localized “Feels like” string |
225 | label | Localized “UV index” string |
226 | label | Localized “Wind” string |
227 | label | Localized “Dew point” string |
228 | label | Localized “Humidity” string |
Pointer.xml
ID | Type | Description |
---|---|---|
1 | image | Pointer no focus image |
2 | image | Pointer focus image |
3 | image | Pointer drag image |
4 | image | Pointer click image |
SettingsCategory.xml
ID | Type | Description |
---|---|---|
2 | label | Label displaying the current settings category |
3 | grouplist | Grouplist template for the menu |
5 | grouplist | Grouplist template for the settings section |
6 | textbox | Settings description |
7 | button | Button template |
8 | radiobutton | Radiobutton template |
9 | spincontrolex | Spincontrolex template |
10 | button | Button template for the menu |
11 | image | Default separator image |
12 | edit | Edit control template |
13 | sliderex | Sliderex control template |
14 | label | Label template |
15 | button | Color button |
20 | button | Setting level button |
SettingsProfile.xml
ID | Type | Description |
---|---|---|
2 | container | List of available profiles |
4 | button | Enable the loginscreen |
5 | button | Auto login |
SettingsScreenCalibration.xml
ID | Type | Description |
---|---|---|
2 | label | Coordinates label |
3 | label | Help information |
8 | mover | Top left mover |
9 | mover | Right bottom mover |
10 | mover | Subtitle position mover |
11 | resize | Pixel aspect ratio box |
12 | mover | Reset calibration control |
20 | videowindow | currently playing video |
SlideShow.xml
ID | Type | Description |
---|---|---|
10 | label | Error loading image message |
13 | [any] | These controls are visible when the slideshow is paused |
SettingsSystemInfo.xml
ID | Type | Description |
---|---|---|
2 – 11 | label | Line 2 – Line 11 |
30 | textbox | privacy-policy text |
40 | label | System information category label |
52 | label | Kodi build label |
53 | label | Kodi build date label |
94 | button | Show storage information |
95 | button | Show summary information |
96 | button | Show network information |
97 | button | Show video information |
98 | button | Show hardware information |
99 | button | Show PVR information |
100 | button | Show privacy-policy |
SmartPlaylistEditor.xml
ID | Type | Description |
---|---|---|
2 | label | Heading label |
10 | container | List of playlist rules |
12 | button | Name of the playlist |
13 | button | Add a rule |
14 | button | Remove a rule |
15 | button | Edit a rule |
16 | button | Match rules option (match all rules / match one or more rules) |
17 | button | Limit rules option (number of results: 10, 25, 50, 100, etc... items) |
18 | button | Sort rules option (order the results by: title, genre, random, etc...) |
19 | button | Sort direction option (ascending / descending) |
20 | button | OK button |
21 | button | Cancel button |
22 | button | Set Playlist type (movies, episodes, mixed, etc...) |
23 | button | Group by |
24 | radiobutton | Mixed |
SmartPlaylistRule.xml
ID | Type | Description |
---|---|---|
15 | button | Select field (director, duration, video resolution, etc...) |
16 | button | Select operator (is, is not, less than, etc...) |
17 | edit | Enter a value the rule should match |
18 | button | OK button |
19 | button | Cancel button |
20 | button | Browse button |
VideoFullScreen.xml
ID | Type | Description |
---|---|---|
1 | label | Numpad seek label |
10 | label | Line 1 |
11 | label | Line 2 |
12 | label | Line 3 |
VideoOSDBookmarks.xml
ID | Type | Description |
---|---|---|
2 | button | Add a video bookmark |
3 | button | Clear all bookmarks |
4 | button | Use the currently selected video bookmark as the episode thumbnail |
11 | container | List of available bookmarks |
Appendix VI: List of Default Icons
Icons used in Kodi skins
The filenames of the default icons are as follows:
Add-ons
DefaultAddon.png DefaultAddonAlbumInfo.png DefaultAddonArtistInfo.png DefaultAddonAudioDecoder.png DefaultAddonAudioEncoder.png DefaultAddonContextItem.png DefaultAddonGame.png DefaultAddonHelper.png DefaultAddonImageDecoder.png DefaultAddonImages.png DefaultAddonInfoLibrary.png DefaultAddonInfoProvider.png DefaultAddonInputstream.png DefaultAddonsInstalled.png DefaultAddonLanguage.png DefaultAddonLibrary.png DefaultAddonLookAndFeel.png DefaultAddonLyrics.png DefaultAddonMovieInfo.png DefaultAddonMusic.png DefaultAddonMusicVideoInfo.png DefaultAddonNone.png DefaultAddonPeripheral.png DefaultAddonPVRClient.png DefaultAddonPicture.png DefaultAddonProgram.png DefaultAddonsRecentlyUpdated.png DefaultAddonRepository.png DefaultAddonsRepo.png DefaultAddonScreensaver.png DefaultAddonsSearch.png DefaultAddonService.png DefaultAddonSkin.png DefaultAddonSubtitles.png DefaultAddonTvInfo.png DefaultAddonUISounds.png DefaultAddonsUpdates.png DefaultAddonVfs.png DefaultAddonVideo.png DefaultAddonVisualization.png DefaultAddonWeather.png DefaultAddonWebSkin.png DefaultAddonsZip.png DefaultGameAddons.png
Music
DefaultArtist.png DefaultAudio.png DefaultAlbumCover.png DefaultMusicAlbums.png DefaultMusicArtists.png DefaultMusicCompilations.png DefaultMusicGenres.png DefaultMusicPlaylists.png DefaultMusicRecentlyAdded.png DefaultMusicRecentlyPlayed.png DefaultMusicRoles.png DefaultMusicSongs.png DefaultMusicSources.png DefaultMusicTop100.png DefaultMusicTop100Albums.png DefaultMusicTop100Songs.png DefaultMusicVideoTitle.png DefaultMusicVideos.png DefaultMusicYears.png DefaultPartyMode.png
Videos
DefaultActor.png DefaultCountry.png DefaultDirector.png DefaultGenre.png DefaultInProgressShows.png DefaultMovieTitle.png DefaultMovies.png DefaultRecentlyAddedEpisodes.png DefaultRecentlyAddedMovies.png DefaultRecentlyAddedMusicVideos.png DefaultSets.png DefaultStudios.png DefaultTVShowTitle.png DefaultTVShows.png DefaultTags.png DefaultVideo.png DefaultVideoCover.png DefaultVideoDeleted.png DefaultVideoPlaylists.png DefaultYear.png
Generic
DefaultAddSource.png DefaultCDDA.png DefaultDVDEmpty.png DefaultDVDFull.png DefaultDVDRom.png DefaultFile.png DefaultFolder.png DefaultFolderBack.png DefaultHardDisk.png DefaultNetwork.png DefaultPicture.png DefaultPlaylist.png DefaultProgram.png DefaultRemovableDisk.png DefaultScript.png DefaultUser.png DefaultVCD.png
Other
DefaultIconError.png DefaultIconInfo.png DefaultIconWarning.png OverlayHD.png OverlayLocked.png OverlayRAR.png OverlaySpoiler.png OverlayUnwatched.png OverlayWatched.png OverlayZIP.png
If one or more of the images above are not present in a skin, Kodi will try to fallback to another Default* image. For this to work correctly, several of the images above are required to be present (if not, Kodi will fallback to DefaultFolder.png in the end.
DefaultAudio.png - If listitem is Audio file or PVR channel is Radio. DefaultVideo.png - If listitem is Video file or LiveTV or PVRChannel or PVRRecording or a PVRTimer. DefaultPicture.png - If listitem is a picture file. DefaultPlaylist.png - If listitem is a playlist. DefaultScript.png - If listitem is a python script. DefaultFile.png - If listitem is a archive file or of unknown files type. DefaultFolderBack.png - If Parent folder exists for current folder. DefaultFolder.png - If none of the above apply. (Source of information : FillInDefaultIcon() in FileItem.cpp.) DefaultHardDisk.png - If user is at the source level of the Library. (Source of information : GetDirectory() in SourcesDirectory.cpp)