diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-21 16:20:07 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-21 16:20:07 +0100 |
| commit | b733e5b20985499314d4a956645fb4ec8c4c45cf (patch) | |
| tree | 6ccc7ce5edfa57dee8749aa477de868ac3028106 | |
| parent | a5448f67ca40a1619e7ef792dfbb5a440c3020e0 (diff) | |
| parent | 06a8c9024787cc13acfb4ae2b0666d3adaf87274 (diff) | |
| download | mum-b733e5b20985499314d4a956645fb4ec8c4c45cf.tar.gz | |
Merge branch 'mute-deafen-toggle-print' into main
| -rw-r--r-- | mumctl/src/main.rs | 20 | ||||
| -rw-r--r-- | mumd/src/state.rs | 9 | ||||
| -rw-r--r-- | mumlib/src/command.rs | 6 |
3 files changed, 31 insertions, 4 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs index 9b5a018..3bdaab3 100644 --- a/mumctl/src/main.rs +++ b/mumctl/src/main.rs @@ -289,7 +289,15 @@ fn main() { } else { unreachable!() }); - err_print!(send_command(command)); + match send_command(command) { + Ok(Some(CommandResponse::MuteStatus { is_muted })) => println!("{}", if is_muted { + "Muted" + } else { + "Unmuted" + }), + Ok(_) => {}, + Err(e) => println!("{} {}", "error".red(), e), + } } else if let Some(matches) = matches.subcommand_matches("deafen") { let command = Command::DeafenSelf(if let Some(_matches) = matches.subcommand_matches("true") { @@ -301,7 +309,15 @@ fn main() { } else { unreachable!() }); - err_print!(send_command(command)); + match send_command(command) { + Ok(Some(CommandResponse::DeafenStatus { is_deafened })) => println!("{}", if is_deafened { + "Deafened" + } else { + "Undeafened" + }), + Ok(_) => {}, + Err(e) => println!("{} {}", "error".red(), e), + } } else if let Some(matches) = matches.subcommand_matches("user") { let name = matches.value_of("user").unwrap(); if let Some(matches) = matches.subcommand_matches("mute") { diff --git a/mumd/src/state.rs b/mumd/src/state.rs index 91cf734..36d3ee9 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -254,6 +254,7 @@ impl State { (None, true, true) => Some((true, false)), }; + let mut new_deaf = None; if let Some((mute, deafen)) = action { if server.deafened() != deafen { self.audio.play_effect(if deafen { @@ -276,6 +277,7 @@ impl State { } if server.deafened() != deafen { msg.set_self_deaf(deafen); + new_deaf = Some(deafen); } let server = self.server_mut().unwrap(); server.set_muted(mute); @@ -283,7 +285,7 @@ impl State { self.packet_sender.send(msg.into()).unwrap(); } - now!(Ok(None)) + now!(Ok(new_deaf.map(|b| CommandResponse::DeafenStatus { is_deafened: b }))) } Command::MuteSelf(toggle) => { if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { @@ -306,6 +308,7 @@ impl State { (None, true, true) => Some((false, false)), }; + let mut new_mute = None; if let Some((mute, deafen)) = action { if server.deafened() != deafen { self.audio.play_effect(if deafen { @@ -323,8 +326,10 @@ impl State { let mut msg = msgs::UserState::new(); if server.muted() != mute { msg.set_self_mute(mute); + new_mute = Some(mute) } else if !mute && !deafen && server.deafened() { msg.set_self_mute(false); + new_mute = Some(false) } if server.deafened() != deafen { msg.set_self_deaf(deafen); @@ -335,7 +340,7 @@ impl State { self.packet_sender.send(msg.into()).unwrap(); } - now!(Ok(None)) + now!(Ok(new_mute.map(|b| CommandResponse::MuteStatus { is_muted: b }))) } Command::MuteOther(string, toggle) => { if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { diff --git a/mumlib/src/command.rs b/mumlib/src/command.rs index 675fb7d..2e824fc 100644 --- a/mumlib/src/command.rs +++ b/mumlib/src/command.rs @@ -46,4 +46,10 @@ pub enum CommandResponse { max_users: u32, bandwidth: u32, }, + MuteStatus { + is_muted: bool, + }, + DeafenStatus { + is_deafened: bool, + }, } |
