Commit Graph
9 Commits
Author SHA1 Message Date
GarandPLG f5ef4b4931 Privatize internal modules and adjust re‑exports 2026-04-16 22:22:32 +02:00
GarandPLG 6e6181887c Consolidate event handling into events.rs
The event loop function is now defined in `events.rs`, the redundant
`handle_events.rs` file is removed, and the module re‑exports are
updated
to expose `handle_events` from `events`.
2026-04-09 10:07:24 +02:00
GarandPLG 1be72a4596 Rename soundtrack folder to soundtracks and fix path
Remove obsolete test2.ogg file.
2026-04-09 02:02:08 +02:00
GarandPLG 633494ed46 Add selectable soundtracks via CLI
Introduce a `Soundtrack` enum with Clap `ValueEnum` support and expose
it in the CLI as a `--sound-track` option. Extend `AudioCmd` with a
`ChangeSoundtrack` variant and refactor audio handling to load and cache
soundtracks per‑track using a thread‑safe `RwLock`. Update the
`handle_audio` function signature to accept the selected soundtrack,
adjust re‑exports, and modify `main` to pass the chosen soundtrack to
the audio thread. Also reposition the logging flag in the CLI
definition.
2026-04-09 02:00:24 +02:00
GarandPLG 7ec3eec6e3 Preload audio using once_cell and correct typo
Add once_cell 1.21.4 and a Lazy‑initialized HashMap to store OGG bytes.

Replace file reads with in‑memory Cursor decoding, fix the
SoundrackParts enum typo, and derive Hash traits for it.
2026-04-09 01:37:57 +02:00
GarandPLG 3e932e5638 Add ChangePart command and buffered audio sink
Introduce a `ChangePart` variant to `AudioCmd` and a `current_part`
state in
`handle_audio`.  The audio sink is now created via
`DeviceSinkBuilder::from_default_device` with a fixed buffer size.
`load_audio`
now accepts a reference to `SoundrackParts`, and the player
automatically
queues the correct part when the queue becomes empty.
2026-04-09 01:08:50 +02:00
GarandPLG 8e01c8c33a Add audio subsystem with mute and volume controls
Update flake.lock dependencies to latest revisions
2026-04-07 01:05:33 +02:00
GarandPLG 0f37989f55 Rename input event handler to handle_events
Rename the input event handler module and function.
Update imports, re‑exports, and main.rs to use handle_events.
Add a brief doc comment for the new function.
2026-04-06 12:20:19 +02:00
GarandPLG 30f2e17ed7 Add audio deps; extract input handling to threads
Add ALSA and Rodio crates to Cargo.toml and lockfile to enable audio
playback.
Update Nix expressions to include `alsa-lib` as a build input.
Refactor input event handling into a new `app::threads` module:
 - Define `AppEvent` enum and `handle_input_events` function there.
 - Adjust imports in `app/app.rs` and `main.rs` accordingly.
   Remove the now‑unused `handle_input_events` and `AppEvent`
   definitions from
   `app/app.rs`.
2026-04-06 11:47:46 +02:00