Skin engine enhancements (themes, guide colors, skin functions, weather settings...) (2 Viewers)

elliottmc

Retired Team Member
  • Premium Supporter
  • August 7, 2005
    14,927
    6,061
    Cardiff, UK
    Home Country
    United Kingdom United Kingdom
    Hi,

    There is definitely still an issue here with the label for the radio guide group button.

    If I have

    Code:
        <control>
          <description>TvGroup button label</description>
          <type>label</type>
          <id>0</id>
          <posX>62</posX>
          <posY>730</posY>
          <valign>middle</valign>
          <label>#Radio.Guide.ChangeGroup</label>
          <font>AvalonLight16</font>
            <textcolor>ffffff</textcolor>
          <animation effect="rotate" end="90" time="0">WindowOpen</animation>
          <animation effect="rotate" end="90" time="0">WindowClose</animation>
          </control>

    (which is what your Avalon skin has)

    then I get no label at all.

    If I change #Radio to #TV then it shows the label for the current TV guide (not radio) group, and this doesn't change if I change group.

    Also, when moving left from the channel names, I scroll back in time through the radio EPG rather than moving focus to the group button.

    Can you help?

    Mark
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    Hi ajp8164,

    I started to test the new skin functions, but I have an issue to get the skin.setstring function to work:

    I try to write a string to the skin.settings file on a button click (<onclick>) but nothing seems to happen (no error and also nothing is written to the file). Also it is not possible to get the keyboard:

    <control>
    <description>TVGuide rows</description>
    <type>button</type>
    <id>100</id>
    <label>Amount of TVGuide rows</label>
    <onclick>#(skin.setstring(#skin.tvguide.rows))</onclick>
    </control>

    Maybe I missed something, but the skin.togglesetting works fine.

    Thanks,

    Try this instead:

    <onclick>#(skin.setstring('#skin.tvguide.rows'))</onclick>

    Note the single-quote marks on the setstring() argument. I think the wiki may be incorrect.. Also, I should address the lack of debug output.

    However, I'm not sure this control will do anything for you. Typically you would use something like the following on a checkbutton control to manage a boolean setting.

    <selected>#(skin.hassetting('#skin.tvguide.showgenrekey'))</selected>
    <onclick>#(skin.togglesetting('#skin.tvguide.showgenrekey'))</onclick>

    What are you trying to accomplish? If you're trying to get the keyboard up to set a value then you have to use a skin #define as the argument to setstring() - I think the #define must have been previously declared at the top of the skin file (e.g., <define>#my_var:</define> which will create a define with value equal to empty string). I'm not sure you can pass a #define to setstring() as the value (2nd) parameter to get it saved to the skin settings file. I'd have to look over the implementation (or try it ;-)

    Thanks for testing!

    Thanks! The missing single-quotes did the trick and it works now as expected. (I thought I tried it already because I use it also for the togglesetting, but apparently not :confused:)

    My idea is to use this to import a 8 rows or 10 rows tvguide skin file into mytvguide.xml with use of the setstring value (Fixed string linked to a button without keyboard input), but it looks like that the <import> tag can not make use of strings like <import>#skin.guide.rows</import>

    Will this idea be possible?

    Cheers,

    The sample Avalon skin (Avaon3779) dowloadable from post 3 of this thread implements this exact capability. Take a look at that as an example.
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    Hi,

    There is definitely still an issue here with the label for the radio guide group button.

    If I have

    Code:
        <control>
          <description>TvGroup button label</description>
          <type>label</type>
          <id>0</id>
          <posX>62</posX>
          <posY>730</posY>
          <valign>middle</valign>
          <label>#Radio.Guide.ChangeGroup</label>
          <font>AvalonLight16</font>
            <textcolor>ffffff</textcolor>
          <animation effect="rotate" end="90" time="0">WindowOpen</animation>
          <animation effect="rotate" end="90" time="0">WindowClose</animation>
          </control>

    (which is what your Avalon skin has)

    then I get no label at all.

    If I change #Radio to #TV then it shows the label for the current TV guide (not radio) group, and this doesn't change if I change group.

    Also, when moving left from the channel names, I scroll back in time through the radio EPG rather than moving focus to the group button.

    Can you help?

    Mark
    Does all this work in 1.2.3? I don't use radio at all so it's hard for me to test..

    Also, please post your skin control for the radio guide group button (needs to be button3part; id=100) - this control needs to be nearly identical to the tv guide group button (setup for colorization) since the logic for guide colorization applies to both radio and tv guides (it's a base capability).
     
    Last edited:

    elliottmc

    Retired Team Member
  • Premium Supporter
  • August 7, 2005
    14,927
    6,061
    Cardiff, UK
    Home Country
    United Kingdom United Kingdom
    Does all this work in 1.2.3? I don't use radio at all so it's hard for me to test..

    Yes, all working in 1.2.3.

    Also, please post your skin control for the radio guide group button (needs to be button3part; id=100) - this control needs to be nearly identical to the tv guide group button (setup for colorization) since the logic for guide colorization applies to both radio and tv guides (it's a base capability).
    [/quote]

    Already done!

    https://forum.team-mediaportal.com/...s-weather-settings.103616/page-18#post-864378
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    Does all this work in 1.2.3? I don't use radio at all so it's hard for me to test..

    Yes, all working in 1.2.3.

    Also, please post your skin control for the radio guide group button (needs to be button3part; id=100) - this control needs to be nearly identical to the tv guide group button (setup for colorization) since the logic for guide colorization applies to both radio and tv guides (it's a base capability).

    Already done!

    https://forum.team-mediaportal.com/...s-weather-settings.103616/page-18#post-864378[/quote]
    Hi Mark,
    Found and fixed a problem that affected the rendering of the radio guide group button. Your xml you posted is good. Posted a new build (5/4/2012) in post 3.
     

    elliottmc

    Retired Team Member
  • Premium Supporter
  • August 7, 2005
    14,927
    6,061
    Cardiff, UK
    Home Country
    United Kingdom United Kingdom
    Hi Mark,
    Found and fixed a problem that affected the rendering of the radio guide group button. Your xml you posted is good. Posted a new build (5/4/2012) in post 3.

    Tested and working fine. Thanks!

    I notice that the Avalon skin you are using is based on an old version (check the layout of TV home). I guess all of the required skin changes are documented to help skinners get up to speed?

    Right now, I think this is ready to merge to master. The only thing I think should be added is an import button on the EPG genre config screen to import settings from a TV server or skin config file as I have already mentioned. Is this possible? Otherwise anyone using multiseat will have to edit files.

    Thanks,

    Mark
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    Hi Mark,
    Found and fixed a problem that affected the rendering of the radio guide group button. Your xml you posted is good. Posted a new build (5/4/2012) in post 3.

    Tested and working fine. Thanks!

    I notice that the Avalon skin you are using is based on an old version (check the layout of TV home). I guess all of the required skin changes are documented to help skinners get up to speed?

    Right now, I think this is ready to merge to master. The only thing I think should be added is an import button on the EPG genre config screen to import settings from a TV server or skin config file as I have already mentioned. Is this possible? Otherwise anyone using multiseat will have to edit files.

    Thanks,

    Mark

    Changes that affect existing skins for TV guide genre colors are documented at http://wiki.team-mediaportal.com/1_..._Changes/1.2.0_to_1.3.0/TV_Guide_Genre_Colors

    The full list is at http://wiki.team-mediaportal.com/1_...e/7_Skins/Skin_Related_Changes/1.2.0_to_1.3.0

    So, an import button should only import the following sections of the specified xml file?
    • genremap
    • genreoptions
    • tvguidecolors
     

    elliottmc

    Retired Team Member
  • Premium Supporter
  • August 7, 2005
    14,927
    6,061
    Cardiff, UK
    Home Country
    United Kingdom United Kingdom
    So, an import button should only import the following sections of the specified xml file?
    • genremap
    • genreoptions
    • tvguidecolors

    I would say so. You'll then need to update the button status for

    <entry name="specifympaaratedasmovie">no</entry>

    but I guess you will have to update everything after import.

    I think the biggest challenge here will be the tvguidecolors section.

    In my MediaPortal.xml I have

    Code:
      <section name="tvguidecolors">
        <entry name="guidecolorchannelbutton">FF0E517B</entry>
        <entry name="guidecolorchannelbuttonselected">FF008000</entry>
        <entry name="guidecolorgroupbutton">FF0E517B</entry>
        <entry name="guidecolorgroupbuttonselected">FF008000</entry>
        <entry name="guidecolorprogramselected">FF008000</entry>
        <entry name="guidecolorprogramended">FF808080</entry>
        <entry name="guidecolorborderhighlight">99FFFFFF</entry>
        <entry name="defaultgenre">FF1D355B,FF0E517B</entry>
        <entry name="Documentary">FFD2691E,FFD2691E</entry>
        <entry name="Kids">FF00FFFF,FF00FFFF</entry>
        <entry name="Movie">FF800080,FF800080</entry>
        <entry name="Music">FF800000,FF800000</entry>
        <entry name="News">FF90EE90,FF90EE90</entry>
        <entry name="Other">FFFFD700,FFFFD700</entry>
        <entry name="Special">FFFFD700,FFFFD700</entry>
        <entry name="Sports">FF006400,FF006400</entry>
      </section>

    However, the skin author won't know what genres I want to use, so they will probably have to do something like

    Code:
      <section name="tvguidecolors">
        <entry name="guidecolorchannelbutton">FF0E517B</entry>
        <entry name="guidecolorchannelbuttonselected">FF008000</entry>
        <entry name="guidecolorgroupbutton">FF0E517B</entry>
        <entry name="guidecolorgroupbuttonselected">FF008000</entry>
        <entry name="guidecolorprogramselected">FF008000</entry>
        <entry name="guidecolorprogramended">FF808080</entry>
        <entry name="guidecolorborderhighlight">99FFFFFF</entry>
        <entry name="defaultgenre">FF1D355B,FF0E517B</entry>
        <entry name="genre1">FFD2691E,FFD2691E</entry>
        <entry name="genre2">FF00FFFF,FF00FFFF</entry>
        <entry name="genre3">FF800080,FF800080</entry>
        <entry name="genre4">FF800000,FF800000</entry>
        <entry name="genre5">FF90EE90,FF90EE90</entry>
        <entry name="genre6">FFFFD700,FFFFD700</entry>
        <entry name="genre7">FFFFD700,FFFFD700</entry>
        <entry name="genre8">FF006400,FF006400</entry>
      </section>

    and then when you import from skinsettings.xml, you will have to map them to the genres that the user has specified (which may or may not be the default ones).

    However, if you import them from MediaPortal.xml, you would assume (but probably best to check) that the genres in genremap and in tvguidecolors match.

    How many genres is it possible to add? Is it sensible to set a limit on this (8 + the default genre)? Personally I think that any more than this makes it hard to follow, but others will probably disagree.

    What will happen if you try to import colours and the user has more genres than colours? Do you automatically match the first few?

    I guess actually the most flexible solution is to retrieve the colour from skinsettings.xml and then present a dialog showing the colour and unmapped genres and ask the user which genre they want to map to this colour! Simple and easy to follow!!!!

    Mark
     
    Last edited:

    Lbr_Lion

    Extension Designer
    July 19, 2008
    243
    372
    Home Country
    Netherlands Netherlands
    My idea is to use this to import a 8 rows or 10 rows tvguide skin file into mytvguide.xml with use of the setstring value (Fixed string linked to a button without keyboard input), but it looks like that the <import> tag can not make use of strings like <import>#skin.guide.rows</import>

    Will this idea be possible?

    Cheers,

    The sample Avalon skin (Avaon3779) dowloadable from post 3 of this thread implements this exact capability. Take a look at that as an example.

    I checked the sample of the Avalon skin and this is exacly what I want, but I have 2 questions:

    1: Should the binding value of the menubutton be displayed as button label? Now the button label displays always the first value of the subitem instead. (dialoglist)
    2: Can skin expressions be used in a <import> tag?

    Thanks,
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    My idea is to use this to import a 8 rows or 10 rows tvguide skin file into mytvguide.xml with use of the setstring value (Fixed string linked to a button without keyboard input), but it looks like that the <import> tag can not make use of strings like <import>#skin.guide.rows</import>

    Will this idea be possible?

    Cheers,

    The sample Avalon skin (Avaon3779) dowloadable from post 3 of this thread implements this exact capability. Take a look at that as an example.

    I checked the sample of the Avalon skin and this is exacly what I want, but I have 2 questions:

    1: Should the binding value of the menubutton be displayed as button label? Now the button label displays always the first value of the subitem instead. (dialoglist)
    2: Can skin expressions be used in a <import> tag?

    Thanks,
    Hi,

    For (1.), take a look at the wiki for MenuButton, specifically see the following elements: valueTextInButton, valueTextPrefix, and valueTextSuffix. I think this should help you.

    For (2.), no - I have a proposal topic with this capability implemented but it will not make v1.3.
     

    Users who are viewing this thread

    Top Bottom