diff options
author | johnv-valve <johnv@valvesoftware.com> | 2014-10-15 16:18:44 -0700 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2014-10-17 15:19:13 -0400 |
commit | b5739c6c9929401866916aa2db49c48a5c33332d (patch) | |
tree | 0c750c2b2072f7a5c42bc6e7987bc968fb64c965 | |
parent | 6525ae6017e707728cd4fd0e625da9c6a8e00ab3 (diff) |
script support system update events
Add new script function, SetSystemUpdateFunction to allow scripts
to register a callback for system update progress notifications.
-rw-r--r-- | src/plugins/splash/script/script-lib-plymouth.c | 21 | ||||
-rw-r--r-- | src/plugins/splash/script/script-lib-plymouth.h | 5 |
2 files changed, 26 insertions, 0 deletions
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 */ |