2 #include <system_settings.h>
3 #include <system_settings_private.h>
4 #include <system_settings_json.h>
8 //#define VCONFKEY_SETAPPL_CALL_RINGTONE_USER_LIST
10 static void ss_json_ringtone_save(JsonNode *root)
13 JsonGenerator *generator = json_generator_new();
14 json_generator_set_root(generator, root);
15 g_object_set(generator, "pretty", TRUE, NULL);
18 gboolean ret = json_generator_to_file(generator, filename, &error);
20 gchar* result = json_generator_to_data(generator, NULL);
21 vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_USER_LIST, (char*)result);
23 g_object_unref(generator);
27 JsonParser* ss_json_ringtone_open_file(char* path)
33 parser = json_parser_new();
36 json_parser_load_from_file(parser, path, &error);
38 SETTING_TRACE("Unable to parse `%s': %s\n", path, error->message);
40 g_object_unref(parser);
47 JsonParser* ss_json_ringtone_load_from_data()
53 parser = json_parser_new();
56 char* load_data = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_USER_LIST);
57 json_parser_load_from_data(parser, load_data, -1, &error);
59 SETTING_TRACE("Unable to load data : %s \n", error->message);
61 g_object_unref(parser);
67 void ss_json_ringtone_add(JsonNode *root, char* filename, char* nameval, char* pathval)
71 JsonNode* menu_item = json_node_new(JSON_NODE_OBJECT);
72 JsonObject *object = json_object_new();
73 json_node_take_object(menu_item, object);
74 json_object_set_string_member(object, "name", nameval);
75 json_object_set_string_member(object, "path", pathval);
77 JsonArray* menu = json_node_get_array(root);
78 json_array_add_element(menu, menu_item);
80 ss_json_ringtone_save(root);
83 void ss_json_ringtone_print(JsonNode *root)
85 JsonNode *node = root;
87 JsonGenerator *generator = json_generator_new();
88 g_object_set(generator, "pretty", TRUE, NULL);
89 json_generator_set_root(generator, node);
90 gchar *data = json_generator_to_data(generator, NULL);
91 //SETTING_TRACE("%s", (char * )data);
92 SETTING_TRACE("-------------------------------------------------------\n");
93 SETTING_TRACE("%s", data);
94 SETTING_TRACE("-------------------------------------------------------\n");
96 SETTING_TRACE("VCONFKEY_SETAPPL_CALL_RINGTONE_USER_LIST SET !!!!\n");
97 vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_USER_LIST, (char*)data);
99 g_object_unref(generator);
102 void ss_json_ringtone_remove(JsonNode *root, char* filename, char* path_to_del)
104 int size = json_array_get_length(json_node_get_array(root));
106 SETTING_TRACE("BBB size : (%d) \n", size);
108 for (i = 0; i < size ; i++) {
109 JsonObject *ringtone = json_array_get_object_element(json_node_get_array(root), i);
110 //char *nameval = (char *)json_object_get_string_member(ringtone, "name");
111 char *pathval = (char *)json_object_get_string_member(ringtone, "path");
113 if (pathval && !strcmp(pathval, path_to_del)) {
114 json_array_remove_element(json_node_get_array(root), i);
115 SETTING_TRACE("remove BBB : (%s) --- (%s) \n", pathval, path_to_del);
119 ss_json_ringtone_save(root);
122 bool ss_json_ringtone_contain(JsonNode *root, char* newfile)
124 int size = json_array_get_length(json_node_get_array(root));
129 for (i = 0; i < size ; i++) {
130 JsonObject *ringtone = json_array_get_object_element(json_node_get_array(root), i);
131 //char *nameval = (char *)json_object_get_string_member(ringtone, "name");
132 char *pathval = (char *)json_object_get_string_member(ringtone, "path");
133 //SETTING_TRACE("(%s) --- (%s) \n", name, path);
136 if (pathval && !strcmp(pathval, newfile)) {
137 //SETTING_TRACE("FOUND\n");
141 //SETTING_TRACE("*NOT* FOUND\n");
149 void ss_json_ringtone_list(JsonNode *root)
151 int size = json_array_get_length(json_node_get_array(root));
154 for (i = 0; i < size ; i++) {
155 JsonObject *ringtone = json_array_get_object_element(json_node_get_array(root), i);
156 char *name = (char *)json_object_get_string_member(ringtone, "name");
157 char *path = (char *)json_object_get_string_member(ringtone, "path");
158 SETTING_TRACE("(%s) --- (%s) \n", name, path);