Files
alexandClaude Sonnet 5 461f44dd14 docs: fix README - keyboard controls don't work for .AVI
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>
2026-09-07 12:48:59 +03:00

73 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` выше.