Gisclub

4K | HDTV Ресиверы Enigma2 => Общие вопросы для всей линейки ресиверов на Enigma2 => Плагины => Тема начата: ака Учкун от 01 октября | 2014г. | 00:52:13

Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 01 октября | 2014г. | 00:52:13
ComponentsFromSkin

Посвящается труженикам, адаптирующим скины под имиджи.

Замучившись давече ковырянием в адаптированном мной под имидж VTI скине в поисках названий конвертеров и рендеров, примененных в скине и отсутствующих в имидже по умолчанию, решил создать плагинчик для автоматизации этого процесса.

Хотя конечно возможно, что в продвинутых прогах на виндовсе, например на нотепад++ может быть есть какие-то продвинутые возможности, но мне честно легче написать плагинчик, чем копаться в закрытых прогах на винде.

Да и потом, с этим плагином процесс автоматизирован.

Смысл плагина такой.
Создали мод какого-то скина, скажем под VTI, не надо терять время и нервы в попытках создать список конвертеров и рендеров, примененных в скине, и которые нужно выложить вместе со скином.
Достаточно будет взять файл вашего скина skin.xml и просто положив его в папку tmp вашего ресивера, зайти в плагин и нажать кнопку ОК.
Все. В папке темп будут созданы два файла под названиями converter и render, в которых соответственно будут перечислены конвертера и рендеры, которых вам нужно выложить вместе со скином.
При этом в этом списке не будет компонентов, которые идут по умолчанию уже в имидже VTI.

Потерял два дня на создание плагина, но зато теперь при выкладывании скина никаких ошибок с компонентами не будет.
У плагина-то нет человеческого фактора, он никогда не ошибается....

Вот например положил файл скина БлюШадов в папку темп, нажал кнопку ОК на плагине и получил через секунду вот такой список конвертеров и рендеров:

      <convert type="gExtraTuner">ServiceNumberName</convert>
      <convert type="VtiInfo">TempInfo</convert>
      <convert type="AlwaysTrue">
      <convert type="VtiInfo">FanInfo</convert>
      <convert type="ServiceOrbitalPosition2">
      <convert type="ServiceInfoEX">atype</convert>
      <convert type="ServiceInfoEX">vtype</convert>
      <convert type="gExtraInfo">TransponderType</convert>
      <convert type="gExtraTuner">TunerInfo</convert>
      <convert type="ExtraNumText">secHand</convert>
      <convert type="ExtraNumText">hourHand</convert>
      <convert type="ExtraNumText">minHand</convert>
      <convert type="EventName2">ExtendedDescription</convert>
      <convert type="EventName2">Name</convert>
      <convert type="EmuName">
      <convert type="CpuUsage">CPU: $0 (core 1: $1, core 2: $2)</convert>
      <convert type="ServiceName2">%s  %M</convert>
      <convert type="CaidInfo2">PID</convert>
      <convert type="CaidInfo2">CAID</convert>
      <convert type="ServiceName2">%n. %N</convert>
      <convert type="CaidInfo2">Default</convert>
      <convert type="ExtremInfo">Fta</convert>
      <convert type="CaidInfo2">Crd</convert>
      <convert type="CaidInfo2">Emu</convert>
      <convert type="CaidInfo2">Net</convert>
      <convert type="ExtremeInfo">BetaCrypt</convert>
      <convert type="ExtremeInfo">BetaEcm</convert>
      <convert type="ExtremeInfo">IrdCrypt</convert>
      <convert type="ExtremeInfo">IrdEcm</convert>
      <convert type="ExtremeInfo">SecaCrypt</convert>
      <convert type="ExtremeInfo">SecaEcm</convert>
      <convert type="ExtremeInfo">ViaCrypt</convert>
      <convert type="ExtremeInfo">ViaEcm</convert>
      <convert type="ExtremeInfo">NagraCrypt</convert>
      <convert type="ExtremeInfo">NagraEcm</convert>
      <convert type="ExtremeInfo">CrwCrypt</convert>
      <convert type="ExtremeInfo">CrwEcm</convert>
      <convert type="ExtremeInfo">NdsCrypt</convert>
      <convert type="ExtremeInfo">NdsEcm</convert>
      <convert type="ExtremeInfo">ConaxCrypt</convert>
      <convert type="ExtremeInfo">ConaxEcm</convert>
      <convert type="ProgressDiskSpaceInfo">MemTotal</convert>
      <convert type="ProgressDiskSpaceInfo">MemTotal,Full</convert>
      <convert type="ProgressDiskSpaceInfo">SwapTotal</convert>
      <convert type="ProgressDiskSpaceInfo">SwapTotal,Full</convert>
      <convert type="ProgressDiskSpaceInfo">FleshInfo</convert>
      <convert type="ProgressDiskSpaceInfo">Flesh,Full</convert>
      <convert type="ProgressDiskSpaceInfo">HddInfo</convert>
      <convert type="ProgressDiskSpaceInfo">HddInfo,Full</convert>
      <convert type="ProgressDiskSpaceInfo">UsbInfo</convert>
      <convert type="ProgressDiskSpaceInfo">UsbInfo,Full</convert>
      <convert type="ServiceName2">Reference</convert>
      <convert type="ServiceName2">Provider</convert>
      <convert type="ServiceName2">Name</convert>
      <convert type="ServiceName2">TpansponderInfo</convert>

    <widget source="session.CurrentService" render="PiconUni" path="piconProv" position="1087,556" zPosition="4" size="100,60" alphatest="on">
    <widget source="session.CurrentService" render="PiconUni" position="967,556" path="piconSat" size="100,60" zPosition="3" alphatest="blend">
    <widget source="global.CurrentTime" render="Watches" position="1104,521" size="54,54" zPosition="2" alphatest="on" foregroundColor="red">
    <widget source="global.CurrentTime" render="Watches" position="1116,533" size="30,30" zPosition="4" foregroundColor="white" alphatest="on">
    <widget source="global.CurrentTime" render="Watches" position="1109,525" size="45,45" zPosition="3" foregroundColor="white" alphatest="on">
    <widget source="session.CurrentService" render="PiconUni" path="piconProv" position="85,610" size="100,60" alphatest="blend" zPosition="3">
    <widget source="session.CurrentService" render="PicEmu2" position="208,610" size="100,60" transparent="1" alphatest="blend" zPosition="3" />
    <widget source="session.CurrentService" render="PiconUni" position="974,519" path="piconSat" size="100,60" zPosition="3" alphatest="blend">
    <widget source="global.CurrentTime" render="YOURSKINvolumeText" position="20,25" size="47,35" font="Regular;22" backgroundColor="black" foregroundColor="unffff" halign="center" valign="center" zPosition="8" transparent="1" />
    <widget position="90,200" size="100,60" source="ServiceEvent" path="piconProv" render="PiconUni" alphatest="on" zPosition="3" transparent="1">
    <widget source="ServiceEvent" render="PiconUni" position="90,100" path="piconSat" size="100,60" zPosition="3" alphatest="blend" transparent="1">
    <widget source="ServiceEvent" render="ScrollLabel" position="87,423" zPosition="1" size="509,113" font="Regular;17" transparent="1" backgroundColor="black" foregroundColor="grey">
    <widget source="ServiceEvent" render="NextEvent2" position="175,544" size="433,69" font="Named;18" backgroundColor="black" foregroundColor="undcaaaa" transparent="1" />
    <widget source="session.CurrentService" render="VtiImageVersion" position="127,110" size="650,40" zPosition="3" font="Regular;30" foregroundColor="unf0b400" backgroundColor="black" transparent="1" />
    <widget source="parent.ServiceEvent" render="EmptyEpg" position="0,3" size="132,32" font="Regular;13" halign="center" valign="top">

И уже не надо обрабатывать тысячи строк........

С помощью плагина у меня ушло всего несколько минут для подбора компонентов. Не говоря о том, что теперь есть полная уверенность, машина-то не ошибается.....

Вобщем плагин для моддеров скинов.
Хотя может быть полезен и пользователям.
Можно ведь на всякий случай перед установкой незнакомого скина, проверить наличие у себя нужных конвертеров и рендеров, примененных в скине.
Тем более для этого одной минуты достаточно....



История версий.

1.0
- создание плагина для VTI, который выдергивает из файла скина названия компонентов, которые не идут в имидже по умолчанию

1.1
- теперь плагин работает на трех имиджах OpenPli 4, BlackHole 2.x.x, VTI 7

1.2
- теперь в списках выводятся только названия компонентов, а не вся строчка
   примерно вот так:

/tmp/converter
ExtraNumText
ExtendedServiceInfo
SmartInfo
Bitrate2
ExtremeInfo
CaidInfo2
QuickEcmInfo
ServiceName2
ServiceOrbitalPosition2
RefString
CoolConverter
EMCClockToText
EMCServicePosition
EMCEventName
EMCServiceTime
EMCMovieInfo

/tmp/renderer
Watches
VVolumeText
ScrollLabel
PiconUni
NextEvent2
Reference
CoolPicon
CoolPico
RollerCharLCD
EpgShortTitle





(https://s004.radikal.ru/i206/1409/04/21776e086895.jpg)



(https://s013.radikal.ru/i324/1410/e3/09a078c54202.jpg)



(https://s004.radikal.ru/i207/1410/02/fc56297da38e.jpg)





Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: Igornord от 01 октября | 2014г. | 07:28:32
При этом в этом списке не будет компонентов, которые идут по умолчанию уже в имидже VTI.

А настраиваемым сделать можно? Например что-бы прямо в первых строках плагина просто поставить метку - контролировать будем сейчас для Open-PLi например. Либо как-то спросить перед запуском - по чему контролировать - по VTI например или по Open-Pli. Ну вы поняли о чем я.
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 01 октября | 2014г. | 08:13:18
При этом в этом списке не будет компонентов, которые идут по умолчанию уже в имидже VTI.

А настраиваемым сделать можно? Например что-бы прямо в первых строках плагина просто поставить метку - контролировать будем сейчас для Open-PLi например. Либо как-то спросить перед запуском - по чему контролировать - по VTI например или по Open-Pli. Ну вы поняли о чем я.

Конечно же можно.
Просто в меню плагина сделаю выбор имиджа.
В данный момент-то плагин заточен только под VTI.
В таком случае, так как сам нахожусь на имидже VTI, у меня просьба к пользователям BlackHole и OpenPli4, и если есть потребность к пользователям других имиджей тоже.
Дайте пожалуйста мне список конвертеров и рендеров, по умолчанию присутствующих на чиcтых имиджах.
Только пожалуйста, дайте точный список и конечно же только на самых свежих версиях этих имиджей....

Вы поняли, это мне нужно, чтобы исключить их из проверки...

Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: martina3 от 01 октября | 2014г. | 10:11:35
Уважаемый ака Учкун !
Все что Вы делаете для нас , простых пользователей, это что-то. Огромное Вам спасибо за Ваш труд.
Выкладываю список компонентов из сегоднешнего обновления, взято из чистой сборки Опен Пли 4.
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 01 октября | 2014г. | 10:24:19
Спасибо, ожидаю еще блекхоловские потроха.....
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: Марчелла от 01 октября | 2014г. | 11:20:09
ака Учкун вот по вашей прозьбе для пользователей  BlackHole-2.1.​1 так же взято с чистой зборки. :drinks:
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 01 октября | 2014г. | 14:49:44

Выложил в первом сообщении новую версию 1.1, которая теперь перебирает компоненты из скинов для трех имиджей

OpenPli 4
BlackHole 2.x.x
VTI 7


Ваш имидж выбираете в меню плагина......


(https://s013.radikal.ru/i324/1410/e3/09a078c54202.jpg)


Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 11 октября | 2014г. | 02:24:51
А у меня тоже были перерывы в "ковырянии" скинов.
Никогда не поздно вновь начать))))........
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: Harmon555 от 11 октября | 2014г. | 09:46:12
Вообще-то эта "вещь" не для "ковыряния",а для беспроблемной установки неизвестного скина :)
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: mcbis от 11 октября | 2014г. | 10:01:34
ака Учкун-снимаю шляпу перед твоим мастерством.Такого плагина очень нехватало.Спасибо :drinks: :drinks: :drinks:
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: orlov от 11 октября | 2014г. | 10:33:27
Вообще-то эта "вещь" не для "ковыряния",а для беспроблемной установки неизвестного скина :)
Да,но при условии,что неизвестный скин устанавливается на чистый имидж!
А для любителей иметь большое количество скинов в имидже? ? ? ?
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 16 октября | 2014г. | 15:40:57
Новая версия 1.2

Теперь в списках необходимых компонентов указывается не строчка с конвертером или рендером, а только само название компонента.

Вот пример.

/tmp/converter
ExtraNumText
ExtendedServiceInfo
SmartInfo
Bitrate2
ExtremeInfo
CaidInfo2
QuickEcmInfo
ServiceName2
ServiceOrbitalPosition2
RefString
CoolConverter
EMCClockToText
EMCServicePosition
EMCEventName
EMCServiceTime
EMCMovieInfo

/tmp/renderer
Watches
VVolumeText
ScrollLabel
PiconUni
NextEvent2
Reference
CoolPicon
CoolPico
RollerCharLCD
EpgShortTitle

Забирайте в первом сообщении.....


Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 17 октября | 2014г. | 16:19:09
Новая версия 1.3

По просьбе одного из пользователей форума ОпенПли теперь выводится четыре файла в папке tmp со списком компонентов.
В двух файлах converter и renderer как и раньше будут отсутствующие в имидже по умолчанию компоненты.
А в двух других файлах converterneed и rendererneed будут перечислены компоненты, конкретно отстутствующие в вашем имидже на этот момент......


Забирайте в первом сообщении.....



Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: 024730 от 29 ноября | 2014г. | 18:31:05
Раз есть плагин который подскажет какого компонента нет.,то может нужен такой же для работы с изображениями в скине....
Т.е. проверял skin.xml,и выдавал типа лишнее или не хватает,а особенно интересует удаление не используемого .png.
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: vaha555 от 30 ноября | 2014г. | 06:54:28
Раз есть плагин который подскажет какого компонента нет.,то может нужен такой же для работы с изображениями в скине....
Т.е. проверял skin.xml,и выдавал типа лишнее или не хватает,а особенно интересует удаление не используемого .png.
...и колера также желательно  :yes4: :drinks:
Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: ака Учкун от 30 ноября | 2014г. | 07:14:29
Раз есть плагин который подскажет какого компонента нет.,то может нужен такой же для работы с изображениями в скине....
Т.е. проверял skin.xml,и выдавал типа лишнее или не хватает,а особенно интересует удаление не используемого .png.

Идея хорошая и сделать совсем несложно, простой метод os.walk справится с этим.
Но реализация в плагине представляет сложности.
В том смысле что не во всех же скинах, то есть в файле скин.хмл присутствует название скина.
Как узнать название скина, чтобы просканировать директорию?
Городить интерфейс с указанием пути к скину считаю для такой мелочной задачи геморроем.
Лучше и такую задачу нужно выполнять на компе.
Думаю включить такую функцию в программу ImageSkinAdapter.

Правда пользователю придется кое-какие действия выполнить.
Например в проге в папке темп будет директория под названием skin.
Туда в эту папку и нужно будет распаковать нужный скин.
То есть не папку со скином, а все что в папке внутри скина.
Тогда по клику по подпункту меню в программе будет просканирована эта папка и из файла скин.хмл будет произведен анализ насчет отсутствия файлов и насчет лишних файлов.

Но это наверно, также и колоры, что предложил vaha555, сделаю в следующей версии проги ImageSkinAdapter.
Давно руки чешутся выложить готовую для VTI версию, но никак не могу закончить отладку программы, так как семья не давала мне длительного доступа к ресиверу. Наконец сегодня таковой доступ получил и если успею отладить, выложу сегодня эту версию, а в следующей уже учту эти пожелания......


Название: ComponentsFromSkin - автосоздание списка компонентов из скина
Отправлено: 024730 от 30 ноября | 2014г. | 10:38:41
Правда пользователю придется кое-какие действия выполнить.

думаю не проблема.
ждем.
Спасибо! :drinks: