00001 #include <qapplication.h> 00002 #include <qkeysequence.h> 00003 #include "lircevent.h" 00004 00005 #include "AppleRemoteListener.h" 00006 00007 AppleRemoteListener::AppleRemoteListener(QObject* mainWindow_) 00008 : mainWindow(mainWindow_) 00009 { 00010 } 00011 00012 void 00013 AppleRemoteListener::appleRemoteButton(AppleRemote::Event button, 00014 bool pressedDown) 00015 { 00016 char* code = 0; 00017 bool separateRelease = false; 00018 00019 switch (button) 00020 { 00021 case AppleRemote::VolumePlus: 00022 { 00023 code="Up"; 00024 separateRelease=true; 00025 break; 00026 } 00027 case AppleRemote::VolumeMinus: 00028 { 00029 code="Down"; 00030 separateRelease=true; 00031 break; 00032 } 00033 case AppleRemote::Menu: 00034 { 00035 code="Esc"; 00036 break; 00037 } 00038 case AppleRemote::Play: { 00039 code="Enter"; 00040 break; 00041 } 00042 case AppleRemote::Right: 00043 { 00044 code="Right"; 00045 break; 00046 } 00047 case AppleRemote::Left: 00048 { 00049 code="Left"; 00050 break; 00051 } 00052 case AppleRemote::RightHold: 00053 { 00054 code="End"; 00055 separateRelease=true; 00056 break; 00057 } 00058 case AppleRemote::LeftHold: 00059 { 00060 code="Home"; 00061 separateRelease=true; 00062 break; 00063 } 00064 case AppleRemote::MenuHold: 00065 { 00066 code="M"; 00067 break; 00068 } 00069 case AppleRemote::PlaySleep: 00070 { 00071 code="P"; 00072 break; 00073 } 00074 case AppleRemote::ControlSwitched: 00075 return; 00076 } 00077 QKeySequence a(code); 00078 int keycode = 0; 00079 for (unsigned int i = 0; i < a.count(); i++) 00080 { 00081 keycode = a[i]; 00082 00083 QApplication::postEvent(mainWindow, new LircKeycodeEvent(code, keycode, pressedDown)); 00084 00085 if (!separateRelease) 00086 QApplication::postEvent(mainWindow, new LircKeycodeEvent(code, keycode, false)); 00087 } 00088 00089 }
1.5.5