mirror of
https://github.com/librespot-org/librespot.git
synced 2025-10-03 01:39:28 +02:00
Use PacketType
instead of hex identifiers
This commit is contained in:
parent
4fe1183a80
commit
0703630041
12 changed files with 160 additions and 42 deletions
|
@ -11,6 +11,7 @@ use futures_util::FutureExt;
|
|||
use protobuf::Message;
|
||||
use tokio::sync::{mpsc, oneshot};
|
||||
|
||||
use crate::packet::PacketType;
|
||||
use crate::protocol;
|
||||
use crate::util::SeqGenerator;
|
||||
|
||||
|
@ -143,7 +144,7 @@ impl MercuryManager {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn dispatch(&self, cmd: u8, mut data: Bytes) {
|
||||
pub(crate) fn dispatch(&self, cmd: PacketType, mut data: Bytes) {
|
||||
let seq_len = BigEndian::read_u16(data.split_to(2).as_ref()) as usize;
|
||||
let seq = data.split_to(seq_len).as_ref().to_owned();
|
||||
|
||||
|
@ -154,14 +155,17 @@ impl MercuryManager {
|
|||
|
||||
let mut pending = match pending {
|
||||
Some(pending) => pending,
|
||||
None if cmd == 0xb5 => MercuryPending {
|
||||
parts: Vec::new(),
|
||||
partial: None,
|
||||
callback: None,
|
||||
},
|
||||
None => {
|
||||
warn!("Ignore seq {:?} cmd {:x}", seq, cmd);
|
||||
return;
|
||||
if let PacketType::MercuryEvent = cmd {
|
||||
MercuryPending {
|
||||
parts: Vec::new(),
|
||||
partial: None,
|
||||
callback: None,
|
||||
}
|
||||
} else {
|
||||
warn!("Ignore seq {:?} cmd {:x}", seq, cmd as u8);
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -191,7 +195,7 @@ impl MercuryManager {
|
|||
data.split_to(size).as_ref().to_owned()
|
||||
}
|
||||
|
||||
fn complete_request(&self, cmd: u8, mut pending: MercuryPending) {
|
||||
fn complete_request(&self, cmd: PacketType, mut pending: MercuryPending) {
|
||||
let header_data = pending.parts.remove(0);
|
||||
let header = protocol::mercury::Header::parse_from_bytes(&header_data).unwrap();
|
||||
|
||||
|
@ -208,7 +212,7 @@ impl MercuryManager {
|
|||
if let Some(cb) = pending.callback {
|
||||
let _ = cb.send(Err(MercuryError));
|
||||
}
|
||||
} else if cmd == 0xb5 {
|
||||
} else if let PacketType::MercuryEvent = cmd {
|
||||
self.lock(|inner| {
|
||||
let mut found = false;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue