96 Commits

Author SHA1 Message Date
mitchmindtree
07b66f52f3 Rename FormatNotSupported to StreamConfigNotSupported 2020-01-28 22:55:43 +01:00
mitchmindtree
f292391190 Update asio backend for stream format renaming 2020-01-28 16:17:14 +01:00
mitchmindtree
3a692f8bca Update coreaudio backend for stream format renaming 2020-01-28 15:03:27 +01:00
mitchmindtree
e0da586f77 Update wasapi backend for stream format renaming 2020-01-28 00:26:15 +01:00
mitchmindtree
669aada98a Update emscripten backend for stream format renaming 2020-01-27 21:44:52 +01:00
mitchmindtree
9c781bd381 Rename stream Format types to Config
This implements the changes described at #370.

This commit implements only the `null` and `alsa` backends - the rest
will be implemented in follow-up commits.

Closes #370.
2020-01-27 21:28:07 +01:00
Benjamin Saunders
78df791377 Add _raw suffix to stream constructors 2020-01-21 21:52:18 -08:00
mitchmindtree
e7979d2dfe Fix some strangely formatted commented code 2020-01-21 00:15:52 +01:00
mitchmindtree
aab0d90add Remove old .rustfmt.toml config. Run default cargo fmt on repo.
Seeing as a few large refactors have landed recently, I thought I'd take
this opportunity to do a `cargo fmt` run and standardise on the default
rustfmt settings.
2020-01-20 20:35:23 +01:00
mitchmindtree
a7008b63a5 Address deprecated mem::uninitialized warnings in WASAPI host
This uses `ptr::null_mut()` and `MaybeUninit` to remove use of
deprecated `mem::uninitialized()` which could possibly result in UB.
2020-01-20 20:22:15 +01:00
mitchmindtree
64f8fd12cc Update CoreAudio host for the addition of the new stream Data type 2020-01-19 19:42:43 +01:00
mitchmindtree
c0a28b5198 Update ASIO host for addition of new stream Data type. 2020-01-19 19:35:35 +01:00
mitchmindtree
1b5cf579cb Update WASAPI backend for addition of new stream Data type 2020-01-19 19:17:40 +01:00
mitchmindtree
7f27b897bb Update emscripten backend for new stream Data type 2020-01-19 16:04:06 +01:00
mitchmindtree
58356f49b4 An alternative approach to removing UnknownBufferType.
This is a potential alternative to #359. This PR is based on #359.

This approach opts for a dynamically checked sample type approach with
the aim of minimising compile time and binary size.

You can read more discussion on this [here](https://github.com/RustAudio/cpal/pull/359#issuecomment-575931461)

Implemented backends:

- [x] null
- [x] ALSA
- [ ] CoreAudio
- [ ] WASAPI
- [ ] ASIO
- [ ] Emscripten
2020-01-19 15:06:19 +01:00
mitchmindtree
6fbb701826 Update CoreAudio backend for removal of UnknownBufferType 2020-01-18 15:15:41 +01:00
mitchmindtree
9e832c6eb3 Update ASIO backend for removal of UnknownBufferType 2020-01-18 15:13:17 +01:00
mitchmindtree
b5bfb8d422 Update WASAPI backend for removal of UnknownTypeBuffer 2020-01-18 15:13:17 +01:00
mitchmindtree
6fc2185c99 Update emscripten backend for removal of UnknownTypeBuffer 2020-01-18 15:13:17 +01:00
mitchmindtree
05b62bb1c0 Remove UnknownTypeBuffer in favour of specifying sample type.
This is an implementation of the planned changes described in #119.

For a quick overview of how the API has changed, check out the updated
examples.

**TODO:**

- [x] Update API.
- [x] Update examples.
- [ ] Remove `data_type` field from `Format` (see [here](https://github.com/RustAudio/cpal/issues/119#issuecomment-573788380)).
- Update backends:
  - [x] null
  - [x] ALSA
  - [ ] ASIO
  - [ ] WASAPI
  - [ ] CoreAudio
  - [ ] Emscripten

Closes #119
Closes #260
2020-01-18 15:13:17 +01:00
Alex Moon
1b10f92f9d Fix undeclared module errors on Mac. 2020-01-16 12:24:33 -08:00
mitchmindtree
2bf905f3ec
Merge pull request #358 from jbeich/dragonfly
DragonFly support
2020-01-13 15:47:45 +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
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
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