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
est31
0b7bbbe9c5
Merge pull request #353 from mitchmindtree/publish
...
Publish version 0.11.0
2019-12-11 14:08:27 +01:00
mitchmindtree
fe9054f626
Publish version 0.11.0
...
Please see the CHANGELOG diff below for an overview of changes included
in this release.
You can find the full code diff [here](391b32f5b2
...master).
Thanks to all who have contributed! CPAL has come a long way thanks to
the combined effort of many different people!
2019-12-11 13:28:44 +01:00
est31
fc46f023e4
Merge pull request #351 from Luni-4/cargo-publish
...
Move error files into another directory
2019-11-18 22:01:52 +01:00
est31
90be524400
Merge pull request #339 from lucy/master
...
Implement WASAPI loopback support
2019-11-17 17:49:49 +01:00