show_avi() (src/main.c) never returns: its streaming loop is while (sz) but sz is never decremented, so main_start()'s key-poll loop (which runs after show_*() returns) is never reached for AVI files. PgDn/PgUp/Esc do work for JPG/PNG/DLS/DXP, which return immediately. Documenting as a known limitation rather than fixing it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
73 lines
4.1 KiB
Markdown
73 lines
4.1 KiB
Markdown
# FT812 Viewer
|
||
|
||
Плагин для Wild Commander (ZX Evolution / TS-Conf), показывающий изображения
|
||
и видео через графический чип FT812 (EVE) платы.
|
||
|
||
> ⚠️ **Это переработанная версия.** Стандартный (оригинальный) `ftview`
|
||
> дополнительно сам регистрируется на расширения `.XM` и `.XMZ` и
|
||
> проигрывает их через ESP32-сопроцессор. Из этой версии поддержка `.XM` и
|
||
> `.XMZ` убрана: воспроизведение модулей вынесено в отдельный плагин
|
||
> [xmplay](https://git.alexkorochinskiy.ru/alex/xmplayer.git), а у Wild
|
||
> Commander таблица "расширение → плагин" статическая и зашивается в
|
||
> заголовок при сборке — если поставить `xmplay` вместе со стандартным
|
||
> (не переработанным) `ftview`, оба будут претендовать на одни и те же
|
||
> расширения и конфликтовать. Ставить эту версию `ftview` вместе с `xmplay`,
|
||
> не стандартную.
|
||
|
||
## Требования
|
||
|
||
- ZX Evolution / TS-Conf с графическим чипом FT812 (EVE)
|
||
- Wild Commander
|
||
|
||
## Возможности
|
||
|
||
- `.JPG`, `.PNG` — просмотр изображений
|
||
- `.DLS` — воспроизведение "сырого" display list FT812 (уже скомпилированная
|
||
команда отрисовки, без разбора формата)
|
||
- `.DXP` — свой формат растрового изображения (заголовок с сигнатурой,
|
||
типом и размерами + данные)
|
||
- `.AVI` — воспроизведение видео через встроенный видеодекодер FT812
|
||
(`MediaFifo`, полноэкранно, со звуком)
|
||
|
||
## Управление
|
||
|
||
Работает для `.JPG`/`.PNG`/`.DLS`/`.DXP`:
|
||
|
||
| Клавиша | Действие |
|
||
|---------|-------------------|
|
||
| PgDn | Следующий файл |
|
||
| PgUp | Предыдущий файл |
|
||
| Esc | Выйти |
|
||
|
||
> ⚠️ **Для `.AVI` управление не работает.** `show_avi()` (`src/main.c`)
|
||
> запускает потоковую передачу видео в цикле `while (sz)`, где `sz`
|
||
> нигде не уменьшается — функция не возвращает управление, и общий цикл
|
||
> опроса клавиш (в `main_start()`, уже после вызова `show_*()`) для AVI
|
||
> просто не достигается. Воспроизведение AVI зависает без возможности
|
||
> выйти клавиатурой. Известное ограничение исходного кода, не исправлено.
|
||
|
||
## Установка
|
||
|
||
Скопировать `ftview.wmf` в каталог плагинов Wild Commander. Плагин сам
|
||
регистрируется на `.JPG`, `.PNG`, `.DLS`, `.DXP` и `.AVI`.
|
||
|
||
## Сборка
|
||
|
||
Нужен [SDCC](http://sdcc.sourceforge.net/) версии 4.0.0 (зафиксирована в
|
||
`build.bat`) и `hex2bin` — оба есть в тулчейне SDK ZX Evolution. Версия
|
||
SDCC важна: собранные другой версией `lib/ft812`/`lib/tsconf`/`lib/sdk`
|
||
дают несовместимый ABI (разная конвенция `sdcccall`) без явной ошибки
|
||
сборки — плагин просто виснет или ведёт себя не так на реальном железе.
|
||
|
||
```
|
||
build.bat
|
||
```
|
||
|
||
Результат — `ftview.wmf` в корне проекта.
|
||
|
||
## Статус
|
||
|
||
Проверено на реальном железе: просмотр JPG/PNG, воспроизведение DLS,
|
||
навигация по файлам (PgDn/PgUp/Esc). Известное ограничение — см.
|
||
предупреждение про `.AVI` выше.
|