699 Commits

Author SHA1 Message Date
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  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 .
- 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
mitchmindtree
608d23adc6
Merge pull request 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 .

[1]: https://github.com/diwic/alsa-sys
2020-04-15 18:07:51 +02:00
mitchmindtree
7df5b4e973
Merge pull request 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 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 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 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 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 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 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 .

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

Closes .
2020-01-27 21:28:07 +01:00
mitchmindtree
ae910e3fe5
Merge pull request 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 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 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
mitchmindtree
10e2458048
Merge pull request from mitchmindtree/remove-unknown-buffer-type
Remove `UnknownTypeBuffer` in favour of specifying sample type.
2020-01-20 20:18:26 +01:00
mitchmindtree
d7d82ac863
Merge pull request from mitchmindtree/remove-unknown-buffer-type-alt
An alternative approach to removing `UnknownBufferType`
2020-01-20 18:21:25 +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
dbb1cc4140 Add some notes for devs about the safety requirements of Data 2020-01-19 19:05:17 +01:00
mitchmindtree
3fdf189848 Update docs for addition of the new stream Data type 2020-01-19 16:16:09 +01:00