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_icon;
|
||||||
static char *key_lockscreen_background;
|
static char *key_lockscreen_background;
|
||||||
static char *key_homescreen_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
|
static void
|
||||||
sigchild_handler(int s)
|
sigchild_handler(int s)
|
||||||
@@ -415,24 +393,6 @@ tablet_shell_add_launcher(struct tablet *tablet,
|
|||||||
wl_list_insert(&homescreen->launcher_list, &launcher->link);
|
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
|
static void
|
||||||
global_handler(struct display *display, uint32_t name,
|
global_handler(struct display *display, uint32_t name,
|
||||||
const char *interface, uint32_t version, void *data)
|
const char *interface, uint32_t version, void *data)
|
||||||
@@ -454,6 +414,10 @@ int main(int argc, char *argv[])
|
|||||||
struct display *display;
|
struct display *display;
|
||||||
int config_fd;
|
int config_fd;
|
||||||
struct output *output;
|
struct output *output;
|
||||||
|
struct weston_config *config;
|
||||||
|
struct weston_config_section *s;
|
||||||
|
char *icon, *path;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
display = display_create(&argc, argv);
|
display = display_create(&argc, argv);
|
||||||
if (display == NULL) {
|
if (display == NULL) {
|
||||||
@@ -475,11 +439,37 @@ int main(int argc, char *argv[])
|
|||||||
wl_list_init(&tablet.homescreen->launcher_list);
|
wl_list_init(&tablet.homescreen->launcher_list);
|
||||||
|
|
||||||
config_fd = open_config_file("weston.ini");
|
config_fd = open_config_file("weston.ini");
|
||||||
parse_config_file(config_fd,
|
config = weston_config_parse(config_fd);
|
||||||
config_sections, ARRAY_LENGTH(config_sections),
|
|
||||||
&tablet);
|
|
||||||
close(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);
|
signal(SIGCHLD, sigchild_handler);
|
||||||
|
|
||||||
output = display_get_output(tablet.display);
|
output = display_get_output(tablet.display);
|
||||||
|
|||||||
Reference in New Issue
Block a user