add 'set language function', fontlist, fontsize with buf fix.
[platform/framework/native/tizen-config-fw.git] / plugin_model / config_manager.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <dlfcn.h>
5 #include "config_manager.h"
6
7 static void *lib_handle;
8
9 PluginTizenConfig* (*config_manager(char* plugin_path, char* plugin_name))()
10 {
11         PluginTizenConfig* (*fn)();
12         char *error;
13         lib_handle = dlopen(plugin_path, RTLD_LAZY);
14         if (!lib_handle)
15         {
16                 fprintf(stderr, "%s\n", dlerror());
17                 exit(1);
18         }
19
20         fn = dlsym(lib_handle, plugin_name);
21         if ((error = dlerror()) != NULL)
22         {
23                 fprintf(stderr, "%s\n", error);
24                 exit(1);
25         }
26
27         return fn;
28 }
29
30
31 char* config_manager_get(PluginTizenConfig* (*fn)(),char* key)
32 {
33         PluginTizenConfig* pt_table = (*fn)();
34         pt_table->init();
35         char* str = pt_table->get_config_str(key);
36         pt_table->destroy();
37
38         return strdup(str);
39 }
40
41 int config_manager_set(PluginTizenConfig* (*fn)(),char* key, char* value)
42 {
43         PluginTizenConfig* pt_table = (*fn)();
44         pt_table->init();
45         pt_table->set_config_str(key, value);
46         pt_table->destroy();
47
48         return 0;
49 }
50
51 int config_manager_get_int(PluginTizenConfig* (*fn)(),char* key)
52 {
53         PluginTizenConfig* pt_table = (*fn)();
54         pt_table->init();
55         int val = pt_table->get_config_int(key);
56         pt_table->destroy();
57
58         return val;
59 }
60
61 int config_manager_set_int(PluginTizenConfig* (*fn)(),char* key, int value)
62 {
63         PluginTizenConfig* pt_table = (*fn)();
64         pt_table->init();
65         pt_table->set_config_int(key, value);
66         pt_table->destroy();
67
68         return 0;
69 }
70
71 bool config_manager_get_bool(PluginTizenConfig* (*fn)(),char* key)
72 {
73         PluginTizenConfig* pt_table = (*fn)();
74         pt_table->init();
75         bool val = pt_table->get_config_bool(key);
76         pt_table->destroy();
77
78         return val;
79 }
80
81 int config_manager_set_bool(PluginTizenConfig* (*fn)(),char* key, bool value)
82 {
83         PluginTizenConfig* pt_table = (*fn)();
84         pt_table->init();
85         pt_table->set_config_bool(key, value);
86         pt_table->destroy();
87
88         return 0;
89 }
90
91 float config_manager_get_float(PluginTizenConfig* (*fn)(),char* key)
92 {
93         PluginTizenConfig* pt_table = (*fn)();
94         pt_table->init();
95         float val = pt_table->get_config_float(key);
96         pt_table->destroy();
97
98         return val;
99 }
100
101 int config_manager_set_float(PluginTizenConfig* (*fn)(),char* key, float value)
102 {
103         PluginTizenConfig* pt_table = (*fn)();
104         pt_table->init();
105         pt_table->set_config_float(key, value);
106         pt_table->destroy();
107
108         return 0;
109 }
110
111 int config_manager_get_list(PluginTizenConfig* (*fn)(),char* key, void tcf_iterator(void (*callback)(int,void*, void*)), void* data)
112 {
113         PluginTizenConfig* pt_table = (*fn)();
114         pt_table->init();
115         int val = pt_table->get_config_list(key, tcf_iterator, data);
116         pt_table->destroy();
117
118         return val;
119 }
120
121 #if 0
122 int config_manager_set_float(PluginTizenConfig* (*fn)(),char* key, float value)
123 {
124         PluginTizenConfig* pt_table = (*fn)();
125         pt_table->init();
126         pt_table->set_config_float(key, value);
127         pt_table->destroy();
128
129         return 0;
130 }
131 #endif
132
133
134
135
136 void config_manager_close()
137 {
138         dlclose(lib_handle);
139         lib_handle = NULL;
140 }
141