A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
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}