3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-26 02:19:26 +01:00

client: Add properties for adapter interface

This commit is contained in:
Tim Kourt 2017-04-27 12:36:27 -07:00 committed by Denis Kenzior
parent 60c4025cdf
commit 6d210d5aa4

View File

@ -29,8 +29,100 @@
#include "command.h"
#include "dbus-proxy.h"
struct adapter {
bool powered;
char *model;
char *name;
char *vendor;
};
static const char *get_name(const void *data)
{
const struct adapter *adapter = data;
return adapter->name;
}
static void set_name(void *data, struct l_dbus_message_iter *variant)
{
struct adapter *adapter = data;
const char *value;
l_free(adapter->name);
if (!l_dbus_message_iter_get_variant(variant, "s", &value)) {
adapter->name = NULL;
return;
}
adapter->name = l_strdup(value);
}
static void set_vendor(void *data, struct l_dbus_message_iter *variant)
{
struct adapter *adapter = data;
const char *value;
l_free(adapter->vendor);
if (!l_dbus_message_iter_get_variant(variant, "s", &value)) {
adapter->vendor = NULL;
return;
}
adapter->vendor = l_strdup(value);
}
static void set_model(void *data, struct l_dbus_message_iter *variant)
{
struct adapter *adapter = data;
const char *value;
l_free(adapter->model);
if (!l_dbus_message_iter_get_variant(variant, "s", &value)) {
adapter->model = NULL;
return;
}
adapter->model = l_strdup(value);
}
static const char *get_powered_tostr(const void *data)
{
const struct adapter *adapter = data;
return adapter->powered ? "on" : "off";
}
static void set_powered(void *data, struct l_dbus_message_iter *variant)
{
struct adapter *adapter = data;
bool value;
if (!l_dbus_message_iter_get_variant(variant, "b", &value)) {
adapter->powered = false;
return;
}
adapter->powered = value;
}
static const struct proxy_interface_property adapter_properties[] = {
{ "Name", "s", set_name, get_name },
{ "Powered", "b", set_powered, get_powered_tostr, true },
{ "Vendor", "s", set_vendor },
{ "Model", "s", set_model },
{ }
};
static struct proxy_interface_type adapter_interface_type = {
.interface = IWD_ADAPTER_INTERFACE,
.properties = adapter_properties,
};
static const struct command adapter_commands[] = {