diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-05 12:47:04 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-05 12:47:43 +0100 |
| commit | 55644de7b35421997198c9dec4a8bba5dfb8dd8d (patch) | |
| tree | ef2886fb37bfe10a44b716c328eb620c27a58ca9 /mumd/src/state.rs | |
| parent | ba4aa72654f2d57d59f6e25151315213bec21192 (diff) | |
| download | mum-55644de7b35421997198c9dec4a8bba5dfb8dd8d.tar.gz | |
add voice stream type
Diffstat (limited to 'mumd/src/state.rs')
| -rw-r--r-- | mumd/src/state.rs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/mumd/src/state.rs b/mumd/src/state.rs index 84247bc..4e8a886 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -3,11 +3,11 @@ pub mod server; pub mod user; use crate::audio::{Audio, NotificationEvents}; -use crate::network::ConnectionInfo; +use crate::network::{ConnectionInfo, VoiceStreamType}; +use crate::network::tcp::{TcpEvent, TcpEventData}; use crate::notify; use crate::state::server::Server; -use crate::network::tcp::{TcpEvent, TcpEventData}; use log::*; use mumble_protocol::control::msgs; use mumble_protocol::control::ControlPacket; @@ -45,11 +45,11 @@ pub enum ExecutionContext { ), } -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum StatePhase { Disconnected, Connecting, - Connected, + Connected(VoiceStreamType), } pub struct State { @@ -85,7 +85,7 @@ impl State { ) -> ExecutionContext { match command { Command::ChannelJoin { channel_identifier } => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } @@ -135,7 +135,7 @@ impl State { now!(Ok(None)) } Command::ChannelList => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } let list = channel::into_channel( @@ -149,7 +149,7 @@ impl State { now!(Ok(None)) } Command::DeafenSelf(toggle) => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } @@ -207,7 +207,7 @@ impl State { now!(Ok(None)) } Command::MuteOther(string, toggle) => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } @@ -242,7 +242,7 @@ impl State { return now!(Ok(None)); } Command::MuteSelf(toggle) => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } @@ -354,7 +354,7 @@ impl State { }) } Command::ServerDisconnect => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } @@ -388,7 +388,7 @@ impl State { }), ), Command::Status => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } let state = self.server.as_ref().unwrap().into(); @@ -397,7 +397,7 @@ impl State { }))) } Command::UserVolumeSet(string, volume) => { - if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected) { + if !matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { return now!(Err(Error::DisconnectedError)); } let user_id = match self @@ -448,7 +448,7 @@ impl State { self.audio_mut().add_client(session); // send notification only if we've passed the connecting phase - if *self.phase_receiver().borrow() == StatePhase::Connected { + if matches!(*self.phase_receiver().borrow(), StatePhase::Connected(_)) { let channel_id = msg.get_channel_id(); if channel_id @@ -581,7 +581,7 @@ impl State { pub fn initialized(&self) { self.phase_watcher .0 - .send(StatePhase::Connected) + .send(StatePhase::Connected(VoiceStreamType::UDP)) .unwrap(); self.audio.play_effect(NotificationEvents::ServerConnect); } |
