From: johnv-valve Date: Wed, 15 Oct 2014 23:18:44 +0000 (-0700) Subject: script support system update events X-Git-Tag: 0.9.2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5739c6c9929401866916aa2db49c48a5c33332d;p=thirdparty%2Fplymouth.git script support system update events Add new script function, SetSystemUpdateFunction to allow scripts to register a callback for system update progress notifications. --- diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c index 57050791..16806cdf 100644 --- a/src/plugins/splash/script/script-lib-plymouth.c +++ b/src/plugins/splash/script/script-lib-plymouth.c @@ -88,6 +88,7 @@ script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *st data->script_display_message_func = script_obj_new_null (); data->script_hide_message_func = script_obj_new_null (); data->script_quit_func = script_obj_new_null (); + data->script_system_update_func = script_obj_new_null (); data->mode = mode; script_obj_t *plymouth_hash = script_obj_hash_get_element (state->global, "Plymouth"); @@ -162,6 +163,12 @@ script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *st plymouth_get_mode, data, NULL); + script_add_native_function (plymouth_hash, + "SetSystemUpdateFunction", + plymouth_set_function, + &data->script_system_update_func, + "function", + NULL); script_obj_unref (plymouth_hash); data->script_main_op = script_parse_string (script_lib_plymouth_string, "script-lib-plymouth.script"); @@ -338,6 +345,20 @@ void script_lib_plymouth_on_hide_message (script_state_t *state, script_obj_unref (ret.object); } +void script_lib_plymouth_on_system_update (script_state_t *state, + script_lib_plymouth_data_t *data, + int progress) +{ + script_obj_t *new_status_obj = script_obj_new_number (progress); + script_return_t ret = script_execute_object (state, + data->script_system_update_func, + NULL, + new_status_obj, + NULL); + script_obj_unref (new_status_obj); + script_obj_unref (ret.object); +} + void script_lib_plymouth_on_quit (script_state_t *state, script_lib_plymouth_data_t *data) { diff --git a/src/plugins/splash/script/script-lib-plymouth.h b/src/plugins/splash/script/script-lib-plymouth.h index dafdec3c..bf8c96e4 100644 --- a/src/plugins/splash/script/script-lib-plymouth.h +++ b/src/plugins/splash/script/script-lib-plymouth.h @@ -39,6 +39,7 @@ typedef struct script_obj_t *script_display_message_func; script_obj_t *script_hide_message_func; script_obj_t *script_quit_func; + script_obj_t *script_system_update_func; ply_boot_splash_mode_t mode; } script_lib_plymouth_data_t; @@ -78,5 +79,9 @@ void script_lib_plymouth_on_hide_message (script_state_t *state, const char *new_message); void script_lib_plymouth_on_quit (script_state_t *state, script_lib_plymouth_data_t *data); +void script_lib_plymouth_on_system_update (script_state_t *state, + script_lib_plymouth_data_t *data, + int progress); + #endif /* SCRIPT_LIB_PLYMOUTH_H */