mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-04-28 14:31:23 +00:00
60 lines
1.2 KiB
Rust
60 lines
1.2 KiB
Rust
use crate::types::audio_player::{PlayerState, TrackInfo};
|
|
|
|
use egui::Id;
|
|
|
|
use std::{
|
|
collections::{HashMap, HashSet},
|
|
path::PathBuf,
|
|
time::Instant,
|
|
};
|
|
|
|
#[derive(Default, Debug)]
|
|
pub struct TrackUiState {
|
|
pub position_slider_value: f32,
|
|
pub volume_slider_value: f32,
|
|
|
|
pub position_dragged: bool,
|
|
pub volume_dragged: bool,
|
|
|
|
pub ignore_position_update_until: Option<Instant>,
|
|
pub ignore_volume_update_until: Option<Instant>,
|
|
}
|
|
|
|
#[derive(Default, Debug)]
|
|
pub struct AppState {
|
|
pub search_query: String,
|
|
|
|
pub track_ui_states: HashMap<u32, TrackUiState>,
|
|
|
|
pub show_settings: bool,
|
|
pub volume_dragged: bool,
|
|
pub force_focus_search: bool,
|
|
|
|
pub volume_slider_value: f32,
|
|
|
|
pub search_field_id: Option<Id>,
|
|
|
|
pub ignore_volume_update_until: Option<Instant>,
|
|
|
|
pub current_dir: Option<PathBuf>,
|
|
pub dirs: Vec<PathBuf>,
|
|
|
|
pub selected_file: Option<PathBuf>,
|
|
pub files: HashSet<PathBuf>,
|
|
}
|
|
|
|
#[derive(Default, Debug, Clone)]
|
|
pub struct AudioPlayerState {
|
|
pub state: PlayerState,
|
|
pub new_state: Option<PlayerState>,
|
|
|
|
pub tracks: Vec<TrackInfo>,
|
|
|
|
pub volume: f32, // Master volume
|
|
|
|
pub current_input: String,
|
|
pub all_inputs: HashMap<String, String>,
|
|
|
|
pub is_daemon_running: bool,
|
|
}
|