Playlists.xml
All playlists are stored in playlists.xml which is used by the Advanced Player.
Studio Pro Editor saves the file directly into the project's Always Send so playlists can be quickly switched in the Advanced Player.
An annotated example is shown below.
There is also a playlists_editor.xml which is only used by Studio Pro Editor and contains the un-expanded editor rows.
These files are created by the Studio Pro Editor and should not be edited manually.
<!-- ==================================================================================================
{project folder}\media\Always Send\playlists.xml
All playlists are stored in one file.
Advanced Editor saves them directly into the project Always Send so playlists can be quickly switched.
An annotated example is shown below.
================================================================================================== -->
<!--
Groups
mediaRoot: where the output media files are
widgetsRoot: where the output widget files are (dlls & xmls)
transitionsRoot: where the row transition files are (dlls & xmls)
-->
<groups mediaRoot="Always Send\PlaylistData\Media\" transitionsRoot="Always Send\PlaylistData\Transitions\" widgetsRoot="Always Send\PlaylistData\Widgets\">
<!--
Each group has its own settings and can have one or more playlists
-->
<group name="Lobby">
<!--
Settings for this group
-->
<settings>
<!--
Brightness Settings for this group:
dayStart: start of the day period (e.g. "07:00")
dayEnd: end of the day in this (e.g. "17:00")
(times outside of day start/end are night)
autoSunriseSunset: use real sunset/sunrise instead of the above start/end (bool)
autoSunriseOffset: if autoSunriseSunset, add this value to sunrise (mins)
autoSunsetOffset: if autoSunriseSunset, add this value to sunset (min)
dayBrightness: brightness during day (0-100)
nightBrightness: brightness during night (0-100)
-->
<brightness dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="-60"
autoSunsetOffset="30" dayBrightness="80" nightBrightness="10"/>
<!--
Dark Settings for this group:
Similar to Brightness, but each day has its own settings
Where day_0 = Monday...
day partion settings: as brightness setting above
dayDark: dark during day (bool)
nightDark: dark during night (bool)
-->
<dark>
<day_0 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_1 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_2 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_3 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_4 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_5 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
<day_6 dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="0"
autoSunsetOffset="0" dayDark="false" nightDark="false"/>
</dark>
<!--
Volume Settings for this group:
day partion settings: as brightness setting above
dayVolume: volume during day (0-100)
nightVolume: volume during night (0-100)
-->
<volume dayStart="07:00" dayEnd="17:00" autoSunriseSunset="true" autoSunriseOffset="-60"
autoSunsetOffset="30" dayVolume="80" nightVolume="0"/>
<!--
Network Targets for this group
Messages can be set per row to send to a name target defined here
Each Target cotains a unique name (for player to look up where to send now network messageds to) and the network details.
-->
<networkTargets>
<target name="Target1" IPAddress="123.123.123.132" port="123" udp="true"/>
<target name="Target2" IPAddress="" port="0" udp="false"/>
</networkTargets>
</settings>
<!--
A playlist for this group
name: to id the playlist
defaultduration (secs): default row duration to use when can't determine row length
e.g. duration=0 (auto) and all content are images
(if this is 0, players default it 10 secs)
enableSync: true = all player's row durations are sync'd to the master (sync) player + one row settings used for all
players
false = player's determine own row durations + each player uses own row settings
NOTE if true and there is no master\sync player, adnaved player & editor behave as though false
type: 1 = normal playlist
2 = test cards playlist
-->
<playlist name="mooo" defaultduration="10" enableSync="true" isFiller="false" type="1">
<!--
Row in the playlist
-->
<row>
<!-- settings for the row: to be used for by ALL players when in sync mode
name: name of row for reference
duration: seconds to show this row. 0=length of the shortest video in the Master player
start: only play from this unix timestamp
end: only play unit this unix timestamp
transition:the config file for a transition
format = {transition_name}_{guid}.xml
the player looks for the "widget" node in the xml to determine with transition wodget to use
playlist: if set, the editor will replace the row with rows from the named playlist when saving as
playlist.xml for Advanced Player to use
NOTE: unix timestamps are "timezone agnostic"
i.e. they are exactly what user types into the CMS
-->
<settings name="Row 1" playlist="" Duration="0" start="1631101381" end="1631101381"
transition="CrossFade_ABD306F44207402089CB1B01B17C792D.xml">
<!--
list of row schdules
if there is anything in this section (no check if not), the row will only play if NOW matches any of the schedules
in this list
i.e. NOW in within the time range and today is selected
the row's start/end range still apply
-->
<schedules>
<schedule startTime="09:00" endTime="11:59" day0="true" day1="true" day2="true" day3="true" day4="true"
day5="true" day6="true"/>
<schedule startTime="09:15" endTime="17:59" day0="true" day1="true" day2="true" day3="true" day4="true"
day5="true" day6="true"/>
</schedules>
<!--
list of messages to send to the named network target (targets are defined in the group settings)
-->
<networkMessages>
<message targetName="Target1" message="hello"/>
<message targetName="Target2" message="Hello"/>
</networkMessages>
</settings>
<!--
players in this group and what media to use for them
(there's one cell in a row per player)
id: is the <player id=" "> from groups xml -->
<player id="1">
<!--
settings for the row: to be used for by this player only when in non-sync mode i.e. each player is doing its own thing
as sync row settings above
-->
<settings name="MVI_3344" playlist="" duration="0" start="0" end="0" transition="">
<networkMessages/>
<schedules/>
</settings>
<!--
media to play on each of the player's outputs
name:id of the output as defined in groups.xml data
filename:full path to the file to use in this output i.e. a playlist item
rowTransitionFilename:full path to a transition file used in this output - for the ROW settings transition
widget to use (when in sync mode)
(** these names are copied to the transition file's xml on save)
playerTransitionFilename:full path to a transition file used in this output - for the PLAYER row settings transition
widget to use (when in non-sync mode))
(** these names are copied to the transition file's xml on save)
-->
<output name="a" filename="" rowTransitionFilename="" playerTransitionFilename=""/>
<output name="b" filename="" rowTransitionFilename="" playerTransitionFilename=""/>
<output name="c" filename="" rowTransitionFilename="" playerTransitionFilename=""/>
<output name="d" filename="" rowTransitionFilename="" playerTransitionFilename=""/>
</player>
</row>
</playlist>
</group>
</groups>