7#include <gdk/gdkkeysyms.h>
13#define NEEDS_TRANSLATION LIVES_SPECIAL_MASK
21static void handle_omc_events(
void) {
33 char *
string = js_mangle();
44 if (
prefs->use_alsa_midi) midi_check_rate = 1;
49 for (i = 0; i < midi_check_rate; i++) {
69 static int priority = G_PRIORITY_DEFAULT;
71 boolean needs_check =
FALSE;
84#ifdef ENABLE_JACK_TRANSPORT
85 if (
mainw->jack_trans_poll) {
103 lives_osc_poll(NULL);
109 if (priority != G_PRIORITY_DEFAULT) {
110 g_source_set_priority(g_main_context_find_source_by_id(NULL,
mainw->
kb_timer), (priority = G_PRIORITY_DEFAULT));
114 if (priority != G_PRIORITY_DEFAULT_IDLE) {
115 g_source_set_priority(g_main_context_find_source_by_id(NULL,
mainw->
kb_timer), (priority = G_PRIORITY_LOW));
126LiVESFilterReturn filter_func(LiVESXXEvent *xevent, LiVESXEvent *event, livespointer data) {
128 uint32_t modifiers = 0;
129 return LIVES_FILTER_CONTINUE;
135 boolean ret =
pl_key_function(event->type == LIVES_KEY_PRESS, event->keyval, event->state);
143 if (
cfile->pb_fps == 0.)
return;
161 keymod = keymod & ~(LIVES_NUMLOCK_MASK);
195 unicode = LIVES_KEY_Space;
198 unicode = LIVES_KEY_BackSpace;
201 unicode = LIVES_KEY_Return;
204 unicode = LIVES_KEY_q;
207 unicode = LIVES_KEY_1;
210 unicode = LIVES_KEY_2;
213 unicode = LIVES_KEY_3;
216 unicode = LIVES_KEY_4;
219 unicode = LIVES_KEY_5;
222 unicode = LIVES_KEY_6;
225 unicode = LIVES_KEY_7;
228 unicode = LIVES_KEY_8;
231 unicode = LIVES_KEY_9;
234 unicode = LIVES_KEY_0;
237 unicode = LIVES_KEY_F1;
240 unicode = LIVES_KEY_F2;
243 unicode = LIVES_KEY_F3;
246 unicode = LIVES_KEY_F4;
249 unicode = LIVES_KEY_F5;
252 unicode = LIVES_KEY_F6;
255 unicode = LIVES_KEY_F7;
258 unicode = LIVES_KEY_F8;
261 unicode = LIVES_KEY_F9;
264 unicode = LIVES_KEY_F10;
267 unicode = LIVES_KEY_F11;
270 unicode = LIVES_KEY_F12;
274 unicode = LIVES_KEY_Page_Up;
278 unicode = LIVES_KEY_Page_Down;
284 unicode = LIVES_KEY_Left;
288 unicode = LIVES_KEY_Right;
292 unicode = LIVES_KEY_Up;
296 unicode = LIVES_KEY_Down;
301 if (down && (unicode == LIVES_KEY_Left || unicode == LIVES_KEY_Right
302 || unicode == LIVES_KEY_Up || unicode == LIVES_KEY_Down) &&
303 (keymod & LIVES_CONTROL_MASK)) {
306 if (keymod & LIVES_ALT_MASK) {
309 if (keymod & LIVES_SHIFT_MASK) {
314 if (down && (unicode == LIVES_KEY_Less || unicode == LIVES_KEY_Greater)) {
316 if (keymod & LIVES_SHIFT_MASK) {
322 if (unicode == LIVES_KEY_Return || unicode == 13) unicode =
'\n';
323 if (unicode == LIVES_KEY_BackSpace) unicode = 8;
325 else if (unicode > 0 && unicode < 256) {
332 if (unicode == 8 && strlen(cval) > 0) {
333 cval[strlen(cval) - 1] = 0;
334 nval = lives_strdup(cval);
358boolean slower_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
359 livespointer user_data) {
361 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
368boolean less_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
369 livespointer user_data) {
371 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
377boolean faster_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
378 livespointer user_data) {
380 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
387boolean more_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
388 livespointer user_data) {
390 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
396boolean skip_back_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
397 livespointer user_data) {
405boolean skip_forward_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
406 livespointer user_data) {
414boolean volup_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
415 livespointer user_data) {
417 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
423boolean voldown_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
424 livespointer user_data) {
426 if (!(mod & LIVES_SPECIAL_MASK))
return TRUE;
432boolean stop_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
433 livespointer user_data) {
439boolean fullscreen_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
440 livespointer user_data) {
446boolean sepwin_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
447 livespointer user_data) {
453boolean loop_cont_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
454 livespointer user_data) {
460boolean ping_pong_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
461 livespointer user_data) {
467boolean fade_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
468 livespointer user_data) {
474boolean showfct_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
475 livespointer user_data) {
481boolean showsubs_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
482 livespointer user_data) {
488boolean loop_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
489 livespointer user_data) {
495boolean dblsize_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
496 livespointer user_data) {
502boolean rec_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod,
503 livespointer user_data) {
void on_back_pressed(LiVESButton *button, livespointer user_data)
void on_slower_pressed(LiVESButton *button, livespointer user_data)
void on_volch_pressed(LiVESButton *button, livespointer user_data)
void on_loop_button_activate(LiVESMenuItem *menuitem, livespointer user_data)
void on_full_screen_pressed(LiVESButton *button, livespointer user_data)
void on_ping_pong_activate(LiVESMenuItem *menuitem, livespointer user_data)
void on_forward_pressed(LiVESButton *button, livespointer user_data)
void on_faster_pressed(LiVESButton *button, livespointer user_data)
void on_sepwin_pressed(LiVESButton *button, livespointer user_data)
void on_fade_pressed(LiVESButton *button, livespointer user_data)
void on_more_pressed(LiVESButton *button, livespointer user_data)
void on_less_pressed(LiVESButton *button, livespointer user_data)
void on_double_size_pressed(LiVESButton *button, livespointer user_data)
void on_stop_activate(LiVESMenuItem *menuitem, livespointer user_data)
void rec_param_change(weed_plant_t *inst, int pnum)
record a parameter value change in our event_list
#define WEED_LEAF_HOST_INSTANCE
#define WEED_LEAF_HOST_IDX
boolean faster_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
#define NEEDS_TRANSLATION
boolean fullscreen_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean rec_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean loop_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean sepwin_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean showfct_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean fade_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean slower_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean skip_back_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean dblsize_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean volup_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean more_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean less_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean voldown_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean skip_forward_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean key_press_or_release(LiVESWidget *widget, LiVESXEventKey *event, livespointer user_data)
wrapper for pl_key_function
boolean ext_triggers_poll(livespointer data)
poll for external playback start
boolean pl_key_function(boolean down, uint16_t unicode, uint16_t keymod)
all funky stuff with keys
boolean showsubs_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean stop_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean loop_cont_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean ping_pong_callback(LiVESAccelGroup *group, LiVESWidgetObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
void handle_cached_keys(void)
smooth the key repeat for scratching
error("LSD_RANDFUNC(ptr, size) must be defined")
#define LIVES_MAIN_WINDOW_WIDGET
#define SCREEN_AREA_BACKGROUND
#define SCREEN_AREA_FOREGROUND
boolean omc_process_string(int supertype, const char *string, boolean learn, omclearn_w *omclw)
process a string (i.e. convert to an OSC message and pass to OSC subsys) only need to set omclw if le...
int midi_check_rate
deprecated
LiVESWidget * record_perf
boolean ext_cntl[MAX_EXT_CNTL]
external control inputs
volatile boolean is_exiting
set during shutdown (inverse of only_close then)
volatile boolean record_paused
pause during recording
weed_plant_t * rte_textparm
send keyboard input to this paramter (usually NULL)
#define lives_strdup_printf(fmt,...)