Сохранение расписания в XML¶
Расписание вещания на день можно сохранять в XML файл. В сохраненном XML файле содержится полная информация обо всех блоках и элементах расписания на день. Иp этого файла расписание может быть загружено на тот же или другой день.
Сохранение расписания в XML и загрузка расписания из XML вызывается из меню расписания в модуле просмотра расписания.
Пункты меню:
- Меню\Расписание\Сохранить в XML файл
- Меню\Расписание\Загрузить из XML файла
Структура XML файла:
<BLK_LIST>
<root> <!-- Блок расписание -->
<!-- Тэги описывающие блок -->
<ELEM> <!-- Элемент расписания -->
<!-- Тэги описывающие элемент -->
</ELEM>
<ELEM> <!-- Элемент блока расписания -->
...
</ELEM>
<ELEM> <!-- Элемент блока расписания -->
...
</ELEM>
</root>
<root> <!-- Блок расписание -->
<!-- Тэги описывающие блок -->
<ELEM> <!-- Элемент расписания -->
<!-- Тэги описывающие элемент -->
</ELEM>
<ELEM> <!-- Элемент блока расписания -->
...
</ELEM>
<ELEM> <!-- Элемент блока расписания -->
...
</ELEM>
</root>
</BLK_LIST>
XML файлы с описанием полей:
- schedule_with_comments.xml - с описанием на русском
- schedule_with_comments_eng.xml - с описанием на английском
Пример XML файла с описанием полей:
<BLK_LIST>
<root> <!-- Начало блока -->
<FileName>34961a97.blk</FileName> <!-- Имя файла блока -->
<Type dt="i4">16</Type> <!-- Тип блока (1 - Реклама, 16 - Музыка, 4 - Программа, 2 - Новости, 1073741824 (0x40000000) - Без типа) -->
<Name>Музыка</Name> <!-- Пользовательское имя блока -->
<Time dt="i4">0</Time> <!-- Плановое время запуска (время типа i4 рассчитывается как колличество миллисекунд от начала суток) -->
<Size dt="i4">1200000</Size> <!-- Плановая длительность (millisec) -->
<CurId dt="i4">33</CurId> <!-- Счетчик генератора для идентификатора элементов в нутри блока -->
<Flags dt="i4">32</Flags> <!-- Флаги привязок ко времени и т.д.. Вкратце (не полный список):
/// <summary>
/// Не ранее
/// </summary>
NoLate = 0x000001,
/// <summary>
/// Не позднее
/// </summary>
NoEarl = 0x000004,
/// <summary>
/// Обрывать блоки
/// </summary>
SplitBlk = 0x000008,
/// <summary>
/// Обрывать фонограммы
/// </summary>
SplitPh = 0x000010,
/// <summary>
/// Фиксировать время
/// </summary>
TimeFix = 0x000020,
AutoBlock = 0x000040,
InsideProgram = 0x000080,
ManualLoad = 0x000100,
MusOverplan = 0x000200,
ExtBlkCmdOnStart = 0x000400,
ExtBlkCmdOnStop = 0x000800,
ExtBlkCmdOnOutro = 0x001000,
ExtBlkCmd = ExtBlkCmdOnStart | ExtBlkCmdOnStop | ExtBlkCmdOnOutro,
ETimeFix = 0x002000,
NTimeFix = 0x004000,
TimeMask = NoLate | NoEarl | SplitBlk | SplitPh | TimeFix | ETimeFix | NTimeFix,
AutoCalcTime = 0x008000, // for MAG, count time by clock position
Regional = 0x010000,
MainInRegion = 0x020000,
DisableUpdateRegion = 0x040000
-->
<NumberOfSubjects>0</NumberOfSubjects> <!-- Количество сюжетов в блоке -->
<NumberOfSbjAudioItems>0</NumberOfSbjAudioItems> <!-- Количество звуковых элементов в сюжетах в блоке -->
<PlaylistDateStr>понедельник 14.07.14</PlaylistDateStr>
<ValStorage> <!-- Пользовательские свойства блока -->
<FloatUserProperty dt="f">123.1230011</FloatUserProperty> <!-- Численное свойство в формате с плавающей точкой. -->
<IntUserUroperty dt="i4">12345</IntUserUroperty> <!-- Численное свойство в формате с фиксированной точкой. -->
<StringUserProperty>String value</StringUserProperty> <!-- Текстовое свойство. -->
</ValStorage>
<ELEM> <!-- Элемент расписания -->
<ID dt="i4">1</ID> <!-- Id элемента в блоке (в пределах блока уникально) -->
<PhonoType dt="i4">4</PhonoType> <!-- Тип элемента:
Unknown = 0,
Pause = 3,
Phonogram = 4,
Media = 8,
Info = 10,
Subject = 14,
Rotate = 15,
Video = 16,
PlaceHolder = 17
-->
<State dt="i4">0</State> <!-- Состояние элемента, служебное поле -->
<Cmd dt="i4">0</Cmd> <!-- -->
<Size dt="i4">0</Size> <!-- Плановая длительность (мс) -->
<Freq dt="i4">48000</Freq> <!-- Частота дискретизации (Hz)-->
<SmplRealSize dt="i4">899713</SmplRealSize> <!-- Реальное количество сэмплов в исходном звуковом файле -->
<DB_ModifyDT dt="i8">130336963801170000</DB_ModifyDT> <!-- Время модификации элемента МБД (время с типом i8 высчитывается как количество секунд * 10000000, начиная с 1 января 1601 года) -->
<JnglBtn dt="i4">-1</JnglBtn> <!-- Кнопка джингл-машины, на которую назначен элемент -->
<StartTime dt="i4">4795</StartTime> <!-- Время старта элемента (реальное либо плановое) (мс от начала суток) -->
<PlanStartTime dt="i4">0</PlanStartTime> <!-- Плановый старт элемента (мс от начала суток) -->
<Runtime dt="i4">15975</Runtime> <!-- Рантайм в сэмплах -->
<StopTime dt="i4">23539</StopTime> <!-- Время остановки (мс) -->
<LastAirStartTime dt="i4">4795</LastAirStartTime> <!-- Реальное время выхода элемента (если есть галочка о выходе элемента) (мс) -->
<FONO_INFO>
<FadeOut dt="i4">103699</FadeOut> <!-- Все, что ниже относится к разметке, считается в сэмплах -->
<StartNext dt="i4">132927</StartNext>
<LabelFlags dt="i4">1</LabelFlags>
<FadeInType dt="i4">1</FadeInType>
<FadeOutType dt="i4">1</FadeOutType>
<MaxLvlOk dt="i4">1</MaxLvlOk> <!-- Произведен ли расчет уровня для элемента -->
<MaxLvl dt="f">-3.940502882</MaxLvl> <!-- Значение пикового уровня -->
<Gain dt="f">0</Gain> <!-- Усиление (dB) -->
<Type dt="i4">2</Type> <!-- Тип элемента:
Unknown = 0,
Commercial = 1,
Jingle = 2,
Music = 3,
Program = 4,
News = 5
-->
<FileName>\EUROPA-AIR-FS\EUROPA\SND\Актуальная часовая.wav</FileName>
<dbID dt="i4">6662</dbID> <!-- Id элемента в МБД -->
<ID_Number>1</ID_Number>
<VersionIsNull dt="i4">1</VersionIsNull> <!-- -->
<FONO_STRING_INFO>
<Name>CHASOVAIA</Name> <!-- Название элемента -->
<Artist>Chelentano</Artist> <!-- Artist -->
<Author>RetrLogin</Author> <!-- Author -->
<Album>Help</Album> <!-- Album -->
<Category>LINKER\j;Category7</Category> <!-- Список категорий, к которым принадлежит элемент разделенный через ';' -->
<DbName>EUROPA</DbName> <!-- Имя базы данных -->
<CreateDT dt="i8">0</CreateDT> <!-- Не используется -->
<ModifyDT dt="i8">130144791024431404</ModifyDT> <!-- Время модификации файла FILETIME -->
</FONO_STRING_INFO>
<FONO_ROTATOR_INFO/> <!-- Параметры ротации в МАГе -->
</FONO_INFO>
<SUBJECT/>
<UserAttribs> <!-- Пользовательские атрибуты МБД. перечисляемые атрибуты элементов МБД -->
<ELEM> <!-- Пользовательский атрибут -->
<Name>fm</Name> <!-- Название атрибута -->
<ID dt="i4">10</ID> <!-- Идентификатор значения атрибута в МБД -->
<Value>classic</Value> <!-- Значение атрибута в МБД -->
</ELEM>
<ELEM>
<Name>mus_1</Name>
<ID dt="i4">14</ID>
<Value>val2</Value>
</ELEM>
</UserAttribs>
<ExtendedFields>
<VersionCount>0</VersionCount>
</ExtendedFields>
<ValStorage> <!-- Пользовательские свойства элемнта. Свойства заданные элементу пользователем -->
<FloatUserProperty dt="f">123.1230011</FloatUserProperty> <!-- Численное свойство в формате с плавающей точкой. -->
<IntUserUroperty dt="i4">12345</IntUserUroperty> <!-- Численное свойство в формате с фиксированной точкой. -->
<StringUserProperty>String value</StringUserProperty> <!-- Текстовое свойство. -->
</ValStorage>
</ELEM>
</root>
<root> <!-- Блок распиания -->
<FileName>5db6eb68.blk</FileName>
<Type dt="i4">1</Type>
<Name>Block name</Name>
<Time dt="i4">28200000</Time>
<Size dt="i4">245000</Size>
<CurId dt="i4">45</CurId>
<Flags dt="i4">0</Flags>
<NumberOfSubjects>0</NumberOfSubjects>
<NumberOfSbjAudioItems>0</NumberOfSbjAudioItems>
<PlaylistDateStr>понедельник 14.07.14</PlaylistDateStr>
<RMT> <!-- Команды управления блока -->
<ELEM>
<ShName>5A</ShName> <!-- Короткое название -->
<Name>5_AMPV</Name> <!-- Полное название -->
<Cmd dt="b">53455420564D49582E53554223352E494E23312053746174653D4F4E0D0A53455420564D49582E53554223352E494E23322053746174653D4F46460D0A</Cmd> <!-- Данные команды -->
<AtStart dt="i4">1</AtStart> <!-- 1 - запуск по старту, 2 - по стопу -->
<Preroll dt="i4">0</Preroll> <!-- Упреждение -->
<ExtStr>{DST=AXIA_VMIX_5}</ExtStr> <!-- Дополнительные параметры (DST - устройство назначения) -->
</ELEM>
</RMT>
<ValStorage/>
</root>
</BLK_LIST>