Quantcast
Channel: Kodi Community Forum - Skinning
Viewing all articles
Browse latest Browse all 1803

Request - Skinning engine enhancements

$
0
0
First of all, I want to thank everyone who is working on KODI to make it better (core/addons/scripts/skins/forum or other things). Now that Leia is out, I really hope that there is a developer who has some spare time to further improve KODI, in my case the skinning engine.

If anyone is interested, here is a summary of skinning enhancements which would be nice to have, improve performance or add new possibilities:

DialogNotification.xml
Please add an option to get notification information (ID 400,401,402) via skinning engine, e.g. make something like this work would be great:
Code:
<onload>Skin.SetString(notification_icon,$INFO[Control.GetLabel(400)])</onload>
<onload>Skin.SetString(notification_label1,$INFO[Control.GetLabel(401)])</onload>
<onload>Skin.SetString(notification_label2,$INFO[Control.GetLabel(402)])</onload>
(if that isn't possible, maybe set a window property?)
Unfortunately, "onload" method does not work with modeless dialogs like DialogNotification.xml

Reason:
This enhancement would allow skin developers to create a "Notification Center", Home automation triggers on certain notifications (e.g. Incoming Call --> Pause Video --> Turn on Light) and more ...
(most useful with apps like yatse, ..)

New boolean condition
Code:
File.Exist(/test)
File.Exist($INFO[ListItem.Path]/extrafanart.jpg)
!File.Exist(/test/theme.mp3)
Returns true if a specific file or directory exist

Reason:
Check if a file/dir exist before calling "PlayMedia()", this is especially useful for playing "theme" files or showing extra fanart while browsing your library, can also be useful to check user input "e.g. The directory/file you entered does not exist!"

<includes>
Allow $INFO for <include> and <include content="">, e.g.:
Code:
<include>Transparency_$INFO[Skin.String(Transparency_Value)]</include>
In this case KODI should first get the $INFO value (e.g. 10) and then include the content, e.g.: <include>Transparency_10</include>.  This would save hundreds or even thousand lines of code in most skins because you don't need to add a condition for every possible value like this:
Code:
<include condition="String.isEqual(Skin.String(Transparency_Value),10)">Transparency_10</include>
<include condition="String.isEqual(Skin.String(Transparency_Value),20)">Transparency_20</include>
<include condition="String.isEqual(Skin.String(Transparency_Value),30)">Transparency_30</include>
...
<include condition="String.isEqual(Skin.String(Transparency_Value),100)">Transparency_100</include>
Extreme case: If there are 100+ possible user values you would also need 100+ conditions instead of 1 <include>, this would also improve performance on low-end hardware because KODI doesn't need to go through 100 conditions ...

Container (Content)
Option to fill a container with static items from an URL e.g.:
Code:
<control type="list">
        ...
        <content>http://kodi.tv/items.xml</content>
</control>

items.xml:
----------
<item>
        <label>test</label>
        ...
</item>
Useful for containers with frequently changing content. Normally you have to update the skin .xml file to add/remove or change a static item, with this feature you could just edit the .xml on the server and users will automatically get the new content.

Thanks for considering these enhancements!

Viewing all articles
Browse latest Browse all 1803

Trending Articles