28 марта | 2025г. | 19:04:58


АвторТема: Mod Multi QuickButton-програмируем кнопки оригинального пульта  (Прочитано 92684 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн ака УчкунАвтор темы

  • Рыцарь Джедай
  • *****
  • Забанен!
  • Сообщений: 1098
  • Поблагодарили: 4787
  • Уважение: +49
Наконец появилось время. Продолжим.

ID - то есть идентифкационные имена всех кнопок своего пульта мы уже знаем и надеюсь их соответствие записали куда-нибудь.
И самое главное, поняли что при нажатии на кнопку имидж определяет это нажатие и обращается только к определенному ID.

Вот только эти самые ID и нужно ввести теперь в плагин.

Лучше всего это нужно делать с уже установленным плагином в имидж.
Но перед установкой плагина (того самого, о котором было сказано выше), так как с большой вероятностью кеймап, вшитый в плагин не подойдет вашему имиджу, вам нужно из вашего куда-нибудь на комп скопировать кеймап.хмл, то есть вот этот файл
/usr/share/enigma2/keymap.xml

В этот момент плагин ExtraChannelSelection должен быть удален!
Его можно будет установить после установки мультиквикбаттона и манипуляций с ним......

На компе из этого файла создаем копию и называем копию keymap_backup_mqb.xml и далее ничего с ним не делаем.
А вот с самим файлом кеймап.хмл поработаем.
Закомментируем все действия в секциях (если они есть в вашем кеймапе) "InfobarEPGActions", "InfobarInstantRecord", "InfobarExtensions", "InfobarChannelSelection", "InfobarActions", "InfobarAudioSelectionActions", "InfobarTimerButtonActions", "InfobarVmodeButtonActions", "InfobarSubtitleSelectionActions", "InfobarTimeshiftActions", "InfobarTeletextActions", "InfobarRdsActions".

Например как я закомментировал все действия в одном из этих разделов с помощью тех же знаков комментария

Спойлер   :
   <map context="InfobarEPGActions">
      <!--<key id="KEY_INFO" mapto="showEventInfo" flags="b" />
      <key id="KEY_INFO" mapto="showEventInfoPlugin" flags="l" />
      <key id="KEY_EPG" mapto="showEventInfoSingleEPG" flags="b" />
      <key id="KEY_EPG" mapto="showEventGuidePlugin" flags="l" />-->
   </map>

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

После этого устанавливаем в имидж только через телнет, забросив в папку темп, этот пакет с плагином (вне зависимости какой у вас имидж)

enigma2-plugin-extensions-multiquickbutton-for-hdmu-mod_aka_Uchkun_1.0_all.ipk

И после этого не перегружаясь, сразу забрасываем в имидж по пути /usr/share/enigma2/ те самые два файла с компа (keymap_backup_mqb.xml и keymap.xml) с заменой существующих файлов.
После этого перегружаем энигму.

Некоторые кнопки на вашем пульте уже можно будет задействовать.

И начнем вводить ID на неработающие кнопки вашего пульта в плагин.

Продолжение следует......


Добавлено  26 октября | 2013г. | 20:13:51   
Теперь повнимательнее.
Чтобы вы невслепую проводили следующие манипуляции с файлами плагина мультиквикбаттон (без этого никак) сначала попытаюсь объяснить назначение файла кеймап.хмл, который находится в папке с плагином и в чем отличие от кеймап.хмл системного (который здесь /usr/share/enigma2/).
Вобщем немного теории.

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

Соответственно, назначение кеймапа в папке плагина, указать системе какое действие в режиме просмотра ТВ запрограммировано на определенную кнопку. То есть вот кеймап.хмл, вшитый по умолчанию в плагин, который вы только что установили.

<keymap>
   <map context="GlobalQuickButtonActions">
      <key id="KEY_VOLUMEUP" mapto="mqb_volup" flags="mr" />
      <key id="KEY_VOLUMEDOWN" mapto="mqb_voldown" flags="mr" />
      <key id="KEY_MUTE" mapto="mqb_mute" flags="mr" />
      <key id="KEY_POWER" mapto="mqb_power" flags="b" />
      <key id="KEY_POWER" mapto="mqb_power_long" flags="l" />
   </map>
   <map context="QuickButtonActions">
      <key id="KEY_RED" mapto="red" flags="b" />
      <key id="KEY_RED" mapto="red_long" flags="l" />
      <key id="KEY_GREEN" mapto="green" flags="b" />
      <key id="KEY_GREEN" mapto="green_long" flags="l" />
      <key id="KEY_YELLOW" mapto="yellow" flags="b" />
      <key id="KEY_YELLOW" mapto="yellow_long" flags="l" />
      <key id="KEY_BLUE" mapto="blue" flags="b" />
      <key id="KEY_BLUE" mapto="blue_long" flags="l" />
      <key id="KEY_ANGLE" mapto="vformat" flags="m" />
      <key id="KEY_ANGLE" mapto="vformat_long" flags="l" />
      <key id="KEY_SLOW" mapto="sleep" flags="m" />
      <key id="KEY_SLOW" mapto="sleep_long" flags="l" />
      <key id="KEY_MODE" mapto="tvradio" flags="m" />
      <key id="KEY_MODE" mapto="tvradio_long" flags="l" />
      <key id="KEY_SCREEN" mapto="resolution" flags="m" />
      <key id="KEY_SCREEN" mapto="resolution_long" flags="l" />
      <key id="KEY_REWIND" mapto="rewind" flags="m" />
      <key id="KEY_FASTFORWARD" mapto="fastforward" flags="m" />
      <key id="KEY_PLAY" mapto="play" flags="m" />
      <key id="KEY_PREVIOUS" mapto="previous" flags="mr" />
      <key id="KEY_NEXT" mapto="next" flags="mr" />
      <key id="KEY_RECORD" mapto="record" flags="m" />
      <key id="KEY_RECORD" mapto="record_long" flags="l" />
      <key id="KEY_PAUSE" mapto="pause" flags="m" />
      <key id="KEY_PAUSE" mapto="pause_long" flags="l" />
      <key id="KEY_STOP" mapto="stop" flags="m" />
      <key id="KEY_STOP" mapto="stop_long" flags="l" />
      <key id="KEY_SELECT" mapto="select" flags="m" />
      <key id="KEY_SELECT" mapto="select_long" flags="l" />
      <key id="KEY_HELP" mapto="help" flags="m" />
      <key id="KEY_HELP" mapto="help_long" flags="l" />
      <key id="KEY_MEMO" mapto="recall" flags="m" />
      <key id="KEY_MEMO" mapto="recall_long" flags="l" />
      <key id="KEY_UP" mapto="cross_up" flags="mr" />
      <key id="KEY_DOWN" mapto="cross_down" flags="mr" />
      <key id="KEY_LEFT" mapto="cross_left" flags="mr" />
      <key id="KEY_RIGHT" mapto="cross_right" flags="mr" />
      <key id="KEY_OK" mapto="ok" flags="m" />
      <key id="KEY_HOME" mapto="home" flags="b" />
      <key id="KEY_HOME" mapto="home_long" flags="l" />
      <key id="KEY_TEEN" mapto="pminus" flags="m" />
      <key id="KEY_TEEN" mapto="pminus_long" flags="l" />
      <key id="KEY_TWEN" mapto="pplus" flags="m" />
      <key id="KEY_TWEN" mapto="pplus_long" flags="l" />
      <key id="KEY_FAVORITES" mapto="favorites" flags="m" />
      <key id="KEY_FAVORITES" mapto="favorites_long" flags="l" />
      <key id="KEY_EPG" mapto="epg" flags="m" />
      <key id="KEY_EPG" mapto="epg_long" flags="l" />
      <key id="KEY_DIRECTORY" mapto="directory" flags="m" />
      <key id="KEY_DIRECTORY" mapto="directory_long" flags="l" />
      <key id="KEY_PAGEUP" mapto="channelup" flags="m" />
      <key id="KEY_PAGEDOWN" mapto="channeldown" flags="m" />
      <key id="KEY_OPTION" mapto="option" flags="m" />
      <key id="KEY_OPTION" mapto="option_long" flags="l" />
      <key id="KEY_GOTO" mapto="goto" flags="m" />
      <key id="KEY_GOTO" mapto="goto_long" flags="l" />
      <key id="KEY_SUBTITLE" mapto="subtitle" flags="m" />
      <key id="KEY_SUBTITLE" mapto="subtitle_long" flags="l" />
      <key id="KEY_ZOOM" mapto="zoom" flags="m" />
      <key id="KEY_ZOOM" mapto="zoom_long" flags="l" />
      <key id="KEY_TEXT" mapto="text" flags="m" />
      <key id="KEY_TEXT" mapto="text_long" flags="l" />
   </map>
</keymap>

а) допустим в вашем пульте есть кнопка под названием PORTAL, и вы на предыдущем этапе выяснения ID из имиджа узнали что этой кнопке соответствует ну к примеру ID - "KEY_GOTO".
В таком разе при нажатии на эту кнопку (в режиме просмотра ТВ только) имидж не найдя в системном кеймапе соответствия (закомментировано нами, даже если есть) найдет этот самый id="KEY_GOTO" в кеймапе мультиквикбаттона и узнает, что этой кнопке предписано действие goto, а что это за действие будет искать уже в самом плагине.

Маленький нюанс, вот это самое действие goto, вернее именно название оно придумано автором плагина (далее в плаге на это "слово" привязано действие), то есть необязательно совпадение id-название и действия, То еть в данном случае они совпадают, но могли и не совпасть.....

б) допустим вы узнали что нет, кнопке PORTAL соответствует ID "KEY_WWW" или "KEY_PORTAL" или что-то еще, которого нет среди ID в мультиквикбаттоновском кеймапе.
Вот тода и придется нам добавить этот ID в кеймап.
Причем можно добавить его как путем добавления новой строчки, так и путем просто замены другого ID  незадейственного в вашем пульте.

Примеры обоих случаев.

1. Допустим на вашем пульте есть кнопка под названием SLEEP которому как вы уже узнали соответствует скажем одноименный "KEY_SLEEP".
Такого ID нет в данном кеймапе, но зато есть ID "KEY_SLOW" на который подвешено действие похожее "sleep".
В таком случае смотрим, если в нашем пульте нет никакой кнопки с ID "KEY_SLOW" со спокойной душой заменяем в кеймапе слово KEY_SLOW на слово KEY_SLEEP.
То есть было так
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.стало так
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.И в таком случае, с этой кнопкой более ничего не надо будет делать.
Единственно нужно залезть в MultiQuickButton.py и в его коде найти класс MultiQuickButton(Screen) и там посмотреть название кнопки в окне Мультиквикбаттона.
То есть какое название подвешено на действие sleep.
Нашли строчки
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.и поняли, что кнопка в меню мультиквикбаттона также называется Sleep и Sleep длинное нажатие
И если теперь перегрузимся и откроем меню плагина (Главное меню-Быстрое нажатие клавиш) и подвесим какое-нибудь действие на эту кнопку, это действие сразу будет выполняться по нажатию этой кнопки......

2. Вот точно также можно сменить любой незадействованный ID в кеймапе.
Если сумели определить например, что строчки в кеймапе плагина

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.для вашего пульта точно не действуют, то можете использовать эти строчки для незадействованной кнопки.
Скажем на пульте кнопка VIDEO не работает.
Выяснено что ID этой кнопки скажем "KEY_VID".
Тогда значит просто меняем название KEY_MODE на KEY_VID
то есть стало так
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.(конечно можно и название действия "tvradio" можете заменить на более смысловое в данном случае скажем "video" но тогда слишком много нужно будет менять в плагине)
Далее смотрим в файле MultiQuickButton.py в классе MultiQuickButton(Screen) смотрим какое название в меню плагина подвешено на это действие "tvradio" и находим что

Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.То есть кнопка в меню плагина названа TV/RAD
Переназовем на нужное нам VIDEO, то есть вот так
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.И в меню плагина (после перегрузки) у вас появятся кнопки VIDEO и VIDEO длинное нажатие.....

3. Теперь случай, когда вам нужно будет просто добавить новый ID какой-нибудь вашей кнопки.
Тогда в кеймап.хмл (в любое место между двумя кнопками) добавьте ID для короткого и для длинного нажатия и назначьте на это ID действие по смыслу. Называйте этого действия придумайте сами, главное чтобы вам было понятно.
Например допустим у вас на пульте есть кнопка под названием MEDIA которому соответствует ID допустим "KEY_F".
Добавляем короткое и длинное нажатие для этой кнопки в кеймап, приняв решение назвать действие "media"
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.конечно добавив этот вод в кеймап.хмл в любое место между ключами, например так

<keymap>
   <map context="GlobalQuickButtonActions">
      <key id="KEY_VOLUMEUP" mapto="mqb_volup" flags="mr" />
      <key id="KEY_VOLUMEDOWN" mapto="mqb_voldown" flags="mr" />
      <key id="KEY_MUTE" mapto="mqb_mute" flags="mr" />
      <key id="KEY_POWER" mapto="mqb_power" flags="b" />
      <key id="KEY_POWER" mapto="mqb_power_long" flags="l" />
   </map>
   <map context="QuickButtonActions">
      <key id="KEY_RED" mapto="red" flags="b" />
      <key id="KEY_RED" mapto="red_long" flags="l" />
      <key id="KEY_GREEN" mapto="green" flags="b" />
      <key id="KEY_GREEN" mapto="green_long" flags="l" />
      <key id="KEY_YELLOW" mapto="yellow" flags="b" />
      <key id="KEY_YELLOW" mapto="yellow_long" flags="l" />
      <key id="KEY_BLUE" mapto="blue" flags="b" />
      <key id="KEY_BLUE" mapto="blue_long" flags="l" />
      <key id="KEY_F" mapto="media" flags="m" />
      <key id="KEY_F" mapto="media_long" flags="l" />

      <key id="KEY_ANGLE" mapto="vformat" flags="m" />
      <key id="KEY_ANGLE" mapto="vformat_long" flags="l" />
      <key id="KEY_SLOW" mapto="sleep" flags="m" />
      <key id="KEY_SLOW" mapto="sleep_long" flags="l" />
      <key id="KEY_MODE" mapto="tvradio" flags="m" />
      <key id="KEY_MODE" mapto="tvradio_long" flags="l" />
      <key id="KEY_SCREEN" mapto="resolution" flags="m" />
      <key id="KEY_SCREEN" mapto="resolution_long" flags="l" />
      <key id="KEY_REWIND" mapto="rewind" flags="m" />
      <key id="KEY_FASTFORWARD" mapto="fastforward" flags="m" />
      <key id="KEY_PLAY" mapto="play" flags="m" />
      <key id="KEY_PREVIOUS" mapto="previous" flags="mr" />
      <key id="KEY_NEXT" mapto="next" flags="mr" />
      <key id="KEY_RECORD" mapto="record" flags="m" />
      <key id="KEY_RECORD" mapto="record_long" flags="l" />
      <key id="KEY_PAUSE" mapto="pause" flags="m" />
      <key id="KEY_PAUSE" mapto="pause_long" flags="l" />
      <key id="KEY_STOP" mapto="stop" flags="m" />
      <key id="KEY_STOP" mapto="stop_long" flags="l" />
      <key id="KEY_SELECT" mapto="select" flags="m" />
      <key id="KEY_SELECT" mapto="select_long" flags="l" />
      <key id="KEY_HELP" mapto="help" flags="m" />
      <key id="KEY_HELP" mapto="help_long" flags="l" />
      <key id="KEY_MEMO" mapto="recall" flags="m" />
      <key id="KEY_MEMO" mapto="recall_long" flags="l" />
      <key id="KEY_UP" mapto="cross_up" flags="mr" />
      <key id="KEY_DOWN" mapto="cross_down" flags="mr" />
      <key id="KEY_LEFT" mapto="cross_left" flags="mr" />
      <key id="KEY_RIGHT" mapto="cross_right" flags="mr" />
      <key id="KEY_OK" mapto="ok" flags="m" />
      <key id="KEY_HOME" mapto="home" flags="b" />
      <key id="KEY_HOME" mapto="home_long" flags="l" />
      <key id="KEY_TEEN" mapto="pminus" flags="m" />
      <key id="KEY_TEEN" mapto="pminus_long" flags="l" />
      <key id="KEY_TWEN" mapto="pplus" flags="m" />
      <key id="KEY_TWEN" mapto="pplus_long" flags="l" />
      <key id="KEY_FAVORITES" mapto="favorites" flags="m" />
      <key id="KEY_FAVORITES" mapto="favorites_long" flags="l" />
      <key id="KEY_EPG" mapto="epg" flags="m" />
      <key id="KEY_EPG" mapto="epg_long" flags="l" />
      <key id="KEY_DIRECTORY" mapto="directory" flags="m" />
      <key id="KEY_DIRECTORY" mapto="directory_long" flags="l" />
      <key id="KEY_PAGEUP" mapto="channelup" flags="m" />
      <key id="KEY_PAGEDOWN" mapto="channeldown" flags="m" />
      <key id="KEY_OPTION" mapto="option" flags="m" />
      <key id="KEY_OPTION" mapto="option_long" flags="l" />
      <key id="KEY_GOTO" mapto="goto" flags="m" />
      <key id="KEY_GOTO" mapto="goto_long" flags="l" />
      <key id="KEY_SUBTITLE" mapto="subtitle" flags="m" />
      <key id="KEY_SUBTITLE" mapto="subtitle_long" flags="l" />
      <key id="KEY_ZOOM" mapto="zoom" flags="m" />
      <key id="KEY_ZOOM" mapto="zoom_long" flags="l" />
      <key id="KEY_TEXT" mapto="text" flags="m" />
      <key id="KEY_TEXT" mapto="text_long" flags="l" />
   </map>
</keymap>
Теперь это придуманное нами действие нужно добавить в код самого плагина.
Сначала открываем (в продвинутом редакторе или прямо в окне DCC) файл MultiQuickButton.py и где-то в начале видим значения ключей, то есть названия всех этих самых действий из кеймапа, то есть вот это
values = ("red","red_long","green","green_long","yellow","yellow_long","blue","blue_long","vformat","vformat_long","sleep","sleep_long","tvradio","tvradio_long", \
         "resolution","resolution_long","rewind","fastforward","play","previous","next","record","record_long","pause","pause_long","stop","stop_long","select", \
         "select_long","help","help_long","recall","recall_long","cross_up","cross_down","cross_left","cross_right","ok","home","home_long","pminus","pminus_long","pplus","pplus_long", \
         "favorites","favorites_long","epg","epg_long","directory","directory_long","channelup","channeldown","option","option_long","goto","goto_long","subtitle","subtitle_long", \
         "zoom","zoom_long","text","text_long","mqb_voldown","mqb_volup","mqb_mute","mqb_power","mqb_power_long")
И вот сюда добавляем и придуманное нами действия (с коротким и длинным нажатием) то есть media и media_long в любое место внутрь этих ключей, к примеру вот так
values = ("red","red_long","green","green_long","yellow","yellow_long","blue","blue_long","vformat","vformat_long","sleep","sleep_long","tvradio","tvradio_long", \
         "resolution","resolution_long","rewind","fastforward","play","previous","next","record","record_long","pause","pause_long","stop","stop_long","select", \
         "select_long","help","help_long","recall","recall_long","cross_up","cross_down","cross_left","cross_right","ok","home","home_long","pminus","pminus_long","pplus","pplus_long", \
         "favorites","favorites_long","epg","epg_long","directory","directory_long","channelup","channeldown","option","option_long","goto","goto_long","subtitle","subtitle_long", \
         "media","media_long","zoom","zoom_long","text","text_long","mqb_voldown","mqb_volup","mqb_mute","mqb_power","mqb_power_long")

Далее в этом же файле находим класс MultiQuickButton(Screen) и внутри этого класса находим инструкцию (дефку) createList и здесь находим создаваемое меню плагина, то есть вот это:
      self.list = []
      self.list.append(QuickButtonListEntry('', (_('red') + '', 'red'), 'red', functionbutton_red))
      self.list.append(QuickButtonListEntry('', (_('red') + _(' long') + '', 'red_long'), 'red', functionbutton_red_long))
      self.list.append(QuickButtonListEntry('', (_('green') + '', 'green'), 'green', functionbutton_green))
      self.list.append(QuickButtonListEntry('', (_('green') + _(' long') + '', 'green_long'), 'green', functionbutton_green_long))
      self.list.append(QuickButtonListEntry('', (_('yellow') + '', 'yellow'), 'yellow', functionbutton_yellow))
      self.list.append(QuickButtonListEntry('', (_('yellow') + _(' long') + '', 'yellow_long'), 'yellow', functionbutton_yellow_long))
      self.list.append(QuickButtonListEntry('', (_('blue') + '', 'blue'), 'blue', functionbutton_blue))
      self.list.append(QuickButtonListEntry('', (_('blue') + _(' long') + '', 'blue_long'), 'blue', functionbutton_blue_long))
      self.list.append(QuickButtonListEntry('', (_('Vformat') + '', 'vformat'), 'vformat', functionbutton_vformat))
      self.list.append(QuickButtonListEntry('', (_('Vformat') + _(' long') + '', 'vformat_long'), 'vformat', functionbutton_vformat_long))
      self.list.append(QuickButtonListEntry('', (_('Sleep') + '', 'sleep'), 'sleep', functionbutton_sleep))
      self.list.append(QuickButtonListEntry('', (_('Sleep') + _(' long') + '', 'sleep_long'), 'sleep', functionbutton_sleep_long))
      self.list.append(QuickButtonListEntry('', (_('TV/RAD') + '', 'tvradio'), 'tvradio', functionbutton_tvradio))
      self.list.append(QuickButtonListEntry('', (_('TV/RAD') + _(' long') + '', 'tvradio_long'), 'tvradio', functionbutton_tvradio_long))
      self.list.append(QuickButtonListEntry('', (_('Resolution') + '', 'resolution'), 'resolution', functionbutton_resolution))
      self.list.append(QuickButtonListEntry('', (_('Resolution') + _(' long') + '', 'resolution_long'), 'resolution', functionbutton_resolution_long))
      self.list.append(QuickButtonListEntry('', (_('Rewind <<') + '', 'rewind'), 'rewind', functionbutton_rewind))
      self.list.append(QuickButtonListEntry('', (_('FastForward >>') + '', 'fastforward'), 'fastforward', functionbutton_fastforward))
      self.list.append(QuickButtonListEntry('', (_('Play') + '', 'play'), 'play', functionbutton_play))
      self.list.append(QuickButtonListEntry('', (_('Backward <') + '', 'previous'), 'previous', functionbutton_previous))
      self.list.append(QuickButtonListEntry('', (_('Forward >') + '', 'next'), 'next', functionbutton_next))
      self.list.append(QuickButtonListEntry('', (_('Record') + '', 'record'), 'record', functionbutton_record))
      self.list.append(QuickButtonListEntry('', (_('Record') + _(' long') + '', 'record_long'), 'record', functionbutton_record_long))
      self.list.append(QuickButtonListEntry('', (_('Pause') + '', 'pause'), 'pause', functionbutton_pause))
      self.list.append(QuickButtonListEntry('', (_('Pause') + _(' long') + '', 'pause_long'), 'pause', functionbutton_pause_long))
      self.list.append(QuickButtonListEntry('', (_('Stop') + '', 'stop'), 'stop', functionbutton_stop))
      self.list.append(QuickButtonListEntry('', (_('Stop') + _(' long') + '', 'stop_long'), 'stop', functionbutton_stop_long))
      self.list.append(QuickButtonListEntry('', (_('Select') + '', 'select'), 'select', functionbutton_select))
      self.list.append(QuickButtonListEntry('', (_('Select') + _(' long') + '', 'select_long'), 'select', functionbutton_select_long))
      self.list.append(QuickButtonListEntry('', (_('INFO') + '', 'help'), 'help', functionbutton_help))
      self.list.append(QuickButtonListEntry('', (_('INFO') + _(' long') + '', 'help_long'), 'help', functionbutton_help_long))
      self.list.append(QuickButtonListEntry('', (_('RECALL') + '', 'recall'), 'recall', functionbutton_recall))
      self.list.append(QuickButtonListEntry('', (_('RECALL') + _(' long') + '', 'recall_long'), 'recall', functionbutton_recall_long))
      self.list.append(QuickButtonListEntry('', (_('Cross Up') + '', 'cross_up'), 'cross_up', functionbutton_cross_up))
      self.list.append(QuickButtonListEntry('', (_('Cross Down') + '', 'cross_down'), 'cross_down', functionbutton_cross_down))
      self.list.append(QuickButtonListEntry('', (_('Cross Left') + '', 'cross_left'), 'cross_left', functionbutton_cross_left))
      self.list.append(QuickButtonListEntry('', (_('Cross Right') + '', 'cross_right'), 'cross_right', functionbutton_cross_right))
      self.list.append(QuickButtonListEntry('', ('OK' + '', 'ok'), 'ok', functionbutton_ok))
      self.list.append(QuickButtonListEntry('', ('EXIT' + '', 'home'), 'home', functionbutton_home))
      self.list.append(QuickButtonListEntry('', ('EXIT' + _(' long') + '', 'home_long'), 'home', functionbutton_home_long))
      self.list.append(QuickButtonListEntry('', ('Page down' + '', 'pminus'), 'pminus', functionbutton_pminus))
      self.list.append(QuickButtonListEntry('', ('Page down' + _(' long') + '', 'pminus_long'), 'pminus', functionbutton_pminus_long))
      self.list.append(QuickButtonListEntry('', ('Page up' + '', 'pplus'), 'pplus', functionbutton_pplus))
      self.list.append(QuickButtonListEntry('', ('Page up' + _(' long') + '', 'pplus_long'), 'pplus', functionbutton_pplus_long))
      self.list.append(QuickButtonListEntry('', ('FAV' + '', 'favorites'), 'favorites', functionbutton_favorites))
      self.list.append(QuickButtonListEntry('', ('FAV' + _(' long') + '', 'favorites_long'), 'favorites', functionbutton_favorites_long))
      self.list.append(QuickButtonListEntry('', ('EPG' + '', 'epg'), 'epg', functionbutton_epg))
      self.list.append(QuickButtonListEntry('', ('EPG' + _(' long') + '', 'epg_long'), 'epg', functionbutton_epg_long))
      self.list.append(QuickButtonListEntry('', ('PLAY LIST' + '', 'directory'), 'directory', functionbutton_directory))
      self.list.append(QuickButtonListEntry('', ('PLAY LIST' + _(' long') + '', 'directory_long'), 'directory', functionbutton_directory_long))
      self.list.append(QuickButtonListEntry('', (_('Channel +') + '', 'channelup'), 'channelup', functionbutton_channelup))
      self.list.append(QuickButtonListEntry('', (_('Channel -') + '', 'channeldown'), 'channeldown', functionbutton_channeldown))
      self.list.append(QuickButtonListEntry('', ('PIP' + '', 'option'), 'option', functionbutton_option))
      self.list.append(QuickButtonListEntry('', ('PIP' + _(' long') + '', 'option_long'), 'option', functionbutton_option_long))
      self.list.append(QuickButtonListEntry('', ('PIP zap' + '', 'goto'), 'goto', functionbutton_goto))
      self.list.append(QuickButtonListEntry('', ('PIP zap' + _(' long') + '', 'goto_long'), 'goto', functionbutton_goto_long))
      self.list.append(QuickButtonListEntry('',(_('PIP S.List') + '', 'subtitle'), 'subtitle', functionbutton_subtitle))
      self.list.append(QuickButtonListEntry('', ('PIP S.List' + _(' long') + '', 'subtitle_long'), 'subtitle', functionbutton_subtitle_long))
      self.list.append(QuickButtonListEntry('', ('Subtitle' + '', 'zoom'), 'zoom', functionbutton_zoom))
      self.list.append(QuickButtonListEntry('', ('Subtitle' + _(' long') + '', 'zoom_long'), 'zoom', functionbutton_zoom_long))
      self.list.append(QuickButtonListEntry('', (_('TEXT') + '', 'text'), 'text', functionbutton_text))
      self.list.append(QuickButtonListEntry('', (_('TEXT') + _(' long') + '', 'text_long'), 'text', functionbutton_text_long))
      self.list.append(QuickButtonListEntry('',(_('Volume +') + '', 'mqb_volup'), 'mqb_volup', functionbutton_mqb_volup))
      self.list.append(QuickButtonListEntry('',(_('Volume -') + '', 'mqb_voldown'), 'mqb_voldown', functionbutton_mqb_voldown))
      self.list.append(QuickButtonListEntry('',(_('Mute') + '', 'mqb_mute'), 'mqb_mute', functionbutton_mqb_mute))
      self.list.append(QuickButtonListEntry('',(_('Power') + '', 'mqb_power'), 'mqb_power', functionbutton_mqb_power))
      self.list.append(QuickButtonListEntry('',(_('Power') + _(' long') + '', 'mqb_power_long'), 'mqb_power_long', functionbutton_mqb_power_long))

И сюда в любой промежуток (а это уже важно, в какой промежуток вставите, на экране в меню плагине именно в этом месте и увидите название кнопки) вставляем это действие, составив обычное добавление строчек в меню в питоне (думать не о чем, просто копируйте и переименовывайте под себя) и назвав кнопку в меню плагина MEDIA, то есть например вот так
      self.list = []
      self.list.append(QuickButtonListEntry('', (_('red') + '', 'red'), 'red', functionbutton_red))
      self.list.append(QuickButtonListEntry('', (_('red') + _(' long') + '', 'red_long'), 'red', functionbutton_red_long))
      self.list.append(QuickButtonListEntry('', (_('green') + '', 'green'), 'green', functionbutton_green))
      self.list.append(QuickButtonListEntry('', (_('green') + _(' long') + '', 'green_long'), 'green', functionbutton_green_long))
      self.list.append(QuickButtonListEntry('', (_('yellow') + '', 'yellow'), 'yellow', functionbutton_yellow))
      self.list.append(QuickButtonListEntry('', (_('yellow') + _(' long') + '', 'yellow_long'), 'yellow', functionbutton_yellow_long))
      self.list.append(QuickButtonListEntry('', (_('blue') + '', 'blue'), 'blue', functionbutton_blue))
      self.list.append(QuickButtonListEntry('', (_('blue') + _(' long') + '', 'blue_long'), 'blue', functionbutton_blue_long))
      self.list.append(QuickButtonListEntry('', (_('Vformat') + '', 'vformat'), 'vformat', functionbutton_vformat))
      self.list.append(QuickButtonListEntry('', (_('Vformat') + _(' long') + '', 'vformat_long'), 'vformat', functionbutton_vformat_long))
      self.list.append(QuickButtonListEntry('', (_('MEDIA') + '', 'media'), 'media', functionbutton_media))
      self.list.append(QuickButtonListEntry('', (_('MEDIA') + _(' long') + '', 'media_long'), 'media', functionbutton_media_long))
      
self.list.append(QuickButtonListEntry('', (_('Sleep') + '', 'sleep'), 'sleep', functionbutton_sleep))
      self.list.append(QuickButtonListEntry('', (_('Sleep') + _(' long') + '', 'sleep_long'), 'sleep', functionbutton_sleep_long))
      self.list.append(QuickButtonListEntry('', (_('TV/RAD') + '', 'tvradio'), 'tvradio', functionbutton_tvradio))
      self.list.append(QuickButtonListEntry('', (_('TV/RAD') + _(' long') + '', 'tvradio_long'), 'tvradio', functionbutton_tvradio_long))
      self.list.append(QuickButtonListEntry('', (_('Resolution') + '', 'resolution'), 'resolution', functionbutton_resolution))
      self.list.append(QuickButtonListEntry('', (_('Resolution') + _(' long') + '', 'resolution_long'), 'resolution', functionbutton_resolution_long))
      self.list.append(QuickButtonListEntry('', (_('Rewind <<') + '', 'rewind'), 'rewind', functionbutton_rewind))
      self.list.append(QuickButtonListEntry('', (_('FastForward >>') + '', 'fastforward'), 'fastforward', functionbutton_fastforward))
      self.list.append(QuickButtonListEntry('', (_('Play') + '', 'play'), 'play', functionbutton_play))
      self.list.append(QuickButtonListEntry('', (_('Backward <') + '', 'previous'), 'previous', functionbutton_previous))
      self.list.append(QuickButtonListEntry('', (_('Forward >') + '', 'next'), 'next', functionbutton_next))
      self.list.append(QuickButtonListEntry('', (_('Record') + '', 'record'), 'record', functionbutton_record))
      self.list.append(QuickButtonListEntry('', (_('Record') + _(' long') + '', 'record_long'), 'record', functionbutton_record_long))
      self.list.append(QuickButtonListEntry('', (_('Pause') + '', 'pause'), 'pause', functionbutton_pause))
      self.list.append(QuickButtonListEntry('', (_('Pause') + _(' long') + '', 'pause_long'), 'pause', functionbutton_pause_long))
      self.list.append(QuickButtonListEntry('', (_('Stop') + '', 'stop'), 'stop', functionbutton_stop))
      self.list.append(QuickButtonListEntry('', (_('Stop') + _(' long') + '', 'stop_long'), 'stop', functionbutton_stop_long))
      self.list.append(QuickButtonListEntry('', (_('Select') + '', 'select'), 'select', functionbutton_select))
      self.list.append(QuickButtonListEntry('', (_('Select') + _(' long') + '', 'select_long'), 'select', functionbutton_select_long))
      self.list.append(QuickButtonListEntry('', (_('INFO') + '', 'help'), 'help', functionbutton_help))
      self.list.append(QuickButtonListEntry('', (_('INFO') + _(' long') + '', 'help_long'), 'help', functionbutton_help_long))
      self.list.append(QuickButtonListEntry('', (_('RECALL') + '', 'recall'), 'recall', functionbutton_recall))
      self.list.append(QuickButtonListEntry('', (_('RECALL') + _(' long') + '', 'recall_long'), 'recall', functionbutton_recall_long))
      self.list.append(QuickButtonListEntry('', (_('Cross Up') + '', 'cross_up'), 'cross_up', functionbutton_cross_up))
      self.list.append(QuickButtonListEntry('', (_('Cross Down') + '', 'cross_down'), 'cross_down', functionbutton_cross_down))
      self.list.append(QuickButtonListEntry('', (_('Cross Left') + '', 'cross_left'), 'cross_left', functionbutton_cross_left))
      self.list.append(QuickButtonListEntry('', (_('Cross Right') + '', 'cross_right'), 'cross_right', functionbutton_cross_right))
      self.list.append(QuickButtonListEntry('', ('OK' + '', 'ok'), 'ok', functionbutton_ok))
      self.list.append(QuickButtonListEntry('', ('EXIT' + '', 'home'), 'home', functionbutton_home))
      self.list.append(QuickButtonListEntry('', ('EXIT' + _(' long') + '', 'home_long'), 'home', functionbutton_home_long))
      self.list.append(QuickButtonListEntry('', ('Page down' + '', 'pminus'), 'pminus', functionbutton_pminus))
      self.list.append(QuickButtonListEntry('', ('Page down' + _(' long') + '', 'pminus_long'), 'pminus', functionbutton_pminus_long))
      self.list.append(QuickButtonListEntry('', ('Page up' + '', 'pplus'), 'pplus', functionbutton_pplus))
      self.list.append(QuickButtonListEntry('', ('Page up' + _(' long') + '', 'pplus_long'), 'pplus', functionbutton_pplus_long))
      self.list.append(QuickButtonListEntry('', ('FAV' + '', 'favorites'), 'favorites', functionbutton_favorites))
      self.list.append(QuickButtonListEntry('', ('FAV' + _(' long') + '', 'favorites_long'), 'favorites', functionbutton_favorites_long))
      self.list.append(QuickButtonListEntry('', ('EPG' + '', 'epg'), 'epg', functionbutton_epg))
      self.list.append(QuickButtonListEntry('', ('EPG' + _(' long') + '', 'epg_long'), 'epg', functionbutton_epg_long))
      self.list.append(QuickButtonListEntry('', ('PLAY LIST' + '', 'directory'), 'directory', functionbutton_directory))
      self.list.append(QuickButtonListEntry('', ('PLAY LIST' + _(' long') + '', 'directory_long'), 'directory', functionbutton_directory_long))
      self.list.append(QuickButtonListEntry('', (_('Channel +') + '', 'channelup'), 'channelup', functionbutton_channelup))
      self.list.append(QuickButtonListEntry('', (_('Channel -') + '', 'channeldown'), 'channeldown', functionbutton_channeldown))
      self.list.append(QuickButtonListEntry('', ('PIP' + '', 'option'), 'option', functionbutton_option))
      self.list.append(QuickButtonListEntry('', ('PIP' + _(' long') + '', 'option_long'), 'option', functionbutton_option_long))
      self.list.append(QuickButtonListEntry('', ('PIP zap' + '', 'goto'), 'goto', functionbutton_goto))
      self.list.append(QuickButtonListEntry('', ('PIP zap' + _(' long') + '', 'goto_long'), 'goto', functionbutton_goto_long))
      self.list.append(QuickButtonListEntry('',(_('PIP S.List') + '', 'subtitle'), 'subtitle', functionbutton_subtitle))
      self.list.append(QuickButtonListEntry('', ('PIP S.List' + _(' long') + '', 'subtitle_long'), 'subtitle', functionbutton_subtitle_long))
      self.list.append(QuickButtonListEntry('', ('Subtitle' + '', 'zoom'), 'zoom', functionbutton_zoom))
      self.list.append(QuickButtonListEntry('', ('Subtitle' + _(' long') + '', 'zoom_long'), 'zoom', functionbutton_zoom_long))
      self.list.append(QuickButtonListEntry('', (_('TEXT') + '', 'text'), 'text', functionbutton_text))
      self.list.append(QuickButtonListEntry('', (_('TEXT') + _(' long') + '', 'text_long'), 'text', functionbutton_text_long))
      self.list.append(QuickButtonListEntry('',(_('Volume +') + '', 'mqb_volup'), 'mqb_volup', functionbutton_mqb_volup))
      self.list.append(QuickButtonListEntry('',(_('Volume -') + '', 'mqb_voldown'), 'mqb_voldown', functionbutton_mqb_voldown))
      self.list.append(QuickButtonListEntry('',(_('Mute') + '', 'mqb_mute'), 'mqb_mute', functionbutton_mqb_mute))
      self.list.append(QuickButtonListEntry('',(_('Power') + '', 'mqb_power'), 'mqb_power', functionbutton_mqb_power))
      self.list.append(QuickButtonListEntry('',(_('Power') + _(' long') + '', 'mqb_power_long'), 'mqb_power_long', functionbutton_mqb_power_long))
Здесь не допустите ошибок, на всякий случай вот выделил красным все слова, которые вы должны отредактировать

      self.list.append(QuickButtonListEntry('', (_('MEDIA') + '', 'media'), 'media', functionbutton_media))
      self.list.append(QuickButtonListEntry('', (_('MEDIA') + _(' long') + '', 'media_long'), 'media', functionbutton_media_long))

Думаю все понятно.
Теперь в этом же файле в классе MultiQuickButtonMacro(Screen) нужно отредактировать словарную функцию с ключами, если вы собираетесь пользоваться макросами, то есть вот эту функцию

      self.buttondic = {
               "011" : "0",
               "002" : "1",
               "003" : "2",
               "004" : "3",
               "005" : "4",
               "006" : "5",
               "007" : "6",
               "008" : "7",
               "009" : "8",
               "010" : "9",
               "116" : _("Power"),
               "139" : _("Menu"),
               "398" : _("red"),
               "401" : _("blue"),
               "399" : _("green"),
               "400" : _("yellow"),
               "371" : _("vformat"),
               "409" : _("sleep"),
               "373" : _("tvradio"),
               "375" : _("resolution"),
               "168" : _("Rewind <<"),
               "208" : _("FastForward >>"),
               "207" : _("Play"),
               "412" : _("previous"),
               "407" : _("next"),
               "167" : _("Record"),
               "119" : _("Pause"),
               "128" : _("Stop"),
               "353" : _("select"),
               "138" : _("Info"),
               "396" : _("recall"),
               "105" : _("Cross Left"),
               "106" : _("Cross Right"),
               "103" : _("Cross Up"),
               "108" : _("Cross Down"),
               "352" : _("OK"),
               "102" : _("EXIT"),
               "414" : _("pminus"),
               "415" : _("pplus"),
               "364" : _("favorites"),
               "365" : _("EPG"),
               "394" : _("DIR"),
               "104" : _("Channel +"),
               "109" : _("Channel -"),
               "357" : _("option"),
               "354" : _("goto"),
               "370" : _("Subtitle"),
               "372" : _("ZOOM"),
               "388" : _("TEXT"),
               "115" : _("Volume +"),
               "114" : _("Volume -"),
               "113" : _("Mute"),
               "P100" : (_("Pause") + " 0.1 sec"),
               "P500" : (_("Pause") + " 0.5 sec"),
               "P1000" : (_("Pause") + " 1.0 sec")
            }
Здесь тоже все просто, циферьки это коды из keyids.py а рядом просто названия кнопок, которые будут выводиться в окне макроса.
Думаю тут особо объяснять не надо, да и можете пропустить этот шаг, если не пользуетесь макросами.

С файлом MultiQuickButton.py закончено (если вы добавили точно таким макаром все нужные вам ключи)
Но это еще не все. Теперь непосредственно плагину нужно дать понятие о действиях этих кнопок.
Не путайтесь, уже ID кнопок не нужны, мы им уже присвоили коды-слова (например в предыдущем случае код-слово "media") вот эти коды слова введем в файл plugin.py
Открываем этот файл и находим сначала инструкцию InfoBarPlugins__init__ а там этот акшинмап
      self["QuickButtonActions"] = MQBActionMap(["QuickButtonActions"],
         {
            "red": self.quickSelectGlobal,
            "red_long": self.quickSelectGlobal,
            "green": self.quickSelectGlobal,
            "green_long": self.quickSelectGlobal,
            "yellow": self.quickSelectGlobal,
            "yellow_long": self.quickSelectGlobal,
            "blue": self.quickSelectGlobal,
            "blue_long": self.quickSelectGlobal,
            "vformat": self.quickSelectGlobal,
            "vformat_long": self.quickSelectGlobal,
            "sleep": self.quickSelectGlobal,
            "sleep_long": self.quickSelectGlobal,
            "tvradio": self.quickSelectGlobal,
            "tvradio_long": self.quickSelectGlobal,
            "resolution": self.quickSelectGlobal,
            "resolution_long": self.quickSelectGlobal,
            "rewind": self.quickSelectGlobal,
            "fastforward": self.quickSelectGlobal,
            "play": self.quickSelectGlobal,
            "previous": self.quickSelectGlobal,
            "next": self.quickSelectGlobal,
            "record": self.quickSelectGlobal,
            "record_long": self.quickSelectGlobal,
            "pause": self.quickSelectGlobal,   
            "pause_long": self.quickSelectGlobal,
            "stop": self.quickSelectGlobal,
            "stop_long": self.quickSelectGlobal,
            "select": self.quickSelectGlobal,
            "select_long": self.quickSelectGlobal,
            "help": self.quickSelectGlobal,
            "help_long": self.quickSelectGlobal,
            "recall": self.quickSelectGlobal,
            "recall_long": self.quickSelectGlobal,
            "cross_up": self.quickSelectGlobal,
            "cross_down": self.quickSelectGlobal,
            "cross_left": self.quickSelectGlobal,
            "cross_right": self.quickSelectGlobal,
            "ok": self.quickSelectGlobal,
            "home": self.quickSelectGlobal,
            "home_long": self.quickSelectGlobal,
            "pminus": self.quickSelectGlobal,
            "pminus_long": self.quickSelectGlobal,
            "pplus": self.quickSelectGlobal,
            "pplus_long": self.quickSelectGlobal,
            "favorites": self.quickSelectGlobal,
            "favorites_long": self.quickSelectGlobal,
            "epg": self.quickSelectGlobal,
            "epg_long": self.quickSelectGlobal,
            "directory": self.quickSelectGlobal,
            "directory_long": self.quickSelectGlobal,
            "channelup": self.quickSelectGlobal,
            "channeldown": self.quickSelectGlobal,
            "option": self.quickSelectGlobal,
            "option_long": self.quickSelectGlobal,
            "goto": self.quickSelectGlobal,
            "goto_long": self.quickSelectGlobal,
            "subtitle": self.quickSelectGlobal,
            "subtitle_long": self.quickSelectGlobal,
            "zoom": self.quickSelectGlobal,
            "zoom_long": self.quickSelectGlobal,
            "text": self.quickSelectGlobal,
            "text_long": self.quickSelectGlobal
         })

И сюда добавляем наши коды-слова, например эту самую "media" и "media_long".
Также в любое место акшинмап, например вот так
      self["QuickButtonActions"] = MQBActionMap(["QuickButtonActions"],
         {
            "red": self.quickSelectGlobal,
            "red_long": self.quickSelectGlobal,
            "green": self.quickSelectGlobal,
            "green_long": self.quickSelectGlobal,
            "yellow": self.quickSelectGlobal,
            "yellow_long": self.quickSelectGlobal,
            "blue": self.quickSelectGlobal,
            "blue_long": self.quickSelectGlobal,
            "vformat": self.quickSelectGlobal,
            "vformat_long": self.quickSelectGlobal,
            "media": self.quickSelectGlobal,
            "media_long": self.quickSelectGlobal,

            "sleep": self.quickSelectGlobal,
            "sleep_long": self.quickSelectGlobal,
            "tvradio": self.quickSelectGlobal,
            "tvradio_long": self.quickSelectGlobal,
            "resolution": self.quickSelectGlobal,
            "resolution_long": self.quickSelectGlobal,
            "rewind": self.quickSelectGlobal,
            "fastforward": self.quickSelectGlobal,
            "play": self.quickSelectGlobal,
            "previous": self.quickSelectGlobal,
            "next": self.quickSelectGlobal,
            "record": self.quickSelectGlobal,
            "record_long": self.quickSelectGlobal,
            "pause": self.quickSelectGlobal,   
            "pause_long": self.quickSelectGlobal,
            "stop": self.quickSelectGlobal,
            "stop_long": self.quickSelectGlobal,
            "select": self.quickSelectGlobal,
            "select_long": self.quickSelectGlobal,
            "help": self.quickSelectGlobal,
            "help_long": self.quickSelectGlobal,
            "recall": self.quickSelectGlobal,
            "recall_long": self.quickSelectGlobal,
            "cross_up": self.quickSelectGlobal,
            "cross_down": self.quickSelectGlobal,
            "cross_left": self.quickSelectGlobal,
            "cross_right": self.quickSelectGlobal,
            "ok": self.quickSelectGlobal,
            "home": self.quickSelectGlobal,
            "home_long": self.quickSelectGlobal,
            "pminus": self.quickSelectGlobal,
            "pminus_long": self.quickSelectGlobal,
            "pplus": self.quickSelectGlobal,
            "pplus_long": self.quickSelectGlobal,
            "favorites": self.quickSelectGlobal,
            "favorites_long": self.quickSelectGlobal,
            "epg": self.quickSelectGlobal,
            "epg_long": self.quickSelectGlobal,
            "directory": self.quickSelectGlobal,
            "directory_long": self.quickSelectGlobal,
            "channelup": self.quickSelectGlobal,
            "channeldown": self.quickSelectGlobal,
            "option": self.quickSelectGlobal,
            "option_long": self.quickSelectGlobal,
            "goto": self.quickSelectGlobal,
            "goto_long": self.quickSelectGlobal,
            "subtitle": self.quickSelectGlobal,
            "subtitle_long": self.quickSelectGlobal,
            "zoom": self.quickSelectGlobal,
            "zoom_long": self.quickSelectGlobal,
            "text": self.quickSelectGlobal,
            "text_long": self.quickSelectGlobal
         })

И последнее действие, находим в этом же файле внизу класс MQBActionMap(ActionMap), а там инструкцию action, то есть вот это

quickSelection = ("red", "red_long", "green", "green_long", "yellow", "yellow_long", "blue", "blue_long", "vformat", "vformat_long", "sleep", "sleep_long", "tvradio", "tvradio_long", \
              "resolution", "resolution_long", "rewind", "fastforward", "play", "previous", "next", "record", "record_long", "pause", "pause_long", "stop", "stop_long", "select", \
              "select_long", "help", "help_long", "recall", "recall_long", "cross_up", "cross_down", "cross_left", "cross_right", "ok", "home", "home_long", "pminus", "pminus_long", "pplus", "pplus_long", \
              "favorites", "favorites_long", "epg", "epg_long", "directory", "directory_long", "channelup", "channeldown", "option", "option_long", "goto", "goto_long", "subtitle", "subtitle_long", \
              "zoom", "zoom_long", "text", "text_long", "mqb_volup", "mqb_voldown", "mqb_mute", "mqb_power", "mqb_power_long")

И сюда также добавим эти коды-слова, то есть так (в любое место среди кодов-слов)

quickSelection = ("red", "red_long", "green", "green_long", "yellow", "yellow_long", "blue", "blue_long", "vformat", "vformat_long", "sleep", "sleep_long", "tvradio", "tvradio_long", \
              "resolution", "resolution_long", "rewind", "fastforward", "play", "previous", "next", "record", "record_long", "pause", "pause_long", "stop", "stop_long", "select", \
              "select_long", "help", "help_long", "recall", "recall_long", "cross_up", "cross_down", "cross_left", "cross_right", "ok", "home", "home_long", "pminus", "pminus_long", "pplus", "pplus_long", \
              "media", "media_long", "favorites", "favorites_long", "epg", "epg_long", "directory", "directory_long", "channelup", "channeldown", "option", "option_long", "goto", "goto_long", "subtitle", "subtitle_long", \
              "zoom", "zoom_long", "text", "text_long", "mqb_volup", "mqb_voldown", "mqb_mute", "mqb_power", "mqb_power_long")

Это все.
Также добавляете все остальные кнопки, внимательно без ошибок, и после перегрузки получите все работающие ваши кнопки в окне плагина......

Только учтите, не во всех имиджах работают долгие нажатия.
Почему, незнаю. По причине того, что я не всезнайка, не все знаю про энигму. А также нет возможности ставить эти имиджи и узнать причину.
Если вы продвинутый пользователь, вероятно вам самим удастся узнать причину и устранить проблему.
Удачи......



  • vu+ultimo 9995
Мои авторские работы  нельзя редактировать для выкладывания на паблик.
Но их можно выкладывать неизмененными на любых ресурсах с указанием авторства
Мои кошельки:
WMZ     Z356196865451 WMR     R105983132832

Теги:
 

Похожие темы

  Тема / Автор Ответов Последний ответ
281 Ответов
179743 Просмотров
Последний ответ 26 ноября | 2021г. | 09:59:51
от vaha555
31 Ответов
41162 Просмотров
Последний ответ 14 июля | 2016г. | 22:03:22
от Калян_
10 Ответов
12244 Просмотров
Последний ответ 27 мая | 2018г. | 21:48:35
от mic71
22 Ответов
15575 Просмотров
Последний ответ 05 апреля | 2015г. | 11:41:10
от aam13
103 Ответов
86970 Просмотров
Последний ответ 22 августа | 2021г. | 18:56:35
от Николай_2014



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!