Releases: SludgePhD/evdevil
Releases · SludgePhD/evdevil
v0.5.0
Breaking Changes
EffectKindno longer implementsEq.Effect::kind()now returnsEffectKindinstead ofOption<EffectKind>.ForceFeedbackEvent::code()now returnsForceFeedbackCodeinstead ofOption<ForceFeedbackCode>.EventKind::Otherhas been renamed and hidden, and is no longer part of the public API.UnknownVarianterror type is now calledParseVariantError.- The
From<UnknownVariant> for io::Errorimplementation has been removed.
- The
Effect::direction()now uses aDirectionwrapper type.- The
logfunctionality is now hidden behind a"log"Cargo feature (enabled by default). Evdev::set_X_masknow accepts animpl IntoIteratorargument rather than a&BitSet<V>.- Previously deprecated APIs have been removed.
Other Changes
Condition-based force-feedback effects (Spring,Friction, …) now have explicit constructors
in addition to theFromimplementations.- Added new
BusandInputPropconstants from upstream.
v0.4.6
Fixes
- Fix the return value of
BitSet::insertto match the documentation. - Make validation of values to be inserted into a
BitSetless strict, to permit the same set of
BitSets that the kernel will produce.
v0.4.5
Deprecations
- The
Evdev::writemethod was deprecated in favor of a newEvdev::write_eventsmethod, to align the naming withread_events.- Similar deprecations have been performed for other types.
Other Changes
- No longer map
ENODEVtoErrorKind::NotFoundwhen opening anEvdev(instead ofErrorKind::Uncategorized).- This reverts a change was previously introduced in v0.4.3.
- Users of
Evdev::openalready had to handleENODEVregardless of this mapping,
so nothing changes for correct applications.
Both types of errors were possible before, and remain possible after the change.
v0.4.4
Improvements
- Add new event codes from upstream.
- Depend on
serde_coreinstead ofserdewhen the"serde"feature is enabled. - Don't report
ENODEVerrors to callers when enumerating devices that disappeared. - Document the possible error types when opening a device.
v0.4.3
Improvements
- Add
EffectId::{from_raw, raw}to allow conversion from/to raw integers. - Map
ENODEVtoErrorKind::NotFoundwhen opening anEvdev(instead ofErrorKind::Uncategorized).
v0.4.2
Improvements
- Add
UinputDevice::async_eventsfor asynchronously reading from a uinput device. - Add
UinputDevice::read_eventsto mirrorEvdev::read_events. - Minor documentation improvements.
v0.4.1
Fixes
- Don't clamp the value of absolute axes in
EventReader.- This fixes usage with certain drivers that deliberately send out-of-range axis values.
v0.4.0
Breaking Changes
- Removed
FromRawFdimplementation ofUinputDevice.- Replaced with
UinputDevice::from_owned_fd.
- Replaced with
- Removed
Evdev::path(Evdevno longer stores the path it was opened from).enumerateandenumerate_hotplugnow yield(PathBuf, Evdev).
- Removed all
MAXandCNTconstants from event code types. - Shortened lifetime of
Effects returned byForceFeedbackUploadto be tied to&self. - Remove all
namemethods from event code types.- Codes can instead be formatted via
Debugor serialized with serde to obtain the name.
- Codes can instead be formatted via
- Removed all deprecated functionality.
Improvements
- Added
rawandfrom_rawfunctions to all types that wrap an integer and didn't already have them. - Added
Switch::USB_INSERT. - Yield paths alongside devices when enumerating.
- Document more clearly that new enumeration constants can be added in minor releases.
- Document the
evdevdevice lifecycle. - Add a few missing setters to force-feedback types.
EventReader::valid_slotsnow returns a real iterator type instead ofimpl Iterator.
Fixes
- Limit number of reports processed by
EventReader::update, to prevent getting stuck in there forever. - Made
enumerate_hotplug()more robust, avoiding duplicate devices. - Don't wrap
ENODEVin a custom error, making it easier to detect unplugged devices.
v0.3.5
Fixes
- Fix a panic in
examples/keymap.rs. - Fix all-zero
Scancodes being printed as the empty string.
Improvements
- Include the
/dev/uinputpath in theio::Errorwhen opening the device fails. - Run the unit tests on Big Endian emulation in CI.
v0.3.4
Improvements
- Add a few missing getters for force-feedback types.
- Derive
PartialOrdandOrdforEffectId. - Rename
with_device_idtowith_input_id(with deprecation). - Rename the
ForceFeedbackEventconstructors to more evocative names (with deprecation). - Add
#[inline]to more functions.
Fixes
- Fix a bug where uninitialized bytes would be unsoundly reinterpreted as
&[u8]when reading events from aUinputDevice. - Fix the
PartialEqimplementation ofPeriodicnot comparing custom waveform data.
Other changes
- Improved documentation a bit.
- Deduplicated the internal implementation so that all event I/O happens in two root functions.
- Audited the crate for Undefined Behavior.
- Run CI on aarch64 Linux (GNU and musl).
- Add the crate to the
os::freebsd-apiscategory on crates.io.