summaryrefslogtreecommitdiff
path: root/src/d_bus_commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/d_bus_commands.c')
-rw-r--r--src/d_bus_commands.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/d_bus_commands.c b/src/d_bus_commands.c
index 5cb5767..8ae2351 100644
--- a/src/d_bus_commands.c
+++ b/src/d_bus_commands.c
@@ -64,6 +64,15 @@ const char* get_dbus_command_member_string(int cmd, const command_dbus_member_t*
return NULL;
}
+const dbus_value_variant_t* get_dbus_command_member_variant(int cmd, const command_dbus_member_t* values)
+{
+ for(const command_dbus_member_t* current = values; current->member.type != NULL; current++)
+ {
+ if(current->command == cmd)return &(current->member);
+ }
+ return NULL;
+}
+
const command_dbus_member_t* get_dbus_command_by_member(const char* member, const command_dbus_member_t* values)
{
for(const command_dbus_member_t* current = values; current->member.type != NULL; current++)
@@ -85,9 +94,9 @@ int com_dbus_property( char *arg, const universal_command_t* commands, const com
const string_quadruple_t* dbus_power_interface = get_dbus_command_interface(cmd, paths);
if(!dbus_power_interface)
return -EOPNOTSUPP;
- const char* property_val = get_dbus_command_member_string(cmd, values);
+ const dbus_value_variant_t* property_val = get_dbus_command_member_variant(cmd, values);
if(!property_val)
return -EOPNOTSUPP;
- return dbus_set_property_string(dbus_power_interface, property_val);
+ return dbus_set_property(dbus_power_interface, *property_val);
return 0;
}