Replaces the static ALL_CHANNELS array with a dynamic, thread-safe registry fetched via the Radio Paradise API. Migrates all channel identifiers from u8 to u16 across client, config, server, and example modules to support expanded ID ranges. Updates validation to runtime lookups, converts builders to async, and adds local cover caching. Bumps version from 0.3.61 to 0.3.62.
Changes:
1. Removed dead code from paradise/worker.rs:
- Unused process_song() method
- Unused DecodedBlock struct
- Unused helper functions: song_duration_ms, ms_to_frames, decode_block_audio
2. Simplified pmoserver_ext.rs (840 → 383 lines):
- Removed complex orchestration endpoints (status, playlist, history, streaming)
- Kept only simple API access endpoints:
* /now-playing
* /block/current
* /block/{event_id}
* /channels
- Removed dependencies on RadioParadiseSource and ParadiseChannel
3. Created channels.rs:
- Extracted channel definitions from paradise/channel.rs
- Pure data module with no orchestration logic
- Contains: ParadiseChannelKind, ChannelDescriptor, ALL_CHANNELS
Note: This is work in progress. Still need to update lib.rs and remove
unused modules once dependencies are fully resolved.