Автор vlamo.
Плагин Record Infobar - это такое себе приложение к основному инфобару - дополнительный расширяемый выпадающий или всплывающий (как хотите) список производимых текущих записей, который выводится на экран вместе с основным инфобаром.
Если на данный момент производимых записей нет, то список на экране не отображается, разумеется.
*********************************************************************************************
Установка
...пакет из архива устанавливается как обычно, любым удобным для вас способом...
Настройка
Menu -> Setup -> System -> Record Infobar
Здесь вы можете:
* включить/отключить Record Infobar (по умолчанию отключен)
* настроить позицию Record Infobar на экране по ocи X и Y (по умолчанию X=60,Y=360)
* настроить направление расширения Record Infobar (по умолчанию вверх)
* задать постоянное переключение на записываемый сервис (experimental option)
Настройка направления требует дополнительного пояснения. Она нужна для правильной ориентации позиции окна (screen) на экране. Если задано направление:
* down (вниз), то базовыми координатами окна являются X и Y (position="X,Y")
* top (вверх), то базовыми координатами окна являются X и Y+ВЫСОТА (position="X,Y" size="ШИРИНА,ВЫСОТА").
(position="X,Y" и size="ШИРИНА,ВЫСОТА" задаются непосредственно в скине в секции описания окна, см.ниже - Дополнительная подгонка под свой скин)
После сохранения измененных настроек, всегда необходимо делать Restart GUI через меню, чтобы настройки вступили в силу.
Дополнительная подгонка под свой скин
Этот пункт необязательный, но очень важный, т.к. по умолчанию окно Record Infobar'а довольно примитивное, но его можно приукрасить, а также подогнать по размерам и позиции под свой текущий скин. Опишу, как я это сделал у себя...
В своем текущем скине (файл /usr/share/enigma2/МОЙ_СКИН/skin.xml) я добавил новую секцию под именем "RecInfoBar" где-нибудь рядом с секцией основного инфобара "InfoBar":
<screen name="RecInfoBar" position="196,380" size="320,35" zPosition="-1" backgroundColor="transparent" flags="wfNoBorder" title="Records Info" >
</screen>
<screen name="InfoBar" position="50,415" size="615,145" title="InfoBar" zPosition="0" backgroundColor="transparent" flags="wfNoBorder">
....
....
....
</screen>
Здесь для лучшего понимания я вкратце пройдусь по некоторым важным атрибутам:
* position - отвечает за позицию верхнего левого угла окна на экране по оси X и по оси Y (position="X,Y")
* size - отвечает за размер окна (size="ШИРИНА,ВЫСОТА")
* zPosition - задает очередность прорисовки окна, чем значение меньше, тем окно раньше прорисовывается на экране. Здесь стоит заметить, если любое другое окно имеет большее значение zPosition и координаты этого окна пересекают координаты вашего окна, то на экране вы свое окно можете не увидеть или увидеть, но лишь частично.
* backgroundColor - отвечает за цвет фона окна
* flags - может иметь пока только одно значение wfNoBorder, которое говорит, что окно надо прорисовывать без границ (бордюров) и без заголовка
* title - название окна, которое выводится в заголовке.
Все эти атрибуты, за исключением двух последних (flags и title), могут применяться не только к окнам (screen), но также и к виджетам (widget).
Хорошо, теперь вернемся к нашему окну...
Обратите свое внимание, что наш скрин (screen) обязательно должен быть без границ окна (flags="wfNoBorder").
Скрин на экране должен выводиться как-бы ниже (из-под) основного инфобара, поэтому zPosition я установил на один меньше (zPosition="-1"), чем zPosition основной инфобара (zPosition="0").
Также я сразу задал скрину прозрачный цвет фона (backgroundColor="transparent").
Позицию и размер скрина сделал на свой вкус, где бы я хотел его видеть на экране, а именно, сразу над основным инфобаром. Для этого я от позиции основного InfoBar (position="50,415") по оси Y, которая равна 415, отнял высоту RecInfoBar (size="320,35"), которая равна 35, и получил 415 - 35 = 380 (position="196,380").
У плагина есть четыре основных виджета (widget):
* chNum - отображает номер записываемого(ых) канала(ов) в букетах
* chName - отображает название записываемого(ых) канала(ов)
* chProv - отображает имя провайдера записываемого(ых) канала(ов) (добавлен в 1.0-rc3 версии)
* chBouq - отображает имя букета записываемого(ых) канала(ов) (добавлен в 1.0-rc4 версии)
* recName - отображает название записи(ей) (добавлен в 1.0-rc7 версии)
* chTuner - отображает букву тюнера (A,B,C,etc.) записываемого(ых) канала(ов) (добавлен в 1.0-rc7 версии)
* timelen - отображает время записи(ей) в формате МИНУТЫ:СЕКУНДЫ
Виджет chName является обязательным, все остальные можно добавлять на свое усмотрение.
Поэтому я далее в скрин добавил только три основных виджета (chProv я не добавлял):
<screen name="RecInfoBar" position="196,380" size="320,35" zPosition="-1" backgroundColor="transparent" flags="wfNoBorder" title="Records Info" >
<widget name="chNum" position="30,10" size="40,20" zPosition="1" font="Regular;18" halign="right" transparent="1" />
<widget name="chName" position="80,10" size="160,20" zPosition="1" font="Regular;18" halign="left" transparent="1" />
<widget name="timelen" position="245,10" size="60,20" zPosition="1" font="Regular;18" halign="right" transparent="1" />
</screen>
Здесь следует обратить свое внимание, что основные виджеты должны иметь:
* одинаковый шрифт с одинаковым размером (у меня - font="Regular;18")
* позиция относительно оси Y должна быть у всех одинакова (у меня - 10)
Все остальные атрибуты виджетов настраиваются опционально на свой вкус.
Далее, добавил фоновую картинку, которую предварительно сделал сам в стиле своего скина:
<ePixmap pixmap="МОЙ_СКИН/rec_ib-fs8.png" position="0,0" zPosition="-1" size="320,120" />
Поскольку картинка фоновая и должна распологаться под всеми другими компонентами окна, поэтому zPosition я установил в -1 (zPosition="-1"). И обратите внимание на путь к картинке - "МОЙ_СКИН/rec_ib-fs8.png", - это значит, что она у меня лежит в директории моего текущего скина - /usr/share/enigma2/МОЙ_СКИН .
Ещё одно замечание по фоновой картинке: высоту ее расчитывайте так, чтобы ее хватило на максимальное число записей. Например, у меня высота скрина 35 пикселов, а высота картинки - 120 пикселов, чтоб хватило, если будет идти 7-8 записей одновременно (такое бывает вообще?).
Также, для наглядности я добавил в окно стандартную иконку в виде мигающего красного кружка:
<widget source="session.RecordState" render="Pixmap" pixmap="skin_default/icons/record.png" position="18,13" zPosition="2" size="14,14" alphatest="on" >
<convert type="ConditionalShowHide">Blink</convert>
</widget>
И вот, что у меня получилось в целом:
<screen name="RecInfoBar" position="196,380" size="320,35" zPosition="-1" title="Records Info" backgroundColor="transparent" flags="wfNoBorder" >
<ePixmap pixmap="Nemesis.Blueline.Single/rec_ib-fs8.png" position="0,0" zPosition="-1" size="320,120" />
<widget source="session.RecordState" render="Pixmap" pixmap="skin_default/icons/record.png" position="18,13" zPosition="2" size="14,14" alphatest="on" >
<convert type="ConditionalShowHide">Blink</convert>
</widget>
<widget name="chNum" position="30,10" size="40,20" zPosition="1" font="Regular;18" halign="right" transparent="1" />
<widget name="chName" position="80,10" size="160,20" zPosition="1" font="Regular;18" halign="left" transparent="1" />
<widget name="timelen" position="245,10" size="60,20" zPosition="1" font="Regular;18" halign="right" transparent="1" />
</screen>
Сохранил все изменения в файле, перезагрузил Энигму2 и на экране во время записи это выглядит так, как вы видите на картинках выше. Мне такой вид пойдет, ну а вы можете это всё сделать на свой вкус и под свой любимый скин. Есть только одна рекомендация: Распологайте все компоненты (виджеты) и задавайте размер окна как-бы только под одну запись, всё остальное сделает плагин.
********************************************************************************************************
С разрешения автора,я добавил в выложенную здесь версию кое-какие,на мой взгляд нужны,вещи.
Изменена опция позволяющая всегда переключатся на записываемый канал.
Добавлены варианты:
1) по умолчанию,стандартное поведение при начале записи по таймеру.
2) всегда переключатся,плюс опциональный вывод сообщения при переключении.
3)спросить пользователя,вывод сообщения о возможности ручного переключения на экран за 20 секунд до начала записи по таймеру,плюс опциональное автоматическое действие через 20 секунд(переключать/не переключать).
Если вы выбрали вариант №3,то значение в меню-настройка-система-параметры записей-Записи имеют приоритет,автоматически станет-Да.Это сделано во избежания накладки,с выводимым стандартным сообщением Е2.
Надеюсь понятно,зачем надо переключать на записываемый канал.Это если у вас нет мультилогина или своей оф.карты.Думаю для двухтюнерников такия опция никогда не будет лишней.Каждый теперь может выбрать нужный ему вариант.
На этом форуме много владельцев двухтюнерников,поэтому и выложил здесь плагин,для обкатки идеи.
Жду от вас вопросов,замечаний,пожеланий.Может есть какие то ошибки.
Появятся какие то предложения,сделаю новую версию.