mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-02-18 09:10:38 +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 "command.h"
|
||||||
#include "dbus-proxy.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 = {
|
static struct proxy_interface_type adapter_interface_type = {
|
||||||
.interface = IWD_ADAPTER_INTERFACE,
|
.interface = IWD_ADAPTER_INTERFACE,
|
||||||
|
.properties = adapter_properties,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct command adapter_commands[] = {
|
static const struct command adapter_commands[] = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user