summaryrefslogtreecommitdiffstats
path: root/src/splash-plugins
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-05-21 08:57:59 -0400
committerRay Strode <rstrode@redhat.com>2008-05-21 08:57:59 -0400
commit4cf3e3ae2d9062f727dca72c9dd510fca742c36a (patch)
tree46221818351c8e6c0a1c467709ca81b815e6af9f /src/splash-plugins
parenta0092f35c5560ab26dbab5e0fbd8a4de51b27528 (diff)
downloadplymouth-4cf3e3ae2d9062f727dca72c9dd510fca742c36a.tar.gz
plymouth-4cf3e3ae2d9062f727dca72c9dd510fca742c36a.tar.xz
plymouth-4cf3e3ae2d9062f727dca72c9dd510fca742c36a.zip
Simplify plugin interface by dropping attach_to_event_loop
Now we just pass the loop in directly to show and hide, which makes its lifecycle more clear.
Diffstat (limited to 'src/splash-plugins')
-rw-r--r--src/splash-plugins/details/details.c38
-rw-r--r--src/splash-plugins/fedora-fade-in/fedora-fade-in.c35
-rw-r--r--src/splash-plugins/text/text.c36
3 files changed, 46 insertions, 63 deletions
diff --git a/src/splash-plugins/details/details.c b/src/splash-plugins/details/details.c
index 6eca872..30c9bf9 100644
--- a/src/splash-plugins/details/details.c
+++ b/src/splash-plugins/details/details.c
@@ -78,8 +78,17 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin)
free (plugin);
}
+static void
+detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
+{
+ plugin->loop = NULL;
+
+ ply_trace ("detaching from event loop");
+}
+
bool
show_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window,
ply_buffer_t *boot_buffer)
{
@@ -87,6 +96,12 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin,
assert (plugin != NULL);
+ plugin->loop = loop;
+
+ ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
+ detach_from_event_loop,
+ plugin);
+
size = ply_buffer_get_size (boot_buffer);
if (size > 0)
@@ -115,16 +130,9 @@ on_boot_output (ply_boot_splash_plugin_t *plugin,
write (STDOUT_FILENO, output, size);
}
-static void
-detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
-{
- plugin->loop = NULL;
-
- ply_trace ("detaching from event loop");
-}
-
void
hide_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window)
{
assert (plugin != NULL);
@@ -138,19 +146,6 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin,
detach_from_event_loop (plugin);
}
-void
-attach_to_event_loop (ply_boot_splash_plugin_t *plugin,
- ply_event_loop_t *loop)
-{
- ply_trace ("attaching to event loop");
-
- plugin->loop = loop;
-
- ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
- detach_from_event_loop,
- plugin);
-}
-
char *
ask_for_password (ply_boot_splash_plugin_t *plugin)
{
@@ -196,7 +191,6 @@ ply_boot_splash_plugin_get_interface (void)
.update_status = update_status,
.on_boot_output = on_boot_output,
.hide_splash_screen = hide_splash_screen,
- .attach_to_event_loop = attach_to_event_loop,
.ask_for_password = ask_for_password,
.on_keyboard_input = on_keyboard_input
};
diff --git a/src/splash-plugins/fedora-fade-in/fedora-fade-in.c b/src/splash-plugins/fedora-fade-in/fedora-fade-in.c
index eb014f3..820a56c 100644
--- a/src/splash-plugins/fedora-fade-in/fedora-fade-in.c
+++ b/src/splash-plugins/fedora-fade-in/fedora-fade-in.c
@@ -321,8 +321,17 @@ on_interrupt (ply_boot_splash_plugin_t *plugin)
stop_animation (plugin);
}
+static void
+detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
+{
+ plugin->loop = NULL;
+
+ ply_window_set_mode (plugin->window, PLY_WINDOW_MODE_TEXT);
+}
+
bool
show_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window,
ply_buffer_t *boot_buffer)
{
@@ -330,6 +339,11 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin,
assert (plugin->logo_image != NULL);
assert (plugin->frame_buffer != NULL);
+ plugin->loop = loop;
+ ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
+ detach_from_event_loop,
+ plugin);
+
ply_trace ("loading logo image");
if (!ply_image_load (plugin->logo_image))
return false;
@@ -441,16 +455,9 @@ update_status (ply_boot_splash_plugin_t *plugin,
add_star (plugin);
}
-static void
-detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
-{
- plugin->loop = NULL;
-
- ply_window_set_mode (plugin->window, PLY_WINDOW_MODE_TEXT);
-}
-
void
hide_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window)
{
assert (plugin != NULL);
@@ -469,17 +476,6 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin,
}
void
-attach_to_event_loop (ply_boot_splash_plugin_t *plugin,
- ply_event_loop_t *loop)
-{
- plugin->loop = loop;
-
- ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
- detach_from_event_loop,
- plugin);
-}
-
-void
on_keyboard_input (ply_boot_splash_plugin_t *plugin,
const char *keyboard_input)
{
@@ -495,7 +491,6 @@ ply_boot_splash_plugin_get_interface (void)
.show_splash_screen = show_splash_screen,
.update_status = update_status,
.hide_splash_screen = hide_splash_screen,
- .attach_to_event_loop = attach_to_event_loop,
.on_keyboard_input = on_keyboard_input
};
diff --git a/src/splash-plugins/text/text.c b/src/splash-plugins/text/text.c
index 6ae750a..d65c0be 100644
--- a/src/splash-plugins/text/text.c
+++ b/src/splash-plugins/text/text.c
@@ -94,13 +94,27 @@ open_console (ply_boot_splash_plugin_t *plugin)
return true;
}
+static void
+detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
+{
+ plugin->loop = NULL;
+
+ ply_trace ("detaching from event loop");
+}
+
bool
show_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window,
ply_buffer_t *boot_buffer)
{
assert (plugin != NULL);
+ plugin->loop = loop;
+ ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
+ detach_from_event_loop,
+ plugin);
+
ply_trace ("opening console");
if (!open_console (plugin))
return false;
@@ -118,16 +132,9 @@ update_status (ply_boot_splash_plugin_t *plugin,
write (plugin->console_fd, ".", 1);
}
-static void
-detach_from_event_loop (ply_boot_splash_plugin_t *plugin)
-{
- plugin->loop = NULL;
-
- ply_trace ("detaching from event loop");
-}
-
void
hide_splash_screen (ply_boot_splash_plugin_t *plugin,
+ ply_event_loop_t *loop,
ply_window_t *window)
{
assert (plugin != NULL);
@@ -144,18 +151,6 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin,
}
}
-void
-attach_to_event_loop (ply_boot_splash_plugin_t *plugin,
- ply_event_loop_t *loop)
-{
- plugin->loop = loop;
-
- ply_trace ("attaching to event loop");
- ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
- detach_from_event_loop,
- plugin);
-}
-
char *
ask_for_password (ply_boot_splash_plugin_t *plugin)
{
@@ -200,7 +195,6 @@ ply_boot_splash_plugin_get_interface (void)
.show_splash_screen = show_splash_screen,
.update_status = update_status,
.hide_splash_screen = hide_splash_screen,
- .attach_to_event_loop = attach_to_event_loop,
.ask_for_password = ask_for_password,
.on_keyboard_input = on_keyboard_input
};