return NULL;
}
+bool
+ply_keyboard_get_capslock_state (ply_keyboard_t *keyboard)
+{
+ assert (keyboard != NULL);
+
+ switch (keyboard->provider_type) {
+ case PLY_KEYBOARD_PROVIDER_TYPE_RENDERER:
+ return ply_renderer_get_capslock_state (keyboard->provider.if_renderer->renderer);
+
+
+ case PLY_KEYBOARD_PROVIDER_TYPE_TERMINAL:
+ return ply_terminal_get_capslock_state (keyboard->provider.if_terminal->terminal);
+ }
+
+ return NULL;
+}
\ No newline at end of file
void ply_keyboard_stop_watching_for_input (ply_keyboard_t *keyboard);
bool ply_keyboard_is_active (ply_keyboard_t *keyboard);
ply_renderer_t *ply_keyboard_get_renderer (ply_keyboard_t *keyboard);
+bool ply_keyboard_get_capslock_state (ply_keyboard_t *keyboard);
#endif
plugin->displays);
plugin->script_plymouth_lib = script_lib_plymouth_setup (plugin->script_state,
plugin->mode,
- FRAMES_PER_SECOND);
+ FRAMES_PER_SECOND,
+ plugin->keyboard);
plugin->script_math_lib = script_lib_math_setup (plugin->script_state);
plugin->script_string_lib = script_lib_string_setup (plugin->script_state);
*
* Written by: Charlie Brej <cbrej@cs.man.ac.uk>
*/
+#pragma weak ply_keyboard_get_capslock_state
#include "config.h"
return script_return_obj (obj);
}
+static script_return_t plymouth_get_capslock_state (script_state_t *state,
+ void *user_data)
+{
+ script_lib_plymouth_data_t *data = user_data;
+ script_obj_t *obj;
+
+ bool is_on = false;
+
+ if (ply_keyboard_get_capslock_state != NULL) {
+ is_on = ply_keyboard_get_capslock_state (data->keyboard);
+ }
+
+
+ obj = is_on ? script_obj_new_number (1) : script_obj_new_number (0);
+
+ return script_return_obj (obj);
+}
+
script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state,
ply_boot_splash_mode_t mode,
- int refresh_rate)
+ int refresh_rate,
+ ply_keyboard_t *keyboard)
{
script_lib_plymouth_data_t *data = malloc (sizeof(script_lib_plymouth_data_t));
data->script_system_update_func = script_obj_new_null ();
data->mode = mode;
data->refresh_rate = refresh_rate;
+ data->keyboard = keyboard;
script_obj_t *plymouth_hash = script_obj_hash_get_element (state->global, "Plymouth");
&data->script_quit_func,
"function",
NULL);
+ script_add_native_function (plymouth_hash,
+ "GetCapslockState",
+ plymouth_get_capslock_state,
+ data,
+ NULL);
script_add_native_function (plymouth_hash,
"GetMode",
plymouth_get_mode,
script_obj_t *script_system_update_func;
ply_boot_splash_mode_t mode;
int refresh_rate;
+ ply_keyboard_t *keyboard;
} script_lib_plymouth_data_t;
script_lib_plymouth_data_t *script_lib_plymouth_setup (script_state_t *state,
ply_boot_splash_mode_t mode,
- int refresh_rate);
+ int refresh_rate,
+ ply_keyboard_t *keyboard);
void script_lib_plymouth_destroy (script_lib_plymouth_data_t *data);
void script_lib_plymouth_on_refresh (script_state_t *state,