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)
Новая версия 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
Забирайте в первом сообщении.....