1
0
Fork 0
mirror of https://github.com/librespot-org/librespot.git synced 2025-10-03 17:59:24 +02:00

Use PacketType instead of hex identifiers

This commit is contained in:
Roderick van Domburg 2021-06-22 23:57:38 +02:00
parent 4fe1183a80
commit 0703630041
No known key found for this signature in database
GPG key ID: 7076AA781B43EFE6
12 changed files with 160 additions and 42 deletions

View file

@ -4,6 +4,7 @@ use std::collections::HashMap;
use std::io::Write;
use tokio::sync::oneshot;
use crate::packet::PacketType;
use crate::spotify_id::{FileId, SpotifyId};
use crate::util::SeqGenerator;
@ -21,19 +22,19 @@ component! {
}
impl AudioKeyManager {
pub(crate) fn dispatch(&self, cmd: u8, mut data: Bytes) {
pub(crate) fn dispatch(&self, cmd: PacketType, mut data: Bytes) {
let seq = BigEndian::read_u32(data.split_to(4).as_ref());
let sender = self.lock(|inner| inner.pending.remove(&seq));
if let Some(sender) = sender {
match cmd {
0xd => {
PacketType::AesKey => {
let mut key = [0u8; 16];
key.copy_from_slice(data.as_ref());
let _ = sender.send(Ok(AudioKey(key)));
}
0xe => {
PacketType::AesKeyError => {
warn!(
"error audio key {:x} {:x}",
data.as_ref()[0],
@ -66,6 +67,6 @@ impl AudioKeyManager {
data.write_u32::<BigEndian>(seq).unwrap();
data.write_u16::<BigEndian>(0x0000).unwrap();
self.session().send_packet(0xc, data)
self.session().send_packet(PacketType::RequestKey, data)
}
}