trivial: change nm-bluez*-device.c to be more similar

These two files share much code, so they will be merged
into one file.

As a first step, make some trvial renaming to make the two
files more similar and easier to merge.

Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Thomas Haller
2013-09-06 19:29:29 +02:00
parent 1ae5d53354
commit c3e644fbb4
2 changed files with 90 additions and 78 deletions

View File

@@ -27,10 +27,10 @@
#include "NetworkManager.h" #include "NetworkManager.h"
#include "nm-setting-bluetooth.h" #include "nm-setting-bluetooth.h"
#include "nm-dbus-manager.h"
#include "nm-bluez-device.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-dbus-manager.h"
#include "nm-dbus-glib-types.h" #include "nm-dbus-glib-types.h"
#include "nm-bluez-device.h"
#include "nm-logging.h" #include "nm-logging.h"
@@ -40,7 +40,7 @@ G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT)
typedef struct { typedef struct {
char *path; char *path;
DBusGProxy *proxy; DBusGProxy *proxy4;
DBusGProxy *connection_proxy; DBusGProxy *connection_proxy;
gboolean initialized; gboolean initialized;
@@ -54,7 +54,7 @@ typedef struct {
gint rssi; gint rssi;
gboolean connected; gboolean connected;
char *rfcomm_iface; char *bt_iface;
NMConnectionProvider *provider; NMConnectionProvider *provider;
GSList *connections; GSList *connections;
@@ -153,7 +153,10 @@ check_emit_usable (NMBluezDevice *self)
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
gboolean new_usable; gboolean new_usable;
new_usable = (priv->initialized && priv->capabilities && priv->name && priv->address && priv->connections); new_usable = (priv->initialized && priv->capabilities && priv->name &&
priv->address &&
priv->connections
);
if (new_usable != priv->usable) { if (new_usable != priv->usable) {
priv->usable = new_usable; priv->usable = new_usable;
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE);
@@ -263,12 +266,12 @@ nm_bluez_device_call_disconnect (NMBluezDevice *self)
return; return;
if (priv->connection_bt_type == NM_BT_CAPABILITY_DUN) { if (priv->connection_bt_type == NM_BT_CAPABILITY_DUN) {
/* Don't ever pass NULL through dbus; rfcomm_iface /* Don't ever pass NULL through dbus; bt_iface
* might happen to be NULL for some reason. * might happen to be NULL for some reason.
*/ */
if (priv->rfcomm_iface) if (priv->bt_iface)
dbus_g_proxy_call_no_reply (priv->connection_proxy, "Disconnect", dbus_g_proxy_call_no_reply (priv->connection_proxy, "Disconnect",
G_TYPE_STRING, priv->rfcomm_iface, G_TYPE_STRING, priv->bt_iface,
G_TYPE_INVALID); G_TYPE_INVALID);
} else { } else {
dbus_g_proxy_call_no_reply (priv->connection_proxy, "Disconnect", dbus_g_proxy_call_no_reply (priv->connection_proxy, "Disconnect",
@@ -280,7 +283,7 @@ nm_bluez_device_call_disconnect (NMBluezDevice *self)
} }
static void static void
bluez_connect_cb (DBusGProxy *proxy, bluez_connect_cb (DBusGProxy *proxy4,
DBusGProxyCall *call_id, DBusGProxyCall *call_id,
gpointer user_data) gpointer user_data)
{ {
@@ -290,7 +293,7 @@ bluez_connect_cb (DBusGProxy *proxy,
GError *error = NULL; GError *error = NULL;
char *device; char *device;
if (dbus_g_proxy_end_call (proxy, call_id, &error, if (dbus_g_proxy_end_call (proxy4, call_id, &error,
G_TYPE_STRING, &device, G_TYPE_STRING, &device,
G_TYPE_INVALID) == FALSE) G_TYPE_INVALID) == FALSE)
g_simple_async_result_take_error (result, error); g_simple_async_result_take_error (result, error);
@@ -302,7 +305,7 @@ bluez_connect_cb (DBusGProxy *proxy,
g_simple_async_result_set_op_res_gpointer (result, g_simple_async_result_set_op_res_gpointer (result,
g_strdup (device), g_strdup (device),
g_free); g_free);
priv->rfcomm_iface = device; priv->bt_iface = device;
} }
g_simple_async_result_complete (result); g_simple_async_result_complete (result);
@@ -414,7 +417,7 @@ convert_uuids_to_capabilities (const char **strings)
} }
static void static void
property_changed (DBusGProxy *proxy, property_changed (DBusGProxy *proxy4,
const char *property, const char *property,
GValue *value, GValue *value,
gpointer user_data) gpointer user_data)
@@ -425,32 +428,34 @@ property_changed (DBusGProxy *proxy,
guint32 uint_val; guint32 uint_val;
gint int_val; gint int_val;
if (!strcmp (property, "Name")) { {
str = g_value_get_string (value); if (!strcmp (property, "Name")) {
if ( (!priv->name && str) str = g_value_get_string (value);
|| (priv->name && !str) if ( (!priv->name && str)
|| (priv->name && str && strcmp (priv->name, str))) { || (priv->name && !str)
g_free (priv->name); || (priv->name && str && strcmp (priv->name, str))) {
priv->name = g_strdup (str); g_free (priv->name);
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_NAME); priv->name = g_strdup (str);
} g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_NAME);
} else if (!strcmp (property, "RSSI")) { }
int_val = g_value_get_int (value); } else if (!strcmp (property, "RSSI")) {
if (priv->rssi != int_val) { int_val = g_value_get_int (value);
priv->rssi = int_val; if (priv->rssi != int_val) {
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_RSSI); priv->rssi = int_val;
} g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_RSSI);
} else if (!strcmp (property, "UUIDs")) { }
uint_val = convert_uuids_to_capabilities ((const char **) g_value_get_boxed (value)); } else if (!strcmp (property, "UUIDs")) {
if (priv->capabilities != uint_val) { uint_val = convert_uuids_to_capabilities ((const char **) g_value_get_boxed (value));
priv->capabilities = uint_val; if (priv->capabilities != uint_val) {
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CAPABILITIES); priv->capabilities = uint_val;
} g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CAPABILITIES);
} else if (!strcmp (property, "Connected")) { }
gboolean connected = g_value_get_boolean (value); } else if (!strcmp (property, "Connected")) {
if (priv->connected != connected) { gboolean connected = g_value_get_boolean (value);
priv->connected = connected; if (priv->connected != connected) {
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED); priv->connected = connected;
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED);
}
} }
} }
@@ -458,7 +463,7 @@ property_changed (DBusGProxy *proxy,
} }
static void static void
get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) get_properties_cb (DBusGProxy *proxy4, DBusGProxyCall *call, gpointer user_data)
{ {
NMBluezDevice *self = NM_BLUEZ_DEVICE (user_data); NMBluezDevice *self = NM_BLUEZ_DEVICE (user_data);
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
@@ -468,7 +473,7 @@ get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data)
const char **uuids; const char **uuids;
struct ether_addr *tmp; struct ether_addr *tmp;
if (!dbus_g_proxy_end_call (proxy, call, &err, if (!dbus_g_proxy_end_call (proxy4, call, &err,
DBUS_TYPE_G_MAP_OF_VARIANT, &properties, DBUS_TYPE_G_MAP_OF_VARIANT, &properties,
G_TYPE_INVALID)) { G_TYPE_INVALID)) {
nm_log_warn (LOGD_BT, "bluez error getting device properties: %s", nm_log_warn (LOGD_BT, "bluez error getting device properties: %s",
@@ -516,7 +521,7 @@ query_properties (NMBluezDevice *self)
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
DBusGProxyCall *call; DBusGProxyCall *call;
call = dbus_g_proxy_begin_call (priv->proxy, "GetProperties", call = dbus_g_proxy_begin_call (priv->proxy4, "GetProperties",
get_properties_cb, get_properties_cb,
self, self,
NULL, G_TYPE_INVALID); NULL, G_TYPE_INVALID);
@@ -529,7 +534,9 @@ query_properties (NMBluezDevice *self)
/********************************************************************/ /********************************************************************/
NMBluezDevice * NMBluezDevice *
nm_bluez_device_new (const char *path, NMConnectionProvider *provider) nm_bluez_device_new (const char *path
, NMConnectionProvider *provider
)
{ {
NMBluezDevice *self; NMBluezDevice *self;
NMBluezDevicePrivate *priv; NMBluezDevicePrivate *priv;
@@ -570,18 +577,18 @@ nm_bluez_device_new (const char *path, NMConnectionProvider *provider)
connection = nm_dbus_manager_get_connection (nm_dbus_manager_get ()); connection = nm_dbus_manager_get_connection (nm_dbus_manager_get ());
priv->proxy = dbus_g_proxy_new_for_name (connection, priv->proxy4 = dbus_g_proxy_new_for_name (connection,
BLUEZ_SERVICE, BLUEZ_SERVICE,
priv->path, priv->path,
BLUEZ_DEVICE_INTERFACE); BLUEZ_DEVICE_INTERFACE);
dbus_g_object_register_marshaller (g_cclosure_marshal_generic, dbus_g_object_register_marshaller (g_cclosure_marshal_generic,
G_TYPE_NONE, G_TYPE_NONE,
G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_STRING, G_TYPE_VALUE,
G_TYPE_INVALID); G_TYPE_INVALID);
dbus_g_proxy_add_signal (priv->proxy, "PropertyChanged", dbus_g_proxy_add_signal (priv->proxy4, "PropertyChanged",
G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
dbus_g_proxy_connect_signal (priv->proxy, "PropertyChanged", dbus_g_proxy_connect_signal (priv->proxy4, "PropertyChanged",
G_CALLBACK (property_changed), self, NULL); G_CALLBACK (property_changed), self, NULL);
query_properties (self); query_properties (self);
@@ -621,8 +628,8 @@ finalize (GObject *object)
g_free (priv->path); g_free (priv->path);
g_free (priv->address); g_free (priv->address);
g_free (priv->name); g_free (priv->name);
g_free (priv->rfcomm_iface); g_free (priv->bt_iface);
g_object_unref (priv->proxy); g_object_unref (priv->proxy4);
G_OBJECT_CLASS (nm_bluez_device_parent_class)->finalize (object); G_OBJECT_CLASS (nm_bluez_device_parent_class)->finalize (object);
} }
@@ -753,7 +760,7 @@ nm_bluez_device_class_init (NMBluezDeviceClass *config_class)
G_OBJECT_CLASS_TYPE (object_class), G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NMBluezDeviceClass, initialized), G_STRUCT_OFFSET (NMBluezDeviceClass, initialized),
NULL, NULL, NULL, NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN); G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
} }

View File

@@ -28,8 +28,8 @@
#include "NetworkManager.h" #include "NetworkManager.h"
#include "nm-setting-bluetooth.h" #include "nm-setting-bluetooth.h"
#include "nm-bluez-device.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-bluez-device.h"
#include "nm-logging.h" #include "nm-logging.h"
@@ -39,9 +39,9 @@ G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT)
typedef struct { typedef struct {
char *path; char *path;
GDBusProxy *proxy; GDBusProxy *proxy5;
GDBusProxy *adapter; GDBusProxy *adapter;
GDBusConnection *connection; GDBusConnection *dbus_connection;
gboolean initialized; gboolean initialized;
gboolean usable; gboolean usable;
@@ -151,7 +151,9 @@ check_emit_usable (NMBluezDevice *self)
gboolean new_usable; gboolean new_usable;
new_usable = (priv->initialized && priv->capabilities && priv->name && new_usable = (priv->initialized && priv->capabilities && priv->name &&
priv->address && priv->adapter && priv->connection); priv->address &&
priv->adapter && priv->dbus_connection
);
if (new_usable != priv->usable) { if (new_usable != priv->usable) {
priv->usable = new_usable; priv->usable = new_usable;
g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE);
@@ -165,10 +167,10 @@ nm_bluez_device_call_disconnect (NMBluezDevice *self)
{ {
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
g_return_if_fail (priv->connection); g_return_if_fail (priv->dbus_connection);
g_return_if_fail (priv->connection_bt_type == NM_BT_CAPABILITY_NAP); g_return_if_fail (priv->connection_bt_type == NM_BT_CAPABILITY_NAP);
g_dbus_connection_call (priv->connection, g_dbus_connection_call (priv->dbus_connection,
BLUEZ_SERVICE, BLUEZ_SERVICE,
priv->path, priv->path,
BLUEZ_NETWORK_INTERFACE, BLUEZ_NETWORK_INTERFACE,
@@ -183,18 +185,18 @@ nm_bluez_device_call_disconnect (NMBluezDevice *self)
} }
static void static void
bluez_connect_pan_cb (GDBusConnection *connection, bluez_connect_pan_cb (GDBusConnection *dbus_connection,
GAsyncResult *res, GAsyncResult *res,
gpointer user_data) gpointer user_data)
{ {
GSimpleAsyncResult *result = user_data; GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT (user_data);
NMBluezDevice *self = NM_BLUEZ_DEVICE (g_async_result_get_source_object (G_ASYNC_RESULT (result))); NMBluezDevice *self = NM_BLUEZ_DEVICE (g_async_result_get_source_object (G_ASYNC_RESULT (result)));
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
GVariant *variant;
GError *error = NULL; GError *error = NULL;
char *device; char *device;
GVariant *variant;
variant = g_dbus_connection_call_finish (connection, res, &error); variant = g_dbus_connection_call_finish (dbus_connection, res, &error);
if (!variant) { if (!variant) {
g_simple_async_result_take_error (result, error); g_simple_async_result_take_error (result, error);
@@ -229,7 +231,7 @@ nm_bluez_device_connect_async (NMBluezDevice *self,
nm_bluez_device_connect_async); nm_bluez_device_connect_async);
/* For PAN we call Connect() on org.bluez.Network1 */ /* For PAN we call Connect() on org.bluez.Network1 */
g_dbus_connection_call (priv->connection, g_dbus_connection_call (priv->dbus_connection,
BLUEZ_SERVICE, BLUEZ_SERVICE,
priv->path, priv->path,
BLUEZ_NETWORK_INTERFACE, BLUEZ_NETWORK_INTERFACE,
@@ -313,7 +315,7 @@ on_adapter_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
} }
static void static void
properties_changed (GDBusProxy *proxy, properties_changed (GDBusProxy *proxy5,
GVariant *changed_properties, GVariant *changed_properties,
GStrv invalidated_properties, GStrv invalidated_properties,
gpointer user_data) gpointer user_data)
@@ -372,7 +374,7 @@ query_properties (NMBluezDevice *self)
const char **uuids; const char **uuids;
struct ether_addr *tmp; struct ether_addr *tmp;
v = g_dbus_proxy_get_cached_property (priv->proxy, "Address"); v = g_dbus_proxy_get_cached_property (priv->proxy5, "Address");
priv->address = v ? g_variant_dup_string (v, NULL) : NULL; priv->address = v ? g_variant_dup_string (v, NULL) : NULL;
if (v) if (v)
g_variant_unref (v); g_variant_unref (v);
@@ -382,17 +384,17 @@ query_properties (NMBluezDevice *self)
memcpy (priv->bin_address, tmp->ether_addr_octet, ETH_ALEN); memcpy (priv->bin_address, tmp->ether_addr_octet, ETH_ALEN);
} }
v = g_dbus_proxy_get_cached_property (priv->proxy, "Name"); v = g_dbus_proxy_get_cached_property (priv->proxy5, "Name");
priv->name = v ? g_variant_dup_string (v, NULL) : NULL; priv->name = v ? g_variant_dup_string (v, NULL) : NULL;
if (v) if (v)
g_variant_unref (v); g_variant_unref (v);
v = g_dbus_proxy_get_cached_property (priv->proxy, "RSSI"); v = g_dbus_proxy_get_cached_property (priv->proxy5, "RSSI");
priv->rssi = v ? g_variant_get_int16 (v) : 0; priv->rssi = v ? g_variant_get_int16 (v) : 0;
if (v) if (v)
g_variant_unref (v); g_variant_unref (v);
v = g_dbus_proxy_get_cached_property (priv->proxy, "UUIDs"); v = g_dbus_proxy_get_cached_property (priv->proxy5, "UUIDs");
if (v) { if (v) {
uuids = g_variant_get_strv (v, NULL); uuids = g_variant_get_strv (v, NULL);
priv->capabilities = convert_uuids_to_capabilities (uuids); priv->capabilities = convert_uuids_to_capabilities (uuids);
@@ -400,7 +402,7 @@ query_properties (NMBluezDevice *self)
} else } else
priv->capabilities = NM_BT_CAPABILITY_NONE; priv->capabilities = NM_BT_CAPABILITY_NONE;
v = g_dbus_proxy_get_cached_property (priv->proxy, "Adapter"); v = g_dbus_proxy_get_cached_property (priv->proxy5, "Adapter");
if (v) { if (v) {
g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_NONE, G_DBUS_PROXY_FLAGS_NONE,
@@ -426,9 +428,9 @@ on_proxy_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
GError *error; GError *error;
priv->proxy = g_dbus_proxy_new_for_bus_finish (res, &error); priv->proxy5 = g_dbus_proxy_new_for_bus_finish (res, &error);
if (!priv->proxy) { if (!priv->proxy5) {
nm_log_warn (LOGD_BT, "failed to acquire device proxy: %s.", nm_log_warn (LOGD_BT, "failed to acquire device proxy: %s.",
error && error->message ? error->message : "(unknown)"); error && error->message ? error->message : "(unknown)");
g_clear_error (&error); g_clear_error (&error);
@@ -436,7 +438,7 @@ on_proxy_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
return; return;
} }
g_signal_connect (priv->proxy, "g-properties-changed", g_signal_connect (priv->proxy5, "g-properties-changed",
G_CALLBACK (properties_changed), self); G_CALLBACK (properties_changed), self);
query_properties (self); query_properties (self);
@@ -448,9 +450,9 @@ on_bus_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
GError *error = NULL; GError *error = NULL;
priv->connection = g_bus_get_finish (res, &error); priv->dbus_connection = g_bus_get_finish (res, &error);
if (!priv->connection) { if (!priv->dbus_connection) {
nm_log_warn (LOGD_BT, "failed to acquire bus connection: %s.", nm_log_warn (LOGD_BT, "failed to acquire bus connection: %s.",
error && error->message ? error->message : "(unknown)"); error && error->message ? error->message : "(unknown)");
g_clear_error (&error); g_clear_error (&error);
@@ -464,7 +466,8 @@ on_bus_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
/********************************************************************/ /********************************************************************/
NMBluezDevice * NMBluezDevice *
nm_bluez_device_new (const char *path) nm_bluez_device_new (const char *path
)
{ {
NMBluezDevice *self; NMBluezDevice *self;
NMBluezDevicePrivate *priv; NMBluezDevicePrivate *priv;
@@ -505,10 +508,11 @@ nm_bluez_device_init (NMBluezDevice *self)
static void static void
dispose (GObject *object) dispose (GObject *object)
{ {
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object); NMBluezDevice *self = NM_BLUEZ_DEVICE (object);
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
g_clear_object (&priv->adapter); g_clear_object (&priv->adapter);
g_clear_object (&priv->connection); g_clear_object (&priv->dbus_connection);
G_OBJECT_CLASS (nm_bluez_device_parent_class)->dispose (object); G_OBJECT_CLASS (nm_bluez_device_parent_class)->dispose (object);
} }
@@ -522,7 +526,7 @@ finalize (GObject *object)
g_free (priv->address); g_free (priv->address);
g_free (priv->name); g_free (priv->name);
g_free (priv->bt_iface); g_free (priv->bt_iface);
g_object_unref (priv->proxy); g_object_unref (priv->proxy5);
G_OBJECT_CLASS (nm_bluez_device_parent_class)->finalize (object); G_OBJECT_CLASS (nm_bluez_device_parent_class)->finalize (object);
} }
@@ -588,8 +592,8 @@ nm_bluez_device_class_init (NMBluezDeviceClass *config_class)
/* virtual methods */ /* virtual methods */
object_class->get_property = get_property; object_class->get_property = get_property;
object_class->set_property = set_property; object_class->set_property = set_property;
object_class->finalize = finalize;
object_class->dispose = dispose; object_class->dispose = dispose;
object_class->finalize = finalize;
/* Properties */ /* Properties */
g_object_class_install_property g_object_class_install_property
@@ -656,3 +660,4 @@ nm_bluez_device_class_init (NMBluezDeviceClass *config_class)
NULL, NULL, NULL, NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN); G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
} }