device: Combine two if statements with identical outcome
[framework/connectivity/connman.git] / plugins / iospm.c
index b967d4b..1ea56a9 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
 #include <connman/log.h>
 
 #define IOSPM_SERVICE          "com.intel.mid.ospm"
-#define IOSPM_INTERFACE                IOSPM_SERVICE ".MMF"
+#define IOSPM_INTERFACE                IOSPM_SERVICE ".Comms"
 
+#define IOSPM_BLUETOOTH                "/com/intel/mid/ospm/bluetooth"
 #define IOSPM_FLIGHT_MODE      "/com/intel/mid/ospm/flight_mode"
 
 static DBusConnection *connection;
 
-static void iospm_device_enabled(enum connman_device_type type,
-                                               connman_bool_t enabled)
-{
-       DBG("type %d enabled %d", type, enabled);
-}
-
-static void iospm_offline_mode(connman_bool_t enabled)
+static void send_indication(const char *path, connman_bool_t enabled)
 {
        DBusMessage *message;
        const char *method;
 
-       DBG("enabled %d", enabled);
+       DBG("path %s enabled %d", path, enabled);
 
        if (enabled == TRUE)
                method = "IndicateStart";
        else
                method = "IndicateStop";
 
-       message = dbus_message_new_method_call(IOSPM_SERVICE,
-                               IOSPM_FLIGHT_MODE, IOSPM_INTERFACE, method);
+       message = dbus_message_new_method_call(IOSPM_SERVICE, path,
+                                               IOSPM_INTERFACE, method);
        if (message == NULL)
                return;
 
@@ -66,10 +61,35 @@ static void iospm_offline_mode(connman_bool_t enabled)
        dbus_message_unref(message);
 }
 
+static void iospm_service_enabled(enum connman_service_type type,
+                                               connman_bool_t enabled)
+{
+       switch (type) {
+       case CONNMAN_SERVICE_TYPE_UNKNOWN:
+       case CONNMAN_SERVICE_TYPE_SYSTEM:
+       case CONNMAN_SERVICE_TYPE_ETHERNET:
+       case CONNMAN_SERVICE_TYPE_WIFI:
+       case CONNMAN_SERVICE_TYPE_WIMAX:
+       case CONNMAN_SERVICE_TYPE_CELLULAR:
+       case CONNMAN_SERVICE_TYPE_GPS:
+       case CONNMAN_SERVICE_TYPE_VPN:
+       case CONNMAN_SERVICE_TYPE_GADGET:
+               break;
+       case CONNMAN_SERVICE_TYPE_BLUETOOTH:
+               send_indication(IOSPM_BLUETOOTH, enabled);
+               break;
+       }
+}
+
+static void iospm_offline_mode(connman_bool_t enabled)
+{
+       send_indication(IOSPM_FLIGHT_MODE, enabled);
+}
+
 static struct connman_notifier iospm_notifier = {
        .name           = "iospm",
        .priority       = CONNMAN_NOTIFIER_PRIORITY_DEFAULT,
-       .device_enabled = iospm_device_enabled,
+       .service_enabled= iospm_service_enabled,
        .offline_mode   = iospm_offline_mode,
 };