您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AKeyEvent_getKeyCode函数代码示例

51自学网 2021-06-01 19:34:26
  C++
这篇教程C++ AKeyEvent_getKeyCode函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AKeyEvent_getKeyCode函数的典型用法代码示例。如果您正苦于以下问题:C++ AKeyEvent_getKeyCode函数的具体用法?C++ AKeyEvent_getKeyCode怎么用?C++ AKeyEvent_getKeyCode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AKeyEvent_getKeyCode函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: key_ascii

/** * Convert an Android key event to ASCII. */static unsigned char key_ascii(struct android_app* app, AInputEvent* event) {  int32_t code = AKeyEvent_getKeyCode(event);  /* Handle a few special cases: */  switch (code) {  case AKEYCODE_DEL:    return 8;  case AKEYCODE_FORWARD_DEL:    return 127;  case AKEYCODE_ESCAPE:    return 27;  }  /* Get usable JNI context */  JNIEnv* env = app->activity->env;  JavaVM* vm = app->activity->vm;  (*vm)->AttachCurrentThread(vm, &env, NULL);  jclass KeyEventClass = (*env)->FindClass(env, "android/view/KeyEvent");  jmethodID KeyEventConstructor = (*env)->GetMethodID(env, KeyEventClass, "<init>", "(II)V");  jobject keyEvent = (*env)->NewObject(env, KeyEventClass, KeyEventConstructor,				       AKeyEvent_getAction(event), AKeyEvent_getKeyCode(event));  jmethodID KeyEvent_getUnicodeChar = (*env)->GetMethodID(env, KeyEventClass, "getUnicodeChar", "(I)I");  int ascii = (*env)->CallIntMethod(env, keyEvent, KeyEvent_getUnicodeChar, AKeyEvent_getMetaState(event));  /* LOGI("getUnicodeChar(%d) = %d ('%c')", AKeyEvent_getKeyCode(event), ascii, ascii); */  return ascii;}
开发者ID:fatman2021,项目名称:qb64,代码行数:32,


示例2: packt_Log_debug

    bool InputService::onKeyboardEvent(AInputEvent* pEvent) {#ifdef INPUTSERVICE_LOG_EVENTS         packt_Log_debug("AKeyEvent_getAction=%d", AKeyEvent_getAction(pEvent));         packt_Log_debug("AKeyEvent_getFlags=%d", AKeyEvent_getFlags(pEvent));         packt_Log_debug("AKeyEvent_getKeyCode=%d", AKeyEvent_getKeyCode(pEvent));         packt_Log_debug("AKeyEvent_getScanCode=%d", AKeyEvent_getScanCode(pEvent));         packt_Log_debug("AKeyEvent_getMetaState=%d", AKeyEvent_getMetaState(pEvent));         packt_Log_debug("AKeyEvent_getRepeatCount=%d", AKeyEvent_getRepeatCount(pEvent));         packt_Log_debug("AKeyEvent_getDownTime=%lld", AKeyEvent_getDownTime(pEvent));         packt_Log_debug("AKeyEvent_getEventTime=%lld", AKeyEvent_getEventTime(pEvent));#endif        const float ORTHOGONAL_MOVE = 1.0f;        if (AKeyEvent_getAction(pEvent) == AKEY_EVENT_ACTION_DOWN) {            switch (AKeyEvent_getKeyCode(pEvent)) {            case AKEYCODE_DPAD_LEFT:                mHorizontal = -ORTHOGONAL_MOVE;                break;            case AKEYCODE_DPAD_RIGHT:                mHorizontal = ORTHOGONAL_MOVE;                break;            case AKEYCODE_DPAD_DOWN:                mVertical = -ORTHOGONAL_MOVE;                break;            case AKEYCODE_DPAD_UP:                mVertical = ORTHOGONAL_MOVE;                break;            case AKEYCODE_BACK:                return false;            }        } else {            switch (AKeyEvent_getKeyCode(pEvent)) {            case AKEYCODE_DPAD_LEFT:            case AKEYCODE_DPAD_RIGHT:                mHorizontal = 0.0f;                break;            case AKEYCODE_DPAD_DOWN:            case AKEYCODE_DPAD_UP:                mVertical = 0.0f;                break;            case AKEYCODE_MENU:                mMenuKey = true;                break;            case AKEYCODE_BACK:                return false;            }        }        return true;    }
开发者ID:AlexanderGarmash,项目名称:ndkguide,代码行数:49,


示例3: input

static int32_t input(struct android_app * app, AInputEvent * e) {    int handled = 1;    int kc;    cvkey cvkc;    int action;    switch (AInputEvent_getType(e)) {    case AINPUT_EVENT_TYPE_KEY:        kc = AKeyEvent_getKeyCode(e);        action = AKeyEvent_getAction(e);        cvkc = mapkey(kc);        handled = kc != CVK_NONE;        if (handled) {            if (action == AKEY_EVENT_ACTION_DOWN)                cvInject(CVE_DOWN, cvkc, 0);            if (action == AKEY_EVENT_ACTION_UP)                cvInject(CVE_UP, cvkc, 0);        }        break;    case AINPUT_EVENT_TYPE_MOTION:        cvInject(CVE_MOTION,                 AMotionEvent_getX(e, 0), AMotionEvent_getY(e, 0));        break;    default:        handled = 0;    }    return handled;}
开发者ID:jacereda,项目名称:glcv,代码行数:27,


示例4: _process_keys

static bool _process_keys(bool isJoy, AInputEvent *event, CookedEventCallback callback) {    if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY) {        int action = AKeyEvent_getAction(event);        int code = _translate_keycode(AKeyEvent_getKeyCode(event));        bool handled = code >= 0;        if (code >= 0 && action == AKEY_EVENT_ACTION_DOWN) {            _report_key_state(code, true, callback);        } else if (code >= 0 && action == AKEY_EVENT_ACTION_UP) {            _report_key_state(code, false, callback);        }        return handled;    } else if (isJoy) {        // use joystick axes to emulate directional key events (we could leave this        // up to the platform, but joystick-to-dpad conversion doesn't work        // on NDK on older devices,  so we implement manually for maximum compatibility)        float x = AMotionEvent_getX(event, 0);        float y = AMotionEvent_getY(event, 0);        if (_getAxisValue) {            // take the hat switches into account too, so that either the            // regular axes or the hat axes can be used to navigate UIs            x += _getAxisValue(event, AXIS_HAT_X, 0);            y += _getAxisValue(event, AXIS_HAT_Y, 0);            x = Clamp(x, -1.0f, 1.0f);            y = Clamp(y, -1.0f, 1.0f);        }        _report_key_states_from_axes(x, y, callback);        return true;    }}
开发者ID:13simon37,项目名称:android-samples,代码行数:29,


示例5: handle_input_events

int32_t handle_input_events(struct android_app* app, AInputEvent* event) {	int etype = AInputEvent_getType(event);	switch (etype) {	case AINPUT_EVENT_TYPE_KEY:		int32_t eaction, eflags, ekeycode, escancode;		eaction = AKeyEvent_getAction(event);		eflags = AKeyEvent_getFlags(event);		ekeycode = AKeyEvent_getKeyCode(event);//		LOGI(2, "%s", get_key_event_str(eaction, eflags, ekeycode));		break;	case AINPUT_EVENT_TYPE_MOTION:		int32_t action, posX, pointer_index;		action = AMotionEvent_getAction(event);		pointer_index = (action&AMOTION_EVENT_ACTION_POINTER_INDEX_MASK) >> AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT;		posX = AMotionEvent_getX(event, pointer_index);		//write a command to the activity lifecycle event queue (pipe)		if (action == AMOTION_EVENT_ACTION_MOVE) {			int xMove = posX - mPreviousX;			USERDATA* userData = (USERDATA*)app->userData;			userData->xMove = xMove;			app->redrawNeeded = 1;		}		mPreviousX = posX;//		LOGI(2, "action: %d, posX: %d, mPreviousX: %d, posX: %d", action, posX, mPreviousX, posX);		break;	default:		LOGI(2, "other input event");		break;	}}
开发者ID:GitNooby,项目名称:notes,代码行数:30,


示例6: CookEvent

bool CookEvent(AInputEvent *event, CookedEventCallback callback) {    int type = AInputEvent_getType(event);    int src = AInputEvent_getSource(event);    bool isJoy = (type == AINPUT_EVENT_TYPE_MOTION) && (src & AINPUT_SOURCE_CLASS_MASK) ==            SOURCE_CLASS_JOYSTICK;    if (!_init_done) {        _init();        _init_done = true;    }    if (isJoy) {        return CookEvent_Joy(event, callback);    } else if (type == AINPUT_EVENT_TYPE_KEY) {        bool handled = _process_keys(false, event, callback);        if (AKeyEvent_getKeyCode(event) == AKEYCODE_BACK && 0 == AKeyEvent_getAction(event)) {            // back key was pressed            struct CookedEvent ev;            memset(&ev, 0, sizeof(ev));            ev.type = COOKED_EVENT_TYPE_BACK;            return callback(&ev);        }        // Note: if you want to handle other keys, add code here. For now we only        // handle DPAD keys as indicated in _process_keys.        return handled;    } else if (type == AINPUT_EVENT_TYPE_MOTION) {        return CookEvent_Motion(event, callback);    }    return false;}
开发者ID:13simon37,项目名称:android-samples,代码行数:31,


示例7: AKeyEvent_getKeyCode

/***  @brief*    Call this to process the next key input event*/void AndroidKeyboardDevice::OnKeyInputEvent(const struct AInputEvent &cAKeyInputEvent){	// Check if input device is valid	if (m_pDevice) {		// Get Android key code		const int32_t nKeyCode = AKeyEvent_getKeyCode(&cAKeyInputEvent);		// Lookout! The virtual keyboard of Android sends "down" and "up" directly one after another		// -> This is really a problem and we have to delay further keys...		if (m_lstProcessedKeys.IsElement(nKeyCode)) {			// Add key for later processing			KeyInfo sKeyInfo;			sKeyInfo.nKeyCode = nKeyCode;			sKeyInfo.bPressed = (AKeyEvent_getAction(&cAKeyInputEvent) == AKEY_EVENT_ACTION_DOWN);			m_lstDelayedKeys.Add(sKeyInfo);		} else {			// Get keyboard device			Keyboard *pKeyboard = static_cast<Keyboard*>(m_pDevice);			// Get button			Button *pButton = GetKeyboardKey(*pKeyboard, nKeyCode);			if (pButton) {				// Get button state				const bool bPressed = (AKeyEvent_getAction(&cAKeyInputEvent) == AKEY_EVENT_ACTION_DOWN);				// Propagate changes				if (pButton->IsPressed() != bPressed)					pButton->SetPressed(bPressed);			}			// Add this key to the processed keys			m_lstProcessedKeys.Add(nKeyCode);		}	}}
开发者ID:ByeDream,项目名称:pixellight,代码行数:39,


示例8: AKeyEvent_getKeyCode

	event_result message_dispatcher::fire_on_dpad(app& the_app, AInputEvent *ie)	{		int kcode = AKeyEvent_getKeyCode(ie);		int type = AKeyEvent_getAction(ie);		bool h = false;		switch (kcode) {		case AKEYCODE_DPAD_UP:			h = the_app.on_dpad_up(type == AKEY_EVENT_ACTION_DOWN ? button_event::down : button_event::up);			break;		case AKEYCODE_DPAD_DOWN:			h = the_app.on_dpad_down(type == AKEY_EVENT_ACTION_DOWN ? button_event::down : button_event::up);			break;		case AKEYCODE_DPAD_LEFT:			h = the_app.on_dpad_left(type == AKEY_EVENT_ACTION_DOWN ? button_event::down : button_event::up);			break;		case AKEYCODE_DPAD_RIGHT:			h = the_app.on_dpad_right(type == AKEY_EVENT_ACTION_DOWN ? button_event::down : button_event::up);			break;		case AKEYCODE_DPAD_CENTER:			h = the_app.on_dpad_center(type == AKEY_EVENT_ACTION_DOWN ? button_event::down : button_event::up);			break;		default:			break;		}		return h ? event_result::handled : event_result::unhandled;	}
开发者ID:emmanuel-deloget,项目名称:anapi,代码行数:28,


示例9: get_key_event

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。