-
Create a
...Event
struct for eachEventType
to hold theInputEvent
- Guarantee that each
...Event
struct can only hold aInputEvent
of the correspondingEventType
- Guarantee that each
-
Demonstrate what the
FFEvent
does in theforce_feedback
example. -
Device
,RawDevice
, andVirtualDevice
now implementAsFd
. -
VirtualDevice::builder()
as an alias forVirtualDeviceBuilder::new()
VirtualDeviceBuilder::new()
is now deprecated.
-
Removed the
evdev::Error
type - fallible functions now just returnio::Error
. -
Consistent naming and structure of all new-types for event-codes
- Some of them where previously named
...Type
now they are all named...Code
- Rename
InputEventKind
toEventSummary
- Created missing
EventSummary
variants. I know some of them are kind of unused but it is less confusing if they are all there and look the same. - Each variant of the
EventSummary
enum now has the structureVariant(...Event, ...Type, value)
- Renamed
Key
struct (the one with all the Key constants) toKeyCode
to keep the naming consistent!
- Some of them where previously named
-
Rename
InputEvent::kind
toInputEvent::destructure
this now returns aEventSummary
-
InputEvent::new
no longer takes theEventType
butu16
as first argument. If theEventType
is known we can directly construct the correct variant. -
Ensure the unsafe code still does what we expect.
-
Update the Examples.
-
The minimum supported rust version (MSRV) is now
1.63
, due toAsFd
support. -
In order for the
EventStream
types to implement Stream, thestream-trait
feature must now be specified. -
FFEffect
andAutoRepeat
are now defined in the root of the crate instead of inraw_stream
. -
VirtualDeviceBuilder::with_phys
now accepts a&CStr
instead of a&str
.
- Update
VirtualDevice::fetch_events
to yieldInputEvent
s instead ofUInputEvent
s. That was a bug which was not accounted for be the type system. YieldingUInputEvent
s there will now panic.
&AttributeSetRef
and&mut AttributeSetRef
now implementDefault
.&AttributeSetRef
now implementsIntoIterator
.AttributeSet
now implementsFromIterator<&T>
.
enumerate_dev_nodes[_blocking]
now always returns a path to a file in/dev/input
- Add
Device::max_ff_effects()
to return the maximum number of force feedback effects that can be played simultaneously. - Add support for
EV_MSC
(miscellaneous events) toVirtualDeviceBuilder
. - Add support for device properties to
VirtualDeviceBuilder
.
- Examples now show the device path of the virtual device.
- Avoid infinite loop in
DevNodes::next_entry()
. - Fix issue on 32-bit platforms where
tv_sec
(time_t
) is 32-bit. - Fix documentation links.
- Document all the features (on docs.rs).
- Document
FFEffect
. - Publicly export
FFEffect
from root. - Add
FFEffect::id()
as an accessor for the effect ID. - Add missing
EventStream::device_mut()
insync_stream.rs
.
- Make sure that the
DevNodesBlocking
iterator is not blocking indefinitely when all entries in the directory have been exhausted. - Fix incorrect cast in
eviocrmff
to support 32-bit platforms #82. - FreeBSD support #88.
- Add a
CHANGELOG.md
with a changelog for each new release. - Force feedback support #74.
- Implement serde support for
evdev_enum!
types andInputEventKind
#76. - Implement
VirtualDevice::get_sys_path()
as well as an iterator over the device node paths for virtual devices #72. - Implement an
Error
type #75. - Add
EventStream::device_mut()
to get a mutable reference toRawDevice
#73. - Add support for absolute axes for virtual devices #71.
- Documentation and code tidying #67.
- Introduce
RawDevice::sys_path
andDevice::sys_path
#62. - Implement
FromIterator
forAttributeSet
.
- Update bitvec to 1.0.
- Introduce
RawDevice::send_event
andDevice::send_event
to toggle LEDs, play sounds and play force feedback effects #60.
- Fix a bug in
compensate_events
where it returned the same event when invokingnext()
multiple times #61.
- Update bitvec to 1.0.0-rc1.
- Implement
Device::grab
andDevice::ungrab
- Implement
VirtualDeviceBuilder::with_switches
. - Support autorepeats and getting keymap entries.
- Update nix to 0.23.