Wiki Home arrow MediaPortal Wiki


The following changes were done between MediaPortal Release 1.0.1 and 1.1.0

  • In order to keep your skin compatible with MediaPortal 1.1.0 you have to incorporate the following changes.



Changes added with 1.1.0 Alpha release

VUMeter in Music Now Playing

info

  • Integrate a VUMeter display on Music Now Playing
  • Draw graphic with the different states of the VU. Name them VU1.png - VU15.png and store them in the Media\Animation\VU folder of your skin
  • . NOTE: This is only working with BASS Player selected as your Music Player

description of change

  • insert on the beginning of the file. (e.g. after the <allowoverlay>)

  • MyMusicPlayingNow.xml:

    • <vumeter>yes</vumeter>
  • This enables vumeter support. If your Playing Now screen, does NOT contain a VUMeter, set the parameter to "no", then we won't do unnecessary retrieval of the peak level.
  • . Then insert your controls for the VUMeter. you need a control for the Left Level and Right Level:
    •     <control>
            <type>image</type>
            <id>999</id>
            <posX>90</posX>
            <posY>21</posY>
            <width>107</width>
            <height>107</height>
            <texture>#VUMeterL</texture>
            <visible>Player.HasAudio + Player.playing</visible>
          </control>
          <control>
            <type>image</type>
            <id>998</id>
            <posX>237</posX>
            <posY>21</posY>
            <width>107</width>
            <height>107</height>
            <texture>#VUMeterR</texture>
            <visible>Player.HasAudio + Player.playing</visible>
          </control>
  • #VUMeterL and #VUMeterR will be replaced with the name of the gfx corresponding to the Level retrieved.


New dialog and skin file for extended CI menu support

info

  • The CI menu used a default dialog before, that missed some lines of text.
  • new skin files for B3/B3W included in svn 22835

description of change

  • New dialog "GUIDialogCIMenu"; WINDOW_DIALOG_CIMENU = 2018
  • according to DVB MMI structure it has 3 lines of text and one listcontrol:
    • ID 4: Label Title
    • ID 5: Label Subtitle
    • ID 6: Bottom Text
  • reference: /trunk/mediaportal/MediaPortal.base/skin/Blue3(Wide)/DialogCIMenu.xml

Sample view:

cimenudialog2.jpg


Changes added with 1.1.0 BETA 1 release

Change NOTIFY in TVGuide

info

  • When you open TV Guide and there is a show set with the notify, icon is nearly not readble.
  • Show marked for notification now gets a yellow background if gfxs below exist, else the old tvguide_notify_button.png is used.

description of change

  • New (optional) graphics in skin/media folder
  • tvguide_notifyButton_Focus_left.png
    tvguide_notifyButton_Focus_middle.png
    tvguide_notifyButton_Focus_right.png
    tvguide_notifyButton_noFocus_left.png
    tvguide_notifyButton_noFocus_middle.png
    tvguide_notifyButton_noFocus_right.png


Fix and renaming of skin.string(a,b) to string.equals(a,b)

info

  • the existing skin.string(a,b) in skinengine was not working properly. Thx to ?ZealotSix is now fixed.

  • To clarify the name it got renamed to string.equals

description of change

It will return true if string "a" and "b" are identical. Some notes:

  • the compare is case sensitive
  • quotes ( " ) are evaluated as well, so string.equals(a,"b") is completly different from string.equals(a,b)
  • you can use operators like + | & but be carefull with spaces:

  • string.equals(a,b) | string.equals(c,d) <<< not working

  • string.equals(a,b)|string.equals(c,d) <<< OK

  • Added a method to check if a string contains another string: string.contains(a,b)

  • Added a method to check if a string start with a specific one: string.starts (a,b)


Enhanced Controls for MediaInfo

info

  • More flexibility and new formats can be accommodated by changing only the xml.

description of change

  • #Play.Current.IsXXXX is removed from ?GuiVideoOverlay to get it more flexible.

  • New controls:

     #Play.Current.VideoResolution
     #Play.Current.AudioChannels
     #Play.Current.HasSubtitles
     #Play.Current.AspectRatio
  • Removed Codec property because are changed for svn25113 and newer. See below


MP remembers the last focused control

info

  • A skinner can now decide for every window if he wants that MP remembers the last focused control.
  • This is currently available for B3/B3W in the BasicHome window.

  • This can be denied by the users in Configuration in the general section.

description of change

  • The skinners have to add this tag to the skin file at the beginning before the controls are defined:
    • <rememberLastFocusedControl>yes</rememberLastFocusedControl>


fadelabel text wrapping and button control with fadelabel

info

Button control and Up and Down button control changes - this patch gives the button control the following new skin attributes

  • scrollStartDelaySec - specifies the amount of time, in seconds, until text scrolling starts once the button *receives focus*. Obtaining focus is the trigger to start consideration for scrolling (otherwise all buttons on the screen might scroll at the same time = very annoying). If scrollWrapString is not specified then the fadelabel in the button control behaves as a "legacy" fadelabel (no text wrapping).
  • scrollWrapString - specifies two things; (a) that the fade label should wrap text back to front and, (b) the text string that should be used to join the back of the label to the front. If you want text to wrap around you must specify at least one character (e.g., a space). An empty string turns off wrapping behavior. This attribute has no effect if scrollStartDelaySec < 0.

Fade label control changes - this patch gives the fadelabel control the following new skin attributes

  • wrapString - identical behavior to the button control scrollWrapString attribute.

description of change

  • In the attached image a button control is defined by the transparent rectangle.
  • The button control text is the longer, light-blue text (being scrolled).
  • Notice the " | " before the word "LONG" - this is the value of the scrollWrapString attribute on the button control.
  • The skin code for this button follows.
  • Incidentally, the TV icon and "TV" label are simply overlays defined in other controls.
  • fadelabel.png

    • <control>
              <description>tv settings button</description>
              <type>button</type>
              <id>1001</id>
              <label>LONG DESCRIPTION GOES HERE FOR THESE SETTINGS</label>
              <font>h3</font>
              <textXOff>90</textXOff>
              <textYOff>50</textYOff>
              <textcolor>#buttonDescTextColor</textcolor>
              <textcolorNoFocus>#buttonDescTextColor</textcolorNoFocus>
              <textureFocus>list-nofocus.png</textureFocus>
              <textureNoFocus>-</textureNoFocus>
              <scrollStartDelaySec>1</scrollStartDelaySec>
              <scrollWrapString> | </scrollWrapString>
              <width>600</width>
              <height>96</height>
      </control>


Shadow text

info

  • Skinners have historically created the effect of shadow text by duplicating (for example) labels in the skin (shadow first followed by the overlapping foreground text). With this modification skinner can now use the following attributes to specify a shadow on the text:

    shadowAngle - the integral angle, in degrees, of the shadow text. Zero degrees is along the x-axis, increasing positive values from zero will rotate the shadow clockwise.
    shadowDistance - the number of pixels the shadow is offset from the normal (foreground) text.
    shadowColor - the color of the shadow.

    Here is a list of controls that support these attributes:

  • Button
  • ?CheckButton

  • ?CheckList

  • ?FadeLabel

  • Label
  • List
  • Menu
  • ?PlayListItemList

  • ?PlayListButton

  • ?SelectButton

  • ?ThumbnailPanel

  • ?ToggleButton

  • ?UpDownButton

  • ?UpDownList

description of change

  • The following image shows an example of the new feautre:
  • http://forum.team-mediaportal.com/attachments/submit-patches-mediaportal-tv-server-etc-325/43470d1247574386-shadow-text-new-feature-shadows.png

  • The xml code for this:

    •                 <control>
                              <type>label</type>
                              <posX>100</posX>
                              <posY>430</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>0</shadowAngle>
                              <shadowDistance>2</shadowDistance>
                              <shadowColor>FF000000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>100</posX>
                              <posY>460</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>45</shadowAngle>
                              <shadowDistance>4</shadowDistance>
                              <shadowColor>FF000000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>100</posX>
                              <posY>490</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>90</shadowAngle>
                              <shadowDistance>6</shadowDistance>
                              <shadowColor>FF000000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>100</posX>
                              <posY>520</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>135</shadowAngle>
                              <shadowDistance>8</shadowDistance>
                              <shadowColor>FF000000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>450</posX>
                              <posY>430</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>180</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>FFFF0000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>450</posX>
                              <posY>460</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>215</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>FFFF0000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>450</posX>
                              <posY>490</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>270</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>FFFF0000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>450</posX>
                              <posY>520</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h4</font>
                              <shadowAngle>305</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>FFFF0000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>800</posX>
                              <posY>430</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h1</font>
                              <shadowAngle>45</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>66000000</shadowColor>
                      </control>
                      <control>
                              <type>label</type>
                              <posX>800</posX>
                              <posY>490</posY>
                              <width>315</width>
                              <label>#date</label>
                              <textcolor>FFFFFFFF</textcolor>
                              <font>h1</font>
                              <shadowAngle>45</shadowAngle>
                              <shadowDistance>10</shadowDistance>
                              <shadowColor>33000000</shadowColor>
                      </control>


New Frame Skin elements in ThumbnailPanel

info

  • from SVN 23486 on ?ThumpnailPanel has equal Frames as ?FilmStrip.

  • The ?SkinEngiene is painting the Frames in front of the Thumbs.

description of change

  • The new skinning elements are:

    • <control>
          <type>thumbnailpanel</type>
           ...
          <showFrame>true</showFrame>
          <frameNoFocus>Thumb_Frame_NoFocus.png</frameNoFocus>
          <frameFocus>Thumb_Frame_Focus.png</frameFocus>
          ...
       </control>


Changes added with 1.1.0 RC1 release

Conditional expressions in AllowOverlay

info

  • Since SVN 23572 it is possible to use conditional expressions in allowoverlay element of window. Using allowoverlay avoids duplication of controls comprising the video/visualization preview window and promotes consistency of the skin. In screens, however, that make use of ?FacadeView control, it was often not possible to use alowoverlay because the video preview window would only fit when ?FacadeView was in list or filmstrip view. In these screens the video/visualization preview window controls where duplicated and their visibility controlled through a conditional expression. With this change it is now possible to specify the conditional expression directly in allowoverlay.

description of change

  • The following is an example of the use of conditional expressions in allowoverlay (excerpt from ?MyVideo.xml:):

    • <window>
        <id>6</id>
        <defaultcontrol>2</defaultcontrol>
        <allowoverlay>[facadeview.list|facadeview.filmstrip]</allowoverlay>
        ...
        <controls>
          ...
          <import>common.facade.video.xml</import>
          ...
        </controls>
      </window>
  • The controls comprising the video/visualization preview window should be removed as they are already included in videoOverlay.xml and musicOverlay.xml.

  • Note: Using allowoverlay and not removing the video window control is sure to result in flickering overlays.


Expose channelname to skin

description of change

  • Since SVN 23709 it is possible to get the channelname exposed to the skin in three new places:

#TV.Scheduled.Channel is exposed in mytvschedulerServer.xml

#TV.RecordedTV.Channel is exposed in mytvrecordedtv.xml

#TV.Search.Channel is exposed in mytvsearch.xml


New EPG properties

description of change

  • Since SVN 24089 it's possible to get the channel name + episode title(subtitle) + episode number if those are
  • available using the following new properties:

#TV.Guide.?CompositeTitle

#TV.View.compositetitle

#TV.Next.compositetitle


New label added to ZAP OSD

description of change

  • Since SVN 24653 a new Label has been added to tvZAPOSD.xml.

  • The new label is used to show the channel number as it is being typed by the user, when switching channels using channel numbers. The new label should have ID = 38


MyMusicPlayingNow.xml

description of change

      <label>#percentage</label>
      <visible>player.hasmedia</visible>


Changes added since 1.1.0 RC 1 release

New MediaInfo codec properties

description of change

  • Since SVN 25113 codec info are changed and videoOSD.xml needs to be updated:

#Play.Current.?AudioCodec.Texture

#Play.Current.?VideoCodec.Texture

  • Example of usage:

<texture>logos\#Play.Current.AudioCodec.Texture.png</texture>


MediaPortal Wiki: MediaPortal1_Development/SkinArchitecture/MP_1_0_1-to-1_1_0 (last edited 2010-02-24 13:02:34 by ?Dadeo)



by team-mediaportal.com - 2008 SourceForge.net Logo