// hardwarekeyboard.cpp - HardwareKeyboard object // Shell file used for most devices. A custom hardwarekeyboard.cpp is needed for devices with a hardware keyboard. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include extern "C" { #include "../twcommon.h" #include "../minuitwrp/minui.h" } #include "rapidxml.hpp" #include "objects.hpp" HardwareKeyboard::HardwareKeyboard(void) { } HardwareKeyboard::~HardwareKeyboard() { } int HardwareKeyboard::KeyDown(int key_code) { mPressedKeys.insert(key_code); PageManager::NotifyKey(key_code, true); #ifdef _EVENT_LOGGING LOGERR("HardwareKeyboard::KeyDown %i\n", key_code); #endif return 0; // 0 = no key repeat anything else turns on key repeat } int HardwareKeyboard::KeyUp(int key_code) { std::set::iterator itr = mPressedKeys.find(key_code); if(itr != mPressedKeys.end()) { mPressedKeys.erase(itr); PageManager::NotifyKey(key_code, false); } #ifdef _EVENT_LOGGING LOGERR("HardwareKeyboard::KeyUp %i\n", key_code); #endif return 0; } int HardwareKeyboard::KeyRepeat(void) { /* * Uncomment when key repeats are sent somewhere. * std::set::iterator itr = mPressedKeys.find(key_code); * if(itr != mPressedKeys.end()) * { * Send repeats somewhere, don't remove itr from mPressedKeys * } */ #ifdef _EVENT_LOGGING LOGERR("HardwareKeyboard::KeyRepeat\n"); #endif return 0; } void HardwareKeyboard::ConsumeKeyRelease(int key) { mPressedKeys.erase(key); }