mitchmindtree
777a6b2bd1
Change `StreamInstant` to use a signed representation
...
Using an unsigned representation was problematic as some platforms
provide no exact "capture" instant. As a result, we need to calculate
the instant of capture by subtracting the buffer duration from the
callback duration. In some cases this would occasionally cause the
unsigned representation to underflow unnecessarily.
2020-04-28 17:37:48 +02:00
mitchmindtree
4cb50663d8
WIP Begin work on the timestamp and `StreamInstant` APIs
2020-04-27 18:14:29 +02:00
mitchmindtree
f032557fb4
Merge pull request #395 from mitchmindtree/callback_info
...
Add a `CallbackInfo` argument to the stream data callback
2020-04-27 14:32:37 +02:00
mitchmindtree
624ba659da
Merge pull request #393 from derekdreery/recover_if_set_buffer_time_failed
...
Recover if hw_params_set_buffer_time failed.
2020-04-17 16:39:15 +02:00
mitchmindtree
95f5f2e54a
Update CHANGELOG for addition of CallbackInfo types
2020-04-16 15:39:05 +02:00
mitchmindtree
aae44cf3d6
Fix process_callback function signatures in asio backend
2020-04-16 15:30:14 +02:00
mitchmindtree
3f69770471
Update checkout github action. Clean up workflow formatting.
2020-04-16 15:20:45 +02:00
mitchmindtree
bcf962c447
Add a `CallbackInfo` argument to the stream data callback
...
I began on an implementation of the timestamp API described in #363 but
quickly realised that it might be best to land the API for providing
extra information to the user's callback first.
This PR adds two new types: `InputCallbackInfo` and `OutputCallbackInfo`.
These types are delivered to the user's data callback as a new, second
argument.
While these types are currently empty, the intention is for these types
to provide information relevant to the current request for or delivery
of data. This includes:
- Timestamp information #363 .
- Flags related to the state of the stream (e.g buffer
underflow/overflow).
In order to maintain flexibility to avoid breaking things, I figure we
can keep the fields of these types private and provide methods for
retrieving this info.
@Ralith, @ishitatsuyuki does this seem OK to you?
2020-04-16 14:50:36 +02:00
Richard Dodd
3c3349f926
Add some comments.
2020-04-15 18:46:54 +01:00
Richard Dodd
290f464330
Cargo fmt
2020-04-15 18:42:43 +01:00
Richard Dodd
86079e6439
Rebase off new alsa-rs impl
2020-04-15 18:41:40 +01:00
mitchmindtree
608d23adc6
Merge pull request #390 from mitchmindtree/remove-alsa-sys-publish
...
Remove alsa-sys publish step from cpal publish github workflow
2020-04-15 18:23:01 +02:00
mitchmindtree
38e0408412
Remove alsa-sys publish from github workflow
...
The `alsa-sys` crate repository has lived [here][1] for quite a while.
This commit removes the unnecessary step from the CI workflow now that
alsa-sys has finally been removed as of #386 .
[1]: https://github.com/diwic/alsa-sys
2020-04-15 18:07:51 +02:00
mitchmindtree
7df5b4e973
Merge pull request #386 from alexmoon/alsa
...
Switch from vendored alsa-sys to alsa crate
2020-04-15 17:56:18 +02:00
Alex Moon
5da315fbfe
Merge remote-tracking branch 'upstream/master' into alsa
2020-04-13 16:25:30 -04:00
Alex Moon
b386e63eec
Ignore play/pause errors for ALSA Stream
2020-04-12 13:11:35 -04:00
est31
fc28a8033c
Merge pull request #388 from bschwind/master
...
Fix type for armv6 platforms
2020-04-12 13:38:22 +02:00
Brian Schwind
c5e1ea5919
Fix type-casting error for armv6 platforms
2020-04-12 14:19:18 +09:00
Alex Moon
62d540d396
Switch from vendored alsa-sys to alsa crate
2020-04-03 16:56:51 -04:00
mitchmindtree
f3e7c46205
Merge pull request #382 from dansgithubuser/master
...
fix sample rate range assertion
2020-03-18 09:02:34 +01:00
Dan
bf276e7de6
fix sample rate range assertion
2020-03-17 23:16:04 -04:00
mitchmindtree
aac04e7263
Merge pull request #379 from est31/master
...
Remove redundant 'static from &'static str
2020-02-24 09:10:08 +01:00
est31
d97983e218
Remove redundant 'static from &'static str
...
Specifying the static lifetime in constants and static variables
is redundant since Rust 1.17.0
https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1170-2017-04-27
2020-02-24 07:40:25 +01:00
mitchmindtree
946d646965
Merge pull request #374 from mitchmindtree/changelog
...
Update changelog for changes since 0.11
2020-02-04 17:18:44 +01:00
mitchmindtree
27b4c56858
Update changelog for changes since 0.11
2020-02-04 17:16:41 +01:00
mitchmindtree
e4df8b277f
Merge pull request #371 from mitchmindtree/stream_config
...
Rename stream `Format` types to `StreamConfig` and other related renamings.
2020-02-04 17:07:15 +01:00
mitchmindtree
a2e6232cd8
Merge pull request #4 from mitchmindtree/stream_config_pub
...
Restrict the ways in which `SupportedStreamConfig/Range`s can be constructed
2020-02-04 15:46:22 +01:00
mitchmindtree
7a6cb0bd6a
Make SupportedStreamConfigRange fields private
2020-02-02 20:20:51 +01:00
mitchmindtree
9bf5664f7d
Update wasapi and emscripten backends for SupportedStreamConfig private fields
2020-02-02 19:56:30 +01:00
mitchmindtree
009b796b7c
Update wasapi backend for SupportedStreamConfig private fields
2020-02-02 19:06:16 +01:00
mitchmindtree
f05ba58207
Update emscripten backend for SupportedStreamConfig private fields
2020-02-02 18:50:12 +01:00
mitchmindtree
476f6c4c2c
Only allow for private construction of `SupportedStreamConfig`.
...
This should give the user a higher confidence that, if they have a
`SupportedStreamConfig` format type that it is actually supported.
Also updates the `raw` stream builder methods to take a `StreamConfig`
and `SampleFormat` as separate arguments for flexibility.
**Backends Updated**
- [x] null
- [x] alsa
- [ ] emscripten
- [ ] coreaudio
- [ ] wasapi
- [ ] asio
2020-02-02 18:43:30 +01:00
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
mitchmindtree
ae910e3fe5
Merge pull request #366 from Ralith/polymorphic-streams
...
Polymorphic streams
2020-01-27 18:17:09 +01:00
Benjamin Saunders
8d471f3d0e
Illustrate alternative structure in beep example
2020-01-21 22:49:31 -08:00
Benjamin Saunders
076b814a15
Introduce polymorphic stream constructors
2020-01-21 22:20:26 -08:00
Benjamin Saunders
78df791377
Add _raw suffix to stream constructors
2020-01-21 21:52:18 -08:00
mitchmindtree
5390c01641
Merge pull request #365 from mitchmindtree/rustfmt
...
Remove old `.rustfmt.toml` config. Run default `cargo fmt` on repo. Add formatting check github action.
2020-01-21 20:02:17 +01:00
mitchmindtree
7e846b47ad
Ensure all crates are formatted correctly, not just `cpal` itself.
2020-01-21 14:18:16 +01:00
mitchmindtree
ca255772fd
Fix typo in rustfmt github action
2020-01-21 00:25:03 +01:00
mitchmindtree
e7979d2dfe
Fix some strangely formatted commented code
2020-01-21 00:15:52 +01:00
mitchmindtree
cdd49ada2b
Add a GitHub action for rustfmt
...
Checks formatting against the default `cargo fmt` run.
2020-01-20 23:56:04 +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
95cda0dbe8
Merge pull request #364 from mitchmindtree/wasapi-warnings
...
Address deprecated `mem::uninitialized` warnings in WASAPI host
2020-01-20 20:31:43 +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