mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 17:08:35 +02:00
[script] Add PlymouthGetMode to get boot/shutdown mode
PlymouthGetMode replies the mode as a string of "boot" or "shutdown".
This commit is contained in:
parent
a65e402dcc
commit
74f4711e77
3 changed files with 46 additions and 14 deletions
|
|
@ -177,7 +177,8 @@ start_animation (ply_boot_splash_plugin_t *plugin)
|
|||
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");
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
* 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"
|
||||
|
|
@ -54,7 +55,28 @@ static script_return_t plymouth_set_function (script_state_t *state,
|
|||
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));
|
||||
|
||||
|
|
@ -67,7 +89,8 @@ script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state)
|
|||
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,
|
||||
|
|
@ -122,6 +145,11 @@ script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state)
|
|||
&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 */
|
||||
|
|
|
|||
|
|
@ -22,23 +22,26 @@
|
|||
#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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue