diff --git a/Cargo.lock b/Cargo.lock index aff5e5c..2f72e10 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -135,7 +135,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -172,7 +172,7 @@ checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ "addr2line", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide 0.6.2", "object", @@ -191,15 +191,6 @@ version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -254,12 +245,6 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -278,7 +263,7 @@ dependencies = [ "num-traits 0.2.15", "time 0.1.45", "wasm-bindgen", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -350,28 +335,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", + "cfg-if", ] [[package]] @@ -380,7 +344,7 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -418,7 +382,7 @@ version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "hashbrown", "lock_api", "once_cell", @@ -478,7 +442,7 @@ version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -604,22 +568,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "futures" version = "0.3.28" @@ -691,23 +639,6 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" -[[package]] -name = "futures-test" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84af27744870a4a325fa342ce65a940dfba08957b260b790ec278c1d81490349" -dependencies = [ - "futures-core", - "futures-executor", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "futures-util", - "pin-project", - "pin-utils", -] - [[package]] name = "futures-util" version = "0.3.28" @@ -758,24 +689,13 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - [[package]] name = "getrandom" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -892,7 +812,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1040,7 +960,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1059,7 +979,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1073,36 +993,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "ipc-channel" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb1d9211085f0ea6f1379d944b93c4d07e8207aa3bcf49f37eda12b85081887" -dependencies = [ - "bincode", - "crossbeam-channel", - "fnv", - "futures", - "futures-test", - "lazy_static", - "libc", - "mio 0.6.23", - "rand 0.7.3", - "serde", - "tempfile", - "uuid 0.8.2", - "winapi 0.3.9", -] - [[package]] name = "ipnet" version = "2.7.2" @@ -1117,7 +1007,7 @@ checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix 0.37.19", + "rustix", "windows-sys 0.48.0", ] @@ -1136,16 +1026,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -1194,11 +1074,11 @@ dependencies = [ "log", "multimap", "nix", - "rand 0.8.5", + "rand", "socket2", "thiserror", "tokio", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1258,7 +1138,7 @@ dependencies = [ "librespot-protocol", "log", "protobuf", - "rand 0.8.5", + "rand", "serde", "serde_json", "tokio", @@ -1292,7 +1172,7 @@ dependencies = [ "pbkdf2", "priority-queue", "protobuf", - "rand 0.8.5", + "rand", "serde", "serde_json", "sha-1 0.9.8", @@ -1321,7 +1201,7 @@ dependencies = [ "libmdns", "librespot-core", "log", - "rand 0.8.5", + "rand", "serde_json", "sha-1 0.9.8", "thiserror", @@ -1358,7 +1238,7 @@ dependencies = [ "log", "ogg", "parking_lot", - "rand 0.8.5", + "rand", "rand_distr", "shell-words", "thiserror", @@ -1386,12 +1266,6 @@ dependencies = [ "cmake", ] -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -1420,7 +1294,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "generator", "scoped-tls", "serde", @@ -1444,12 +1318,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.5.0" @@ -1499,25 +1367,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.8.8" @@ -1529,18 +1378,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "multimap" version = "0.8.3" @@ -1556,7 +1393,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" dependencies = [ - "getrandom 0.2.10", + "getrandom", ] [[package]] @@ -1577,17 +1414,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "net2" -version = "0.2.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - [[package]] name = "nix" version = "0.23.2" @@ -1596,7 +1422,7 @@ checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ "bitflags", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "memoffset", ] @@ -1608,7 +1434,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1620,7 +1446,7 @@ dependencies = [ "autocfg", "num-integer", "num-traits 0.2.15", - "rand 0.8.5", + "rand", ] [[package]] @@ -1699,7 +1525,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019" dependencies = [ "bitflags", - "cfg-if 1.0.0", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -1768,13 +1594,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "backtrace", - "cfg-if 1.0.0", + "cfg-if", "libc", "petgraph", "redox_syscall 0.3.5", "smallvec", "thread-id", - "windows-targets 0.48.0", + "windows-targets", ] [[package]] @@ -1904,37 +1730,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "procfs" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de8dacb0873f77e6aefc6d71e044761fcc68060290f5b1089fcdf84626bb69" -dependencies = [ - "bitflags", - "byteorder", - "hex", - "lazy_static", - "rustix 0.36.14", -] - -[[package]] -name = "prometheus" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "libc", - "memchr", - "parking_lot", - "procfs", - "protobuf", - "reqwest", - "thiserror", -] - [[package]] name = "protobuf" version = "2.28.0" @@ -1969,19 +1764,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -1989,18 +1771,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -2010,16 +1782,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -2028,7 +1791,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom", ] [[package]] @@ -2038,16 +1801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits 0.2.15", - "rand 0.8.5", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "rand", ] [[package]] @@ -2157,7 +1911,7 @@ dependencies = [ "spin 0.5.2", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2169,7 +1923,7 @@ dependencies = [ "libc", "serde", "serde_json", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2187,20 +1941,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.36.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - [[package]] name = "rustix" version = "0.37.19" @@ -2211,7 +1951,7 @@ dependencies = [ "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.3.8", + "linux-raw-sys", "windows-sys 0.48.0", ] @@ -2424,7 +2164,7 @@ dependencies = [ "base64 0.13.1", "bitflags", "bytes", - "cfg-if 1.0.0", + "cfg-if", "command_attr", "dashmap", "flate2", @@ -2467,7 +2207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -2479,7 +2219,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -2490,7 +2230,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -2550,7 +2290,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2570,7 +2310,7 @@ dependencies = [ "futures", "parking_lot", "pin-project", - "rand 0.8.5", + "rand", "serde", "serde_json", "serenity", @@ -2607,11 +2347,9 @@ version = "2.1.0" dependencies = [ "dotenv", "env_logger 0.10.0", - "ipc-channel", "lazy_static", "librespot", "log", - "prometheus", "reqwest", "samplerate", "serde", @@ -2636,7 +2374,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71664755c349abb0758fda6218fb2d2391ca2a73f9302c03b145491db4fcea29" dependencies = [ - "crossbeam-utils 0.8.15", + "crossbeam-utils", "futures-util", "loom", ] @@ -2689,10 +2427,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ "autocfg", - "cfg-if 1.0.0", + "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.19", + "rustix", "windows-sys 0.48.0", ] @@ -2733,7 +2471,7 @@ checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" dependencies = [ "libc", "redox_syscall 0.2.16", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2742,7 +2480,7 @@ version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", ] @@ -2754,7 +2492,7 @@ checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2808,7 +2546,7 @@ dependencies = [ "autocfg", "bytes", "libc", - "mio 0.8.8", + "mio", "num_cpus", "parking_lot", "pin-project-lite", @@ -2897,7 +2635,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -2982,7 +2720,7 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "rustls 0.20.8", "sha-1 0.10.1", "thiserror", @@ -3079,7 +2817,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.10", + "getrandom", ] [[package]] @@ -3088,7 +2826,7 @@ version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" dependencies = [ - "getrandom 0.2.10", + "getrandom", ] [[package]] @@ -3136,12 +2874,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" @@ -3160,7 +2892,7 @@ version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -3185,7 +2917,7 @@ version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -3262,12 +2994,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -3278,12 +3004,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -3296,7 +3016,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3311,7 +3031,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", + "windows-targets", ] [[package]] @@ -3329,37 +3049,13 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -3467,17 +3163,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", + "winapi", ] [[package]] @@ -3488,7 +3174,7 @@ checksum = "e68bcb965d6c650091450b95cea12f07dcd299a01c15e2f9433b0813ea3c0886" dependencies = [ "aead", "poly1305", - "rand_core 0.6.4", + "rand_core", "salsa20", "subtle", "zeroize", diff --git a/Cargo.toml b/Cargo.toml index deb901b..0d2b83c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,11 +11,9 @@ path = "src/main.rs" [dependencies] dotenv = "0.15.0" env_logger = "0.10.0" -ipc-channel = { version = "0.16.0", features = ["async"] } lazy_static = { version = "1.4.0", optional = true } librespot = { version = "0.4.2", default-features = false } log = "0.4.17" -prometheus = { version = "0.13.3", optional = true, features = ["push", "process"] } reqwest = "0.11.18" samplerate = "0.2.4" serde = "1.0.163" diff --git a/src/audio/mod.rs b/src/audio/mod.rs index 0286273..dd06c1c 100644 --- a/src/audio/mod.rs +++ b/src/audio/mod.rs @@ -2,93 +2,11 @@ use librespot::playback::audio_backend::{Sink, SinkAsBytes, SinkError, SinkResul use librespot::playback::convert::Converter; use librespot::playback::decoder::AudioPacket; use log::error; -use std::io::{Stdout, Write}; +use std::io::Write; use tokio::sync::mpsc::UnboundedSender; -use crate::ipc; -use crate::ipc::packet::IpcPacket; use crate::player::stream::Stream; -pub struct StdoutSink { - client: ipc::Client, - output: Option>, -} - -impl StdoutSink { - pub fn new(client: ipc::Client) -> Self { - StdoutSink { - client, - output: None, - } - } -} - -impl Sink for StdoutSink { - fn start(&mut self) -> SinkResult<()> { - if let Err(why) = self.client.send(IpcPacket::StartPlayback) { - error!("Failed to send start playback packet: {}", why); - return Err(SinkError::ConnectionRefused(why.to_string())); - } - - self.output.get_or_insert(Box::new(std::io::stdout())); - - Ok(()) - } - - fn stop(&mut self) -> SinkResult<()> { - if let Err(why) = self.client.send(IpcPacket::StopPlayback) { - error!("Failed to send stop playback packet: {}", why); - return Err(SinkError::ConnectionRefused(why.to_string())); - } - - self - .output - .take() - .ok_or_else(|| SinkError::NotConnected("StdoutSink is not connected".to_string()))? - .flush() - .map_err(|why| SinkError::OnWrite(why.to_string()))?; - - Ok(()) - } - - fn write(&mut self, packet: AudioPacket, converter: &mut Converter) -> SinkResult<()> { - use zerocopy::AsBytes; - - if let AudioPacket::Samples(samples) = packet { - let samples_f32: &[f32] = &converter.f64_to_f32(&samples); - - let resampled = samplerate::convert( - 44100, - 48000, - 2, - samplerate::ConverterType::Linear, - samples_f32, - ) - .expect("to succeed"); - - let samples_i16 = - &converter.f64_to_s16(&resampled.iter().map(|v| *v as f64).collect::>()); - - self.write_bytes(samples_i16.as_bytes())?; - } - - Ok(()) - } -} - -impl SinkAsBytes for StdoutSink { - fn write_bytes(&mut self, data: &[u8]) -> SinkResult<()> { - self - .output - .as_deref_mut() - .ok_or_else(|| SinkError::NotConnected("StdoutSink is not connected".to_string()))? - .write_all(data) - .map_err(|why| SinkError::OnWrite(why.to_string()))?; - - Ok(()) - } -} - pub enum SinkEvent { Start, Stop, diff --git a/src/ipc/mod.rs b/src/ipc/mod.rs deleted file mode 100644 index 266e908..0000000 --- a/src/ipc/mod.rs +++ /dev/null @@ -1,69 +0,0 @@ -use std::sync::{Arc, Mutex}; - -use ipc_channel::ipc::{self, IpcError, IpcOneShotServer, IpcReceiver, IpcSender, TryRecvError}; - -use self::packet::IpcPacket; - -pub mod packet; - -pub struct Server { - tx: IpcOneShotServer>, - rx: IpcOneShotServer>, -} - -impl Server { - pub fn create() -> Result<(Self, String, String), IpcError> { - let (tx, tx_name) = IpcOneShotServer::new().map_err(IpcError::Io)?; - let (rx, rx_name) = IpcOneShotServer::new().map_err(IpcError::Io)?; - - Ok((Self { tx, rx }, tx_name, rx_name)) - } - - pub fn accept(self) -> Result { - let (_, tx) = self.tx.accept().map_err(IpcError::Bincode)?; - let (_, rx) = self.rx.accept().map_err(IpcError::Bincode)?; - - Ok(Client::new(tx, rx)) - } -} - -#[derive(Clone)] -pub struct Client { - tx: Arc>>, - rx: Arc>>, -} - -impl Client { - pub fn new(tx: IpcSender, rx: IpcReceiver) -> Client { - Client { - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - } - } - - pub fn connect(tx_name: impl Into, rx_name: impl Into) -> Result { - let (tx, remote_rx) = ipc::channel().map_err(IpcError::Io)?; - let (remote_tx, rx) = ipc::channel().map_err(IpcError::Io)?; - - let ttx = IpcSender::connect(tx_name.into()).map_err(IpcError::Io)?; - let trx = IpcSender::connect(rx_name.into()).map_err(IpcError::Io)?; - - ttx.send(remote_tx).map_err(IpcError::Bincode)?; - trx.send(remote_rx).map_err(IpcError::Bincode)?; - - Ok(Client::new(tx, rx)) - } - - pub fn send(&self, packet: IpcPacket) -> Result<(), IpcError> { - self - .tx - .lock() - .expect("to be able to lock") - .send(packet) - .map_err(IpcError::Bincode) - } - - pub fn try_recv(&self) -> Result { - self.rx.lock().expect("to be able to lock").try_recv() - } -} diff --git a/src/ipc/packet.rs b/src/ipc/packet.rs deleted file mode 100644 index e25631d..0000000 --- a/src/ipc/packet.rs +++ /dev/null @@ -1,46 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub enum IpcPacket { - /// Quit the player process - Quit, - - /// Connect to Spotify with the given token and device name - Connect(String, String), - - /// Disconnect from Spotify (unused) - Disconnect, - - /// Unable to connect to Spotify - ConnectError(String), - - /// The audio sink has started writing - StartPlayback, - - /// The audio sink has stopped writing - StopPlayback, - - /// The current Spotify track was changed - TrackChange(String), - - /// Spotify playback was started/resumed - Playing(String, u32, u32), - - /// Spotify playback was paused - Paused(String, u32, u32), - - /// Sent when the user has switched their Spotify device away from Spoticord - Stopped, - - /// Request the player to advance to the next track - Next, - - /// Request the player to go back to the previous track - Previous, - - /// Request the player to pause playback - Pause, - - /// Request the player to resume playback - Resume, -} diff --git a/src/main.rs b/src/main.rs index 90ff3dd..0b4e320 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,6 @@ mod audio; mod bot; mod consts; mod database; -mod ipc; mod librespot_ext; mod player; mod session; diff --git a/src/player/stream.rs b/src/player/stream.rs index e82e36a..8b3972d 100644 --- a/src/player/stream.rs +++ b/src/player/stream.rs @@ -5,7 +5,8 @@ use std::{ use songbird::input::reader::MediaSource; -const MAX_SIZE: usize = 1 * 1024 * 1024; +// TODO: Find optimal value +const MAX_SIZE: usize = 1024 * 1024; #[derive(Clone)] pub struct Stream { @@ -45,7 +46,7 @@ impl Write for Stream { let mut buffer = mutex.lock().expect("Mutex was poisoned"); while buffer.len() + buf.len() > MAX_SIZE { - buffer = condvar.wait(buffer).unwrap(); + buffer = condvar.wait(buffer).expect("Mutex was poisoned"); } buffer.extend_from_slice(buf); diff --git a/src/session/mod.rs b/src/session/mod.rs index 9210903..7dbe91c 100644 --- a/src/session/mod.rs +++ b/src/session/mod.rs @@ -764,6 +764,7 @@ impl SpoticordSession { } /// Get the channel id + #[allow(dead_code)] pub async fn text_channel_id(&self) -> ChannelId { self.0.read().await.text_channel_id } @@ -777,6 +778,7 @@ impl SpoticordSession { self.0.read().await.call.clone() } + #[allow(dead_code)] pub async fn http(&self) -> Arc { self.0.read().await.http.clone() }