asio-sys 0.3.0
·
9 commits
to master
since this release
Added
- Added
Driver::latencies()to query input and output stream latencies - Added
BufferPreferenceenum with the driver's preferred buffer size and valid-size constraints
Changed
Driver::add_message_callbackandDriver::remove_message_callbackreplaced byDriver::add_event_callbackandDriver::remove_event_callbackMessageCallbackrenamed toDriverEventCallback, andMessageCallbackIdrenamed toDriverEventCallbackId.DriverEventCallbackwrapsFn(AsioDriverEvent) -> boolwhereAsioDriverEventis a new enum covering bothasioMessageselector events andsampleRateDidChangenotificationsCallbackIdrenamed toBufferCallbackId- Public-facing
c_longfields and return types replaced withi32 - Public-facing
c_doubleparameters and return types replaced withf64 CallbackInfo::system_timeis nowu64nanosecondsAsioError::ASE_NoMemoryrenamed toAsioError::NoMemory- Extended
BufferSizeRangewith apreferred: BufferPreferencefield AsioTime::reserved,AsioTimeInfo::reserved,AsioTimeCode::futurefields made private.asio_importmodule is nowpub(crate); raw bindgen types are no longer public APIasio_messagenow dispatcheskAsioResyncRequestandkAsioLatenciesChangedto callbacksasio_messagedelegateskAsioSelectorSupportedfor unknown selectors to registered callbacks, so each host decides which capabilities it opts intosample_rate_did_changenow dispatchesAsioDriverEvent::SampleRateChangedto registered callbacks when the reported rate differs from the last known rate
Fixed
- Fixed TOCTOU race condition when creating streams concurrently
- Fixed data race where
channels,latencies,sample_rate, and related query methods could call ASIO concurrently duringset_sample_rate's teardown/reload - Fixed
Asio::load_driverto returnLoadDriverError::LoadDriverFailedinstead of panicking when the driver name contains a null byte - Fixed
Driver::set_sample_rateto perform 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 rust-analyzer errors on non-Windows targets by using stub instead of ASIO bindings
Removed
- Removed unused
SampleRatestruct - Removed
DriverStatefrom the public API