mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Print librespot version on startup.
This commit is contained in:
parent
0770f6ce61
commit
230c891df0
7 changed files with 28 additions and 28 deletions
2
build.rs
2
build.rs
|
@ -21,7 +21,7 @@ fn codegen() {
|
||||||
fn codegen() { }
|
fn codegen() { }
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
vergen::vergen(vergen::SHORT_SHA).unwrap();
|
vergen::vergen(vergen::OutputFns::all()).unwrap();
|
||||||
codegen();
|
codegen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#[macro_use] pub mod util;
|
#[macro_use] pub mod util;
|
||||||
mod album_cover;
|
mod album_cover;
|
||||||
|
pub mod apresolve;
|
||||||
mod audio_decrypt;
|
mod audio_decrypt;
|
||||||
mod audio_file;
|
mod audio_file;
|
||||||
mod audio_key;
|
mod audio_key;
|
||||||
|
@ -15,6 +16,5 @@ pub mod session;
|
||||||
pub mod spirc;
|
pub mod spirc;
|
||||||
pub mod link;
|
pub mod link;
|
||||||
pub mod stream;
|
pub mod stream;
|
||||||
pub mod apresolve;
|
|
||||||
|
|
||||||
pub use album_cover::get_album_cover;
|
pub use album_cover::get_album_cover;
|
||||||
|
|
|
@ -39,6 +39,15 @@ extern crate openssl;
|
||||||
|
|
||||||
extern crate librespot_protocol as protocol;
|
extern crate librespot_protocol as protocol;
|
||||||
|
|
||||||
|
// This doesn't play nice with syntex, so place it here
|
||||||
|
pub mod version {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/version.rs"));
|
||||||
|
|
||||||
|
pub fn version_string() -> String {
|
||||||
|
format!("librespot-{}", short_sha())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "with-syntex")]
|
#[cfg(feature = "with-syntex")]
|
||||||
include!(concat!(env!("OUT_DIR"), "/lib.rs"));
|
include!(concat!(env!("OUT_DIR"), "/lib.rs"));
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ use librespot::cache::{Cache, DefaultCache, NoCache};
|
||||||
use librespot::player::Player;
|
use librespot::player::Player;
|
||||||
use librespot::session::{Bitrate, Config, Session};
|
use librespot::session::{Bitrate, Config, Session};
|
||||||
use librespot::spirc::SpircManager;
|
use librespot::spirc::SpircManager;
|
||||||
use librespot::util::version::version_string;
|
use librespot::version;
|
||||||
|
|
||||||
static PASSWORD_ENV_NAME: &'static str = "SPOTIFY_PASSWORD";
|
static PASSWORD_ENV_NAME: &'static str = "SPOTIFY_PASSWORD";
|
||||||
|
|
||||||
|
@ -30,6 +30,11 @@ static APPKEY: Option<&'static [u8]> = Some(include_bytes!(concat!(env!("CARGO_M
|
||||||
static APPKEY: Option<&'static [u8]> = None;
|
static APPKEY: Option<&'static [u8]> = None;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
println!("librespot {} ({}). Built on {}.",
|
||||||
|
version::short_sha(),
|
||||||
|
version::commit_date(),
|
||||||
|
version::short_now());
|
||||||
|
|
||||||
let args: Vec<String> = std::env::args().collect();
|
let args: Vec<String> = std::env::args().collect();
|
||||||
let program = args[0].clone();
|
let program = args[0].clone();
|
||||||
|
|
||||||
|
@ -86,7 +91,7 @@ fn main() {
|
||||||
|
|
||||||
let config = Config {
|
let config = Config {
|
||||||
application_key: appkey,
|
application_key: appkey,
|
||||||
user_agent: version_string(),
|
user_agent: version::version_string(),
|
||||||
device_name: name,
|
device_name: name,
|
||||||
bitrate: bitrate,
|
bitrate: bitrate,
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,6 +25,7 @@ use metadata::{MetadataManager, MetadataRef, MetadataTrait};
|
||||||
use protocol;
|
use protocol;
|
||||||
use stream::{ChannelId, StreamManager, StreamEvent, StreamError};
|
use stream::{ChannelId, StreamManager, StreamEvent, StreamError};
|
||||||
use util::{self, SpotifyId, FileId, ReadSeek};
|
use util::{self, SpotifyId, FileId, ReadSeek};
|
||||||
|
use version;
|
||||||
|
|
||||||
pub enum Bitrate {
|
pub enum Bitrate {
|
||||||
Bitrate96,
|
Bitrate96,
|
||||||
|
@ -192,7 +193,7 @@ impl Session {
|
||||||
system_information_string: "librespot".to_owned(),
|
system_information_string: "librespot".to_owned(),
|
||||||
device_id: self.device_id().to_owned(),
|
device_id: self.device_id().to_owned(),
|
||||||
},
|
},
|
||||||
version_string: util::version::version_string(),
|
version_string: version::version_string(),
|
||||||
appkey => {
|
appkey => {
|
||||||
version: self.config().application_key[0] as u32,
|
version: self.config().application_key[0] as u32,
|
||||||
devkey: self.config().application_key[0x1..0x81].to_vec(),
|
devkey: self.config().application_key[0x1..0x81].to_vec(),
|
||||||
|
|
17
src/spirc.rs
17
src/spirc.rs
|
@ -1,17 +1,16 @@
|
||||||
use eventual::Async;
|
use eventual::Async;
|
||||||
use protobuf::{self, Message, RepeatedField};
|
use protobuf::{self, Message, RepeatedField};
|
||||||
|
|
||||||
use util;
|
|
||||||
use session::Session;
|
|
||||||
use util::SpotifyId;
|
|
||||||
use util::version::version_string;
|
|
||||||
use mercury::{MercuryRequest, MercuryMethod};
|
|
||||||
use player::{Player, PlayerState};
|
|
||||||
|
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::sync::{Mutex, Arc};
|
use std::sync::{Mutex, Arc};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use mercury::{MercuryRequest, MercuryMethod};
|
||||||
|
use player::{Player, PlayerState};
|
||||||
|
use session::Session;
|
||||||
|
use util;
|
||||||
|
use util::SpotifyId;
|
||||||
|
use version;
|
||||||
|
|
||||||
use protocol;
|
use protocol;
|
||||||
pub use protocol::spirc::{PlayStatus, MessageType};
|
pub use protocol::spirc::{PlayStatus, MessageType};
|
||||||
|
|
||||||
|
@ -323,7 +322,7 @@ impl SpircInternal {
|
||||||
|
|
||||||
fn device_state(&self, player_state: &PlayerState) -> protocol::spirc::DeviceState {
|
fn device_state(&self, player_state: &PlayerState) -> protocol::spirc::DeviceState {
|
||||||
protobuf_init!(protocol::spirc::DeviceState::new(), {
|
protobuf_init!(protocol::spirc::DeviceState::new(), {
|
||||||
sw_version: version_string(),
|
sw_version: version::version_string(),
|
||||||
is_active: self.is_active,
|
is_active: self.is_active,
|
||||||
can_play: self.can_play,
|
can_play: self.can_play,
|
||||||
volume: player_state.volume() as u32,
|
volume: player_state.volume() as u32,
|
||||||
|
|
|
@ -39,20 +39,6 @@ pub fn rand_vec<G: Rng, R: Rand>(rng: &mut G, size: usize) -> Vec<R> {
|
||||||
rng.gen_iter().take(size).collect()
|
rng.gen_iter().take(size).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub mod version {
|
|
||||||
// FIXME: Unfortunately, this doesn't work when using syntex
|
|
||||||
// And for some reason, cfg-gating it doesn't work
|
|
||||||
//include!(concat!(env!("OUT_DIR"), "/version.rs"));
|
|
||||||
pub fn short_sha() -> String {
|
|
||||||
"unknown".to_owned()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn version_string() -> String {
|
|
||||||
format!("librespot-{}", short_sha())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn hexdump(data: &[u8]) {
|
pub fn hexdump(data: &[u8]) {
|
||||||
for b in data.iter() {
|
for b in data.iter() {
|
||||||
eprint!("{:02X} ", b);
|
eprint!("{:02X} ", b);
|
||||||
|
|
Loading…
Reference in a new issue