v19 Showing a different startup image
#1
Hello all,

I am trying to show a different startup image, but I am not having any luck.  Even though the image I am referencing exists, the default startup image is always displayed.  Here is the code for my startup.xml:

xml:

<?xml version="1.0" encoding="UTF-8"?>
<window>
    <defaultcontrol always="true">12</defaultcontrol>
    <onload condition="System.HasAddon(script.skin.info.service)">RunScript(script.skin.info.service)</onload>
    <onload condition="Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.Service)</onload>
    <onload condition="!Skin.HasSetting(Enable.TMDbHelper)">Skin.Reset(TMDbHelper.Service)</onload>
    <onload condition="Skin.HasSetting(Enable.BlurredVideoInfo) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.EnableBlur)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.EnableColors)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">SetProperty(TMDbHelper.Colors.SourceImage,poster,Home)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetString(TMDbHelper.Colors.Luminance,0.75)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetString(TMDbHelper.Colors.Saturation,0.75)</onload>
    
    <onload condition="System.HasAddon(script.artistslideshow)">RunScript(script.artistslideshow, daemon=True)</onload>
    <onload condition="String.IsEmpty(Skin.String(OSDExtraArt))">Skin.SetString(OSDExtraArt,none)</onload>
    
    <controls>
        
        <control type="image">
            <posx>0</posx>
            <posy>0</posy>
            <width>1920</width>
            <height>1080</height>
            <aspectratio>scale</aspectratio>
            <texture>special://skin/backgrounds/intro/default1.jpg</texture>
        </control>
        <control type="button" id="12">
            <include>HiddenButton</include>
            <onfocus condition="!Skin.HasSetting(StartupPlaylist)">PlayMedia($ESCINFO[Skin.String(StartupPlaylist)])</onfocus>
            <onfocus>ReplaceWindow($INFO[System.StartupWindow])</onfocus>
        </control>    
    </controls>
</window>

Perhaps one of you could point out what am I missing here? Any help will be greatly appreciated.

Regards,

Bart
Amber Maintainer
Main HTPC: Intel Core i7, 32GB, nVidia GTX1080, Windows 11 Soundbar: Samsung HW-Q950A TV: LG CX Kodi: 19.3 Skin: Amber
Reply
#2
Just trying this on Silvo and I got a custom image to show by putting it below the last button , different skin of course but maybe try putting your image below button 12  ?
Also in silvo the "play intro" option is off by default so had to enable that.
Reply
#3
Which startup image do you mean? If you mean the kodi startup image itself, imho this can't be changed by skin side. If you mean the startup-image, you have set in your startup.xml, just be sure to show startup.xml for a few seconds, before replacing window:

xml:
<control type="button" id="12">
    <include>HiddenButton</include>
    <onfocus condition="!Skin.HasSetting(StartupPlaylist)">PlayMedia($ESCINFO[Skin.String(StartupPlaylist)])</onfocus>
    <onfocus>AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:03,silent,false)</onfocus>
</control>

shows startup.xml (and the image special://skin/backgrounds/intro/default1.jpg) for 3 seconds, before replacing window.
Reply
#4
This is originally from estuarymodv2 , works in amber I tested it , obviously you will need to change the 4x images and paths. but it will show a custom image.
<window>
    <defaultcontrol always="true">12</defaultcontrol>
    <onload>ClearProperty(SplashStarted,home)</onload>
    <controls>
        <control type="videowindow">
            <include>FullScreenDimensions</include>
        </control>
        <control type="image">
            <include>FullScreenDimensions</include>
            <aspectratio>scale</aspectratio>
            <texture background="true">$INFO[Window(Home).Property(SkinHelper.SplashScreen)]</texture>
        </control>
        <control type="group">
            <visible>String.IsEmpty(Skin.String(SplashScreen)) + !Skin.HasSetting(EnableSpashScreen)</visible>
            <control type="image">
                <depth>DepthBackground</depth>
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture colordiffuse="$VAR[BackgroundColorVar]">special://skin/backgrounds/primary.jpg</texture>
            </control>
            <control type="image">
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture colordiffuse="EDFFFFFF">lists/panel.png</texture>
            </control>
            <control type="image">
                <depth>DepthBackground</depth>
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture>special://skin/backgrounds/splash.png</texture>
            </control>
        </control>
        <control type="button" id="12">
            <onfocus condition="Skin.HasSetting(EnableSpashScreen)">ReplaceWindow($INFO[System.StartupWindow])</onfocus>
            <onfocus condition="Skin.String(SplashScreen) + !Skin.HasSetting(EnableSpashScreen)">RunScript(script.skin.helper.service,action=splashscreen,file=$INFO[Skin.String(SplashScreen)],duration=5)</onfocus>
            <onfocus condition="!Skin.String(SplashScreen) + !Skin.HasSetting(EnableSpashScreen)">AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:01,silent,false)</onfocus>
            <visible allowhiddenfocus="true">false</visible>
        </control>
    </controls>
</window>
Reply
#5
(2021-07-27, 01:23)beatmasterrs Wrote: Which startup image do you mean? If you mean the kodi startup image itself, imho this can't be changed by skin side. If you mean the startup-image, you have set in your startup.xml, just be sure to show startup.xml for a few seconds, before replacing window:

xml:
<control type="button" id="12">
    <include>HiddenButton</include>
    <onfocus condition="!Skin.HasSetting(StartupPlaylist)">PlayMedia($ESCINFO[Skin.String(StartupPlaylist)])</onfocus>
    <onfocus>AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:03,silent,false)</onfocus>
</control>

shows startup.xml (and the image special://skin/backgrounds/intro/default1.jpg) for 3 seconds, before replacing window.
@beatmasterrs , thanks! I will test to see if this works for me.

Regards,

Bart
Amber Maintainer
Main HTPC: Intel Core i7, 32GB, nVidia GTX1080, Windows 11 Soundbar: Samsung HW-Q950A TV: LG CX Kodi: 19.3 Skin: Amber
Reply
#6
(2021-07-27, 12:41)ontap Wrote: This is originally from estuarymodv2 , works in amber I tested it , obviously you will need to change the 4x images and paths. but it will show a custom image.
<window>
    <defaultcontrol always="true">12</defaultcontrol>
    <onload>ClearProperty(SplashStarted,home)</onload>
    <controls>
        <control type="videowindow">
            <include>FullScreenDimensions</include>
        </control>
        <control type="image">
            <include>FullScreenDimensions</include>
            <aspectratio>scale</aspectratio>
            <texture background="true">$INFO[Window(Home).Property(SkinHelper.SplashScreen)]</texture>
        </control>
        <control type="group">
            <visible>String.IsEmpty(Skin.String(SplashScreen)) + !Skin.HasSetting(EnableSpashScreen)</visible>
            <control type="image">
                <depth>DepthBackground</depth>
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture colordiffuse="$VAR[BackgroundColorVar]">special://skin/backgrounds/primary.jpg</texture>
            </control>
            <control type="image">
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture colordiffuse="EDFFFFFF">lists/panel.png</texture>
            </control>
            <control type="image">
                <depth>DepthBackground</depth>
                <include>FullScreenDimensions</include>
                <aspectratio>scale</aspectratio>
                <texture>special://skin/backgrounds/splash.png</texture>
            </control>
        </control>
        <control type="button" id="12">
            <onfocus condition="Skin.HasSetting(EnableSpashScreen)">ReplaceWindow($INFO[System.StartupWindow])</onfocus>
            <onfocus condition="Skin.String(SplashScreen) + !Skin.HasSetting(EnableSpashScreen)">RunScript(script.skin.helper.service,action=splashscreen,file=$INFO[Skin.String(SplashScreen)],duration=5)</onfocus>
            <onfocus condition="!Skin.String(SplashScreen) + !Skin.HasSetting(EnableSpashScreen)">AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:01,silent,false)</onfocus>
            <visible allowhiddenfocus="true">false</visible>
        </control>
    </controls>
</window>
@ontap , thank you for looking into this with different skins, I appreciate it! I will test and see how it goes.

Regards,

Bart
Amber Maintainer
Main HTPC: Intel Core i7, 32GB, nVidia GTX1080, Windows 11 Soundbar: Samsung HW-Q950A TV: LG CX Kodi: 19.3 Skin: Amber
Reply
#7
@ontap , @beatmasterrs , thank you both for your help.  Putting the images after the button, and adding a delay before going to the home window did the trick.  This is what my final startup.xml looks like now, in case you or anyone else finds it useful:

xml:

<?xml version="1.0" encoding="UTF-8"?>
<window>
    <defaultcontrol condition="!String.IsEmpty(Skin.String(StartupImage) | !String.IsEmpty(Skin.String(StartupImagePath) | !String.IsEmpty(Skin.String(StartupPlaylist)">11</defaultcontrol>
    <onload condition="System.HasAddon(script.skin.info.service)">RunScript(script.skin.info.service)</onload>
    <onload condition="Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.Service)</onload>
    <onload condition="!Skin.HasSetting(Enable.TMDbHelper)">Skin.Reset(TMDbHelper.Service)</onload>
    <onload condition="Skin.HasSetting(Enable.BlurredVideoInfo) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.EnableBlur)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetBool(TMDbHelper.EnableColors)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">SetProperty(TMDbHelper.Colors.SourceImage,poster,Home)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetString(TMDbHelper.Colors.Luminance,0.75)</onload>
    <onload condition="Skin.HasSetting(MatchPosterColors) + Skin.HasSetting(Enable.TMDbHelper)">Skin.SetString(TMDbHelper.Colors.Saturation,0.75)</onload>
    
    <onload condition="System.HasAddon(script.artistslideshow)">RunScript(script.artistslideshow, daemon=True)</onload>
    <onload condition="String.IsEmpty(Skin.String(OSDExtraArt))">Skin.SetString(OSDExtraArt,none)</onload>
    
    <onload condition="String.IsEmpty(Skin.String(StartupImage)) + String.IsEmpty(Skin.String(StartupImagePath)) + String.IsEmpty(Skin.String(StartupPlaylist))">ReplaceWindow($INFO[System.StartupWindow])</onload>
    
    <onunload condition="!String.IsEmpty(Skin.String(StartupPlaylist))">PlayerControl(Stop)</onunload>
    
    <controls>
        <control type="button" id="11">
            <visible allowhiddenfocus="true">false</visible>
            <onfocus condition="!String.IsEmpty(Skin.String(StartupImage))">AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:03,silent,false)</onfocus>
            <onfocus condition="!String.IsEmpty(Skin.String(StartupImagePath))">AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:08,silent,false)</onfocus>
            <onfocus condition="!String.IsEmpty(Skin.String(StartupPlaylist))">PlayMedia($ESCINFO[Skin.String(StartupPlaylist)],1)</onfocus>
            <onfocus condition="!String.IsEmpty(Skin.String(StartupPlaylist))">AlarmClock(GoHome,ReplaceWindow($INFO[System.StartupWindow]),00:12,silent,false)</onfocus>
        </control>
        <control type="group">
            <visible>Player.HasVideo</visible>
            <control type="image">
                <posx>0</posx>
                <posy>0</posy>
                <width>1920</width>
                <height>1080</height>
                <texture>black.png</texture>
            </control>
            <control type="videowindow">
                <posx>0</posx>
                <posy>0</posy>
                <width>1920</width>
                <height>1080</height>
            </control>
        </control>
        <control type="image">
            <visible>!String.IsEmpty(Skin.String(StartupImage))</visible>
            <posx>0</posx>
            <posy>0</posy>
            <width>1920</width>
            <height>1080</height>
            <aspectratio>scale</aspectratio>
            <texture>$INFO[Skin.String(StartupImage)]</texture>
        </control>
        <control type="multiimage">
            <visible>!String.IsEmpty(Skin.String(StartupImagePath))</visible>
            <posx>0</posx>
            <posy>0</posy>
            <width>1920</width>
            <height>1080</height>
            <timeperimage>2000</timeperimage>
            <randomize>true</randomize>
            <fadetime>300</fadetime>
            <aspectratio aligny="top">scale</aspectratio>
            <imagepath background="true">$INFO[Skin.String(StartupImagePath)]</imagepath>
        </control>
    </controls>
</window>

Again, thank you for your help.

Regards,

Bart
Amber Maintainer
Main HTPC: Intel Core i7, 32GB, nVidia GTX1080, Windows 11 Soundbar: Samsung HW-Q950A TV: LG CX Kodi: 19.3 Skin: Amber
Reply

Logout Mark Read Team Forum Stats Members Help
Showing a different startup image0