Commit graph

1181 commits

Author SHA1 Message Date
Sasha Hilton 963d50e725
Merge pull request #658 from Johannesd3/refactor-audio-file-fetch
[Tokio migration] Refactor AudioFileFetch
2021-03-17 01:24:49 +00:00
johannesd3 ca255c17f0 Split file fetch.rs 2021-03-11 18:09:51 +01:00
johannesd3 e71a004e93 Refactor AudioFileFetch using async/await
Previously, polling `AudioFileFetch` consisted of three parts: Handling
stream loader commands, handling received data, and triggering preloading
in stream mode when the number of open requests is sufficiently small. The
first steps use channels which are polled, and if something's available,
it's handled. The third step is executed on every call of `poll`.

The first two could easily be refactored using a `tokio::select!`-loop.
Therefore, counting the number of open requests was also refactored to fit
into this scheme. They were previously counted using a shared
`AtomicUsize`. Now, the number of open requests is stored exclusively in
`AudioFileFetch`, increased on starting a request, and decreased by an
oneshot channel that is fired when a request is finished.

This allows us to `select` that channel in the loop too, and since
loading ahead makes only sense if the number of open requests decreases,
the third step is only executed in this case.

`AudioFileFetch` does not implement `Future` anymore, but is rather used
as helper struct in an async fn `audio_file_fetch`.
2021-03-11 18:08:00 +01:00
Ash 173a36332f
Merge pull request #667 from Johannesd3/small-fixes
Fix remaining clippy warnings
2021-03-11 15:19:09 +01:00
johannesd3 059b9029de Remove redundant field names 2021-03-10 22:41:46 +01:00
johannesd3 5616004dbe Fix many clippy lints
...and other small improvements
2021-03-10 22:41:44 +01:00
Ash 38761395d3
Merge pull request #652 from leshow/cleanup
clean up imports & clippy lints
2021-03-09 22:29:02 +01:00
Evan Cameron 3388508141
use current_thread 2021-02-28 22:09:46 -05:00
Evan Cameron 6a33eb4efa
minor cleanup 2021-02-28 21:54:19 -05:00
Ash 9d77fef008
Merge pull request #649 from Johannesd3/tokio-migration-refactor-deps
[Tokio migration] Merge dev and refactor
2021-02-26 10:49:10 +01:00
johannesd3 f22b41956f Update url crate to 2.1 2021-02-23 22:22:53 +01:00
johannesd3 b606d8c661 Replace "extern crate"s 2021-02-23 22:22:53 +01:00
johannesd3 18179e73ec Remove unused dependencies and fix feature flags 2021-02-23 22:22:53 +01:00
johannesd3 59c556635e Clean up librespot-connect dependencies 2021-02-23 22:22:53 +01:00
johannesd3 d064ffc670 Use tokio channels and fix compilation errors 2021-02-23 22:22:53 +01:00
johannesd3 f9c0e26f6d Simplify code 2021-02-23 22:22:52 +01:00
johannesd3 27f308b82f Replace error_chain by thiserror 2021-02-23 22:22:52 +01:00
johannesd3 45f42acb82 Refactor 'find_available_alternatives' 2021-02-23 22:22:52 +01:00
johannesd3 5aeb733ad9 Clean up dependencies in librespot-playback
* Use futures-util instead of futures
* Use tokio channels instead of futures channels
* Removed "extern crate"s
2021-02-23 22:22:52 +01:00
johannesd3 5c42d2e879 Clean up dependencies in librespot-audio
* Remove unused deps
* Use futures-util instead of futures
* Replace futures channels by tokio channels
* Remove unnecessary pin_project
* Reordered "use" statements
2021-02-23 22:22:52 +01:00
johannesd3 b83976a8ec Remove "extern crate"s from librespot-audio 2021-02-23 22:22:52 +01:00
johannesd3 746e6c863e Put lewton behind feature flag 2021-02-23 22:22:52 +01:00
johannesd3 a6ed6857d2 Clean up dependencies in librespot-metadata
* Replaced LinearMap by HashMap
* Removed unnecessary dependencies
* Removed "extern crate"s
2021-02-23 22:22:52 +01:00
johannesd3 10827bd6a8 Clean up dependencies of librespot-core
* Use sub-crates of future
* Remove unnecessary pin-project
* Removed unused crates and features
* Replace futures channels by tokio channels
* Use serde's "derive" feature flag instead of serde_derive
2021-02-23 22:22:51 +01:00
johannesd3 8cff10e983 Put apresolve behind feature flag 2021-02-23 22:22:51 +01:00
johannesd3 9253be7bc9 Small refactor of librespot-core
* Remove default impl for `SessionConfig`
* Move util mod to single file
* Restore privacy of mods
* Move `fn get_credentials` to application
* Remove `extern crate` statements
2021-02-23 22:22:51 +01:00
johannesd3 c0942f14e8 Restore rodiojack support
Probably more simple than the previous approach which
doubles the code: Instead of implementing the `Open` trait,
we simply use custom SinkBuilder, one for the default host,
and one for the "jack" host.
2021-02-23 22:22:51 +01:00
johannesd3 678d1777fd Merge branch 'dev' into tokio_migration 2021-02-23 22:22:49 +01:00
johannesd3 1fc5267a71 Revert "Merge pull request #548 from Lcchy/rodiojack-backend"
This reverts commit f483075b2c, reversing
changes made to ea8ece36d9.
2021-02-23 22:20:58 +01:00
Ash c9b3b955bd
Merge pull request #606 from Johannesd3/tokio_connect_migration
Finish tokio migration
2021-02-23 09:25:34 +01:00
Sasha Hilton e8204c970e
Merge pull request #569 from philippe44/passthrough-v3
Allow pipeline writer to spit out Ogg directly, including when seeking
2021-02-23 00:16:01 +00:00
Sasha Hilton 19e22ef486
Add note on issues/discussions. 2021-02-23 00:13:13 +00:00
Philippe G 34bc286d9b ogg passthrough
rename
2021-02-22 13:45:53 -08:00
Sasha Hilton d8c1b491c4 Merge branch 'master' into dev 2021-02-22 00:57:45 +00:00
Sasha Hilton d4b36b2398 Bump cargo.lock 2021-02-22 00:48:14 +00:00
Sasha Hilton b7c3609c7b Update version numbers to 0.1.6 2021-02-22 00:37:28 +00:00
Sasha Hilton 6407c20ea3 Merge branch 'master' into dev 2021-02-22 00:21:50 +00:00
Sasha Hilton 2060901c1e
Merge pull request #605 from flaktack/spirc-command-play-pause
Fix state toggling in SpircCommand::PlayPause
2021-02-21 23:30:48 +00:00
Sasha Hilton 4e1c24d98d
Merge pull request #602 from Johannesd3/bumb_crypto_crates
Bump crypto crates
2021-02-21 23:29:00 +00:00
Sasha Hilton 91152b47d8
Merge pull request #607 from willstott101/master
Stabilises #529 (NetBSD support)
2021-02-21 23:27:25 +00:00
Will Stott 89ad7a44a6 Update Cargo.lock 2021-02-21 19:01:31 +00:00
Will Stott 0b211f923f Stabilization of libmdns at 0.2.7 (includes fix for NetBSD) 2021-02-21 18:54:16 +00:00
johannesd3 220061e158 Migrate application to tokio 1.0 2021-02-21 17:05:36 +01:00
johannesd3 007e653f3d Restore original blocking player behaviour 2021-02-21 17:04:44 +01:00
johannesd3 1c4d57c6da Add shutdown to discovery server 2021-02-21 14:10:00 +01:00
johannesd3 2c81aaaf4e Implement MercurySender not as sink 2021-02-21 14:10:00 +01:00
johannesd3 daf7ecd23a Migrate librespot-connect to tokio 1.0 2021-02-21 14:09:31 +01:00
Sasha Hilton 7f705ed148 Merge branch 'master' into dev 2021-02-20 23:31:04 +00:00
Sasha Hilton 91dc14794c Update Cargo.lock 2021-02-20 23:23:44 +00:00
Sasha Hilton 2c110ca256 Update version numbers to 0.1.5 2021-02-20 23:05:56 +00:00