From 48a43f4948edccc96e84e8aaeee808bf77ee84d8 Mon Sep 17 00:00:00 2001 From: Daniel Romero Date: Fri, 3 Feb 2017 10:06:09 +0100 Subject: [PATCH] Move structs which are send across threads to own module --- src/lib.rs | 1 + src/mercury.rs | 8 +------- src/messaging/mod.rs | 22 ++++++++++++++++++++++ src/mixer/mod.rs | 2 +- src/mixer/softmixer.rs | 3 +-- src/session.rs | 4 ++-- src/spirc.rs | 20 ++------------------ 7 files changed, 30 insertions(+), 30 deletions(-) create mode 100644 src/messaging/mod.rs diff --git a/src/lib.rs b/src/lib.rs index bdf86147..aea2411f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -63,6 +63,7 @@ pub mod player; pub mod stream; pub mod version; pub mod mixer; +pub mod messaging; #[cfg(feature = "with-syntex")] include!(concat!(env!("OUT_DIR"), "/lib.rs")); #[cfg(not(feature = "with-syntex"))] include!("lib.in.rs"); diff --git a/src/mercury.rs b/src/mercury.rs index 2b1ee564..3d9add8f 100644 --- a/src/mercury.rs +++ b/src/mercury.rs @@ -7,7 +7,7 @@ use std::mem::replace; use protocol; use session::{Session, PacketHandler}; -use spirc::MercuryResponseSender; +use messaging::{MercuryResponse, MercuryResponseSender}; #[derive(Debug, PartialEq, Eq)] pub enum MercuryMethod { @@ -24,12 +24,6 @@ pub struct MercuryRequest { pub payload: Vec>, } -#[derive(Debug)] -pub struct MercuryResponse { - pub uri: String, - pub payload: Vec>, -} - enum MercuryCallback { Future(eventual::Complete), Subscription(MercuryResponseSender), diff --git a/src/messaging/mod.rs b/src/messaging/mod.rs new file mode 100644 index 00000000..9bf43c92 --- /dev/null +++ b/src/messaging/mod.rs @@ -0,0 +1,22 @@ +pub struct UpdateMessage; + +#[derive(Debug)] +pub struct MercuryResponse { + pub uri: String, + pub payload: Vec>, +} + +pub enum SpircMessage { + MercuryMsg(MercuryResponse), + UpdateMsg(UpdateMessage) +} + +implement_sender!(name => MercuryResponseSender, + wrap => MercuryResponse, + with => SpircMessage, + variant => MercuryMsg); + +implement_sender!(name => UpdateMessageSender, + wrap => UpdateMessage, + with => SpircMessage, + variant => UpdateMsg); \ No newline at end of file diff --git a/src/mixer/mod.rs b/src/mixer/mod.rs index fdadf4fe..6b2a3f8a 100644 --- a/src/mixer/mod.rs +++ b/src/mixer/mod.rs @@ -1,4 +1,4 @@ -use spirc::UpdateMessageSender; +use messaging::UpdateMessageSender; use self::softmixer::SoftMixer; diff --git a/src/mixer/softmixer.rs b/src/mixer/softmixer.rs index 94b03f48..789a5fff 100644 --- a/src/mixer/softmixer.rs +++ b/src/mixer/softmixer.rs @@ -1,8 +1,7 @@ use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; -use spirc::UpdateMessageSender; -use spirc::UpdateMessage; +use messaging::{UpdateMessage, UpdateMessageSender}; use super::Mixer; use super::AudioFilter; diff --git a/src/session.rs b/src/session.rs index 75976ba2..76157a77 100644 --- a/src/session.rs +++ b/src/session.rs @@ -20,11 +20,11 @@ use authentication::Credentials; use cache::Cache; use connection::{self, PlainConnection, CipherConnection}; use diffie_hellman::DHLocalKeys; -use mercury::{MercuryManager, MercuryRequest, MercuryResponse}; +use mercury::{MercuryManager, MercuryRequest}; use metadata::{MetadataManager, MetadataRef, MetadataTrait}; use protocol; use stream::StreamManager; -use spirc::MercuryResponseSender; +use messaging::{MercuryResponse, MercuryResponseSender}; use util::{self, SpotifyId, FileId, ReadSeek}; use version; diff --git a/src/spirc.rs b/src/spirc.rs index 37fbe04f..39b43cff 100644 --- a/src/spirc.rs +++ b/src/spirc.rs @@ -4,7 +4,8 @@ use std::borrow::Cow; use std::sync::{mpsc, Mutex, Arc}; use std::collections::HashMap; -use mercury::{MercuryRequest, MercuryMethod, MercuryResponse}; +use mercury::{MercuryRequest, MercuryMethod}; +use messaging::{SpircMessage, MercuryResponseSender, UpdateMessageSender}; use player::{Player, PlayerState}; use mixer::Mixer; use session::Session; @@ -56,23 +57,6 @@ pub struct State { pub end_of_track: bool, } -pub struct UpdateMessage; - -pub enum SpircMessage { - MercuryMsg(MercuryResponse), - UpdateMsg(UpdateMessage) -} - -implement_sender!(name => MercuryResponseSender, - wrap => MercuryResponse, - with => SpircMessage, - variant => MercuryMsg); - -implement_sender!(name => UpdateMessageSender, - wrap => UpdateMessage, - with => SpircMessage, - variant => UpdateMsg); - impl SpircManager { pub fn new(session: Session, player: Player, mixer: Box) -> SpircManager { let ident = session.device_id().to_owned();