mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
parent
e9b159e9d9
commit
9b4ede086a
2 changed files with 7 additions and 5 deletions
|
@ -399,7 +399,8 @@ impl SpircTask {
|
||||||
Ok(dur) => dur,
|
Ok(dur) => dur,
|
||||||
Err(err) => err.duration(),
|
Err(err) => err.duration(),
|
||||||
};
|
};
|
||||||
((dur.as_secs() + self.session.time_delta()) * 1000 + (dur.subsec_nanos() / 1000_000) as u64) as i64
|
((dur.as_secs() as i64 + self.session.time_delta()) * 1000
|
||||||
|
+ (dur.subsec_nanos() / 1000_000) as i64)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_command(&mut self, cmd: SpircCommand) {
|
fn handle_command(&mut self, cmd: SpircCommand) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ use mercury::MercuryManager;
|
||||||
|
|
||||||
struct SessionData {
|
struct SessionData {
|
||||||
country: String,
|
country: String,
|
||||||
time_delta: u64,
|
time_delta: i64,
|
||||||
canonical_username: String,
|
canonical_username: String,
|
||||||
invalid: bool,
|
invalid: bool,
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ impl Session {
|
||||||
self.0.mercury.get(|| MercuryManager::new(self.weak()))
|
self.0.mercury.get(|| MercuryManager::new(self.weak()))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn time_delta(&self) -> u64 {
|
pub fn time_delta(&self) -> i64 {
|
||||||
self.0.data.read().unwrap().time_delta
|
self.0.data.read().unwrap().time_delta
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,11 +176,12 @@ impl Session {
|
||||||
fn dispatch(&self, cmd: u8, data: Bytes) {
|
fn dispatch(&self, cmd: u8, data: Bytes) {
|
||||||
match cmd {
|
match cmd {
|
||||||
0x4 => {
|
0x4 => {
|
||||||
let server_timestamp = BigEndian::read_u32(data.as_ref()) as u64;
|
let server_timestamp = BigEndian::read_u32(data.as_ref()) as i64;
|
||||||
let timestamp = match SystemTime::now().duration_since(UNIX_EPOCH) {
|
let timestamp = match SystemTime::now().duration_since(UNIX_EPOCH) {
|
||||||
Ok(dur) => dur,
|
Ok(dur) => dur,
|
||||||
Err(err) => err.duration(),
|
Err(err) => err.duration(),
|
||||||
}.as_secs() as u64;
|
}
|
||||||
|
.as_secs() as i64;
|
||||||
|
|
||||||
self.0.data.write().unwrap().time_delta = server_timestamp - timestamp;
|
self.0.data.write().unwrap().time_delta = server_timestamp - timestamp;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue