mod events_sdl;
use rustzx_core::{
zx::{
joy::{
kempston::KempstonKey,
sinclair::{SinclairJoyNum, SinclairKey},
},
keys::{CompoundKey, ZXKey},
mouse::kempston::{KempstonMouseButton, KempstonMouseWheelDirection},
},
EmulationSpeed,
};
use std::path::PathBuf;
pub use events_sdl::EventsSdl;
pub enum Event {
ZXKey(ZXKey, bool),
CompoundKey(CompoundKey, bool),
Kempston(KempstonKey, bool),
Sinclair(SinclairJoyNum, SinclairKey, bool),
MouseMove { x: i8, y: i8 },
MouseButton(KempstonMouseButton, bool),
MouseWheel(KempstonMouseWheelDirection),
SwitchFrameTrace,
ChangeJoyKeyboardLayer(bool),
ChangeSpeed(EmulationSpeed),
InsertTape,
StopTape,
QuickSave,
QuickLoad,
OpenFile(PathBuf),
Exit,
}
pub trait EventDevice {
fn pop_event(&mut self) -> Option<Event>;
}