Commit Graph

736 Commits

Author SHA1 Message Date
mitchmindtree 2bf905f3ec
Merge pull request #358 from jbeich/dragonfly
DragonFly support
2020-01-13 15:47:45 +01:00
mitchmindtree 59ac088167
Merge pull request #354 from mitchmindtree/no-eventloop-rebased
Removing the `EventLoop` - rebased
2020-01-13 12:50:05 +01:00
mitchmindtree 4fb1c3f081
Merge pull request #2 from mitchmindtree/no-eventloop-send-sync
Explicitly make dynamically dispatched API !Send + !Sync
2020-01-12 22:53:50 +01:00
mitchmindtree 32d39bcfd3 Relax `Sync` restriction on `Device` and `Host`
Originally this restriction was placed due to uncertainty around the
thread safety of the ASIO API. While the ASIO API itself makes no
thread-safety guarantees that we are aware of, the `asio-sys` high-level
bindings enforce synchronised access to the API and state transitions
via a mutex.
2020-01-12 22:43:05 +01:00
mitchmindtree ca2aceb536 Fix state transition synchronisation in ASIO
This makes some tweaks to the ASIO backend in order to fix some cases
where races may have occured. This should allow us to remove the `Sync`
bound on the `Device` and `Host` types.
2020-01-12 22:40:05 +01:00
Jan Beich 3ac6f6a689 Enable ALSA on DragonFly
DragonFly like FreeBSD uses OSS under the hood but OSS backend isn't
available, so use ALSA.
2020-01-07 16:18:52 +00:00
Jan Beich e77634941d Drop alsa-sys dependency on OpenBSD
Unlike other BSDs it never packaged ALSA and prefers everything to use sndio.
2020-01-07 16:15:48 +00:00
mitchmindtree 33ddf74954 Explicitly make dynamically dispatched API !Send + !Sync
This is in order to ensure consistent restrictions across platforms in a
manner that ensures thread safety across each of the supported
platforms.

Please see added comments in the diff for details on which platforms
impose these restrictions.
2020-01-05 17:43:14 +01:00
mitchmindtree 2afebb2806 Clarify the current state of stream behaviour in docs and comments 2019-12-31 16:02:08 +01:00
mitchmindtree 39ade49347 RAII cleanup wthin the ASIO backend
- Shares the `Device`'s `driver` and `asio_streams` `Arc`s with the
`Stream`s to ensure they remain valid if the `Host` or `Device` are
dropped early.
- Ensures that a stream's callback is removed upon `Drop`.
2019-12-31 15:46:10 +01:00
msiglreith 972cce0f8c asio: Re-add possibility to create stream individually 2019-12-31 15:46:10 +01:00
msiglreith bfda575218 Port ASIO host to new stream-based API 2019-12-31 15:46:10 +01:00
Viktor Lazarev 64ba84de81 Move code from stream to device 2019-12-31 15:46:10 +01:00
Tatsuyuki Ishi cede7b41db Remove EventLoop and port the ALSA backend 2019-12-31 15:46:10 +01:00
mitchmindtree f34a062fac Update docs for removal of the `EventLoop` 2019-12-31 15:46:10 +01:00
mitchmindtree 27245444a7 Remove redundant from backend 2019-12-31 15:45:15 +01:00
mitchmindtree 37d80b98cf Update the `emscripten` backend for the removal of the `EventLoop`
For the most part, behaviour should be largely unchanged, however each
individual stream now has its own `set_timeout` callback loop, rather
than using one for processing all streams at once.

Many TODOs remain within the `emscripten` backend. These were left
untouched for the most part in favour of addressing this in a more
web-focused, future PR.
2019-12-31 15:45:15 +01:00
Tatsuyuki Ishi 70dcf2390a Port CoreAudio backend 2019-12-31 15:45:15 +01:00
ishitatsuyuki c09a58ac02 Fix the remainder of WASAPI backend 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi 7f7914434c Additional clippy fixes 2019-12-31 15:42:35 +01:00
Viktor Lazarev d46415a6e7 `cargo clippy` 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi 49a38c2641 Fix up WASAPI host 2019-12-31 15:42:35 +01:00
Viktor Lazarev d4965d3673 `cargo fmt` 2019-12-31 15:42:35 +01:00
Viktor Lazarev c62cb48e19 Apply suggestions proposed by Clippy 2019-12-31 15:42:35 +01:00
Viktor Lazarev 10dc779943 Return back missed play/pause implementation 2019-12-31 15:42:35 +01:00
Viktor Lazarev a218dc90e6 Fixing compile errors 2019-12-31 15:42:35 +01:00
Viktor Lazarev a412b00336 Fix the "Stream::new' method 2019-12-31 15:42:35 +01:00
Viktor Lazarev e7f708701c Remove old code 2019-12-31 15:42:35 +01:00
Viktor Lazarev 1021141d16 Fix "build_input/output_stream_inner" methods 2019-12-31 15:42:35 +01:00
Viktor Lazarev f65d0e65bc Expose Stream instead of StreamId 2019-12-31 15:42:35 +01:00
Viktor Lazarev 125bebd733 Clean up wasdapi mod 2019-12-31 15:42:35 +01:00
Viktor Lazarev d12d9f479b Remove redundant field names 2019-12-31 15:42:35 +01:00
Viktor Lazarev 7765e941ed Implement Drop for Stream 2019-12-31 15:42:35 +01:00
Viktor Lazarev 0541bf8667 Add Stream struct 2019-12-31 15:42:35 +01:00
Viktor Lazarev e25c44a4a1 Move code from stream to device 2019-12-31 15:42:35 +01:00
Viktor Lazarev dd418c08ae Adjust "process_commands" and "Command" 2019-12-31 15:42:35 +01:00
Viktor Lazarev 28cf3fee43 Fix "run_inner" fn 2019-12-31 15:42:35 +01:00
Viktor Lazarev b00630bdcc Extract "run_inner" as a standalone function 2019-12-31 15:42:35 +01:00
Viktor Lazarev 463540f370 Keep a single stream only 2019-12-31 15:42:35 +01:00
Viktor Lazarev cffd2da582 Rename "StreamDataResult" to "StreamData" 2019-12-31 15:42:35 +01:00
Viktor Lazarev 37e7b5b63b Move DeviceTrait implementation to wasapi::device 2019-12-31 15:42:35 +01:00
Viktor Lazarev f57e7c74e4 Ignore RLS log files 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi e782ca1ac8 Suppress warnings in null backend 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi 508e7d8ccf Add one missing error handling 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi 3cce3e43d9 Change callback interface so that it takes a dedicated error callback 2019-12-31 15:42:35 +01:00
Tatsuyuki Ishi c97d1dd3fa Remove EventLoop and port the ALSA backend 2019-12-31 15:42:35 +01:00
mitchmindtree 700bef79d9
Merge pull request #356 from simlay/fix-warnings
Fixed compiler warnings
2019-12-31 15:41:31 +01:00
Sebastian Imlay d8743b34ce Fixed compiler warnings
* Removed extra semi-colon
* Added dyn where requested
* Removed ::std:: in thead::sleep call.
2019-12-29 15:02:34 -08:00
est31 8d08a9eb42
Merge pull request #355 from rianadon/master
Update struct links in crate documentation
2019-12-23 15:53:33 +01:00
Ryan Adolf 264cd31b03 Update struct links in crate documentation 2019-12-22 19:22:35 -08:00