Rework events and add proper support for client events

Added

- Client events are now implemented through `SimConnect::subscribe_to_client_event`, `SimConnect::unsubscribe_from_client_event` and `SimConnect::unsubscribe_from_all_client_events`.
- `subscribe_to_client_events.rs` example has been added.
- `SimConnectError::EventAlreadySubscribedTo` and `SimConnectError::EventNotSubscribedTo` error variants have been added.

Changed

- A second call to `SimConnect::subscribe_to_system_event` for the same event will now return an error of type `SimConnectError::EventAlreadySubscribedTo` instead of `SimConnectError::SimConnectException`.
- The call to `SimConnect::unsubscribe_from_system_event` is now a NOOP when the system event is not subscribed to.
- `SimConnectError::UnimplementedMessageType` has been renamed to `SimConnectError::UnimplementedNotification`.

Removed

- `SimConnect::register_event` has been replaced by the new client event functions.
- `NotificationGroup` has been removed in favor of an internally managed notification group.
This commit is contained in:
Mihai Dinculescu
2023-05-01 19:04:55 +01:00
parent 85e5341599
commit d89fa524c2
16 changed files with 510 additions and 141 deletions

View File

@@ -30,8 +30,12 @@ name = "facilities"
path = "src/facilities.rs"
[[bin]]
name = "system_events"
path = "src/system_events.rs"
name = "subscribe_to_client_events"
path = "src/subscribe_to_client_events.rs"
[[bin]]
name = "subscribe_to_system_events"
path = "src/subscribe_to_system_events.rs"
[dependencies]
tracing = "0.1"