this post will give you a brief overview of what has changed in VisualMR 1.2 skinning (for details please check the documentation
). This is to help you updating your skin if you already made one for a previous version of VisualMR.
: The <Skin>-tag in Skin.xml and the <Form> tag in ALL
layouts must contain an attribute SkinFormat="2.0" which is used to identify that it is really a skin using the new features otherwise the compatibility mode is used (you can remove the VisualMRVers attribute which is replaced by SkinFormat).
New controls / elements
introduced are: StateLabel, Image, StateImage and DrawShape
Label has been enhanced
with the optional attributes Type
(to control horizontal scrolling) and Empty
(alternative text when nothing would be displayed)
: 'Vol+10','Vol-10',... has been replaced by SetVol(+10),SetVol(-10),... This way you can increase/decrease by any value, not only use the predefined. Additionally SetVol(=x) is possible for setting absolute volume levels from 0 to 100
: 'Search', 'BrowsePresets', 'PlayPreset(x)', 'SetLayout(x)', 'GoAmazon', 'None'
The biggest change is in the area of values ('variables'): Now you can assign a static values, too (for example for a label with the text "Album". Therefor the syntax changed slightly: Static value begin with a single quote ' while dynamic values start with a #. Additionally the attributes of the current song are now grouped as "#CurrentSong.xxx".
Therefore the variables used before must be renamed
- Title => #CurrentSong.Title
- Album => #CurrentSong.Album
- Artist => #CurrentSong.Artist
- ElapsedTime => #ElapsedTimeText
- ElapsedTimeS => #ElapsedTimeSec
- TotalTime => #CurrentSong.TrackLengthText
- TotalTimeS => #CurrentSong.TrackLengthSec
- RepeatState => #Repeat
- ShuffleState => #Shuffle (Value "Shuffle" becomes "True")
- IsStopped => #IsStopped
- Volume100 => #Volume
- SongInfo => Not supported anymore
- State => Not supported anymore
Thanks to this changes the following new dynamic values
1.) #IsPlaying, #HasMessage, #Message, #TransportState, #TransportStateText
.Genre / TrackLengthMSec / Year / Format / Bitrate / FormatAndBitrate / TrackNumber / TrackCount / TrackNumerAndCount / DiscNumber / DiscCount / DiscNumerAndCount / CoverArt / HasCoverArt / ASIN
Another new feature is that you can optionally define multiple (sub)layouts
for each window size (like the cover art /info/buttons layouts in BlueGlass. Remember that these sublayouts must be defined in the skin.xml file, too. See the documentation
and BlueGlass skin for more info about these sublayouts.