refactor(DiscoveryMountain): split monolithic main.c into modular files

- Extracted app_context (global AppCtx G definition)
- storage: path helpers, LRU, sort, fmt_time, per-episode resume map, state persistence
- network: resolve_host, normalize URL, http_get_raw with growing PSRAM buffer, fetch_data
- download: dl_ep_raw with progress tracking, cancel, overlay UI (show/hide/update)
- player: audio device, stream, play_task with resume seek, start/select/next/prev with position save/restore
- ui: build_ui, timers, season picker, button callbacks, periodic save
- main: minimal glue, fetch_task, onShow/onHide, app registration
- Preserves all previous fixes: download progress overlay, per-episode resume, robust download handling
- Build verified: 111 undef, all exported
This commit is contained in:
Adolfo
2026-07-22 17:11:59 -04:00
parent 6bfe514ff1
commit be9229b80d
13 changed files with 1662 additions and 1519 deletions
@@ -0,0 +1,25 @@
#pragma once
#include "app_context.h"
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
bool find_audio_device(void);
void close_stream(void);
bool open_stream(uint32_t sr, uint8_t ch);
void wait_play_exit(void);
void stop_playback_sync(void);
void play_task(void* arg);
void start_idx_internal(int idx);
void start_idx(int idx);
void select_ep(int idx);
void go_next(void);
void go_prev(void);
#ifdef __cplusplus
}
#endif