From cde53a9529c0d552066f2d4fbe05452e0f18c947 Mon Sep 17 00:00:00 2001 From: markmental Date: Mon, 30 Mar 2026 15:25:32 -0400 Subject: [PATCH] Update README for clarity --- README.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 776083e..1bebd1b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # FreePassport-C Media Player -FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that is based on the look of interactive programming guide software used on older Cisco/Scientific Atlanta Explorer cable boxes, it allows you to organize your media into a virtual cable guide with live-seeking channels. +FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application inspired by the interactive program guides used on older Cisco and Scientific Atlanta Explorer cable boxes. It turns a local media library into a fullscreen-first virtual cable system with live-seeking channels, a retro guide, and broadcast-style on-screen overlays. ## Features @@ -10,6 +10,8 @@ FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that i - 5-row Passport-style guide with a 90-minute timeline - Background decoder thread with a bounded frame queue - Automatic channel discovery from `./media` +- Randomized per-channel schedules on each launch +- Fullscreen channel banner, theme picker, and about panel ## Layout @@ -21,17 +23,23 @@ FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that i - `Up` / `Down` - surf channels - `Tab` - toggle guide +- `Enter` - tune selected channel from the guide +- `Left` / `Right` - browse guide time +- `0-9` - direct channel number entry - `i` - show current channel info +- `a` - toggle about panel +- `b` - toggle theme picker +- `f` - toggle fullscreen - `Esc` - exit guide or quit the app ## Build -Install development packages for SDL2, SDL2_ttf, and FFmpeg headers before building. +Install development packages for SDL2, SDL2_ttf, SDL2_image, and FFmpeg headers before building. Typical Debian or Ubuntu packages: ```bash -sudo apt install build-essential libsdl2-dev libsdl2-ttf-dev libavformat-dev libavcodec-dev libswscale-dev libswresample-dev libavutil-dev +sudo apt install build-essential libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libavformat-dev libavcodec-dev libswscale-dev libswresample-dev libavutil-dev ``` Then build and run: @@ -43,30 +51,30 @@ make ## AppImage Build -To create a portable AppImage that can run on any Linux distribution: +To create a portable AppImage with the included packaging script: ```bash make appimage ``` -This creates a self-contained executable that includes all dependencies. The script automatically detects your architecture and produces the appropriate AppImage: +The AppImages for `0.1` are built on Debian 13 using `linuxdeploy` and the repository's included scripts. The build automatically detects your architecture and produces the appropriate AppImage: -- **x86_64**: `Passport-C-Media-Player-0.1-x86_64.AppImage` -- **ARM64/aarch64**: `Passport-C-Media-Player-0.1-aarch64.AppImage` +- **x86_64**: `FreePassport-C-Media-Player-0.1-x86_64.AppImage` +- **ARM64/aarch64**: `FreePassport-C-Media-Player-0.1-aarch64.AppImage` Users can run it directly: ```bash -./Passport-C-Media-Player-0.1-x86_64.AppImage +./FreePassport-C-Media-Player-0.1-x86_64.AppImage # or on ARM devices: -./Passport-C-Media-Player-0.1-aarch64.AppImage +./FreePassport-C-Media-Player-0.1-aarch64.AppImage ``` For a fully portable setup, create a `media/` directory in the same folder as the AppImage and add your channel videos there. The AppImage will automatically detect and load channels from this directory. ## Media -The player scans `./media` for channel directories. Each subdirectory is treated as one channel, and the supported video files inside it are played in alphabetical order as that channel's schedule. +The player scans `./media` for channel directories. Each subdirectory is treated as one channel, and the supported video files inside it are shuffled into a randomized schedule for that channel on each launch. Optional metadata can be provided with `description.txt` inside each channel directory: