sim: signal when the pin lock enabling status changes

This commit is contained in:
Aleksander Morgado
2012-02-29 19:36:00 +01:00
parent eb87c2fe07
commit a797d6d683
4 changed files with 33 additions and 1 deletions

View File

@@ -196,6 +196,7 @@ ModemManager_SOURCES = \
# Additional dependency rules
mm-bearer.c: mm-daemon-enums-types.h
mm-sms-list.c: mm-marshal.h
mm-sim.c: mm-marshal.h
if WITH_POLKIT
ModemManager_SOURCES += \

View File

@@ -1,2 +1,3 @@
VOID:STRING,BOOLEAN
VOID:STRING
VOID:BOOLEAN

View File

@@ -32,6 +32,7 @@
#include "mm-utils.h"
#include "mm-log.h"
#include "mm-modem-helpers.h"
#include "mm-marshal.h"
static void async_initable_iface_init (GAsyncInitableIface *iface);
@@ -47,6 +48,11 @@ enum {
PROP_LAST
};
enum {
SIGNAL_PIN_LOCK_ENABLED,
SIGNAL_LAST
};
static GParamSpec *properties[PROP_LAST];
struct _MMSimPrivate {
@@ -58,6 +64,8 @@ struct _MMSimPrivate {
gchar *path;
};
static guint signals[SIGNAL_LAST] = { 0 };
/*****************************************************************************/
void
@@ -310,9 +318,13 @@ handle_enable_pin_ready (MMSim *self,
MM_SIM_GET_CLASS (self)->enable_pin_finish (self, res, &error);
if (error)
g_dbus_method_invocation_take_error (ctx->invocation, error);
else
else {
mm_gdbus_sim_complete_enable_pin (MM_GDBUS_SIM (self), ctx->invocation);
/* Signal about the new lock state */
g_signal_emit (self, signals[SIGNAL_PIN_LOCK_ENABLED], 0, ctx->enabled);
}
handle_enable_pin_context_free (ctx);
}
@@ -1778,4 +1790,14 @@ mm_sim_class_init (MMSimClass *klass)
MM_TYPE_BASE_MODEM,
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]);
/* Signals */
signals[SIGNAL_PIN_LOCK_ENABLED] =
g_signal_new (MM_SIM_PIN_LOCK_ENABLED,
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (MMSimClass, pin_lock_enabled),
NULL, NULL,
mm_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
}

View File

@@ -35,10 +35,14 @@ typedef struct _MMSim MMSim;
typedef struct _MMSimClass MMSimClass;
typedef struct _MMSimPrivate MMSimPrivate;
/* Properties */
#define MM_SIM_PATH "sim-path"
#define MM_SIM_CONNECTION "sim-connection"
#define MM_SIM_MODEM "sim-modem"
/* Signals */
#define MM_SIM_PIN_LOCK_ENABLED "pin-lock-enabled"
struct _MMSim {
MmGdbusSimSkeleton parent;
MMSimPrivate *priv;
@@ -117,6 +121,10 @@ struct _MMSimClass {
gboolean (* send_puk_finish) (MMSim *self,
GAsyncResult *res,
GError **error);
/* Signals */
void (*pin_lock_enabled) (MMSim *self,
gboolean enabled);
};
GType mm_sim_get_type (void);