aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2009-12-02 14:59:26 -0800
committerDan Williams <dcbw@redhat.com>2009-12-02 14:59:26 -0800
commit1157b59a18ee4e5da109977947181f8596f100ff (patch)
treebb6f05ac1e0451d7ecada01042b71a0383c3625a
parent5bdabaabec5ecb64986036bf783196eeee3756e7 (diff)
core: pretty-print state changes
-rw-r--r--src/mm-manager.c2
-rw-r--r--src/mm-modem.c43
-rw-r--r--src/mm-modem.h2
3 files changed, 44 insertions, 3 deletions
diff --git a/src/mm-manager.c b/src/mm-manager.c
index 73189146..1a93170b 100644
--- a/src/mm-manager.c
+++ b/src/mm-manager.c
@@ -43,8 +43,6 @@ static guint signals[LAST_SIGNAL] = { 0 };
#define MM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_MANAGER, MMManagerPrivate))
-#define DBUS_PATH_TAG "dbus-path"
-
typedef struct {
DBusGConnection *connection;
GUdevClient *udev;
diff --git a/src/mm-modem.c b/src/mm-modem.c
index b49c7070..af67864d 100644
--- a/src/mm-modem.c
+++ b/src/mm-modem.c
@@ -514,19 +514,60 @@ mm_modem_get_state (MMModem *self)
return state;
}
+static const char *
+state_to_string (MMModemState state)
+{
+ switch (state) {
+ case MM_MODEM_STATE_UNKNOWN:
+ return "unknown";
+ case MM_MODEM_STATE_DISABLED:
+ return "disabled";
+ case MM_MODEM_STATE_DISABLING:
+ return "disabling";
+ case MM_MODEM_STATE_ENABLING:
+ return "enabling";
+ case MM_MODEM_STATE_ENABLED:
+ return "enabled";
+ case MM_MODEM_STATE_SEARCHING:
+ return "searching";
+ case MM_MODEM_STATE_REGISTERED:
+ return "registered";
+ case MM_MODEM_STATE_DISCONNECTING:
+ return "disconnecting";
+ case MM_MODEM_STATE_CONNECTING:
+ return "connecting";
+ case MM_MODEM_STATE_CONNECTED:
+ return "connected";
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+
+ g_assert_not_reached ();
+ return "(invalid)";
+}
+
void
mm_modem_set_state (MMModem *self,
MMModemState new_state,
MMModemStateReason reason)
{
MMModemState old_state = MM_MODEM_STATE_UNKNOWN;
+ const char *dbus_path;
g_object_get (G_OBJECT (self), MM_MODEM_STATE, &old_state, NULL);
if (new_state != old_state) {
g_object_set (G_OBJECT (self), MM_MODEM_STATE, new_state, NULL);
g_signal_emit_by_name (G_OBJECT (self), "state-changed", new_state, old_state, reason);
-g_message ("%s: state %d -> %d", __func__, old_state, new_state);
+
+ dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
+ if (dbus_path) {
+ g_message ("Modem %s: state changed (%s -> %s)",
+ dbus_path,
+ state_to_string (old_state),
+ state_to_string (new_state));
+ }
}
}
diff --git a/src/mm-modem.h b/src/mm-modem.h
index cf16f190..1a379411 100644
--- a/src/mm-modem.h
+++ b/src/mm-modem.h
@@ -40,6 +40,8 @@ typedef enum {
MM_MODEM_STATE_REASON_NONE = 0
} MMModemStateReason;
+#define DBUS_PATH_TAG "dbus-path"
+
#define MM_TYPE_MODEM (mm_modem_get_type ())
#define MM_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_MODEM, MMModem))
#define MM_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_MODEM))