config: add various new functions
This commit is contained in:
parent
f1a3705699
commit
e24a61bc62
12 changed files with 435 additions and 28 deletions
|
|
@ -506,6 +506,14 @@ impl Client {
|
|||
self.send(&ClientMessage::SetEnv { key, val });
|
||||
}
|
||||
|
||||
pub fn set_log_level(&self, level: LogLevel) {
|
||||
self.send(&ClientMessage::SetLogLevel { level })
|
||||
}
|
||||
|
||||
pub fn unset_env(&self, key: &str) {
|
||||
self.send(&ClientMessage::UnsetEnv { key });
|
||||
}
|
||||
|
||||
pub fn set_status(&self, status: &str) {
|
||||
self.send(&ClientMessage::SetStatus { status });
|
||||
}
|
||||
|
|
@ -580,6 +588,12 @@ impl Client {
|
|||
self.send(&ClientMessage::DisableDefaultSeat);
|
||||
}
|
||||
|
||||
pub fn connector_get_position(&self, connector: Connector) -> (i32, i32) {
|
||||
let res = self.send_with_response(&ClientMessage::ConnectorGetPosition { connector });
|
||||
get_response!(res, (0, 0), ConnectorGetPosition { x, y });
|
||||
(x, y)
|
||||
}
|
||||
|
||||
pub fn connector_set_position(&self, connector: Connector, x: i32, y: i32) {
|
||||
self.send(&ClientMessage::ConnectorSetPosition { connector, x, y });
|
||||
}
|
||||
|
|
@ -595,9 +609,49 @@ impl Client {
|
|||
});
|
||||
}
|
||||
|
||||
pub fn device_connectors(&self, device: DrmDevice) -> Vec<Connector> {
|
||||
let res = self.send_with_response(&ClientMessage::GetDeviceConnectors { device });
|
||||
get_response!(res, vec![], GetDeviceConnectors { connectors });
|
||||
pub fn connector_get_name(&self, connector: Connector) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetConnectorName { connector });
|
||||
get_response!(res, String::new(), GetConnectorName { name });
|
||||
name
|
||||
}
|
||||
|
||||
pub fn connector_get_model(&self, connector: Connector) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetConnectorModel { connector });
|
||||
get_response!(res, String::new(), GetConnectorModel { model });
|
||||
model
|
||||
}
|
||||
|
||||
pub fn connector_get_manufacturer(&self, connector: Connector) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetConnectorManufacturer { connector });
|
||||
get_response!(
|
||||
res,
|
||||
String::new(),
|
||||
GetConnectorManufacturer { manufacturer }
|
||||
);
|
||||
manufacturer
|
||||
}
|
||||
|
||||
pub fn connector_get_serial_number(&self, connector: Connector) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetConnectorSerialNumber { connector });
|
||||
get_response!(
|
||||
res,
|
||||
String::new(),
|
||||
GetConnectorSerialNumber { serial_number }
|
||||
);
|
||||
serial_number
|
||||
}
|
||||
|
||||
pub fn connectors(&self, device: Option<DrmDevice>) -> Vec<Connector> {
|
||||
if let Some(device) = device {
|
||||
let res = self.send_with_response(&ClientMessage::GetDeviceConnectors { device });
|
||||
get_response!(res, vec![], GetConnectors { connectors });
|
||||
return connectors;
|
||||
}
|
||||
let res = self.send_with_response(&ClientMessage::GetConnectors {
|
||||
device,
|
||||
connected_only: false,
|
||||
});
|
||||
get_response!(res, vec![], GetConnectors { connectors });
|
||||
connectors
|
||||
}
|
||||
|
||||
|
|
@ -607,6 +661,12 @@ impl Client {
|
|||
syspath
|
||||
}
|
||||
|
||||
pub fn drm_device_devnode(&self, device: DrmDevice) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetDrmDeviceDevnode { device });
|
||||
get_response!(res, String::new(), GetDrmDeviceDevnode { devnode });
|
||||
devnode
|
||||
}
|
||||
|
||||
pub fn drm_device_vendor(&self, device: DrmDevice) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetDrmDeviceVendor { device });
|
||||
get_response!(res, String::new(), GetDrmDeviceVendor { vendor });
|
||||
|
|
@ -727,6 +787,22 @@ impl Client {
|
|||
self.on_devices_enumerated.set(Some(Box::new(f)));
|
||||
}
|
||||
|
||||
pub fn config_dir(&self) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetConfigDir);
|
||||
get_response!(res, String::new(), GetConfigDir { dir });
|
||||
dir
|
||||
}
|
||||
|
||||
pub fn workspaces(&self) -> Vec<Workspace> {
|
||||
let res = self.send_with_response(&ClientMessage::GetWorkspaces);
|
||||
get_response!(res, vec![], GetWorkspaces { workspaces });
|
||||
workspaces
|
||||
}
|
||||
|
||||
pub fn set_idle(&self, timeout: Duration) {
|
||||
self.send(&ClientMessage::SetIdle { timeout })
|
||||
}
|
||||
|
||||
pub fn set_seat(&self, device: InputDevice, seat: Seat) {
|
||||
self.send(&ClientMessage::SetSeat { device, seat })
|
||||
}
|
||||
|
|
@ -776,6 +852,18 @@ impl Client {
|
|||
name
|
||||
}
|
||||
|
||||
pub fn input_device_syspath(&self, device: InputDevice) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetInputDeviceSyspath { device });
|
||||
get_response!(res, String::new(), GetInputDeviceSyspath { syspath });
|
||||
syspath
|
||||
}
|
||||
|
||||
pub fn input_device_devnode(&self, device: InputDevice) -> String {
|
||||
let res = self.send_with_response(&ClientMessage::GetInputDeviceDevnode { device });
|
||||
get_response!(res, String::new(), GetInputDeviceDevnode { devnode });
|
||||
devnode
|
||||
}
|
||||
|
||||
pub fn has_capability(&self, device: InputDevice, cap: Capability) -> bool {
|
||||
let res = self.send_with_response(&ClientMessage::HasCapability { device, cap });
|
||||
get_response!(res, false, HasCapability { has });
|
||||
|
|
|
|||
|
|
@ -385,6 +385,45 @@ pub enum ClientMessage<'a> {
|
|||
DestroyKeymap {
|
||||
keymap: Keymap,
|
||||
},
|
||||
GetConnectorName {
|
||||
connector: Connector,
|
||||
},
|
||||
GetConnectorModel {
|
||||
connector: Connector,
|
||||
},
|
||||
GetConnectorManufacturer {
|
||||
connector: Connector,
|
||||
},
|
||||
GetConnectorSerialNumber {
|
||||
connector: Connector,
|
||||
},
|
||||
GetConnectors {
|
||||
device: Option<DrmDevice>,
|
||||
connected_only: bool,
|
||||
},
|
||||
ConnectorGetPosition {
|
||||
connector: Connector,
|
||||
},
|
||||
GetConfigDir,
|
||||
GetWorkspaces,
|
||||
UnsetEnv {
|
||||
key: &'a str,
|
||||
},
|
||||
SetLogLevel {
|
||||
level: LogLevel,
|
||||
},
|
||||
GetDrmDeviceDevnode {
|
||||
device: DrmDevice,
|
||||
},
|
||||
GetInputDeviceSyspath {
|
||||
device: InputDevice,
|
||||
},
|
||||
GetInputDeviceDevnode {
|
||||
device: InputDevice,
|
||||
},
|
||||
SetIdle {
|
||||
timeout: Duration,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
@ -444,7 +483,7 @@ pub enum Response {
|
|||
GetFullscreen {
|
||||
fullscreen: bool,
|
||||
},
|
||||
GetDeviceConnectors {
|
||||
GetConnectors {
|
||||
connectors: Vec<Connector>,
|
||||
},
|
||||
GetDrmDeviceSyspath {
|
||||
|
|
@ -493,6 +532,37 @@ pub enum Response {
|
|||
AddPollable {
|
||||
id: Result<PollableId, String>,
|
||||
},
|
||||
GetConnectorName {
|
||||
name: String,
|
||||
},
|
||||
GetConnectorModel {
|
||||
model: String,
|
||||
},
|
||||
GetConnectorManufacturer {
|
||||
manufacturer: String,
|
||||
},
|
||||
GetConnectorSerialNumber {
|
||||
serial_number: String,
|
||||
},
|
||||
ConnectorGetPosition {
|
||||
x: i32,
|
||||
y: i32,
|
||||
},
|
||||
GetConfigDir {
|
||||
dir: String,
|
||||
},
|
||||
GetWorkspaces {
|
||||
workspaces: Vec<Workspace>,
|
||||
},
|
||||
GetDrmDeviceDevnode {
|
||||
devnode: String,
|
||||
},
|
||||
GetInputDeviceSyspath {
|
||||
syspath: String,
|
||||
},
|
||||
GetInputDeviceDevnode {
|
||||
devnode: String,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue