DeviceHaptics task
This commit is contained in:
@@ -10,7 +10,7 @@ use crate::{
|
||||
use crate::{
|
||||
backend::{
|
||||
self,
|
||||
task::{OverlayTask, TaskType},
|
||||
task::{InputTask, OverlayTask, TaskType},
|
||||
},
|
||||
ipc::signal::WayVRSignal,
|
||||
overlays::{self},
|
||||
@@ -160,6 +160,10 @@ where
|
||||
wayland_server.pending_haptics = Some(haptics);
|
||||
}
|
||||
}
|
||||
WayVRSignal::DeviceHaptics(device, haptics) => {
|
||||
app.tasks
|
||||
.enqueue(TaskType::Input(InputTask::Haptics { device, haptics }));
|
||||
}
|
||||
WayVRSignal::DropOverlay(overlay_id) => {
|
||||
app.tasks
|
||||
.enqueue(TaskType::Overlay(OverlayTask::Drop(OverlaySelector::Id(
|
||||
|
||||
@@ -507,6 +507,21 @@ impl Connection {
|
||||
}));
|
||||
}
|
||||
|
||||
fn handle_wlx_device_haptics(
|
||||
params: &mut TickParams,
|
||||
device: usize,
|
||||
haptics_params: packet_client::WlxHapticsParams,
|
||||
) {
|
||||
params.signals.send(WayVRSignal::DeviceHaptics(
|
||||
device,
|
||||
crate::backend::input::Haptics {
|
||||
duration: haptics_params.duration,
|
||||
frequency: haptics_params.frequency,
|
||||
intensity: haptics_params.intensity,
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
fn handle_wlx_panel(
|
||||
params: &mut TickParams,
|
||||
custom_params: packet_client::WlxModifyPanelParams,
|
||||
@@ -606,6 +621,9 @@ impl Connection {
|
||||
#[cfg(feature = "wayvr")]
|
||||
Self::handle_wlx_haptics(params, haptics_params);
|
||||
}
|
||||
PacketClient::WlxDeviceHaptics(device, haptics_params) => {
|
||||
Self::handle_wlx_device_haptics(params, device, haptics_params);
|
||||
}
|
||||
PacketClient::WlxModifyPanel(custom_params) => {
|
||||
Self::handle_wlx_panel(params, custom_params);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ pub enum WayVRSignal {
|
||||
BroadcastStateChanged(wayvr_ipc::packet_server::WvrStateChanged),
|
||||
#[cfg(feature = "wayvr")]
|
||||
Haptics(crate::backend::input::Haptics),
|
||||
DeviceHaptics(usize, crate::backend::input::Haptics),
|
||||
DropOverlay(crate::windowing::OverlayID),
|
||||
CustomTask(crate::backend::task::ModifyPanelTask),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user