A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 53 lines 1.2 kB view raw
1use async_graphql::*; 2use rockbox_sys as rb; 3use serde::{Deserialize, Serialize}; 4 5#[derive(Default, Clone, Serialize, Deserialize)] 6pub struct CompressorSettings { 7 pub threshold: i32, 8 pub makeup_gain: i32, 9 pub ratio: i32, 10 pub knee: i32, 11 pub release_time: i32, 12 pub attack_time: i32, 13} 14 15#[Object] 16impl CompressorSettings { 17 async fn threshold(&self) -> i32 { 18 self.threshold 19 } 20 21 async fn makeup_gain(&self) -> i32 { 22 self.makeup_gain 23 } 24 25 async fn ratio(&self) -> i32 { 26 self.ratio 27 } 28 29 async fn knee(&self) -> i32 { 30 self.knee 31 } 32 33 async fn release_time(&self) -> i32 { 34 self.release_time 35 } 36 37 async fn attack_time(&self) -> i32 { 38 self.attack_time 39 } 40} 41 42impl From<rb::types::user_settings::CompressorSettings> for CompressorSettings { 43 fn from(settings: rb::types::user_settings::CompressorSettings) -> Self { 44 Self { 45 threshold: settings.threshold, 46 makeup_gain: settings.makeup_gain, 47 ratio: settings.ratio, 48 knee: settings.knee, 49 release_time: settings.release_time, 50 attack_time: settings.attack_time, 51 } 52 } 53}