mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Update changelog, extra dbus tweaks
This commit is contained in:
@@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
### Changed
|
||||||
|
- Use DBUS_NAME instead of DBUS_IFACE when requesting the name
|
||||||
|
- Give different names for the bytearray arguments so that pydbus is not confused
|
||||||
|
- Add org.freedesktop.DBus.Method.NoReply annotations
|
||||||
|
- Remove dbus reply for multizone writes
|
||||||
|
|
||||||
## [0.11.0] - 2020-09-05
|
## [0.11.0] - 2020-09-05
|
||||||
### BREAKING CHANGE
|
### BREAKING CHANGE
|
||||||
|
|||||||
@@ -64,8 +64,6 @@ impl AuraDbusWriter {
|
|||||||
&mut self,
|
&mut self,
|
||||||
key_colour_array: &KeyColourArray,
|
key_colour_array: &KeyColourArray,
|
||||||
) -> Result<(), Box<dyn Error>> {
|
) -> Result<(), Box<dyn Error>> {
|
||||||
// self.connection.process(Duration::from_micros(300))?;
|
|
||||||
|
|
||||||
let group = key_colour_array.get();
|
let group = key_colour_array.get();
|
||||||
let mut msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "LedWriteEffect")?
|
let mut msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "LedWriteEffect")?
|
||||||
.append3(&group[0].to_vec(), &group[1].to_vec(), &group[2].to_vec())
|
.append3(&group[0].to_vec(), &group[1].to_vec(), &group[2].to_vec())
|
||||||
@@ -76,7 +74,7 @@ impl AuraDbusWriter {
|
|||||||
self.connection.send(msg).unwrap();
|
self.connection.send(msg).unwrap();
|
||||||
thread::sleep(Duration::from_micros(self.block_time));
|
thread::sleep(Duration::from_micros(self.block_time));
|
||||||
if self.stop.load(Ordering::Relaxed) {
|
if self.stop.load(Ordering::Relaxed) {
|
||||||
panic!("Go signal to stop!");
|
panic!("Got signal to stop!");
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@@ -86,20 +84,14 @@ impl AuraDbusWriter {
|
|||||||
&mut self,
|
&mut self,
|
||||||
group: &[[u8; LED_MSG_LEN]; 4],
|
group: &[[u8; LED_MSG_LEN]; 4],
|
||||||
) -> Result<String, Box<dyn std::error::Error>> {
|
) -> Result<String, Box<dyn std::error::Error>> {
|
||||||
self.connection.process(Duration::from_micros(300))?;
|
|
||||||
|
|
||||||
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "LedWriteMultizone")?
|
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "LedWriteMultizone")?
|
||||||
.append1(&group[0].to_vec())
|
.append1(&group[0].to_vec())
|
||||||
.append1(&group[1].to_vec())
|
.append1(&group[1].to_vec())
|
||||||
.append1(&group[2].to_vec())
|
.append1(&group[2].to_vec())
|
||||||
.append1(&group[3].to_vec());
|
.append1(&group[3].to_vec());
|
||||||
let r = self
|
msg.set_no_reply(true);
|
||||||
.connection
|
self.connection.send(msg).unwrap();
|
||||||
.send_with_reply_and_block(msg, Duration::from_millis(5000))?;
|
Ok(())
|
||||||
if let Some(reply) = r.get1::<&str>() {
|
|
||||||
return Ok(reply.to_owned());
|
|
||||||
}
|
|
||||||
Err(Box::new(dbus::Error::new_custom("name", "message")))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ pub(super) fn dbus_create_ledmultizone_method(effect: NestedVecType) -> Method<M
|
|||||||
.inarg::<Vec<u8>, _>("bytearray2")
|
.inarg::<Vec<u8>, _>("bytearray2")
|
||||||
.inarg::<Vec<u8>, _>("bytearray3")
|
.inarg::<Vec<u8>, _>("bytearray3")
|
||||||
.inarg::<Vec<u8>, _>("bytearray4")
|
.inarg::<Vec<u8>, _>("bytearray4")
|
||||||
|
.annotate("org.freedesktop.DBus.Method.NoReply", "true")
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn dbus_create_ledeffect_method(effect: NestedVecType) -> Method<MTSync, ()> {
|
pub(super) fn dbus_create_ledeffect_method(effect: NestedVecType) -> Method<MTSync, ()> {
|
||||||
@@ -158,18 +159,21 @@ pub(super) fn dbus_create_tree() -> (
|
|||||||
|
|
||||||
let factory = Factory::new_sync::<()>();
|
let factory = Factory::new_sync::<()>();
|
||||||
let effect_cancel_sig = Arc::new(factory.signal("LedCancelEffect", ()));
|
let effect_cancel_sig = Arc::new(factory.signal("LedCancelEffect", ()));
|
||||||
let tree = factory.tree(()).add(
|
let tree = factory
|
||||||
factory.object_path(DBUS_PATH, ()).introspectable().add(
|
.tree(())
|
||||||
factory
|
.add(
|
||||||
.interface(DBUS_IFACE, ())
|
factory.object_path(DBUS_PATH, ()).introspectable().add(
|
||||||
.add_m(dbus_create_ledmsg_method(input_bytes.clone()))
|
factory
|
||||||
.add_m(dbus_create_ledmultizone_method(input_effect.clone()))
|
.interface(DBUS_IFACE, ())
|
||||||
.add_m(dbus_create_ledeffect_method(input_effect.clone()))
|
.add_m(dbus_create_ledmsg_method(input_bytes.clone()))
|
||||||
.add_m(dbus_create_animatrix_method(animatrix_img.clone()))
|
.add_m(dbus_create_ledmultizone_method(input_effect.clone()))
|
||||||
.add_m(dbus_create_fan_mode_method(fan_mode.clone()))
|
.add_m(dbus_create_ledeffect_method(input_effect.clone()))
|
||||||
.add_s(effect_cancel_sig.clone()),
|
.add_m(dbus_create_animatrix_method(animatrix_img.clone()))
|
||||||
),
|
.add_m(dbus_create_fan_mode_method(fan_mode.clone()))
|
||||||
).add(factory.object_path("/", ()).introspectable());
|
.add_s(effect_cancel_sig.clone()),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.add(factory.object_path("/", ()).introspectable());
|
||||||
(
|
(
|
||||||
tree,
|
tree,
|
||||||
input_bytes,
|
input_bytes,
|
||||||
|
|||||||
Reference in New Issue
Block a user