diff --git a/Cargo.lock b/Cargo.lock index 3e8ccf3..826b791 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,7 +89,7 @@ dependencies = [ "alsa-sys", "bitflags", "libc", - "nix 0.20.1", + "nix 0.20.0", ] [[package]] @@ -143,7 +143,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.1", + "socket2 0.4.2", "waker-fn", "winapi 0.3.9", ] @@ -154,9 +154,9 @@ version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -224,8 +224,8 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "proc-macro2 1.0.29", - "quote 1.0.9", + "proc-macro2 1.0.30", + "quote 1.0.10", "regex", "rustc-hash", "shlex", @@ -233,9 +233,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "blake2b_simd" @@ -265,9 +265,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" [[package]] name = "byteorder" @@ -305,9 +305,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" [[package]] name = "cc" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" +checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" dependencies = [ "jobserver", ] @@ -453,9 +453,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "core-foundation" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ "core-foundation-sys", "libc", @@ -463,9 +463,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "coreaudio-rs" @@ -502,7 +502,7 @@ dependencies = [ "mach", "ndk 0.3.0", "ndk-glue 0.3.0", - "nix 0.20.1", + "nix 0.20.0", "oboe", "parking_lot", "stdweb", @@ -597,7 +597,7 @@ dependencies = [ "log", "num", "owning_ref", - "syn 1.0.76", + "syn 1.0.80", "unicode-segmentation", "unicode-width", "wasmer_enumset", @@ -646,10 +646,10 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.29", - "quote 1.0.9", + "proc-macro2 1.0.30", + "quote 1.0.10", "strsim 0.9.3", - "syn 1.0.76", + "syn 1.0.80", ] [[package]] @@ -670,8 +670,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core 0.10.2", - "quote 1.0.9", - "syn 1.0.76", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -700,9 +700,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -813,9 +813,9 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5c450cf304c9e18d45db562025a14fb1ca0f5c769b6f609309f81d4c31de455" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -834,9 +834,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -868,9 +868,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", "synstructure", ] @@ -1022,9 +1022,9 @@ checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" dependencies = [ "autocfg 1.0.1", "proc-macro-hack", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -1127,9 +1127,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472" +checksum = "6c06815895acec637cd6ed6e9662c935b866d20a106f8361892893a7d9234964" dependencies = [ "bytes 1.1.0", "fnv", @@ -1146,9 +1146,9 @@ dependencies = [ [[package]] name = "half" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3" +checksum = "ac5956d4e63858efaec57e0d6c1c2f6a41e1487f830314a324ccd7e2223a7ca0" [[package]] name = "hashbrown" @@ -1211,9 +1211,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes 1.1.0", "fnv", @@ -1294,22 +1294,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.12" +version = "0.14.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd" +checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" dependencies = [ "bytes 1.1.0", "futures-channel", "futures-core", "futures-util", - "h2 0.3.4", + "h2 0.3.6", "http", "http-body 0.4.3", "httparse", "httpdate 1.0.1", "itoa", "pin-project-lite 0.2.7", - "socket2 0.4.1", + "socket2 0.4.2", "tokio 1.12.0", "tower-service", "tracing", @@ -1326,7 +1326,7 @@ dependencies = [ "futures 0.3.17", "headers", "http", - "hyper 0.14.12", + "hyper 0.14.13", "tokio 1.12.0", "tower-service", ] @@ -1351,7 +1351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes 1.1.0", - "hyper 0.14.12", + "hyper 0.14.13", "native-tls", "tokio 1.12.0", "tokio-native-tls", @@ -1397,9 +1397,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" dependencies = [ "cfg-if 1.0.0", ] @@ -1474,9 +1474,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.53" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4bf49d50e2961077d9c99f4b7997d770a1114f087c3c2e0069b36c13fc2979d" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -1516,9 +1516,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "libdbus-sys" @@ -1531,14 +1531,20 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" +checksum = "c0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", ] +[[package]] +name = "libm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + [[package]] name = "libpulse-binding" version = "2.25.0" @@ -1589,29 +1595,25 @@ dependencies = [ [[package]] name = "librespot-audio" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0e89d3e106d80600537eba02c17ea6dd8b3de3f46c99952b813b6f6d6445c0" +checksum = "105fcf66cdc7ff36509ecd5ab6c5b8731c9315b99b0d2432fa82fad3389ab776" dependencies = [ "aes-ctr", "byteorder", "bytes 1.1.0", - "cfg-if 1.0.0", "futures-util", - "lewton", "librespot-core", "log", - "ogg", "tempfile", "tokio 1.12.0", - "zerocopy", ] [[package]] name = "librespot-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3e70dce131f5531c982ca133f04fd1d1dd4208de27291dcd9ab6841c963248" +checksum = "46e3917eda633cb490b9aa0fe57c805bafb9522a3978ec24eebf0c6da213da8e" dependencies = [ "aes", "base64 0.13.0", @@ -1623,7 +1625,7 @@ dependencies = [ "hmac", "http", "httparse", - "hyper 0.14.12", + "hyper 0.14.13", "hyper-proxy", "librespot-protocol", "log", @@ -1650,9 +1652,9 @@ dependencies = [ [[package]] name = "librespot-metadata" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84157ce5d901dbdcaef17ed305deba5d87171725347673a1b632a334d910af47" +checksum = "1c4cc473f70928d771e6287aa3d0687e04848ea2e967fe662aabb0de01d7f818" dependencies = [ "async-trait", "byteorder", @@ -1664,22 +1666,26 @@ dependencies = [ [[package]] name = "librespot-playback" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ca3df986a7e1a43008717660803e159177e86a589d484a0fc01fccd7967ad6" +checksum = "57a57d4272b87b520d26dee2cfba7fe3a45daac88d63a7e6e4bda03dd2f66aac" dependencies = [ "alsa", "byteorder", "cpal", "futures-executor", "futures-util", + "lewton", "libpulse-binding", "libpulse-simple-binding", "librespot-audio", "librespot-core", "librespot-metadata", "log", + "ogg", "portaudio-rs", + "rand 0.8.4", + "rand_distr", "rodio", "shell-words", "thiserror", @@ -1689,13 +1695,12 @@ dependencies = [ [[package]] name = "librespot-protocol" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c753be4c3bd0f02b30c00d5d8547f16d557654cb737e70505aec6aa9990435d" +checksum = "2708f27ba45ed06435f3214cc3fc93f2f4658a67068091139af956426d2c39fc" dependencies = [ "glob", "protobuf", - "protobuf-codegen", "protobuf-codegen-pure", ] @@ -1765,15 +1770,6 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" -[[package]] -name = "memoffset" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" -dependencies = [ - "autocfg 1.0.1", -] - [[package]] name = "mime" version = "0.3.16" @@ -1878,7 +1874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15" dependencies = [ "libc", - "socket2 0.4.1", + "socket2 0.4.2", ] [[package]] @@ -1994,9 +1990,9 @@ checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" dependencies = [ "darling 0.10.2", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -2031,15 +2027,14 @@ dependencies = [ [[package]] name = "nix" -version = "0.20.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8e5e343312e7fbeb2a52139114e9e702991ef9c2aea6817ff2440b35647d56" +checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" dependencies = [ "bitflags", "cc", "cfg-if 1.0.0", "libc", - "memoffset", ] [[package]] @@ -2115,9 +2110,9 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -2159,6 +2154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg 1.0.1", + "libm", ] [[package]] @@ -2187,10 +2183,10 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486ea01961c4a818096de679a8b740b26d9033146ac5291b1c98557658f8cdd9" dependencies = [ - "proc-macro-crate 1.0.0", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro-crate 1.1.0", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -2303,9 +2299,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.66" +version = "0.9.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" dependencies = [ "autocfg 1.0.1", "cc", @@ -2433,9 +2429,9 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -2458,9 +2454,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "platform-dirs" @@ -2507,15 +2503,15 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.10" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" [[package]] name = "priority-queue" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1340009a04e81f656a4e45e295f0b1191c81de424bf940c865e33577a8e223" +checksum = "cf40e51ccefb72d42720609e1d3c518de8b5800d723a09358d4a6d6245e1f8ca" dependencies = [ "autocfg 1.0.1", "indexmap", @@ -2532,9 +2528,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" dependencies = [ "thiserror", "toml", @@ -2563,33 +2559,33 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" dependencies = [ "unicode-xid 0.2.2", ] [[package]] name = "protobuf" -version = "2.14.0" +version = "2.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485" +checksum = "23129d50f2c9355ced935fce8a08bd706ee2e7ce2b3b33bf61dace0e379ac63a" [[package]] name = "protobuf-codegen" -version = "2.14.0" +version = "2.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c" +checksum = "4ba98ce0dadaa6de1e7f1b6d82a0a73b03e0c049169a167c919d906b0875026c" dependencies = [ "protobuf", ] [[package]] name = "protobuf-codegen-pure" -version = "2.14.0" +version = "2.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440" +checksum = "a2bab16316ed0c5794a06c399af55a3ca7b93496cb35cb4c15bcc8f5d824f2b7" dependencies = [ "protobuf", "protobuf-codegen", @@ -2612,11 +2608,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ - "proc-macro2 1.0.29", + "proc-macro2 1.0.30", ] [[package]] @@ -2694,6 +2690,16 @@ dependencies = [ "getrandom 0.2.3", ] +[[package]] +name = "rand_distr" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2f" +dependencies = [ + "num-traits", + "rand 0.8.4", +] + [[package]] name = "rand_hc" version = "0.1.0" @@ -2901,7 +2907,7 @@ dependencies = [ "futures-util", "http", "http-body 0.4.3", - "hyper 0.14.12", + "hyper 0.14.13", "hyper-tls 0.5.0", "ipnet", "js-sys", @@ -2925,9 +2931,9 @@ dependencies = [ [[package]] name = "rodio" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65c2eda643191f6d1bb12ea323a9db8d9ba95374e9be3780b5a9fb5cfb8520f" +checksum = "4d98f5e557b61525057e2bc142c8cd7f0e70d75dc32852309bec440e6e046bf9" dependencies = [ "cpal", ] @@ -3036,9 +3042,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "security-framework" -version = "2.3.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ "bitflags", "core-foundation", @@ -3088,9 +3094,9 @@ version = "1.0.130" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3110,9 +3116,9 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3182,15 +3188,15 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "socket2" @@ -3205,9 +3211,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi 0.3.9", @@ -3271,9 +3277,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ "heck", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3283,9 +3289,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" dependencies = [ "heck", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3307,24 +3313,24 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.76" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", + "proc-macro2 1.0.30", + "quote 1.0.10", "unicode-xid 0.2.2", ] [[package]] name = "synstructure" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", "unicode-xid 0.2.2", ] @@ -3384,22 +3390,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3414,9 +3420,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3464,13 +3470,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.3.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" +checksum = "b2dd85aeaba7b68df939bd357c6afb36c87951be9e80bf9c859f2fc3e9fca0fd" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -3562,9 +3568,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.26" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", "log", @@ -3574,9 +3580,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", ] @@ -3614,9 +3620,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" @@ -3759,9 +3765,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.76" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", "serde", @@ -3771,24 +3777,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.76" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe8dc78e2326ba5f845f4b5bf548401604fa20b1dd1d365fb73b6c1d6364041" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.26" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fded345a6559c2cfee778d562300c581f7d4ff3edb9b0d230d69800d213972" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3798,32 +3804,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.76" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ - "quote 1.0.9", + "quote 1.0.10", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.76" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.76" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasmer_enumset" @@ -3842,16 +3848,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1b32d98e11194200baf6d3f85eb2d6cfe56f6d9af0dd617f90ca48f958a88" dependencies = [ "darling 0.10.2", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] name = "web-sys" -version = "0.3.53" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224b2f6b67919060055ef1a67807367c2066ed520c3862cc013d26cf893a783c" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3954,7 +3960,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cc2357b1b03c19f056cb0e6d06011f80f54beadb4e36aee2ca98493c7cfc3c" dependencies = [ - "syn 1.0.76", + "syn 1.0.80", "windows_gen", "windows_quote", "windows_reader", @@ -4072,9 +4078,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a482c56029e48681b89b92b5db3c446db0915e8dd1052c0328a574eda38d5f93" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] [[package]] @@ -4093,19 +4099,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d498dbd1fd7beb83c86709ae1c33ca50942889473473d287d56ce4770a18edfb" dependencies = [ - "proc-macro2 1.0.29", - "syn 1.0.76", + "proc-macro2 1.0.30", + "syn 1.0.80", "synstructure", ] [[package]] name = "zvariant" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4b785b8b32b0f8433b4474e6bb4ea77b37c1960e84d7598e01dd199b2b23ef" +checksum = "e1a9373dead84d640ccf5798f2928917e6aa1ab3f130751406bb13e0a9dd9913" dependencies = [ "byteorder", "enumflags2", + "libc", "serde", "static_assertions", "zvariant_derive", @@ -4113,12 +4120,12 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42af4ee88fb928781391216c34be77ec7cdb3546042b2947ce38d86aa5f37dd" +checksum = "46ee71e0e88747ec582d290dbe98ff7907ff28770c7a35f16da41e5e6f1f4fa3" dependencies = [ - "proc-macro-crate 1.0.0", - "proc-macro2 1.0.29", - "quote 1.0.9", - "syn 1.0.76", + "proc-macro-crate 1.1.0", + "proc-macro2 1.0.30", + "quote 1.0.10", + "syn 1.0.80", ] diff --git a/Cargo.toml b/Cargo.toml index 5feab66..8a6e57b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,9 +24,9 @@ fern = "0.6" futures = { version = "0.3", features = ["compat"] } futures_01 = { version = "0.1", package = "futures" } lazy_static = "1.3.0" -librespot-core = { version = "0.2.0", features = ["apresolve"] } -librespot-playback = "0.2.0" -librespot-protocol = "0.2.0" +librespot-core = "0.3.0" +librespot-playback = "0.3.0" +librespot-protocol = "0.3.0" log = "0.4.13" notify-rust = { version = "4", optional = true } rspotify = { version = "0.10.0", features = ["blocking"] } diff --git a/src/config.rs b/src/config.rs index 81fcf2e..2bf7a54 100644 --- a/src/config.rs +++ b/src/config.rs @@ -27,7 +27,7 @@ pub struct ConfigValues { pub backend: Option, pub backend_device: Option, pub volnorm: Option, - pub volnorm_pregain: Option, + pub volnorm_pregain: Option, pub notify: Option, pub bitrate: Option, pub album_column: Option, diff --git a/src/spotify.rs b/src/spotify.rs index 0a6dc00..c3544d7 100644 --- a/src/spotify.rs +++ b/src/spotify.rs @@ -4,7 +4,8 @@ use librespot_core::config::SessionConfig; use librespot_core::session::Session; use librespot_core::session::SessionError; use librespot_playback::config::PlayerConfig; -use librespot_playback::player::NormalisationData; +use librespot_playback::mixer::softmixer::SoftMixer; +use librespot_playback::mixer::MixerConfig; use log::{debug, error, info}; use librespot_playback::audio_backend; @@ -181,9 +182,6 @@ impl Spotify { bitrate: bitrate.unwrap_or(Bitrate::Bitrate320), normalisation: cfg.values().volnorm.unwrap_or(false), normalisation_pregain: cfg.values().volnorm_pregain.unwrap_or(0.0), - normalisation_threshold: NormalisationData::db_to_ratio( - PlayerConfig::default().normalisation_threshold, - ), ..Default::default() }; @@ -192,9 +190,9 @@ impl Spotify { .expect("Could not create session"); user_tx.map(|tx| tx.send(session.username())); - let create_mixer = librespot_playback::mixer::find(Some("softvol".to_owned())) + let create_mixer = librespot_playback::mixer::find(Some(SoftMixer::NAME)) .expect("could not create softvol mixer"); - let mixer = create_mixer(None); + let mixer = create_mixer(MixerConfig::default()); mixer.set_volume(volume); let backend = audio_backend::find(cfg.values().backend.clone()).unwrap(); @@ -354,27 +352,10 @@ impl Spotify { self.cfg.state().volume } - fn log_scale(volume: u16) -> u16 { - // https://www.dr-lex.be/info-stuff/volumecontrols.html#ideal2 - // a * exp(b * x) - const A: f64 = 1.0 / 1000.0; - const B: f64 = 6.908; - let volume_percent = volume as f64 / u16::max_value() as f64; - let log_volume = A * (B * volume_percent).exp(); - let result = log_volume * u16::max_value() as f64; - - // u16 overflow check - if result > u16::max_value() as f64 { - u16::max_value() - } else { - result as u16 - } - } - pub fn set_volume(&self, volume: u16) { info!("setting volume to {}", volume); self.cfg.with_state_mut(|mut s| s.volume = volume); - self.send_worker(WorkerCommand::SetVolume(Self::log_scale(volume))); + self.send_worker(WorkerCommand::SetVolume(volume)); } pub fn preload(&self, track: &Playable) {