Справочник API плагина r25: dune_api.php и фреймворк firmware_ext/php¶
Редакция 2026-11-02. Что PHP-плагин Dune HD получает от прошивки: интерфейс
DunePlugin, операции, действияGuiAction, константы и классыdune_api.php, библиотекаdunelib. Основа — код tv188b261021_0117_r25и260827_0003_r24(code,android-dune-fw) и наблюдения на tv188b r25 (device). SDK — справка: факт только из него помечен «по SDK, на r24+ не подтверждено». Всё r24/r25 ниже — про tv188b; на другие устройства и прошивки не переносится, кроме сказанного в §1.3. Каждое фактическое предложение ссылается на claim id.Рядом: контролы — «Контролы диалогов и папок»; экраны — «Экраны и папки плагина»; ввод и диалоги — «Ввод и диалоги»; воспроизведение — «Воспроизведение из плагина»; очередь и тайм-ауты — «Операции плагина, тайм-ауты и
php_server»; приёмы плагинов — «Приёмы разработки плагинов Dune HD».
Коротко: вопрос → ответ¶
| Вопрос | Ответ | Где |
|---|---|---|
Откуда берутся GuiAction, *_ACTION_ID, ViewParams? |
Из dune_api.php прошивки: screenshoter пользуется ими, не определяя в своём пакете (код r24)1 |
§1.1 |
Что вернуть из handle_user_input? |
GuiAction (код r24)2; null от самого call_plugin — другое дело, это ошибка (устройство r25)3 |
§2.1, §2.4 |
Где ActionFactory? |
В lib/ встроенного shell_ext (код r24)4; у GlobalTV — свои ActionFactory, ControlFactory и GCompsFactory (код)5 |
§4 |
| Какие операции новые в r25? | get_folder_rows (код r25)6 |
§2.5 |
| Какие действия новые в r25? | apply_hash_dirties, cond, fs_ctl, load_and_scale_image, update_special_favorite_folder (код r25)7. В одном прогоне на tv188b r25 выполнены cond (устройство r25)8, fs_ctl scandir (устройство r25)9, load_and_scale_image (устройство r25)10 |
§2.6, §2.7 |
Придёт ли в post_action поле action_status? |
В одном прогоне на tv188b r25 пришло строкой у cond (устройство r25)8, fs_ctl (устройство r25)9, load_and_scale_image (устройство r25)10, а у plugin_system (устройство r25)11, stop_playback (устройство r25)12, plugin_exit_folders (устройство r25)13 и sleep (устройство r25)14 его не было |
§2.6, §2.7, §2.9, §3.4 |
Какие строки запросит get_folder_rows? |
С непустым id, опцией PLUGIN_ROW_OPT_LOADING и без записи в plugin_pending_rows (код r25)15 |
§2.5 |
Работает ли handle_response=true из JSON-ответа плагина? |
По коду r25 JSON-десериализация поле не читает, оно остаётся false (код r25)16. В одном прогоне на tv188b r25 restart_needed_flag остались (устройство r25)17, pid com.dunehd.app тот же (устройство r25)18; что это не доказывает — §6 |
§2.9 |
| Как проверить, что поле есть в этой прошивке? | defined('Класс::поле') и class_exists('Класс') — так делает ProIPTV (код)19 |
§2.3 |
Можно ли задать fs_ctl в манифесте? |
В libduneshell.so r25 есть строка create_fs_ctl_action_from_xml(): not implemented (код r25)20 |
§2.6 |
| Что значит колонка «где» в таблицах? | Объявление в dune_api.php, а не проверка работы; проверенное на устройстве помечено device |
§3 |
| Насколько полон этот справочник? | Имена и ключи — полностью; назначение описано не у всех | §7 |
1. Как устроен API плагина¶
1.1. Файлы фреймворка firmware_ext/php¶
PHP-плагин загружается процессом php_server (устройство r25)21, а API, на который он опирается, — это несколько файлов прошивки в
firmware_ext/php. Ни один файл этого каталога не подключает bootstrap.php, dune_api.php, dune_config.php или
dune_plugin_fw.php: их пути вместе с шаблоном require ('%s'); лежат в php_server (код r24)22. Порядок
загрузки и жизнь процесса — в «Операции плагина, тайм-ауты и php_server».
| Файл | Что даёт плагину | Claim |
|---|---|---|
dune_api.php |
только данные: константы define и классы с константами-ключами; функций нет |
(код r24)23 |
dune_plugin.php |
интерфейс DunePlugin, §3.1 |
(код r24)24 |
dune_plugin_fw.php |
абстрактный DunePluginFw: $instance, call_plugin, invoke_operation, get_out_type_code |
(код r24)25 |
bootstrap.php |
hd_print, обработчики ошибок, снятие лимита времени, §3.7 |
(код r24)26 |
dune_config.php |
тип пульта, §3.7 | (код r24)27 |
dunelib/* |
HD, ConfigUtils, Expr, DuneLanguages, InstalledPlugins (r25), §3.6 |
(код)28 |
Класс DuneSystem со статическим $properties в файлах каталога не определён (код r24)29: шаблон его кода лежит в
php_server вместе с элементом 'sdk_version' => '1.0.0', (код r24)30. include_path php_server задаёт шаблоном
ini_set('include_path', '.:%s:%s');, рядом есть строка /firmware_ext/php/include (код r24)31.
1.2. Классы как имена ключей и GuiAction¶
Константа класса в dune_api.php — имя ключа структуры: её значение совпадает с именем, а в комментарии указан C-тип
поля (код r24)32. Поэтому PluginVodPlayActionData::vod_info — просто строка 'vod_info' для ключа массива, и таблицы §3.4
и §3.5 перечисляют именно ключи. Типы сложных полей разобраны в базе (пример — поля ChangeBehaviourActionData::timer и
post_action (код r24)33); в таблицы они не вынесены, кроме новых классов r25.
GuiAction — структура с ключами handler_string_id, data, caption, plugin_name, params, flags (код r24)34. По SDK, на r24+ не
подтверждено: в handler_string_id лежит тип действия, в data — параметры (SDK)35. Значения типа заданы константами
*_ACTION_ID (код r24)36; HD::ensure_plugin_name подставляет plugin_name из DuneSystem::$properties, если он не задан
(код r24)37. Единственный определённый флаг — GUI_ACTION_FLAG_SKIP_ON_PLAY_RESTART=1 (код r24)38. Цепочки строятся
полем post_action; ActionFactory::set_post_action в shell_ext присоединяет продолжение к хвосту data.post_action, а
у plugin_handle_user_input хранит его JSON в params.next_action (код)39.
Какой класс *ActionData читается для какого типа действия, прямо подтверждают фабрики shell_ext и SDK; остальные пары
в §3.4 сведены по сходству имён — см. §6.
1.3. Что менялось: r22, r24, r25¶
Все PHP-файлы фреймворка в tv175u 260724_0207_r24 совпадают с tv188b 260827_0003_r24 по sha256 (код r24)40. bootstrap.php,
dune_config.php, dune_plugin.php одинаковы в r22- и r24-прошивках (код r22, r24)41.
| Что | r22 (250815_1012_r22) |
r24 | r25 | Claim |
|---|---|---|---|---|
Классы ChangeMovieData, ChooseFile, CreateNetworkFolder, CustomIgnoreUpdate, EditMovieData, PluginExitFolders, PluginUpdateTvInfo, SyncMyCollection, WakeNetworkFolder (*ActionData), FileChooserFilter, FileChooserUiParams, PluginStreamInfo, PluginTvChannelChange, PluginVodGetStreamInfoInputData, StreamMarker |
нет | есть | есть | (код r22, r24)42 |
get_vod_stream_info в invoke_operation и get_out_type_code |
нет | есть | есть | (код r22, r24)43 |
Счёт в dune_api.php |
— | 316 define, 167 классов, 998 ключей |
331 define, 179 классов; ключи — §7 |
(код)44 |
Операция get_folder_rows, тип ответа plugin_folder_rows |
— | — | есть | (код r25)45 |
| Пять новых действий | — | — | есть | (код r25)7 |
FsCmdKind и классы fs_ctl |
— | — | есть | (код r25)46 |
row_dup, PLUGIN_ROW_OPT_LOADING, PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE, row_dup_map, type_mask, GCOMP_OPT_STUB |
— | — | есть | (код r25)47 |
Новые ключи FileChooserUiParams, PluginSystemActionData::handle_response |
— | — | есть | (код r25)48 |
SyncMyCollectionActionData::mcf_id |
— | есть | убран | (код)49 |
HD::make_json_rpc_request |
— | есть | нет | (код)50 |
HD::ensure_empty_file, log_elapsed, read_int, read_string |
— | — | есть | (код r25)51 |
InstalledPlugins |
— | — | есть | (код r25)52 |
2. Задачи¶
2.1. Реализовать операции плагина: DunePlugin и DunePluginFw (r24, r25)¶
Плагин — наследник DunePluginFw с методом call_plugin, экземпляр которого присвоен DunePluginFw::$instance: на
tv188b r25 такой плагин загружается php_server и получает операции handle_user_input и get_vod_stream_url
(устройство r25)21. В каталоге php/ наследника нет (код r24)53: DefaultDunePluginFw лежит в файлах
default_dune_plugin_fw.php встроенных плагинов (код r24)54, а в копии android_apps его call_plugin — это
json_encode(call_plugin_impl(json_decode($call_ctx_json))) (код r24)55.
invoke_operation($plugin, $call_ctx) берёт поля контекста op_type_code, input_data, plugin_cookies,
internet_status, opexec_id, и имя метода плагина равно op_type_code (код r24)56. Перед вызовом он дёргает
необязательные set_plugin_cookies, set_internet_status, set_opexec_id, если они есть (код r24)57; при отсутствии
значений приходят -2 и "-1" (код r24)58. Любая операция, не перечисленная явно, уходит в handle_user_input (код r24)59.
Если во входе есть sel_state и у плагина есть метод <op>_v2, вызывается он — для шести операций получения папки и ТВ/VOD
(код r24)60. Для get_tv_playback_url при program_id вызывается get_tv_playback_url_v2 (код r24)61. Полный перечень — §3.1.
$plugin_cookies передаётся по ссылке во всех методах (код r24)62. get_folder_rows — исключение: ему передаются только
media_url и row_ids, необязательный set_plugin_cookies вызывается раньше, при входе в invoke_operation (код r25)63.
2.2. Вернуть результат операции: PluginOutputData (r24)¶
Ответ плагина оболочка разбирает в json_materialize_output_data_from_json (код r24)64. Порядок проверок задаёт, что нужно
плагину: ключи has_data, data_type, data, затем is_error, error_action, plugin_cookies (код r24)65. При is_error ≠ 0 соответствие типа не проверяется (код r24)66. При is_error=0 и has_data ≠ 0 тип data_type
должен совпасть с требуемым для операции (код r24)67; пустой ответ там, где данные обязательны, — ошибка (код r24)68.
op_id проверяется, только если он ожидается и есть в JSON (код r24)69. Таблица типов — §3.2.
2.3. Проверить, что поле или класс есть в прошивке (плагины, r24, r25)¶
Набор имён меняется от прошивки к прошивке (§1.3), и часть плагинов проверяет возможности по именам.
ProIPTV определяет is_choose_file_supported() через defined('ChooseFileActionData::filter'), is_rows_api_supported() через
class_exists('PluginRowsFolderView'), is_delay_load_supported() через defined('PluginUpdateTvInfoActionData::channel_changes')
(код)19. GlobalTV проверяет rows тем же class_exists (код)70, а bazinga3 проверяет
item_sticker и item_detailed_icon_width через defined('ViewItemParams::…') (код)71. Сравнения версии
в Expr — fwv_ge, fwv_gt, fwv_le, fwv_lt — строковые, через strcmp (код r24)72.
2.4. Почему операция или действие не срабатывает¶
Сообщения ниже — из кода r24/r25 и наблюдений на r25; строка лога показывает, на каком уровне сломалось.
| Симптом | Что произошло | Где | Claim |
|---|---|---|---|
Исключение Method not found: get_vod_stream_info |
Операция пришла, метода у плагина нет: в интерфейсе DunePlugin его нет |
r24 | (код r24)73 |
Исключение Method not found: get_folder_rows |
То же для get_folder_rows, §2.5 |
r25 | (код r25)74 |
Исключение и лог Uknown operation code (опечатка в оригинале) |
get_out_type_code не знает код операции |
r24 | (код r24)75 |
plugin op E: wrong data_type %s (required %s) |
data_type не тот, что нужен операции |
r24 | (код r24)67 |
plugin op E: got null data (op_type: %s) |
has_data=0, а данные обязательны |
r24 | (код r24)68 |
plugin op E: can not deserialize PluginOutputData: %s. |
Ошибка разбора ответа | r24 | (код r24)76 |
Error: invalid string type-tc value (%s) for 'PluginOutputDataType' |
Строка data_type не из перечня §3.2 |
r24 | (код r24)77 |
JSON: GuiAction: unknown handler id (%s) |
Такая строка есть в libduneshell.so для неизвестного типа действия |
r24 | (код r24)78 |
poll_calls() E: treating empty result as failure and stopping server, диалог «Ошибка приложения» |
call_plugin вернул null: php_server ничего не ответил |
r25 device |
(устройство r25)3 |
op 11 failed (read status: 2), PHP_CALL_FAILED, тот же диалог |
Сбой операции handle_user_input в php_server |
r25 device |
(устройство r25)79 |
cond E: unknown op '<имя>' |
Неизвестный оператор условия; вычислитель даёт -1, обёртка превращает его в false |
r25 | (код r25)80 |
Целое стало 2147483647 |
Литерал вне 32 бит и json_decode обрезают значение, ошибки нет: «Грабли» |
r25 device |
(устройство r25)81 |
Вызов HD::make_json_rpc_request на r25 |
Метода в r25 нет | r25 | (код r25)82 |
Передан mcf_id в sync_my_collection |
В r25 ключа нет, фабрика принимает только post_action |
r25 | (код r25)83 |
fs_ctl в манифесте |
В libduneshell.so есть строка create_fs_ctl_action_from_xml(): not implemented; вывод — §6 |
r25 | (код r25)20 |
Файл output_path не разбирается как JSON |
fs_ctl scandir завершился ошибкой: после input записан анонимный объект, {"input":{...},{"error":{...}}}: §2.6, BUG-038 |
r25 device |
(устройство r25)84 |
response ignored, folder changed |
Ответ folder_rows не совпал с текущей папкой по ключу plugin_name:media_url, строки в pending не попали: §2.5 |
r25 | (код r25)85 |
Передан handle_response=true в JSON-действии plugin_system |
По коду JSON-десериализация поле не читает, оно остаётся false; в одном прогоне флаги restart_needed_flag остались, pid com.dunehd.app тот же: §2.9 |
r25; device — один прогон на tv188b |
(устройство r25, код r25)86 |
Тайм-аут и ожидание индекса mc (tv188b r25). Единицы и умолчания тайм-аута — в «Операции плагина, тайм-ауты и php_server». По коду r25 длительность предварительного ожидания проверки индекса mc в timeout_us операции не входит (код r25)87, а запуск отложенного запроса ждёт значения 1 в /tmp/plugins/shell_ext/mc_index_valid.txt (код r25)88. Подробно, вместе с отменой по дедлайну, — «Операции плагина, тайм-ауты и php_server».
2.5. Подгрузить строки rows: get_folder_rows (r25)¶
В r25 появилась операция PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с ответом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS и
классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows} (код r25)6. invoke_operation вызывает
$plugin->get_folder_rows(media_url, row_ids), а без метода бросает исключение (код r25)74. Типы: media_url — (char *),
row_ids — (MY_StringArray *), rows — (PluginRowList *) (код r25)89.
Как это устроено на экранах shell_ext, разобрано в «Экраны и папки плагина».
Загрузчик оболочки rows_loader держит одну текущую задачу: запрос другого плагина отменяет старую с предупреждением
cancelling old task of plugin (код r25)90, а по завершении вызывается обязательный обработчик rows_loaded (код r25)91. Для
строки row_dup поиск идёт по dup_id в row_dup_map, а отсутствие карты, id или записи даёт null с предупреждением (код r25)92.
Формат PluginRow::data выбирается нативным типом строки: DUP (1) читается как строка dup_id, а GCOMPS (2), REGULAR (3) и TITLE (4) — как объекты PluginGCompsRow,
PluginRegularRow и PluginTitleRow (код r25)93.
Какие строки запрашиваются (код tv188b r25). Источник и обработчик ответа регистрирует инициализация PluginRows (код r25)94. В пакет row_ids строка
попадает при id!=NULL, options & PLUGIN_ROW_OPT_LOADING (0x4) и отсутствии ключа id в plugin_pending_rows; заданный полуинтервал обходится по возрастанию индекса
(код r25)15. Источник сначала пробует одну опорную строку по сохранённому id (при отсутствии или ненахождении id — строку 0), затем смежный диапазон, ограниченный
проверками компонентов, и лишь при пустом пакете — расширенный по высотам диапазон вокруг опорного индекса (код r25)95. Если все три попытки дают пустой массив,
источник ставит флаг исчерпания DAT_00eea496 и возвращает NULL, а при установленном флаге следующий вызов сразу возвращает NULL, не собирая новый пакет (код r25)96.
0x0026dca8 сбрасывает флаг исчерпания DAT_00eea496, если находит объект в PluginRowsFolderCache (код r25)97.
Запрос и ответ. При отсутствии текущего request_id rows_loader вызывает источник и ставит полученный пакет как операцию get_folder_rows (native kind=3); после обработки запросов цикл повторяется, пока есть готовые
пакеты и нет текущей задачи (код r25)98. При ненулевых входных данных get_folder_rows нативный JSON-сериализатор пишет в input_data media_url и массив row_ids, обходя его с нулевого индекса по возрастанию
(код r25)99. Ответ применяется только к текущей папке с совпадающим ключом plugin_name:media_url; при несовпадении пишется response ignored, folder changed,
и строки в pending не попадают (код r25)85. Ответ, прошедший проверки статуса и текущей папки, помещает строки с id!=NULL в plugin_pending_rows под ключом их id
(код r25)100. При применении pending строка ответа заменяет исходную по id через PluginRowIndex, а не по позиции в массиве ответа, и запись удаляется из pending
(код r25)101. Что происходит при пустом или неполном ответе — §6.
PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE и GCOMP_OPT_STUB. При создании компонента строки с эффективным native-типом 2–4 функция 0x002cad94 при ненулевом втором аргументе и options & 0x8 создаёт упрощённый компонент с флагом
0x400000 вместо ветви создания содержимого строки (код r25)102. plugin_rows_clear_stubs в переданном диапазоне пересоздаёт строки с ненулевым id, options & PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE (0x8) и найденным
компонентом с GCOMP_OPT_STUB (0x400000), вызывая создатель компонента с optimize=0 (код r25)103. Вывод о смысле опций для плагина — §6.
2.6. Работа с файлами из GUI: fs_ctl (r25)¶
fs_ctl — действие с cmd (FsCmdDef: kind и specific_def), output_path и post_action (код r25)104.
Результат приходит не в ответе, а в свойствах продолжения post_action (код r25)105. В строках оболочки есть FS_CTL и путь
/config/hd_debug/FS_CTL.txt (код r25)106. Про XML — §2.4 и §6.
kind |
Класс и поля | Поведение | Claim |
|---|---|---|---|
resolve_url |
FsResolveUrlDef: url (char *), try_mount_if_needed (bool) |
успех — fs_ctl_resolved_path |
(код r25)107 |
stat |
FsStatDef: path (char *) |
успех — fs_ctl_is_dir (1 каталог, 0 файл, -1 прочее) и fs_ctl_st_mode, fs_ctl_st_size, fs_ctl_st_mtime, fs_ctl_st_ctime |
(код r25)108 |
scandir |
FsScandirDef: path (char *), with_stat (bool), max_items_count (int) |
лимит 100000 при max_items_count<=0 или >=100000; ошибка stat элемента — error=1 у этого имени, итоговый статус не портит |
(код r25)109 |
get_file |
FsGetFileDef: path, target_path (char *), skip, max_size, chunk_size (int) |
max_size<=0 — предел 2147483647; chunk_size<=0 — 1048576, иначе 1024–1048576; пишет во временный .tmp и переименовывает; skip ≠ 0 — seek, отрицательный от конца (origin 2) |
(код r25)110 |
| Поле продолжения | Когда | Claim |
|---|---|---|
action_status |
1 при нулевом статусе команды, 0 при ненулевом; в прогоне scandir на tv188b r25 пришёл строкой "1" и "0" |
(устройство r25, код r25)111 |
fs_ctl_command |
имя команды | (код r25)112 |
fs_ctl_error |
при ненулевом статусе и наличии строки ошибки | (код r25)113 |
fs_ctl_content_size |
успешный get_file без output_path |
(код r25)114 |
fs_ctl_output_path |
scandir или get_file с непустым output_path; fs_ctl_output и fs_ctl_content_size тогда пропускаются |
(код r25)115 |
fs_ctl_write_output_failed=1 |
запись в output_path не удалась; action_status всё равно по статусу команды |
(код r25)116 |
fs_ctl_path |
наблюдался в прогоне scandir с output_path на tv188b r25, при успехе и при ошибке |
(устройство r25)117 |
В output_path результат сохраняют только scandir и get_file, остальные команды идут через свойства (код r25)118. При ошибке
scandir или get_file с output_path объект ошибки пишется без имени поля после input (код r25)119; что это значит
для JSON при scandir, видно в прогоне ниже, при get_file — §6.
scandir с output_path на устройстве (tv188b r25, один прогон запроса 11). На существующем каталоге /tmp/kb_probe11 продолжение получило action_status="1", fs_ctl_command=scandir,
fs_ctl_output_path и fs_ctl_path, а файл результата содержит объект input и output.names (устройство r25)9. На несуществующем /tmp/kb_probe11/no_such продолжение получило
action_status="0", fs_ctl_error="scandir failed" и те же три поля (устройство r25)120, а файл результата оказался синтаксически неверным JSON: анонимный объект ошибки после input,
{"input":{...},{"error":{...}}} (устройство r25)84 — BUG-038. Поэтому исход scandir смотрите в action_status, а файл разбирайте после него. Сбой самой записи в output_path в этом прогоне не моделировался: §6.
2.7. Новые действия r25: cond, load_and_scale_image, update_special_favorite_folder, apply_hash_dirties¶
cond — CondActionData {pattern, post_action} (код r25)121; манифест downloads задаёт так is_shown_action первой точки входа:
pattern is_plugin_file(dunemdb_supplier_online_movies/__v2) без post_action (код r25)122. В gui_condition r25 регистрируются
функции is_file и is_plugin_file и свойство separate_android_tv_apps (код r25)123; оператор ff равен firmware_feature
(код r25)124, его аргумент обрезается до 255 байт (код r25)125. is_plugin_file делит аргумент по первому /, ищет запись по части до
/ и истинен, только если <путь>/<остаток> — обычный файл (код r25)126. Как cond задаёт видимость точки входа downloads — §6.
В одном прогоне запроса 11 на tv188b r25 cond с pattern is_file(/tmp/kb_probe11/load.txt) выполнил свой post_action со строковым action_status="1" (устройство r25)8, а с
is_file(/tmp/kb_probe11/no_such) — свой post_action со строковым action_status="0" (устройство r25)127. Ложное условие в этом прогоне продолжение не отменило (устройство r25)127, поэтому результат читайте в его обработчике из action_status.
load_and_scale_image — LoadAndScaleImageActionData {icon_url, local_path, scale_if_needed, icon_width, icon_height,
post_action} (код r25)128. Фабрика добавляет scale_if_needed=1 и размеры только при истинном scale_if_needed, а post_action —
только если он непуст (код r25)129. local_path отвергается, если он короче 5 символов, не начинается с /, заканчивается на / или
начиная с позиции 2 в нём нет второго / (код r25)130; post_action при этом всё равно копируется в продолжение (код r25)131, и
оно получает action_status и при успешной, и при неудачной загрузке (код r25)132. Пример — MovieHelper::perform_add_special_favorite
для @Movies с целью /flashdata/main_screen_items/@Movies/$id.jpg и размером 291×437 (код r25)133. В одном прогоне запроса 11 на tv188b r25 действие с icon_url gui_skin://large_icons/apps.aai,
local_path /tmp/kb_probe11/img.aai и scale_if_needed=false создало файл 70344 байта и вызвало post_action со строковым action_status="1" (устройство r25)10; масштабирование в этом запуске было выключено.
update_special_favorite_folder — UpdateSpecialFavoriteFolderActionData {name, delete, skip_interactions, post_action} (код r25)134;
фабрика передаёт name, delete, post_action, объявленный skip_interactions не передаёт (код r25)135. MovieHelper вызывает
его при добавлении, когда to_root_folder=false (код r25)136, и с delete=true, когда список опустел (код r25)137.
apply_hash_dirties — ApplyHashDirtiesActionData {post_action} (код r25)138. DataModel::update_dirties_for_files
при force_sync или непустом file_by_folder_id добавляет его через add_result_action после сохранения (код r25)139, а HashDirties::write_file пишет
/flashdata/plugins_data/shell_ext/hash_dirties.txt по семь полей на строку через табуляцию (код r25)140. Что с файлом делает оболочка
и когда очищает — §6.
2.8. Выбрать файл или папку: choose_file (r24, r25)¶
ChooseFileActionData {filter, ui_params, post_action} (код r24)141 появился после r22 (§1.3). Фильтр — FileChooserFilter {file_type_dir,
file_extensions, check_writable} (код r24)142; интерфейс — FileChooserUiParams, в r25 к нему добавлены with_network_folders,
with_network_browser, new_folder_default_name (код r25)143. Если ui_params нет, оболочка r25 создаёт их со стандартной
инициализацией: оба сетевых флага true, with_favorite_folders=false, new_folder_default_name=null (код r25)144.
Результат — в продолжении: file_chooser_result_status (0, если выбран хотя бы один URL, иначе 1) (код r25)145, action_status=1 только
при нулевом статусе (код r25)146, file_chooser_result_urls_count и file_chooser_result_url_N с индексом от нуля (код r25)147.
Встроенный downloads поэтому принимает результат при action_status=1, file_chooser_result_status=0,
file_chooser_result_urls_count=1 и наличии file_chooser_result_url_0 (код r25)148; папку он запрашивает через
dir_only=true, check_writable=true, nf_name=dune_downloads, with_network=true (код r25)149. Цепочка видна на устройстве
(устройство r25)150.
2.9. Запустить команду: plugin_system и handle_response (r25)¶
plugin_system исполняет run_string: на tv188b r25 относительный bin/ga.sh boot из global_action выполнен как
system(sh …) с абсолютным путём каталога плагина (устройство r25)151, скрипт работал под uid 1000(system) с текущим каталогом / (устройство r25)152. Подробности о
фоновых процессах — в «Приёмы разработки плагинов Dune HD».
В r25 добавлен ключ handle_response (bool) (код r25)153. Если команда не распознана как фоновая и handle_response=true, после
safe_system наличие restart_needed_flag в каталоге из поля plugin+0x14 вызывает удаление флага и вызов функции 0x0069f754, независимо от кода
завершения (код r25)154; фоновая команда определяется по одиночному & в конце (не &&; допускается суффикс echo $!), тогда пишется лог игнорирования
(код r25)155. post_action копируется в продолжение и при фоне, и при ненулевом статусе (код r25)156; статус действия — 0 при
safe_system==0, иначе -1 (код r25)157. Встроенный s928x_dvfel задаёт handle_response yes в install и update манифеста (код r25)158, а его
ctl.sh при смене контрольной суммы библиотеки вне boot создаёт этот флаг, только если прежняя сумма непуста (код r25)159.
JSON-десериализация plugin_system этот ключ не читает: в обнулённых данных заполняются run_string и post_action, а handle_response остаётся false (код r25)16.
В XML-конструкторе отсутствие дочернего handle_response тоже даёт false: конструктор передаёт умолчание 0, а XML-помощник возвращает его при отсутствующем элементе (код r25)160.
handle_response=true в JSON на устройстве (tv188b r25, один прогон запроса 11). Действие plugin_system с run_string=bin/kbp11_ps.sh выполнило sh <каталог установки>/bin/kbp11_ps.sh; маркер записал pwd=/, а
post_action с k_ps пришёл без action_status (устройство r25)11. Созданные restart_needed_flag в tmp_dir_path и install_dir_path зонда оставались и сразу после шага, и через 10 с
(устройство r25)17; pid com.dunehd.app до действия и через 10 с после него один и тот же, 26976 (устройство r25)18. Причину этот прогон не устанавливает: §6.
3. Справочник¶
Столбец «Где» в §3.3–§3.5: r24, r25 значит «объявлено в dune_api.php этой прошивки», это code, а не проверка работы.
Перечень имён r24 подтверждён claims; все 316 имён define и 167 классов r24 есть и в r25 (код r24, r25)161, а значения и ключи сверены механически (§7). нет в r22 — по
(код r22, r24)42. device — наблюдение на tv188b r25. В столбце «Назначение» «не описано» значит, что claims о смысле нет, и догадка по имени
не записана. «По коду r25:» в §3.4 — фабрика и место вызова во встроенных плагинах r25 (shell_ext, android_apps, bt_setup,
downloads): что и когда плагин передаёт, а не что делает оболочка; выводы о действии оболочки — в §6.
3.1. Интерфейс DunePlugin и операции PluginOperationType (r24, r25)¶
Интерфейс объявляет 11 методов (код r24)24. Сигнатуры и результаты — по комментариям dune_plugin.php, $plugin_cookies — [inout] (код r24)62.
Строки операций — значения PLUGIN_OP_* (код)162; тип результата — get_out_type_code (код)163.
| Константа | Метод плагина | Результат | Тип данных ответа | Где | Claim |
|---|---|---|---|---|---|
PLUGIN_OP_GET_FOLDER_VIEW |
get_folder_view($media_url, &$plugin_cookies), при sel_state — _v2 |
PluginFolderView |
plugin_folder_view |
r24, r25 | (код r24)164 |
PLUGIN_OP_GET_NEXT_FOLDER_VIEW |
get_next_folder_view($media_url, &$plugin_cookies), при sel_state — _v2 |
PluginFolderView |
plugin_folder_view |
r24, r25 | (код r24)164 |
PLUGIN_OP_GET_REGULAR_FOLDER_ITEMS |
get_regular_folder_items($media_url, $from_ndx, &$plugin_cookies) |
PluginRegularFolderRange |
plugin_regular_folder_range |
r24, r25 | (код r24)165 |
PLUGIN_OP_HANDLE_USER_INPUT |
handle_user_input(&$user_input, &$plugin_cookies) |
GuiAction |
gui_action |
r24, r25; device (устройство r25)166 |
(код r24)2 |
PLUGIN_OP_GET_TV_INFO |
get_tv_info($media_url, &$plugin_cookies), при sel_state — _v2 |
PluginTvInfo |
plugin_tv_info |
r24, r25 | (код r24)167 |
PLUGIN_OP_GET_DAY_EPG |
get_day_epg($channel_id, $day_start_tm_sec, &$plugin_cookies) |
List<PluginTvEpgProgram> |
plugin_tv_epg_program_list |
r24, r25 | (код r24)168 |
PLUGIN_OP_GET_TV_PLAYBACK_URL |
get_tv_playback_url($channel_id, $archive_tm_sec, $protect_code, &$plugin_cookies), при program_id — _v2 |
строка | url |
r24, r25 | (код r24)169 |
PLUGIN_OP_GET_TV_STREAM_URL |
get_tv_stream_url($media_url, &$plugin_cookies), при sel_state — _v2 |
строка | url |
r24, r25 | (код r24)167 |
PLUGIN_OP_CHANGE_TV_FAVORITES |
change_tv_favorites($op_type, $channel_id, &$plugin_cookies); тип из fav_op_type |
GuiAction, расхождение — §5 |
gui_action |
r24, r25 | (код r24)170 |
PLUGIN_OP_GET_VOD_INFO |
get_vod_info($media_url, &$plugin_cookies), при sel_state — _v2 |
PluginVodInfo |
plugin_vod_info |
r24, r25 | (код r24)171 |
PLUGIN_OP_GET_VOD_STREAM_URL |
get_vod_stream_url($media_url, &$plugin_cookies), при sel_state — _v2 |
строка | url |
r24, r25; device (устройство r25)21 |
(код r24)171 |
PLUGIN_OP_GET_VOD_STREAM_INFO |
необязательный get_vod_stream_info($input_data, $plugin_cookies), в интерфейсе нет |
PluginStreamInfo |
plugin_stream_info |
нет в r22; r24, r25; device (устройство r25)172 |
(код)173 |
PLUGIN_OP_GET_FOLDER_ROWS |
необязательный get_folder_rows($media_url, $row_ids) |
PluginFolderRows |
plugin_folder_rows |
r25 | (код r25)45 |
Значения: get_folder_view, get_next_folder_view, get_regular_folder_items, handle_user_input, get_tv_info, get_day_epg, get_tv_playback_url, get_tv_stream_url, change_tv_favorites, get_vod_info, get_vod_stream_url, get_vod_stream_info, get_folder_rows.
3.2. PluginOutputData и PluginOutputDataType (r24, r25)¶
PluginOutputData — ключи has_data, data_type, data, plugin_cookies, is_error, error_action (код r24)174. Как оболочка r24
их проверяет — §2.2. Ветвь разбора data в оболочке r24 создаёт структуру по индексу типа; ниже индексы сведены со строками типа, это сопоставление — вывод (§6).
data_type |
Константа | Что читается из data |
Claim |
|---|---|---|---|
plugin_folder_view |
PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW |
PluginFolderView |
(код r24)175 |
plugin_regular_folder_range |
PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE |
PluginRegularFolderRange |
(код r24)176 |
gui_action |
PLUGIN_OUT_DATA_GUI_ACTION |
GuiAction |
(код r24)177 |
plugin_tv_info |
PLUGIN_OUT_DATA_PLUGIN_TV_INFO |
PluginTvInfo |
(код r24)178 |
plugin_tv_epg_program_list |
PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST |
список PluginTvEpgProgram |
(код r24)179 |
url |
PLUGIN_OUT_DATA_URL |
строка | (код r24)180 |
plugin_vod_info |
PLUGIN_OUT_DATA_PLUGIN_VOD_INFO |
PluginVodInfo |
(код r24)181 |
plugin_stream_info |
PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO |
PluginStreamInfo: url, markers |
(код r24)182 |
plugin_folder_rows (r25) |
PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS |
PluginFolderRows; строки есть в libduneshell.so r25 |
(код r25)183 |
3.3. Константы define и перечисления (r24, r25)¶
Значения — из claims r24, новые в r25 помечены; сверка с файлом r25 — §7. GuiEventKind — 91 константа (код r24)184: клавиши и часть прочих — в
«Ввод и диалоги», здесь их нет; остальные — в строке таблицы. В r22 нет
GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH (код r22, r24)42.
| Группа | Значения | Где | Claim |
|---|---|---|---|
VALIGN_* |
VALIGN_TOP=0, VALIGN_CENTER=1, VALIGN_BOTTOM=2 |
r24, r25 | (код r24)185 |
HALIGN_* |
HALIGN_LEFT=0, HALIGN_CENTER=1, HALIGN_RIGHT=2 |
r24, r25 | (код r24)186 |
FONT_SIZE_* |
FONT_SIZE_NORMAL=0, FONT_SIZE_SMALL=1, FONT_SIZE_LARGE=4 |
r24, r25 | (код r24)187 |
CYCLE_MODE_GAP_* |
CYCLE_MODE_GAP_AUTO=0, CYCLE_MODE_GAP_YES=1, CYCLE_MODE_GAP_NO=2 |
r24, r25 | (код r24)188 |
ORIENTATION_* |
ORIENTATION_VERTICAL=0, ORIENTATION_HORIZONTAL=1 |
r24, r25 | (код r24)189 |
USE_TZ_* |
USE_TZ_GMT=0, USE_TZ_LOCAL=1, USE_TZ_NONE=2 |
r24, r25 | (код r24)190 |
EPG_* |
EPG_START_OVER_ENABLED=4, EPG_START_OVER_DISABLED=8, EPG_TRICK_PLAY_ENABLED=16 |
r24, r25 | (код r24)191 |
GUI_ACTION_FLAG_* |
GUI_ACTION_FLAG_SKIP_ON_PLAY_RESTART=1 |
r24, r25 | (код r24)38 |
CHANGE_OP_* |
CHANGE_OP_ADD=2, CHANGE_OP_DELETE=3, CHANGE_OP_DELETE_ANDROID_APPS_EXCEPT=101, CHANGE_OP_NOP=0, CHANGE_OP_REPLACE=1, CHANGE_OP_TOGGLE=4 |
r24, r25 | (код r24)192 |
EDIT_LIST_CONFIG_OPT_* |
EDIT_LIST_CONFIG_OPT_ALLOW_EMPTY=0x2, EDIT_LIST_CONFIG_OPT_REMOVE_UNCHECKED=0x1, EDIT_LIST_CONFIG_OPT_WITH_DEFAULT=0x4 |
r24, r25 | (код r24)193 |
GCOMP_GEOM_OPT_* |
GCOMP_GEOM_OPT_NON_NEGATIVE_X=0x1, GCOMP_GEOM_OPT_NON_NEGATIVE_Y=0x2 |
r24, r25 | (код r24)194 |
GCOMP_OPT_* |
GCOMP_OPT_APPEAR_WITH_FADE=0x100, GCOMP_OPT_BG_PICTURE=0x8, GCOMP_OPT_DEBUG_FRAME=0x01000000, GCOMP_OPT_EMPTY_WITH_VIDEO=0x20, GCOMP_OPT_FOCUS=0x100000, GCOMP_OPT_IMG_CHECK_EFF_URL=0x200000, GCOMP_OPT_NO_CLIP=0x4, GCOMP_OPT_NO_PREPAINT=0x2, GCOMP_OPT_PREPAINT=0x1, GCOMP_OPT_TRANSPARENT_WITH_VIDEO=0x10, GCOMP_OPT_TTF_COMPACT_HEIGHT=0x2000, GCOMP_OPT_TTF_LAYOUT_FIX=0x1000, GCOMP_OPT_TTF_QUALITY_WRAP=0x4000; в r25: GCOMP_OPT_STUB=0x400000 |
r24, r25 | (код)195 |
PLUGIN_ROW_OPT_* |
PLUGIN_ROW_OPT_FIRST_IN_CLUSTER=0x1, PLUGIN_ROW_OPT_FIRST_WITH_INFO=0x2; в r25: PLUGIN_ROW_OPT_LOADING=0x4, PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE=0x8 |
r24, r25 | (код)196 |
DialogFrameStyle |
DIALOG_FRAME_STYLE_DEFAULT=default, DIALOG_FRAME_STYLE_GLASS=glass, DIALOG_FRAME_STYLE_TRANSPARENT=transparent, DIALOG_FRAME_STYLE_PLAYBACK_INFO=playback_info |
r24, r25 | (код r24)197 |
GCompFocusType |
GCOMP_FOCUS_NONE=none, GCOMP_FOCUS_SYSTEM=system, GCOMP_FOCUS_DEFAULT_CUT_IMAGE=default_cut_image, GCOMP_FOCUS_INACTIVE_CUT_IMAGE=inactive_cut_image, GCOMP_FOCUS_DEFAULT_RECT=default_rect, GCOMP_FOCUS_RECT2=rect2, GCOMP_FOCUS_RECT3=rect3 |
r24, r25 | (код r24)198 |
GCompItemType |
GCOMP_ITEM_REGULAR=regular, GCOMP_ITEM_LABEL=label, GCOMP_ITEM_BUTTON=button, GCOMP_ITEM_TEXT_FIELD=text_field |
r24, r25 | (код r24)199 |
GCompLayoutRole |
GCOMP_LAYOUT_UNSET=unset, GCOMP_LAYOUT_TOP=top, GCOMP_LAYOUT_BOTTOM=bottom, GCOMP_LAYOUT_LEFT=left, GCOMP_LAYOUT_RIGHT=right, GCOMP_LAYOUT_CENTER=center |
r24, r25 | (код r24)200 |
GCompTextFit |
GCOMP_TEXT_FIT_CROP=crop, GCOMP_TEXT_FIT_INSERT_ELLIPSIS=insert_ellipsis, GCOMP_TEXT_FIT_APPEND_ELLIPSIS=append_ellipsis |
r24, r25 | (код r24)201 |
GCompTransition |
GCOMP_TRANSITION_NONE=none, GCOMP_TRANSITION_LAST_STEP=last_step, GCOMP_TRANSITION_DEFAULT=default, GCOMP_TRANSITION_FADE=fade |
r24, r25 | (код r24)202 |
GComponentKind |
GCOMPONENT_LABEL=label, GCOMPONENT_TTF_LABEL=ttf_label, GCOMPONENT_RECT=rect, GCOMPONENT_IMAGE=image, GCOMPONENT_CUT_IMAGE=cut_image, GCOMPONENT_SANDWICH=sandwich, GCOMPONENT_BUTTON=button, GCOMPONENT_TEXT_FIELD=text_field, GCOMPONENT_PANEL=panel, GCOMPONENT_SCROLL_PANE=scroll_pane, GCOMPONENT_PREPAINT_PANE=prepaint_pane, GCOMPONENT_SCROLLBAR=scrollbar |
r24, r25 | (код r24)203 |
GCompsFlipEffect |
GCOMPS_FLIP_EFFECT_NONE=none, GCOMPS_FLIP_EFFECT_FADE=fade, GCOMPS_FLIP_EFFECT_FADE_OUT_SCALED=fade_out_scaled |
r24, r25 | (код r24)204 |
GuiControlKind |
GUI_CONTROL_LABEL=label, GUI_CONTROL_PROGRESS_BAR=progress_bar, GUI_CONTROL_COMBOBOX=combobox, GUI_CONTROL_TEXT_FIELD=text_field, GUI_CONTROL_BUTTON=button, GUI_CONTROL_VGAP=vgap |
r24, r25 | (код r24)205 |
GuiEventKind (нет в input-dialogs) |
GUI_EVENT_FOLDER_LEAVE=folder_leave, GUI_EVENT_FOLDER_ENTER=folder_enter, GUI_EVENT_FOLDER_RETURN_BACK=folder_return_back, GUI_EVENT_MENU_PLAYBACK_OSD_CLOSED=menu_playback_osd_closed, GUI_EVENT_MENU_PLAYBACK_OSD_GOING_TO_OPEN=menu_playback_osd_going_to_open, GUI_EVENT_MENU_PLAYBACK_FINISH=menu_playback_finish, GUI_EVENT_MENU_EXT_APP_FINISH=menu_ext_app_finish, GUI_EVENT_WEB_BROWSER_FINISH=web_browser_finish, GUI_EVENT_BOOT=boot, GUI_EVENT_BOOT_END=boot_end, GUI_EVENT_INSTALL=install, GUI_EVENT_UPDATE=update, GUI_EVENT_UNINSTALL=uninstall, GUI_EVENT_GOING_TO_UPDATE=going_to_update, GUI_EVENT_GOING_TO_STOP=going_to_stop, GUI_EVENT_GUI_START=gui_start, GUI_EVENT_EARLY_GUI_START=early_gui_start, GUI_EVENT_STORAGE_DETECTED_MENU=storage_detected_menu, GUI_EVENT_FILE_POPUP_MENU=file_popup_menu, GUI_EVENT_TOPMENU_POPUP_MENU=topmenu_popup_menu, GUI_EVENT_TOPMENU_REFRESH=topmenu_refresh, GUI_EVENT_GOING_TO_RELOAD_ALL_FOLDERS=going_to_reload_all_folders, GUI_EVENT_FAVORITES_UPDATED=favorites_updated, GUI_EVENT_NETWORK_CHANGE=network_change, GUI_EVENT_SETTINGS_UPDATED=settings_updated, GUI_EVENT_CONFIRM_UPDATE=confirm_update, GUI_EVENT_SHUTDOWN=shutdown |
r24, r25 | (код r24)184 |
PluginEpgMode |
PLUGIN_EPG_DISABLED=disabled, PLUGIN_EPG_USE_DAY_REQUEST=use_day_request, PLUGIN_EPG_GET_FROM_STREAM=get_from_stream, PLUGIN_EPG_USE_DVB_PROVIDER=use_dvb_provider |
r24, r25 | (код r24)206 |
PluginFavoritesOpType |
PLUGIN_FAVORITES_OP_ADD=add, PLUGIN_FAVORITES_OP_REMOVE=remove, PLUGIN_FAVORITES_OP_MOVE_UP=move_up, PLUGIN_FAVORITES_OP_MOVE_DOWN=move_down |
r24, r25 | (код r24)207 |
PluginFolderViewKind |
PLUGIN_FOLDER_VIEW_REGULAR=view_regular, PLUGIN_FOLDER_VIEW_CONTROLS=view_controls, PLUGIN_FOLDER_VIEW_MOVIE=view_movie, PLUGIN_FOLDER_VIEW_GCOMPS=view_gcomps, PLUGIN_FOLDER_VIEW_ROWS=view_rows |
r24, r25 | (код r24)208 |
PluginFontSize |
PLUGIN_FONT_NORMAL=normal, PLUGIN_FONT_SMALL=small |
r24, r25 | (код r24)209 |
PluginRowType |
PLUGIN_ROW_TYPE_VGAP=row_vgap, PLUGIN_ROW_TYPE_GCOMPS=row_gcomps, PLUGIN_ROW_TYPE_REGULAR=row_regular, PLUGIN_ROW_TYPE_TITLE=row_title; в r25: PLUGIN_ROW_TYPE_DUP=row_dup |
r24, r25 | (код)210 |
StreamMarkerType |
STREAM_MARKER_INTRO=intro, STREAM_MARKER_RECAP=recap, STREAM_MARKER_CLOSING_CREDITS=closing_credits |
нет в r22; r24, r25 | (код)211 |
FsCmdKind |
FS_CMD_RESOLVE_URL=resolve_url, FS_CMD_STAT=stat, FS_CMD_SCANDIR=scandir, FS_CMD_GET_FILE=get_file |
r25 | (код r25)212 |
Таблица даёт значения. Смысл отдельных констант записан там, где они используются: CHANGE_OP_DELETE_ANDROID_APPS_EXCEPT —
§3.4, edit_main_screen; PLUGIN_FAVORITES_OP_* — fav_op_type операции change_tv_favorites (код r24)213; PLUGIN_ROW_OPT_LOADING,
PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE и GCOMP_OPT_STUB — §2.5. FS_CMD_* — имена выражений def->kind == FS_CMD_* есть в libduneshell.so r25 (код r25)214.
3.4. Действия: *_ACTION_ID и классы *ActionData (r24, r25)¶
92 действия по областям, фабрики — из shell_ext, r24, если не сказано иное (код r24)4. Ключи — в порядке объявления. Строки с пометкой «(?)»
сведены только по сходству имён (§6). «SDK:» в ячейке — сокращение для «по SDK, на r24+ не подтверждено».
Папки, путь и обновление экрана
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
PLUGIN_OPEN_FOLDER_ACTION_ID = plugin_open_folder |
PluginOpenFolderActionData: caption, media_url, id, sel_id, tags, keep_osd_context, post_action |
SDK: открывает папку плагина, caption добавляет в блок пути, вызывает get_folder_view($media_url) (SDK)215; media_url=null — берёт выбранный элемент (SDK)216. Фабрика: open_folder_ext. |
r24, r25 | (код r24)217 |
OPEN_FOLDER_ACTION_ID = open_folder |
OpenFolderActionData: media_url, caption |
SDK: открывает обычную, не плагинную папку (SDK)218. Фабрика с похожим именем строит другое действие — §5. | r24, r25 | (код)219 |
PLUGIN_EXIT_FOLDERS_ACTION_ID = plugin_exit_folders |
PluginExitFoldersActionData (?): count, post_action |
По коду r25: фабрика exit_folders плагина downloads строит действие с count и post_action, а при неопределённой константе PluginExitFoldersActionData::count возвращает только post_action; манифест downloads ставит plugin_exit_folders в global_actions install и update (код r25)220. Смысл count — §6. Запуск при count=0 (один прогон на tv188b r25): post_action вызван, play_mode=none, в сохранённом вводе нет action_status (устройство r25)13; выход из папок при count>0 не наблюдался. |
нет в r22; r24, r25; фабрика и манифест — код r25; device только при count=0 |
(код)221 |
PLUGIN_REPLACE_PATH_ACTION_ID = plugin_replace_path |
PluginReplacePathActionData: erase_count, elements, sel_id, post_action |
По коду r25: фабрика replace_path (shell_ext) передаёт erase_count, elements и post_action, а sel_id не передаёт; единственный вызывающий — PathHelper::update_movie_file_matching_path: erase_count = get_movie_screens_count(), elements — элементы пути (media_url, caption, id) нового фильма (код r25)222. Что делает оболочка — §6. Фабрика: replace_path. |
r24, r25; вызов — код r25 | (код r24)223 |
RENAME_PATH_ACTION_ID = rename_path |
RenamePathActionData: caption, post_action |
По коду r25: shell_ext выдаёт действие после успешного rename_mc_folder: close_dialog_and_run(rename_path($caption, invalidate_all_folders(...))) (код r25)224. Что делает оболочка — §6. Фабрика: rename_path. |
r24, r25; вызов — код r25 | (код r24)225 |
PLUGIN_INVALIDATE_FOLDERS_ACTION_ID = plugin_invalidate_folders |
PluginInvalidateFoldersActionData: media_urls, all_except, repopulate, post_action |
SDK: сбрасывает кэш папок (SDK)226; «Экраны и папки плагина». Фабрика: invalidate_folders. |
r24, r25 | (код r24)227 |
PLUGIN_UPDATE_FOLDER_ACTION_ID = plugin_update_folder |
PluginUpdateFolderActionData: range, need_refresh, sel_ndx |
SDK: частично заменяет состояние регулярной папки (SDK)228; «Экраны и папки плагина». Фабрика: update_regular_folder. |
r24, r25 | (код r24)229 |
RESET_CONTROLS_ACTION_ID = reset_controls |
ResetControlsActionData: defs, initial_sel_ndx, keep_inner_state, post_action |
SDK: заменяет состояние диалога или папки с контролами (SDK)230; «Экраны и папки плагина». Фабрика: reset_controls. |
r24, r25 | (код r24)231 |
CHANGE_BEHAVIOUR_ACTION_ID = change_behaviour |
ChangeBehaviourActionData: actions, timer, post_action |
SDK: заменяет заданную карту действий и перезапускает заданный таймер (SDK)232; «Экраны и папки плагина». Фабрика: change_behaviour. |
r24, r25 | (код r24)233 |
CHANGE_GCOMPS_ACTION_ID = change_gcomps |
ChangeGCompsActionData: change_defs, window_change, interrupt_disabled, num_steps, flip_effect, duration_multiplier, small_state_text, sel_state, ui_state, skip_repaint, post_action |
«Экраны и папки плагина». Фабрика: change_gcomps. |
r24, r25 | (код r24)234 |
PLUGIN_UPDATE_STICKER_ACTION_ID = plugin_update_sticker |
PluginUpdateStickerActionData: sticker, ep_media_url, post_action |
«Экраны и папки плагина». Фабрика: update_sticker. |
r24, r25 | (код r24)235 |
PLUGIN_UPDATE_ROWS_INFO_ACTION_ID = plugin_update_rows_info |
PluginUpdateRowsInfoActionData: clear_cache, invalidate_cache, info, post_action |
«Экраны и папки плагина». Фабрика: update_rows_info. |
r24, r25 | (код r24)236 |
PLUGIN_UPDATE_ROWS_MENU_ACTION_ID = plugin_update_rows_menu |
PluginUpdateRowsMenuActionData (?): reload_topmenu, post_action |
По коду r25: фабрика update_rows_menu плагина android_apps передаёт reload_topmenu и post_action; apps_setup_screen выдаёт update_rows_menu(true, …) после AppShortcuts::set_dirty, AppConfig::set_dirty и EpfsHandler::update_apps_epfs. Что делает оболочка (перечитать меню строк и верхнее меню) — только по имени ключа, не проверено (код r25)237. |
r24, r25; вызов — код r25 | (код r24)238 |
PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID = plugin_refresh_entry_points |
PluginRefreshEntryPointsActionData (?): post_action |
не описано | r24, r25 | (код r24)239 |
UPDATE_FOLDER_MARKS_ACTION_ID = update_folder_marks |
UpdateFolderMarksActionData: change_op, ids, marks_output_key, post_action |
В «Недавнем» r25 update_folder_marks(CHANGE_OP_NOP, null, 'marks_str', post_action) оборачивает Popup и Clear (код r25)240. Фабрика: update_folder_marks. |
r24, r25 | (код r24)241 |
PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID = plugin_clear_archive_cache |
PluginClearArchiveCacheActionData: archive_id, post_action |
SDK: удаляет кэш архивов плагина; при archive_id=null — все архивы плагина (SDK)242. Фабрика: clear_archive_cache. |
r24, r25 | (код r24)243 |
PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID = plugin_update_archive_cache |
PluginUpdateArchiveCacheActionData (?): archive, reread_archive_dir, post_action |
не описано | r24, r25 | (код r24)244 |
PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID = plugin_update_epf_mapping |
PluginUpdateEpfMappingActionData: epf_id, mapped_plugin_name, sync_epfs, post_action |
По коду r25: фабрика update_epf_mapping (shell_ext) без MainHelper::$with_newgui возвращает post_action; reread_all_epfs($sync_epfs) — тот же вызов с epf_id и mapped_plugin_name = null (код r25)245. С непустым epf_id действие строит get_update_epf_action: для каждой пары epf_id => имя плагина из $epf_mapping, sync_epfs=false, только при HD::with_epfs() (код r25)246. Что делает оболочка — §6. Фабрика: update_epf_mapping. |
r24, r25; вызов — код r25 | (код r24)247 |
SHOW_MAIN_SCREEN_ACTION_ID = show_main_screen |
ShowMainScreenActionData: post_action |
SDK: переключает на главный экран; добавлено для auto_start, реализация с ограничениями (SDK)248. Фабрика: show_main_screen. |
r24, r25 | (код r24)249 |
SHOW_BLACK_SCREEN_ACTION_ID = show_black_screen |
ShowBlackScreenActionData: bg_url, post_action |
SDK: чёрный экран либо картинка bg_url (SDK)250. |
r24, r25 | (код)251 |
Диалоги, меню и ошибки
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
SHOW_DIALOG_ACTION_ID = show_dialog |
ShowDialogActionData: title, defs, actions, timer, close_by_return, preferred_width, max_height, min_item_title_width, initial_sel_ndx, params |
SDK: показывает диалог с контролами (SDK)252; «Ввод и диалоги», поля — «Ввод и диалоги». Фабрика: show_dialog. |
r24, r25; device (устройство r25)253 |
(код r24)254 |
SHOW_GCOMPS_DIALOG_ACTION_ID = show_gcomps |
ShowGCompsDialogActionData (?): geom_def, comp_defs, focus, ui_state, sel_state, actions, timer, params, async_icon_loading |
не описано | r24, r25 | (код r24)255 |
CLOSE_DIALOG_AND_RUN_ACTION_ID = close_dialog_and_run |
CloseDialogAndRunActionData: post_action |
SDK: закрывает диалог и возвращает post_action (SDK)256; «Ввод и диалоги». Фабрика: close_dialog_and_run. |
r24, r25 | (код r24)257 |
CLOSE_AND_RUN_ACTION_ID = close_and_run |
CloseAndRunActionData: post_action |
SDK: при активном диалоге с контролами работает как close_dialog_and_run (SDK)258; «Ввод и диалоги». Фабрика: close_and_run. |
r24, r25 | (код r24)259 |
SHOW_POPUP_MENU_ACTION_ID = show_popup_menu |
ShowPopupMenuActionData: menu_items, selected_menu_item_index, prepend_items_from_selected_plugin |
SDK: показывает всплывающее меню (SDK)260; «Ввод и диалоги». Фабрика: show_popup_menu. |
r24, r25 | (код r24)261 |
ADD_MENU_ITEMS_ACTION_ID = add_menu_items |
AddMenuItemsActionData: menu_id, menu_params, menu_items, sel_ndx, post_action |
«Ввод и диалоги». В GlobalTV — ответ на topmenu_popup (код)262. Фабрика: add_menu_items. |
r24, r25 | (код r24)263 |
RENAME_MENU_ITEM_ACTION_ID = rename_menu_item |
RenameMenuItemActionData (?): id, caption, orig_caption, with_dialog, post_action |
По коду r25: фабрика rename_menu_item плагина android_apps передаёт id, caption, orig_caption, with_dialog (по умолчанию true) и post_action; AppsScreen::rename передаёт id пункта меню приложения, текущую и исходную подпись, with_dialog=true и продолжение finalize_rename; по месту вызова — диалог переименования пункта меню (код r25)264. |
r24, r25; вызов — код r25 | (код r24)265 |
PLUGIN_SHOW_ERROR_ACTION_ID = plugin_show_error |
PluginShowErrorActionData: fatal, title, msg_lines, stop_playback, retry_delay_ms, options, post_action |
SDK: сообщение в центре экрана или диалог (SDK)266; «Ввод и диалоги». | r24, r25; device (устройство r25)267 |
(код r24)268 |
CHOOSE_FILE_ACTION_ID = choose_file |
ChooseFileActionData: filter, ui_params, post_action |
Диалог выбора файла или папки: §2.8. | нет в r22; r24, r25; device (устройство r25)150 |
(код)269 |
Воспроизведение, ТВ и EPG
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
PLUGIN_VOD_PLAY_ACTION_ID = plugin_vod_play |
PluginVodPlayActionData: vod_info |
SDK: запускает VOD (SDK)270; «Воспроизведение из плагина». Фабрика: vod_play. |
r24, r25; device (устройство r25)271 |
(код r24)272 |
PLUGIN_TV_PLAY_ACTION_ID = plugin_tv_play |
PluginTvPlayActionData: initial_group_id, initial_channel_id, initial_is_favorite, initial_archive_tm, initial_trick_play, initial_trick_play_duration, initial_archive_program |
SDK: запускает ТВ (SDK)273; «Воспроизведение из плагина». Фабрика: tv_play. |
r24, r25 | (код r24)274 |
LAUNCH_MEDIA_URL_ACTION_ID = launch_media_url |
LaunchMediaUrlActionData: url, caption, play_in_background, start_index, internal_player_only, resume_extra_choices, resume_ext_text, params, post_action |
SDK: строит плейлист и выбирает исполнителя (SDK)275; «Воспроизведение из плагина». Фабрика: launch_media_url_ext. |
r24, r25; device (устройство r25)276 |
(код r24)277 |
FILE_PLAY_ACTION_ID = file_play |
FilePlayActionData: url, caption |
SDK: один файл или поток (SDK)278; «Воспроизведение из плагина». Фабрика: launch_file. |
r24, r25 | (код r24)279 |
PLAYLIST_PLAY_ACTION_ID = playlist_play |
PlaylistPlayActionData: url, start_index |
SDK: плейлист из файла или папки (SDK)280; «Воспроизведение из плагина». Фабрика: launch_playlist. |
r24, r25 | (код r24)281 |
DVD_PLAY_ACTION_ID = dvd_play |
DvdPlayActionData: url |
SDK: DVD по url (SDK)282; «Воспроизведение из плагина». |
r24, r25 | (код)283 |
BLURAY_PLAY_ACTION_ID = bluray_play |
BlurayPlayActionData: url |
SDK: Blu-ray по url, только в прошивках с поддержкой Blu-ray (SDK)284; «Воспроизведение из плагина». |
r24, r25 | (код)285 |
STOP_PLAYBACK_ACTION_ID = stop_playback |
StopPlaybackActionData: wait_for_completion, post_action |
не описано Фабрика: stop_playback. Запуск с wait_for_completion=true без воспроизведения (play_mode=none, один прогон на tv188b r25): post_action вызван с play_mode=none, в сохранённом вводе нет action_status (устройство r25)12; остановка идущего воспроизведения не наблюдалась. |
r24, r25; device только без воспроизведения |
(код r24)286 |
SWITCH_OSD_MODE_ACTION_ID = switch_osd_mode |
SwitchOsdModeActionData: osd_mode, post_action |
По коду r25: MovieScreen при запуске того же фильма, что уже играет (movie id из info_tag), вместо нового запуска возвращает switch_osd_mode(true) с логом «just switching to osd» (код r25)287. Что делает оболочка — §6. Фабрика: switch_osd_mode. |
r24, r25; вызов — код r25 | (код r24)288 |
PLUGIN_UPDATE_OSD_ACTION_ID = plugin_update_osd |
PluginUpdateOsdActionData: components, post_action |
SDK: свои картинки и тексты на OSD (SDK)289; «Воспроизведение из плагина». | r24, r25 | (код r24, SDK)290 |
PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID = plugin_update_info_block |
PluginUpdateInfoBlockActionData: text_above, text_color, text_halo, text_y_offset, post_action |
SDK: сообщение над информационным блоком (SDK)291, только в ТВ- и VOD-воспроизведении (SDK)292. | r24, r25 | (код r24, SDK)293 |
PLUGIN_UPDATE_EPG_ACTION_ID = plugin_update_epg |
PluginUpdateEpgActionData: channel_id, clear, day_start_tm_sec, programs, ext_epg_enabled, post_action |
SDK: обновляет EPG в памяти плеера (SDK)294, только в ТВ-воспроизведении (SDK)295. | r24, r25 | (код r24, SDK)296 |
PLUGIN_TV_SELECT_CHANNEL_ACTION_ID = plugin_tv_select_channel |
PluginTvSelectChannelActionData (?): group_id, channel_id, is_favorite |
не описано | r24, r25 | (код r24)297 |
PLUGIN_UPDATE_TV_INFO_ACTION_ID = plugin_update_tv_info |
PluginUpdateTvInfoActionData (?): channel_changes, post_action |
не описано | нет в r22; r24, r25 | (код)298 |
UPDATE_TV_INFO_ACTION_ID = update_tv_info |
UpdateTvInfoActionData (?): post_action |
Плагин dunemdb вызывает его из do_play, если константа определена, а tv_info_updated ещё нет (код)299. |
r24, r25 | (код r24)300 |
DETECT_SERIES_ACTION_ID = detect_series |
DetectSeriesActionData (?): base_path, rel_paths, result_path, post_action |
Плагин dunemdb читает результат info_by_name и проставляет сезон и серию (код)301. |
r24, r25 | (код r24)302 |
DVB_COMMAND_ACTION_ID = dvb_command |
DvbCommandActionData (?): name, params, callback_action |
не описано | r24, r25 | (код r24)303 |
UPDATE_DVB_CHANNELS_ACTION_ID = update_dvb_channels |
UpdateDvbChannelsActionData (?): post_action |
не описано | r24, r25 | (код r24)304 |
Вызов плагина, система, сеть, файлы
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
PLUGIN_HANDLE_USER_INPUT_ACTION_ID = plugin_handle_user_input |
PluginHandleUserInputActionData: operation_timeout, show_dialog_delay, dialog_title |
Вызов операции handle_user_input; params действия приходят в input_data (устройство r25)305. Тайм-аут: «Операции плагина, тайм-ауты и php_server». Фабрика: handle_user_input. |
r24, r25; device (устройство r25)166 |
(код r24)306 |
COMPOSITE_ACTION_ID = composite |
CompositeActionData: actions |
Фабрика заполняет actions (код r24)307. Фабрика: composite. Из двух plugin_handle_user_input (один прогон на tv188b r25) выполнились a_composite-1, затем a_composite-2; обе записи post — с одинаковым временем 1793666163.336 и без action_status (устройство r25)308. |
r24, r25; device (устройство r25)308 |
(код r24)309 |
STATUS_ACTION_ID = status |
StatusActionData: status |
SDK: просто возвращает заданный статус (SDK)310. Фабрика: status. |
r24, r25 | (код r24)311 |
SLEEP_ACTION_ID = sleep |
SleepActionData (?): delay_ms, post_action |
Запуск с delay_ms=500 (один прогон на tv188b r25): post_action вызван в 03:36:07, начало шага — 03:36:06, в записанном продолжении нет action_status (устройство r25)14; длительность паузы из этих отметок не следует. |
r24, r25; device только продолжение |
(код r24)312 |
COND_ACTION_ID = cond |
CondActionData: pattern, post_action |
Условие с pattern: §2.7. |
r25; device с is_file (устройство r25)313 |
(код r25)314 |
RUN_BUILTIN_ACTION_ID = run_builtin |
RunBuiltinActionData: builtin_action_id, params, post_action, error_action |
SDK: запуск встроенной функции (SDK)315, публичный список зависит от прошивки и пуст (SDK)316. В манифестах r24 встречается (код r24)317. Фабрика: run_builtin. |
r24, r25 | (код r24)318 |
RUN_DEFAULT_ACTION_ID = run_default |
RunDefaultActionData: event, post_action |
Фабрика: run_default. В запросе 12 на tv188b r25 (один прогон) ENTER на первом пункте открытой папки дал ответ run_default с event=key_info и post_action с tag=a_default (устройство r25)319; оболочка сразу записала «action D: not recognized kb_probe12->run_default()» (устройство r25)320, а a_default в сохранённых handle_user_input(post) не появился ни сразу, ни после BACK (устройство r25)321. Причина не установлена; прогон запроса 11 — §6. |
r24, r25; device — один прогон |
(код r24)322 |
PLUGIN_SYSTEM_ACTION_ID = plugin_system |
PluginSystemActionData: run_string, post_action; в r25: handle_response |
Команда shell; на tv188b r25 относительный путь отсчитан от каталога плагина: §2.9. | r24, r25; device (устройство r25)323 |
(код)324 |
PLUGIN_RUN_NATIVE_CODE_ACTION_ID = plugin_run_native_code |
данных нет — по SDK (SDK)325 | Загружает native_code.so плагина (устройство r25)326; подробности — (устройство r25)327. |
r24, r25; device (устройство r25)326 |
(код r24)328 |
FS_CTL_ACTION_ID = fs_ctl |
FsCtlActionData: cmd, output_path, post_action |
Файловые команды: §2.6. | r25; device только scandir (устройство r25)117 |
(код r25)329 |
LOAD_AND_SCALE_IMAGE_ACTION_ID = load_and_scale_image |
LoadAndScaleImageActionData: icon_url, local_path, scale_if_needed, icon_width, icon_height, post_action |
Скачать и уменьшить картинку: §2.7. Фабрика: load_and_scale_image. |
r25; device при scale_if_needed=false (устройство r25)10 |
(код r25)330 |
WGET_ACTION_ID = wget |
WgetActionData: id, url, post_data, curl_opts, target_path, target_cmd, result_key_prefix, post_action |
SDK: HTTP-запрос, статус и данные — в post_action (SDK)331; из плагинов не рекомендуется (SDK)332. Оболочка r25 им пользуется (код r25)333. Фабрика: wget. |
r24, r25 | (код r24)334 |
UPDATE_IMAGES_ACTION_ID = update_images |
UpdateImagesActionData (?): url_prefix, storage_dir_name, names, title, post_action |
не описано | r24, r25 | (код r24)335 |
CHANGE_SETTINGS_ACTION_ID = change_settings |
ChangeSettingsActionData: settings, reboot, restart_gui, post_action |
SDK: меняет настройки Dune парами «имя → значение» (SDK)336, в TV/VOD не действует (SDK)337. На r25 restart_gui=true при reboot=false и пустых settings перезапускает приложение Dune, а не приставку (устройство r25)338. Фабрика: change_settings. |
r24, r25; device (устройство r25)339 |
(код r24)340 |
RESTART_ACTION_ID = restart |
RestartActionData: reboot, factory_reset |
Фабрика заполняет reboot (код r24)341. По коду r25: фабрики shell_ext и bt_setup передают только reboot, android_apps — reboot и factory_reset; android_apps выдаёт restart(true) после записи AUTOSTART_ONCE_FILE, а пункт reset_settings — close_dialog_and_run(restart(false, true)) (код r25)342. Фабрика: restart. |
r24, r25; вызов — код r25 | (код r24)343 |
SET_TIME_ZONE_ACTION_ID = set_time_zone |
SetTimeZoneActionData (?): offset_sec, has_dst, olson_id, preferred_olson_ids, post_action |
не описано | r24, r25 | (код r24)344 |
CONFIRM_LOCATION_ACTION_ID = confirm_location |
ConfirmLocationActionData (?): post_action |
не описано | r24, r25 | (код r24)345 |
WAIT_FOR_IP_ADDRESS_ACTION_ID = wait_for_ip_address |
WaitForIpAddressActionData: timeout_sec, post_action |
SDK: ждёт IP-адрес со стандартным диалогом (SDK)346. | r24, r25 | (код r24, SDK)347 |
CHECK_SYSTEM_STORAGE_ACTION_ID = check_system_storage |
CheckSystemStorageActionData: required_space, recommended_space, title, messages, post_action |
Фабрика принимает title, но в data его не пишет (код)348. По коду r25 вызывающие (setup_data_storage, setup_folder, setup_all_folders) выдают check_system_storage(0, 0, null, array(), …) и в продолжении ветвятся по $user_input->check_succeeded (код r25)349. Что проверяет оболочка — §6. Фабрика: check_system_storage. |
r24, r25; вызов — код r25 | (код r24)350 |
INIT_PERSISTFS_ACTION_ID = init_persistfs |
InitPersistfsActionData (?): post_action |
не описано | r24, r25 | (код r24)351 |
BT_COMMAND_ACTION_ID = bt_command |
BtCommandActionData (?): name, params, callback_action |
По коду r25: bt_setup выдаёт действие с name update_paired_devices_list, add_device, open_details, unpair_device, upgrade_device, setup_tv; в params — ключи bt_command_address, bt_command_fw_path, bt_command_fw_version, bt_command_force_reconnect (код r25)352. |
r24, r25; вызов — код r25 | (код r24)353 |
Android-приложения и сервисы
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
LAUNCH_EXT_APP_ACTION_ID = launch_ext_app |
LaunchExtAppActionData: cmd, ensure_playback_stopped, delay, package, version, msg_toast, params, error_action |
Запуск приложения; строку am start … разбирает само приложение, без am и sh (устройство r25)354; при неудаче выполняет error_action (устройство r25)355. Фабрика: launch_ext_app. |
r24, r25; device (устройство r25)355 |
(код r24)356 |
WAIT_EXT_APP_START_ACTION_ID = wait_ext_app_start |
WaitExtAppStartActionData: delay, package, error_action |
не описано Фабрика: wait_ext_app_start. |
r24, r25 | (код r24)357 |
START_SERVICE_ACTION_ID = start_service |
StartServiceActionData (?): class_name, package_name, params, delay_ms, post_action |
не описано | r24, r25 | (код r24)358 |
DOWNLOAD_AND_INSTALL_APK_ACTION_ID = download_and_install_apk |
DownloadAndInstallApkActionData: caption, package, src, from_market, urls, indirect, intro_dialog_urls, username, password, post_action |
Установка APK; install_from_market строит то же действие с from_market=true (код r24)359. Фабрика: download_and_install_apk, install_from_market. |
r24, r25 | (код r24)360 |
UNINSTALL_APK_ACTION_ID = uninstall_apk |
UninstallApkActionData (?): package, src, post_action |
По коду r25: фабрика uninstall_apk плагина android_apps передаёт package, src (по умолчанию пустая строка) и post_action; AppsScreen выдаёт действие для установленного не системного приложения при HD::is_limited_apk() или непустом src; продолжение — тот же user_input с uninstall_performed=1, где для приложения с src читается action_status (код r25)361. |
r24, r25; вызов — код r25 | (код r24)362 |
Избранное, главный экран, история, коллекция, родительский контроль
| Константа и строка | Данные: класс и ключи | Назначение | Где | Claim |
|---|---|---|---|---|
ADD_TO_FAVORITES_ACTION_ID = add_to_favorites |
AddToFavoritesActionData: media_url, caption, icon_url, icon_width, icon_height, badge_url, skip_interactions, post_action |
Добавить в избранное; в r25 skip_interactions=true пишется только при истинном аргументе (код r25)363, icon_width/icon_height — только когда оба больше 0 (код r25)364. Фабрика: add_to_favorites. |
r24, r25 | (код r24)365 |
REMOVE_FROM_FAVORITES_ACTION_ID = remove_from_favorites |
RemoveFromFavoritesActionData: name, post_action |
По коду r25: MovieHelper::remove_favorite_movie передаёт в name корневое имя из Favorites::remove_movie($id), BaseEntityScreen — id сущности с продолжением post_remove_from_favorites (код r25)366. Фабрика: remove_from_favorites. |
r24, r25; вызов — код r25 | (код r24)367 |
UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID = update_special_favorite_folder |
UpdateSpecialFavoriteFolderActionData: name, delete, skip_interactions, post_action |
Спецпапки избранного: §2.7. Фабрика: update_special_favorite_folder. |
r25 | (код r25)368 |
EDIT_MAIN_SCREEN_ACTION_ID = edit_main_screen |
EditMainScreenActionData (?): change_op, ids, caption, icon_url, post_action |
Плагин android_apps r25 при активном remote config и restrict_apps_by_remote_config передаёт CHANGE_OP_DELETE_ANDROID_APPS_EXCEPT (код r25)369. |
r24, r25 | (код r24)370 |
UPDATE_WATCHED_MARKS_ACTION_ID = update_watched_marks |
UpdateWatchedMarksActionData: item_ids, movie_ids, watched, post_action |
Фабрика при пустых item_ids и movie_ids сразу возвращает post_action (код r24)371. По коду r25 иначе в data — watched и только непустые item_ids, movie_ids, post_action; MovieHelper выдаёт update_watched_marks(null, array($movie_id), true, …) — отметку фильма просмотренным (код r25)372. Фабрика: update_watched_marks. |
r24, r25; вызов — код r25 | (код r24)373 |
CLEAR_WATCH_HISTORY_ACTION_ID = clear_watch_history |
ClearWatchHistoryActionData: item_ids, post_action |
clear_watch_history(null, …) — пункт «Очистить всё» в «Недавнем» r25 (код r25)374. Фабрика: clear_watch_history. |
r24, r25 | (код r24)375 |
APPLY_HASH_DIRTIES_ACTION_ID = apply_hash_dirties |
ApplyHashDirtiesActionData: post_action |
Применить изменения hash-привязок: §2.7. Фабрика: apply_hash_dirties. |
r25 | (код r25)376 |
SYNC_MY_COLLECTION_ACTION_ID = sync_my_collection |
SyncMyCollectionActionData: post_action (в r24 ещё mcf_id) |
В r25 ключа mcf_id нет (код r25)83; фабрика r25 принимает только post_action (код r25)377. Фабрика: sync_my_collection. |
нет в r22; r24, r25 | (код)378 |
EDIT_MOVIE_DATA_ACTION_ID = edit_movie_data |
EditMovieDataActionData: movie_id, post_action |
По коду r25: GuiCommon по control_id edit_movie_data (пункт меню navigator_popup_edit_movie_data) выдаёт действие с продолжением update_on_movie_change, которое реагирует, только если movie_data_changed или change_movie_data_status > 0 (код r25)379. Что открывает оболочка — §6. Фабрика: edit_movie_data. |
нет в r22; r24, r25; вызов — код r25 | (код)380 |
CHANGE_MOVIE_DATA_ACTION_ID = change_movie_data |
ChangeMovieDataActionData: movie_ids_to_delete, post_action |
По коду r25: CustomMoviesScreen выдаёт действие после подтверждения очистки (весь список или clear_element — один фильм) с продолжением update_on_movie_change (код r25)381. Поля ответа — §6. Фабрика: change_movie_data. |
нет в r22; r24, r25; вызов — код r25 | (код)382 |
EDIT_LIST_CONFIG_ACTION_ID = edit_list_config |
EditListConfigActionData: config_id, title, all_items, checked_ids, groups, def_id, options, close_item_params, dialog_params, sel_id, post_action |
Фабрика r25 принимает обязательный options между groups и sel_id (код r25)383. По коду r25 фабрика всегда кладёт в data config_id, title, all_items, post_action, а checked_ids, groups, options, sel_id — только если они заданы; MovieFilterDialog выдаёт действие для настройки списка (годы, жанры) с заголовком configure_list_title и продолжением apply_edit_list; по месту вызова — диалог выбора отмеченных пунктов списка (код r25)384. Фабрика: edit_list_config. |
r24, r25; вызов — код r25 | (код r24)385 |
CHANGE_LIST_CONFIG_ACTION_ID = change_list_config |
ChangeListConfigActionData (?): config_id, set_default, def_id, ids_to_check, ids_to_uncheck, ids_to_def, order, post_action |
Копия фабрики в GlobalTV всегда пишет config_id и post_action, а set_default, def_id, ids_to_check, ids_to_uncheck и ids_to_def — при истинном аргументе (код)386. |
r24, r25 | (код r24)387 |
CREATE_NETWORK_FOLDER_ACTION_ID = create_network_folder |
CreateNetworkFolderActionData: name, url, post_action |
В get_add_to_collection_action r24 непустой nnf_url создаёт сетевую папку (код r24)388. Фабрика: create_network_folder. |
нет в r22; r24, r25 | (код)389 |
WAKE_NETWORK_FOLDER_ACTION_ID = wake_network_folder |
WakeNetworkFolderActionData: folder_id, post_action |
play_local_single_file r25 вызывает его для сетевой папки без wol_checked, с повтором входного действия и wol_checked=1 (код r25)390. Фабрика: wake_network_folder. |
нет в r22; r24, r25 | (код)391 |
CUSTOM_IGNORE_UPDATE_ACTION_ID = custom_ignore_update |
CustomIgnoreUpdateActionData: add, is_dir, quids, post_action |
Фабрика пишет is_dir строковым ключом (код r24)392. По коду r25 фабрика передаёт add (по умолчанию true), is_dir, quids и post_action, а все три вызова передают add=false (очистка записи исключённых файлов, папка медиатеки) со списком quid вида «источник/путь» (код r25)393. Фабрика: custom_ignore_update. |
нет в r22; r24, r25; вызов — код r25 | (код)394 |
INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID = invalidate_files_associations |
InvalidateFilesAssociationsActionData: all, hashes, paths, folder_url, base_dir_path, base_cache_dpath, post_action |
По коду r25: фабрика передаёт hashes, paths, folder_url, base_dir_path, base_cache_dpath, post_action, а ключ all не передаёт; MainEntryHandler после удаления файлов выдаёт действие с paths удалённых файлов и folder_url папки (при folder_id != -1), затем reread_all_epfs(true) (код r25)395. Фабрика: invalidate_files_associations. |
r24, r25; вызов — код r25 | (код r24)396 |
CHECK_RESTRICTED_ACTION_ID = check_restricted |
CheckRestrictedActionData: id, post_action |
run_tv_app r24 возвращает его для plugin:<имя> и android_app:<пакет>, пока не установлен pcontrol_checked (код r24)397. Фабрика: check_restricted. |
r24, r25 | (код r24)398 |
SET_RESTRICTED_ACTION_ID = set_restricted |
SetRestrictedActionData (?): id, restricted, post_action |
По коду r25: фабрика передаёт id, restricted, post_action; AndroidApps переключает защиту пункта меню приложения — set_restricted($id, !$now_restricted, …), продолжение finalize_toggle_password перечитывает список ограниченных (reload_restricted); по месту вызова — родительский контроль пункта меню (код r25)399. |
r24, r25; вызов — код r25 | (код r24)400 |
CHANGE_PARENTAL_CODE_ACTION_ID = change_parental_code |
ChangeParentalCodeActionData (?): post_action |
Смена родительского кода в GlobalTV (код)401. | r24, r25 | (код r24)402 |
3.5. Структуры данных (r24, r25)¶
Классы без суффикса ActionData. Где полный перечень ключей есть в другой главе, здесь только ссылка и число. «SDK:» — как в §3.4.
Вход и выход операций
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
PluginOutputData |
Ответ плагина оболочке: §3.2. | has_data, data_type, data, plugin_cookies, is_error, error_action |
r24, r25 | (код r24)174 |
PluginFolderViewInputData |
Вход get_folder_view: sel_state при наличии метода <op>_v2 выбирает вызов <op>_v2 (код r24)60. |
media_url, sel_state |
r24, r25 | (код r24)403 |
PluginFolderRowsInputData |
Вход get_folder_rows: §2.5. |
media_url, row_ids |
r25 | (код r25)404 |
PluginFolderRows |
Результат get_folder_rows: §2.5. |
rows |
r25 | (код r25)405 |
PluginVodGetStreamInfoInputData |
На r25 при ленивой серии с feature vod_get_stream_info get_vod_stream_info вызывается с playback_url (устройство r25)172. |
playback_url |
нет в r22; r24, r25 | (код)406 |
PluginStreamInfo |
Результат get_vod_stream_info: читается url и список markers (код r24)407. |
url, markers |
нет в r22; r24, r25 | (код)408 |
StreamMarker |
Маркер потока; на r25 intro-маркер 3–20 с из PluginVodSeriesInfo::markers показывает на OSD кнопку «Пропустить заставку» (устройство r25)409. Типы — §3.3. |
type, from, to, duration |
нет в r22; r24, r25 | (код)410 |
Общие структуры
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
GuiAction |
SDK: тип в handler_string_id и параметры в data (SDK)35; §1.2. |
handler_string_id, data, caption, plugin_name, params, flags |
r24, r25 | (код r24)34 |
GuiTimerDef |
Таймер. Фабрика пишет reset_on_keypress, clear_on_keypress только при истинном аргументе (код r24)411; SDK: в диалоге таймер срабатывает один раз (SDK)412. |
delay_ms, reset_on_keypress, clear_on_keypress, num_repeats, early_start |
r24, r25 | (код r24)413 |
GuiMenuItemDef |
Пункт меню: «Ввод и диалоги». | is_separator, id, caption, icon_url, marked, action, is_shown_action |
r24, r25 | (код r24)414 |
GuiItem |
Фабрика add_gui_item (код r24)415; в r25 пишет params при истинном аргументе (код r25)416. |
id, caption, icon_url, group_id, params |
r24, r25 | (код r24)417 |
GuiExtraChoice |
Фабрика add_extra_choice дописывает caption в массив (код r24)418. |
caption |
r24, r25 | (код r24)419 |
PluginPathElement |
Фабрика add_path_element дописывает элемент в массив (код r24)420; plugin_replace_path читает elements (код r24)421. |
media_url, id, caption |
r24, r25 | (код r24)422 |
PluginRef |
не описано | name, ep_media_url |
r24, r25 | (код r24)423 |
PluginArchiveDef |
SDK: архив картинок папки, ссылки plugin_archive://<archive>/<key> (SDK)424. Десериализуется оболочкой r24 с total_size как long (код r24)425. |
id, urls_with_keys, all_tgz_url, total_size |
r24, r25 | (код r24)426 |
FileMovieInfo |
не описано | movie_id, title, icon_url, rate_imdb, rate_content, series_type, s, e |
r24, r25 | (код r24)427 |
FileChooserFilter |
Фильтр choose_file: §2.8. |
file_type_dir, file_extensions, check_writable |
нет в r22; r24, r25 | (код)428 |
FileChooserUiParams |
Интерфейс choose_file: §2.8. |
with_favorite_folders, details_width, dialog_title, with_network_folders, with_network_browser, new_folder_default_name |
нет в r22; r24, r25 | (код)429 |
FsCmdDef |
Команда fs_ctl: kind и specific_def, §2.6. |
kind, specific_def |
r25 | (код r25)430 |
FsResolveUrlDef |
Параметры resolve_url: §2.6. |
url, try_mount_if_needed |
r25 | (код r25)431 |
FsStatDef |
Параметры stat: §2.6. |
path |
r25 | (код r25)432 |
FsScandirDef |
Параметры scandir: §2.6. |
path, with_stat, max_items_count |
r25 | (код r25)433 |
FsGetFileDef |
Параметры get_file: §2.6. |
path, target_path, skip, max_size, chunk_size |
r25 | (код r25)434 |
Папки: виды, элементы, карточка
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
PluginFolderView |
«Экраны и папки плагина». В r25 добавлен type_mask (код r25)435. |
view_kind, data, multiple_views_supported, archive, folder_type, params, type_mask |
r24, r25 | (код)436 |
PluginFolderViewParams |
SDK: параметры control- и movie-папок (SDK)437. | paint_path_box, paint_path_box_background, paint_content_box_background, background_url, popup_dialogs_enabled |
r24, r25 | (код r24)438 |
PluginRegularFolderView |
«Экраны и папки плагина» | 11: в главе по ссылке | r24, r25 | (код r24)439 |
PluginRegularFolderRange |
«Экраны и папки плагина» | total, more_items_available, from_ndx, count, items |
r24, r25 | (код r24)440 |
PluginRegularFolderItem |
«Экраны и папки плагина» | media_url, caption, starred, locked, view_item_params, plugin_ref |
r24, r25 | (код r24)441 |
ViewParams |
«Экраны и папки плагина» | 91: в главе по ссылке | r24, r25 | (код r24)442 |
ViewItemParams |
«Экраны и папки плагина» | 54: в главе по ссылке | r24, r25 | (код r24)443 |
PluginControlsFolderView |
«Экраны и папки плагина». | defs, actions, timer, initial_sel_ndx, params |
r24, r25 | (код r24)444 |
PluginMovieFolderView |
«Экраны и папки плагина» | movie, left_button_caption, left_button_action, has_right_button, right_button_caption, right_button_action, has_multiple_series, series_media_url, poster_valign, params |
r24, r25 | (код r24)445 |
PluginMovie |
«Экраны и папки плагина» | name, name_original, description, poster_url, length_min, year, directors_str, scenarios_str, actors_str, genres_str, rate_imdb, rate_kinopoisk, rate_mpaa, country, budget, details, rate_details |
r24, r25 | (код r24)446 |
Rows
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
PluginRowsFolderView |
«Экраны и папки плагина» | 4: в главе по ссылке | r24, r25 | (код r24)447 |
PluginRowsPane |
«Экраны и папки плагина». В r25 добавлен row_dup_map (код r25)448. |
27: в главе по ссылке | r24, r25 | (код)449 |
PluginRow |
«Экраны и папки плагина». В r25 data бывает и строкой (код r25)450; формат по типу строки — §2.5. |
12: в главе по ссылке | r24, r25 | (код r24)451 |
PluginRegularRow |
«Экраны и папки плагина» | 14: в главе по ссылке | r24, r25 | (код r24)452 |
PluginRegularItem |
«Экраны и папки плагина» | 6: в главе по ссылке | r24, r25 | (код r24)453 |
PluginRegularItemParams |
«Экраны и папки плагина» | 11: в главе по ссылке | r24, r25 | (код r24)454 |
PluginRegularItemVariableParams |
«Экраны и папки плагина» | 12: в главе по ссылке | r24, r25 | (код r24)455 |
PluginRegularSticker |
«Экраны и папки плагина» | 4: в главе по ссылке | r24, r25 | (код r24)456 |
PluginTitleRow |
«Экраны и папки плагина» | 10: в главе по ссылке | r24, r25 | (код r24)457 |
PluginGCompsRow |
«Экраны и папки плагина» | 4: в главе по ссылке | r24, r25 | (код r24)458 |
PluginRowsHeader |
«Экраны и папки плагина» | 3: в главе по ссылке | r24, r25 | (код r24)459 |
PluginRowsInfo |
«Экраны и папки плагина» | 8: в главе по ссылке | r24, r25 | (код r24)460 |
PluginMargins |
Отступы: фабрика RowsFactory::margins (код r24)461. |
left, top, right, bottom |
r24, r25 | (код r24)462 |
GComponents
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
PluginGCompsFolderView |
Данные папки вида PLUGIN_FOLDER_VIEW_GCOMPS (код r24)463. |
window_def, sel_state, actions, timer |
r24, r25 | (код r24)464 |
GCompWindowDef |
Окно; фабрика get_window_def (код r24)465. |
background_color, background_url, background_fit_def, async_loading_background, not_loaded_background_url, playback_bg_alpha, small_state_text, opaque_background, comp_defs, focus, bg_def, ui_state |
r24, r25 | (код r24)466 |
GComponentDef |
Компонент: kind и specific_def (код r24)467. |
id, geom_def, margins_def, focusable_def, focused_variant_def, extra_variant_defs, options, kind, specific_def |
r24, r25 | (код r24)468 |
ChangeGCompDef |
Изменение компонента для change_gcomps: фабрика get_change_def (код r24)469. |
id, remove, geom_def, props, view_position, custom_props, selected, children, children_merge_mode, children_insert_after_id, transition |
r24, r25 | (код r24)470 |
ChangeGCompWindowDef |
Изменение окна: фабрика change_gcomp_window (код r24)471. |
background_color, background_url |
r24, r25 | (код r24)472 |
GCompGeometryDef |
не описано | role, w, h, opts, align_def |
r24, r25 | (код r24)473 |
GCompAlignDef |
не описано | x, y, use_base_width, use_base_height, halign, valign, base_halign, base_valign, base_to_prev, base_id |
r24, r25 | (код r24)474 |
GCompMarginsDef |
Копия GCompMargins::all в GlobalTV пишет все четыре (код)475. |
left, top, right, bottom |
r24, r25 | (код r24)476 |
GCompFocusDef |
Фокус: RowsFactory::focus, type=GCOMP_FOCUS_SYSTEM, type2=GCOMP_FOCUS_NONE (код r24)477. |
type, type2 |
r24, r25 | (код r24)478 |
GCompFocusableDef |
Фабрика set_focusable (код r24)479. |
sel_margins, background_color, background_url |
r24, r25 | (код r24)480 |
GCompVariantDef |
Варианты вида: set_focus_var (код r24)481, add_extra_var (код r24)482. |
ref_id, geom_def, props, transition_modifier |
r24, r25 | (код r24)483 |
GCompUiStateDef |
Фабрика get_gcomp_ui_state_def (код r24)484. |
title, items, bg_url, poster_url, view_params |
r24, r25 | (код r24)485 |
GCompViewPositionDef |
Фабрика get_view_position_def (код r24)486. |
id, x, y, freedom_factor, gravity, end_min_offset, outside_id |
r24, r25 | (код r24)487 |
GCompItemDef |
Элементы get_comp_item_def, get_label_item_def, get_button_item_def (код r24)488. |
type, id, left_caption, caption, icon_url |
r24, r25 | (код r24)489 |
GCompLabelDef |
label: (код r24)467. |
text, font_size, text_color, max_num_lines, draw_halo |
r24, r25 | (код r24)490 |
GCompTtfLabelDef |
ttf_label: (код r24)491. |
text, font_size, font_face, text_color, max_num_lines, line_spacing, halign, valign, base_font_size, min_font_size, fit |
r24, r25 | (код r24)492 |
GCompRectDef |
rect: (код r24)493. |
color |
r24, r25 | (код r24)494 |
GCompImageDef |
image: (код r24)495. |
url, alpha, mix_alpha, mix_color, keep_aspect_ratio, upscale_enabled, not_loaded_url, load_failed_url, low_quality_url |
r24, r25 | (код r24)496 |
GCompCutImageDef |
не описано | url, alpha |
r24, r25 | (код r24)497 |
ImageFitDef |
Фабрика get_image_fit_def (код r24)498. |
base_halign_ratio, base_valign_ratio |
r24, r25 | (код r24)499 |
GCompButtonDef |
button: (код r24)500. |
caption, caption_centered, selected |
r24, r25 | (код r24)501 |
GCompTextFieldDef |
text_field: (код r24)502. |
def, params |
r24, r25 | (код r24)503 |
GCompPanelDef |
panel: (код r24)504. |
children, alpha, mix_alpha, mix_color, prepaint_params |
r24, r25 | (код r24)505 |
GCompPrepaintPaneDef |
prepaint_pane: (код r24)506. |
panel, native_width, native_height |
r24, r25 | (код r24)507 |
GCompPrepaintParams |
Фабрика ppp (код r24)508. |
width, height |
r24, r25 | (код r24)509 |
GCompScrollPaneDef |
scroll_pane: (код r24)510. |
panel, view_position, view_use_base_width, view_use_base_height, view_width, view_height |
r24, r25 | (код r24)511 |
GCompScrollbarDef |
scrollbar: (код r24)512. |
scroll_pane_id, vertical |
r24, r25 | (код r24)513 |
Контролы
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
GuiControlDef |
«Контролы диалогов и папок» | 6: в главе по ссылке | r24, r25 | (код r24)514 |
GuiLabelDef |
«Контролы диалогов и папок» | 1: в главе по ссылке | r24, r25 | (код r24)515 |
GuiButtonDef |
«Контролы диалогов и папок» | 3: в главе по ссылке | r24, r25 | (код r24)516 |
GuiComboboxDef |
«Контролы диалогов и папок» | 6: в главе по ссылке | r24, r25 | (код r24)517 |
GuiTextFieldDef |
«Контролы диалогов и папок» | 9: в главе по ссылке | r24, r25 | (код r24)518 |
GuiVGapDef |
«Контролы диалогов и папок» | 1: в главе по ссылке | r24, r25 | (код r24)519 |
GuiProgressBarDef |
Фабрика add_progress_bar (код r24)520. |
progress, width |
r24, r25 | (код r24)521 |
ТВ, VOD и OSD
| Класс | Назначение | Ключи | Где | Claim |
|---|---|---|---|---|
PluginTvInfo |
«Воспроизведение из плагина» | server_time, groups, channels, channels_file, show_group_channels_only, favorites_supported, favorite_channel_ids, favorites_icon_url, initial_group_id, initial_channel_id, initial_is_favorite, initial_archive_tm, initial_trick_play, initial_trick_play_duration, initial_archive_program, actions, timer, ip_address_required, valid_time_required, ext_epg_enabled, epg_mode, epg_ttl_sec, epg_font_size, groups_text_size, groups_page_size, channels_text_size, channels_page_size, epg_text_size, epg_page_size, epg_day_use_local_tz, epg_day_shift_sec, ext_epg_base_url, ext_epg_channel_ids_url, custom_protect_code_handling, builtin_pcontrol_enabled, entered_pcode, subtitles_osd_enabled, keep_playing_on_reload, keep_playing_on_reenter, icon_auto_reducing_disabled, disable_connecting_status_osd, show_prev_next_scrolling_hint, archive |
r24, r25 | (код r24)522 |
PluginTvChannel |
«Воспроизведение из плагина» | id, caption, extra_caption, group_ids, icon_url, number, have_archive, is_protected, recording_enabled, ext_epg_enabled, vod_archive_enabled, start_over_enabled, trick_play_enabled, buffering_ms, timeshift_hours, epg_mode, epg_normal_refresh_sec, epg_fast_refresh_sec, epg_fast_refresh_timeout, past_epg_days, future_epg_days, ext_epg_id, ext_epg_icon_url, epg_icon_width, epg_icon_height, epg_icon_x_offset, epg_icon_y_offset, epg_icon_hide_without_archive, use_program_have_archive_flags, archive_past_sec, archive_delay_sec, playback_url_is_stream_url |
r24, r25 | (код r24)523 |
PluginTvGroup |
«Воспроизведение из плагина» | id, caption, icon_url, channel_ids |
r24, r25 | (код r24)524 |
PluginTvEpgProgram |
Элемент результата get_day_epg (код r24)525. |
start_tm_sec, end_tm_sec, name, description, have_archive, flags, icon_url, ext_id |
r24, r25 | (код r24)526 |
PluginTvChannelChange |
В оболочке r24 есть диагностики чтения id, icon_url (код r24)527. |
id, icon_url |
нет в r22; r24, r25 | (код)528 |
PluginVodInfo |
«Воспроизведение из плагина» | id, name, sub_name, description, poster_url, series, initial_series_ndx, initial_position_ms, buffering_ms, advert_mode, extra_menu_items, enter_menu_action, actions, timer, ip_address_required, valid_time_required, subtitles_osd_enabled, skip_dummy_player_on_error, keep_playing_on_reload, keep_playing_on_reenter, recent_plugin, recent_action_params, recent_group_by, recent_tags, params |
r24, r25 | (код r24)529 |
PluginVodSeriesInfo |
«Воспроизведение из плагина» | name, playback_url, playback_url_is_stream_url, content_id, recent_uid, mdb_info, markers |
r24, r25 | (код r24)530 |
PluginOsdComponent |
«Воспроизведение из плагина» | x, y, image_url, image_width, image_height, text, text_font_size, text_color, text_halo |
r24, r25 | (код r24)531 |
3.6. Библиотека dunelib: HD, ConfigUtils, Expr, DuneLanguages, InstalledPlugins (r24, r25)¶
Файлы dunelib подключают друг друга через require_once 'dunelib/…' (код r24)532. Как плагины пользуются HTTP-методами HD, — в
«Приёмы разработки плагинов Dune HD».
| Метод или набор | Что делает | Где | Claim |
|---|---|---|---|
HD (перечень) |
класс-утилита со статическими методами и DuneCurlException с errno, error, http_code |
r24 | (код r24)533 |
HD (константы) |
INT_MIN, INT_MAX, NBSP, DUNE_AUTH_PATH, INTERNET_STATUS_PATH, FORCE_CHECK_INTERNET_ON_ERROR_PATH |
r24 | (код r24)534 |
HD::init, http_init |
init($def_curl_timeout=20) переустанавливает общий тайм-аут и вызывает http_init, который собирает User-Agent из /tmp/sysinfo.txt |
r24 | (код r24)535 |
HD::http_get_document |
ошибка curl и любой код, кроме 200, — DuneCurlException; TLS по умолчанию без проверки — BUG-003; лог отключает $silent=true |
r24 | (код r24)536 |
HD::http_get_document (r25) |
лог http <метод>: <url> и http DATA: …, сообщения об ошибках в нижнем регистре |
r25 | (код r25)537 |
HD::http_post_document, http_request_document |
POST через CURLOPT_POSTFIELDS; request выбирает POST при $post_data |
r24 | (код r24)538 |
HD::encode_user_data, decode_user_data |
упаковка в media_url как <media_url>\|\|<json> |
r24 | (код r24)539 |
HD::create_regular_folder_range |
массив с ключами PluginRegularFolderRange, режет items по total |
r24 | (код r24)540 |
HD::write_to_file_using_tmp, …_if_changed |
атомарная запись через <path>.tmp и rename; второй возвращает 0, 1 или -1 |
r24 | (код r24)541 |
HD::parse_props, read_props_file, encode_props, parse_xml_document |
key=value, запись key = value; XML — Exception('Illegal XML document') |
r24 | (код r24)542 |
HD::get_internet_status, append_dune_auth, get_mac_addr, get_product_id, is_custom_fw |
чтение сервисных файлов | r24 | (код r24)543 |
HD::is_android |
всегда true |
r24 | (код r24)544 |
HD::is_apk, is_fw_apk, get_apk_package_name, get_fs_prefix, with_epfs, is_whale_tv, is_dual_system |
переменные окружения, каталог и флаги прошивки | r24 | (код r24)545 |
HD::enable_caching_for_image_url, localtime_TZ, get_item |
dune_image_cache=1 для URL на http/cached_image; date через exec; заглушка false |
r24 | (код r24)546 |
HD::ensure_empty_file, log_elapsed, read_int, read_string |
новые в r25 | r25 | (код r25)51 |
ConfigUtils::get_config, load_config |
/config/settings.properties с кэшем до смены mtime, только ключи из умолчаний |
r24 | (код r24)547 |
ConfigUtils::get_location_info |
/tmp/location_info.properties, затем /config/… |
r24 | (код r24)548 |
ConfigUtils::load_plugin_cookies |
/config/<plugin_name>_plugin_cookies.properties |
r24 | (код r24)549 |
ConfigUtils::load_firmware_features |
флаги из /tmp/firmware_features.txt и /tmp/ro_features.txt; в r25 убирает downloads при /tmp/flm.txt |
r24, r25 | (код)550 |
ConfigUtils::load_product_and_fw |
/tmp/run/versions.txt; platform_kind_group — 8Nxx для platform_kind вида 8…, иначе сам platform_kind |
r24 | (код r24)551 |
Expr::make, evaluate |
условные выражения по настройкам, местоположению, флагам и версиям | r24 | (код r24)552 |
Операторы Expr |
or, and, not, country, language, product, firmware_feature, firmware_version, fwv_* и другие |
r24 | (код r24)553 |
Expr (значения) |
список через запятую; =~, !~, i=~, i!~ — регулярные выражения; иначе strcasecmp |
r24 | (код r24)554 |
Expr::add_user_op, set_user_data |
свой оператор через call_user_func |
r24 | (код r24)555 |
DuneLanguages::get_code_by_id, get_en_caption_by_code, get_native_caption_by_code |
по таблице $VALUES, иначе null |
r24 | (код r24)556 |
DuneLanguages::static_init |
заполняет таблицу (код r24)557; сам файл его не вызывает, встроенные плагины вызывают явно (код r24)558 | r24 | (код r24)559 |
InstalledPlugins::get_by_name, reload, ensure_loaded |
/tmp/run/installed_plugins.xml с кэшем до смены mtime |
r25 | (код r25)52 |
DlState |
файловый протокол загрузок: «Загрузки и TorrServer для плагина» | r25 | (код r25)560 |
3.7. bootstrap.php и dune_config.php (r24)¶
| Имя | Что делает | Claim |
|---|---|---|
hd_print($str) |
echo с суффиксом $HD_NEW_LINE; при $HD_OB_PREFIX — префикс и ob_flush() |
(код r24)561 |
hd_error_handler, hd_shutdown_handler |
формат [файл:строка] [E_ТИП] сообщение |
(код r24)562 |
hd_silence_warnings, hd_restore_warnings |
выключить и вернуть вывод ошибок | (код r24)563 |
date.timezone |
из date_default_timezone_get(), обход проблемы PHP с 5.3.0 |
(код r24)564 |
set_time_limit(0) |
снимает лимит времени выполнения | (код r24)565 |
FEW_BUTTONS_REMOTE_TYPE_NONE=0, _OVAL=1, _SMALL=2, _ARROWS=3 |
типы пульта | (код r24)27 |
dune_config_get_few_buttons_remote_type |
DuneSystem::$properties['few_buttons_remote_type'] |
(код r24)566 |
dune_config_with_color_buttons, dune_config_show_pop_up_icon_only |
with_color_buttons — false для SMALL и ARROWS, иначе true; show_pop_up_icon_only — true для OVAL, SMALL, ARROWS, иначе false |
(код r24)567 |
Как учитывать тип пульта — «Ввод и диалоги».
4. Как это делают плагины¶
Имена API плагин может брать из dune_api.php прошивки, не определяя их в пакете: так делает screenshoter (код r24)1. Фабрики
ActionFactory, ControlFactory shell_ext держит в своём lib/ (код r24)4, а GlobalTV носит свои
ActionFactory, ControlFactory и GCompsFactory (код)5 — как копии расходятся с прошивочной, см.
«Ввод и диалоги».
Так, копия edit_list_config GlobalTV принимает options и close_item_params, которых не принимала фабрика r24 (код r24)568,
её update_rows_info принимает folder_key и item_id (код r24)569, а show_error пишет поля через проверку defined
(код r24)570. Проверка возможностей — §2.3. Каталог приёмов — «Приёмы разработки плагинов Dune HD».
5. Расхождения¶
| Что | Одна сторона | Другая сторона | Claims |
|---|---|---|---|
Тип результата change_tv_favorites |
SDK: в объявлении интерфейса void (SDK)571, в описании операции — GuiAction (SDK)572 |
код r24: GuiAction |
(код r24, SDK)573 |
Данные plugin_handle_user_input |
SDK: данных нет | r24: operation_timeout, show_dialog_delay, dialog_title; device r25: operation_timeout действует |
(устройство r25, код r24, SDK)574 |
Поля PluginControlsFolderView |
SDK: defs, initial_sel_ndx, params |
r24: ещё actions, timer |
(код r24, SDK)575 |
Имя change_behaviour |
SDK-история версий: change_behavior |
код r24: change_behaviour |
(код r24, SDK)576 |
ActionFactory::open_folder |
в shell_ext через open_folder_ext строит plugin_open_folder |
open_general_folder плагина polsky-tv строит OPEN_FOLDER_ACTION_ID, это другое действие |
(код)577 |
Параметр title в check_system_storage |
ключ объявлен в классе | фабрика r24 принимает title, но не пишет его в data |
(код r24)578 |
skip_interactions в update_special_favorite_folder |
ключ объявлен в классе | фабрика r25 его не передаёт | (код r25)579 |
handle_response в plugin_system |
ключ объявлен в классе r25 | JSON-десериализация r25 его не читает | (код r25)580 |
Класс в сообщении о vod_info |
строка лога называет PluginTvPlayActionData |
ключ vod_info объявлен в PluginVodPlayActionData |
(код r24)581 |
Имя класса PluginUpdateFolderActionData |
SDK: PluginUpdateFolderAction (без суффикса ActionData), поля range, need_refresh, sel_ndx |
код r24: класс PluginUpdateFolderActionData с теми же тремя ключами |
(код r24, SDK)582 |
restart_gui в change_settings |
SDK: описание restart_gui дословно как у reboot — «whether to reboot STB immediately» |
на tv188b r25 restart_gui=true, reboot=false и пустые settings перезапускают приложение Dune, а не приставку |
(устройство r25, SDK)583 |
6. Не проверено¶
Здесь — выводы (inference), disputed и то, что прогон на устройстве не установил; выводы и disputed в основном тексте не используются. Проверка каждого — в поле check claim.
| Вывод | Claim |
|---|---|
Id типов SDK соответствуют значениям *_ACTION_ID по сходству имён: для пяти пар строка принята на устройстве, для остальных 27 — вывод. Пометка «(?)» в §3.4 — то же, для пар вне списка SDK |
(код r24, вывод r24)584 |
GuiAction разбирает data по типу из handler_string_id |
(вывод r24)585 |
plugin_handle_user_input читает PluginHandleUserInputActionData |
(вывод r24)586 |
XML-конструктор plugin_system проверяет data/run_string |
(вывод r24)587 |
Индексы 0–7 в разборе data идут в порядке PluginOutputDataType |
(вывод r24)588 |
Плагин вызывается выражением DunePluginFw::$instance->call_plugin(...); вызов собирается как PHP-код $in = <<<EOL … |
(вывод r24)589 |
Порядок подключения системных файлов до кода плагина для r24 (disputed) |
(вывод r24)590 |
Пути dunelib/… работают, только если php/include/ есть в include_path |
(вывод r24)591 |
/config/<plugin_name>_plugin_cookies.properties — постоянное хранилище $plugin_cookies |
(вывод r24)592 |
Без DuneLanguages::static_init() геттеры дают null, и lang_code в ConfigUtils тоже |
(вывод r24)593 |
ActionFactory::show_error: состав полей и умолчания (disputed) |
(код r24)594 |
fs_ctl нельзя задать в XML, только в JSON |
(вывод r25)595 |
Команды fs_ctl: resolve_url с монтированием, stat, get_file; у scandir — with_stat и max_items_count; передача результата, кроме scandir с output_path (он наблюдался, §2.6) |
(вывод r25)596 |
Файл output_path при ошибке get_file — такой же невалидный JSON {"input":{...},{"error":{...}}}, как у scandir в §2.6 |
(вывод r25)597 |
Сбой записи в output_path даёт fs_ctl_write_output_failed=1 при action_status по статусу команды: так в коде (§2.6), в прогоне §2.6 этот сбой не моделировался |
(код r25)116 |
cond своим pattern задаёт видимость точки входа downloads (вычисление is_file с post_action — §2.7); ff(downloads) проверяет firmware_feature; is_plugin_file проверяет файл в установленном плагине |
(вывод r25)598 |
update_special_favorite_folder возвращает action_status; шкала не установлена |
(вывод r25)599 |
apply_hash_dirties заставляет оболочку обработать HashDirties; формат результата и очистка не установлены |
(вывод r25)600 |
Строка row_dup: поиск в row_dup_map по dup_id; PLUGIN_ROW_OPT_LOADING — подгрузка через get_folder_rows; PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE — оптимизация невидимых строк (что прочитано в коде — §2.5) |
(вывод r25)601 |
Пустой или неполный ответ get_folder_rows допускает повторный запрос прежних id, если исходные строки сохраняют PLUGIN_ROW_OPT_LOADING и контекст выбора не меняется; частота и неизбежность повтора не установлены |
(вывод r25)602 |
handle_response=yes включает проверку restart_needed_flag и перезапуск GUI |
(вывод r25)603 |
handle_response=true в JSON plugin_system: вывод из псевдокода — поле по смещению +4 остаётся 0. Прогон §2.9 этого не доказал и не опроверг: какой каталог читает натив (поле plugin+0x14) и значение поля в нём не сняты, XML-формы для сравнения не было |
(код r25, вывод r25)604 |
run_default с event=key_info и post_action a_default: в итоговой выборке post его не видно, соседние a_exit, a_composite-1/2 и a_sleep есть (один прогон на tv188b r25). Причина не установлена; это не значит, что действие не работает |
(устройство r25)605 |
plugin_exit_folders закрывает открытые папки плагина: count — сколько уровней, 0 — вероятно, все (по месту использования в downloads) |
(вывод r25)606 |
plugin_replace_path заменяет хвост пути навигации: снимает erase_count последних элементов и подставляет elements без повторного открытия экранов |
(вывод r25)607 |
rename_path меняет подпись текущего (последнего) элемента пути навигации на caption |
(вывод r25)608 |
plugin_update_epf_mapping с epf_id привязывает точку входа EPF к плагину mapped_plugin_name, с epf_id = null заставляет перечитать все EPF; sync_epfs — вероятно, синхронный режим |
(вывод r25)609 |
switch_osd_mode(osd_mode=true) переводит оболочку из GUI плагина в экран воспроизведения (OSD) идущего видео, не перезапуская его; osd_mode=false не разобран |
(вывод r25)610 |
check_system_storage проверяет наличие системного хранилища данных (при ненулевых required_space/recommended_space — и объём) и сообщает итог полем check_succeeded |
(вывод r25)611 |
edit_movie_data открывает нативный редактор метаданных фильма movie_id и сообщает movie_data_changed > 0 при изменении; change_movie_data сообщает change_movie_data_status |
(вывод r25)612 |
with_network_folders, with_network_browser — сетевые папки и обзор сети; new_folder_default_name — начальное имя новой папки |
(вывод r25)613 |
В базе нет наблюдений на устройстве для большинства действий §3.4: строки с device — исключение. Нет их и для контрактов, прочитанных в коде tv188b r25: ожидание индекса mc (§2.4, «Операции плагина, тайм-ауты и php_server»), порядок запросов rows_loader (§2.5). У handle_response из JSON есть один прогон, но код он не проверил (§2.9 и таблица выше). Что не покрыто вообще — §7.
7. Покрытие dune_api.php r25¶
Подсчёт — скриптом по files/system/system/dunehd/firmware_ext/php/dune_api.php против claims базы (статусы refuted и withdrawn не учитываются); это результат сверки, а не claim. Все 316 имён define и 167 классов r24 есть и в r25, где их
331 и 179 (код r24, r25)161. Сверка r24 с r25 по файлам: значения define не изменились, состав ключей изменился только у FileChooserUiParams, PluginFolderView,
PluginRowsPane, PluginSystemActionData, SyncMyCollectionActionData.
| Что считаем | Покрыто | Всего | Как считалось |
|---|---|---|---|
define: имя и значение |
331 | 331 | пара ИМЯ=значение в тексте claim прошивки r24 или r25; FS_CMD_* — по имени и значению из двух claims |
| Классы: имя | 179 | 179 | claim с классом и его ключами |
| Ключи классов | 1035 | 1035 | перечень ключей в claim совпал с файлом r25 по каждому классу |
| Действия: назначение или поведение | 78 | 92 | в §3.4 есть текст со ссылкой, а не «не описано»; у 19 действий описание — по коду r25 (фабрика, место вызова или манифест), а смысл для части из них — вывод (§6) |
| Структуры: назначение или поведение | 83 | 88 | в §3.5 есть текст со ссылкой, а не «не описано»; часто это только фабрика или ссылка на главу |
define вне *_ACTION_ID: смысл |
196 | 239 | имя или строка значения встречается в claim, который не является инвентарём |
Итого по dune_api.php r25: покрыто именем и значением 510 из 510 (331 define и 179 классов), смыслом — 357 из 419 (строки ниже). «Смысл» у констант — только упоминание в содержательном claim, глубина там разная; смысл отдельных ключей классов не считался.
Действия без описанного назначения. Их 14, и в PHP r24/r25 для них нет вызовов, поэтому место вызова смысла не подсказывает:
- только
defineвdune_api.php, вызовов в PHP нет (11):plugin_refresh_entry_points,plugin_update_archive_cache,show_gcomps,plugin_tv_select_channel,plugin_update_tv_info,dvb_command,update_dvb_channels,update_images,set_time_zone,confirm_location,start_service; - фабрика есть, вызовов нет (3):
stop_playback(есть наблюдение продолжения, §3.4),init_persistfs,wait_ext_app_start.
composite описан в §3.4 по прогону на устройстве и в этот перечень не входит.
Структуры без описанного назначения, по областям:
- Общие структуры:
PluginRef,FileMovieInfo. - GComponents:
GCompGeometryDef,GCompAlignDef,GCompCutImageDef.
Константы без смыслового claim по этому поиску (только значение), по группам:
- EPG_*:
EPG_START_OVER_DISABLED,EPG_TRICK_PLAY_ENABLED. - EDIT_LIST_CONFIG_OPT_*:
EDIT_LIST_CONFIG_OPT_WITH_DEFAULT. - GCOMP_GEOM_OPT_*:
GCOMP_GEOM_OPT_NON_NEGATIVE_X,GCOMP_GEOM_OPT_NON_NEGATIVE_Y. - GCOMP_OPT_*:
GCOMP_OPT_APPEAR_WITH_FADE,GCOMP_OPT_BG_PICTURE,GCOMP_OPT_DEBUG_FRAME,GCOMP_OPT_EMPTY_WITH_VIDEO,GCOMP_OPT_FOCUS,GCOMP_OPT_NO_PREPAINT,GCOMP_OPT_TRANSPARENT_WITH_VIDEO,GCOMP_OPT_TTF_QUALITY_WRAP. - PLUGIN_ROW_OPT_*:
PLUGIN_ROW_OPT_FIRST_WITH_INFO. - DialogFrameStyle:
DIALOG_FRAME_STYLE_TRANSPARENT. - GCompFocusType:
GCOMP_FOCUS_INACTIVE_CUT_IMAGE,GCOMP_FOCUS_RECT2,GCOMP_FOCUS_RECT3. - GCompLayoutRole:
GCOMP_LAYOUT_UNSET. - GCompTextFit:
GCOMP_TEXT_FIT_CROP,GCOMP_TEXT_FIT_INSERT_ELLIPSIS,GCOMP_TEXT_FIT_APPEND_ELLIPSIS. - GCompTransition:
GCOMP_TRANSITION_LAST_STEP,GCOMP_TRANSITION_FADE. - GComponentKind:
GCOMPONENT_SANDWICH. - GCompsFlipEffect:
GCOMPS_FLIP_EFFECT_NONE,GCOMPS_FLIP_EFFECT_FADE,GCOMPS_FLIP_EFFECT_FADE_OUT_SCALED. - GuiEventKind:
GUI_EVENT_KEY_FIP_NEXT,GUI_EVENT_KEY_FIP_PREV,GUI_EVENT_KEY_SHUFFLE,GUI_EVENT_KEY_MUSIC,GUI_EVENT_UI_ACTION,GUI_EVENT_FOLDER_LEAVE,GUI_EVENT_FOLDER_RETURN_BACK,GUI_EVENT_MENU_PLAYBACK_OSD_CLOSED,GUI_EVENT_MENU_PLAYBACK_OSD_GOING_TO_OPEN,GUI_EVENT_MENU_EXT_APP_FINISH,GUI_EVENT_WEB_BROWSER_FINISH,GUI_EVENT_SHUTDOWN. - PluginEpgMode:
PLUGIN_EPG_DISABLED,PLUGIN_EPG_USE_DVB_PROVIDER. - StreamMarkerType:
STREAM_MARKER_RECAP.
-
plg-dc-screenshoter.c036 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Константы ACTION_ID, GUI_EVENT_KEY, DIALOG_FRAME_STYLE_GLASS и классы GuiAction, PluginRegularFolderItem, ViewParams используются, но в пакете не определены; их определяет dune_api.php PHP-фреймворка прошивки ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::change_tv_favorites($op_type, $channel_id, &$plugin_cookies) и handle_user_input(&$user_input, &$plugin_cookies) возвращают GuiAction (по комментариям) ↩↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime.c039 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25, если call_plugin PHP-плагина возвращает null, php_server ничего не пишет в ответ и завершает цикл по EOF канала, а оболочка печатает «poll_calls() E: treating empty result as failure and stopping server», «Error: operation returned PHP_CALL_FAILED.», «result status failed», выполняет plugin_show_error и «FATAL ERROR detected (msg = Ошибка приложения)»; на экране — «Ошибка приложения / Произошла ошибка. Приложение будет закрыто.». ↩↩
-
fw-tv188b-260827-0003-r24--shell-ext.c086 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · shell_ext несёт собственную UI-библиотеку в lib/: action_factory.php, control_factory.php, gcomps_factory.php, rows_factory.php, абстрактные экраны (regular, rows, gcomps, controls), подкаталоги tv/ и vod/ и async_worker/ ↩↩↩
-
- plg-dc-globaltv.c132 · code · unknown; прошивка — · Библиотека плагина формирует действие с handler_string_id = PLUGIN_OPEN_FOLDER_ACTION_ID в ActionFactory::open_folder.
- plg-dc-globaltv.c167 · code · unknown; прошивка — · Для ввода кода родительского контроля GlobalTvTvSectionListScreen вызывает ControlFactory::add_text_field с numeric=true, has_osk=false, always_active=true и params fixed_osk_id='numeric'.
- plg-dc-globaltv--gcomps-controls.c001 · code · unknown; прошивка — · GCompsFactory::get_label_def возвращает компонент LABEL с id, geom_def, margins_def и specific_def из text/max_num_lines/text_color/font_size; defaults: id=null, max_num_lines=1, color=15, font_size=FONT_SIZE_NORMAL.
-
fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows} ↩↩
-
fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет) ↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c050 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 cond с pattern is_file(/tmp/kb_probe11/load.txt) выполнил post с tag=a_cond_yes и строковым action_status="1". ↩↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c052 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11) с output_path вернул post с action_status="1", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path; fs_ok.json содержит объект input и output.names. ↩↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c054 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 load_and_scale_image(gui_skin://large_icons/apps.aai, /tmp/kb_probe11/img.aai, scale_if_needed=false) создал файл 70344 байта и вызвал post a_image с action_status="1". ↩↩↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c021 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 JSON-действие plugin_system(run_string=bin/kbp11_ps.sh,handle_response=true) выполнило sh <каталог установки>/bin/kbp11_ps.sh; маркер записал pid=30154 и pwd=/, а post k_ps пришёл без action_status. ↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c055 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 stop_playback(wait_for_completion=true), запущенный при play_mode=none, вызвал post a_stop с play_mode=none без поля action_status в сохранённом user_input. ↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c056 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 plugin_exit_folders(count=0) вызвал post a_exit с play_mode=none без поля action_status в сохранённом user_input. ↩↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c059 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 sleep(delay_ms=500) вызвал post a_sleep в 03:36:07, после begin шага в 03:36:06; поле action_status в записанном продолжении отсутствует. ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Сборщик row_ids обходит заданный полуинтервал строк по возрастанию индекса и добавляет id только при id!=NULL, options & PLUGIN_ROW_OPT_LOADING (0x4) и отсутствии ключа id в plugin_pending_rows. ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · JSON-десериализация plugin_system оставляет PluginSystemActionData::handle_response=false: в обнулённых данных заполняются run_string и post_action, а поле handle_response не читается. ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c022 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 после JSON plugin_system с handle_response=true созданные restart_needed_flag в tmp_dir_path и install_dir_path зонда оставались сразу после шага и через 10 с. ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c023 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 pid com.dunehd.app до JSON plugin_system(handle_response=true) и через 10 с после него остался 26976. ↩↩
-
plg-gh-kocourkuba-proiptv.c030 · code · unknown; прошивка — · Возможности фреймворка плагин проверяет по наличию констант и классов dune_api.php: is_choose_file_supported() — defined('ChooseFileActionData::filter'), is_rows_api_supported() — class_exists('PluginRowsFolderView'), is_delay_load_supported() — defined('PluginUpdateTvInfoActionData::channel_changes'), is_ext_epg_enabled() — defined('PluginUpdateEpgActionData::ext_epg_enabled'); is_ext_epg_supported() дополнительно требует файл $FS_PREFIX/firmware_ext/plugins/ext_epg/dune_plugin.xml. ↩↩
-
fw-tv188b-261021-0117-r25.c017 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В libduneshell.so r25 есть строка «create_fs_ctl_action_from_xml(): not implemented», тогда как для cond, load_and_scale_image, apply_hash_dirties и update_special_favorite_folder есть create_*_action_from_xml() без такой пометки ↩↩
-
fw-tv188b-261021-0117-r25.c260 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 PHP-плагин, программа которого объявляет наследника DunePluginFw с методом call_plugin() и присваивает его экземпляр в DunePluginFw::$instance (зонд kb_probe6), загружается php_server и получает от оболочки операции handle_user_input и get_vod_stream_url. ↩↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c006 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Ни один файл каталога php/ не подключает bootstrap.php, dune_api.php, dune_config.php или dune_plugin_fw.php (require_once есть только внутри dunelib); пути этих файлов (и dune_plugin.php) вместе с шаблоном «require ('%s');» есть в строках php_server (libxxx_php_server.so)
- fw-tv188b-260827-0003-r24--php-framework.c304 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · php_server содержит пути /firmware_ext/php/bootstrap.php, dune_api.php, dune_plugin.php, dune_plugin_fw.php, dune_config.php, шаблон «require ('%s');» и сообщение «[server] loading '%s'...»
-
fw-tv188b-260827-0003-r24--php-framework.c120 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php помечен как автогенерируемый и содержит только данные: 316 констант через define() и 167 классов, в которых 998 констант класса; функций в файле нет ↩
-
fw-tv188b-260827-0003-r24--php-framework.c007 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Интерфейс DunePlugin (dune_plugin.php) объявляет 11 методов: get_folder_view, get_next_folder_view, get_tv_info, get_tv_stream_url, get_vod_info, get_vod_stream_url, get_regular_folder_items, get_day_epg, get_tv_playback_url, change_tv_favorites, handle_user_input ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c016 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Абстрактный класс DunePluginFw имеет статическое поле $instance (комментарий: должно содержать экземпляр DunePluginFw) и абстрактный метод call_plugin($call_ctx_json), возвращающий строку
- fw-tv188b-260827-0003-r24--php-framework.c017 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePluginFw::invoke_operation($plugin, $call_ctx) перед вызовом операции вызывает у плагина необязательные методы set_plugin_cookies, set_internet_status и set_opexec_id, если они существуют (method_exists)
- fw-tv188b-260827-0003-r24--php-framework.c025 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePluginFw::get_out_type_code($op_code) сопоставляет операции типам выходных данных: folder view → plugin_folder_view, regular folder items → plugin_regular_folder_range, handle_user_input и change_tv_favorites → gui_action, tv_info → plugin_tv_info, day_epg → plugin_tv_epg_program_list, *_url → url, vod_info → plugin_vod_info, vod_stream_info → plugin_stream_info
-
- fw-tv188b-260827-0003-r24--php-framework.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php определяет hd_print($str): выводит строку через echo с суффиксом $HD_NEW_LINE (по умолчанию ''), а при заданном $HD_OB_PREFIX — с этим префиксом и вызовом ob_flush()
- fw-tv188b-260827-0003-r24--php-framework.c002 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php регистрирует hd_error_handler через set_error_handler и hd_shutdown_handler через register_shutdown_function; обработчик печатает ошибку через hd_print в формате «[файл:строка] [E_ТИП] сообщение»
- fw-tv188b-260827-0003-r24--php-framework.c005 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php снимает ограничение времени выполнения PHP: set_time_limit(0)
-
fw-tv188b-260827-0003-r24--php-framework.c028 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_config.php определяет константы типа пульта FEW_BUTTONS_REMOTE_TYPE_NONE=0, _OVAL=1, _SMALL=2, _ARROWS=3 ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c032 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Файлы dunelib подключают друг друга через require_once с путями вида 'dunelib/…': expr.php → config_utils.php, dune_countries.php; config_utils.php → utils.php, dune_languages.php
- fw-tv188b-260827-0003-r24--php-framework.c050 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dunelib/utils.php определяет класс-утилиту HD (статические методы) и исключение DuneCurlException extends Exception с полями errno, error, http_code
- fw-tv188b-261021-0117-r25.c021 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Новый dunelib/installed_plugins.php (r25): класс InstalledPlugins читает /tmp/run/installed_plugins.xml (INSTALLED_PLUGINS_FILE) и кэширует список, перечитывая файл при смене mtime; методы get_by_name($plugins, $name), reload(), ensure_loaded()
-
fw-tv188b-260827-0003-r24--php-framework.c031 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Класс DuneSystem со статическим массивом $properties используется в dune_config.php и dunelib/utils.php (ключи few_buttons_remote_type, plugin_name), но ни в одном файле каталога php/ не определён; шаблон его определения «class DuneSystem { public static $properties = array(» есть в строках php_server (libxxx_php_server.so) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c305 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · php_server содержит шаблон PHP-кода «class DuneSystem { public static $properties = array(» и элемент «'sdk_version' => '1.0.0',», а также сообщение «executing system properties cmd (number of properties: %d)» ↩
-
fw-tv188b-260827-0003-r24--php-framework.c306 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · php_server задаёт include_path по шаблону «ini_set('include_path', '.:%s:%s');»; рядом строка /firmware_ext/php/include ↩
-
fw-tv188b-260827-0003-r24--php-framework.c121 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Константы классов dune_api.php — имена ключей структур: значение константы совпадает с её именем, а в комментарии указан C-тип поля (например (char *), MY_Bool, (GuiAction *)) ↩
-
- fw-tv188b-260827-0003-r24--php-framework--dune-api.c003 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В комментариях dune_api.php r24 поля ChangeBehaviourActionData::{timer} имеют C-тип (GuiTimerDef *).
- fw-tv188b-260827-0003-r24--php-framework--dune-api.c004 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В комментариях dune_api.php r24 поля ChangeBehaviourActionData::{post_action} имеют C-тип (GuiAction *).
-
fw-tv188b-260827-0003-r24--php-framework.c178 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiAction с ключами (6): handler_string_id, data, caption, plugin_name, params, flags ↩↩
-
doc-sdk-plugins.c070 · doc · any-documented; прошивка — · GUI-действие в PHP — массив с handler_string_id (тип) и data (параметры); среди типов PLUGIN_OPEN_FOLDER, PLUGIN_TV_PLAY, PLUGIN_VOD_PLAY и особый HANDLE_USER_INPUT, чей результат handle_user_input() исполняется как следующее действие ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c076 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::ensure_plugin_name(&$action) подставляет в действие plugin_name из DuneSystem::$properties, если он не задан ↩
-
fw-tv188b-260827-0003-r24--php-framework.c090 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы GUI_ACTION_FLAG_*: GUI_ACTION_FLAG_SKIP_ON_PLAY_RESTART=1 ↩↩
-
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c072 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::set_post_action присоединяет продолжение к хвосту data.post_action; для plugin_handle_user_input сохраняет JSON в params.next_action, только если next_action ложен.
- fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c038 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::set_post_action для plugin_handle_user_input создаёт params при отсутствии и дополняет существующий JSON next_action через set_post_action_to_string.
-
fw-tv188b-260827-0003-r24--php-framework.c081 · code · tv188b, tv175u, android-dune-fw; прошивка 260724_0207_r24, 260827_0003_r24 · Все 10 PHP-файлов фреймворка в tv175u 260724_0207_r24 совпадают по sha256 с tv188b 260827_0003_r24 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c082 · code · tv188b, tv175u, android-dune-fw; прошивка 240619_0210_r22, 250815_1012_r22, 260724_0207_r24, 260827_0003_r24 · bootstrap.php, dune_config.php, dune_plugin.php и dunelib/dune_countries.php одинаковы (sha256) в tv175u 240619_0210_r22, tv188b 250815_1012_r22 и r24-прошивках; dunelib/config_utils, dune_languages, expr, utils в r22-прошивках отсутствуют ↩
-
fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть ↩↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c079 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В 250815_1012_r22 (tv188b) DunePluginFw::invoke_operation не обрабатывает get_vod_stream_info, а в get_out_type_code нет PLUGIN_OP_GET_VOD_STREAM_INFO; в 260827_0003_r24 они есть ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c120 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php помечен как автогенерируемый и содержит только данные: 316 констант через define() и 167 классов, в которых 998 констант класса; функций в файле нет
- fw-tv188b-261021-0117-r25.c374 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24, 261021_0117_r25 · В dune_api.php r25 присутствуют все 316 имён define и 167 классов из r24 (отсутствующих нет); в r25 — 331 define и 179 классов.
-
- fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows}
- fw-tv188b-261021-0117-r25.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · DunePluginFw::invoke_operation в r25 обрабатывает get_folder_rows: вызывает $plugin->get_folder_rows(media_url, row_ids), а если метода нет — бросает Exception «Method not found: get_folder_rows»; get_out_type_code сопоставляет операции тип plugin_folder_rows
-
fw-tv188b-261021-0117-r25.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит файловые команды для действия fs_ctl: перечисление FsCmdKind (resolve_url, stat, scandir, get_file) и классы FsCtlActionData {cmd, output_path, post_action}, FsCmdDef {kind, specific_def}, FsResolveUrlDef {url, try_mount_if_needed}, FsStatDef {path}, FsScandirDef {path, with_stat, max_items_count}, FsGetFileDef {path, target_path, skip, max_size, chunk_size} ↩
-
fw-tv188b-261021-0117-r25.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 описывает строки с ленивой подгрузкой: тип строки PLUGIN_ROW_TYPE_DUP='row_dup', опции PLUGIN_ROW_OPT_LOADING=0x4 и PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE=0x8, поле PluginRowsPane::row_dup_map, PluginFolderView::type_mask и GCOMP_OPT_STUB=0x400000 ↩
-
fw-tv188b-261021-0117-r25.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет поля в существующие классы: FileChooserUiParams::{with_network_folders, with_network_browser, new_folder_default_name}, PluginSystemActionData::handle_response ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c276 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SyncMyCollectionActionData с ключами (2): mcf_id, post_action
- fw-tv188b-261021-0117-r25.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 класс SyncMyCollectionActionData содержит только post_action: ключ mcf_id убран из dune_api.php, а ActionFactory::sync_my_collection в shell_ext/lib принимает только $post_action
-
- fw-tv188b-260827-0003-r24--php-framework.c067 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::make_json_rpc_request($op_name, $params) возвращает массив JSON-RPC 2.0 с растущим id
- fw-tv188b-261021-0117-r25.c022 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В dunelib/utils.php r25 нет метода HD::make_json_rpc_request: между encode_props и get_mac_addr, где он стоял в r24, его нет
-
fw-tv188b-261021-0117-r25.c024 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В HD (dunelib/utils.php) r25 добавлены статические методы ensure_empty_file($path), log_elapsed($msg, $start_tm, $suffix=''), read_int($path, $def=0), read_string($path, $def='') ↩↩
-
fw-tv188b-261021-0117-r25.c021 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Новый dunelib/installed_plugins.php (r25): класс InstalledPlugins читает /tmp/run/installed_plugins.xml (INSTALLED_PLUGINS_FILE) и кэширует список, перечитывая файл при смене mtime; методы get_by_name($plugins, $name), reload(), ensure_loaded() ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c027 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В каталоге php/ call_plugin только объявлен абстрактным в DunePluginFw; наследников DunePluginFw и реализации call_plugin в php/ нет — они во встроенных плагинах (c289–c291) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c289 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Класс DefaultDunePluginFw extends DunePluginFw определён не в php/, а в файлах default_dune_plugin_fw.php 8 встроенных плагинов: в lib/ у android_apps, bt_setup, dunestore, ext_epg, ktv_start, radiotime, shell_ext и в phplib/ у bluray ↩
-
fw-tv188b-260827-0003-r24--php-framework.c290 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В копии android_apps (и идентичной bt_setup) DefaultDunePluginFw::call_plugin($call_ctx_json) возвращает json_encode(call_plugin_impl(json_decode($call_ctx_json))) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c019 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · invoke_operation использует поля контекста вызова op_type_code, input_data, plugin_cookies, internet_status, opexec_id; имя вызываемого метода плагина равно значению op_type_code ↩
-
fw-tv188b-260827-0003-r24--php-framework.c017 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePluginFw::invoke_operation($plugin, $call_ctx) перед вызовом операции вызывает у плагина необязательные методы set_plugin_cookies, set_internet_status и set_opexec_id, если они существуют (method_exists) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c018 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если в контексте вызова нет internet_status, set_internet_status получает -2; если нет opexec_id, set_opexec_id получает строку "-1" ↩
-
fw-tv188b-260827-0003-r24--php-framework.c024 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Любая операция, не перечисленная в invoke_operation явно, передаётся в handle_user_input($input_data, $plugin_cookies) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c020 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для операций get_folder_view, get_next_folder_view, get_tv_info, get_tv_stream_url, get_vod_info, get_vod_stream_url при наличии input_data->sel_state и метода
_v2 вызывается _v2($media_url, $sel_state, $plugin_cookies), иначе ($media_url, $plugin_cookies) ↩↩ -
fw-tv188b-260827-0003-r24--php-framework.c021 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для get_tv_playback_url при наличии input_data->program_id и метода get_tv_playback_url_v2 вызывается get_tv_playback_url_v2($channel_id, $archive_tm, $protect_code, $program_id, $plugin_cookies); иначе — get_tv_playback_url с input_data->archive_tm ↩
-
fw-tv188b-260827-0003-r24--php-framework.c015 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Во всех методах DunePlugin $plugin_cookies передаётся по ссылке и описан как [inout] Map: Key -> Value; у handle_user_input по ссылке передаётся и $user_input ↩↩
-
fw-tv188b-261021-0117-r25--php-framework.c036 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В отличие от операций с cookies аргументами, ветка get_folder_rows в DunePluginFw передаёт только media_url и row_ids; необязательный set_plugin_cookies вызывается раньше при входе в invoke_operation. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В libduneshell.so r24 функция fcn.0023c924 — json_materialize_output_data_from_json из json_materialization.c; она собирает PluginOutputData из JSON-ответа плагина. ↩
-
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c004 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · После чтения has_data: если значение равно 0, разбор data_type и data (switch по типу) пропускается, и управление переходит к чтению is_error.
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c005 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При has_data ≠ 0 и наличии ключа data_type функция читает data_type как строку и преобразует её в индекс PluginOutputDataType вызовом FUN_00279598; при отрицательном результате печатается Error: invalid string type-tc value (%s) for 'PluginOutputDataType'. (при ошибке разбора строки — Error: can not deserialize string type-code value for 'PluginOutputDataType': %s.), после чего индекс приравнивается 0; индекс сохраняется в поле data_type.
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c014 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · После разбора data (или сразу при has_data = 0) json_materialize_output_data_from_json читает is_error, затем error_action (GuiAction) и plugin_cookies (properties), сохраняя их в PluginOutputData.
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c015 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если чтение is_error, error_action и plugin_cookies прошло без ошибки и is_error ≠ 0, json_materialize_output_data_from_json возвращает PluginOutputData без проверки соответствия data_type требуемому типу операции. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c018 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если чтение is_error, error_action и plugin_cookies прошло без ошибки, is_error = 0, has_data ≠ 0 и data_type ≠ требуемому типу операции, функция печатает plugin op E: wrong data_type %s (required %s) of deserialized PluginOutputData., освобождает структуру и возвращает NULL; при равенстве возвращает структуру. ↩↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c016 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если чтение is_error, error_action и plugin_cookies прошло без ошибки, is_error = 0, has_data = 0 и флаг обязательности данных ≠ 0, json_materialize_output_data_from_json печатает plugin op E: got null data (op_type: %s), освобождает PluginOutputData и возвращает NULL. ↩↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c002 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · json_materialize_output_data_from_json проверяет op_id до создания PluginOutputData: проверка включается, только если ожидаемый 64-битный op_id ≥ 1 и ключ op_id есть в JSON; если проверка включена, неположительное или нечисловое значение даёт plugin op E: invalid 'op_id' in response, несовпадение — wrong 'op_id' in response, в обоих случаях возвращается NULL; при выключенной проверке op_id не сравнивается. ↩
-
plg-dc-globaltv.c056 · code · unknown; прошивка — · Поддержку rows API плагин определяет проверкой class_exists("PluginRowsFolderView"). ↩
-
plg-dc-bazinga3.c082 · code · unknown; прошивка — · Поддержку item_sticker и item_detailed_icon_width в главном меню плагин проверяет через defined('ViewItemParams::…') перед использованием. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c045 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Сравнения версий в Expr (fwv_ge/gt/le/lt) строковые: strcmp(firmware_version, аргумент) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c023 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Операция get_vod_stream_info вызывает необязательный метод плагина get_vod_stream_info($input_data, $plugin_cookies) (его нет в интерфейсе DunePlugin); если метода нет — исключение «Method not found: get_vod_stream_info» ↩
-
fw-tv188b-261021-0117-r25.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · DunePluginFw::invoke_operation в r25 обрабатывает get_folder_rows: вызывает $plugin->get_folder_rows(media_url, row_ids), а если метода нет — бросает Exception «Method not found: get_folder_rows»; get_out_type_code сопоставляет операции тип plugin_folder_rows ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c026 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для неизвестного кода операции get_out_type_code печатает ошибку через hd_print и бросает исключение «Uknown operation code» (с опечаткой в тексте) ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c019 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При ошибке любого шага разбора, не описанного отдельными ветвями, json_materialize_output_data_from_json печатает plugin op E: can not deserialize PluginOutputData: %s., освобождает память структуры и возвращает NULL. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c005 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При has_data ≠ 0 и наличии ключа data_type функция читает data_type как строку и преобразует её в индекс PluginOutputDataType вызовом FUN_00279598; при отрицательном результате печатается Error: invalid string type-tc value (%s) for 'PluginOutputDataType'. (при ошибке разбора строки — Error: can not deserialize string type-code value for 'PluginOutputDataType': %s.), после чего индекс приравнивается 0; индекс сохраняется в поле data_type. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c047 · code · android-dune-fw; прошивка 260827_0003_r24 · В strings libduneshell.so есть сообщение JSON: GuiAction: unknown handler id (%s). ↩
-
fw-tv188b-261021-0117-r25.c236 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 после сбоя операции handle_user_input php_server с «op 11 failed (read status: 2)» и PHP_CALL_FAILED оболочка пишет «FATAL ERROR detected (msg = Ошибка приложения)» и показывает диалог «Ошибка приложения / Произошла ошибка. Приложение будет закрыто.» с кнопкой OK; после закрытия плеер не завис. ↩
-
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c030 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Неизвестное имя оператора в gui_condition пишет в лог "cond E: unknown op '<имя>'".
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если оператор условия не совпал ни со встроенными операторами, ни с зарегистрированной custom-функцией, вычислитель 0x00147ef8 после лога unknown op возвращает -1.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c002 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Булева обёртка условия 0x00148f98 возвращает true только при результате вычислителя, равном 1; результат -1 превращается в false.
-
- fw-tv188b-261021-0117-r25.c243 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 в php_server и php-cgi целочисленный литерал 3000000000 в PHP-коде даёт integer 2147483647 (gettype integer, json_encode(3000000000) и json_encode(1793009215123) — 2147483647), тогда как PHP_INT_MAX + 1 даёт 2147483648, а time() * 1000 — 13-значное число без обрезки.
- fw-tv188b-261021-0117-r25.c244 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 в php_server и php-cgi json_decode() целых вне 32-битного диапазона (2147483648, 4294967296, 9007199254740993, 1793009215123, [3000000000]) возвращает integer 2147483647, а -2147483649 — integer -2147483648; json_last_error() при этом 0.
-
fw-tv188b-261021-0117-r25.c022 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В dunelib/utils.php r25 нет метода HD::make_json_rpc_request: между encode_props и get_mac_addr, где он стоял в r24, его нет ↩
-
fw-tv188b-261021-0117-r25.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 класс SyncMyCollectionActionData содержит только post_action: ключ mcf_id убран из dune_api.php, а ActionFactory::sync_my_collection в shell_ext/lib принимает только $post_action ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c012 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir несуществующего /tmp/kb_probe11/no_such записал в fs_bad.json синтаксически неверный JSON с анонимным объектом error после input: {"input":{...},{"error":{...}}}. ↩↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Ответ folder_rows применяется только к текущей папке с совпадающим ключом plugin_name:media_url; при несовпадении обработчик пишет «response ignored, folder changed» и не помещает строки в pending. ↩↩
-
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · JSON-десериализация plugin_system оставляет PluginSystemActionData::handle_response=false: в обнулённых данных заполняются run_string и post_action, а поле handle_response не читается.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c022 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 после JSON plugin_system с handle_response=true созданные restart_needed_flag в tmp_dir_path и install_dir_path зонда оставались сразу после шага и через 10 с.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c023 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 pid com.dunehd.app до JSON plugin_system(handle_response=true) и через 10 с после него остался 26976.
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В nav_plugin_perform_operation_blocked предварительный вызов ожидания проверки индекса mc выполняется до снятия начального времени и вычисления дедлайна timeout_us; длительность этого вызова в timeout_us операции не входит. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c019 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Проверка mc в 0x0041cd54 — хвостовой вызов FS_read_int('/tmp/plugins/shell_ext/mc_index_valid.txt', -1); ожидающий активный запрос продолжает запуск только при результате этой проверки 1. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderRowsInputData: media_url — (char *); row_ids — (MY_StringArray *).
- fw-tv188b-261021-0117-r25--php-framework.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderRows: rows — (PluginRowList *).
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c033 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · rows_loader держит одну текущую задачу; новый запрос от другого плагина отменяет старую задачу с предупреждением "cancelling old task of plugin", а для того же плагина текущая задача отменяется только при ненулевом втором аргументе. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c035 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · По завершении задачи rows_loader логирует её статус, вызывает обязательный rows_loaded-обработчик (иначе assert), сбрасывает id текущей задачи и взводит флаг, который возвращает следующий вызов цикла загрузчика. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c021 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Для строки DUP нативный поиск эффективной строки использует dup_id для lookup в row_dup_map; отсутствие карты, id либо записи даёт null с предупреждением. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c007 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Формат PluginRow::data выбирается нативным типом строки: DUP (1) читается как строка dup_id, а GCOMPS (2), REGULAR (3) и TITLE (4) читаются как объекты PluginGCompsRow, PluginRegularRow и PluginTitleRow соответственно. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Инициализация PluginRows регистрирует источник запросов 0x0026aa84 в DAT_00eea7a4 и обработчик ответа 0x00273cd4 в DAT_00eea798 через 0x002a9a90. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Источник get_folder_rows сначала пробует одну опорную строку по сохранённому id (при отсутствии или ненахождении id — строку 0), затем смежный диапазон, ограниченный проверками компонентов +0x50, и лишь при пустом пакете — расширенный по высотам диапазон вокруг опорного индекса. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если все три попытки выбора row_ids дают пустой массив, источник ставит DAT_00eea496=1 и возвращает NULL; при установленном флаге следующий вызов источника сразу возвращает NULL, не собирая новый пакет. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c017 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В 0x0026dca8, если найден объект в PluginRowsFolderCache, флаг исчерпания DAT_00eea496 сбрасывается в 0 до последующего условного вызова rows_loader. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При отсутствии текущего request_id rows_loader вызывает источник запросов и ставит полученный пакет как операцию get_folder_rows (native kind=3); после обработки запросов цикл повторяется, пока есть готовые пакеты и нет текущей задачи. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При ненулевых входных данных get_folder_rows нативный JSON-сериализатор записывает в input_data поле media_url и массив row_ids, обходя переданный массив идентификаторов с нулевого индекса по возрастанию. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Обработчик ответа folder_rows, прошедшего проверки статуса и текущей папки, помещает возвращённые строки с id!=NULL в plugin_pending_rows под ключом их id. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При применении plugin_pending_rows строка ответа заменяет исходную строку по её id через PluginRowIndex, а не по позиции в массиве ответа; запись при этом удаляется из pending. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c002 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При создании компонента строки с эффективным native-типом 2–4 функция 0x002cad94 при ненулевом втором аргументе и options & 0x8 создаёт упрощённый компонент с флагом 0x400000 вместо ветви создания содержимого строки. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c018 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В переданном диапазоне plugin_rows_clear_stubs пересоздаёт строки с ненулевым id, options & OPTIMIZE_INVISIBLE (0x8) и найденным компонентом с GCOMP_OPT_STUB (0x400000), вызывая создатель компонента с optimize=0. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsCmdDef: kind — FsCmdKind; specific_def — (void *).
- fw-tv188b-261021-0117-r25--php-framework.c002 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsCtlActionData: cmd — (FsCmdDef *); output_path — (char *); post_action — (GuiAction *).
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl задаёт в свойствах продолжения action_status=1 при нулевом статусе файловой команды и 0 при ненулевом. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader.c030 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В strings libduneshell.so r25 присутствуют FS_CTL и путь /config/hd_debug/FS_CTL.txt. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c004 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsResolveUrlDef: url — (char *); try_mount_if_needed — bool.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c007 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При успешном fs_ctl resolve_url продолжение получает fs_ctl_resolved_path.
-
- fw-tv188b-261021-0117-r25--php-framework.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsStatDef: path — (char *).
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c003 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При успешном fs_ctl stat поле fs_ctl_is_dir равно 1 для каталога, 0 для обычного файла и -1 для остальных типов по маске st_mode & 0xf000.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При успешном fs_ctl stat продолжение получает fs_ctl_st_mode, fs_ctl_st_size (через long long), fs_ctl_st_mtime и fs_ctl_st_ctime.
-
- fw-tv188b-261021-0117-r25--php-framework.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsScandirDef: path — (char *); with_stat — bool; max_items_count — int.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c004 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl scandir передаёт FS_scandir_ext лимит 100000 при max_items_count<=0 или max_items_count>=100000; положительное меньшее значение передаётся без изменения.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c019 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В stats результата fs_ctl scandir неудачный stat отдельного элемента сериализуется как error=1 для этого имени.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c025 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При успешном FS_scandir_ext ошибка FS_stat одного элемента не меняет итоговый статус команды scandir на ошибочный: после прохода по элементам устанавливается ноль.
-
- fw-tv188b-261021-0117-r25--php-framework.c003 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsGetFileDef: path — (char *); target_path — (char *); skip — int; max_size — int; chunk_size — int.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В fs_ctl get_file неположительный max_size заменяется пределом 2147483647 байт копирования.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В fs_ctl get_file chunk_size<=0 даёт буфер 1048576 байт; положительное значение ограничивается диапазоном 1024–1048576 байт.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c016 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl get_file при skip=0 не вызывает seek; ненулевой skip передаётся в FS_vfseek со знаковым расширением до 64 бит и origin 0 для положительного, 2 для отрицательного значения.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c017 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl get_file пишет во временный путь с суффиксом .tmp от target_path, затем после успешного копирования и закрытия файлов вызывает FS_rename во входной target_path.
-
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl задаёт в свойствах продолжения action_status=1 при нулевом статусе файловой команды и 0 при ненулевом.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c052 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11) с output_path вернул post с action_status="1", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path; fs_ok.json содержит объект input и output.names.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c053 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11/no_such) с output_path вернул post с action_status="0", fs_ctl_error="scandir failed", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl включает в fs_ctl_command продолжения имя команды: resolve_url/stat/scandir/get_file для native kind 0/1/2/3 соответственно. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl добавляет продолжению fs_ctl_error только при ненулевом статусе команды и наличии строки ошибки. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При успешном fs_ctl get_file без непустого output_path продолжение получает fs_ctl_content_size. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c026 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · У существующего продолжения fs_ctl с непустым output_path для scandir/get_file передаётся fs_ctl_output_path, а inline-поля fs_ctl_output/fs_ctl_content_size пропускаются, включая сбой записи файла. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c002 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если запись результата fs_ctl в output_path не удалась, продолжение получает fs_ctl_write_output_failed=1, а action_status по-прежнему определяется статусом самой команды. ↩↩
-
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c052 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11) с output_path вернул post с action_status="1", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path; fs_ok.json содержит объект input и output.names.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c053 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11/no_such) с output_path вернул post с action_status="0", fs_ctl_error="scandir failed", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · fs_ctl пытается сохранить результат в непустой output_path только для команд scandir и get_file; resolve_url и stat проходят по ветви свойств продолжения. ↩
-
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c007 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В fs_ctl при непустом output_path и команде scandir со статусом не 0 сериализатор 0x004972a4 после внешнего объекта и поля input вызывает 0x0049720c без предварительного имени поля для его объекта.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В fs_ctl при непустом output_path и команде get_file со статусом не 0 после внешнего объекта и input вызывается самостоятельный объект ошибки 0x0049720c без предварительного имени поля; успешная ветвь вместо него записывает поле output.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c053 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 fs_ctl scandir(/tmp/kb_probe11/no_such) с output_path вернул post с action_status="0", fs_ctl_error="scandir failed", fs_ctl_command=scandir, fs_ctl_output_path и fs_ctl_path. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c007 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля CondActionData: pattern — (char *); post_action — (GuiAction *). ↩
-
fw-tv188b-261021-0117-r25--php-framework.c022 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Манифест downloads задаёт is_shown_action первой entry_point как cond с pattern is_plugin_file(dunemdb_supplier_online_movies/__v2); post_action в этом действии не задан. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c031 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 для условий регистрируются пользовательские функции is_file и is_plugin_file и свойство separate_android_tv_apps. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c028 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Разбор gui_condition принимает имя оператора ff наравне с firmware_feature (сравнение с учётом регистра). ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c029 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Предикат firmware_feature в gui_condition обрезает аргумент до 255 байт и передаёт его в has_firmware_feature. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c032 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · is_plugin_file делит аргумент по первому '/', ищет запись по непустой части до '/', берёт её непустой путь и истинно только если "<путь>/<остаток>" — обычный файл; без '/', с пустой частью или без записи — ложно. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c051 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 cond с pattern is_file(/tmp/kb_probe11/no_such) выполнил post с tag=a_cond_no и строковым action_status="0". ↩↩
-
fw-tv188b-261021-0117-r25--php-framework.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля LoadAndScaleImageActionData: icon_url — (char *); local_path — (char *); scale_if_needed — bool; icon_width — int; icon_height — int; post_action — (GuiAction *). ↩
-
fw-tv188b-261021-0117-r25--php-framework.c025 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::load_and_scale_image(icon_url, local_path, scale_if_needed=false, icon_width=0, icon_height=0, post_action=null) возвращает GuiAction load_and_scale_image; scale_if_needed=1 и размеры добавляются только при истинном scale_if_needed, post_action — только если непуст. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · load_and_scale_image отвергает подготовленный local_path, если длина меньше 5, первый символ не '/', последний символ '/', либо начиная с позиции 2 нет второго '/'. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c023 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · load_and_scale_image после отклонения некорректного local_path всё равно записывает копию post_action в выходное продолжение. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c024 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если у load_and_scale_image создано продолжение, обработчик добавляет ему action_status как при нулевом, так и при ненулевом результате загрузки. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c026 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · MovieHelper::perform_add_special_favorite для @Movies возвращает load_and_scale_image с целью /flashdata/main_screen_items/@Movies/$id.jpg и размером 291×437, передавая повторный user_input с icon_cached=1 в post_action. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля UpdateSpecialFavoriteFolderActionData: name — (char *); delete — bool; skip_interactions — bool; post_action — (GuiAction *). ↩
-
fw-tv188b-261021-0117-r25--php-framework.c028 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::update_special_favorite_folder(name, delete, post_action=null) возвращает GuiAction update_special_favorite_folder с этими тремя полями; объявленный skip_interactions фабрика не передаёт. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c029 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · MovieHelper::add_special_favorite при false to_root_folder возвращает update_special_favorite_folder(special_folder_name, false, custom_action(add_special_favorite)); данные продолжения содержат type и id. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c030 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · MovieHelper::remove_favorite_movie/remove_favorite_person при отсутствии root_name и опустевшем соответствующем списке возвращают update_special_favorite_folder с delete=true для @Movies/@CastAndCrew; если список ещё непуст, возвращается post_action с action_status=1. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля ApplyHashDirtiesActionData: post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25--php-framework.c032 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::apply_hash_dirties(post_action=null) возвращает GuiAction apply_hash_dirties, в data которого единственное поле post_action.
-
fw-tv188b-261021-0117-r25--php-framework.c033 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · DataModel::update_dirties_for_files при force_sync либо непустом file_by_folder_id добавляет ActionFactory::apply_hash_dirties() через MainHelper::$plugin->add_result_action после вызовов store у dirties и set_quick_rescan_needed. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c034 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · HashDirties::write_file записывает в /flashdata/plugins_data/shell_ext/hash_dirties.txt по строке на запись семь полей через табуляцию: hash, del, old_movie_id, new_movie_id, ass_type, s, e. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c136 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChooseFileActionData с ключами (3): filter, ui_params, post_action ↩
-
fw-tv188b-260827-0003-r24--php-framework.c151 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс FileChooserFilter с ключами (3): file_type_dir, file_extensions, check_writable ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FileChooserUiParams: with_network_folders — bool; with_network_browser — bool; new_folder_default_name — (char *).
- fw-tv188b-261021-0117-r25--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginSystemActionData: handle_response — bool.
-
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c020 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Нативная инициализация FileChooserUiParams задаёт with_network_folders=true и with_network_browser=true, оставляя with_favorite_folders=false и остальные поля нулевыми, включая new_folder_default_name=null.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c022 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если choose_file не получил ui_params, он создаёт FileChooserUiParams через ту же стандартную инициализацию, которая включает оба сетевых флага.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c027 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Нативный choose_file вычисляет file_chooser_result_status как 0 при количестве выбранных URL больше нуля и 1 иначе. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Нативный choose_file записывает в продолжение file_chooser_result_status из результата диалога и action_status=1 только при file_chooser_result_status=0, иначе action_status=0. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Нативный choose_file передаёт продолжению число выбранных URL в file_chooser_result_urls_count и каждый URL в file_chooser_result_url_N с индексом от нуля. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c048 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · downloads SetupScreen::apply_dl_folder_url принимает результат выбора папки только при action_status=1, file_chooser_result_status=0, file_chooser_result_urls_count=1 и наличии file_chooser_result_url_0. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c050 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · downloads SetupScreen::edit_dl_folder_url и initial_choose_dl_folder_url передают choose_file dir_only=true, check_writable=true, nf_name=DEF_DL_FOLDER_NAME (dune_downloads) и with_network=true. ↩
-
fw-tv188b-261021-0117-r25--downloads.c074 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 выбор «Скачать все файлы» без заданной папки загрузок (cookies плагина downloads нет) ведёт по цепочке entry.apply_open_magnet → entry.choose_enter_action → entry.add_dl → choose_file и открывает диалог выбора «Папка загрузок» со списком хранилищ (Встроенная память, Браузер сети, сетевые папки). ↩↩
-
fw-tv188b-261021-0117-r25.c080 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 global_action plugin_system с run_string «bin/ga.sh boot» (путь относительно каталога плагина) оболочка исполняет как «Running system(sh /data/data/com.dunehd.app/flashdata/plugins/kb_probe5/bin/ga.sh boot)» — с префиксом sh и абсолютным путём каталога плагина. ↩
-
fw-tv188b-261021-0117-r25.c081 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 скрипт global_action plugin_system (boot, boot_end, gui_start) работает под uid 1000(system) с SELinux-контекстом u:r:system_app:s0, текущим каталогом / и переменной окружения FS_PREFIX=/data/data/com.dunehd.app; $0 — абсолютный путь скрипта. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginSystemActionData: handle_response — bool. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c004 · code, disputed · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В plugin_system после safe_system, если команда не распознана фоновой и handle_response=true, наличие <поле plugin+0x14>/restart_needed_flag вызывает удаление флага и вызов 0x0069f754; проверка не зависит от кода завершения safe_system. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c003 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Обработчик plugin_system распознаёт фон после удаления хвостовых пробелов и необязательного суффикса echo $!: оставшаяся длина должна быть не меньше 2, последний символ — &, предпоследний — не &; при handle_response=true в этой ветви только пишет лог игнорирования ответа и не проверяет restart_needed_flag. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В plugin_system, если управление дошло до общего выхода 0x0025635c после команды и обработки handle_response, копия post_action записывается в выходной указатель, включая фон и ненулевой статус safe_system; null post_action остаётся null. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Если plugin_system достигает общего возврата 0x00256398, его нативный статус равен 0 при safe_system==0 и -1 при любом ненулевом safe_system; это отдельно от копирования post_action. ↩
-
fw-tv188b-261021-0117-r25.c033 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Встроенный плагин s928x_dvfel (r25) — type plain, версия 2026.10.19.1-0.2.8; global_actions boot_end, install, update, uninstall запускают plugin_system bin/ctl.sh, причём install и update — с handle_response yes ↩
-
fw-tv188b-261021-0117-r25--php-framework.c045 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ctl.sh s928x_dvfel при изменении контрольной суммы libdvfelplay.so вне boot создаёт restart_needed_flag, только если прежняя actual_cksum непуста; при пустой прежней сумме удаляет флаг, а в boot эта ветка изменения флага пропускается. ↩
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c020 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В XML-конструкторе plugin_system отсутствие дочернего handle_response задаёт PluginSystemActionData::handle_response=false: конструктор передаёт умолчание 0, XML-помощник возвращает его при отсутствующем элементе. ↩
-
fw-tv188b-261021-0117-r25.c374 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24, 261021_0117_r25 · В dune_api.php r25 присутствуют все 316 имён define и 167 классов из r24 (отсутствующих нет); в r25 — 331 define и 179 классов. ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c110 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOperationType строковыми константами: PLUGIN_OP_GET_FOLDER_VIEW='get_folder_view', PLUGIN_OP_GET_NEXT_FOLDER_VIEW='get_next_folder_view', PLUGIN_OP_GET_REGULAR_FOLDER_ITEMS='get_regular_folder_items', PLUGIN_OP_HANDLE_USER_INPUT='handle_user_input', PLUGIN_OP_GET_TV_INFO='get_tv_info', PLUGIN_OP_GET_DAY_EPG='get_day_epg', PLUGIN_OP_GET_TV_PLAYBACK_URL='get_tv_playback_url', PLUGIN_OP_GET_TV_STREAM_URL='get_tv_stream_url', PLUGIN_OP_CHANGE_TV_FAVORITES='change_tv_favorites', PLUGIN_OP_GET_VOD_INFO='get_vod_info', PLUGIN_OP_GET_VOD_STREAM_URL='get_vod_stream_url', PLUGIN_OP_GET_VOD_STREAM_INFO='get_vod_stream_info'
- fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows}
-
- fw-tv188b-260827-0003-r24--php-framework.c025 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePluginFw::get_out_type_code($op_code) сопоставляет операции типам выходных данных: folder view → plugin_folder_view, regular folder items → plugin_regular_folder_range, handle_user_input и change_tv_favorites → gui_action, tv_info → plugin_tv_info, day_epg → plugin_tv_epg_program_list, *_url → url, vod_info → plugin_vod_info, vod_stream_info → plugin_stream_info
- fw-tv188b-261021-0117-r25.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · DunePluginFw::invoke_operation в r25 обрабатывает get_folder_rows: вызывает $plugin->get_folder_rows(media_url, row_ids), а если метода нет — бросает Exception «Method not found: get_folder_rows»; get_out_type_code сопоставляет операции тип plugin_folder_rows
-
- fw-tv188b-260827-0003-r24--php-framework.c008 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_folder_view($media_url, &$plugin_cookies) и get_next_folder_view($media_url, &$plugin_cookies) возвращают PluginFolderView (по комментарию)
- fw-tv188b-260827-0003-r24--php-framework.c020 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для операций get_folder_view, get_next_folder_view, get_tv_info, get_tv_stream_url, get_vod_info, get_vod_stream_url при наличии input_data->sel_state и метода
_v2 вызывается _v2($media_url, $sel_state, $plugin_cookies), иначе ($media_url, $plugin_cookies)
-
- fw-tv188b-260827-0003-r24--php-framework.c011 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_regular_folder_items($media_url, $from_ndx, &$plugin_cookies) возвращает PluginRegularFolderRange (по комментарию)
- fw-tv188b-260827-0003-r24--php-framework.c022 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для change_tv_favorites тип операции берётся из input_data->fav_op_type, для get_day_epg — channel_id и day_start_tm_sec, для get_regular_folder_items — media_url и from_ndx
-
fw-tv188b-261021-0117-r25.c261 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 при ENTER на точке входа (key_enter → plugin_handle_user_input) input_data операции handle_user_input содержит selected_media_url и orig_selected_media_url, равные media_url этой точки входа, а также play_mode none и topmenu_root_id section:applications. ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c009 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_tv_info($media_url, &$plugin_cookies) возвращает PluginTvInfo, get_tv_stream_url($media_url, &$plugin_cookies) — строку (по комментариям)
- fw-tv188b-260827-0003-r24--php-framework.c020 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для операций get_folder_view, get_next_folder_view, get_tv_info, get_tv_stream_url, get_vod_info, get_vod_stream_url при наличии input_data->sel_state и метода
_v2 вызывается _v2($media_url, $sel_state, $plugin_cookies), иначе ($media_url, $plugin_cookies)
-
- fw-tv188b-260827-0003-r24--php-framework.c012 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_day_epg($channel_id, $day_start_tm_sec, &$plugin_cookies) возвращает List
(по комментарию) - fw-tv188b-260827-0003-r24--php-framework.c022 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для change_tv_favorites тип операции берётся из input_data->fav_op_type, для get_day_epg — channel_id и day_start_tm_sec, для get_regular_folder_items — media_url и from_ndx
- fw-tv188b-260827-0003-r24--php-framework.c012 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_day_epg($channel_id, $day_start_tm_sec, &$plugin_cookies) возвращает List
-
- fw-tv188b-260827-0003-r24--php-framework.c013 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_tv_playback_url($channel_id, $archive_tm_sec, $protect_code, &$plugin_cookies) возвращает строку (по комментарию)
- fw-tv188b-260827-0003-r24--php-framework.c021 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для get_tv_playback_url при наличии input_data->program_id и метода get_tv_playback_url_v2 вызывается get_tv_playback_url_v2($channel_id, $archive_tm, $protect_code, $program_id, $plugin_cookies); иначе — get_tv_playback_url с input_data->archive_tm
-
- fw-tv188b-260827-0003-r24--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::change_tv_favorites($op_type, $channel_id, &$plugin_cookies) и handle_user_input(&$user_input, &$plugin_cookies) возвращают GuiAction (по комментариям)
- fw-tv188b-260827-0003-r24--php-framework.c022 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для change_tv_favorites тип операции берётся из input_data->fav_op_type, для get_day_epg — channel_id и day_start_tm_sec, для get_regular_folder_items — media_url и from_ndx
-
- fw-tv188b-260827-0003-r24--php-framework.c010 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_vod_info($media_url, &$plugin_cookies) возвращает PluginVodInfo, get_vod_stream_url($media_url, &$plugin_cookies) — строку (по комментариям)
- fw-tv188b-260827-0003-r24--php-framework.c020 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для операций get_folder_view, get_next_folder_view, get_tv_info, get_tv_stream_url, get_vod_info, get_vod_stream_url при наличии input_data->sel_state и метода
_v2 вызывается _v2($media_url, $sel_state, $plugin_cookies), иначе ($media_url, $plugin_cookies)
-
fw-tv188b-261021-0117-r25--media-player.c061 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ленивая серия при feature vod_get_stream_info вызывает get_vod_stream_info с playback_url kbp8lazy://a6lazy. ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c023 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Операция get_vod_stream_info вызывает необязательный метод плагина get_vod_stream_info($input_data, $plugin_cookies) (его нет в интерфейсе DunePlugin); если метода нет — исключение «Method not found: get_vod_stream_info»
- fw-tv188b-260827-0003-r24--php-framework.c079 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В 250815_1012_r22 (tv188b) DunePluginFw::invoke_operation не обрабатывает get_vod_stream_info, а в get_out_type_code нет PLUGIN_OP_GET_VOD_STREAM_INFO; в 260827_0003_r24 они есть
-
fw-tv188b-260827-0003-r24--php-framework.c213 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginOutputData с ключами (6): has_data, data_type, data, plugin_cookies, is_error, error_action ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c006 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 0 json_materialize_output_data_from_json создаёт PluginFolderView (0x18 байта) и разбирает объект data функцией FUN_00233c00.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c007 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 1 json_materialize_output_data_from_json создаёт PluginRegularFolderRange (0x14 байт) и разбирает объект data функцией FUN_00221a30.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c008 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 2 json_materialize_output_data_from_json создаёт GuiAction (0x1c байт) и разбирает объект data функцией FUN_00222688.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c009 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 3 json_materialize_output_data_from_json создаёт PluginTvInfo (0xac байт) и разбирает объект data функцией FUN_00236be4.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c010 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 4 json_materialize_output_data_from_json создаёт список PluginTvEpgProgramList (FUN_002abc9c) и разбирает элементы PluginTvEpgProgram (0x20 байт) функцией FUN_00219e6c.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c011 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 5 json_materialize_output_data_from_json читает data как строку функцией FUN_00151550 и сохраняет указатель на неё в поле data.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c012 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 6 json_materialize_output_data_from_json создаёт PluginVodInfo (100 байт) и разбирает объект data функцией FUN_0023a8d4.
-
- fw-tv188b-260827-0003-r24--php-framework.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginOutputDataType строковыми константами: PLUGIN_OUT_DATA_PLUGIN_FOLDER_VIEW='plugin_folder_view', PLUGIN_OUT_DATA_PLUGIN_REGULAR_FOLDER_RANGE='plugin_regular_folder_range', PLUGIN_OUT_DATA_GUI_ACTION='gui_action', PLUGIN_OUT_DATA_PLUGIN_TV_INFO='plugin_tv_info', PLUGIN_OUT_DATA_PLUGIN_TV_EPG_PROGRAM_LIST='plugin_tv_epg_program_list', PLUGIN_OUT_DATA_URL='url', PLUGIN_OUT_DATA_PLUGIN_VOD_INFO='plugin_vod_info', PLUGIN_OUT_DATA_PLUGIN_STREAM_INFO='plugin_stream_info'
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c013 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 7 json_materialize_output_data_from_json создаёт PluginStreamInfo (8 байт), читает строку url и список markers; элементы StreamMarker (0x14 байт) разбирает FUN_002223f0.
-
- fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows}
- fw-tv188b-261021-0117-r25--plugin-loader.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В strings libduneshell.so r25 присутствуют get_folder_rows, plugin_folder_rows, row_ids и plugin_folder_rows_input_data_create.
-
fw-tv188b-260827-0003-r24--php-framework.c105 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiEventKind строковыми константами: GUI_EVENT_KEY_ENTER='key_enter', GUI_EVENT_KEY_PLAY='key_play', GUI_EVENT_KEY_A_RED='key_a_red', GUI_EVENT_KEY_B_GREEN='key_b_green', GUI_EVENT_KEY_C_YELLOW='key_c_yellow', GUI_EVENT_KEY_D_BLUE='key_d_blue', GUI_EVENT_KEY_POPUP_MENU='key_popup_menu', GUI_EVENT_KEY_INFO='key_info', GUI_EVENT_KEY_LEFT='key_left', GUI_EVENT_KEY_RIGHT='key_right', GUI_EVENT_KEY_UP='key_up', GUI_EVENT_KEY_DOWN='key_down', GUI_EVENT_KEY_P_PLUS='key_p_plus', GUI_EVENT_KEY_P_MINUS='key_p_minus', GUI_EVENT_KEY_NEXT='key_next', GUI_EVENT_KEY_PREV='key_prev', GUI_EVENT_KEY_FIP_NEXT='key_fip_next', GUI_EVENT_KEY_FIP_PREV='key_fip_prev', GUI_EVENT_KEY_SETUP='key_setup', GUI_EVENT_KEY_RETURN='key_return', GUI_EVENT_KEY_SELECT='key_select', GUI_EVENT_KEY_CLEAR='key_clear', GUI_EVENT_KEY_PAUSE='key_pause', GUI_EVENT_KEY_FWD='key_fwd', GUI_EVENT_KEY_REW='key_rew', GUI_EVENT_KEY_SLOW='key_slow', GUI_EVENT_KEY_STOP='key_stop', GUI_EVENT_KEY_TOP_MENU='key_top_menu', GUI_EVENT_KEY_POWER='key_power', GUI_EVENT_KEY_EJECT='key_eject', GUI_EVENT_KEY_MODE='key_mode', GUI_EVENT_KEY_VENDOR='key_vendor', GUI_EVENT_KEY_SHUFFLE='key_shuffle', GUI_EVENT_KEY_MUSIC='key_music', GUI_EVENT_KEY_MUTE='key_mute', GUI_EVENT_KEY_V_PLUS='key_v_plus', GUI_EVENT_KEY_V_MINUS='key_v_minus', GUI_EVENT_KEY_SEARCH='key_search', GUI_EVENT_KEY_ZOOM='key_zoom', GUI_EVENT_KEY_SUBTITLE='key_subtitle', GUI_EVENT_KEY_REPEAT='key_repeat', GUI_EVENT_KEY_AUDIO='key_audio', GUI_EVENT_KEY_REC='key_rec', GUI_EVENT_KEY_DUNE='key_dune', GUI_EVENT_KEY_FAVORITES='key_favorites', GUI_EVENT_KEY_URL='key_url', GUI_EVENT_KEY_0='key_0', GUI_EVENT_KEY_1='key_1', GUI_EVENT_KEY_2='key_2', GUI_EVENT_KEY_3='key_3', GUI_EVENT_KEY_4='key_4', GUI_EVENT_KEY_5='key_5', GUI_EVENT_KEY_6='key_6', GUI_EVENT_KEY_7='key_7', GUI_EVENT_KEY_8='key_8', GUI_EVENT_KEY_9='key_9', GUI_EVENT_UI_ACTION='ui_action', GUI_EVENT_TIMER='timer', GUI_EVENT_PLUGIN_ROWS_INFO_UPDATE='plugin_rows_info_update', GUI_EVENT_FOLDER_LEAVE='folder_leave', GUI_EVENT_FOLDER_ENTER='folder_enter', GUI_EVENT_FOLDER_RETURN_BACK='folder_return_back', GUI_EVENT_PLAYBACK_STOP='playback_stop', GUI_EVENT_PLAYBACK_GOING_TO_SWITCH='playback_going_to_switch', GUI_EVENT_PLAYBACK_SWITCHED='playback_switched', GUI_EVENT_PLAYBACK_USER_ACTION='playback_user_action', GUI_EVENT_PLAYBACK_STATE_CHANGED='playback_state_changed', GUI_EVENT_MENU_PLAYBACK_OSD_CLOSED='menu_playback_osd_closed', GUI_EVENT_MENU_PLAYBACK_OSD_GOING_TO_OPEN='menu_playback_osd_going_to_open', GUI_EVENT_MENU_PLAYBACK_FINISH='menu_playback_finish', GUI_EVENT_MENU_EXT_APP_FINISH='menu_ext_app_finish', GUI_EVENT_WEB_BROWSER_FINISH='web_browser_finish', GUI_EVENT_BOOT='boot', GUI_EVENT_BOOT_END='boot_end', GUI_EVENT_INSTALL='install', GUI_EVENT_UPDATE='update', GUI_EVENT_UNINSTALL='uninstall', GUI_EVENT_GOING_TO_UPDATE='going_to_update', GUI_EVENT_GOING_TO_STOP='going_to_stop', GUI_EVENT_GUI_START='gui_start', GUI_EVENT_EARLY_GUI_START='early_gui_start', GUI_EVENT_STORAGE_DETECTED_MENU='storage_detected_menu', GUI_EVENT_FILE_POPUP_MENU='file_popup_menu', GUI_EVENT_TOPMENU_POPUP_MENU='topmenu_popup_menu', GUI_EVENT_TOPMENU_REFRESH='topmenu_refresh', GUI_EVENT_GOING_TO_RELOAD_ALL_FOLDERS='going_to_reload_all_folders', GUI_EVENT_FAVORITES_UPDATED='favorites_updated', GUI_EVENT_NETWORK_CHANGE='network_change', GUI_EVENT_SETTINGS_UPDATED='settings_updated', GUI_EVENT_CONFIRM_UPDATE='confirm_update', GUI_EVENT_SHUTDOWN='shutdown' ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c083 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы VALIGN_*: VALIGN_TOP=0, VALIGN_CENTER=1, VALIGN_BOTTOM=2 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c084 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы HALIGN_*: HALIGN_LEFT=0, HALIGN_CENTER=1, HALIGN_RIGHT=2 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c085 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы FONT_SIZE_*: FONT_SIZE_NORMAL=0, FONT_SIZE_SMALL=1, FONT_SIZE_LARGE=4 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c086 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы CYCLE_MODE_GAP_*: CYCLE_MODE_GAP_AUTO=0, CYCLE_MODE_GAP_YES=1, CYCLE_MODE_GAP_NO=2 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c087 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы ORIENTATION_*: ORIENTATION_VERTICAL=0, ORIENTATION_HORIZONTAL=1 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c088 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы USE_TZ_*: USE_TZ_GMT=0, USE_TZ_LOCAL=1, USE_TZ_NONE=2 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c089 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы EPG_*: EPG_START_OVER_ENABLED=4, EPG_START_OVER_DISABLED=8, EPG_TRICK_PLAY_ENABLED=16 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c091 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы CHANGE_OP_*: CHANGE_OP_ADD=2, CHANGE_OP_DELETE=3, CHANGE_OP_DELETE_ANDROID_APPS_EXCEPT=101, CHANGE_OP_NOP=0, CHANGE_OP_REPLACE=1, CHANGE_OP_TOGGLE=4 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c092 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы EDIT_LIST_CONFIG_OPT_*: EDIT_LIST_CONFIG_OPT_ALLOW_EMPTY=0x2, EDIT_LIST_CONFIG_OPT_REMOVE_UNCHECKED=0x1, EDIT_LIST_CONFIG_OPT_WITH_DEFAULT=0x4 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c093 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы GCOMP_GEOM_OPT_*: GCOMP_GEOM_OPT_NON_NEGATIVE_X=0x1, GCOMP_GEOM_OPT_NON_NEGATIVE_Y=0x2 ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c094 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы GCOMP_OPT_*: GCOMP_OPT_APPEAR_WITH_FADE=0x100, GCOMP_OPT_BG_PICTURE=0x8, GCOMP_OPT_DEBUG_FRAME=0x01000000, GCOMP_OPT_EMPTY_WITH_VIDEO=0x20, GCOMP_OPT_FOCUS=0x100000, GCOMP_OPT_IMG_CHECK_EFF_URL=0x200000, GCOMP_OPT_NO_CLIP=0x4, GCOMP_OPT_NO_PREPAINT=0x2, GCOMP_OPT_PREPAINT=0x1, GCOMP_OPT_TRANSPARENT_WITH_VIDEO=0x10, GCOMP_OPT_TTF_COMPACT_HEIGHT=0x2000, GCOMP_OPT_TTF_LAYOUT_FIX=0x1000, GCOMP_OPT_TTF_QUALITY_WRAP=0x4000
- fw-tv188b-261021-0117-r25.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 описывает строки с ленивой подгрузкой: тип строки PLUGIN_ROW_TYPE_DUP='row_dup', опции PLUGIN_ROW_OPT_LOADING=0x4 и PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE=0x8, поле PluginRowsPane::row_dup_map, PluginFolderView::type_mask и GCOMP_OPT_STUB=0x400000
-
- fw-tv188b-260827-0003-r24--php-framework.c095 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет константы PLUGIN_ROW_OPT_*: PLUGIN_ROW_OPT_FIRST_IN_CLUSTER=0x1, PLUGIN_ROW_OPT_FIRST_WITH_INFO=0x2
- fw-tv188b-261021-0117-r25.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 описывает строки с ленивой подгрузкой: тип строки PLUGIN_ROW_TYPE_DUP='row_dup', опции PLUGIN_ROW_OPT_LOADING=0x4 и PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE=0x8, поле PluginRowsPane::row_dup_map, PluginFolderView::type_mask и GCOMP_OPT_STUB=0x400000
-
fw-tv188b-260827-0003-r24--php-framework.c096 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление DialogFrameStyle строковыми константами: DIALOG_FRAME_STYLE_DEFAULT='default', DIALOG_FRAME_STYLE_GLASS='glass', DIALOG_FRAME_STYLE_TRANSPARENT='transparent', DIALOG_FRAME_STYLE_PLAYBACK_INFO='playback_info' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c097 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompFocusType строковыми константами: GCOMP_FOCUS_NONE='none', GCOMP_FOCUS_SYSTEM='system', GCOMP_FOCUS_DEFAULT_CUT_IMAGE='default_cut_image', GCOMP_FOCUS_INACTIVE_CUT_IMAGE='inactive_cut_image', GCOMP_FOCUS_DEFAULT_RECT='default_rect', GCOMP_FOCUS_RECT2='rect2', GCOMP_FOCUS_RECT3='rect3' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c098 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompItemType строковыми константами: GCOMP_ITEM_REGULAR='regular', GCOMP_ITEM_LABEL='label', GCOMP_ITEM_BUTTON='button', GCOMP_ITEM_TEXT_FIELD='text_field' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c099 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompLayoutRole строковыми константами: GCOMP_LAYOUT_UNSET='unset', GCOMP_LAYOUT_TOP='top', GCOMP_LAYOUT_BOTTOM='bottom', GCOMP_LAYOUT_LEFT='left', GCOMP_LAYOUT_RIGHT='right', GCOMP_LAYOUT_CENTER='center' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c100 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompTextFit строковыми константами: GCOMP_TEXT_FIT_CROP='crop', GCOMP_TEXT_FIT_INSERT_ELLIPSIS='insert_ellipsis', GCOMP_TEXT_FIT_APPEND_ELLIPSIS='append_ellipsis' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c101 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompTransition строковыми константами: GCOMP_TRANSITION_NONE='none', GCOMP_TRANSITION_LAST_STEP='last_step', GCOMP_TRANSITION_DEFAULT='default', GCOMP_TRANSITION_FADE='fade' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c102 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GComponentKind строковыми константами: GCOMPONENT_LABEL='label', GCOMPONENT_TTF_LABEL='ttf_label', GCOMPONENT_RECT='rect', GCOMPONENT_IMAGE='image', GCOMPONENT_CUT_IMAGE='cut_image', GCOMPONENT_SANDWICH='sandwich', GCOMPONENT_BUTTON='button', GCOMPONENT_TEXT_FIELD='text_field', GCOMPONENT_PANEL='panel', GCOMPONENT_SCROLL_PANE='scroll_pane', GCOMPONENT_PREPAINT_PANE='prepaint_pane', GCOMPONENT_SCROLLBAR='scrollbar' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c103 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GCompsFlipEffect строковыми константами: GCOMPS_FLIP_EFFECT_NONE='none', GCOMPS_FLIP_EFFECT_FADE='fade', GCOMPS_FLIP_EFFECT_FADE_OUT_SCALED='fade_out_scaled' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c104 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление GuiControlKind строковыми константами: GUI_CONTROL_LABEL='label', GUI_CONTROL_PROGRESS_BAR='progress_bar', GUI_CONTROL_COMBOBOX='combobox', GUI_CONTROL_TEXT_FIELD='text_field', GUI_CONTROL_BUTTON='button', GUI_CONTROL_VGAP='vgap' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c106 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginEpgMode строковыми константами: PLUGIN_EPG_DISABLED='disabled', PLUGIN_EPG_USE_DAY_REQUEST='use_day_request', PLUGIN_EPG_GET_FROM_STREAM='get_from_stream', PLUGIN_EPG_USE_DVB_PROVIDER='use_dvb_provider' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c107 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginFavoritesOpType строковыми константами: PLUGIN_FAVORITES_OP_ADD='add', PLUGIN_FAVORITES_OP_REMOVE='remove', PLUGIN_FAVORITES_OP_MOVE_UP='move_up', PLUGIN_FAVORITES_OP_MOVE_DOWN='move_down' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c108 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginFolderViewKind строковыми константами: PLUGIN_FOLDER_VIEW_REGULAR='view_regular', PLUGIN_FOLDER_VIEW_CONTROLS='view_controls', PLUGIN_FOLDER_VIEW_MOVIE='view_movie', PLUGIN_FOLDER_VIEW_GCOMPS='view_gcomps', PLUGIN_FOLDER_VIEW_ROWS='view_rows' ↩
-
fw-tv188b-260827-0003-r24--php-framework.c109 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginFontSize строковыми константами: PLUGIN_FONT_NORMAL='normal', PLUGIN_FONT_SMALL='small' ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c112 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление PluginRowType строковыми константами: PLUGIN_ROW_TYPE_VGAP='row_vgap', PLUGIN_ROW_TYPE_GCOMPS='row_gcomps', PLUGIN_ROW_TYPE_REGULAR='row_regular', PLUGIN_ROW_TYPE_TITLE='row_title'
- fw-tv188b-261021-0117-r25.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 описывает строки с ленивой подгрузкой: тип строки PLUGIN_ROW_TYPE_DUP='row_dup', опции PLUGIN_ROW_OPT_LOADING=0x4 и PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE=0x8, поле PluginRowsPane::row_dup_map, PluginFolderView::type_mask и GCOMP_OPT_STUB=0x400000
-
- fw-tv188b-260827-0003-r24--php-framework.c113 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php задаёт перечисление StreamMarkerType строковыми константами: STREAM_MARKER_INTRO='intro', STREAM_MARKER_RECAP='recap', STREAM_MARKER_CLOSING_CREDITS='closing_credits'
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
- fw-tv188b-261021-0117-r25.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит файловые команды для действия fs_ctl: перечисление FsCmdKind (resolve_url, stat, scandir, get_file) и классы FsCtlActionData {cmd, output_path, post_action}, FsCmdDef {kind, specific_def}, FsResolveUrlDef {url, try_mount_if_needed}, FsStatDef {path}, FsScandirDef {path, with_stat, max_items_count}, FsGetFileDef {path, target_path, skip, max_size, chunk_size}
- fw-tv188b-261021-0117-r25--plugin-loader.c021 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В strings libduneshell.so r25 присутствуют четыре выражения def->kind == FS_CMD_RESOLVE_URL, FS_CMD_STAT, FS_CMD_SCANDIR и FS_CMD_GET_FILE.
-
fw-tv188b-260827-0003-r24--php-framework.c022 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Для change_tv_favorites тип операции берётся из input_data->fav_op_type, для get_day_epg — channel_id и day_start_tm_sec, для get_regular_folder_items — media_url и from_ndx ↩
-
fw-tv188b-261021-0117-r25--plugin-loader.c021 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В strings libduneshell.so r25 присутствуют четыре выражения def->kind == FS_CMD_RESOLVE_URL, FS_CMD_STAT, FS_CMD_SCANDIR и FS_CMD_GET_FILE. ↩
-
doc-sdk-plugins--gui-actions.c033 · doc · any-documented; прошивка — · PluginOpenFolderAction открывает папку плагина: caption добавляется в блок пути, выполняется операция Get_folder_view($media_url), её результат показывается как содержимое папки ↩
-
doc-sdk-plugins--gui-actions.c034 · doc · any-documented; прошивка — · Если media_url в PluginOpenFolderAction равен null, используется media_url выбранного элемента папки; если элемент не выбран, действие игнорируется ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c211 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginOpenFolderActionData с ключами (7): caption, media_url, id, sel_id, tags, keep_osd_context, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::open_folder_ext строит действие plugin_open_folder; схема заполнения использует PluginOpenFolderActionData::{media_url, caption, id, post_action, sel_id, tags}. sel_id при isset; tags=[movie_id:
] только для screen_id=MovieScreen::ID.
-
doc-sdk-plugins--gui-actions.c097 · doc · any-documented; прошивка — · OpenFolder (данные OpenFolderActionData с необязательным media_url) открывает обычную (не плагинную) папку; без media_url выбранный элемент открывается обычным образом; доступно с прошивки 130315_b6 ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c195 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс OpenFolderActionData с ключами (2): media_url, caption
- doc-sdk-plugins--gui-actions.c155 · code · unknown; прошивка — · ActionFactory::open_general_folder плагина polsky-tv формирует действие типа OpenFolder с handler_string_id = OPEN_FOLDER_ACTION_ID и data из поля класса OpenFolderActionData::media_url.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c063 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика exit_folders плагина downloads строит plugin_exit_folders с data count и post_action, но при неопределённой константе PluginExitFoldersActionData::count вместо действия возвращает post_action; манифест downloads ставит plugin_exit_folders в global_actions install и update. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c200 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginExitFoldersActionData с ключами (2): count, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c065 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика replace_path shell_ext строит plugin_replace_path с data erase_count, elements и post_action (sel_id из PluginReplacePathActionData не передаёт); единственный вызывающий — PathHelper::update_movie_file_matching_path: erase_count = get_movie_screens_count(), elements — элементы пути (media_url, caption, id) нового фильма. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c225 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginReplacePathActionData с ключами (4): erase_count, elements, sel_id, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c041 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::replace_path строит действие plugin_replace_path; схема заполнения использует PluginReplacePathActionData::{erase_count, elements, post_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c067 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика rename_path строит rename_path с data caption и post_action; shell_ext выдаёт её после успешного rename_mc_folder: close_dialog_and_run(rename_path($caption, invalidate_all_folders(...))). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c258 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RenamePathActionData с ключами (2): caption, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c039 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::rename_path строит действие rename_path; схема заполнения использует RenamePathActionData::{caption, post_action}.
-
doc-sdk-plugins--gui-actions.c072 · doc · any-documented; прошивка — · PluginInvalidateFolders очищает кэш папок плагина с указанными media_urls, заставляя полностью перезагрузить их; некэшированные media_url игнорируются ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c207 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginInvalidateFoldersActionData с ключами (4): media_urls, all_except, repopulate, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c017 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::invalidate_folders строит действие plugin_invalidate_folders; схема заполнения использует PluginInvalidateFoldersActionData::{media_urls, post_action, all_except}.
-
doc-sdk-plugins--gui-actions.c069 · doc · any-documented; прошивка — · PluginUpdateFolderAction частично заменяет состояние текущей регулярной папки плагина: при need_refresh очищается кэш состояния папки, применяется переданный range, при sel_ndx >= 0 фокус переходит на элемент с этим индексом ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c245 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateFolderActionData с ключами (3): range, need_refresh, sel_ndx
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c022 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_regular_folder строит действие plugin_update_folder; схема заполнения использует PluginUpdateFolderActionData::{range, need_refresh, sel_ndx}. need_refresh=false; sel_ndx=-1, приводится к int.
-
doc-sdk-plugins--gui-actions.c064 · doc · any-documented; прошивка — · ResetControlsAction заменяет состояние текущего диалога с контролами или папки с контролами; вне их игнорируется ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c259 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ResetControlsActionData с ключами (4): defs, initial_sel_ndx, keep_inner_state, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c024 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::reset_controls строит действие reset_controls; схема заполнения использует ResetControlsActionData::{defs, initial_sel_ndx, post_action}.
-
doc-sdk-plugins--gui-actions.c096 · doc · any-documented; прошивка — · В ChangeBehaviour заданное actions заменяет существующую карту действий, а заданный таймер перезапускается от текущего момента ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c126 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeBehaviourActionData с ключами (3): actions, timer, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c035 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_behaviour строит действие change_behaviour; схема заполнения использует ChangeBehaviourActionData::{actions, timer, post_action}. Перед построением вызывает GlobalActionMap::add_actions(actions).
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c129 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeGCompsActionData с ключами (11): change_defs, window_change, interrupt_disabled, num_steps, flip_effect, duration_multiplier, small_state_text, sel_state, ui_state, skip_repaint, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c065 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_gcomps строит действие change_gcomps; схема заполнения использует ChangeGCompsActionData::{change_defs, num_steps, sel_state, window_change, interrupt_disabled, small_state_text, ui_state, skip_repaint, post_action}. sel_state берётся из get_cur_sel_state_str(); num_steps=0; дополнительные поля по истинности, skip_repaint записывается как true.
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c250 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateStickerActionData с ключами (3): sticker, ep_media_url, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c059 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_sticker строит действие plugin_update_sticker; схема заполнения использует PluginUpdateStickerActionData::{ep_media_url, sticker, post_action}.
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c248 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateRowsInfoActionData с ключами (4): clear_cache, invalidate_cache, info, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c067 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_rows_info строит действие plugin_update_rows_info; схема заполнения использует PluginRowsInfo::{info_defs, bg_url, nl_bg_url, mask_url, bg_poster_mode, playback_urls}; PluginUpdateRowsInfoActionData::{info, post_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c069 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика update_rows_menu android_apps строит plugin_update_rows_menu с data reload_topmenu и post_action; apps_setup_screen выдаёт update_rows_menu(true, …) после AppShortcuts::set_dirty, AppConfig::set_dirty и EpfsHandler::update_apps_epfs; что делает оболочка (перечитать меню строк и верхнее меню) — по имени ключа, не проверено. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c249 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateRowsMenuActionData с ключами (2): reload_topmenu, post_action
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c216 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRefreshEntryPointsActionData с ключами (1): post_action
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler--recent-views.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · get_action_map r25 ставит Enter/Play/Menu playback finish; при непустой истории Popup и Clear обёрнуты update_folder_marks(CHANGE_OP_NOP, null, 'marks_str', post_action), то есть marks_output_key='marks_str'. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c279 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UpdateFolderMarksActionData с ключами (4): change_op, ids, marks_output_key, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c023 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_folder_marks строит действие update_folder_marks; схема заполнения использует UpdateFolderMarksActionData::{change_op, ids, marks_output_key, post_action}. change_op всегда; ids/post_action при истинности, marks_output_key при isset.
-
- doc-sdk-plugins--gui-actions.c075 · doc · any-documented; прошивка — · Данные PluginClearArchiveCache — класс PluginClearArchiveCacheActionData: archive_id (необязательно, null — все архивы) и необязательный post_action
- doc-sdk-plugins--gui-actions.c076 · doc · any-documented; прошивка — · PluginClearArchiveCache удаляет из файловой системы кэш архивов плагина: при заданном archive_id — только этот архив, иначе все архивы текущего плагина
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c198 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginClearArchiveCacheActionData с ключами (2): archive_id, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c025 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::clear_archive_cache строит действие plugin_clear_archive_cache; схема заполнения использует PluginClearArchiveCacheActionData::{archive_id, post_action}.
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c242 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateArchiveCacheActionData с ключами (3): archive, reread_archive_dir, post_action
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c070 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика update_epf_mapping shell_ext без MainHelper::$with_newgui возвращает post_action, иначе строит plugin_update_epf_mapping с data epf_id, mapped_plugin_name, sync_epfs, post_action; reread_all_epfs($sync_epfs) — тот же вызов с epf_id и mapped_plugin_name = null. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c071 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · shell_ext строит plugin_update_epf_mapping с непустым epf_id в get_update_epf_action: для каждой пары epf_id => имя плагина из $epf_mapping, sync_epfs=false, только при HD::with_epfs(). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c243 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateEpfMappingActionData с ключами (4): epf_id, mapped_plugin_name, sync_epfs, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c036 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_epf_mapping строит действие plugin_update_epf_mapping; схема заполнения использует PluginUpdateEpfMappingActionData::{epf_id, mapped_plugin_name, sync_epfs, post_action}. При !MainHelper::$with_newgui сразу возвращает post_action.
-
doc-sdk-plugins--gui-actions.c091 · doc · any-documented; прошивка — · ShowMainScreen (данные ShowMainScreenActionData с полем post_action) переключает на главный экран; добавлено для сценариев auto_start, текущая реализация имеет ограничения ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c268 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ShowMainScreenActionData с ключами (1): post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c031 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_main_screen строит действие show_main_screen; схема заполнения использует ShowMainScreenActionData::{post_action}.
-
doc-sdk-plugins--gui-actions.c092 · doc · any-documented; прошивка — · ShowBlackScreen (данные ShowBlackScreenActionData: bg_url, post_action) переключает на чёрный экран; если задан bg_url, вместо сплошного чёрного фона показывается эта картинка ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c265 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ShowBlackScreenActionData с ключами (2): bg_url, post_action
- doc-sdk-plugins--gui-actions.c158 · code · unknown; прошивка — · ActionFactory::show_black_screen плагина freetv формирует действие типа ShowBlackScreen с handler_string_id = SHOW_BLACK_SCREEN_ACTION_ID и data из полей класса ShowBlackScreenActionData::bg_url и ::post_action.
-
doc-sdk-plugins--gui-actions.c052 · doc · any-documented; прошивка — · ShowDialogAction показывает диалог с контролами и взаимодействует с пользователем, пока диалог не закрыт; контролы идут вертикальным списком, у каждого может быть заголовок (1 или 2 колонки), полоса прокрутки появляется при необходимости ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c036 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В show_dialog подпись не получает фокус: в окне A из 30 подписей и кнопки OK фокус при открытии стоит на OK. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c266 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ShowDialogActionData с ключами (10): title, defs, actions, timer, close_by_return, preferred_width, max_height, min_item_title_width, initial_sel_ndx, params
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c007 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_dialog строит действие show_dialog; схема заполнения использует ShowDialogActionData::{title, defs, close_by_return, preferred_width, min_item_title_width, max_height, initial_sel_ndx, actions, timer, params}. attrs: initial_sel_ndx=-1, actions=null, timer=null, min_item_title_width=0, max_height=0, params=null; close_by_return=false, preferred_width=0.
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c267 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ShowGCompsDialogActionData с ключами (9): geom_def, comp_defs, focus, ui_state, sel_state, actions, timer, params, async_icon_loading
-
doc-sdk-plugins--gui-actions.c061 · doc · any-documented; прошивка — · CloseDialogAndRunAction (данные CloseDialogAndRunActionData с необязательным post_action) закрывает текущий диалог с контролами и возвращает post_action как результат вызвавшего действия SHOW_DIALOG ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c139 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CloseDialogAndRunActionData с ключами (1): post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c008 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::close_dialog_and_run строит действие close_dialog_and_run; схема заполнения использует CloseDialogAndRunActionData::{post_action}.
-
doc-sdk-plugins--gui-actions.c099 · doc · any-documented; прошивка — · CloseAndRunAction (данные CloseAndRunActionData с необязательным post_action): при активном диалоге с контролами работает как CloseDialogAndRunAction, при другом диалоге ничего не делает, а без диалогов в активной папке закрывает её (переход вверх) и возвращает post_action; доступно с прошивки 121114 ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c138 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CloseAndRunActionData с ключами (1): post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c010 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::close_and_run строит действие close_and_run; схема заполнения использует CloseAndRunActionData::{post_action}.
-
doc-sdk-plugins--gui-actions.c066 · doc · any-documented; прошивка — · ShowPopupMenuAction показывает всплывающее меню до его закрытия; действие выбранного пользователем пункта возвращается как post action ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c269 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ShowPopupMenuActionData с ключами (3): menu_items, selected_menu_item_index, prepend_items_from_selected_plugin
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c019 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_popup_menu строит действие show_popup_menu; схема заполнения использует ShowPopupMenuActionData::{menu_items, selected_menu_item_index}.
-
plg-dc-globaltv.c055 · code · unknown; прошивка — · Для topmenu_popup плагин читает из user_input selected_topmenu_item_id (формат plugin:<имя>:section_
) и topmenu_pcode_entered и отвечает действием add_menu_items. ↩ -
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c122 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс AddMenuItemsActionData с ключами (5): menu_id, menu_params, menu_items, sel_ndx, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c038 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::add_menu_items строит действие add_menu_items; схема заполнения использует AddMenuItemsActionData::{menu_items}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c073 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика rename_menu_item android_apps строит rename_menu_item с data id, caption, orig_caption, with_dialog (по умолчанию true) и post_action; AppsScreen::rename передаёт id пункта меню приложения, текущую и исходную подпись, with_dialog=true и продолжение finalize_rename — по смыслу оболочка показывает диалог переименования пункта меню (inference по месту вызова). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c257 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RenameMenuItemActionData с ключами (5): id, caption, orig_caption, with_dialog, post_action
-
doc-sdk-plugins--gui-actions.c044 · doc · any-documented; прошивка — · PluginShowErrorAction в режиме воспроизведения показывает одну строку текста в центре экрана, а в меню Dune — диалог с заголовком и строками сообщения ↩
-
fw-tv188b-261021-0117-r25.c339 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 строковый id plugin_show_error в ответе handle_user_input принят: shell.log пишет result action plugin_show_error. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c231 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginShowErrorActionData с ключами (7): fatal, title, msg_lines, stop_playback, retry_delay_ms, options, post_action
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c029 · code · android-dune-fw; прошивка 260827_0003_r24 · В strings libduneshell.so есть диагностики чтения полей PluginShowErrorActionData: fatal (boolean); title (string); msg_lines (array); stop_playback (boolean); retry_delay_ms (int); options (properties); post_action (object).
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c136 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChooseFileActionData с ключами (3): filter, ui_params, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Нативный choose_file записывает в продолжение file_chooser_result_status из результата диалога и action_status=1 только при file_chooser_result_status=0, иначе action_status=0.
-
doc-sdk-plugins--gui-actions.c041 · doc · any-documented; прошивка — · PluginVodPlayAction запускает VOD-воспроизведение по vod_info, а если оно не задано — по результату get_vod_info($current_media_url), где $current_media_url — media_url выбранного элемента папки (null, если ничего не выбрано) ↩
-
fw-tv188b-261021-0117-r25.c269 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 первое событие playback_state_changed при VOD приходит сразу после ответа plugin_vod_play, до запуска плеера, с play_mode none, selected_media_url точки входа, plugin_playback_start=1 и playback_position 8 (при initial_position_ms=8000). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c254 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginVodPlayActionData с ключами (1): vod_info
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c004 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::vod_play строит действие plugin_vod_play; схема заполнения использует PluginVodPlayActionData::{vod_info}.
-
doc-sdk-plugins--gui-actions.c037 · doc · any-documented; прошивка — · PluginTvPlayAction запускает TV-воспроизведение: берёт media_url выбранного элемента папки (null, если ничего не выбрано), выполняет Get_tv_info($media_url) и инициализирует состояние по полученному PluginTvInfo ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c240 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvPlayActionData с ключами (7): initial_group_id, initial_channel_id, initial_is_favorite, initial_archive_tm, initial_trick_play, initial_trick_play_duration, initial_archive_program
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c003 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::tv_play строит действие plugin_tv_play; схема заполнения использует только handler_string_id.
-
doc-sdk-plugins--gui-actions.c086 · doc · any-documented; прошивка — · LaunchMediaUrl рекурсивно строит плейлист с url в качестве корня, по содержимому плейлиста выбирает исполнителя и запускает его ↩
-
fw-tv188b-261021-0117-r25.c341 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 cmd=launch_media_url с plugin_launcher://{name=kb_probe9}{ep_media_url=kbp9_ping} запустил точку входа плагина: число вызовов ping выросло 0 → 1. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c194 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс LaunchMediaUrlActionData с ключами (9): url, caption, play_in_background, start_index, internal_player_only, resume_extra_choices, resume_ext_text, params, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c026 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::launch_media_url_ext строит действие launch_media_url; схема заполнения использует LaunchMediaUrlActionData::{url, caption, post_action, play_in_background, start_index, internal_player_only, resume_extra_choices, resume_ext_text, params}. play_in_background=false, start_index=-1, internal_player_only=false; params добавляются только при истинности.
-
doc-sdk-plugins--gui-actions.c082 · doc · any-documented; прошивка — · FilePlay (данные FilePlayActionData с полем url) запускает обычное воспроизведение одного файла; url должен указывать на аудио- или видеофайл либо поток поддерживаемого формата ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c154 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс FilePlayActionData с ключами (2): url, caption
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c030 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::launch_file строит действие file_play; схема заполнения использует FilePlayActionData::{url, caption}.
-
doc-sdk-plugins--gui-actions.c083 · doc · any-documented; прошивка — · PlaylistPlay (данные PlaylistPlayActionData: url, start_index) воспроизводит плейлист, построенный из файла или папки по url; первым играет элемент с индексом start_index, если он валиден ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c196 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PlaylistPlayActionData с ключами (2): url, start_index
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c029 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::launch_playlist строит действие playlist_play; схема заполнения использует PlaylistPlayActionData::{url, start_index}.
-
doc-sdk-plugins--gui-actions.c080 · doc · any-documented; прошивка — · DvdPlay (данные DvdPlayActionData с полем url) запускает DVD-воспроизведение по заданному url ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c147 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс DvdPlayActionData с ключами (1): url
- doc-sdk-plugins--gui-actions.c156 · code · unknown; прошивка — · ActionFactory::dvd_play плагина emplexer формирует действие типа DvdPlay с handler_string_id = DVD_PLAY_ACTION_ID и data из поля класса DvdPlayActionData::url.
-
doc-sdk-plugins--gui-actions.c081 · doc · any-documented; прошивка — · BlurayPlay (данные BlurayPlayActionData с полем url) запускает Blu-ray-воспроизведение по url; действие доступно только в прошивках с поддержкой Blu-ray ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c124 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс BlurayPlayActionData с ключами (1): url
- doc-sdk-plugins--gui-actions.c157 · code · unknown; прошивка — · ActionFactory::bluray_play плагина emplexer формирует действие типа BlurayPlay с handler_string_id = BLURAY_PLAY_ACTION_ID и data из поля класса BlurayPlayActionData::url.
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c273 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс StopPlaybackActionData с ключами (2): wait_for_completion, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c033 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::stop_playback строит действие stop_playback; схема заполнения использует StopPlaybackActionData::{wait_for_completion, post_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c074 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика switch_osd_mode shell_ext строит switch_osd_mode с data osd_mode и post_action; MovieScreen при запуске того же фильма, что уже играет (movie id из info_tag), вместо нового запуска возвращает switch_osd_mode(true) с логом "just switching to osd". ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c275 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SwitchOsdModeActionData с ключами (2): osd_mode, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c032 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::switch_osd_mode строит действие switch_osd_mode; схема заполнения использует SwitchOsdModeActionData::{osd_mode, post_action}.
-
doc-sdk-plugins--gui-actions.c136 · doc · any-documented; прошивка — · PluginUpdateOsdAction позволяет рисовать в TV/VOD-воспроизведении плагина произвольное число своих картинок и текстов; они рисуются под (до) штатными элементами OSD — браузером плейлиста, информационным блоком и т. п. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c247 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateOsdActionData с ключами (2): components, post_action
- doc-sdk-plugins--gui-actions.c134 · doc · any-documented; прошивка — · Данные PluginUpdateOsdAction — класс PluginUpdateOsdActionData: components (тип записан как PluginOsdComponenetList) и необязательный post_action; действие доступно с прошивки 150528_r10
-
doc-sdk-plugins--gui-actions.c126 · doc · any-documented; прошивка — · PluginUpdateInfoBlockAction задаёт многострочное сообщение над верхней границей информационного блока (обычно включается кнопкой INFO); оно видно только вместе с блоком и держится до остановки воспроизведения или следующего PluginUpdateInfoBlock ↩
-
doc-sdk-plugins--gui-actions.c127 · doc · any-documented; прошивка — · PluginUpdateInfoBlockAction действует только в режиме TV- или VOD-воспроизведения плагина ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c246 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateInfoBlockActionData с ключами (5): text_above, text_color, text_halo, text_y_offset, post_action
- doc-sdk-plugins--gui-actions.c125 · doc · any-documented; прошивка — · Данные PluginUpdateInfoBlockAction — класс PluginUpdateInfoBlockActionData: text_above и необязательные text_color (по умолчанию 15), text_halo (false), text_y_offset (0), post_action; действие доступно с прошивки 150526_r10
-
doc-sdk-plugins--gui-actions.c131 · doc · any-documented; прошивка — · PluginUpdateEpgAction обновляет EPG, закэшированный в памяти плеера; три сценария: clear=TRUE без остальных полей — очистить весь кэш; clear=TRUE с channel_id (и, по желанию, programs на день day_start_tm_sec) — очистить кэш канала и положить новый список; clear=FALSE с channel_id, day_start_tm_sec, programs — просто обновить программу канала на день ↩
-
doc-sdk-plugins--gui-actions.c132 · doc · any-documented; прошивка — · PluginUpdateEpgAction действует только в режиме TV-воспроизведения плагина ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c244 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateEpgActionData с ключами (6): channel_id, clear, day_start_tm_sec, programs, ext_epg_enabled, post_action
- doc-sdk-plugins--gui-actions.c130 · doc · any-documented; прошивка — · Данные PluginUpdateEpgAction — класс PluginUpdateEpgActionData: channel_id, clear (Boolean), day_start_tm_sec, programs (PluginTvEpgProgramList), post_action (необязательно); действие доступно с прошивки 150528_r10
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c241 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvSelectChannelActionData с ключами (3): group_id, channel_id, is_favorite
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c251 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateTvInfoActionData с ключами (2): channel_changes, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
plg-dc-dunemdb-supplier-online-movies.c113 · code · unknown; прошивка — · do_play до выбора источника выполняет: при dirty истории — update_wh(force_reload) и возврат; при !tv_info_updated и определённом UPDATE_TV_INFO_ACTION_ID — update_tv_info; при сериале, user_choice=resume и se_chosen_manually — заменяет resume на auto_choose и удаляет supplier_info; при сериале, auto_choose, passed_e >= 0 и !eps_wh_updated — update_eps_wh. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c281 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UpdateTvInfoActionData с ключами (1): post_action
-
plg-dc-dunemdb-supplier-online-movies.c105 · code · unknown; прошивка — · AddTorrentDialog::apply_series читает info_by_name из результата detect_series, проставляет s/e найденным файлам; в обычном режиме (не switch_mode) для одиночного файла (count(series)==1, season<0, chosen_op вне play/download) сразу запускает vod_play; при chosen_op=play выполняет enter-действие torrent_files с выбранным файлом, при chosen_op=download запускает download_torrent, иначе открывает папку torrent_files с выбранным элементом. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c144 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс DetectSeriesActionData с ключами (4): base_path, rel_paths, result_path, post_action
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c146 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс DvbCommandActionData с ключами (3): name, params, callback_action
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c278 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UpdateDvbChannelsActionData с ключами (1): post_action
-
fw-tv188b-261021-0117-r25.c262 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 params (handler_id, control_id) действия plugin_handle_user_input из key_enter точки входа в манифесте приходят полями handler_id и control_id в input_data операции handle_user_input. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c206 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginHandleUserInputActionData с ключами (3): operation_timeout, show_dialog_delay, dialog_title
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c034 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::handle_user_input строит действие plugin_handle_user_input; схема заполнения использует PluginHandleUserInputActionData::{operation_timeout, show_dialog_delay}. params на верхнем уровне; data=null без timeout/delay, иначе заданные поля приводятся к int.
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c044 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::composite строит действие composite; схема заполнения использует CompositeActionData::{actions}. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c058 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 composite из двух plugin_handle_user_input выполнил a_composite-1 затем a_composite-2; оба post записаны с одинаковым временем 1793666163.336 и без action_status. ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c140 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CompositeActionData с ключами (1): actions
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c044 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::composite строит действие composite; схема заполнения использует CompositeActionData::{actions}.
-
doc-sdk-plugins--gui-actions.c067 · doc · any-documented; прошивка — · StatusAction (данные StatusActionData с полем int status) просто возвращает заданный статус ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c272 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс StatusActionData с ключами (1): status
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c015 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::status строит действие status; схема заполнения использует StatusActionData::{status}.
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c270 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SleepActionData с ключами (2): delay_ms, post_action
-
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c050 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 cond с pattern is_file(/tmp/kb_probe11/load.txt) выполнил post с tag=a_cond_yes и строковым action_status="1".
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c051 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 cond с pattern is_file(/tmp/kb_probe11/no_such) выполнил post с tag=a_cond_no и строковым action_status="0".
-
- fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет)
- fw-tv188b-261021-0117-r25--php-framework.c007 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля CondActionData: pattern — (char *); post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25: CondActionData {pattern, post_action}, LoadAndScaleImageActionData {icon_url, local_path, scale_if_needed, icon_width, icon_height, post_action}, UpdateSpecialFavoriteFolderActionData {name, delete, skip_interactions, post_action}, ApplyHashDirtiesActionData {post_action}
-
doc-sdk-plugins--gui-actions.c114 · doc · any-documented; прошивка — · RunBuiltinAction (данные RunBuiltinActionData: builtin_action_id, params, post_action) введено для внутренних целей и запускает встроенную функцию по builtin_action_id с параметрами params; доступно с прошивки 130315_b6 ↩
-
doc-sdk-plugins--gui-actions.c115 · doc · any-documented; прошивка — · Список публичных встроенных действий для RunBuiltinAction зависит от прошивки и (по документу) пуст ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--manifest.c018 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Встроенные shell_ext и kartina_tv_launcher задают у entry_point элемент is_shown_action (действие run_builtin с builtin_action_id), а элемента show_action нет ни в одном встроенном манифесте ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c261 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RunBuiltinActionData с ключами (4): builtin_action_id, params, post_action, error_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c042 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::run_builtin строит действие run_builtin; схема заполнения использует RunBuiltinActionData::{builtin_action_id, params, post_action, error_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c060 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В d-default запроса 12 ENTER на первом пункте открытой контрольной папки KB12 reg привёл к ответу run_default с event=key_info и post_action с tag=a_default; шаг a_default записал begin и end. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c061 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В d-default запроса 12 оболочка получила от handle_user_input действие kb_probe12->run_default и сразу записала «action D: not recognized kb_probe12->run_default()». ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c062 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · После run_default из открытой папки в d-default запроса 12 в сохранённых handle_user_input(post) не видно tag=a_default ни сразу, ни после BACK; показаны только два reg_enter, и PHP-сервер 6964 ещё жив. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c262 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RunDefaultActionData с ключами (2): event, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c016 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::run_default строит действие run_default; схема заполнения использует RunDefaultActionData::{event, post_action}.
-
fw-tv188b-261021-0117-r25.c340 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 строковый id plugin_system в boot-действии выполнен: shell.log пишет action D: exec_all plugin_system и Running system(sh <плагин>/bin/ga.sh boot). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c233 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginSystemActionData с ключами (2): run_string, post_action
- fw-tv188b-261021-0117-r25--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginSystemActionData: handle_response — bool.
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c035 · code · android-dune-fw; прошивка 260827_0003_r24 · В strings libduneshell.so есть диагностики чтения полей PluginSystemActionData: run_string (string); post_action (object).
-
doc-sdk-plugins--gui-actions.c074 · doc · any-documented; прошивка — · PluginRunNativeCode не имеет данных; загружает библиотеку native_code.so из каталога установки плагина и пытается вызвать из неё некоторую функцию ↩
-
fw-tv188b-261021-0117-r25.c337 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 строковый id plugin_run_native_code в ответе handle_user_input выполнен: shell.log пишет result action plugin_run_native_code, вызывает plugin_run_native_code(/flashdata/plugins/kb_probe5, kbp5_native) и передаёт native_code.so в [native_plugins_handler] open plugin. ↩↩
-
- fw-tv188b-261021-0117-r25.c284 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 на действие plugin_run_native_code оболочка вызывает plugin_run_native_code с каталогом плагина /flashdata/plugins/<плагин> и media_url точки входа, из которой запущено действие (plugin_run_native_code(/flashdata/plugins/kb_probe5, kbp5_native)).
- fw-tv188b-261021-0117-r25.c285 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 по действию plugin_run_native_code оболочка открывает библиотеку по пути /flashdata/plugins/<плагин>/native_code.so (в логе без $FS_PREFIX); если файла нет, в shell.log — «cannot open …: dlopen failed: library "…" not found».
-
fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play' ↩
-
- fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет)
- fw-tv188b-261021-0117-r25--php-framework.c002 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsCtlActionData: cmd — (FsCmdDef *); output_path — (char *); post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит файловые команды для действия fs_ctl: перечисление FsCmdKind (resolve_url, stat, scandir, get_file) и классы FsCtlActionData {cmd, output_path, post_action}, FsCmdDef {kind, specific_def}, FsResolveUrlDef {url, try_mount_if_needed}, FsStatDef {path}, FsScandirDef {path, with_stat, max_items_count}, FsGetFileDef {path, target_path, skip, max_size, chunk_size}
-
- fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет)
- fw-tv188b-261021-0117-r25--php-framework.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля LoadAndScaleImageActionData: icon_url — (char *); local_path — (char *); scale_if_needed — bool; icon_width — int; icon_height — int; post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25: CondActionData {pattern, post_action}, LoadAndScaleImageActionData {icon_url, local_path, scale_if_needed, icon_width, icon_height, post_action}, UpdateSpecialFavoriteFolderActionData {name, delete, skip_interactions, post_action}, ApplyHashDirtiesActionData {post_action}
- fw-tv188b-261021-0117-r25--php-framework.c025 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::load_and_scale_image(icon_url, local_path, scale_if_needed=false, icon_width=0, icon_height=0, post_action=null) возвращает GuiAction load_and_scale_image; scale_if_needed=1 и размеры добавляются только при истинном scale_if_needed, post_action — только если непуст.
-
doc-sdk-plugins--gui-actions.c117 · doc · any-documented; прошивка — · WgetAction (данные WgetActionData: url, post_data, result_key_prefix, post_action) выполняет HTTP-запрос на url с post_data и передаёт статус и данные результата в post_action; доступно с прошивки 130924_b9 ↩
-
doc-sdk-plugins--gui-actions.c118 · doc · any-documented; прошивка — · WgetAction настоятельно не рекомендуется использовать из PHP-плагинов (введено для внутренних нужд); для HTTP-запросов плагины должны использовать нативные методы curl ↩
-
fw-tv188b-261021-0117-r25--shell-ext--movies.c022 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На stage 2 оболочка запускает асинхронную проверку ActionFactory::wget по префиксу API с таймаутом 40 с, id se_ping_
и result_key_prefix 'ping_'; на stage 3 принимает только ответ с ping_id, равным последнему id, и при ping_status == succeeded продолжает запуск, иначе показывает «нет подключения к интернету». ↩ -
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c288 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс WgetActionData с ключами (8): id, url, post_data, curl_opts, target_path, target_cmd, result_key_prefix, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c043 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::wget строит действие wget; схема заполнения использует WgetActionData::{id, url, post_data, curl_opts, target_path, result_key_prefix, post_action}.
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c280 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UpdateImagesActionData с ключами (5): url_prefix, storage_dir_name, names, title, post_action
-
doc-sdk-plugins--gui-actions.c120 · doc · any-documented; прошивка — · ChangeSettingsAction меняет внутренние настройки Dune парами setting_name → setting_value из settings; перечень имён и значений настроек в документ не входит ↩
-
doc-sdk-plugins--gui-actions.c124 · doc · any-documented; прошивка — · В режиме TV/VOD-воспроизведения плагина ChangeSettingsAction не действует ↩
-
fw-tv188b-261021-0117-r25.c072 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ChangeSettingsAction с restart_gui=true, reboot=false и пустыми settings перезапускает приложение Dune, а не приставку. Оболочка пишет «APK: trigger restart», pid com.dunehd.app меняется 17983 → 19586, а /proc/uptime растёт непрерывно (129033 → 129116 с). ↩
-
fw-tv188b-261021-0117-r25.c338 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 строковый id change_settings в ответе handle_user_input выполнен: shell.log пишет result action change_settings и action D: (general) run kb_probe5->change_settings(). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c133 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeSettingsActionData с ключами (4): settings, reboot, restart_gui, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c045 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_settings строит действие change_settings; схема заполнения использует ChangeSettingsActionData::{settings, reboot, restart_gui, post_action}.
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c046 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::restart строит действие restart; схема заполнения использует RestartActionData::{reboot}. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c076 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · restart: фабрика shell_ext и bt_setup передаёт только data reboot, android_apps — reboot и factory_reset; android_apps выдаёт restart(true) после записи AUTOSTART_ONCE_FILE, а пункт reset_settings — close_dialog_and_run(restart(false, true)). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c260 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RestartActionData с ключами (2): reboot, factory_reset
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c046 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::restart строит действие restart; схема заполнения использует RestartActionData::{reboot}.
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c264 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SetTimeZoneActionData с ключами (5): offset_sec, has_dst, olson_id, preferred_olson_ids, post_action
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c141 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ConfirmLocationActionData с ключами (1): post_action
-
doc-sdk-plugins--gui-actions.c116 · doc · any-documented; прошивка — · WaitForIpAddressAction (данные WaitForIpAddressActionData: timeout_sec, post_action): если IP-адрес по DHCP ещё не получен, показывает стандартный диалог «Wait For IP Address», пока адрес не получен или не прошло timeout_sec секунд; доступно с прошивки 130914_b8 ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c286 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс WaitForIpAddressActionData с ключами (2): timeout_sec, post_action
- doc-sdk-plugins--gui-actions.c116 · doc · any-documented; прошивка — · WaitForIpAddressAction (данные WaitForIpAddressActionData: timeout_sec, post_action): если IP-адрес по DHCP ещё не получен, показывает стандартный диалог «Wait For IP Address», пока адрес не получен или не прошло timeout_sec секунд; доступно с прошивки 130914_b8
-
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c210 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::check_system_storage принимает title, но возвращаемый массив data содержит только required_space, recommended_space, messages и post_action.
- fw-tv188b-261021-0117-r25--php-framework--native-actions.c077 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика check_system_storage shell_ext принимает $title, но в data кладёт только required_space, recommended_space, messages и post_action — title не передаётся; вызывающие (setup_data_storage, setup_folder, setup_all_folders) выдают check_system_storage(0, 0, null, array(), …) и в продолжении ветвятся по $user_input->check_succeeded.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c077 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика check_system_storage shell_ext принимает $title, но в data кладёт только required_space, recommended_space, messages и post_action — title не передаётся; вызывающие (setup_data_storage, setup_folder, setup_all_folders) выдают check_system_storage(0, 0, null, array(), …) и в продолжении ветвятся по $user_input->check_succeeded. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c135 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CheckSystemStorageActionData с ключами (5): required_space, recommended_space, title, messages, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c049 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::check_system_storage строит действие check_system_storage; схема заполнения использует CheckSystemStorageActionData::{required_space, recommended_space, messages, post_action}. Параметр title принят, но в data не записан.
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c191 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс InitPersistfsActionData с ключами (1): post_action
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c079 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · bt_command (data name, params, callback_action) bt_setup выдаёт с именами update_paired_devices_list, add_device, open_details, unpair_device, upgrade_device, setup_tv; в params — ключи bt_command_address, bt_command_fw_path, bt_command_fw_version, bt_command_force_reconnect. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c125 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс BtCommandActionData с ключами (3): name, params, callback_action
-
fw-tv188b-261021-0117-r25.c136 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 строку «am start …» действия launch_ext_app приложение разбирает само, без запуска am или sh: apk_helper делит её на список аргументов (одинарные кавычки снимаются: «-p 'com.android.tv.settings' -a … -c …» → args(6) «-p, com.android.tv.settings, -a, …»), и activity стартует AndroidJavaUtils в процессе приложения com.dunehd.app. ↩
-
fw-tv188b-261021-0117-r25.c137 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 при «activity launch status: -1» действие launch_ext_app из ответа start_playback_app выполнило свой error_action: сразу за этим в shell.log «running gui show_error(0, Не удалось запустить воспроизведение)», на экране это сообщение, приложение не открылось. ↩↩
-
- fw-tv188b-260827-0003-r24--php-framework.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: LAUNCH_EXT_APP_ACTION_ID='launch_ext_app', LAUNCH_MEDIA_URL_ACTION_ID='launch_media_url', OPEN_FOLDER_ACTION_ID='open_folder', PLAYLIST_PLAY_ACTION_ID='playlist_play', PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID='plugin_clear_archive_cache', PLUGIN_EXIT_FOLDERS_ACTION_ID='plugin_exit_folders', PLUGIN_HANDLE_USER_INPUT_ACTION_ID='plugin_handle_user_input', PLUGIN_INVALIDATE_FOLDERS_ACTION_ID='plugin_invalidate_folders', PLUGIN_OPEN_FOLDER_ACTION_ID='plugin_open_folder', PLUGIN_REFRESH_ENTRY_POINTS_ACTION_ID='plugin_refresh_entry_points', PLUGIN_REPLACE_PATH_ACTION_ID='plugin_replace_path', PLUGIN_RUN_NATIVE_CODE_ACTION_ID='plugin_run_native_code', PLUGIN_SHOW_ERROR_ACTION_ID='plugin_show_error', PLUGIN_SYSTEM_ACTION_ID='plugin_system', PLUGIN_TV_PLAY_ACTION_ID='plugin_tv_play'
- fw-tv188b-260827-0003-r24--php-framework.c193 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс LaunchExtAppActionData с ключами (8): cmd, ensure_playback_stopped, delay, package, version, msg_toast, params, error_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c051 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::launch_ext_app строит действие launch_ext_app; схема заполнения использует LaunchExtAppActionData::{cmd, ensure_playback_stopped, delay, package, msg_toast, error_action}.
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c285 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс WaitExtAppStartActionData с ключами (3): delay, package, error_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c050 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::wait_ext_app_start строит действие wait_ext_app_start; схема заполнения использует WaitExtAppStartActionData::{delay, package, error_action}.
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c271 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс StartServiceActionData с ключами (5): class_name, package_name, params, delay_ms, post_action
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c055 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::install_from_market строит действие download_and_install_apk; схема заполнения использует DownloadAndInstallApkActionData::{caption, package, from_market, post_action}. from_market=true; тот же handler, что download_and_install_apk. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c145 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс DownloadAndInstallApkActionData с ключами (10): caption, package, src, from_market, urls, indirect, intro_dialog_urls, username, password, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c054 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::download_and_install_apk строит действие download_and_install_apk; схема заполнения использует DownloadAndInstallApkActionData::{caption, package, urls, indirect, intro_dialog_urls, post_action}.
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c055 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::install_from_market строит действие download_and_install_apk; схема заполнения использует DownloadAndInstallApkActionData::{caption, package, from_market, post_action}. from_market=true; тот же handler, что download_and_install_apk.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c080 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика uninstall_apk android_apps строит uninstall_apk с data package, src (по умолчанию пустая строка), post_action; AppsScreen выдаёт её для установленного не системного приложения при HD::is_limited_apk() или непустом src, продолжение — тот же user_input с uninstall_performed=1, где для приложения с src читается action_status. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c277 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UninstallApkActionData с ключами (3): package, src, post_action
-
fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c029 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::add_to_favorites задаёт skip_interactions=false по умолчанию и добавляет data.skip_interactions=true только при истинном аргументе. ↩
-
fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c030 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::add_to_favorites берёт icon_width и icon_height из params с умолчанием 0 и добавляет оба поля в data только когда оба больше 0. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c123 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс AddToFavoritesActionData с ключами (8): media_url, caption, icon_url, icon_width, icon_height, badge_url, skip_interactions, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c056 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::add_to_favorites строит действие add_to_favorites; схема заполнения использует AddToFavoritesActionData::{media_url, caption, icon_url, skip_interactions, badge_url, post_action}. skip_interactions без default после аргументов с default; badge_url из params и post_action только при истинности.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c081 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика remove_from_favorites shell_ext строит remove_from_favorites с data name и post_action; MovieHelper::remove_favorite_movie передаёт в name корневое имя из Favorites::remove_movie($id), BaseEntityScreen — id сущности с продолжением post_remove_from_favorites. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: PLUGIN_TV_SELECT_CHANNEL_ACTION_ID='plugin_tv_select_channel', PLUGIN_UPDATE_ARCHIVE_CACHE_ACTION_ID='plugin_update_archive_cache', PLUGIN_UPDATE_EPF_MAPPING_ACTION_ID='plugin_update_epf_mapping', PLUGIN_UPDATE_EPG_ACTION_ID='plugin_update_epg', PLUGIN_UPDATE_FOLDER_ACTION_ID='plugin_update_folder', PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID='plugin_update_info_block', PLUGIN_UPDATE_OSD_ACTION_ID='plugin_update_osd', PLUGIN_UPDATE_ROWS_INFO_ACTION_ID='plugin_update_rows_info', PLUGIN_UPDATE_ROWS_MENU_ACTION_ID='plugin_update_rows_menu', PLUGIN_UPDATE_STICKER_ACTION_ID='plugin_update_sticker', PLUGIN_UPDATE_TV_INFO_ACTION_ID='plugin_update_tv_info', PLUGIN_VOD_PLAY_ACTION_ID='plugin_vod_play', REMOVE_FROM_FAVORITES_ACTION_ID='remove_from_favorites', RENAME_MENU_ITEM_ACTION_ID='rename_menu_item', RENAME_PATH_ACTION_ID='rename_path'
- fw-tv188b-260827-0003-r24--php-framework.c256 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс RemoveFromFavoritesActionData с ключами (2): name, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c057 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::remove_from_favorites строит действие remove_from_favorites; схема заполнения использует RemoveFromFavoritesActionData::{name, post_action}.
-
- fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет)
- fw-tv188b-261021-0117-r25--php-framework.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля UpdateSpecialFavoriteFolderActionData: name — (char *); delete — bool; skip_interactions — bool; post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25: CondActionData {pattern, post_action}, LoadAndScaleImageActionData {icon_url, local_path, scale_if_needed, icon_width, icon_height, post_action}, UpdateSpecialFavoriteFolderActionData {name, delete, skip_interactions, post_action}, ApplyHashDirtiesActionData {post_action}
- fw-tv188b-261021-0117-r25--php-framework.c028 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::update_special_favorite_folder(name, delete, post_action=null) возвращает GuiAction update_special_favorite_folder с этими тремя полями; объявленный skip_interactions фабрика не передаёт.
-
fw-tv188b-261021-0117-r25--shell-ext--android-apps.c068 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · apply_remote_config встроенного плагина при активном remote config и restrict_apps_by_remote_config генерирует список и возвращает edit_main_screen с CHANGE_OP_DELETE_ANDROID_APPS_EXCEPT и android_app:
из apps. ↩ -
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c149 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс EditMainScreenActionData с ключами (5): change_op, ids, caption, icon_url, post_action
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c048 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_watched_marks строит действие update_watched_marks; схема заполнения использует UpdateWatchedMarksActionData::{watched, item_ids, movie_ids, post_action}. При пустых item_ids и movie_ids возвращает post_action; списки и post_action — по истинности. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c082 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика update_watched_marks shell_ext при пустых item_ids и movie_ids возвращает post_action без действия; иначе data — watched и только непустые item_ids, movie_ids, post_action; MovieHelper выдаёт update_watched_marks(null, array($movie_id), true, …) — отметка фильма просмотренным. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c282 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс UpdateWatchedMarksActionData с ключами (4): item_ids, movie_ids, watched, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c048 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_watched_marks строит действие update_watched_marks; схема заполнения использует UpdateWatchedMarksActionData::{watched, item_ids, movie_ids, post_action}. При пустых item_ids и movie_ids возвращает post_action; списки и post_action — по истинности.
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler--recent-views.c024 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Пункт «Очистить всё» в popup «Недавнего» r25 добавляется всегда и вызывает ActionFactory::clear_watch_history(null, full_update). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c137 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ClearWatchHistoryActionData с ключами (2): item_ids, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c047 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::clear_watch_history строит действие clear_watch_history; схема заполнения использует ClearWatchHistoryActionData::{item_ids, post_action}.
-
- fw-tv188b-261021-0117-r25.c008 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 добавляет идентификаторы GUI-действий APPLY_HASH_DIRTIES_ACTION_ID='apply_hash_dirties', COND_ACTION_ID='cond', FS_CTL_ACTION_ID='fs_ctl', LOAD_AND_SCALE_IMAGE_ACTION_ID='load_and_scale_image', UPDATE_SPECIAL_FAVORITE_FOLDER_ACTION_ID='update_special_favorite_folder' (в r24 их нет)
- fw-tv188b-261021-0117-r25--php-framework.c010 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля ApplyHashDirtiesActionData: post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25: CondActionData {pattern, post_action}, LoadAndScaleImageActionData {icon_url, local_path, scale_if_needed, icon_width, icon_height, post_action}, UpdateSpecialFavoriteFolderActionData {name, delete, skip_interactions, post_action}, ApplyHashDirtiesActionData {post_action}
- fw-tv188b-261021-0117-r25--php-framework.c032 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::apply_hash_dirties(post_action=null) возвращает GuiAction apply_hash_dirties, в data которого единственное поле post_action.
-
fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c036 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::sync_my_collection принимает только post_action=null и строит SYNC_MY_COLLECTION_ACTION_ID с data.post_action; аргумента и поля mcf_id в этой обёртке нет. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c276 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SyncMyCollectionActionData с ключами (2): mcf_id, post_action
- fw-tv188b-261021-0117-r25.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 класс SyncMyCollectionActionData содержит только post_action: ключ mcf_id убран из dune_api.php, а ActionFactory::sync_my_collection в shell_ext/lib принимает только $post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c070 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::sync_my_collection строит действие sync_my_collection; схема заполнения использует SyncMyCollectionActionData::{mcf_id, post_action}. mcf_id по умолчанию -1, приводится к string.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c083 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика edit_movie_data shell_ext строит edit_movie_data с data movie_id и post_action; GuiCommon по control_id edit_movie_data (пункт меню navigator_popup_edit_movie_data) выдаёт её с продолжением update_on_movie_change, которое реагирует, только если movie_data_changed или change_movie_data_status > 0. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c150 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс EditMovieDataActionData с ключами (2): movie_id, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c062 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::edit_movie_data строит действие edit_movie_data; схема заполнения использует EditMovieDataActionData::{movie_id, post_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c085 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика change_movie_data shell_ext строит change_movie_data с data movie_ids_to_delete и post_action; CustomMoviesScreen выдаёт её после подтверждения очистки (весь список или clear_element — один фильм) с продолжением update_on_movie_change. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c131 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeMovieDataActionData с ключами (2): movie_ids_to_delete, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c063 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_movie_data строит действие change_movie_data; схема заполнения использует ChangeMovieDataActionData::{movie_ids_to_delete, post_action}.
-
fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c034 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::edit_list_config принимает обязательный позиционный options между groups и sel_id и добавляет data.options только по истинности. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c086 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика edit_list_config shell_ext всегда кладёт в data config_id, title, all_items, post_action, а checked_ids, groups, options, sel_id — только если заданы; MovieFilterDialog выдаёт её для настройки списка (годы, жанры) с заголовком configure_list_title и продолжением apply_edit_list — по смыслу диалог выбора отмеченных пунктов списка (inference). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c148 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс EditListConfigActionData с ключами (11): config_id, title, all_items, checked_ids, groups, def_id, options, close_item_params, dialog_params, sel_id, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c061 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::edit_list_config строит действие edit_list_config; схема заполнения использует EditListConfigActionData::{config_id, title, all_items, post_action, checked_ids, groups, sel_id}. checked_ids/groups при истинности; sel_id при isset.
-
- plg-dc-globaltv--list-config.c005 · code · unknown; прошивка — · ActionFactory::change_list_config всегда помещает config_id и post_action в данные ChangeListConfigActionData.
- plg-dc-globaltv--list-config.c006 · code · unknown; прошивка — · В change_list_config поля set_default, def_id, ids_to_check, ids_to_uncheck и ids_to_def записываются только при истинном соответствующем аргументе.
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c130 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeListConfigActionData с ключами (8): config_id, set_default, def_id, ids_to_check, ids_to_uncheck, ids_to_def, order, post_action
-
fw-tv188b-260827-0003-r24--shell-ext--entry-handler.c173 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В get_add_to_collection_action непустой nnf_url создаёт create_network_folder с продолжением add_to_collection, которое сохраняет только path. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c142 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CreateNetworkFolderActionData с ключами (3): name, url, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c053 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::create_network_folder строит действие create_network_folder; схема заполнения использует CreateNetworkFolderActionData::{name, url, post_action}.
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler--movie-screen.c048 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · play_local_single_file для сетевой папки без wol_checked возвращает wake_network_folder с повтором входного действия и wol_checked=1; после проверки с action_status=0 прекращает запуск возвратом null. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: SWITCH_OSD_MODE_ACTION_ID='switch_osd_mode', SYNC_MY_COLLECTION_ACTION_ID='sync_my_collection', UNINSTALL_APK_ACTION_ID='uninstall_apk', UPDATE_DVB_CHANNELS_ACTION_ID='update_dvb_channels', UPDATE_FOLDER_MARKS_ACTION_ID='update_folder_marks', UPDATE_IMAGES_ACTION_ID='update_images', UPDATE_TV_INFO_ACTION_ID='update_tv_info', UPDATE_WATCHED_MARKS_ACTION_ID='update_watched_marks', WAIT_EXT_APP_START_ACTION_ID='wait_ext_app_start', WAIT_FOR_IP_ADDRESS_ACTION_ID='wait_for_ip_address', WAKE_NETWORK_FOLDER_ACTION_ID='wake_network_folder', WGET_ACTION_ID='wget'
- fw-tv188b-260827-0003-r24--php-framework.c287 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс WakeNetworkFolderActionData с ключами (2): folder_id, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c052 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::wake_network_folder строит действие wake_network_folder; схема заполнения использует WakeNetworkFolderActionData::{folder_id, post_action}.
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c069 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::custom_ignore_update строит действие custom_ignore_update; схема заполнения использует CustomIgnoreUpdateActionData::{add, quids, post_action}; строковый ключ is_dir. is_dir записан строковым ключом; add=true, is_dir=false. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c087 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика custom_ignore_update shell_ext строит custom_ignore_update с data add (по умолчанию true), is_dir, quids и post_action; все три вызова передают add=false (очистка записи исключённых файлов, папка медиатеки) со списком quid вида «источник/путь». ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c143 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CustomIgnoreUpdateActionData с ключами (4): add, is_dir, quids, post_action
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c069 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::custom_ignore_update строит действие custom_ignore_update; схема заполнения использует CustomIgnoreUpdateActionData::{add, quids, post_action}; строковый ключ is_dir. is_dir записан строковым ключом; add=true, is_dir=false.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c088 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика invalidate_files_associations shell_ext строит действие с data hashes, paths, folder_url, base_dir_path, base_cache_dpath, post_action (ключ all из InvalidateFilesAssociationsActionData не передаёт); MainEntryHandler после удаления файлов выдаёт её с paths удалённых файлов и folder_url папки (при folder_id != -1), затем reread_all_epfs(true). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c115 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: CLOSE_DIALOG_AND_RUN_ACTION_ID='close_dialog_and_run', COMPOSITE_ACTION_ID='composite', CONFIRM_LOCATION_ACTION_ID='confirm_location', CREATE_NETWORK_FOLDER_ACTION_ID='create_network_folder', CUSTOM_IGNORE_UPDATE_ACTION_ID='custom_ignore_update', DETECT_SERIES_ACTION_ID='detect_series', DOWNLOAD_AND_INSTALL_APK_ACTION_ID='download_and_install_apk', DVB_COMMAND_ACTION_ID='dvb_command', DVD_PLAY_ACTION_ID='dvd_play', EDIT_LIST_CONFIG_ACTION_ID='edit_list_config', EDIT_MAIN_SCREEN_ACTION_ID='edit_main_screen', EDIT_MOVIE_DATA_ACTION_ID='edit_movie_data', FILE_PLAY_ACTION_ID='file_play', INIT_PERSISTFS_ACTION_ID='init_persistfs', INVALIDATE_FILES_ASSOCIATIONS_ACTION_ID='invalidate_files_associations'
- fw-tv188b-260827-0003-r24--php-framework.c192 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс InvalidateFilesAssociationsActionData с ключами (7): all, hashes, paths, folder_url, base_dir_path, base_cache_dpath, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c068 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::invalidate_files_associations строит действие invalidate_files_associations; схема заполнения использует InvalidateFilesAssociationsActionData::{hashes, paths, folder_url, base_dir_path, base_cache_dpath, post_action}.
-
fw-tv188b-260827-0003-r24--shell-ext--entry-handler.c064 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · run_tv_app возвращает check_restricted для menu_item_id plugin:<имя> или android_app:<пакет>, пока pcontrol_checked не установлен. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c134 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CheckRestrictedActionData с ключами (2): id, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c058 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::check_restricted строит действие check_restricted; схема заполнения использует CheckRestrictedActionData::{id, post_action}.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c089 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Фабрика set_restricted строит set_restricted с data id, restricted, post_action; AndroidApps переключает защиту пункта меню приложения: set_restricted($id, !$now_restricted, …), продолжение finalize_toggle_password перечитывает список ограниченных (reload_restricted) — по смыслу родительский контроль пункта меню (inference). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: RESET_CONTROLS_ACTION_ID='reset_controls', RESTART_ACTION_ID='restart', RUN_BUILTIN_ACTION_ID='run_builtin', RUN_DEFAULT_ACTION_ID='run_default', SET_RESTRICTED_ACTION_ID='set_restricted', SET_TIME_ZONE_ACTION_ID='set_time_zone', SHOW_BLACK_SCREEN_ACTION_ID='show_black_screen', SHOW_DIALOG_ACTION_ID='show_dialog', SHOW_GCOMPS_DIALOG_ACTION_ID='show_gcomps', SHOW_MAIN_SCREEN_ACTION_ID='show_main_screen', SHOW_POPUP_MENU_ACTION_ID='show_popup_menu', SLEEP_ACTION_ID='sleep', START_SERVICE_ACTION_ID='start_service', STATUS_ACTION_ID='status', STOP_PLAYBACK_ACTION_ID='stop_playback'
- fw-tv188b-260827-0003-r24--php-framework.c263 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс SetRestrictedActionData с ключами (3): id, restricted, post_action
-
plg-dc-globaltv.c111 · code · unknown; прошивка — · Смену родительского кода плагин запрашивает действием CHANGE_PARENTAL_CODE_ACTION_ID (ActionFactory::change_parental_code). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php (раздел «GUI-action ids») определяет идентификаторы действий GUI: ADD_MENU_ITEMS_ACTION_ID='add_menu_items', ADD_TO_FAVORITES_ACTION_ID='add_to_favorites', BLURAY_PLAY_ACTION_ID='bluray_play', BT_COMMAND_ACTION_ID='bt_command', CHANGE_BEHAVIOUR_ACTION_ID='change_behaviour', CHANGE_GCOMPS_ACTION_ID='change_gcomps', CHANGE_LIST_CONFIG_ACTION_ID='change_list_config', CHANGE_MOVIE_DATA_ACTION_ID='change_movie_data', CHANGE_PARENTAL_CODE_ACTION_ID='change_parental_code', CHANGE_SETTINGS_ACTION_ID='change_settings', CHECK_RESTRICTED_ACTION_ID='check_restricted', CHECK_SYSTEM_STORAGE_ACTION_ID='check_system_storage', CHOOSE_FILE_ACTION_ID='choose_file', CLEAR_WATCH_HISTORY_ACTION_ID='clear_watch_history', CLOSE_AND_RUN_ACTION_ID='close_and_run'
- fw-tv188b-260827-0003-r24--php-framework.c132 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeParentalCodeActionData с ключами (1): post_action
-
fw-tv188b-260827-0003-r24--php-framework.c202 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginFolderViewInputData с ключами (2): media_url, sel_state ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderRowsInputData: media_url — (char *); row_ids — (MY_StringArray *).
- fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows}
-
- fw-tv188b-261021-0117-r25--php-framework.c011 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderRows: rows — (PluginRowList *).
- fw-tv188b-261021-0117-r25.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит операцию плагина PLUGIN_OP_GET_FOLDER_ROWS='get_folder_rows' с выходным типом PLUGIN_OUT_DATA_PLUGIN_FOLDER_ROWS='plugin_folder_rows' и классы PluginFolderRowsInputData {media_url, row_ids} и PluginFolderRows {rows}
-
- fw-tv188b-260827-0003-r24--php-framework.c252 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginVodGetStreamInfoInputData с ключами (1): playback_url
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c013 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · При индексе data_type = 7 json_materialize_output_data_from_json создаёт PluginStreamInfo (8 байт), читает строку url и список markers; элементы StreamMarker (0x14 байт) разбирает FUN_002223f0. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c232 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginStreamInfo с ключами (2): url, markers
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
fw-tv188b-261021-0117-r25--media-player.c063 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 intro-маркер 3–20 с из PluginVodSeriesInfo::markers показывает на OSD кнопку «Пропустить заставку» на снимке через 6 с после запуска VOD. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c274 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс StreamMarker с ключами (4): type, from, to, duration
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c064 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::timer формирует или дополняет структуру с полями GuiTimerDef::{delay_ms, reset_on_keypress, clear_on_keypress}. delay_ms всегда; reset_on_keypress/clear_on_keypress записываются как true только при истинном аргументе. ↩
-
doc-sdk-plugins--gui-actions.c054 · doc · any-documented; прошивка — · Таймер ShowDialogAction срабатывает один раз; перезапустить его можно действием ChangeBehaviour ↩
-
fw-tv188b-260827-0003-r24--php-framework.c188 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiTimerDef с ключами (5): delay_ms, reset_on_keypress, clear_on_keypress, num_repeats, early_start ↩
-
fw-tv188b-260827-0003-r24--php-framework.c185 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiMenuItemDef с ключами (7): is_separator, id, caption, icon_url, marked, action, is_shown_action ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c060 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::add_gui_item формирует или дополняет структуру с полями GuiItem::{id, caption, icon_url, group_id}. icon_url по истинности; group_id при isset. ↩
-
fw-tv188b-261021-0117-r25--shell-ext--ui-lib.c033 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::add_gui_item принимает params=null последним аргументом и записывает GuiItem::params только при истинном params. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c183 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiItem с ключами (5): id, caption, icon_url, group_id, params ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c028 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::add_extra_choice формирует или дополняет структуру с полями GuiExtraChoice::{caption}. Добавляет элемент с caption в переданный по ссылке массив. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c182 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiExtraChoice с ключами (1): caption ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c040 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::add_path_element формирует или дополняет структуру с полями PluginPathElement::{media_url, caption, id}. Добавляет элемент в переданный по ссылке массив. ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c041 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::replace_path строит действие plugin_replace_path; схема заполнения использует PluginReplacePathActionData::{erase_count, elements, post_action}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c214 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginPathElement с ключами (3): media_url, id, caption ↩
-
fw-tv188b-260827-0003-r24--php-framework.c215 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRef с ключами (2): name, ep_media_url ↩
-
doc-sdk-plugins.c084 · doc · any-documented; прошивка — · Plugin archive (PluginArchiveDef: id, urls_with_keys, all_tgz_url, total_size) кэширует картинки папок в system/flash storage; ссылки на них — plugin_archive://
/ ↩ -
fw-tv188b-260827-0003-r24--plugin-loader--online-upgrade.c039 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Структура PluginArchiveDef в libduneshell.so десериализуется с полями id (строка), urls_with_keys (properties), all_tgz_url (строка) и total_size (long) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c197 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginArchiveDef с ключами (4): id, urls_with_keys, all_tgz_url, total_size ↩
-
fw-tv188b-260827-0003-r24--php-framework.c153 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс FileMovieInfo с ключами (8): movie_id, title, icon_url, rate_imdb, rate_content, series_type, s, e ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c151 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс FileChooserFilter с ключами (3): file_type_dir, file_extensions, check_writable
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
- fw-tv188b-260827-0003-r24--php-framework.c152 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс FileChooserUiParams с ключами (3): with_favorite_folders, details_width, dialog_title
- fw-tv188b-261021-0117-r25--php-framework.c013 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FileChooserUiParams: with_network_folders — bool; with_network_browser — bool; new_folder_default_name — (char *).
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
- fw-tv188b-261021-0117-r25--php-framework.c001 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsCmdDef: kind — FsCmdKind; specific_def — (void *).
- fw-tv188b-261021-0117-r25.c012 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dune_api.php r25 вводит файловые команды для действия fs_ctl: перечисление FsCmdKind (resolve_url, stat, scandir, get_file) и классы FsCtlActionData {cmd, output_path, post_action}, FsCmdDef {kind, specific_def}, FsResolveUrlDef {url, try_mount_if_needed}, FsStatDef {path}, FsScandirDef {path, with_stat, max_items_count}, FsGetFileDef {path, target_path, skip, max_size, chunk_size}
-
fw-tv188b-261021-0117-r25--php-framework.c004 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsResolveUrlDef: url — (char *); try_mount_if_needed — bool. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsStatDef: path — (char *). ↩
-
fw-tv188b-261021-0117-r25--php-framework.c005 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsScandirDef: path — (char *); with_stat — bool; max_items_count — int. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c003 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля FsGetFileDef: path — (char *); target_path — (char *); skip — int; max_size — int; chunk_size — int. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c016 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderView: type_mask — int. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c201 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginFolderView с ключами (6): view_kind, data, multiple_views_supported, archive, folder_type, params
- fw-tv188b-261021-0117-r25--php-framework.c016 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginFolderView: type_mask — int.
-
doc-sdk-plugins--operations.c021 · doc · any-documented; прошивка — · Класс PluginFolderViewParams (параметры control- и movie-папок) в документе имеет поля paint_path_box, paint_content_box_background (Boolean) и background_url (String) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c203 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginFolderViewParams с ключами (5): paint_path_box, paint_path_box_background, paint_content_box_background, background_url, popup_dialogs_enabled ↩
-
fw-tv188b-260827-0003-r24--php-framework.c219 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularFolderView с ключами (11): view_params, base_view_item_params, not_loaded_view_item_params, load_failed_view_item_params, actions, timer, async_icon_loading, async_icon_loading_pipelining, async_icon_loading_max_connects, async_icon_loading_interrupt_enabled, initial_range ↩
-
fw-tv188b-260827-0003-r24--php-framework.c218 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularFolderRange с ключами (5): total, more_items_available, from_ndx, count, items ↩
-
fw-tv188b-260827-0003-r24--php-framework.c217 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularFolderItem с ключами (6): media_url, caption, starred, locked, view_item_params, plugin_ref ↩
-
fw-tv188b-260827-0003-r24--php-framework.c284 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ViewParams с ключами (91): num_cols, num_rows, item_width, item_height, animation_enabled, scroll_animation_enabled, popup_dialogs_enabled, marks_enabled, orientation, cycle_mode_enabled, cycle_mode_gap, cycle_mode_gap_width, cycle_mode_gap_icon_path, background_path, background_x, background_y, background_width, background_height, background_order, scroll_path, scroll_x, scroll_y, scroll_height, mark_path, mark_dx, mark_dy, mark_scale_factor, optimize_full_screen_background, paint_path_box, paint_path_box_background, paint_widget, paint_widget_background, paint_content_box_background, paint_scrollbar, paint_icon_selection_box, paint_help_line, paint_playback_help_line, paint_playback_status, paint_playback_volume_indicators, paint_details, paint_details_box_background, help_line_text_color, icon_selection_box_dx, icon_selection_box_dy, icon_selection_box_width, icon_selection_box_height, paint_icon_badge_box, hidden_badge_box, icon_badge_box_dx, icon_badge_box_dy, icon_badge_box_width, icon_badge_box_height, icon_badge_box_sel_dx, icon_badge_box_sel_dy, icon_badge_box_sel_width, icon_badge_box_sel_height, content_box_x, content_box_y, content_box_width, content_box_height, content_box_padding_left, content_box_padding_top, content_box_padding_right, content_box_padding_bottom, extra_content_objects, details_box_width, paint_item_info_in_details, zoom_detailed_icon, detailed_icon_scale_factor, detailed_icon_valign, item_small_icon_name, folder_small_icon_name, item_detailed_info_font_size, item_detailed_info_rel_y, item_detailed_info_title_color, item_detailed_info_text_color, item_detailed_info_auto_line_break, item_detailed_info_use_main_icon, paint_sandwich, sandwich_base, sandwich_mask, sandwich_cover, sandwich_width, sandwich_height, sandwich_sel_width, sandwich_sel_height, sandwich_icon_scale_factor, sandwich_icon_keep_aspect_ratio, sandwich_icon_upscale_enabled, max_icon_width, max_icon_height ↩
-
fw-tv188b-260827-0003-r24--php-framework.c283 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ViewItemParams с ключами (54): predefined, item_paint_icon, item_paint_caption, item_ui_state_paint_caption, item_paint_unselected_caption, item_caption_font_size, item_paint_caption_within_icon, item_caption_within_icon_color, item_padding_top, item_padding_bottom, icon_path, icon_width, icon_height, icon_dx, icon_dy, icon_scale_factor, icon_margin_top, icon_margin_bottom, icon_margin_left, icon_margin_right, icon_sel_path, icon_sel_width, icon_sel_height, icon_sel_dx, icon_sel_dy, icon_sel_scale_factor, icon_sel_margin_top, icon_sel_margin_bottom, icon_sel_margin_left, icon_sel_margin_right, icon_valign, item_layout, icon_keep_aspect_ratio, icon_fit_scale_factor, item_caption_width, item_caption_wrap_enabled, item_caption_scroll_enabled, item_caption_dy, item_caption_sel_dy, item_caption_dx, item_caption_color, item_sticker, item_sticker_collage, item_detailed_info, item_detailed_icon_path, item_detailed_icon_width, item_detailed_icon_height, item_detailed_info_sticker, item_detailed_info_tags, item_detailed_info_extra, item_badge_icon_path, item_override_default_badge, item_sandwich_icon_scale_factor, item_extra_info ↩
-
fw-tv188b-260827-0003-r24--php-framework.c199 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginControlsFolderView с ключами (5): defs, actions, timer, initial_sel_ndx, params ↩
-
fw-tv188b-260827-0003-r24--php-framework.c210 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginMovieFolderView с ключами (10): movie, left_button_caption, left_button_action, has_right_button, right_button_caption, right_button_action, has_multiple_series, series_media_url, poster_valign, params ↩
-
fw-tv188b-260827-0003-r24--php-framework.c209 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginMovie с ключами (17): name, name_original, description, poster_url, length_min, year, directors_str, scenarios_str, actors_str, genres_str, rate_imdb, rate_kinopoisk, rate_mpaa, country, budget, details, rate_details ↩
-
fw-tv188b-260827-0003-r24--php-framework.c227 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRowsFolderView с ключами (4): pane, sel_state, actions, timer ↩
-
fw-tv188b-261021-0117-r25--php-framework.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginRowsPane: row_dup_map — (PluginRowMap *). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c230 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRowsPane с ключами (26): rows, headers, focus, bg, screen_r, screen_y2, min_row_index_for_y2, info_r, vod_r, header_enabled, single_list_navigation, initial_focus_header, initial_focus_header_id, initial_focus_item_id, initial_focus_row_id, horizontal_focus_freedom_factor, horizontal_focus_end_min_offset, vertical_focus_freedom_factor, vertical_focus_gravity, vertical_focus_end_min_offset, header_font_size, header_min_font_size, max_header_width, min_header_width, up_arrow_dy, regular_item_params_templates
- fw-tv188b-261021-0117-r25--php-framework.c015 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginRowsPane: row_dup_map — (PluginRowMap *).
-
fw-tv188b-261021-0117-r25--plugin-loader.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В strings libduneshell.so r25 для PluginRow::data есть диагностики string и object; диагностика string — новая относительно r24. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c226 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRow с ключами (12): type, data, id, ui_level, group_id, header_id, title, focusable, options, height, inactive_height, show_all_action ↩
-
fw-tv188b-260827-0003-r24--php-framework.c223 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularRow с ключами (14): hide_captions, hide_icons, left_padding, inactive_left_padding, right_padding, width, fade_enabled, fade_icon_mix_color, fade_icon_mix_alpha, lite_fade_icon_mix_alpha, fade_caption_color, item_params_template_id, item_params, items ↩
-
fw-tv188b-260827-0003-r24--php-framework.c220 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularItem с ключами (6): icon_url, sticker_urls, stickers, caption, id, params_template_id ↩
-
fw-tv188b-260827-0003-r24--php-framework.c221 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularItemParams с ключами (11): def, sel, inactive, loading_url, load_failed_url, hide_captions, caption_max_num_lines, caption_line_spacing, sticker_text_size, sticker_text_color, sel_margins ↩
-
fw-tv188b-260827-0003-r24--php-framework.c222 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularItemVariableParams с ключами (12): width, height, dx, icon_width, icon_height, icon_keep_aspect_ratio, icon_dy, caption_dy, caption_color, caption_font_size, sticker_width, sticker_height ↩
-
fw-tv188b-260827-0003-r24--php-framework.c224 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRegularSticker с ключами (4): r, icon_url, text, color ↩
-
fw-tv188b-260827-0003-r24--php-framework.c234 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTitleRow с ключами (10): caption, color, font_size, left, dy, active_dy, width, fade_enabled, fade_color, lite_fade_color ↩
-
fw-tv188b-260827-0003-r24--php-framework.c205 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginGCompsRow с ключами (4): defs, width, options, ui_state ↩
-
fw-tv188b-260827-0003-r24--php-framework.c228 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRowsHeader с ключами (3): id, title, first_in_cluster ↩
-
fw-tv188b-260827-0003-r24--php-framework.c229 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginRowsInfo с ключами (8): folder_key, item_id, info_defs, bg_url, nl_bg_url, mask_url, bg_poster_mode, playback_urls ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c138 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · RowsFactory::margins формирует или дополняет структуру с полями PluginMargins::{left, top, right, bottom}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c208 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginMargins с ключами (4): left, top, right, bottom ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c187 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · AbstractGCompsScreen::get_folder_view_v2 возвращает PluginFolderView вида PLUGIN_FOLDER_VIEW_GCOMPS с данными PluginGCompsFolderView (window_def, sel_state, actions, timer) и multiple_views_supported=false. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c204 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginGCompsFolderView с ключами (4): window_def, sel_state, actions, timer ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c110 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_window_def формирует или дополняет структуру с полями GCompWindowDef::{background_color, background_url, async_loading_background, comp_defs, ui_state, not_loaded_background_url, playback_bg_alpha, background_fit_def, small_state_text, opaque_background}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c176 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompWindowDef с ключами (12): background_color, background_url, background_fit_def, async_loading_background, not_loaded_background_url, playback_bg_alpha, small_state_text, opaque_background, comp_defs, focus, bg_def, ui_state ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c090 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_label_def строит GUI-элемент типа label; схема заполнения использует GComponentDef::{id, geom_def, margins_def, kind, specific_def}; GCompLabelDef::{text, max_num_lines, text_color, font_size}. max_num_lines=1, color=15, font_size=FONT_SIZE_NORMAL. ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c177 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GComponentDef с ключами (9): id, geom_def, margins_def, focusable_def, focused_variant_def, extra_variant_defs, options, kind, specific_def ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c120 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_change_def формирует или дополняет структуру с полями ChangeGCompDef::{id, geom_def, props, view_position, selected, children, transition}. transition=GCOMP_TRANSITION_DEFAULT; остальные необязательные параметры null. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c127 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeGCompDef с ключами (11): id, remove, geom_def, props, view_position, custom_props, selected, children, children_merge_mode, children_insert_after_id, transition ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c066 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_gcomp_window формирует или дополняет структуру с полями ChangeGCompWindowDef::{background_color, background_url}. background_color=null по умолчанию. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c128 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ChangeGCompWindowDef с ключами (2): background_color, background_url ↩
-
fw-tv188b-260827-0003-r24--php-framework.c160 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompGeometryDef с ключами (5): role, w, h, opts, align_def ↩
-
fw-tv188b-260827-0003-r24--php-framework.c155 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompAlignDef с ключами (10): x, y, use_base_width, use_base_height, halign, valign, base_halign, base_valign, base_to_prev, base_id ↩
-
plg-dc-globaltv--gcomps-controls.c023 · code · unknown; прошивка — · GCompMargins::all всегда записывает четыре переданных аргумента в left/top/right/bottom массива GCompMarginsDef. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c164 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompMarginsDef с ключами (4): left, top, right, bottom ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c126 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · RowsFactory::focus формирует или дополняет структуру с полями GCompFocusDef::{type, type2}. type=GCOMP_FOCUS_SYSTEM, type2=GCOMP_FOCUS_NONE. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c158 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompFocusDef с ключами (2): type, type2 ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c117 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::set_focusable формирует или дополняет структуру с полями GComponentDef::{focusable_def}; GCompFocusableDef::{sel_margins, background_url}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c159 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompFocusableDef с ключами (3): sel_margins, background_color, background_url ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c118 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::set_focus_var формирует или дополняет структуру с полями GComponentDef::{focused_variant_def}; GCompVariantDef::{ref_id, geom_def, props}. ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c119 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::add_extra_var формирует или дополняет структуру с полями GComponentDef::{extra_variant_defs}; GCompVariantDef::{ref_id, geom_def, props}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c174 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompVariantDef с ключами (4): ref_id, geom_def, props, transition_modifier ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c116 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_gcomp_ui_state_def формирует или дополняет структуру с полями GCompUiStateDef::{items, title, bg_url, poster_url, view_params}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c173 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompUiStateDef с ключами (5): title, items, bg_url, poster_url, view_params ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c100 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_view_position_def формирует или дополняет структуру с полями GCompViewPositionDef::{x, y, id}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c175 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompViewPositionDef с ключами (7): id, x, y, freedom_factor, gravity, end_min_offset, outside_id ↩
-
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c112 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_comp_item_def строит GUI-элемент типа regular; схема заполнения использует GCompItemDef::{type, id, caption, icon_url}.
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c113 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_label_item_def строит GUI-элемент типа label; схема заполнения использует GCompItemDef::{type, left_caption, caption}.
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c114 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_button_item_def строит GUI-элемент типа button; схема заполнения использует GCompItemDef::{type, id, left_caption, caption}.
-
fw-tv188b-260827-0003-r24--php-framework.c162 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompItemDef с ключами (5): type, id, left_caption, caption, icon_url ↩
-
fw-tv188b-260827-0003-r24--php-framework.c163 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompLabelDef с ключами (5): text, font_size, text_color, max_num_lines, draw_halo ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c091 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::label строит GUI-элемент типа ttf_label; схема заполнения использует GCompTtfLabelDef::{text, text_color, font_size, max_num_lines, line_spacing, base_font_size, min_font_size, halign}; GComponentDef::{id, geom_def, kind, specific_def, margins_def}. color=#FFFFFFE0, font_size=36; max_num_lines только если задан и !=1; line_spacing при isset; base_font_size/min_font_size/halign и margins по истинности. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c172 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompTtfLabelDef с ключами (11): text, font_size, font_face, text_color, max_num_lines, line_spacing, halign, valign, base_font_size, min_font_size, fit ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c094 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_rect_def строит GUI-элемент типа rect; схема заполнения использует GComponentDef::{geom_def, kind, specific_def, margins_def}; GCompRectDef::{color}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c168 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompRectDef с ключами (1): color ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c096 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_image_def строит GUI-элемент типа image; схема заполнения использует GComponentDef::{geom_def, margins_def, kind, specific_def}; GCompImageDef::{url, keep_aspect_ratio, upscale_enabled, not_loaded_url, load_failed_url, low_quality_url, alpha, mix_alpha, mix_color}. keep_aspect_ratio=false, upscale_enabled=true; URL-заглушки и alpha/mix по умолчанию null. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c161 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompImageDef с ключами (9): url, alpha, mix_alpha, mix_color, keep_aspect_ratio, upscale_enabled, not_loaded_url, load_failed_url, low_quality_url ↩
-
fw-tv188b-260827-0003-r24--php-framework.c157 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompCutImageDef с ключами (2): url, alpha ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c111 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_image_fit_def формирует или дополняет структуру с полями ImageFitDef::{base_halign_ratio, base_valign_ratio}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c190 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс ImageFitDef с ключами (2): base_halign_ratio, base_valign_ratio ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c098 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_button_def строит GUI-элемент типа button; схема заполнения использует GComponentDef::{id, geom_def, margins_def, kind, specific_def}; GCompButtonDef::{caption, selected, caption_centered}. selected=false, caption_centered=true. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c156 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompButtonDef с ключами (3): caption, caption_centered, selected ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c093 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::text_field строит GUI-элемент типа text_field; схема заполнения использует GuiTextFieldDef::{initial_value, numeric, password, has_osk, width, apply_action}; GComponentDef::{id, geom_def, margins_def, kind, specific_def}; GCompTextFieldDef::{def, params}. other_params: numeric/password/has_osk=false, width=null, apply_action=null. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c171 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompTextFieldDef с ключами (2): def, params ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c101 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_panel_def строит GUI-элемент типа panel; схема заполнения использует GComponentDef::{id, geom_def, kind, specific_def, margins_def, options}; GCompPanelDef::{children}. margins и options только при истинности. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c165 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompPanelDef с ключами (5): children, alpha, mix_alpha, mix_color, prepaint_params ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c106 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_ppane_def строит GUI-элемент типа prepaint_pane; схема заполнения использует GComponentDef::{id, geom_def, kind, specific_def}; GCompPrepaintPaneDef::{panel, native_width, native_height}; GCompPanelDef::{children}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c166 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompPrepaintPaneDef с ключами (3): panel, native_width, native_height ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c103 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::ppp формирует или дополняет структуру с полями GCompPrepaintParams::{width, height}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c167 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompPrepaintParams с ключами (2): width, height ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c107 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_spane_def строит GUI-элемент типа scroll_pane; схема заполнения использует GComponentDef::{id, geom_def, margins_def, kind, specific_def}; GCompScrollPaneDef::{panel, view_width, view_height, view_position}; GCompPanelDef::{children}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c169 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompScrollPaneDef с ключами (6): panel, view_position, view_use_base_width, view_use_base_height, view_width, view_height ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c099 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · GCompsFactory::get_scrollbar_def строит GUI-элемент типа scrollbar; схема заполнения использует GComponentDef::{geom_def, margins_def, kind, specific_def}; GCompScrollbarDef::{scroll_pane_id, vertical}. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c170 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GCompScrollbarDef с ключами (2): scroll_pane_id, vertical ↩
-
fw-tv188b-260827-0003-r24--php-framework.c181 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiControlDef с ключами (6): name, title, use_preferred_width, kind, specific_def, params ↩
-
fw-tv188b-260827-0003-r24--php-framework.c184 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiLabelDef с ключами (1): caption ↩
-
fw-tv188b-260827-0003-r24--php-framework.c179 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiButtonDef с ключами (3): caption, width, push_action ↩
-
fw-tv188b-260827-0003-r24--php-framework.c180 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiComboboxDef с ключами (6): initial_value, value_caption_pairs, dimmed_ids, width, apply_action, confirm_action ↩
-
fw-tv188b-260827-0003-r24--php-framework.c187 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiTextFieldDef с ключами (9): initial_value, numeric, prefer_numbers, password, has_osk, always_active, width, apply_action, confirm_action ↩
-
fw-tv188b-260827-0003-r24--php-framework.c189 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiVGapDef с ключами (1): vgap ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c089 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ControlFactory::add_progress_bar строит GUI-элемент типа progress_bar; схема заполнения использует GuiControlDef::{name, title, kind, specific_def, params}; GuiProgressBarDef::{width, progress}. title=null, width=0, progress=0. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c186 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс GuiProgressBarDef с ключами (2): progress, width ↩
-
fw-tv188b-260827-0003-r24--php-framework.c239 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvInfo с ключами (43): server_time, groups, channels, channels_file, show_group_channels_only, favorites_supported, favorite_channel_ids, favorites_icon_url, initial_group_id, initial_channel_id, initial_is_favorite, initial_archive_tm, initial_trick_play, initial_trick_play_duration, initial_archive_program, actions, timer, ip_address_required, valid_time_required, ext_epg_enabled, epg_mode, epg_ttl_sec, epg_font_size, groups_text_size, groups_page_size, channels_text_size, channels_page_size, epg_text_size, epg_page_size, epg_day_use_local_tz, epg_day_shift_sec, ext_epg_base_url, ext_epg_channel_ids_url, custom_protect_code_handling, builtin_pcontrol_enabled, entered_pcode, subtitles_osd_enabled, keep_playing_on_reload, keep_playing_on_reenter, icon_auto_reducing_disabled, disable_connecting_status_osd, show_prev_next_scrolling_hint, archive ↩
-
fw-tv188b-260827-0003-r24--php-framework.c235 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvChannel с ключами (32): id, caption, extra_caption, group_ids, icon_url, number, have_archive, is_protected, recording_enabled, ext_epg_enabled, vod_archive_enabled, start_over_enabled, trick_play_enabled, buffering_ms, timeshift_hours, epg_mode, epg_normal_refresh_sec, epg_fast_refresh_sec, epg_fast_refresh_timeout, past_epg_days, future_epg_days, ext_epg_id, ext_epg_icon_url, epg_icon_width, epg_icon_height, epg_icon_x_offset, epg_icon_y_offset, epg_icon_hide_without_archive, use_program_have_archive_flags, archive_past_sec, archive_delay_sec, playback_url_is_stream_url ↩
-
fw-tv188b-260827-0003-r24--php-framework.c238 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvGroup с ключами (4): id, caption, icon_url, channel_ids ↩
-
fw-tv188b-260827-0003-r24--php-framework.c012 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::get_day_epg($channel_id, $day_start_tm_sec, &$plugin_cookies) возвращает List
(по комментарию) ↩ -
fw-tv188b-260827-0003-r24--php-framework.c237 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvEpgProgram с ключами (8): start_tm_sec, end_tm_sec, name, description, have_archive, flags, icon_url, ext_id ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c045 · code · android-dune-fw; прошивка 260827_0003_r24 · В strings libduneshell.so есть диагностики чтения полей PluginTvChannelChange: id (string); icon_url (string). ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c236 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginTvChannelChange с ключами (2): id, icon_url
- fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть
-
fw-tv188b-260827-0003-r24--php-framework.c253 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginVodInfo с ключами (25): id, name, sub_name, description, poster_url, series, initial_series_ndx, initial_position_ms, buffering_ms, advert_mode, extra_menu_items, enter_menu_action, actions, timer, ip_address_required, valid_time_required, subtitles_osd_enabled, skip_dummy_player_on_error, keep_playing_on_reload, keep_playing_on_reenter, recent_plugin, recent_action_params, recent_group_by, recent_tags, params ↩
-
fw-tv188b-260827-0003-r24--php-framework.c255 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginVodSeriesInfo с ключами (7): name, playback_url, playback_url_is_stream_url, content_id, recent_uid, mdb_info, markers ↩
-
fw-tv188b-260827-0003-r24--php-framework.c212 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginOsdComponent с ключами (9): x, y, image_url, image_width, image_height, text, text_font_size, text_color, text_halo ↩
-
fw-tv188b-260827-0003-r24--php-framework.c032 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Файлы dunelib подключают друг друга через require_once с путями вида 'dunelib/…': expr.php → config_utils.php, dune_countries.php; config_utils.php → utils.php, dune_languages.php ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c050 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dunelib/utils.php определяет класс-утилиту HD (статические методы) и исключение DuneCurlException extends Exception с полями errno, error, http_code
- fw-tv188b-260827-0003-r24--php-framework.c051 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Публичные методы HD: get, arrget, assert, is_map, init, has_attribute, get_map_element, filter_map, starts_with, ends_with, format_timestamp, format_duration, encode_user_data, decode_user_data, create_regular_folder_range, get_internet_status, force_check_internet_on_error, http_init, get_serial_number, get_dune_user_agent, get_addr_from_http_url, unset_http_params, get_dune_opts, http_headerfunction, http_get_document, http_post_document, http_request_document, http_server_responding, append_dune_auth, write_to_file_using_tmp, write_to_file_using_tmp_if_changed, safe_unlink, parse_xml_document, parse_props, read_props_file, encode_props, make_json_rpc_request, get_mac_addr, get_product_id, is_android, is_apk, is_fw_apk, is_limited_apk, with_network_manager, get_apk_package_name, get_fs_prefix, with_epfs, is_custom_fw, enable_caching_for_image_url, escape_xml_string, localtime_TZ, MY_localtime, format_date_time_date, format_date_time_date_ext, convert_daytime_to_12h, format_date_time_time, readlines, print_backtrace, escape_shell_arg, encode_json_str, path_basename, path_dirname, filemtime, ensure_plugin_name, http_status_code_to_string, get_item, is_whale_tv, is_dual_system
-
fw-tv188b-260827-0003-r24--php-framework.c052 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Константы HD: INT_MIN, INT_MAX, NBSP, DUNE_AUTH_PATH=/tmp/dune_auth.txt, INTERNET_STATUS_PATH=/tmp/run/internet_status.txt, FORCE_CHECK_INTERNET_ON_ERROR_PATH=/tmp/run/network_monitor/force_check_on_error ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c053 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Тайм-ауты HTTP в HD: $DEFAULT_CURL_TIMEOUT=60 и $DEFAULT_CURL_CONNECT_TIMEOUT=10 с, но HD::init($def_curl_timeout=20) переустанавливает общий тайм-аут (по умолчанию в 20 с) и вызывает http_init
- fw-tv188b-260827-0003-r24--php-framework.c054 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::http_init() читает /tmp/sysinfo.txt и формирует User-Agent «DuneHD/1.0» с добавкой « (product_id: …; firmware_version: …)» из строк этого файла; serial_number запоминается
-
- fw-tv188b-260827-0003-r24--php-framework.c058 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::http_get_document бросает DuneCurlException при ошибке curl и при любом HTTP-коде, кроме 200 (включая 301/302/304); при ошибке curl создаёт флаг /tmp/run/network_monitor/force_check_on_error
- fw-tv188b-260827-0003-r24--php-framework.c056 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::http_get_document по умолчанию отключает проверку TLS-сертификата (CURLOPT_SSL_VERIFYPEER=false), следует редиректам, ставит CURLOPT_ENCODING=1 и тайм-ауты из $DEFAULT_CURL_*; опции вызывающего применяются поверх
- fw-tv188b-260827-0003-r24--php-framework.c059 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::http_get_document по умолчанию пишет в лог через hd_print URL, POST-поля и итог запроса; параметр $silent=true это отключает
-
fw-tv188b-261021-0117-r25.c023 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · HD::http_get_document в r25 пишет в лог « http <метод>:
» (метод — CURLOPT_CUSTOMREQUEST, иначе POST при CURLOPT_POSTFIELDS, иначе GET) и « http DATA: …» вместо «HTTP fetching»/«HTTP POST fields»; сообщения об ошибках — в нижнем регистре («http request failed (код)») ↩ -
fw-tv188b-260827-0003-r24--php-framework.c060 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::http_post_document ставит CURLOPT_POST и CURLOPT_POSTFIELDS и вызывает http_get_document; http_request_document выбирает POST, если передан $post_data ↩
-
fw-tv188b-260827-0003-r24--php-framework.c063 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::encode_user_data/decode_user_data упаковывают данные в media_url как «
|| » ↩ -
fw-tv188b-260827-0003-r24--php-framework.c064 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::create_regular_folder_range($items, $from_ndx=0, $total=-1, $more_items_available=false) строит массив с ключами PluginRegularFolderRange total, more_items_available, from_ndx, count, items и обрезает items по total ↩
-
fw-tv188b-260827-0003-r24--php-framework.c065 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::write_to_file_using_tmp и write_to_file_using_tmp_if_changed пишут файл атомарно через
.tmp и rename; второй возвращает 0, если содержимое не изменилось, 1 при записи и -1 при ошибке ↩ -
fw-tv188b-260827-0003-r24--php-framework.c066 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::parse_props/read_props_file разбирают строки key=value, encode_props пишет «key = value»; parse_xml_document использует simplexml_load_string и бросает Exception('Illegal XML document') ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c061 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::get_internet_status() возвращает целое из /tmp/run/internet_status.txt или -1, если файла нет
- fw-tv188b-260827-0003-r24--php-framework.c062 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::append_dune_auth($url) дописывает к URL через ?/& содержимое файла /tmp/dune_auth.txt
- fw-tv188b-260827-0003-r24--php-framework.c068 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::get_mac_addr() в режиме APK читает /tmp/run/dune_mac.txt, иначе берёт HWaddr из вывода «ifconfig eth0»
- fw-tv188b-260827-0003-r24--php-framework.c069 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::get_product_id() читает /firmware/config/product_id.txt; HD::is_custom_fw() считает прошивку кастомной, если product_id не совпадает с product_id из /firmware/config/base_firmware_info.txt или один из файлов некорректен
-
fw-tv188b-260827-0003-r24--php-framework.c070 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::is_android() всегда возвращает true ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c071 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD читает переменные окружения: is_apk — HD_APK, is_fw_apk — HD_FW_APK, get_apk_package_name — APK_PACKAGE_NAME, get_fs_prefix — FS_PREFIX (пустая строка, если не задана); is_limited_apk = apk и не fw_apk; with_network_manager = не limited_apk
- fw-tv188b-260827-0003-r24--php-framework.c072 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::with_epfs() истинно, если существует каталог /flashdata/plugins_epfs/shell_ext
- fw-tv188b-260827-0003-r24--php-framework.c077 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::is_whale_tv() и is_dual_system() проверяют флаги whale_tv и dual_system в наборе firmware features
-
- fw-tv188b-260827-0003-r24--php-framework.c073 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::enable_caching_for_image_url дописывает к URL картинки, начинающемуся с http или cached_image, параметр dune_image_cache=1
- fw-tv188b-260827-0003-r24--php-framework.c074 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::localtime_TZ($tm) получает локальное время вызовом внешней команды date -d @
через exec (с кэшем последнего значения) - fw-tv188b-260827-0003-r24--php-framework.c078 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · HD::get_item($path, $dummy=null) — заглушка, всегда возвращает false
-
- fw-tv188b-260827-0003-r24--php-framework.c034 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::get_config() читает /config/settings.properties (строки key=value, '#' — комментарий) и кэширует результат до смены mtime файла; учитываются только ключи из списка умолчаний
- fw-tv188b-260827-0003-r24--php-framework.c035 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Умолчания ConfigUtils::load_config: interface_language=english, noncustom_interface_language=english, ui_type=type3, time_format=24, content_details_at_the_top=yes, auto_watched_percent=90%, auto_watched_time_left=30s, watched_marks_format=percents, enter_on_file_behaviour_new=playlist, play_on_file_behaviour=playlist, sync_enabled=disabled; widget_country, widget_city, network_connection, kartina_tv_login, kartina_tv_password, kartina_tv_interface_type, sync_folder_url — пустые
- fw-tv188b-260827-0003-r24--php-framework.c036 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если interface_language=custom, ConfigUtils берёт noncustom_interface_language; lang_code вычисляется через DuneLanguages::get_code_by_id, при неизвестном языке — предупреждение и english/en
-
fw-tv188b-260827-0003-r24--php-framework.c037 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::get_location_info() читает /tmp/location_info.properties, а если его нет — /config/location_info.properties; строки «key = value», ключи country, country_code_2 (по умолчанию WW), city ↩
-
fw-tv188b-260827-0003-r24--php-framework.c038 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::load_plugin_cookies($plugin_name) читает /config/
_plugin_cookies.properties как строки key=value в объект ↩ -
- fw-tv188b-260827-0003-r24--php-framework.c040 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::load_firmware_features() собирает набор флагов из строк /tmp/firmware_features.txt и /tmp/ro_features.txt
- fw-tv188b-261021-0117-r25.c025 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ConfigUtils::load_firmware_features() в r25 убирает флаг downloads из набора, если есть файл /tmp/flm.txt (комментарий: оболочка создаёт его для «lite»-лицензии без загрузок)
-
- fw-tv188b-260827-0003-r24--php-framework.c041 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::load_product_and_fw() читает /tmp/run/versions.txt (key=value: firmware_version, product, platform_kind, android_platform); для fw_apk android_platform берётся из /firmware/config/fw_apk_platform.txt
- fw-tv188b-260827-0003-r24--php-framework.c042 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · platform_kind_group: 4-символьный platform_kind, начинающийся с '8' и цифры, сводится к виду «8Nxx» (например 8672 → 86xx); иначе равен platform_kind
-
fw-tv188b-260827-0003-r24--php-framework.c043 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Класс Expr (dunelib/expr.php) вычисляет условные выражения: Expr::make() собирает контекст из настроек, местоположения, флагов прошивки, /tmp/run/versions.txt и переменных HD_APK/HD_FW_APK; evaluate($pat) переводит шаблон в нижний регистр и вычисляет его ↩
-
fw-tv188b-260827-0003-r24--php-framework.c044 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Операторы Expr: or, and, not/!, strict_country, country/c, language/l, product/p (product, platform_kind или platform_kind_group), android_platform, firmware_feature/ff, firmware_version/fwv, fwv_ge/fwv_gt/fwv_le/fwv_lt (и полные имена firmware_version_*), apk, fw_apk, limited_apk; шаблон «any» всегда истинен ↩
-
fw-tv188b-260827-0003-r24--php-framework.c046 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В аргументах Expr список значений разделяется запятыми; элемент с префиксом =~ или !~ (также i=~, i!~) — регулярное выражение, иначе сравнение без учёта регистра (strcasecmp) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c047 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Expr::add_user_op($op_name, $func_name) регистрирует пользовательский оператор: неизвестный встроенным оператор вызывает call_user_func($func_name, $op, $arg, $user_data); set_user_data задаёт $user_data ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c297 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DuneLanguages::get_code_by_id($id) возвращает код языка (4-е поле) для записи с данным id (1-е поле), иначе null
- fw-tv188b-260827-0003-r24--php-framework.c298 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DuneLanguages::get_en_caption_by_code($id) возвращает английское название (3-е поле) по коду языка (4-е поле), иначе null
- fw-tv188b-260827-0003-r24--php-framework.c299 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DuneLanguages::get_native_caption_by_code($id) возвращает родное название (2-е поле) по коду языка (4-е поле), иначе null
-
fw-tv188b-260827-0003-r24--php-framework.c294 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Класс DuneLanguages (dunelib/dune_languages.php) хранит таблицу языков в private static $VALUES, а заполняет её только метод static_init() ↩
-
fw-tv188b-260827-0003-r24--php-framework.c300 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Сам dune_languages.php static_init() не вызывает: встроенные плагины вызывают DuneLanguages::static_init() явно (android_apps/main_plugin.php, shell_ext/main_plugin.php и async_worker.php, dunestore/dunestore_plugin.php) ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c294 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Класс DuneLanguages (dunelib/dune_languages.php) хранит таблицу языков в private static $VALUES, а заполняет её только метод static_init()
- fw-tv188b-260827-0003-r24--php-framework.c300 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Сам dune_languages.php static_init() не вызывает: встроенные плагины вызывают DuneLanguages::static_init() явно (android_apps/main_plugin.php, shell_ext/main_plugin.php и async_worker.php, dunestore/dunestore_plugin.php)
-
- fw-tv188b-261021-0117-r25.c027 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · dunelib/dl_state.php (r25): DlState отправляет команды менеджеру загрузок JSON-файлами в /tmp/run/dl_input/<время>.<…>.in с cmd_type add (id, name, total, files[path, url, size_mb, ext_ts], params), remove, pause, resume (group_id, file_paths), start_ts, change_dl_folder, test_dl_folder
- fw-tv188b-261021-0117-r25.c028 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · DlState читает состояние загрузок из /tmp/run/dl_gstat.txt и /tmp/run/dl_state.txt, кэш — /flashdata/dl_cache и /tmp/run/dl_cache; в strings libxxx_dl_manager.so есть те же пути /tmp/run/dl_input, /tmp/run/dl_gstat.txt, /tmp/run/dl_state.txt
-
fw-tv188b-260827-0003-r24--php-framework.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php определяет hd_print($str): выводит строку через echo с суффиксом $HD_NEW_LINE (по умолчанию ''), а при заданном $HD_OB_PREFIX — с этим префиксом и вызовом ob_flush() ↩
-
fw-tv188b-260827-0003-r24--php-framework.c002 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php регистрирует hd_error_handler через set_error_handler и hd_shutdown_handler через register_shutdown_function; обработчик печатает ошибку через hd_print в формате «[файл:строка] [E_ТИП] сообщение» ↩
-
fw-tv188b-260827-0003-r24--php-framework.c003 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · hd_silence_warnings() выключает вывод ошибок (error_reporting(0) и пустой обработчик hd_error_silencer), hd_restore_warnings() восстанавливает обработчик и error_reporting(E_STRICT | E_ALL) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c004 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php устанавливает ini date.timezone из date_default_timezone_get(), с комментарием «Use timezone from the environment (TZ)» как обход известной проблемы PHP с 5.3.0 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c005 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · bootstrap.php снимает ограничение времени выполнения PHP: set_time_limit(0) ↩
-
fw-tv188b-260827-0003-r24--php-framework.c029 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_config_get_few_buttons_remote_type() возвращает DuneSystem::$properties['few_buttons_remote_type'] ↩
-
fw-tv188b-260827-0003-r24--php-framework.c030 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_config_with_color_buttons() возвращает false для пультов SMALL и ARROWS и true для остальных; dune_config_show_pop_up_icon_only() возвращает true для OVAL, SMALL, ARROWS и false для остальных ↩
-
plg-dc-globaltv--lib.c068 · code · android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::edit_list_config плагина принимает options/close_item_params между groups и sel_id; r24 принимает после groups сразу sel_id/post_action. ↩
-
plg-dc-globaltv--lib.c065 · code · android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::update_rows_info плагина принимает folder_key/item_id и включает их в PluginRowsInfo, а r24 начинает аргументы с info_defs и добавляет bg_poster_mode вместо этих полей. ↩
-
plg-dc-globaltv--lib.c070 · code · android-dune-fw; прошивка 260827_0003_r24 · В ActionFactory::show_error плагина поля stop_playback/retry_delay_ms добавляются при defined(stop_playback), а r24 записывает их без проверки defined. ↩
-
doc-sdk-plugins--operations.c084 · doc · any-documented; прошивка — · В объявлении интерфейса DunePlugin (раздел «DunePlugin interface») тип результата change_tv_favorites() — void ↩
-
doc-sdk-plugins--operations.c083 · doc · any-documented; прошивка — · В описании операции change_tv_favorites() возвращает GuiAction — необязательное GUI-действие, исполняемое немедленно ↩
-
- doc-sdk-plugins--operations.c084 · doc · any-documented; прошивка — · В объявлении интерфейса DunePlugin (раздел «DunePlugin interface») тип результата change_tv_favorites() — void
- doc-sdk-plugins--operations.c083 · doc · any-documented; прошивка — · В описании операции change_tv_favorites() возвращает GuiAction — необязательное GUI-действие, исполняемое немедленно
- fw-tv188b-260827-0003-r24--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · DunePlugin::change_tv_favorites($op_type, $channel_id, &$plugin_cookies) и handle_user_input(&$user_input, &$plugin_cookies) возвращают GuiAction (по комментариям)
-
- doc-sdk-plugins--gui-actions.c042 · doc · any-documented; прошивка — · PluginHandleUserInputAction не имеет данных; выполняет операцию Handle_user_input(GuiAction::$params) и возвращает её результат как post action
- fw-tv188b-260827-0003-r24--php-framework.c206 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginHandleUserInputActionData с ключами (3): operation_timeout, show_dialog_delay, dialog_title
- fw-tv188b-260827-0003-r24--plugin-loader--php-runtime--opexec.c034 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ключ operation_timeout в данных действия plugin_handle_user_input задаётся в миллисекундах: 3000 дало «start (timeout=3.0s)» и отмену через 3,3 с, 3 — «timeout=0.0s» и отмену через 0,36 с, 60000 — «timeout=60.0s»; значение из данных действия перекрывает operation_timeout/default манифеста (5).
-
- doc-sdk-plugins--operations.c020 · doc · any-documented; прошивка — · Класс PluginControlsFolderView имеет поля defs (Array
), initial_sel_ndx (int), params (PluginFolderViewParams) - fw-tv188b-260827-0003-r24--php-framework.c199 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginControlsFolderView с ключами (5): defs, actions, timer, initial_sel_ndx, params
- doc-sdk-plugins--operations.c020 · doc · any-documented; прошивка — · Класс PluginControlsFolderView имеет поля defs (Array
-
- doc-sdk-plugins.c104 · doc · any-documented; прошивка — · В 120531_2200_beta добавлены действия file_play, dvd_play, bluray_play, playlist_play, launch_media_url, change_behavior, show_black_screen, show_main_screen и события timer, playback_stop
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c035 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::change_behaviour строит действие change_behaviour; схема заполнения использует ChangeBehaviourActionData::{actions, timer, post_action}. Перед построением вызывает GlobalActionMap::add_actions(actions).
-
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::open_folder_ext строит действие plugin_open_folder; схема заполнения использует PluginOpenFolderActionData::{media_url, caption, id, post_action, sel_id, tags}. sel_id при isset; tags=[movie_id:
] только для screen_id=MovieScreen::ID. - fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c002 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::open_folder делегирует open_folder_ext с sel_id=null.
- doc-sdk-plugins--gui-actions.c155 · code · unknown; прошивка — · ActionFactory::open_general_folder плагина polsky-tv формирует действие типа OpenFolder с handler_string_id = OPEN_FOLDER_ACTION_ID и data из поля класса OpenFolderActionData::media_url.
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c001 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::open_folder_ext строит действие plugin_open_folder; схема заполнения использует PluginOpenFolderActionData::{media_url, caption, id, post_action, sel_id, tags}. sel_id при isset; tags=[movie_id:
-
- fw-tv188b-260827-0003-r24--php-framework.c135 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс CheckSystemStorageActionData с ключами (5): required_space, recommended_space, title, messages, post_action
- fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c210 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::check_system_storage принимает title, но возвращаемый массив data содержит только required_space, recommended_space, messages и post_action.
-
- fw-tv188b-261021-0117-r25--php-framework.c009 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля UpdateSpecialFavoriteFolderActionData: name — (char *); delete — bool; skip_interactions — bool; post_action — (GuiAction *).
- fw-tv188b-261021-0117-r25--php-framework.c028 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ActionFactory::update_special_favorite_folder(name, delete, post_action=null) возвращает GuiAction update_special_favorite_folder с этими тремя полями; объявленный skip_interactions фабрика не передаёт.
-
- fw-tv188b-261021-0117-r25--php-framework.c014 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Аннотации dune_api.php r25 задают поля PluginSystemActionData: handle_response — bool.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · JSON-десериализация plugin_system оставляет PluginSystemActionData::handle_response=false: в обнулённых данных заполняются run_string и post_action, а поле handle_response не читается.
-
- fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c046 · code · android-dune-fw; прошивка 260827_0003_r24 · В strings libduneshell.so сообщение о чтении vod_info называет PluginTvPlayActionData, а не PluginVodPlayActionData.
- fw-tv188b-260827-0003-r24--php-framework.c254 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginVodPlayActionData с ключами (1): vod_info
-
- doc-sdk-plugins--gui-actions.c068 · doc · any-documented; прошивка — · Данные PluginUpdateFolderAction описаны классом с именем PluginUpdateFolderAction (без суффикса ActionData): range (PluginRegularFolderRange), need_refresh (Boolean), sel_ndx (необязательно, −1 — не менять)
- fw-tv188b-260827-0003-r24--php-framework.c245 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php определяет класс PluginUpdateFolderActionData с ключами (3): range, need_refresh, sel_ndx
-
- doc-sdk-plugins--gui-actions.c122 · doc · any-documented; прошивка — · Поле reboot в ChangeSettingsAction определяет, перезагрузить ли приставку немедленно; описание restart_gui в документе дословно то же («whether to reboot STB immediately»)
- fw-tv188b-261021-0117-r25.c072 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ChangeSettingsAction с restart_gui=true, reboot=false и пустыми settings перезапускает приложение Dune, а не приставку. Оболочка пишет «APK: trigger restart», pid com.dunehd.app меняется 17983 → 19586, а /proc/uptime растёт непрерывно (129033 → 129116 с).
-
- doc-sdk-plugins--gui-actions.c151 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Строковые id (handler_string_id) типов действий SDK соответствуют значениям констант *_ACTION_ID по сходству имён; для пяти пар (c336–c340) строковый id принят на устройстве, для остальных 27 пар соответствие остаётся выводом.
- doc-sdk-plugins--gui-actions.c150 · code, disputed · tv188b, android-dune-fw; прошивка 260827_0003_r24 · dune_api.php r24 определяет константы *_ACTION_ID со строковыми значениями; 32 из них: PLUGIN_OPEN_FOLDER_ACTION_ID → plugin_open_folder, PLUGIN_TV_PLAY_ACTION_ID → plugin_tv_play, PLUGIN_VOD_PLAY_ACTION_ID → plugin_vod_play, PLUGIN_HANDLE_USER_INPUT_ACTION_ID → plugin_handle_user_input, PLUGIN_SHOW_ERROR_ACTION_ID → plugin_show_error, SHOW_DIALOG_ACTION_ID → show_dialog, CLOSE_DIALOG_AND_RUN_ACTION_ID → close_dialog_and_run, RESET_CONTROLS_ACTION_ID → reset_controls, SHOW_POPUP_MENU_ACTION_ID → show_popup_menu, STATUS_ACTION_ID → status, PLUGIN_UPDATE_FOLDER_ACTION_ID → plugin_update_folder, PLUGIN_INVALIDATE_FOLDERS_ACTION_ID → plugin_invalidate_folders, PLUGIN_RUN_NATIVE_CODE_ACTION_ID → plugin_run_native_code, PLUGIN_CLEAR_ARCHIVE_CACHE_ACTION_ID → plugin_clear_archive_cache, DVD_PLAY_ACTION_ID → dvd_play, BLURAY_PLAY_ACTION_ID → bluray_play, FILE_PLAY_ACTION_ID → file_play, PLAYLIST_PLAY_ACTION_ID → playlist_play, LAUNCH_MEDIA_URL_ACTION_ID → launch_media_url, SHOW_MAIN_SCREEN_ACTION_ID → show_main_screen, SHOW_BLACK_SCREEN_ACTION_ID → show_black_screen, CHANGE_BEHAVIOUR_ACTION_ID → change_behaviour, OPEN_FOLDER_ACTION_ID → open_folder, CLOSE_AND_RUN_ACTION_ID → close_and_run, PLUGIN_SYSTEM_ACTION_ID → plugin_system, RUN_BUILTIN_ACTION_ID → run_builtin, WAIT_FOR_IP_ADDRESS_ACTION_ID → wait_for_ip_address, WGET_ACTION_ID → wget, CHANGE_SETTINGS_ACTION_ID → change_settings, PLUGIN_UPDATE_INFO_BLOCK_ACTION_ID → plugin_update_info_block, PLUGIN_UPDATE_EPG_ACTION_ID → plugin_update_epg, PLUGIN_UPDATE_OSD_ACTION_ID → plugin_update_osd.
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c057 · inference · android-dune-fw; прошивка 260827_0003_r24 · GuiAction в этой прошивке, предположительно, разбирает data по типу, выбранному через handler_string_id. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c058 · inference · android-dune-fw; прошивка 260827_0003_r24 · Действие plugin_handle_user_input в этой прошивке, предположительно, принимает data типа PluginHandleUserInputActionData с operation_timeout, show_dialog_delay и dialog_title. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions.c059 · inference · android-dune-fw; прошивка 260827_0003_r24 · XML-конструктор plugin_system, предположительно, проверяет наличие и корректность data/run_string. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--gui-actions--json-outputs.c020 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Индексы case 0..7 в json_materialize_output_data_from_json соответствуют строковым значениям PluginOutputDataType в порядке dune_api.php: 0 plugin_folder_view, 1 plugin_regular_folder_range, 2 gui_action, 3 plugin_tv_info, 4 plugin_tv_epg_program_list, 5 url, 6 plugin_vod_info, 7 plugin_stream_info. ↩
-
- fw-tv188b-260827-0003-r24--php-framework.c293 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Оболочка (libduneshell.so) вызывает плагин через PHP-выражение DunePluginFw::$instance->call_plugin(...), то есть через экземпляр, который регистрирует default_dune_plugin_fw.php плагина
- fw-tv188b-260827-0003-r24--php-framework.c308 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · php_server, вероятно, исполняет вызов плагина как PHP-код «$in = <<<EOL …EOL; $out = <выражение>($in);», где выражение (например DunePluginFw::$instance->call_plugin) приходит от оболочки в CallPacket
-
fw-tv188b-260827-0003-r24--php-framework.c309 · inference, disputed · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Системные PHP-файлы /firmware_ext/php подключаются до кода плагина: так сказано в SDK; для tv188b r24 порядок из строк php_server не следует ↩
-
fw-tv188b-260827-0003-r24--php-framework.c033 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Пути require_once 'dunelib/…' разрешаются, только если каталог firmware_ext/php/include/ есть в include_path PHP; где он задаётся, из модуля не видно ↩
-
fw-tv188b-260827-0003-r24--php-framework.c039 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Файл /config/
_plugin_cookies.properties — постоянное хранилище $plugin_cookies, которые оболочка передаёт в методы плагина ↩ -
fw-tv188b-260827-0003-r24--php-framework.c302 · inference · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Если плагин не вызвал DuneLanguages::static_init(), геттеры DuneLanguages возвращают null (foreach по неинициализированному $VALUES), и ConfigUtils::load_config() получит lang_code = null ↩
-
fw-tv188b-260827-0003-r24--shell-ext--ui-lib.c005 · code, disputed · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ActionFactory::show_error строит действие plugin_show_error; схема заполнения использует PluginShowErrorActionData::{fatal, title, msg_lines, stop_playback, retry_delay_ms}; stop_playback и retry_delay_ms — параметры функции со значениями по умолчанию false и 0, вызывающий может передать свои; fatal также печатает сообщение ↩
-
fw-tv188b-261021-0117-r25.c018 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Действие fs_ctl, по-видимому, нельзя задать в XML (dune_plugin.xml), только в JSON-ответе PHP-плагина ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c017 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, fs_ctl resolve_url разрешает URL в путь и может запрашивать монтирование через try_mount_if_needed.
- fw-tv188b-261021-0117-r25--php-framework.c018 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, fs_ctl stat возвращает признаки каталога и метаданные st_mode/st_size/st_mtime/st_ctime для path.
- fw-tv188b-261021-0117-r25--php-framework.c019 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, fs_ctl scandir читает элементы каталога path с опциональным stat и ограничением max_items_count.
- fw-tv188b-261021-0117-r25--php-framework.c020 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, fs_ctl get_file копирует из path в target_path с пропуском skip и ограничением max_size; chunk_size задаёт размер порции.
- fw-tv188b-261021-0117-r25--php-framework.c021 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, результат fs_ctl передаётся продолжению через поля fs_ctl_* и при заданном output_path сохраняется в файл; формат файла и коды результата по strings не установлены.
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c009 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · При ошибочном scandir/get_file и непустом output_path результат предположительно имеет невалидный JSON вида {"input":{...},{"error":{...}}}: перед самостоятельным объектом ошибки отсутствует имя поля. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c023 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, cond вычисляет булев pattern и использует его результат как условие видимости entry_point downloads.
- fw-tv188b-261021-0117-r25--php-framework.c024 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, нативный pattern ff(downloads) проверяет firmware_feature downloads: таково прямое значение ff в отдельном PHP-интерпретаторе Expr, а нативный конфиг rows_menu_config.json использует это выражение.
- fw-tv188b-261021-0117-r25--php-framework.c052 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, pattern-функция is_plugin_file(plugin/path) проверяет файл в установленном плагине; реализация выбора базового каталога и проверка типа файла не установлены.
-
fw-tv188b-261021-0117-r25--php-framework.c031 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, update_special_favorite_folder возвращает в продолжение action_status: MovieHelper::perform_add_special_favorite считает нулевой статус до icon_cached фатальной ошибкой; нативная шкала статусов не установлена. ↩
-
fw-tv188b-261021-0117-r25--php-framework.c035 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, apply_hash_dirties заставляет нативную оболочку обработать записи HashDirties после изменения hash-привязок; формат результата действия и момент очистки файла не установлены. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c043 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, нативная оболочка ищет эффективную строку DUP в row_dup_map по dup_id из data; отсутствие карты, dup_id или эффективной строки диагностируется предупреждениями.
- fw-tv188b-261021-0117-r25--php-framework.c044 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, PLUGIN_ROW_OPT_LOADING помечает строку для последующей подгрузки через get_folder_rows; точные триггеры, порядок и повтор нативных запросов из PHP/strings не следуют.
- fw-tv188b-261021-0117-r25--php-framework.c051 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, PLUGIN_ROW_OPT_OPTIMIZE_INVISIBLE разрешает оптимизацию невидимых строк; какие операции пропускаются и как определяется невидимость, из PHP/strings не установлено.
-
fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c016 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, пустой или неполный ответ get_folder_rows допускает повторный запрос прежних id, если исходные строки сохраняют LOADING и контекст выбора не меняется: неполученные строки не попадают в pending и снова проходят фильтр. ↩
-
- fw-tv188b-261021-0117-r25.c020 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · PluginSystemActionData::handle_response=yes, вероятно, заставляет оболочку после завершения run_string проверить
/restart_needed_flag и перезапустить GUI; для команды в фоне (с «&») флаг игнорируется - fw-tv188b-261021-0117-r25--php-framework.c046 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, handle_response у plugin_system включает проверку restart_needed_flag и запрос перезапуска GUI после run_string; для фоновой команды диагностируется игнорирование handle_response.
- fw-tv188b-261021-0117-r25.c020 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · PluginSystemActionData::handle_response=yes, вероятно, заставляет оболочку после завершения run_string проверить
-
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c011 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · По псевдокоду JSON-ветка plugin_system в 0x00223998, предположительно, оставляет handle_response по смещению +4 равным 0: выделяет 12 обнулённых байтов и читает только run_string и post_action, без чтения handle_response.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts.c004 · code, disputed · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В plugin_system после safe_system, если команда не распознана фоновой и handle_response=true, наличие <поле plugin+0x14>/restart_needed_flag вызывает удаление флага и вызов 0x0069f754; проверка не зависит от кода завершения safe_system.
- fw-tv188b-261021-0117-r25--plugin-loader--native-contracts-2.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · JSON-десериализация plugin_system оставляет PluginSystemActionData::handle_response=false: в обнулённых данных заполняются run_string и post_action, а поле handle_response не читается.
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c057 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В запросе 11 после выдачи run_default(event=key_info, post_action с tag=a_default) в итоговой выборке post не видно a_default; соседние a_exit, a_composite-1/2 и a_sleep присутствуют. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c064 · inference, disputed · tv188b, android-dune-fw; прошивка 261021_0117_r25 · По месту использования plugin_exit_folders закрывает открытые папки плагина (count — сколько уровней; 0 — вероятно, все) — у downloads при установке и обновлении плагина. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c066 · inference, disputed · tv188b, android-dune-fw; прошивка 261021_0117_r25 · plugin_replace_path заменяет хвост пути навигации: снимает erase_count последних элементов и подставляет elements без повторного открытия экранов (у shell_ext — после смены сопоставления файла с фильмом). ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c068 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · rename_path меняет подпись текущего (последнего) элемента пути навигации на caption — так shell_ext обновляет заголовок после переименования папки. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c072 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · plugin_update_epf_mapping с epf_id привязывает точку входа EPF к плагину mapped_plugin_name, а с epf_id = null (reread_all_epfs) заставляет оболочку перечитать все EPF; sync_epfs — вероятно, синхронный режим. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c075 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · switch_osd_mode(osd_mode=true) переводит оболочку из GUI плагина в экран воспроизведения (OSD) идущего видео, не перезапуская его. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c078 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · check_system_storage проверяет наличие (и, при ненулевых required_space/recommended_space, объём) системного хранилища данных и сообщает итог продолжению полем check_succeeded. ↩
-
fw-tv188b-261021-0117-r25--php-framework--native-actions.c084 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · edit_movie_data открывает нативный редактор метаданных фильма movie_id и сообщает продолжению movie_data_changed > 0, если данные изменены; change_movie_data — сообщает change_movie_data_status. ↩
-
- fw-tv188b-261021-0117-r25--php-framework.c049 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, with_network_folders/with_network_browser управляют доступностью сетевых папок и обзора сети; нативные умолчания и раздельный смысл флагов не установлены.
- fw-tv188b-261021-0117-r25--php-framework.c053 · inference · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Вероятно, new_folder_default_name задаёт начальное имя создаваемой папки в choose_file; допустимые имена и нативное значение по умолчанию не установлены.