Přepínání skinu mezi standardní velikostí a 2K rozměrem
To, jak dosáhnout zvětšení skinu na
2K rozměr, tedy z původních
1920x1080 na
2560x1440, jsem už popsal. Dosáhne se toho doplněním dalšího modu rozlišení do addon.xml:
Kód:
<res width="2560" height="1440" aspect="16:9" default="false" folder="1440" />
Editací addon.xml je pak možné dosáhnout toho, že je možné si zvolit, zda chceme použít standardní rozlišení 1920x1080 nebo 2K rozlišení, 2560x1440. Je to potřeba, protože ne všichni mají velké (uhlopříčkou) obrazovky a i když jejich "malá" TV umí 4K rolišení, skin v rozměrech 2K je tam obtížně čitelný. Původně jsem to měl tak, že existovaly dva skiny
Estuary Easy, klasický a tzv.
Estuary Easy 2K. To ale bylo hodně nepraktické. Nakonec jsem, celkem náhodou zjistil, jak se vlastně skin engin při spuštění skinu, co se týče vztahu k parametrům <res> v addon.xml, chová.
Při spuštění skinu se vybírá ten parametr <res>, který je, z celého seznamu možných, tím nejbližším k aktuálně nastavenému zobrazení v nastavení
Systém > Zobrazení > Rozlišení. Bere při tom v potaz nejen velkikost, ale i poměr stran. Tzn. že pokud mám v addon.xml:
Kód:
<extension point="xbmc.gui.skin" debugging="false">
<res width="1920" height="1440" aspect="4:3" default="false" folder="1080" />
<res width="1920" height="1280" aspect="3:2" default="false" folder="1080" />
<res width="1920" height="1200" aspect="16:10" default="false" folder="1080" />
<res width="2040" height="1080" aspect="17:9" default="false" folder="1080" />
<res width="1920" height="1080" aspect="16:9" default="false" folder="1080" />
<res width="2560" height="1080" aspect="21:9" default="false" folder="1080" />
<res width="2338" height="1080" aspect="19.5:9" default="false" folder="1080" />
<res width="2160" height="1080" aspect="18:9" default="false" folder="1080" />
<res width="2560" height="1440" aspect="16:9" default="false" folder="1440" />
</extension>
a nastavím-li rozlišení na
1920x1080, použije se, z výše uvedeného seznamu rozlišení
1920x1080. a definiční soubory skinu se použijí z adresáře
1080. Nastavím-li ale rozlišení
3840x2160, použije se, z výše uvedeného seznamu rozlišení
2560x1440, a definiční soubory skinu se použijí z adresáře
1440.
Definiční soubory skinu mám tak uloženy ve dvou adresářích,
1080 a
1440. V obou adresářích jsou, až na jeden, všechny soubor shodné. Pokud tedy skin upravuji, provádím úpravu jen v jednom adresáři, a nakonec soubory překopíruji do druhého. Ten jediný soubor, který je v každém adresáři unikátní, jsem nazval
.settings.xml. Jeho obsah je v každém adresáři různý. V adresáři 1080 je jeho obsah tento:
Kód:
<?xml version="1.0" encoding="UTF-8"?>
<includes>
<include name="SkinSettings">
<onload>Skin.SetString(skin_directory,1080)</onload>
</include>
</includes>
v adresáři 1440, celkem očekávaně, pak:
Kód:
<?xml version="1.0" encoding="UTF-8"?>
<includes>
<include name="SkinSettings">
<onload>Skin.SetString(skin_directory,1440)</onload>
</include>
</includes>
Díky tomu se při spuštění skinu, na základě hodnoty ve
skin_directory, vše nastaví tak, jak je pro daný rozměr skinu třeba.
Aby to celé fungovalo správně, je třeba, vždy po změně rozlišení v nastavení systému, provést restart Kodi. Ve skinu
Estuary Easy je na to pamatováno a pokud uživatel změnu v nastavení provede, je na to upozorněn. Zároveň, aby to bylo zřejmé, tak jsem aktuální nastavení skinu zobrazil i ve stavové infomaci v horním řádku hlavního menu, vedle loga Kodi. Můžete si toho všimnout u obou níže uvedených screenshot-ů:
- Estuary Easy 3.0.10.0 1080
- Estuary Easy 2K 3.0.10.0 1440