From a28271906b1616836bdf89ee4df814a00599c0d8 Mon Sep 17 00:00:00 2001 From: Roderick van Domburg Date: Sun, 19 Apr 2026 12:59:12 +0200 Subject: [PATCH] chore(cpal): update to unified error type --- Cargo.lock | 422 +++++++++++------------- examples/error_callback.rs | 6 +- src/lib.rs | 4 +- src/microphone.rs | 8 +- src/microphone/builder.rs | 26 +- src/speakers.rs | 2 +- src/speakers/builder.rs | 26 +- src/speakers/builder/buffer_duration.rs | 2 +- src/stream.rs | 33 +- 9 files changed, 241 insertions(+), 288 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6c0dce1..070c4096 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d" dependencies = [ "alsa-sys", - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "libc", ] @@ -35,9 +35,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anyhow" @@ -80,9 +80,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "block2" @@ -119,9 +119,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -149,23 +149,23 @@ checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" dependencies = [ "cfg-if", "cpufeatures", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] name = "clap" -version = "4.5.60" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstyle", "clap_lex", @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "claxon" @@ -186,9 +186,9 @@ checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] @@ -220,11 +220,11 @@ dependencies = [ [[package]] name = "coreaudio-rs" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15c3c3cee7c087938f7ad1c3098840b3ef1f1bdc7f6e496336c3b1e7a6f3914" +checksum = "16dd574a72a021b90c7656c474ea31d11a2f0366a8eff574186e761e0b9e3586" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "objc2-audio-toolbox", "objc2-core-audio", @@ -235,15 +235,16 @@ dependencies = [ [[package]] name = "cpal" version = "0.18.0" -source = "git+https://github.com/RustAudio/cpal#2622b29052dc972647f0d8ea65709776fcc3b0d7" +source = "git+https://github.com/RustAudio/cpal#39b543e3d1f644869d1e9cd1f99322146503ce19" dependencies = [ "alsa", + "block2", "coreaudio-rs", "dasp_sample", "jni", "js-sys", "libc", - "mach2 0.5.0", + "mach2 0.6.0", "ndk", "ndk-context", "num-derive", @@ -291,7 +292,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crossterm_winapi", "derive_more", "document-features", @@ -342,11 +343,11 @@ dependencies = [ [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2", ] @@ -401,9 +402,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", "regex", @@ -411,9 +412,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "env_filter", "log", @@ -541,20 +542,20 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi", - "rand_core 0.10.0", + "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -576,9 +577,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" [[package]] name = "heck" @@ -600,23 +601,23 @@ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] [[package]] name = "inquire" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "979f5ab9760427ada4fa5762b2d905e5b12704fb1fada07b6bfa66aeaa586f87" +checksum = "6654738b8024300cf062d04a1c13c10c8e2cea598ec1c47dc9b6641159429756" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crossterm", "dyn-clone", "fuzzy-matcher", @@ -626,9 +627,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" @@ -639,7 +640,7 @@ dependencies = [ "cesu8", "cfg-if", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", @@ -648,9 +649,31 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn", +] [[package]] name = "jobserver" @@ -664,10 +687,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.87" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f0862381daaec758576dcc22eb7bbf4d7efd67328553f3b45a412a51a3fb21" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -697,9 +722,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.182" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libm" @@ -709,9 +734,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litrs" @@ -745,12 +770,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" -dependencies = [ - "libc", -] +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" [[package]] name = "memchr" @@ -780,9 +802,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", @@ -796,8 +818,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.0", - "jni-sys", + "bitflags 2.11.1", + "jni-sys 0.3.1", "log", "ndk-sys", "num_enum", @@ -816,7 +838,7 @@ version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ - "jni-sys", + "jni-sys 0.3.1", ] [[package]] @@ -881,9 +903,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -891,9 +913,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -903,9 +925,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ "objc2-encode", ] @@ -916,7 +938,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6948501a91121d6399b79abaa33a8aa4ea7857fe019f341b8c23ad6e81b79b08" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "objc2", "objc2-core-audio", @@ -931,6 +953,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13a380031deed8e99db00065c45937da434ca987c034e13b87e4441f9e4090be" dependencies = [ + "bitflags 2.11.1", "objc2", "objc2-foundation", ] @@ -954,7 +977,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2", ] @@ -964,7 +987,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "dispatch2", "libc", @@ -983,7 +1006,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "libc", "objc2", @@ -1001,18 +1024,17 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "opusic-sys" -version = "0.5.8" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f43c183739dc81651487e7c9f3e4330fe4a3fd26c0fa961c788ce5fb21fa75b" +checksum = "dc3280fe5b6f97ac1a35a0ac003e2fb0b92f8e4bdf2b2057e1bf9b87acca5696" dependencies = [ "cmake", - "libc", ] [[package]] @@ -1040,15 +1062,15 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "ppv-lite86" @@ -1080,9 +1102,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] @@ -1104,14 +1126,14 @@ checksum = "95c589f335db0f6aaa168a7cd27b1fc6920f5e1470c804f814d9cd6e62a0f70b" dependencies = [ "env_logger", "log", - "rand 0.10.0", + "rand 0.10.1", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -1122,11 +1144,17 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha", @@ -1135,13 +1163,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ "chacha20", - "getrandom 0.4.1", - "rand_core 0.10.0", + "getrandom 0.4.2", + "rand_core 0.10.1", ] [[package]] @@ -1165,9 +1193,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_distr" @@ -1176,7 +1204,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" dependencies = [ "num-traits", - "rand 0.10.0", + "rand 0.10.1", ] [[package]] @@ -1185,7 +1213,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -1219,9 +1247,9 @@ checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "relative-path" @@ -1246,7 +1274,7 @@ dependencies = [ "minimp3_fixed", "num-rational", "quickcheck", - "rand 0.10.0", + "rand 0.10.1", "rand_distr", "rstest", "rstest_reuse", @@ -1294,15 +1322,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a8fb4672e840a587a66fc577a5491375df51ddb88f2a2c2a792598c326fe14" dependencies = [ "quote", - "rand 0.8.5", + "rand 0.8.6", "syn", ] [[package]] name = "rtrb" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8388ea1a9e0ea807e442e8263a699e7edcb320ecbcd21b4fa8ff859acce3ba" +checksum = "7204ed6420f698836b76d4d5c2ec5dec7585fd5c3a788fd1cde855d1de598239" [[package]] name = "rustc_version" @@ -1329,11 +1357,11 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys", @@ -1363,9 +1391,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -1511,9 +1539,9 @@ dependencies = [ [[package]] name = "symphonia-adapter-libopus" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb56e67fc0f362731bc7a2920562ebb5668281b202444a0d274ddd3b5af61e6" +checksum = "b9d17450685dda0e87467eddf3e0f9c0b2a1707fc5c3234c111f70d46c6e4494" dependencies = [ "log", "opusic-sys", @@ -1706,12 +1734,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1765,9 +1793,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -1780,18 +1808,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap", "toml_datetime", @@ -1801,9 +1829,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow", ] @@ -1857,9 +1885,9 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-width" @@ -1891,11 +1919,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -1904,14 +1932,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.110" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de241cdc66a9d91bd84f097039eb140cdc6eec47e0cdbaf9d932a1dd6c35866" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -1922,23 +1950,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.60" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42e96ea38f49b191e08a1bab66c7ffdba24b06f9995b39a9dd60222e5b6f1da" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.110" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12fdf6649048f2e3de6d7d5ff3ced779cdedee0e0baffd7dff5cdfa3abc8a52" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1946,9 +1970,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.110" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e63d1795c565ac3462334c1e396fd46dbf481c40f51f5072c310717bc4fb309" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -1959,9 +1983,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.110" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f9cdac23a5ce71f6bf9f8824898a501e511892791ea2a0c6b8568c68b9cb53" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -1994,7 +2018,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", "semver", @@ -2002,9 +2026,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.87" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c7c5718134e770ee62af3b6b4a84518ec10101aad610c024b64d6ff29bb1ff" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -2148,16 +2172,7 @@ 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.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", + "windows-targets", ] [[package]] @@ -2175,30 +2190,13 @@ 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", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -2216,95 +2214,47 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] @@ -2318,6 +2268,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -2367,7 +2323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", + "bitflags 2.11.1", "indexmap", "log", "serde", @@ -2399,18 +2355,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", diff --git a/examples/error_callback.rs b/examples/error_callback.rs index 89db8609..25ff2868 100644 --- a/examples/error_callback.rs +++ b/examples/error_callback.rs @@ -16,11 +16,11 @@ fn main() -> Result<(), Box> { .with_error_callback(move |err| { // Filter for where err is an actionable error. if matches!( - err, - cpal::StreamError::DeviceNotAvailable | cpal::StreamError::StreamInvalidated + err.kind(), + cpal::ErrorKind::DeviceNotAvailable | cpal::ErrorKind::StreamInvalidated ) { if let Err(e) = tx.send(err) { - eprintln!("Error emitting StreamError: {e}"); + eprintln!("Error emitting stream error: {e}"); } } }) diff --git a/src/lib.rs b/src/lib.rs index 92e840cb..ed7e205d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -187,8 +187,8 @@ #[cfg(feature = "playback")] pub use cpal::{ - self, traits::DeviceTrait, Device, Devices, DevicesError, InputDevices, OutputDevices, - SupportedStreamConfig, + self, traits::DeviceTrait, Device, Devices, Error as CpalError, ErrorKind as CpalErrorKind, + InputDevices, OutputDevices, SupportedStreamConfig, }; mod common; diff --git a/src/microphone.rs b/src/microphone.rs index dbedeba3..74d0b031 100644 --- a/src/microphone.rs +++ b/src/microphone.rs @@ -121,7 +121,7 @@ use rtrb::RingBuffer; /// Error that can occur when we can not list the input devices #[derive(Debug, thiserror::Error, Clone)] #[error("Could not list input devices")] -pub struct ListError(#[source] cpal::DevicesError); +pub struct ListError(#[source] cpal::Error); assert_error_traits! {ListError} /// An input device @@ -248,13 +248,13 @@ impl Iterator for Microphone { pub enum OpenError { /// Failed to build the input stream. #[error("Could not open microphone")] - BuildStream(#[source] cpal::BuildStreamError), + BuildStream(#[source] cpal::Error), /// This is a bug please report it #[error("This is a bug, please report it")] UnsupportedSampleFormat, /// Failed to start the input stream. #[error("Could not start the input stream")] - Play(#[source] cpal::PlayStreamError), + Play(#[source] cpal::Error), } assert_error_traits! {OpenError} @@ -262,7 +262,7 @@ impl Microphone { fn open( device: Device, config: InputConfig, - mut error_callback: impl FnMut(cpal::StreamError) + Send + 'static, + mut error_callback: impl FnMut(cpal::Error) + Send + 'static, ) -> Result { let timeout = Some(Duration::from_millis(100)); let hundred_ms_of_samples = diff --git a/src/microphone/builder.rs b/src/microphone/builder.rs index dd2c723a..a698424b 100644 --- a/src/microphone/builder.rs +++ b/src/microphone/builder.rs @@ -22,14 +22,14 @@ pub enum Error { #[error("Could not get default input configuration for input device: '{device_name}'")] DefaultInputConfig { #[source] - source: cpal::DefaultStreamConfigError, + source: cpal::Error, device_name: String, }, /// Failed to get the supported input configurations for the device. #[error("Could not get supported input configurations for input device: '{device_name}'")] InputConfigs { #[source] - source: cpal::SupportedStreamConfigsError, + source: cpal::Error, device_name: String, }, /// The requested input configuration is not supported by the device. @@ -56,9 +56,9 @@ pub struct DeviceNotSet; /// Builder for configuring and opening microphone input streams. #[must_use] -pub struct MicrophoneBuilder +pub struct MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { device: Option<(cpal::Device, Vec)>, config: Option, @@ -70,7 +70,7 @@ where impl Debug for MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("MicrophoneBuilder") @@ -100,28 +100,28 @@ impl Default for MicrophoneBuilder { } } -fn default_error_callback(err: cpal::StreamError) { +fn default_error_callback(err: cpal::Error) { #[cfg(feature = "tracing")] tracing::error!("audio stream error: {err}"); #[cfg(not(feature = "tracing"))] eprintln!("audio stream error: {err}"); } -impl MicrophoneBuilder { +impl MicrophoneBuilder { /// Creates a new microphone builder. /// /// # Example /// ```no_run /// let builder = rodio::microphone::MicrophoneBuilder::new(); /// ``` - pub fn new() -> MicrophoneBuilder { + pub fn new() -> MicrophoneBuilder { Self::default() } } impl MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Sets the input device to use. /// @@ -190,7 +190,7 @@ where impl MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Uses the device's default input configuration. /// @@ -287,7 +287,7 @@ where impl MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Sets the sample rate for input. /// @@ -509,7 +509,7 @@ where impl MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Returns the current input configuration. /// @@ -531,7 +531,7 @@ where impl MicrophoneBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Opens the microphone input stream. /// diff --git a/src/speakers.rs b/src/speakers.rs index 8ef628cc..1f7ae750 100644 --- a/src/speakers.rs +++ b/src/speakers.rs @@ -114,7 +114,7 @@ pub use config::{BufferSize, OutputConfig}; /// Error that can occur when we can not list the output devices #[derive(Debug, thiserror::Error, Clone)] #[error("Could not list output devices")] -pub struct ListError(#[source] cpal::DevicesError); +pub struct ListError(#[source] cpal::Error); assert_error_traits! {ListError} /// An output device diff --git a/src/speakers/builder.rs b/src/speakers/builder.rs index 6169fa59..0ad89165 100644 --- a/src/speakers/builder.rs +++ b/src/speakers/builder.rs @@ -25,14 +25,14 @@ pub enum Error { #[error("Could not get default output configuration for output device: '{device_name}'")] DefaultOutputConfig { #[source] - source: cpal::DefaultStreamConfigError, + source: cpal::Error, device_name: String, }, /// Failed to get the supported output configurations for the device. #[error("Could not get supported output configurations for output device: '{device_name}'")] OutputConfigs { #[source] - source: cpal::SupportedStreamConfigsError, + source: cpal::Error, device_name: String, }, /// The requested output configuration is not supported by the device. @@ -59,9 +59,9 @@ pub struct DeviceNotSet; /// Builder for configuring and opening an OS-Sink, usually a speaker or headphone. #[must_use] -pub struct SpeakersBuilder +pub struct SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { device: Option<(cpal::Device, Vec)>, config: Option, @@ -73,7 +73,7 @@ where impl Debug for SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("SpeakersBuilder") @@ -102,28 +102,28 @@ impl Default for SpeakersBuilder { } } -fn default_error_callback(err: cpal::StreamError) { +fn default_error_callback(err: cpal::Error) { #[cfg(feature = "tracing")] tracing::error!("audio stream error: {err}"); #[cfg(not(feature = "tracing"))] eprintln!("audio stream error: {err}"); } -impl SpeakersBuilder { +impl SpeakersBuilder { /// Creates a new speakers builder. /// /// # Example /// ```no_run /// let builder = rodio::speakers::SpeakersBuilder::new(); /// ``` - pub fn new() -> SpeakersBuilder { + pub fn new() -> SpeakersBuilder { Self::default() } } impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Sets the output device to use. /// @@ -190,7 +190,7 @@ where impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Uses the device's default output configuration. /// @@ -285,7 +285,7 @@ where impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Sets the sample rate for output. /// @@ -511,7 +511,7 @@ where impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Returns the current output configuration. /// @@ -533,7 +533,7 @@ where impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Opens the OS-Sink and provide a mixer for playing sources on it. /// diff --git a/src/speakers/builder/buffer_duration.rs b/src/speakers/builder/buffer_duration.rs index 79bad4ef..5a862412 100644 --- a/src/speakers/builder/buffer_duration.rs +++ b/src/speakers/builder/buffer_duration.rs @@ -12,7 +12,7 @@ use super::{ConfigIsSet, DeviceIsSet}; impl SpeakersBuilder where - E: FnMut(cpal::StreamError) + Send + Clone + 'static, + E: FnMut(cpal::Error) + Send + Clone + 'static, { /// Sets the buffer duration for the output. The buffer size is calculated /// from this and the sample rate and channel count when we build the diff --git a/src/stream.rs b/src/stream.rs index de1e609d..89e1ed8c 100644 --- a/src/stream.rs +++ b/src/stream.rs @@ -177,7 +177,7 @@ impl core::fmt::Debug for DeviceSinkBuilder { } } -fn default_error_callback(err: cpal::StreamError) { +fn default_error_callback(err: cpal::Error) { #[cfg(feature = "tracing")] tracing::error!("audio stream error: {err}"); #[cfg(not(feature = "tracing"))] @@ -190,9 +190,9 @@ fn default_error_callback(err: cpal::StreamError) { /// ///
When the DeviceSink is dropped playback will end, and the associated /// OS-Sink will be disposed
-pub struct DeviceSinkBuilder +pub struct DeviceSinkBuilder where - E: FnMut(cpal::StreamError) + Send + 'static, + E: FnMut(cpal::Error) + Send + 'static, { device: Option, config: DeviceSinkConfig, @@ -278,7 +278,7 @@ impl DeviceSinkBuilder { impl DeviceSinkBuilder where - E: FnMut(cpal::StreamError) + Send + 'static, + E: FnMut(cpal::Error) + Send + 'static, { /// Sets output audio device keeping all existing stream parameters intact. /// This method is useful if you want to set other parameters yourself. @@ -383,7 +383,7 @@ where /// Set a callback that will be called when an error occurs with the stream pub fn with_error_callback(self, callback: F) -> DeviceSinkBuilder where - F: FnMut(cpal::StreamError) + Send + 'static, + F: FnMut(cpal::Error) + Send + 'static, { DeviceSinkBuilder { device: self.device, @@ -470,21 +470,18 @@ assert_error_traits!(PlayError); /// Errors that might occur when interfacing with audio output. #[derive(Debug, thiserror::Error)] pub enum DeviceSinkError { - /// Could not start playing the sink, see [cpal::PlayStreamError] for - /// details. + /// Could not start playing the sink. #[error("Could not start playing the stream")] - PlayError(#[source] cpal::PlayStreamError), - /// Failed to get the stream config for the given device. See - /// [cpal::DefaultStreamConfigError] for details. + PlayError(#[source] cpal::Error), + /// Failed to get the stream config for the given device. #[error("Failed to get the config for the given device")] - DefaultSinkConfigError(#[source] cpal::DefaultStreamConfigError), - /// Error opening sink with OS. See [cpal::BuildStreamError] for details. + DefaultSinkConfigError(#[source] cpal::Error), + /// Error opening sink with OS. #[error("Error opening the stream with the OS")] - BuildError(#[source] cpal::BuildStreamError), - /// Could not list supported configs for the device. Maybe it - /// disconnected. For details see: [cpal::SupportedStreamConfigsError]. + BuildError(#[source] cpal::Error), + /// Could not list supported configs for the device. Maybe it disconnected. #[error("Could not list supported configs for the device. Maybe its disconnected?")] - SupportedConfigsError(#[source] cpal::SupportedStreamConfigsError), + SupportedConfigsError(#[source] cpal::Error), /// Could not find any output device #[error("Could not find any output device")] NoDevice, @@ -507,7 +504,7 @@ impl MixerDeviceSink { error_callback: E, ) -> Result where - E: FnMut(cpal::StreamError) + Send + 'static, + E: FnMut(cpal::Error) + Send + 'static, { Self::validate_config(config); let (controller, source) = mixer(config.channel_count, config.sample_rate); @@ -530,7 +527,7 @@ impl MixerDeviceSink { ) -> Result where S: Source + Send + 'static, - E: FnMut(cpal::StreamError) + Send + 'static, + E: FnMut(cpal::Error) + Send + 'static, { let cpal_config = config.into();