input: move shared types into workspace crate
This commit is contained in:
parent
54aefd8c41
commit
151dc313ba
5 changed files with 126 additions and 70 deletions
9
Cargo.lock
generated
9
Cargo.lock
generated
|
|
@ -738,6 +738,7 @@ dependencies = [
|
||||||
"jay-formats",
|
"jay-formats",
|
||||||
"jay-geometry",
|
"jay-geometry",
|
||||||
"jay-gfx-types",
|
"jay-gfx-types",
|
||||||
|
"jay-input-types",
|
||||||
"jay-io-uring",
|
"jay-io-uring",
|
||||||
"jay-layout-animation",
|
"jay-layout-animation",
|
||||||
"jay-libinput",
|
"jay-libinput",
|
||||||
|
|
@ -908,6 +909,14 @@ dependencies = [
|
||||||
"uapi",
|
"uapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jay-input-types"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"jay-utils",
|
||||||
|
"linearize",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jay-io-uring"
|
name = "jay-io-uring"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ members = [
|
||||||
"bugs",
|
"bugs",
|
||||||
"logger",
|
"logger",
|
||||||
"video-types",
|
"video-types",
|
||||||
|
"input-types",
|
||||||
"gfx-types",
|
"gfx-types",
|
||||||
"theme",
|
"theme",
|
||||||
"clientmem",
|
"clientmem",
|
||||||
|
|
@ -97,6 +98,7 @@ jay-pr-caps = { version = "0.1.0", path = "pr-caps" }
|
||||||
jay-bugs = { version = "0.1.0", path = "bugs" }
|
jay-bugs = { version = "0.1.0", path = "bugs" }
|
||||||
jay-logger = { version = "0.1.0", path = "logger" }
|
jay-logger = { version = "0.1.0", path = "logger" }
|
||||||
jay-video-types = { version = "0.1.0", path = "video-types" }
|
jay-video-types = { version = "0.1.0", path = "video-types" }
|
||||||
|
jay-input-types = { version = "0.1.0", path = "input-types" }
|
||||||
jay-gfx-types = { version = "0.1.0", path = "gfx-types" }
|
jay-gfx-types = { version = "0.1.0", path = "gfx-types" }
|
||||||
jay-theme = { version = "0.1.0", path = "theme" }
|
jay-theme = { version = "0.1.0", path = "theme" }
|
||||||
jay-clientmem = { version = "0.1.0", path = "clientmem" }
|
jay-clientmem = { version = "0.1.0", path = "clientmem" }
|
||||||
|
|
|
||||||
12
input-types/Cargo.toml
Normal file
12
input-types/Cargo.toml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
[package]
|
||||||
|
name = "jay-input-types"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
license = "GPL-3.0-only"
|
||||||
|
description = "Input data types for the Jay compositor"
|
||||||
|
repository = "https://github.com/mahkoh/jay"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
jay-utils = { version = "0.1.0", path = "../utils" }
|
||||||
|
|
||||||
|
linearize = { version = "0.1.3", features = ["derive"] }
|
||||||
98
input-types/src/lib.rs
Normal file
98
input-types/src/lib.rs
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
use {
|
||||||
|
jay_utils::static_text::StaticText,
|
||||||
|
linearize::Linearize,
|
||||||
|
std::ops::{BitOr, BitOrAssign},
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Linearize)]
|
||||||
|
pub enum InputDeviceAccelProfile {
|
||||||
|
Flat,
|
||||||
|
Adaptive,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl StaticText for InputDeviceAccelProfile {
|
||||||
|
fn text(&self) -> &'static str {
|
||||||
|
match self {
|
||||||
|
InputDeviceAccelProfile::Flat => "Flat",
|
||||||
|
InputDeviceAccelProfile::Adaptive => "Adaptive",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Linearize)]
|
||||||
|
pub enum InputDeviceClickMethod {
|
||||||
|
None,
|
||||||
|
ButtonAreas,
|
||||||
|
Clickfinger,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl StaticText for InputDeviceClickMethod {
|
||||||
|
fn text(&self) -> &'static str {
|
||||||
|
match self {
|
||||||
|
InputDeviceClickMethod::None => "none",
|
||||||
|
InputDeviceClickMethod::ButtonAreas => "button-areas",
|
||||||
|
InputDeviceClickMethod::Clickfinger => "clickfinger",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||||
|
pub enum KeyState {
|
||||||
|
Released,
|
||||||
|
Pressed,
|
||||||
|
Repeated,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||||
|
pub enum ButtonState {
|
||||||
|
Released,
|
||||||
|
Pressed,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Eq, PartialEq, Linearize)]
|
||||||
|
pub enum ScrollAxis {
|
||||||
|
Vertical = 0,
|
||||||
|
Horizontal = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||||
|
pub enum AxisSource {
|
||||||
|
Wheel,
|
||||||
|
Finger,
|
||||||
|
Continuous,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub const AXIS_120: i32 = 120;
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Default, Eq, PartialEq)]
|
||||||
|
pub struct Leds(pub u32);
|
||||||
|
|
||||||
|
pub const LED_NUM_LOCK: Leds = Leds(1 << 0);
|
||||||
|
pub const LED_CAPS_LOCK: Leds = Leds(1 << 1);
|
||||||
|
pub const LED_SCROLL_LOCK: Leds = Leds(1 << 2);
|
||||||
|
pub const LED_COMPOSE: Leds = Leds(1 << 3);
|
||||||
|
pub const LED_KANA: Leds = Leds(1 << 4);
|
||||||
|
|
||||||
|
impl Leds {
|
||||||
|
pub const fn none() -> Self {
|
||||||
|
Self(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub const fn raw(self) -> u32 {
|
||||||
|
self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BitOr for Leds {
|
||||||
|
type Output = Self;
|
||||||
|
|
||||||
|
fn bitor(self, rhs: Self) -> Self::Output {
|
||||||
|
Self(self.0 | rhs.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BitOrAssign for Leds {
|
||||||
|
fn bitor_assign(&mut self, rhs: Self) {
|
||||||
|
self.0 |= rhs.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,6 @@ use {
|
||||||
TabletStripEventSource, TabletToolChanges, TabletToolId, TabletToolInit,
|
TabletStripEventSource, TabletToolChanges, TabletToolId, TabletToolInit,
|
||||||
ToolButtonState,
|
ToolButtonState,
|
||||||
},
|
},
|
||||||
wl_pointer::{CONTINUOUS, FINGER, HORIZONTAL_SCROLL, VERTICAL_SCROLL, WHEEL},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
libinput::consts::DeviceCapability,
|
libinput::consts::DeviceCapability,
|
||||||
|
|
@ -43,6 +42,11 @@ use {
|
||||||
|
|
||||||
pub mod transaction;
|
pub mod transaction;
|
||||||
|
|
||||||
|
pub use jay_input_types::{
|
||||||
|
AXIS_120, AxisSource, ButtonState, InputDeviceAccelProfile, InputDeviceClickMethod, KeyState,
|
||||||
|
LED_CAPS_LOCK, LED_COMPOSE, LED_KANA, LED_NUM_LOCK, LED_SCROLL_LOCK, Leds, ScrollAxis,
|
||||||
|
};
|
||||||
|
|
||||||
linear_ids!(ConnectorIds, ConnectorId);
|
linear_ids!(ConnectorIds, ConnectorId);
|
||||||
linear_ids!(InputDeviceIds, InputDeviceId);
|
linear_ids!(InputDeviceIds, InputDeviceId);
|
||||||
linear_ids!(DrmDeviceIds, DrmDeviceId);
|
linear_ids!(DrmDeviceIds, DrmDeviceId);
|
||||||
|
|
@ -316,38 +320,6 @@ impl InputDeviceCapability {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Linearize)]
|
|
||||||
pub enum InputDeviceAccelProfile {
|
|
||||||
Flat,
|
|
||||||
Adaptive,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl StaticText for InputDeviceAccelProfile {
|
|
||||||
fn text(&self) -> &'static str {
|
|
||||||
match self {
|
|
||||||
InputDeviceAccelProfile::Flat => "Flat",
|
|
||||||
InputDeviceAccelProfile::Adaptive => "Adaptive",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Linearize)]
|
|
||||||
pub enum InputDeviceClickMethod {
|
|
||||||
None,
|
|
||||||
ButtonAreas,
|
|
||||||
Clickfinger,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl StaticText for InputDeviceClickMethod {
|
|
||||||
fn text(&self) -> &'static str {
|
|
||||||
match self {
|
|
||||||
InputDeviceClickMethod::None => "none",
|
|
||||||
InputDeviceClickMethod::ButtonAreas => "button-areas",
|
|
||||||
InputDeviceClickMethod::Clickfinger => "clickfinger",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub enum BackendEvent {
|
pub enum BackendEvent {
|
||||||
NewDrmDevice(Rc<dyn BackendDrmDevice>),
|
NewDrmDevice(Rc<dyn BackendDrmDevice>),
|
||||||
NewConnector(Rc<dyn Connector>),
|
NewConnector(Rc<dyn Connector>),
|
||||||
|
|
@ -355,43 +327,6 @@ pub enum BackendEvent {
|
||||||
DevicesEnumerated,
|
DevicesEnumerated,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
|
||||||
pub enum KeyState {
|
|
||||||
Released,
|
|
||||||
Pressed,
|
|
||||||
Repeated,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
|
||||||
pub enum ButtonState {
|
|
||||||
Released,
|
|
||||||
Pressed,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Linearize)]
|
|
||||||
pub enum ScrollAxis {
|
|
||||||
Horizontal = HORIZONTAL_SCROLL as _,
|
|
||||||
Vertical = VERTICAL_SCROLL as _,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
|
||||||
pub enum AxisSource {
|
|
||||||
Wheel = WHEEL as _,
|
|
||||||
Finger = FINGER as _,
|
|
||||||
Continuous = CONTINUOUS as _,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const AXIS_120: i32 = 120;
|
|
||||||
|
|
||||||
bitflags! {
|
|
||||||
Leds: u32;
|
|
||||||
LED_NUM_LOCK,
|
|
||||||
LED_CAPS_LOCK,
|
|
||||||
LED_SCROLL_LOCK,
|
|
||||||
LED_COMPOSE,
|
|
||||||
LED_KANA,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum InputEvent {
|
pub enum InputEvent {
|
||||||
Key {
|
Key {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue