39 | 39 |
typedef struct {
|
40 | 40 |
FwupdStatus status;
|
41 | 41 |
guint percentage;
|
|
42 |
gchar *daemon_version;
|
42 | 43 |
GDBusConnection *conn;
|
43 | 44 |
GDBusProxy *proxy;
|
44 | 45 |
} FwupdClientPrivate;
|
|
56 | 57 |
PROP_0,
|
57 | 58 |
PROP_STATUS,
|
58 | 59 |
PROP_PERCENTAGE,
|
|
60 |
PROP_DAEMON_VERSION,
|
59 | 61 |
PROP_LAST
|
60 | 62 |
};
|
61 | 63 |
|
|
95 | 97 |
}
|
96 | 98 |
|
97 | 99 |
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FwupdClientHelper, fwupd_client_helper_free)
|
|
100 |
|
|
101 |
static void
|
|
102 |
fwupd_client_set_daemon_version (FwupdClient *client, const gchar *daemon_version)
|
|
103 |
{
|
|
104 |
FwupdClientPrivate *priv = GET_PRIVATE (client);
|
|
105 |
g_free (priv->daemon_version);
|
|
106 |
priv->daemon_version = g_strdup (daemon_version);
|
|
107 |
g_object_notify (G_OBJECT (client), "daemon-version");
|
|
108 |
}
|
98 | 109 |
|
99 | 110 |
static void
|
100 | 111 |
fwupd_client_properties_changed_cb (GDBusProxy *proxy,
|
|
126 | 137 |
g_object_notify (G_OBJECT (client), "percentage");
|
127 | 138 |
}
|
128 | 139 |
}
|
|
140 |
if (g_variant_dict_contains (&dict, "DaemonVersion")) {
|
|
141 |
g_autoptr(GVariant) val = NULL;
|
|
142 |
val = g_dbus_proxy_get_cached_property (proxy, "DaemonVersion");
|
|
143 |
if (val != NULL)
|
|
144 |
fwupd_client_set_daemon_version (client, g_variant_get_string (val, NULL));
|
|
145 |
}
|
129 | 146 |
}
|
130 | 147 |
|
131 | 148 |
static void
|
|
184 | 201 |
fwupd_client_connect (FwupdClient *client, GCancellable *cancellable, GError **error)
|
185 | 202 |
{
|
186 | 203 |
FwupdClientPrivate *priv = GET_PRIVATE (client);
|
|
204 |
g_autoptr(GVariant) val = NULL;
|
187 | 205 |
|
188 | 206 |
g_return_val_if_fail (FWUPD_IS_CLIENT (client), FALSE);
|
189 | 207 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
|
|
211 | 229 |
G_CALLBACK (fwupd_client_properties_changed_cb), client);
|
212 | 230 |
g_signal_connect (priv->proxy, "g-signal",
|
213 | 231 |
G_CALLBACK (fwupd_client_signal_cb), client);
|
|
232 |
val = g_dbus_proxy_get_cached_property (priv->proxy, "DaemonVersion");
|
|
233 |
if (val != NULL)
|
|
234 |
fwupd_client_set_daemon_version (client, g_variant_get_string (val, NULL));
|
214 | 235 |
return TRUE;
|
215 | 236 |
}
|
216 | 237 |
|
|
919 | 940 |
}
|
920 | 941 |
|
921 | 942 |
/**
|
|
943 |
* fwupd_client_get_daemon_version:
|
|
944 |
* @client: A #FwupdClient
|
|
945 |
*
|
|
946 |
* Gets the daemon version number.
|
|
947 |
*
|
|
948 |
* Returns: a string, or %NULL for unknown.
|
|
949 |
*
|
|
950 |
* Since: 0.9.6
|
|
951 |
**/
|
|
952 |
const gchar *
|
|
953 |
fwupd_client_get_daemon_version (FwupdClient *client)
|
|
954 |
{
|
|
955 |
FwupdClientPrivate *priv = GET_PRIVATE (client);
|
|
956 |
g_return_val_if_fail (FWUPD_IS_CLIENT (client), NULL);
|
|
957 |
return priv->daemon_version;
|
|
958 |
}
|
|
959 |
|
|
960 |
/**
|
922 | 961 |
* fwupd_client_get_status:
|
923 | 962 |
* @client: A #FwupdClient
|
924 | 963 |
*
|
|
1047 | 1086 |
case PROP_PERCENTAGE:
|
1048 | 1087 |
g_value_set_uint (value, priv->percentage);
|
1049 | 1088 |
break;
|
|
1089 |
case PROP_DAEMON_VERSION:
|
|
1090 |
g_value_set_string (value, priv->daemon_version);
|
|
1091 |
break;
|
1050 | 1092 |
default:
|
1051 | 1093 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
1052 | 1094 |
break;
|
|
1189 | 1231 |
0, 100, 0,
|
1190 | 1232 |
G_PARAM_READWRITE);
|
1191 | 1233 |
g_object_class_install_property (object_class, PROP_PERCENTAGE, pspec);
|
|
1234 |
|
|
1235 |
/**
|
|
1236 |
* FwupdClient:daemon-version:
|
|
1237 |
*
|
|
1238 |
* The daemon version number.
|
|
1239 |
*
|
|
1240 |
* Since: 0.9.6
|
|
1241 |
*/
|
|
1242 |
pspec = g_param_spec_string ("daemon-version", NULL, NULL,
|
|
1243 |
NULL, G_PARAM_READABLE);
|
|
1244 |
g_object_class_install_property (object_class, PROP_DAEMON_VERSION, pspec);
|
1192 | 1245 |
}
|
1193 | 1246 |
|
1194 | 1247 |
static void
|
|
1202 | 1255 |
FwupdClient *client = FWUPD_CLIENT (object);
|
1203 | 1256 |
FwupdClientPrivate *priv = GET_PRIVATE (client);
|
1204 | 1257 |
|
|
1258 |
g_free (priv->daemon_version);
|
1205 | 1259 |
if (priv->conn != NULL)
|
1206 | 1260 |
g_object_unref (priv->conn);
|
1207 | 1261 |
if (priv->proxy != NULL)
|