#include <AppleRemote.h>
Classes | |
| class | Listener |
Public Types | |
| enum | Event { Up = 0, Down, Menu, Select, Right, Left, RightHold, LeftHold, MenuHold, PlayHold, ControlSwitched, PlayPause, Undefined } |
Public Member Functions | |
| ~AppleRemote () | |
| bool | isListeningToRemote () |
| void | setListener (Listener *listener) |
| Listener * | listener () |
| void | setOpenInExclusiveMode (bool in) |
| bool | isOpenInExclusiveMode () |
| void | startListening () |
| void | stopListening () |
| void | run () |
| Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. | |
Static Public Member Functions | |
| static AppleRemote * | Get () |
Protected Member Functions | |
| AppleRemote () | |
Static Protected Attributes | |
| static AppleRemote * | _instance = 0 |
Private Slots | |
| void | TimeoutHandler () |
Private Member Functions | |
| void | _initCookieMap () |
| Apple keeps changing the "interface" between the remote and the OS. | |
| bool | _initCookies () |
| bool | _createDeviceInterface (io_object_t hidDevice) |
| bool | _openDevice () |
| void | _queueCallbackFunction (IOReturn result, void *refcon, void *sender) |
| void | _queueCallbackATV23 (IOReturn result) |
| void | _handleEventWithCookieString (std::string cookieString, SInt32 sumOfValues) |
| void | _handleEventATV23 (std::string cookieString, SInt32 sumOfValues) |
Static Private Member Functions | |
| static void | QueueCallbackFunction (void *target, IOReturn result, void *refcon, void *sender) |
Private Attributes | |
| bool | openInExclusiveMode |
| IOHIDDeviceInterface ** | hidDeviceInterface |
| IOHIDQueueInterface ** | queue |
| std::vector< int > | cookies |
| std::map< std::string, Event > | cookieToButtonMapping |
| int | remoteId |
| Listener * | _listener |
| bool | mUsingNewAtv |
| AppleRemote::Event | mLastEvent |
| int | mEventCount |
| bool | mKeyIsDown |
| QTimer * | mCallbackTimer |
Definition at line 20 of file AppleRemote.h.
| enum AppleRemote::Event |
| Up | |
| Down | |
| Menu | |
| Select | |
| Right | |
| Left | |
| RightHold | |
| LeftHold | |
| MenuHold | |
| PlayHold | |
| ControlSwitched | |
| PlayPause | |
| Undefined |
Definition at line 24 of file AppleRemote.h.
| AppleRemote::~AppleRemote | ( | ) |
Definition at line 58 of file AppleRemote.cpp.
| AppleRemote::AppleRemote | ( | ) | [protected] |
Definition at line 167 of file AppleRemote.cpp.
Referenced by Get().
| AppleRemote * AppleRemote::Get | ( | void | ) | [static] |
Definition at line 50 of file AppleRemote.cpp.
Referenced by MythMainWindow::MythMainWindow().
| bool AppleRemote::isListeningToRemote | ( | ) |
Definition at line 65 of file AppleRemote.cpp.
Referenced by MythMainWindow::MythMainWindow().
| void AppleRemote::setListener | ( | AppleRemote::Listener * | listener | ) |
Definition at line 70 of file AppleRemote.cpp.
Referenced by MythMainWindow::MythMainWindow().
| Listener* AppleRemote::listener | ( | ) | [inline] |
Definition at line 53 of file AppleRemote.h.
| void AppleRemote::setOpenInExclusiveMode | ( | bool | in | ) | [inline] |
Definition at line 54 of file AppleRemote.h.
| bool AppleRemote::isOpenInExclusiveMode | ( | ) | [inline] |
Definition at line 55 of file AppleRemote.h.
| void AppleRemote::startListening | ( | ) |
Definition at line 75 of file AppleRemote.cpp.
Referenced by MythMainWindow::event(), and MythMainWindow::MythMainWindow().
| void AppleRemote::stopListening | ( | ) |
Definition at line 97 of file AppleRemote.cpp.
Referenced by MythMainWindow::event(), startListening(), ~AppleRemote(), and MythMainWindow::~MythMainWindow().
| void AppleRemote::run | ( | void | ) | [virtual] |
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
Reimplemented from MThread.
Definition at line 118 of file AppleRemote.cpp.
| void AppleRemote::_initCookieMap | ( | ) | [private] |
Apple keeps changing the "interface" between the remote and the OS.
This initialises a table that stores those mappings.
The white plastic remote has a Play+Pause button in the middle of the navigation ring, but for menu navigation, we send an "enter" event instead. Ideally we would remap that for TV/videos, but MythTV can't easily do that.
The new Aluminium remote has separate Select and Play+Pause buttons.
Definition at line 202 of file AppleRemote.cpp.
Referenced by AppleRemote().
| bool AppleRemote::_initCookies | ( | ) | [private] |
Definition at line 307 of file AppleRemote.cpp.
Referenced by startListening().
| bool AppleRemote::_createDeviceInterface | ( | io_object_t | hidDevice | ) | [private] |
Definition at line 347 of file AppleRemote.cpp.
Referenced by startListening().
| bool AppleRemote::_openDevice | ( | ) | [private] |
Definition at line 376 of file AppleRemote.cpp.
Referenced by startListening().
| void AppleRemote::QueueCallbackFunction | ( | void * | target, | |
| IOReturn | result, | |||
| void * | refcon, | |||
| void * | sender | |||
| ) | [static, private] |
Definition at line 438 of file AppleRemote.cpp.
Referenced by _openDevice().
| void AppleRemote::_queueCallbackFunction | ( | IOReturn | result, | |
| void * | refcon, | |||
| void * | sender | |||
| ) | [private] |
Definition at line 449 of file AppleRemote.cpp.
Referenced by QueueCallbackFunction().
| void AppleRemote::_queueCallbackATV23 | ( | IOReturn | result | ) | [private] |
Definition at line 479 of file AppleRemote.cpp.
Referenced by QueueCallbackFunction().
| void AppleRemote::_handleEventWithCookieString | ( | std::string | cookieString, | |
| SInt32 | sumOfValues | |||
| ) | [private] |
Definition at line 522 of file AppleRemote.cpp.
Referenced by _queueCallbackFunction().
| void AppleRemote::_handleEventATV23 | ( | std::string | cookieString, | |
| SInt32 | sumOfValues | |||
| ) | [private] |
Definition at line 539 of file AppleRemote.cpp.
Referenced by _queueCallbackATV23().
| void AppleRemote::TimeoutHandler | ( | ) | [private, slot] |
Definition at line 637 of file AppleRemote.cpp.
Referenced by AppleRemote().
AppleRemote * AppleRemote::_instance = 0 [static, protected] |
Definition at line 63 of file AppleRemote.h.
Referenced by Get().
bool AppleRemote::openInExclusiveMode [private] |
Definition at line 67 of file AppleRemote.h.
Referenced by _openDevice(), isOpenInExclusiveMode(), and setOpenInExclusiveMode().
IOHIDDeviceInterface** AppleRemote::hidDeviceInterface [private] |
Definition at line 68 of file AppleRemote.h.
Referenced by _createDeviceInterface(), _initCookies(), _openDevice(), isListeningToRemote(), and stopListening().
IOHIDQueueInterface** AppleRemote::queue [private] |
Definition at line 69 of file AppleRemote.h.
Referenced by _openDevice(), _queueCallbackATV23(), _queueCallbackFunction(), isListeningToRemote(), startListening(), and stopListening().
std::vector<int> AppleRemote::cookies [private] |
Definition at line 70 of file AppleRemote.h.
Referenced by _initCookies(), _openDevice(), isListeningToRemote(), and stopListening().
std::map< std::string, Event > AppleRemote::cookieToButtonMapping [private] |
Definition at line 71 of file AppleRemote.h.
Referenced by _handleEventATV23(), _handleEventWithCookieString(), and _initCookieMap().
int AppleRemote::remoteId [private] |
Definition at line 72 of file AppleRemote.h.
Referenced by _queueCallbackFunction().
Listener* AppleRemote::_listener [private] |
Definition at line 73 of file AppleRemote.h.
Referenced by _handleEventATV23(), _handleEventWithCookieString(), listener(), setListener(), and TimeoutHandler().
bool AppleRemote::mUsingNewAtv [private] |
Definition at line 75 of file AppleRemote.h.
Referenced by AppleRemote(), QueueCallbackFunction(), and ~AppleRemote().
AppleRemote::Event AppleRemote::mLastEvent [private] |
Definition at line 76 of file AppleRemote.h.
Referenced by _handleEventATV23(), and TimeoutHandler().
int AppleRemote::mEventCount [private] |
Definition at line 77 of file AppleRemote.h.
Referenced by _handleEventATV23(), and TimeoutHandler().
bool AppleRemote::mKeyIsDown [private] |
Definition at line 78 of file AppleRemote.h.
Referenced by _handleEventATV23(), and TimeoutHandler().
QTimer* AppleRemote::mCallbackTimer [private] |
Definition at line 79 of file AppleRemote.h.
Referenced by _handleEventATV23(), _queueCallbackATV23(), AppleRemote(), TimeoutHandler(), and ~AppleRemote().
1.6.3