diff options
| author | Eskil Queseth <eskilq@kth.se> | 2020-11-16 02:13:25 +0100 |
|---|---|---|
| committer | Eskil Queseth <eskilq@kth.se> | 2020-11-16 02:13:25 +0100 |
| commit | 1bf223de5aca7d39347efa468558e14c02fe8d6a (patch) | |
| tree | ad9ace68dc41ad87cccab5b1a93ec9f0e55aa681 | |
| parent | c3fabb1f9224cdf8fd68ad186baeffc93c96ce5c (diff) | |
| download | mum-1bf223de5aca7d39347efa468558e14c02fe8d6a.tar.gz | |
add sound for muting and unmuting self
| -rw-r--r-- | mumd/src/audio.rs | 8 | ||||
| -rw-r--r-- | mumd/src/state.rs | 10 | ||||
| -rw-r--r-- | resources/deafen.wav | bin | 0 -> 32002 bytes | |||
| -rw-r--r-- | resources/mute.wav | bin | 0 -> 32002 bytes | |||
| -rw-r--r-- | resources/undeafen.wav | bin | 0 -> 32002 bytes | |||
| -rw-r--r-- | resources/unmute.wav | bin | 0 -> 32002 bytes |
6 files changed, 16 insertions, 2 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index d1ef106..7f6dd51 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -21,6 +21,10 @@ pub const EVENT_SOUNDS: &[(&str, NotificationEvents)] = &[ ("resources/channel_leave.wav", NotificationEvents::UserDisconnected), ("resources/channel_join.wav", NotificationEvents::UserJoinedChannel), ("resources/channel_leave.wav", NotificationEvents::UserLeftChannel), + ("resources/mute.wav", NotificationEvents::Mute), + ("resources/unmute.wav", NotificationEvents::Unmute), + ("resources/deafen.wav", NotificationEvents::Deafen), + ("resources/undeafen.wav", NotificationEvents::Undeafen), ]; const SAMPLE_RATE: u32 = 48000; @@ -33,6 +37,10 @@ pub enum NotificationEvents { UserDisconnected, UserJoinedChannel, UserLeftChannel, + Mute, + Unmute, + Deafen, + Undeafen, } pub struct Audio { diff --git a/mumd/src/state.rs b/mumd/src/state.rs index 69bf4df..d719851 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -238,7 +238,7 @@ impl State { return now!(Err(Error::DisconnectedError)); } - let server = self.server_mut().unwrap(); + let server = self.server().unwrap(); let action = match (toggle, server.muted(), server.deafened()) { (Some(false), false, false) => None, (Some(false), false, true) => Some((false, false)), @@ -258,12 +258,15 @@ impl State { let mut msg = msgs::UserState::new(); if server.muted() != mute { msg.set_self_mute(mute); + self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); } else if !mute && !deafen && server.deafened() { msg.set_self_mute(false); } if server.deafened() != deafen { msg.set_self_deaf(deafen); + self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); } + let server = self.server_mut().unwrap(); server.set_muted(mute); server.set_deafened(deafen); self.packet_sender.send(msg.into()).unwrap(); @@ -276,7 +279,7 @@ impl State { return now!(Err(Error::DisconnectedError)); } - let server = self.server_mut().unwrap(); + let server = self.server().unwrap(); let action = match (toggle, server.muted(), server.deafened()) { (Some(false), false, false) => None, (Some(false), false, true) => Some((false, false)), @@ -296,12 +299,15 @@ impl State { let mut msg = msgs::UserState::new(); if server.muted() != mute { msg.set_self_mute(mute); + self.audio.play_effect(if mute { NotificationEvents::Mute } else { NotificationEvents::Unmute }); } else if !mute && !deafen && server.deafened() { msg.set_self_mute(false); } if server.deafened() != deafen { msg.set_self_deaf(deafen); + self.audio.play_effect(if deafen { NotificationEvents::Deafen } else { NotificationEvents::Undeafen }); } + let server = self.server_mut().unwrap(); server.set_muted(mute); server.set_deafened(deafen); self.packet_sender.send(msg.into()).unwrap(); diff --git a/resources/deafen.wav b/resources/deafen.wav Binary files differnew file mode 100644 index 0000000..82ee4d4 --- /dev/null +++ b/resources/deafen.wav diff --git a/resources/mute.wav b/resources/mute.wav Binary files differnew file mode 100644 index 0000000..82ee4d4 --- /dev/null +++ b/resources/mute.wav diff --git a/resources/undeafen.wav b/resources/undeafen.wav Binary files differnew file mode 100644 index 0000000..82ee4d4 --- /dev/null +++ b/resources/undeafen.wav diff --git a/resources/unmute.wav b/resources/unmute.wav Binary files differnew file mode 100644 index 0000000..82ee4d4 --- /dev/null +++ b/resources/unmute.wav |
