mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Update dependencies
This commit is contained in:
parent
3c29d744a9
commit
7401fde7fc
6 changed files with 46 additions and 87 deletions
51
Cargo.lock
generated
51
Cargo.lock
generated
|
@ -7,23 +7,23 @@ dependencies = [
|
|||
"dns-sd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"eventual 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"json_macros 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"json_macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"librespot-protocol 0.1.0",
|
||||
"num 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"portaudio 0.1.2 (git+https://github.com/mvdnes/portaudio-rs)",
|
||||
"num 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"portaudio 0.2.0 (git+https://github.com/mvdnes/portaudio-rs)",
|
||||
"protobuf 1.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"protobuf_macros 0.1.1 (git+https://github.com/plietar/rust-protobuf-macros.git)",
|
||||
"rand 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"protobuf_macros 0.1.2 (git+https://github.com/plietar/rust-protobuf-macros.git)",
|
||||
"rand 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rpassword 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rust-crypto 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"shannon 0.1.1 (git+https://github.com/plietar/rust-shannon.git)",
|
||||
"tempfile 1.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tiny_http 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"url 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"vergen 0.0.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"vergen 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -59,6 +59,11 @@ name = "bitflags"
|
|||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "blastfig"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
version = "0.4.2"
|
||||
|
@ -69,7 +74,7 @@ name = "chrono"
|
|||
version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"num 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -169,7 +174,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "json_macros"
|
||||
version = "0.2.6"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -237,10 +242,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "num"
|
||||
version = "0.1.29"
|
||||
version = "0.1.30"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"rand 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -261,8 +266,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "portaudio"
|
||||
version = "0.1.2"
|
||||
source = "git+https://github.com/mvdnes/portaudio-rs#f49d9e1652f88083b9ea0fe021cca6ee3f57fa32"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/mvdnes/portaudio-rs#6a5d4ffaa9a2564d79391b6994ea69358bfe6b22"
|
||||
dependencies = [
|
||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -272,7 +277,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "portaudio_sys"
|
||||
version = "0.1.1"
|
||||
source = "git+https://github.com/mvdnes/portaudio-rs#f49d9e1652f88083b9ea0fe021cca6ee3f57fa32"
|
||||
source = "git+https://github.com/mvdnes/portaudio-rs#6a5d4ffaa9a2564d79391b6994ea69358bfe6b22"
|
||||
dependencies = [
|
||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pkg-config 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -296,12 +301,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "protobuf_macros"
|
||||
version = "0.1.1"
|
||||
source = "git+https://github.com/plietar/rust-protobuf-macros.git#ade4282d3570304e967e5ab7a677d97cfd8586e0"
|
||||
version = "0.1.2"
|
||||
source = "git+https://github.com/plietar/rust-protobuf-macros.git#aede2228ead6aa4da28cbc300440aaecefe0ad86"
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.3.12"
|
||||
version = "0.3.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"advapi32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -327,7 +332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
dependencies = [
|
||||
"gcc 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
@ -365,12 +370,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "1.1.3"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -430,16 +435,16 @@ name = "uuid"
|
|||
version = "0.1.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"rand 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rustc-serialize 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "vergen"
|
||||
version = "0.0.16"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"blastfig 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
|
14
Cargo.toml
14
Cargo.toml
|
@ -20,19 +20,19 @@ bit-set = "~0.2.0"
|
|||
byteorder = "~0.4.2"
|
||||
eventual = "~0.1.5"
|
||||
getopts = "~0.2.14"
|
||||
json_macros = "~0.2.6"
|
||||
json_macros = "~0.3.0"
|
||||
lazy_static = "~0.1.15"
|
||||
num = "~0.1.29"
|
||||
protobuf = "~1.0.10"
|
||||
rand = "~0.3.12"
|
||||
num = "~0.1.30"
|
||||
protobuf = "~1.0.15"
|
||||
rand = "~0.3.13"
|
||||
rpassword = "~0.1.0"
|
||||
rust-crypto = "~0.2.34"
|
||||
rustc-serialize = "~0.3.16"
|
||||
tempfile = "~2.0.0"
|
||||
time = "~0.1.34"
|
||||
tiny_http = "~0.5.1"
|
||||
tempfile = "~1.1.3"
|
||||
url = "~0.5.2"
|
||||
vorbis = "~0.0.13"
|
||||
vorbis = "~0.0.14"
|
||||
|
||||
[dependencies.dns-sd]
|
||||
version = "~0.1.1"
|
||||
|
@ -46,7 +46,7 @@ git = "https://github.com/plietar/rust-shannon.git"
|
|||
git = "https://github.com/mvdnes/portaudio-rs"
|
||||
|
||||
[build-dependencies]
|
||||
vergen = "~0.0.16"
|
||||
vergen = "~0.1.0"
|
||||
|
||||
[features]
|
||||
default = ["dns-sd"]
|
||||
|
|
2
build.rs
2
build.rs
|
@ -1,6 +1,6 @@
|
|||
extern crate vergen;
|
||||
|
||||
fn main() {
|
||||
vergen::vergen(vergen::SHORT_SHA);
|
||||
vergen::vergen(vergen::SHORT_SHA).unwrap();
|
||||
}
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@ use std::thread;
|
|||
use std::fs;
|
||||
use std::io::{self, Read, Write, Seek, SeekFrom};
|
||||
use std::path::PathBuf;
|
||||
use tempfile::TempFile;
|
||||
use tempfile::NamedTempFile;
|
||||
|
||||
use util::{FileId, IgnoreExt, ZeroFile, mkdir_existing};
|
||||
use util::{FileId, IgnoreExt, mkdir_existing};
|
||||
use session::Session;
|
||||
use stream::StreamEvent;
|
||||
|
||||
|
@ -21,7 +21,7 @@ pub enum AudioFile {
|
|||
}
|
||||
|
||||
pub struct AudioFileLoading {
|
||||
read_file: TempFile,
|
||||
read_file: fs::File,
|
||||
|
||||
position: u64,
|
||||
seek: mpsc::Sender<u64>,
|
||||
|
@ -39,10 +39,6 @@ struct AudioFileShared {
|
|||
|
||||
impl AudioFileLoading {
|
||||
fn new(session: &Session, file_id: FileId) -> AudioFileLoading {
|
||||
let mut files_iter = TempFile::shared(2).unwrap().into_iter();
|
||||
let read_file = files_iter.next().unwrap();
|
||||
let mut write_file = files_iter.next().unwrap();
|
||||
|
||||
let size = session.stream(file_id, 0, 1)
|
||||
.into_iter()
|
||||
.filter_map(|event| {
|
||||
|
@ -58,6 +54,7 @@ impl AudioFileLoading {
|
|||
|
||||
let chunk_count = (size + CHUNK_SIZE - 1) / CHUNK_SIZE;
|
||||
|
||||
|
||||
let shared = Arc::new(AudioFileShared {
|
||||
file_id: file_id,
|
||||
size: size,
|
||||
|
@ -66,7 +63,9 @@ impl AudioFileLoading {
|
|||
bitmap: Mutex::new(BitSet::with_capacity(chunk_count)),
|
||||
});
|
||||
|
||||
io::copy(&mut ZeroFile::new(size as u64), &mut write_file).unwrap();
|
||||
let write_file = NamedTempFile::new().unwrap();
|
||||
write_file.set_len(size as u64).unwrap();
|
||||
let read_file = write_file.reopen().unwrap();
|
||||
|
||||
let (seek_tx, seek_rx) = mpsc::channel();
|
||||
|
||||
|
@ -88,7 +87,7 @@ impl AudioFileLoading {
|
|||
|
||||
fn fetch(session: &Session,
|
||||
shared: Arc<AudioFileShared>,
|
||||
mut write_file: TempFile,
|
||||
mut write_file: NamedTempFile,
|
||||
seek_rx: mpsc::Receiver<u64>) {
|
||||
let mut index = 0;
|
||||
|
||||
|
@ -119,7 +118,7 @@ impl AudioFileLoading {
|
|||
|
||||
fn fetch_chunk(session: &Session,
|
||||
shared: &Arc<AudioFileShared>,
|
||||
write_file: &mut TempFile,
|
||||
write_file: &mut NamedTempFile,
|
||||
index: usize) {
|
||||
|
||||
let rx = session.stream(shared.file_id,
|
||||
|
@ -151,7 +150,7 @@ impl AudioFileLoading {
|
|||
shared.cond.notify_all();
|
||||
}
|
||||
|
||||
fn store(session: &Session, shared: &AudioFileShared, write_file: &mut TempFile) {
|
||||
fn store(session: &Session, shared: &AudioFileShared, write_file: &mut NamedTempFile) {
|
||||
write_file.seek(SeekFrom::Start(0)).unwrap();
|
||||
|
||||
mkdir_existing(&AudioFileManager::cache_dir(session, shared.file_id)).unwrap();
|
||||
|
|
|
@ -10,13 +10,11 @@ mod int128;
|
|||
mod spotify_id;
|
||||
mod arcvec;
|
||||
mod subfile;
|
||||
mod zerofile;
|
||||
|
||||
pub use util::int128::u128;
|
||||
pub use util::spotify_id::{SpotifyId, FileId};
|
||||
pub use util::arcvec::ArcVec;
|
||||
pub use util::subfile::Subfile;
|
||||
pub use util::zerofile::ZeroFile;
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! eprintln(
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
use std::io;
|
||||
use std::cmp::{min, max};
|
||||
|
||||
pub struct ZeroFile {
|
||||
position: u64,
|
||||
size: u64,
|
||||
}
|
||||
|
||||
impl ZeroFile {
|
||||
pub fn new(size: u64) -> ZeroFile {
|
||||
ZeroFile {
|
||||
position: 0,
|
||||
size: size,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl io::Seek for ZeroFile {
|
||||
fn seek(&mut self, pos: io::SeekFrom) -> io::Result<u64> {
|
||||
let newpos = match pos {
|
||||
io::SeekFrom::Start(offset) => offset as i64,
|
||||
io::SeekFrom::End(offset) => self.size as i64 + offset,
|
||||
io::SeekFrom::Current(offset) => self.position as i64 + offset,
|
||||
};
|
||||
|
||||
self.position = max(min(newpos, self.size as i64), 0) as u64;
|
||||
|
||||
Ok(self.position)
|
||||
}
|
||||
}
|
||||
|
||||
impl io::Read for ZeroFile {
|
||||
// TODO optimize with memset or similar
|
||||
fn read(&mut self, output: &mut [u8]) -> io::Result<usize> {
|
||||
let len = min(output.len(), (self.size - self.position) as usize);
|
||||
for b in output {
|
||||
*b = 0;
|
||||
}
|
||||
|
||||
self.position += len as u64;
|
||||
Ok(len)
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue