tablet-shell: Use new weston_config instead of old config parse
This commit is contained in:
+33
-43
@@ -66,28 +66,6 @@ struct launcher {
|
||||
static char *key_lockscreen_icon;
|
||||
static char *key_lockscreen_background;
|
||||
static char *key_homescreen_background;
|
||||
static char *key_launcher_icon;
|
||||
static char *key_launcher_path;
|
||||
static void launcher_section_done(void *data);
|
||||
|
||||
static const struct config_key shell_config_keys[] = {
|
||||
{ "lockscreen-icon", CONFIG_KEY_STRING, &key_lockscreen_icon },
|
||||
{ "lockscreen", CONFIG_KEY_STRING, &key_lockscreen_background },
|
||||
{ "homescreen", CONFIG_KEY_STRING, &key_homescreen_background },
|
||||
};
|
||||
|
||||
static const struct config_key launcher_config_keys[] = {
|
||||
{ "icon", CONFIG_KEY_STRING, &key_launcher_icon },
|
||||
{ "path", CONFIG_KEY_STRING, &key_launcher_path },
|
||||
};
|
||||
|
||||
static const struct config_section config_sections[] = {
|
||||
{ "shell",
|
||||
shell_config_keys, ARRAY_LENGTH(shell_config_keys) },
|
||||
{ "launcher",
|
||||
launcher_config_keys, ARRAY_LENGTH(launcher_config_keys),
|
||||
launcher_section_done }
|
||||
};
|
||||
|
||||
static void
|
||||
sigchild_handler(int s)
|
||||
@@ -415,24 +393,6 @@ tablet_shell_add_launcher(struct tablet *tablet,
|
||||
wl_list_insert(&homescreen->launcher_list, &launcher->link);
|
||||
}
|
||||
|
||||
static void
|
||||
launcher_section_done(void *data)
|
||||
{
|
||||
struct tablet *tablet = data;
|
||||
|
||||
if (key_launcher_icon == NULL || key_launcher_path == NULL) {
|
||||
fprintf(stderr, "invalid launcher section\n");
|
||||
return;
|
||||
}
|
||||
|
||||
tablet_shell_add_launcher(tablet, key_launcher_icon, key_launcher_path);
|
||||
|
||||
free(key_launcher_icon);
|
||||
key_launcher_icon = NULL;
|
||||
free(key_launcher_path);
|
||||
key_launcher_path = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
global_handler(struct display *display, uint32_t name,
|
||||
const char *interface, uint32_t version, void *data)
|
||||
@@ -454,6 +414,10 @@ int main(int argc, char *argv[])
|
||||
struct display *display;
|
||||
int config_fd;
|
||||
struct output *output;
|
||||
struct weston_config *config;
|
||||
struct weston_config_section *s;
|
||||
char *icon, *path;
|
||||
const char *name;
|
||||
|
||||
display = display_create(&argc, argv);
|
||||
if (display == NULL) {
|
||||
@@ -475,11 +439,37 @@ int main(int argc, char *argv[])
|
||||
wl_list_init(&tablet.homescreen->launcher_list);
|
||||
|
||||
config_fd = open_config_file("weston.ini");
|
||||
parse_config_file(config_fd,
|
||||
config_sections, ARRAY_LENGTH(config_sections),
|
||||
&tablet);
|
||||
config = weston_config_parse(config_fd);
|
||||
close(config_fd);
|
||||
|
||||
s = weston_config_get_section(config, "shell", NULL, NULL);
|
||||
weston_config_section_get_string(s, "lockscreen-icon",
|
||||
&key_lockscreen_icon, NULL);
|
||||
weston_config_section_get_string(s, "lockscreen",
|
||||
&key_lockscreen_background, NULL);
|
||||
weston_config_section_get_string(s, "homescreen",
|
||||
&key_homescreen_background, NULL);
|
||||
|
||||
s = NULL;
|
||||
while (weston_config_next_section(config, &s, &name)) {
|
||||
if (strcmp(name, "launcher") != 0)
|
||||
continue;
|
||||
|
||||
weston_config_section_get_string(s, "icon", &icon, NULL);
|
||||
weston_config_section_get_string(s, "path", &path, NULL);
|
||||
|
||||
if (icon == NULL || path == NULL) {
|
||||
fprintf(stderr, "invalid launcher section\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
tablet_shell_add_launcher(&tablet, icon, path);
|
||||
free(icon);
|
||||
free(path);
|
||||
}
|
||||
|
||||
weston_config_destroy(config);
|
||||
|
||||
signal(SIGCHLD, sigchild_handler);
|
||||
|
||||
output = display_get_output(tablet.display);
|
||||
|
||||
Reference in New Issue
Block a user