• Exclusive Or (Исключающее ИЛИ) – присваивает GPRM результат побитового Исключающего ИЛИ заданной величины и GPRM, двух GPRM или GPRM и SPRM.
Глава 13
Логические операции
DVD-плееры хранят значения параметров GPRM и SPRM в своих системных регистрах. Каждый регистр состоит из двух байтов, то есть значения параметров занимают 16 бит. Каждый бит может иметь значение 1 (Включен) или 0 (Выключен). Можно сказать, что каждый параметр GPRM или SPRM состоит из строки битов.
Программа Scenarist позволяет записывать на DVD-диске команды, которые будут исполняться DVD-плеером, для сравнения величин GPRM или SPRM и использовать булеву логику для получения результирующего значения. Это результирующее значение может быть либо нулем, что соответствует ложному сравнению, либо ненулевой величиной, которая обозначает истинное сравнение. В зависимости от результата сравнения DVD-плеер может либо выполнить команду, либо пропустить ее.
Например, шестой бит в параметре SPRM (2) определяет, будет ли отображаться на экране subpicture. Единичное значение включает отображение subpicture на экране, а при нулевом значении subpicture скрывается. Пользователь может использовать операции логического сравнения значения 1000000 с параметром SPRM (имеющим значение 1011011) для определения отображения subpicture на экране. Логический оператор & является оператором булевой логики и соответствует инструкции И. Каждый бит в первой строке сравнивается с таким же битом во второй строке в соответствии со следующими правилами:
• 0 & 0 = 0 (False – ЛОЖЬ);
• 0 & 1 = 0 (False – ЛОЖЬ);
• 1 & 0 = 0 (False – ЛОЖЬ);
• 1 & 1 = 1 (True – ИСТИНА).
Чтобы получить ненулевую величину, нужно, чтобы оба бита с одинаковыми порядковыми номерами имели единичное значение. Так, если значение параметра SPRM, равное 10110011, сравнить с величиной 10000000, то будет получен результат 10000000, который соответствует логическому значению True (Истина).
В этом случае результат True (ИСТИНА) означает, что поток subpicture включен и будет отображаться на экране. Если седьмой бит параметра SPRM (2) имеет другое значение, то результат будет нулевым, что соответствует логическому значению False (ЛОЖЬ). В программе Scenarist приходится оперировать с десятеричными величинами, поэтому вышеприведенный пример означает, что производится сравнение значения параметра SPRM 91 со значением 64.
Создание процедуры логического сравнения
Для следующего примера потребуется создать главное меню с тремя кнопками, которые получат обозначения Кнопка 1, Кнопка 2 и Кнопка 3, а также три коротких видеофрагмента.
Этот пример покажет, как можно создать меню, в котором зритель должен активировать первую и вторую кнопки, прежде чем он сможет активировать третью кнопку. Для этого нужно добавить кнопки, соединенные с тремя видеофрагментами (Video 1, Video 2 и Video 3), следует присвоить параметры GPRM кнопкам Кнопка 1 и Кнопка 2, связать операцию сравнения с кнопкой Кнопка 3, а также добавить команду Post к каждому титулу видеофрагментов, чтобы по окончании воспроизведения управление передавалось обратно в главное меню.
Связывание подсветок кнопок с тремя видеопотоками
Для связывания кнопок с тремя титулами нужно в области авторинга редактора сценариев добавить папку языка к видеоменеджеру, а затем переместить подготовленное меню на эту папку. Затем требуется добавить титулы Title_1, Title2 и Title_3 к VTS1. На них нужно переместить видеоматериалы Fragmentl, Fragment2 и Fragment3. Следует удостовериться, что каждому титулу назначены различные видеоматериалы (см. рис. 13.1).
Рис. 13.1. Сценарий с добавленными PGC меню и трех фрагментов видеоматериала.
Нужно выбрать главное меню и открыть окно моделирования. В нем нужно нарисовать контуры подсветок трех кнопок и выровнять их по вертикали. В этом примере такое выравнивание применяется из-за того, что кнопки расположены друг под другом (см. рис. 13.2).
Рис. 13.2. Пример разрабатываемого меню.
Затем следует выполнить команду меню Tools ? Auto Route (Инструменты ? Автоматическая расстановка связей) и добавить связи между кнопками. Также нужно протянуть линию связи от флага Btns создаваемого меню к титульной папке Title_1.
Если PGC свернута, то флаг Btns отображается у иконки самой PGC. Если же PGC развернута, то флаг отображается у иконки меню. В открывшемся диалоговом окне нужно выбрать кнопку Кнопка 1.
Связь будет сформирована и отображена в виде розовой стрелки, соединяющей объекты. Флаг Btns будет отображен с желтой заливкой.
То же самое нужно сделать для кнопок Кнопка 2 и Кнопка 3, соединяя их с титульными папками Title2 и Title3 соответственно. По окончании работы должно существовать три связи между меню и тремя титульными папками (рис. 13.3).
Рис. 13.3. Расставленные связи меню.
Для установки значений параметров GPRM нужно в области авторинга редактора сценариев дважды щелкнуть на флаге Post PGC Fragment1. Откроется окно моделирования на закладке PGC Commands (Команды PGC). В списке меню Pre/Post/Cell, который находится прямо под закладкой PGC Commands (Команды PGC), нужно выбрать значение Post. Затем следует сбросить флажок No Command (Нет команды). В результате будет отображено меню Command (Команда). В нем нужно выбрать значение Set T o GPRM (Установить GPRM) и использовать переключатель Immediate. Меню GPRM будет заменено текстовым полем в правой части секции окна (рис. 13.4).
Рис. 13.4. Операция присваивания значения регистру.
Следует убедиться, что в качестве оператора используется Assign. Также нужно проверить, что в меню GPRM выбрано значение GPRM0.
Теперь нужно ввести значение 1 в текстовое поле, располагающееся в правой части секции. Выполнение данного оператора присваивания приведет к занесению в параметр GPRM0 значения 1.
Эти действия нужно повторить для видеофрагмента Fragment2, присваивая значение 1 параметру GPRM1.
Для создания операции логического сравнения нужно в области авторинга редактора сценариев дважды щелкнуть на флаге Btns главного меню. В результате откроется окно моделирования на закладке Button Commands (Команды кнопок).
В списке команд нужно выбрать команду перехода на третий видеофрагмент и установить флажок Compare. После этого следует выбрать переключатель GPRM. В левой части окна должен быть выбран параметр GPRM0.
В правой части должен быть выбран параметр GPRM1. На самом деле, если поменять местами параметры GPRM0 и GPRM1, то ничего страшного не произойдет (рис. 13.5). И наконец, нужно установить операцию логического сравнения Bitwise Compare.
Рис. 13.5. Задание операции логического сравнения.
Команду Post нужно добавить к каждому титулу, чтобы вернуть управление в меню. Для этого в области авторинга редактора сценариев нужно провести линию связи от флага Post титула Title_1 к PGC главного меню.
В появившемся диалоговом окне потребуется указать тип создаваемой связи. Следует выбрать значение Add to the end of the post command list (Добавить в конец списка команд) и нажать кнопку OK.
Эти действия нужно повторить для титулов Title_2 и Title_3.
И на этом – все! Теперь осталось лишь проверить работоспособность созданного примера.