Releases: SludgePhD/evdevil
Releases · SludgePhD/evdevil
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.
v0.3.3
- Try to fix the docs.rs render.
v0.3.2
- Try to fix the docs.rs render.
v0.3.1
- Try to fix the docs.rs render.
v0.3.0
Breaking Changes
HotplugMonitorno longer implementsIterator, but now implementsIntoIterator.HotplugMonitornow yieldsHotplugEvents instead of already-openedEvdevs.- Call
HotplugEvent::opento open the device.
- Call
hotplug::enumeratehas moved toenumerate_hotplugin the crate root.
New Features
Async
EventReader now allows reading events and reports via async.
This functionality requires enabling either the "tokio" or "async-io" Cargo features.
Note that a lot of evdev functionality cannot be made async and will always block.
Only reading events asynchronously via the EventReader is supported for now.
Other Changes
- FreeBSD: sleep after connecting to
devdto ensure no events go missing. - Mark some methods
#[inline]for more efficient code generation. - Don't redundantly invoke
fcntlif the non-blocking status is already what we want. - Implement
AsFdandIntoRawFdforHotplugMonitor. - Include device path in error message if opening fails.
- Add
Report::len, returning the number of events in theReport. - Device enumeration iterators have been made real types instead of
impl Iteratorand moved to
theenumeratemodule.
v0.2.3
- Update from
linux-ioctltouoctl1.0.
v0.2.2
- Support FreeBSD, and test it in CI.
- Improve error messages when some
ioctls fail.
v0.2.1
Fixes
- Fix
InvalidInputerror when creatingEventReaders for most devices.