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:
parent
60c4025cdf
commit
6d210d5aa4
@ -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[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user