Music player in the sound settings: pick any calm track or automatic
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
51b7bb4804
commit
4ef7672008
22 files changed
+108
-4
No files matched your search
+11
-1
@@ -67,12 +67,13 @@ pub enum Item {
|
||||
Events,
|
||||
TouchUi,
|
||||
Voice,
|
||||
Track,
|
||||
}
|
||||
|
||||
fn tab_items(tab: usize) -> &'static [Item] {
|
||||
use Item::*;
|
||||
match tab {
|
||||
0 => &[Language, Volume, MusicVolume, Mute, Voice],
|
||||
0 => &[Language, Volume, MusicVolume, Track, Mute, Voice],
|
||||
1 => &[RotateSpeed, PanSpeed, ZoomSpeed, EdgeScroll, InvertMouse],
|
||||
2 => &[Outlines, WallDetail, Lights, UiScale, RenderScale],
|
||||
3 => &[GameSpeed, Hints, Events, TouchUi],
|
||||
@@ -108,6 +109,7 @@ fn item_label(it: Item) -> String {
|
||||
Item::Events => "set.events",
|
||||
Item::TouchUi => "set.touch_ui",
|
||||
Item::Voice => "set.voice",
|
||||
Item::Track => "set.track",
|
||||
})
|
||||
}
|
||||
|
||||
@@ -126,6 +128,7 @@ fn item_value(it: Item, s: &Settings) -> String {
|
||||
Item::MusicVolume => pct(s.music_volume),
|
||||
Item::Mute => onoff(s.muted),
|
||||
Item::Voice => onoff(s.voice),
|
||||
Item::Track => crate::audio::track_by_id(&s.music_track).map_or_else(|| tr("val.track_auto"), crate::audio::track_title),
|
||||
Item::RotateSpeed => pct(s.rotate_speed),
|
||||
Item::PanSpeed => pct(s.pan_speed),
|
||||
Item::ZoomSpeed => pct(s.zoom_speed),
|
||||
@@ -184,6 +187,13 @@ fn item_change(it: Item, s: &mut Settings, d: i32) {
|
||||
Item::MusicVolume => s.music_volume = step(s.music_volume, d, 0.0, 1.0, 0.1),
|
||||
Item::Mute => s.muted = !s.muted,
|
||||
Item::Voice => s.voice = !s.voice,
|
||||
Item::Track => {
|
||||
// automatic, then every calm track
|
||||
let mut opts: Vec<String> = vec![String::new()];
|
||||
opts.extend(crate::audio::player_tracks().into_iter().map(|t| crate::audio::track_id(t).to_string()));
|
||||
let i = opts.iter().position(|o| *o == s.music_track).unwrap_or(0) as i32;
|
||||
s.music_track = opts[(i + d).rem_euclid(opts.len() as i32) as usize].clone();
|
||||
}
|
||||
Item::RotateSpeed => s.rotate_speed = step(s.rotate_speed, d, 0.25, 2.5, 0.25),
|
||||
Item::PanSpeed => s.pan_speed = step(s.pan_speed, d, 0.25, 2.5, 0.25),
|
||||
Item::ZoomSpeed => s.zoom_speed = step(s.zoom_speed, d, 0.25, 2.5, 0.25),
|
||||
|
||||
Reference in new issue
Block a user