Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CPAL to version 0.10.0. #298

Merged
merged 4 commits into from
Jul 5, 2019

Conversation

mitchmindtree
Copy link
Member

This is quite a significant update for CPAL, including a number of
breaking changes. Here is a list of the major changes along with
links to where you can find more information:

In general, checking out the updated examples will be the easiest way to
get a quick overview on how you can update your own code for these
changes.

The CHANGELOG.md has been updated to include these changes.

This PR also includes a few small changes that managed to slip through
the cracks in #289 and #295. Namely, Devices, SupportedInputFormats
and SupportedOutputFormats have been re-exported in the crate root.
The Hash implementation has also been re-added to the StreamId type
to avoid some potentially frustrating downstream breakage.

This existed prior to the introduction of the `Host` API, but was lost
in translation. This re-adds the bounds so that downstream code does not
suddenly break due to a lacking `Hash` implementation in the next
CPAL version.
This is quite a significant update for CPAL, including a number of
breaking changes. Here is a list of the breaking changes along with
links to where you can find more information:

- A `Host` API has been introduced in RustAudio#289 along with a follow-up
  refactor in RustAudio#295. Please see the examples for a demonstration of how
  to update your code. The necessary changes should hopefully be
  minimal. If this has caused you any major difficulty please let us
  know in an issue!
- An ASIO host has been introduced in RustAudio#292. This adds support for
  Steinberg's ASIO audio driver API on Windows. Please see the ASIO
  section of the README for more information on how to setup CPAL with
  ASIO support for your project.
- The user callback API has been overhauled to emit `StreamEvent`s
  rather than buffers in order to support handling stream errors. RustAudio#288.
- Error handling in general was overhauled in RustAudio#286. This meant taking
  advantage of the `failure` crate and adding support for
  backend-specific errors with custom messages. Many unnecessary
  `panic!`s have been removed, but a few remain that would indicate bugs
  in CPAL.

In general, checking out the updated examples will be the easiest way to
get a quick overview on how you can update your own code for these
changes.

The CHANGELOG.md has been updated to include these changes.
@mitchmindtree mitchmindtree merged commit 0f393f4 into RustAudio:master Jul 5, 2019
@mitchmindtree mitchmindtree deleted the publish branch July 5, 2019 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant