@@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
22
33use crate :: Direction ;
44
5- use super :: { EventSource , GamepadEvent , KeyEvent , MidiEvent , MouseEvent , UnknownEvent } ;
5+ use super :: { EventSource , GamepadEvent , KeyEvent , MidiEvent , MouseEvent , OrientationEvent , UnknownEvent } ;
66
77/// A user input event, as generated by the new frontend (LUNA).
88#[ derive( Debug , Serialize , Deserialize , PartialEq , Clone ) ]
@@ -12,6 +12,7 @@ pub enum InputEvent {
1212 Mouse ( MouseEvent ) ,
1313 Gamepad ( GamepadEvent ) ,
1414 Midi ( MidiEvent ) ,
15+ Orientation ( OrientationEvent ) ,
1516 #[ serde( untagged) ]
1617 Unknown ( UnknownEvent ) ,
1718}
@@ -23,6 +24,7 @@ impl InputEvent {
2324 InputEvent :: Key ( KeyEvent { source, .. } ) => source,
2425 InputEvent :: Mouse ( MouseEvent { source, .. } ) => source,
2526 InputEvent :: Gamepad ( GamepadEvent { source, .. } ) => source,
27+ InputEvent :: Orientation ( OrientationEvent { source, .. } ) => source,
2628 InputEvent :: Midi ( MidiEvent { source, .. } ) => source,
2729 InputEvent :: Unknown ( UnknownEvent { source, .. } ) => source,
2830 }
@@ -58,7 +60,7 @@ impl InputEvent {
5860mod tests {
5961 use serde_json:: json;
6062
61- use crate :: { Delta , EventSource , GamepadAxis2DEvent , GamepadAxisEvent , GamepadButtonEvent , GamepadControlEvent , GamepadEvent , InputEvent , KeyEvent , KeyModifiers , MouseButton , MouseEvent , Pos , UnknownEvent , Vec2 } ;
63+ use crate :: { Delta , EventSource , GamepadAxis2DEvent , GamepadAxisEvent , GamepadButtonEvent , GamepadControlEvent , GamepadEvent , InputEvent , KeyEvent , KeyModifiers , MouseButton , MouseEvent , OrientationEvent , Pos , UnknownEvent , Vec2 } ;
6264
6365 #[ test]
6466 fn key_event ( ) {
@@ -180,6 +182,27 @@ mod tests {
180182 ) ;
181183 }
182184
185+ #[ test]
186+ fn orientation_event ( ) {
187+ assert_eq ! (
188+ serde_json:: from_value:: <InputEvent >( json!( {
189+ "type" : "orientation" ,
190+ "source" : 1 ,
191+ "absolute" : false ,
192+ "alpha" : null,
193+ "beta" : 3.0 ,
194+ "gamma" : -10.0 ,
195+ } ) ) . unwrap( ) ,
196+ InputEvent :: Orientation ( OrientationEvent {
197+ source: EventSource :: Int ( 1 ) ,
198+ absolute: Some ( false ) ,
199+ alpha: None ,
200+ beta: Some ( 3.0 ) ,
201+ gamma: Some ( -10.0 ) ,
202+ } )
203+ )
204+ }
205+
183206 #[ test]
184207 fn unknown_event ( ) {
185208 assert_eq ! (
0 commit comments