From 191caca51831c1707f709033bb1d19f5b441c1f3 Mon Sep 17 00:00:00 2001 From: awiouy Date: Sun, 11 Feb 2018 16:13:42 +0100 Subject: [PATCH] core API: move Bitrate and PlayerConfig from core to playback --- core/src/config.rs | 42 ----------------------------------------- examples/play.rs | 2 +- playback/src/config.rs | 43 ++++++++++++++++++++++++++++++++++++++++++ playback/src/lib.rs | 1 + playback/src/player.rs | 2 +- src/main.rs | 3 ++- 6 files changed, 48 insertions(+), 45 deletions(-) create mode 100644 playback/src/config.rs diff --git a/core/src/config.rs b/core/src/config.rs index 297c04f4..7d3a5aea 100644 --- a/core/src/config.rs +++ b/core/src/config.rs @@ -20,31 +20,6 @@ impl Default for SessionConfig { } } -#[derive(Clone, Copy, Debug, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub enum Bitrate { - Bitrate96, - Bitrate160, - Bitrate320, -} - -impl FromStr for Bitrate { - type Err = (); - fn from_str(s: &str) -> Result { - match s { - "96" => Ok(Bitrate::Bitrate96), - "160" => Ok(Bitrate::Bitrate160), - "320" => Ok(Bitrate::Bitrate320), - _ => Err(()), - } - } -} - -impl Default for Bitrate { - fn default() -> Bitrate { - Bitrate::Bitrate160 - } -} - #[derive(Clone, Copy, Debug, Hash, PartialOrd, Ord, PartialEq, Eq)] pub enum DeviceType { Unknown = 0, @@ -99,23 +74,6 @@ impl Default for DeviceType { } } -#[derive(Clone, Debug)] -pub struct PlayerConfig { - pub bitrate: Bitrate, - pub onstart: Option, - pub onstop: Option, -} - -impl Default for PlayerConfig { - fn default() -> PlayerConfig { - PlayerConfig { - bitrate: Bitrate::default(), - onstart: None, - onstop: None, - } - } -} - #[derive(Clone, Debug)] pub struct ConnectConfig { pub name: String, diff --git a/examples/play.rs b/examples/play.rs index d6092732..8c88ddbe 100644 --- a/examples/play.rs +++ b/examples/play.rs @@ -5,7 +5,7 @@ use std::env; use tokio_core::reactor::Core; use librespot::core::authentication::Credentials; -use librespot::core::config::{PlayerConfig, SessionConfig}; +use librespot::playback::config::{PlayerConfig, SessionConfig}; use librespot::core::session::Session; use librespot::core::util::SpotifyId; diff --git a/playback/src/config.rs b/playback/src/config.rs new file mode 100644 index 00000000..d44e937a --- /dev/null +++ b/playback/src/config.rs @@ -0,0 +1,43 @@ +use std::str::FromStr; + +#[derive(Clone, Copy, Debug, Hash, PartialOrd, Ord, PartialEq, Eq)] +pub enum Bitrate { + Bitrate96, + Bitrate160, + Bitrate320, +} + +impl FromStr for Bitrate { + type Err = (); + fn from_str(s: &str) -> Result { + match s { + "96" => Ok(Bitrate::Bitrate96), + "160" => Ok(Bitrate::Bitrate160), + "320" => Ok(Bitrate::Bitrate320), + _ => Err(()), + } + } +} + +impl Default for Bitrate { + fn default() -> Bitrate { + Bitrate::Bitrate160 + } +} + +#[derive(Clone, Debug)] +pub struct PlayerConfig { + pub bitrate: Bitrate, + pub onstart: Option, + pub onstop: Option, +} + +impl Default for PlayerConfig { + fn default() -> PlayerConfig { + PlayerConfig { + bitrate: Bitrate::default(), + onstart: None, + onstop: None, + } + } +} diff --git a/playback/src/lib.rs b/playback/src/lib.rs index 2633343b..014c7814 100644 --- a/playback/src/lib.rs +++ b/playback/src/lib.rs @@ -22,5 +22,6 @@ extern crate librespot_core as core; extern crate librespot_metadata as metadata; pub mod audio_backend; +pub mod config; pub mod mixer; pub mod player; diff --git a/playback/src/player.rs b/playback/src/player.rs index f0ee5d22..48f7f307 100644 --- a/playback/src/player.rs +++ b/playback/src/player.rs @@ -9,7 +9,7 @@ use std::sync::mpsc::{RecvError, TryRecvError, RecvTimeoutError}; use std::thread; use std::time::Duration; -use core::config::{Bitrate, PlayerConfig}; +use config::{Bitrate, PlayerConfig}; use core::session::Session; use core::util::SpotifyId; diff --git a/src/main.rs b/src/main.rs index 2ecfb57c..18f47a41 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,11 +20,12 @@ use std::mem; use librespot::core::authentication::{get_credentials, Credentials}; use librespot::core::cache::Cache; -use librespot::core::config::{Bitrate, DeviceType, PlayerConfig, SessionConfig, ConnectConfig}; +use librespot::core::config::{DeviceType, SessionConfig, ConnectConfig}; use librespot::core::session::Session; use librespot::core::version; use librespot::playback::audio_backend::{self, Sink, BACKENDS}; +use librespot::playback::config::{Bitrate, PlayerConfig}; use librespot::discovery::discovery::{discovery, DiscoveryStream}; use librespot::playback::mixer::{self, Mixer}; use librespot::playback::player::Player;