aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-firmware.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2024-04-18 11:50:30 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2024-05-06 13:27:05 +0000
commite535c90f5f2cd7613360bd5880e9a3c0205f8a00 (patch)
treea43c8b710e3fc0b4d0aacdf37198557180d31a18 /src/mm-iface-modem-firmware.c
parent2b7e738b9b28ea7f9be5b0a6d0963058fad8d822 (diff)
iface-modem-firmware: use G_DECLARE|DEFINE_INTERFACE() macros
Diffstat (limited to 'src/mm-iface-modem-firmware.c')
-rw-r--r--src/mm-iface-modem-firmware.c114
1 files changed, 48 insertions, 66 deletions
diff --git a/src/mm-iface-modem-firmware.c b/src/mm-iface-modem-firmware.c
index 3a3f30f7..9872db23 100644
--- a/src/mm-iface-modem-firmware.c
+++ b/src/mm-iface-modem-firmware.c
@@ -29,6 +29,8 @@
# include "mm-broadband-modem-mbim.h"
#endif
+G_DEFINE_INTERFACE (MMIfaceModemFirmware, mm_iface_modem_firmware, MM_TYPE_IFACE_MODEM)
+
/*****************************************************************************/
void
@@ -70,7 +72,7 @@ load_current_ready (MMIfaceModemFirmware *self,
GList *l;
GError *error = NULL;
- ctx->current = MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_current_finish (self, res, &error);
+ ctx->current = MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_current_finish (self, res, &error);
if (!ctx->current) {
/* Not found isn't fatal */
if (!g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND)) {
@@ -107,7 +109,7 @@ load_list_ready (MMIfaceModemFirmware *self,
{
GError *error = NULL;
- ctx->list = MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_list_finish (self, res, &error);
+ ctx->list = MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_list_finish (self, res, &error);
if (!ctx->list) {
/* Not found isn't fatal */
if (!g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND)) {
@@ -119,9 +121,10 @@ load_list_ready (MMIfaceModemFirmware *self,
g_clear_error (&error);
}
- MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_current (MM_IFACE_MODEM_FIRMWARE (self),
- (GAsyncReadyCallback)load_current_ready,
- ctx);
+ MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_current (
+ MM_IFACE_MODEM_FIRMWARE (self),
+ (GAsyncReadyCallback)load_current_ready,
+ ctx);
}
static void
@@ -137,10 +140,10 @@ list_auth_ready (MMBaseModem *self,
return;
}
- if (!MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_list ||
- !MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_list_finish ||
- !MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_current ||
- !MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_current_finish) {
+ if (!MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_list ||
+ !MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_list_finish ||
+ !MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_current ||
+ !MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_current_finish) {
mm_dbus_method_invocation_return_error_literal (ctx->invocation, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED,
"Cannot list firmware: operation not supported");
handle_list_context_free (ctx);
@@ -148,9 +151,10 @@ list_auth_ready (MMBaseModem *self,
}
mm_obj_info (self, "processing user request to load firmware list...");
- MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_list (MM_IFACE_MODEM_FIRMWARE (self),
- (GAsyncReadyCallback)load_list_ready,
- ctx);
+ MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_list (
+ MM_IFACE_MODEM_FIRMWARE (self),
+ (GAsyncReadyCallback)load_list_ready,
+ ctx);
}
static gboolean
@@ -201,7 +205,7 @@ change_current_ready (MMIfaceModemFirmware *self,
{
GError *error = NULL;
- if (!MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->change_current_finish (self, res, &error))
+ if (!MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->change_current_finish (self, res, &error))
mm_dbus_method_invocation_take_error (ctx->invocation, error);
else
mm_gdbus_modem_firmware_complete_select (ctx->skeleton, ctx->invocation);
@@ -222,8 +226,8 @@ select_auth_ready (MMBaseModem *self,
}
- if (!MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->change_current ||
- !MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->change_current_finish) {
+ if (!MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->change_current ||
+ !MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->change_current_finish) {
mm_dbus_method_invocation_return_error_literal (ctx->invocation, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED,
"Cannot select firmware: operation not supported");
handle_select_context_free (ctx);
@@ -231,10 +235,11 @@ select_auth_ready (MMBaseModem *self,
}
mm_obj_info (self, "processing user request to select firmware...");
- MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->change_current (MM_IFACE_MODEM_FIRMWARE (self),
- ctx->name,
- (GAsyncReadyCallback)change_current_ready,
- ctx);
+ MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->change_current (
+ MM_IFACE_MODEM_FIRMWARE (self),
+ ctx->name,
+ (GAsyncReadyCallback)change_current_ready,
+ ctx);
}
static gboolean
@@ -417,7 +422,7 @@ load_update_settings_ready (MMIfaceModemFirmware *self,
ctx = g_task_get_task_data (task);
- update_settings = MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_update_settings_finish (self, res, &error);
+ update_settings = MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_update_settings_finish (self, res, &error);
if (!update_settings) {
mm_obj_dbg (self, "couldn't load update settings: %s", error->message);
g_error_free (error);
@@ -482,9 +487,9 @@ interface_initialization_step (GTask *task)
/* fall through */
case INITIALIZATION_STEP_UPDATE_SETTINGS:
- if (MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_update_settings &&
- MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_update_settings_finish) {
- MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_update_settings (
+ if (MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_update_settings &&
+ MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_update_settings_finish) {
+ MM_IFACE_MODEM_FIRMWARE_GET_IFACE (self)->load_update_settings (
self,
(GAsyncReadyCallback)load_update_settings_ready,
task);
@@ -564,52 +569,29 @@ mm_iface_modem_firmware_shutdown (MMIfaceModemFirmware *self)
/*****************************************************************************/
static void
-iface_modem_firmware_init (gpointer g_iface)
+mm_iface_modem_firmware_default_init (MMIfaceModemFirmwareInterface *iface)
{
- static gboolean initialized = FALSE;
+ static gsize initialized = 0;
- if (initialized)
+ if (!g_once_init_enter (&initialized))
return;
/* Properties */
- g_object_interface_install_property
- (g_iface,
- g_param_spec_object (MM_IFACE_MODEM_FIRMWARE_DBUS_SKELETON,
- "Firmware DBus skeleton",
- "DBus skeleton for the Firmware interface",
- MM_GDBUS_TYPE_MODEM_FIRMWARE_SKELETON,
- G_PARAM_READWRITE));
-
- g_object_interface_install_property
- (g_iface,
- g_param_spec_boolean (MM_IFACE_MODEM_FIRMWARE_IGNORE_CARRIER,
- "Ignore carrier info in firmware details",
- "Whether carrier info (version, name) should be ignored when showing the firmware details",
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- initialized = TRUE;
-}
-
-GType
-mm_iface_modem_firmware_get_type (void)
-{
- static GType iface_modem_firmware_type = 0;
-
- if (!G_UNLIKELY (iface_modem_firmware_type)) {
- static const GTypeInfo info = {
- sizeof (MMIfaceModemFirmware), /* class_size */
- iface_modem_firmware_init, /* base_init */
- NULL, /* base_finalize */
- };
-
- iface_modem_firmware_type = g_type_register_static (G_TYPE_INTERFACE,
- "MMIfaceModemFirmware",
- &info,
- 0);
-
- g_type_interface_add_prerequisite (iface_modem_firmware_type, MM_TYPE_IFACE_MODEM);
- }
-
- return iface_modem_firmware_type;
+ g_object_interface_install_property (
+ iface,
+ g_param_spec_object (MM_IFACE_MODEM_FIRMWARE_DBUS_SKELETON,
+ "Firmware DBus skeleton",
+ "DBus skeleton for the Firmware interface",
+ MM_GDBUS_TYPE_MODEM_FIRMWARE_SKELETON,
+ G_PARAM_READWRITE));
+
+ g_object_interface_install_property (
+ iface,
+ g_param_spec_boolean (MM_IFACE_MODEM_FIRMWARE_IGNORE_CARRIER,
+ "Ignore carrier info in firmware details",
+ "Whether carrier info (version, name) should be ignored when showing the firmware details",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_once_init_leave (&initialized, 1);
}