// note, slow linear search every time int levent_post_to_ui_by_name(const char *name) { unsigned id=levent_id_for_name(name); if(id) { PostLogicalEventToUI(id,0); return 1; } return 0; }
int UnlockMF(void) { if (!camera_info.state.mode_play) { int mf_lock; get_property_case(PROPCASE_FOCUS_MODE,&mf_lock,sizeof(mf_lock)); if( mf_lock == 1 ) PostLogicalEventForNotPowerType(levent_id_for_name("PressSw1AndMF"),0); return(1); } return(0); }
void kbd_key_release(long key) { #ifdef KBD_SIMULATE_VIDEO_KEY if (key == KEY_VIDEO && is_video_key_pressed) { PostLogicalEventToUI(levent_id_for_name("UnpressMovieButton"),0); is_video_key_pressed = 0; return; } #endif int i; for (i=0;keymap[i].hackkey;i++){ if (keymap[i].hackkey == key){ kbd_mod_state[keymap[i].grp] |= keymap[i].canonkey; return; } } }
// get the string or number passed in index and return it as an event id static unsigned levent_id_from_lua_arg( lua_State* L, int index) { unsigned event_id; if (lua_type(L, index) == LUA_TSTRING) { const char *ev_name = lua_tostring(L, index); event_id = levent_id_for_name(ev_name); if (event_id == 0) { return luaL_error( L, "bad event name '%s'", ev_name ); } } // could check here if it is in the table, but even valid ones can crash // so we avoid searching the table if given a number else if (lua_type(L,index) == LUA_TNUMBER) { event_id = lua_tonumber(L,index); } else { return luaL_error( L, "expected event name or id" ); } return event_id; }
void kbd_key_press(long key) { #ifdef KBD_SIMULATE_VIDEO_KEY if (key == KEY_VIDEO && !is_video_key_pressed) { // TODO define for ID would be more efficient PostLogicalEventToUI(levent_id_for_name("PressMovieButton"),0); is_video_key_pressed = 1; // TODO not clear if this should return, or set state too return; } #endif int i; for (i=0;keymap[i].hackkey;i++){ if (keymap[i].hackkey == key){ kbd_mod_state[keymap[i].grp] &= ~keymap[i].canonkey; return; } } }