nandi/jolt-nativepublic Fork 0
2ab40bf193b6a39bc8d1397cc36d17572bbf59cd
Commits
Clone
git clone https://git.rickub.com/nandi/jolt-native.git
git clone ssh://git@rickub.com/nandi/jolt-native.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

CHANGELOG.md · 136 lines · 5.3 KBmarkdown Blame HistoryRaw
Lift freeq's AV media plane out of sleek 90f8b89 nandi 19d ago1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## [Unreleased]
9
10### Added
11- Added `Driver::latencies()`
12- `asio_message` now dispatches `kAsioResyncRequest` and `kAsioLatenciesChanged` to callbacks
13 instead of silently ignoring them
14- `sample_rate_did_change` now dispatches `AsioDriverEvent::SampleRateChanged` to registered
15 callbacks when the reported rate differs from the last known rate
16
17### Changed
18- `Driver::add_message_callback` and `Driver::remove_message_callback` replaced by
19 `Driver::add_event_callback` and `Driver::remove_event_callback`
20- `MessageCallback` renamed to `DriverEventCallback`, and `MessageCallbackId` renamed to
21 `DriverEventCallbackId`. `DriverEventCallback` wraps `Fn(AsioDriverEvent) -> bool` where
22 `AsioDriverEvent` is a new enum covering both `asioMessage` selector events and
23 `sampleRateDidChange` notifications
24- `CallbackId` renamed to `BufferCallbackId`
25- Public-facing `c_long` fields and return types replaced with `i32`
26- Public-facing `c_double` parameters and return types replaced with `f64`.
27- `Driver::latencies()` now returns `Latencies { input, output }`.
28- `Driver::buffersize_range()` now returns `BufferSizeRange { min, max }`.
29- `CallbackInfo::system_time` is now `u64` nanoseconds.
30- `AsioError::ASE_NoMemory` renamed to `AsioError::NoMemory`.
31- `AsioTime::reserved`, `AsioTimeInfo::reserved`, `AsioTimeCode::future` fields made private.
32- `asio_import` module is now `pub(crate)`; raw bindgen types are no longer public API
33- `asio_message` delegates `kAsioSelectorSupported` for unknown selectors to registered
34 callbacks, so each host decides which capabilities it opts into
35
36### Fixed
37- `Asio::load_driver` now returns `LoadDriverError::LoadDriverFailed` instead of panicking when the
38 driver name contains a null byte
39- Fixed TOCTOU race condition when creating streams concurrently
40- `Driver::set_sample_rate` now performs a dummy buffer cycle and driver reload when
41 the driver does not apply the rate change immediately, as required by some drivers
42 (e.g. Steinberg)
43- Fixed `asio_message` not advertising `kAsioSelectorSupported` itself as a supported selector
44- Fixed data race where `channels`, `latencies`, `sample_rate`, and related query methods could
45 call ASIO concurrently during `set_sample_rate`'s teardown/reload
46
47### Removed
48- Removed unused `SampleRate` struct
49- `DriverState` is no longer part of the public API
50
51## [0.2.6] - 2026-02-18
52
53### Fixed
54- Link `advapi32` to resolve Windows Registry API symbols
55
56## [0.2.5] - 2026-01-04
57
58### Fixed
59- Fixed ASIO SDK discovery on case sensitive filesystems
60
61## [0.2.4] - 2025-12-20
62
63### Fixed
64- Fixed docs.rs documentation build by generating stub bindings when building for docs.rs
65- Fixed buffer switch detection to work correctly with non-conformant ASIO drivers
66
67## [0.2.3] - 2025-12-12
68
69### Added
70- Added `edition = "2021"` and `rust-version = "1.70"` to Cargo.toml
71- Added README.md with usage documentation
72- Added CHANGELOG.md following Keep a Changelog format
73- Added rustfmt.toml for consistent formatting
74
75### Changed
76- Update `bindgen` to 0.72
77- Update `cc` to 1.2
78- Update `parse_cfg` to 4.1
79- Update enumerate example to use `pub type SampleRate = u32` instead of `pub struct SampleRate(pub u32)` for consistency with cpal
80
81### Fixed
82- Fix linker flags for MinGW cross-compilation
83- Add `packed(4)` to representation of ASIO time structs in bindings
84- Fix handling for `kAsioResetRequest` message to prevent driver UI becoming unresponsive
85- Fix timeinfo flags type
86
87## [0.2.2] - 2024-03-04
88
89### Added
90- Automate ASIO SDK download during build (no longer requires manual download)
91- Add support for `CPAL_ASIO_DIR` environment variable to use local SDK
92
93### Changed
94- Update `bindgen` to 0.59
95- Switch to `once_cell` from `lazy_static`
96- Improve build script error messages and SDK detection
97- Clean up build script structure
98- Re-run build script when `CPAL_ASIO_DIR` changes
99
100### Fixed
101- Fix segmentation fault during build on some systems
102- Fix various compiler warnings
103- Fix typos in code and comments
104
105## [0.2.1] - 2021-11-26
106
107### Changed
108- Update `bindgen` to 0.56
109
110### Fixed
111- Fix some typos and warnings
112
113## [0.2.0] - 2020-07-22
114
115### Changed
116- Update repository URL to https://github.com/RustAudio/cpal/
117
118## [0.1.0] - 2020-07-22
119
120Initial release.
121
122### Added
123- FFI bindings to Steinberg ASIO SDK
124- Automatic binding generation using bindgen
125- Support for MSVC toolchain on Windows
126- Basic error types: `AsioError`, `LoadDriverError`
127
128[Unreleased]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.6...HEAD
129[0.2.6]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.5...asio-sys-v0.2.6
130[0.2.5]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.4...asio-sys-v0.2.5
131[0.2.4]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.3...asio-sys-v0.2.4
132[0.2.3]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.2...asio-sys-v0.2.3
133[0.2.2]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.1...asio-sys-v0.2.2
134[0.2.1]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.2.0...asio-sys-v0.2.1
135[0.2.0]: https://github.com/RustAudio/cpal/compare/asio-sys-v0.1.0...asio-sys-v0.2.0
136[0.1.0]: https://github.com/RustAudio/cpal/releases/tag/asio-sys-v0.1.0