kdeconnect_proto/packet/
system_volume.rs1use serde::{Deserialize, Serialize};
3
4#[cfg(not(feature = "std"))]
5use alloc::{string::String, vec::Vec};
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct SystemVolumeStream {
11 pub name: String,
13
14 pub description: String,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
19 #[serde(default)]
20 pub enabled: Option<bool>,
21
22 pub muted: bool,
24
25 #[serde(skip_serializing_if = "Option::is_none")]
27 #[serde(default)]
28 pub max_volume: Option<u64>,
29
30 pub volume: u64,
32}
33
34#[derive(Serialize, Deserialize, Debug, Clone)]
38#[serde(rename_all = "camelCase")]
39pub struct SystemVolumePacket {
40 #[serde(skip_serializing_if = "Option::is_none")]
42 #[serde(default)]
43 pub sink_list: Option<Vec<SystemVolumeStream>>,
44
45 #[serde(skip_serializing_if = "Option::is_none")]
47 #[serde(default)]
48 pub name: Option<String>,
49
50 #[serde(skip_serializing_if = "Option::is_none")]
52 #[serde(default)]
53 pub enabled: Option<bool>,
54
55 #[serde(skip_serializing_if = "Option::is_none")]
57 #[serde(default)]
58 pub muted: Option<bool>,
59
60 #[serde(skip_serializing_if = "Option::is_none")]
62 #[serde(default)]
63 pub volume: Option<u64>,
64}
65
66#[derive(Serialize, Deserialize, Debug, Clone)]
70#[serde(rename_all = "camelCase")]
71pub struct SystemVolumeRequestPacket {
72 #[serde(skip_serializing_if = "Option::is_none")]
74 #[serde(default)]
75 pub request_sinks: Option<bool>,
76
77 #[serde(skip_serializing_if = "Option::is_none")]
79 #[serde(default)]
80 pub name: Option<String>,
81
82 #[serde(skip_serializing_if = "Option::is_none")]
84 #[serde(default)]
85 pub enabled: Option<bool>,
86
87 #[serde(skip_serializing_if = "Option::is_none")]
89 #[serde(default)]
90 pub muted: Option<bool>,
91
92 #[serde(skip_serializing_if = "Option::is_none")]
94 #[serde(default)]
95 pub volume: Option<u64>,
96}