-rw-r--r-- | tvapi/libtv/tv/CTv.cpp | 2 | ||||
-rw-r--r-- | tvapi/libtv/tvin/CTvin.cpp | 14 | ||||
-rw-r--r-- | tvapi/libtv/tvin/CTvin.h | 3 | ||||
-rw-r--r-- | tvapi/libtv/tvutils/CTvInput.cpp | 47 |
4 files changed, 34 insertions, 32 deletions
diff --git a/tvapi/libtv/tvutils/CTvInput.cpp b/tvapi/libtv/tvutils/CTvInput.cpp index 87d7352..7e3af96 100644 --- a/tvapi/libtv/tvutils/CTvInput.cpp +++ b/tvapi/libtv/tvutils/CTvInput.cpp @@ -5,14 +5,19 @@ #include <fcntl.h> #include <CTvLog.h> #include <utils/Timers.h> + #define LOG_TAG "FBC" + +#define SEND_KEY_ACTION_UP 0x00 +#define SEND_KEY_ACTION_DOWN 0x01 + CTvInput::CTvInput() { mKeyEventFd_IR = open(KEY_EVENT_0, O_RDWR); mKeyEventFd = open(KEY_EVENT_1, O_RDWR); if (mKeyEventFd < 0 || mKeyEventFd_IR < 0) { LOGD( "could not open /dev/input/event1\n "); - return ; + return; } mRepeatKeyCode = -1; mRepeatKeydisTime = -1; @@ -38,7 +43,7 @@ void CTvInput::sendkeyEvent(const int &type, const int &code, const int &value) ret = write(mKeyEventFd, &event, sizeof(event)); if (ret < sizeof(event)) { LOGD("sendkeyEvent :write event failed, %s\n", strerror(errno)); - return ; + return; } } @@ -54,53 +59,55 @@ void CTvInput::sendIRkeyEvent(const int &type, const int &code, const int &value ret = write(mKeyEventFd_IR, &event, sizeof(event)); if (ret < sizeof(event)) { LOGD("sendIRkeyEvent :write event failed, %s\n", strerror(errno)); - return ; + return; } } void CTvInput::sendkeyCode(const int &code) { - sendkeyEvent(1 , code, 1); //down - sendkeyEvent(0, 0, 0); //clear - sendkeyEvent(1 , code, 0); //up - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(EV_KEY , code, SEND_KEY_ACTION_DOWN); //down + sendkeyEvent(EV_SYN, 0, 0); //clear + sendkeyEvent(EV_KEY , code, SEND_KEY_ACTION_UP); //up + sendkeyEvent(EV_SYN, 0, 0); //clear } void CTvInput::sendkeyCode_Up(const int &code) { - sendkeyEvent(1 , code, 0); //up - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(EV_KEY , code, SEND_KEY_ACTION_UP); //up + sendkeyEvent(EV_SYN, 0, 0); //clear } void CTvInput::sendkeyCode_Down(const int &code) { - sendkeyEvent(1 , code, 1); //down - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(EV_KEY , code, SEND_KEY_ACTION_DOWN); //down + sendkeyEvent(EV_SYN, 0, 0); //clear } + void CTvInput::sendIRkeyCode(const int &code) { - sendIRkeyEvent(1 , code, 1); //down - sendIRkeyEvent(0, 0, 0); //clear - sendIRkeyEvent(1 , code, 0); //up - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(EV_KEY , code, SEND_KEY_ACTION_DOWN); //down + sendIRkeyEvent(EV_SYN, 0, 0); //clear + sendIRkeyEvent(EV_KEY , code, SEND_KEY_ACTION_UP); //up + sendIRkeyEvent(EV_SYN, 0, 0); //clear } void CTvInput::sendIRkeyCode_Up(const int &code) { - sendIRkeyEvent(1 , code, 0); //up - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(EV_KEY , code, SEND_KEY_ACTION_UP); //up + sendIRkeyEvent(EV_SYN, 0, 0); //clear } void CTvInput::sendIRkeyCode_Down(const int &code) { - sendIRkeyEvent(1 , code, 1); //down - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(EV_KEY , code, SEND_KEY_ACTION_DOWN); //down + sendIRkeyEvent(EV_SYN, 0, 0); //clear } nsecs_t CTvInput::getNowMs() { return systemTime(SYSTEM_TIME_MONOTONIC) / 1000000; } + void CTvInput::sendKeyRepeatStart(const int &code, int disTime, int repeatDisTime) { CMutex::Autolock _l(mLock); @@ -120,7 +127,7 @@ void CTvInput::sendKeyRepeatStop() mRepeatKeydisTime = -1; } -bool CTvInput::threadLoop() +bool CTvInput::threadLoop() { int sleeptime = 100;//ms |