Selectable service enabling code is added
authorSung-jae Park <nicesj.park@samsung.com>
Thu, 2 Jan 2014 03:06:48 +0000 (12:06 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Thu, 2 Jan 2014 03:06:48 +0000 (12:06 +0900)
Change-Id: I46962ad285bfe3442d048b487989388edfa1e82d

data/private.conf.ini
include/conf.h
include/util.h
packaging/data-provider-master.spec
src/conf.c
src/main.c
src/util.c

index 8777521..597f22c 100644 (file)
@@ -1,14 +1,14 @@
 base_width=720
 base_height=1280
 minimum_period=1.0
-script=edje
-default_abi=c
-default_group=disclosure
+#script=edje
+#default_abi=c
+#default_group=disclosure
 default_period=-1.0
 default_packet_time=0.0001
-default_content=default
+#default_content=default
 minimum_space=104857600
-replace_tag=/APPID/
+#replace_tag=/APPID/
 slave_ttl=30.0
 slave_activate_time=30.0
 slave_relaunch_time=3.0
@@ -16,12 +16,12 @@ slave_relaunch_count=3
 max_log_line=1000
 max_log_file=3
 sqilte_flush_max=1048576
-db_path=/opt/dbspace/.livebox.db
-share_path=/opt/usr/share/live_magazine/
+#db_path=/opt/dbspace/.livebox.db
+#share_path=/opt/usr/share/live_magazine/
 log_path=/tmp/.dbox.service
-always_path=/opt/usr/share/live_magazine/always
-reader_path=/opt/usr/share/live_magazine/reader
-script_port_path=/usr/share/data-provider-master/plugin-script/
+#always_path=/opt/usr/share/live_magazine/always
+#reader_path=/opt/usr/share/live_magazine/reader
+#script_port_path=/usr/share/data-provider-master/plugin-script/
 ping_interval=240.0
 slave_max_load=30
 use_sw_backend=false
@@ -30,6 +30,8 @@ debug_mode=false
 overwrite_content=false
 com_core_thread=true
 use_xmonitor=false
-input=/dev/input/event2
+#input=/dev/input/event2
 pd_request_timeout=5.0
 premultiplied=1
+#emergency_disk=source=tmpfs;type=tmpfs;option=size=6M
+#services=[livebox],[shortcut],[notification],[utility],[badge],[file]
index 7c42f09..75b8d51 100755 (executable)
@@ -93,6 +93,7 @@ struct conf {
        double pd_request_timeout;
 
        char *emergency_disk;
+       char *services;
 };
 
 extern struct conf g_conf;
@@ -163,6 +164,14 @@ extern void conf_init(void);
 #define SLAVE_MAX_LOAD         g_conf.slave_max_load
 #define DEFAULT_PING_TIME      g_conf.ping_time
 #define PREMULTIPLIED_COLOR    g_conf.premultiplied
+#define SERVICES               g_conf.services
+
+#define SERVICE_LIVEBOX                "[livebox]"
+#define SERVICE_NOTIFICATION   "[notification]"
+#define SERVICE_BADGE          "[badge]"
+#define SERVICE_SHORTCUT       "[shortcut]"
+#define SERVICE_UTILITY                "[utility]"
+#define SERVICE_FILE           "[file]"
 
 #define PAUSED_FILE            "/tmp/.live.paused"
 
index 3fe41c5..f5e4dd0 100644 (file)
@@ -32,6 +32,7 @@ extern void util_setup_log_disk(void);
 extern void util_remove_emergency_disk(void);
 extern void util_prepare_emergency_disk(void);
 extern int util_emergency_disk_is_mounted(void);
+extern int util_service_is_enabled(const char *tag);
 
 #define SCHEMA_FILE    "file://"
 #define SCHEMA_PIXMAP  "pixmap://"
index a855618..ff2bc6d 100755 (executable)
@@ -1,6 +1,6 @@
 Name: data-provider-master
 Summary: Master service provider for liveboxes
-Version: 0.31.2
+Version: 0.32.0
 Release: 1
 Group: HomeTF/Livebox
 License: Flora
index 15db696..c9e78dc 100644 (file)
@@ -24,6 +24,7 @@
 #include "util.h"
 #include "debug.h"
 
+static const char *CONF_DEFAULT_SERVICES = "[livebox],[shortcut],[notification],[badge],[utility],[file]";
 static const char *CONF_DEFAULT_EMERGENCY_DISK = "source=tmpfs;type=tmpfs;option=size=6M";
 static const char *CONF_DEFAULT_PATH_CONF = "/opt/usr/live/%s/etc/%s.conf";
 static const char *CONF_DEFAULT_PATH_IMAGE = "/opt/usr/share/live_magazine/";
@@ -34,7 +35,7 @@ static const char *CONF_DEFAULT_PATH_SCRIPT = "/opt/usr/live/%s/res/script/%s.ed
 static const char *CONF_DEFAULT_PATH_ROOT = "/opt/usr/live/";
 static const char *CONF_DEFAULT_PATH_SCRIPT_PORT = "/usr/share/data-provider-master/plugin-script/";
 static const char *CONF_DEFAULT_PATH_DB = "/opt/dbspace/.livebox.db";
-static const char *CONF_DEFAULT_PATH_INPUT = "/dev/input/event1";
+static const char *CONF_DEFAULT_PATH_INPUT = "/dev/input/event2";
 static const char *CONF_DEFAULT_SCRIPT_TYPE = "edje";
 static const char *CONF_DEFAULT_ABI = "c";
 static const char *CONF_DEFAULT_PD_GROUP = "disclosure";
@@ -97,6 +98,14 @@ static void emergency_disk_handler(char *buffer)
        }
 }
 
+static void services_handler(char *buffer)
+{
+       g_conf.services = strdup(buffer);
+       if (!g_conf.services) {
+               ErrPrint("Heap: %s\n", strerror(errno));
+       }
+}
+
 static void use_sw_backend_handler(char *buffer)
 {
        g_conf.use_sw_backend = !strcasecmp(buffer, "true");
@@ -409,6 +418,7 @@ HAPI void conf_init(void)
        g_conf.path.input = (char *)CONF_DEFAULT_PATH_INPUT;
        g_conf.provider_method = (char *)CONF_DEFAULT_PROVIDER_METHOD;
        g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK;
+       g_conf.services = (char *)CONF_DEFAULT_SERVICES;
 }
 
 HAPI int conf_loader(void)
@@ -551,6 +561,10 @@ HAPI int conf_loader(void)
                        .handler = emergency_disk_handler,
                },
                {
+                       .name = "services",
+                       .handler = services_handler,
+               },
+               {
                        .name = "use_xmonitor",
                        .handler = use_xmonitor,
                },
@@ -904,6 +918,11 @@ HAPI void conf_reset(void)
                DbgFree(g_conf.emergency_disk);
                g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK;
        }
+
+       if (g_conf.services != CONF_DEFAULT_SERVICES) {
+               DbgFree(g_conf.services);
+               g_conf.services = (char *)CONF_DEFAULT_SERVICES;
+       }
 }
 
 /* End of a file */
index 045bc25..a6636f4 100755 (executable)
@@ -122,13 +122,27 @@ static inline int app_create(void)
 
        event_init();
 
-       shortcut_service_init();
-       notification_service_init();
-       badge_service_init();
-       utility_service_init();
+       if (util_service_is_enabled(SERVICE_SHORTCUT)) {
+               shortcut_service_init();
+       }
+
+       if (util_service_is_enabled(SERVICE_NOTIFICATION)) {
+               notification_service_init();
+       }
+
+       if (util_service_is_enabled(SERVICE_BADGE)) {
+               badge_service_init();
+       }
+
+       if (util_service_is_enabled(SERVICE_UTILITY)) {
+               utility_service_init();
+       }
+
        script_init();
 
-       file_service_init();
+       if (util_service_is_enabled(SERVICE_FILE)) {
+               file_service_init();
+       }
 
        return 0;
 }
@@ -137,8 +151,10 @@ static inline int app_terminate(void)
 {
        int ret;
 
-       ret = file_service_fini();
-       DbgPrint("Finalize the file service: %d\n", ret);
+       if (util_service_is_enabled(SERVICE_FILE)) {
+               ret = file_service_fini();
+               DbgPrint("Finalize the file service: %d\n", ret);
+       }
 
        ret = server_fini();
        DbgPrint("Finalize server: %d\n", ret);
@@ -146,17 +162,25 @@ static inline int app_terminate(void)
        ret = dead_fini();
        DbgPrint("dead signal handler finalized: %d\n", ret);
 
-       ret = utility_service_fini();
-       DbgPrint("utility: %d\n", ret);
+       if (util_service_is_enabled(SERVICE_UTILITY)) {
+               ret = utility_service_fini();
+               DbgPrint("utility: %d\n", ret);
+       }
 
-       ret = badge_service_fini();
-       DbgPrint("badge: %d\n", ret);
+       if (util_service_is_enabled(SERVICE_BADGE)) {
+               ret = badge_service_fini();
+               DbgPrint("badge: %d\n", ret);
+       }
 
-       ret = notification_service_fini();
-       DbgPrint("noti: %d\n", ret);
+       if (util_service_is_enabled(SERVICE_NOTIFICATION)) {
+               ret = notification_service_fini();
+               DbgPrint("noti: %d\n", ret);
+       }
 
-       ret = shortcut_service_fini();
-       DbgPrint("shortcut: %d\n", ret);
+       if (util_service_is_enabled(SERVICE_SHORTCUT)) {
+               ret = shortcut_service_fini();
+               DbgPrint("shortcut: %d\n", ret);
+       }
 
        ret = event_fini();
        DbgPrint("event: %d\n", ret);
index 5b89a28..fc07d5b 100644 (file)
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#define _GNU_SOURCE
+
 #include <stdio.h>
 #include <sys/time.h>
 #include <string.h>
@@ -718,4 +720,9 @@ HAPI void util_setup_log_disk(void)
        }
 }
 
+HAPI int util_service_is_enabled(const char *tag)
+{
+       return !!strcasestr(SERVICES, tag);
+}
+
 /* End of a file */