Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
Unreleased
Added
- Added
Driver::latencies() asio_messagenow dispatcheskAsioResyncRequestandkAsioLatenciesChangedto callbacks
instead of silently ignoring themsample_rate_did_changenow dispatchesAsioDriverEvent::SampleRateChangedto registered
callbacks when the reported rate differs from the last known rate
Changed
Driver::add_message_callbackandDriver::remove_message_callbackreplaced by
Driver::add_event_callbackandDriver::remove_event_callbackMessageCallbackrenamed toDriverEventCallback, andMessageCallbackIdrenamed to
DriverEventCallbackId.DriverEventCallbackwrapsFn(AsioDriverEvent) -> boolwhere
AsioDriverEventis a new enum covering bothasioMessageselector events and
sampleRateDidChangenotificationsCallbackIdrenamed toBufferCallbackId- Public-facing
c_longfields and return types replaced withi32 - Public-facing
c_doubleparameters and return types replaced withf64. Driver::latencies()now returnsLatencies { input, output }.Driver::buffersize_range()now returnsBufferSizeRange { min, max }.CallbackInfo::system_timeis nowu64nanoseconds.AsioError::ASE_NoMemoryrenamed toAsioError::NoMemory.AsioTime::reserved,AsioTimeInfo::reserved,AsioTimeCode::futurefields made private.asio_importmodule is nowpub(crate); raw bindgen types are no longer public APIasio_messagedelegateskAsioSelectorSupportedfor unknown selectors to registered
callbacks, so each host decides which capabilities it opts into
Fixed
Asio::load_drivernow returnsLoadDriverError::LoadDriverFailedinstead of panicking when the
driver name contains a null byte- Fixed TOCTOU race condition when creating streams concurrently
Driver::set_sample_ratenow performs a dummy buffer cycle and driver reload when
the driver does not apply the rate change immediately, as required by some drivers
(e.g. Steinberg)- Fixed
asio_messagenot advertisingkAsioSelectorSupporteditself as a supported selector - Fixed data race where
channels,latencies,sample_rate, and related query methods could
call ASIO concurrently duringset_sample_rate's teardown/reload
Removed
- Removed unused
SampleRatestruct DriverStateis no longer part of the public API
0.2.6 - 2026-02-18
Fixed
- Link
advapi32to resolve Windows Registry API symbols
0.2.5 - 2026-01-04
Fixed
- Fixed ASIO SDK discovery on case sensitive filesystems
0.2.4 - 2025-12-20
Fixed
- Fixed docs.rs documentation build by generating stub bindings when building for docs.rs
- Fixed buffer switch detection to work correctly with non-conformant ASIO drivers
0.2.3 - 2025-12-12
Added
- Added
edition = "2021"andrust-version = "1.70"to Cargo.toml - Added README.md with usage documentation
- Added CHANGELOG.md following Keep a Changelog format
- Added rustfmt.toml for consistent formatting
Changed
- Update
bindgento 0.72 - Update
ccto 1.2 - Update
parse_cfgto 4.1 - Update enumerate example to use
pub type SampleRate = u32instead ofpub struct SampleRate(pub u32)for consistency with cpal
Fixed
- Fix linker flags for MinGW cross-compilation
- Add
packed(4)to representation of ASIO time structs in bindings - Fix handling for
kAsioResetRequestmessage to prevent driver UI becoming unresponsive - Fix timeinfo flags type
0.2.2 - 2024-03-04
Added
- Automate ASIO SDK download during build (no longer requires manual download)
- Add support for
CPAL_ASIO_DIRenvironment variable to use local SDK
Changed
- Update
bindgento 0.59 - Switch to
once_cellfromlazy_static - Improve build script error messages and SDK detection
- Clean up build script structure
- Re-run build script when
CPAL_ASIO_DIRchanges
Fixed
- Fix segmentation fault during build on some systems
- Fix various compiler warnings
- Fix typos in code and comments
0.2.1 - 2021-11-26
Changed
- Update
bindgento 0.56
Fixed
- Fix some typos and warnings
0.2.0 - 2020-07-22
Changed
- Update repository URL to https://github.com/RustAudio/cpal/
0.1.0 - 2020-07-22
Initial release.
Added
- FFI bindings to Steinberg ASIO SDK
- Automatic binding generation using bindgen
- Support for MSVC toolchain on Windows
- Basic error types:
AsioError,LoadDriverError
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
|