diff options
Diffstat (limited to 'src/d_bus_commands.c')
-rw-r--r-- | src/d_bus_commands.c | 13 |
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; } |