aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/state.rs
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2020-11-02 20:31:50 +0100
committerEskil Queseth <eskilq@kth.se>2020-11-02 20:31:50 +0100
commit46861ce465d6f1d86e80007742a850fd1cfa9bad (patch)
treedd57d0237227a6de2c34512a0aee3b51d48f009e /mumd/src/state.rs
parent8fb4edd72dfcb2b71e91eedc5861360101374967 (diff)
downloadmum-46861ce465d6f1d86e80007742a850fd1cfa9bad.tar.gz
add mumd support for volume adjustment
Diffstat (limited to 'mumd/src/state.rs')
-rw-r--r--mumd/src/state.rs27
1 files changed, 25 insertions, 2 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 81b6c98..2060845 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -209,12 +209,35 @@ impl State {
.unwrap();
now!(Ok(None))
}
+ Command::ConfigReload => {
+ self.reload_config();
+ now!(Ok(None))
+ }
Command::InputVolumeSet(volume) => {
self.audio.set_input_volume(volume);
now!(Ok(None))
}
- Command::ConfigReload => {
- self.reload_config();
+ Command::OutputVolumeSet(volume) => {
+ self.audio.set_output_volume(volume);
+ now!(Ok(None))
+ }
+ Command::UserVolumeSet(string, volume) => {
+ if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) {
+ return now!(Err(Error::DisconnectedError));
+ }
+ let user_id = match self
+ .server()
+ .unwrap()
+ .users()
+ .iter()
+ .find(|e| e.1.name() == &string)
+ .map(|e| *e.0)
+ {
+ None => return now!(Err(Error::InvalidUsernameError(string))),
+ Some(v) => v,
+ };
+
+ self.audio.set_user_volume(user_id, volume);
now!(Ok(None))
}
}