620 Commits

Author SHA1 Message Date
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
Luni-4
c4402a0306 Move the error files into the tmp directory 2019-11-15 15:50:27 +01:00
est31
6fafc54dc7
Merge pull request #345 from Luni-4/cargo-publish
Allow cargo-publish failure
2019-11-15 10:55:45 +01:00
Luni-4
524bbb9ef5 Check cargo-publish error type 2019-11-13 16:24:05 +01:00
lucy
dcabad105b Implement WASAPI loopback support
This works by detecting output devices in build_input_stream() and
setting the AUDCLNT_STREAMFLAGS_LOOPBACK flag to enable loopback
recording.

closes #251
2019-10-27 14:52:12 +01:00
est31
8f28048f61
Merge pull request #344 from Luni-4/cargo-publish
Update and fix Github Actions
2019-10-26 15:45:33 +02:00
Luni-4
129599e85f Update and fix Github Actions 2019-10-26 14:38:26 +02:00
est31
dca5a11476
Merge pull request #337 from Luni-4/github-actions
Add cargo-publish job
2019-10-26 13:56:21 +02:00
est31
80d892d50c
Merge pull request #343 from Luni-4/fix-windows-actions
Update Github Actions for Windows
2019-10-26 12:46:55 +02:00
Luni-4
2a62f42e04 Update Github Actions for Windows 2019-10-26 12:22:50 +02:00
est31
5fa5ae8cff
Merge pull request #340 from mitchmindtree/thiserror
Switch to dtolnay's `thiserror` for handling error boilerplate
2019-10-13 12:58:52 +02:00
mitchmindtree
7b08cb0dae Update examples for switch to thiserror
To compensate for the removal of `failure`'s application friendly
`failure::Error` trait, this `anyhow` crate has been added as a
dev-dependency for the examples, but is by no means a necessity for
other crates downstream of CPAL.
2019-10-13 12:36:49 +02:00
mitchmindtree
d9d4a906c9 Switch to dtolnay's thiserror for handling error boilerplate
Currently CPAL only really uses `failure` for its `derive` capabilities
and the ability to easily generate implementations for `Display`. That
said there are a few issues with using the `failure` crate:

- `failure` does not provie a `std::error::Error` implementation without
  first converting error types into `failure::Error`.
- It leaks significantly into the public API and expects downstream
  users to also depend on `failure` and the non-std `Fail` trait for
  their own error handling.
- Solved problems such as downcasting of causal errors which have since
  been addressed in `std`.
- Provides application-friendly `Fail` trait and `failure::Error` type,
  not particularly useful to libraries like CPAL.

The [`thiserror` crate](https://github.com/dtolnay/thiserror) is better
targeted towards libraries, does not leak into the public API while
providing easy generation of `Display`, `From` and `std::error::Error`
implementations including proper handling of the newish
`std::error::Error::source` method.
2019-10-13 12:29:21 +02:00