PlymouthGetMode replies the mode as a string of "boot" or "shutdown".
plugin->image_dir);
plugin->script_sprite_lib = script_lib_sprite_setup (plugin->script_state,
plugin->window);
- plugin->script_plymouth_lib = script_lib_plymouth_setup (plugin->script_state);
+ plugin->script_plymouth_lib = script_lib_plymouth_setup (plugin->script_state,
+ plugin->mode);
plugin->script_math_lib = script_lib_math_setup (plugin->script_state);
ply_trace ("executing script file");
* Written by: Charlie Brej <cbrej@cs.man.ac.uk>
*/
#define _GNU_SOURCE
+#include "ply-boot-splash-plugin.h"
#include "ply-utils.h"
#include "script.h"
#include "script-parse.h"
return script_return_obj_null ();
}
-script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state)
+static script_return_t plymouth_get_mode (script_state_t *state,
+ void *user_data)
+{
+ script_lib_plymouth_data_t *data = user_data;
+ script_obj_t *obj;
+ switch (data->mode)
+ {
+ case PLY_BOOT_SPLASH_MODE_BOOT_UP:
+ obj = script_obj_new_string ("boot");
+ break;
+ case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
+ obj = script_obj_new_string ("shutdown");
+ break;
+ default:
+ obj = script_obj_new_string ("unknown");
+ break;
+ }
+ return script_return_obj (obj);
+}
+
+script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state,
+ ply_boot_splash_mode_t mode)
{
script_lib_plymouth_data_t *data = malloc (sizeof (script_lib_plymouth_data_t));
data->script_display_password_func = script_obj_new_null ();
data->script_display_question_func = script_obj_new_null ();
data->script_message_func = script_obj_new_null ();
-
+ data->mode = mode;
+
script_add_native_function (state->global,
"PlymouthSetRefreshFunction",
plymouth_set_function,
&data->script_message_func,
"function",
NULL);
+ script_add_native_function (state->global,
+ "PlymouthGetMode",
+ plymouth_get_mode,
+ data,
+ NULL);
data->script_main_op = script_parse_string (script_lib_plymouth_string, "script-lib-plymouth.script");
script_return_t ret = script_execute (state, data->script_main_op);
script_obj_unref (ret.object); /* Throw anything sent back away */
#ifndef SCRIPT_LIB_PLYMOUTH
#define SCRIPT_LIB_PLYMOUTH
+#include "ply-boot-splash-plugin.h"
#include "script.h"
typedef struct
{
- script_op_t *script_main_op;
- script_obj_t *script_refresh_func;
- script_obj_t *script_boot_progress_func;
- script_obj_t *script_root_mounted_func;
- script_obj_t *script_keyboard_input_func;
- script_obj_t *script_update_status_func;
- script_obj_t *script_display_normal_func;
- script_obj_t *script_display_password_func;
- script_obj_t *script_display_question_func;
- script_obj_t *script_message_func;
+ script_op_t *script_main_op;
+ script_obj_t *script_refresh_func;
+ script_obj_t *script_boot_progress_func;
+ script_obj_t *script_root_mounted_func;
+ script_obj_t *script_keyboard_input_func;
+ script_obj_t *script_update_status_func;
+ script_obj_t *script_display_normal_func;
+ script_obj_t *script_display_password_func;
+ script_obj_t *script_display_question_func;
+ script_obj_t *script_message_func;
+ ply_boot_splash_mode_t mode;
} script_lib_plymouth_data_t;
-script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state);
+script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state,
+ ply_boot_splash_mode_t mode);
void script_lib_plymouth_destroy (script_lib_plymouth_data_t *data);
void script_lib_plymouth_on_refresh (script_state_t *state,