Annotation of XNU/iokit/Families/IOHIDSystem/IOHITablet.cpp, revision 1.1.1.1

1.1       root        1: #include <IOKit/hidsystem/IOHITablet.h>
                      2: #include <IOKit/hidsystem/IOHITabletPointer.h>
                      3: 
                      4: OSDefineMetaClassAndStructors(IOHITablet, IOHIPointing);
                      5: 
                      6: UInt16 IOHITablet::generateTabletID()
                      7: {
                      8:     static UInt16 _nextTabletID = 0;
                      9:     return _nextTabletID++;
                     10: }
                     11: 
                     12: bool IOHITablet::init(OSDictionary *propTable)
                     13: {
                     14:     if (!IOHIPointing::init(propTable)) {
                     15:         return false;
                     16:     }
                     17: 
                     18:     _systemTabletID = generateTabletID();
                     19:     setProperty(kIOHISystemTabletID, (unsigned long long)_systemTabletID, 16);
                     20: 
                     21:     return true;
                     22: }
                     23: 
                     24: bool IOHITablet::open(IOService *client,
                     25:                       IOOptionBits options,
                     26:                       RelativePointerEventAction       rpeAction,
                     27:                       AbsolutePointerEventAction       apeAction,
                     28:                       ScrollWheelEventAction           sweAction,
                     29:                       TabletEventAction                                tabletAction,
                     30:                       ProximityEventAction                     proximityAction)
                     31: {
                     32:     if (!IOHIPointing::open(client, options, rpeAction, apeAction, sweAction)) {
                     33:         return false;
                     34:     }
                     35: 
                     36:     _tabletEventTarget = client;
                     37:     _tabletEventAction = tabletAction;
                     38:     _proximityEventTarget = client;
                     39:     _proximityEventAction = proximityAction;
                     40: 
                     41:     return true;
                     42: }
                     43: 
                     44: void IOHITablet::dispatchTabletEvent(NXEventData *tabletEvent,
                     45:                                      AbsoluteTime ts)
                     46: {
                     47:     if (_tabletEventAction) {
                     48:         (*_tabletEventAction)(_tabletEventTarget,
                     49:                             tabletEvent,
                     50:                             ts);
                     51:     }
                     52: }
                     53: 
                     54: void IOHITablet::dispatchProximityEvent(NXEventData *proximityEvent,
                     55:                                         AbsoluteTime ts)
                     56: {
                     57:     if (_proximityEventAction) {
                     58:         (*_proximityEventAction)(_proximityEventTarget,
                     59:                                proximityEvent,
                     60:                                ts);
                     61:     }
                     62: }
                     63: 
                     64: bool IOHITablet::startTabletPointer(IOHITabletPointer *pointer, OSDictionary *properties)
                     65: {
                     66:     bool result = false;
                     67: 
                     68:     do {
                     69:         if (!pointer)
                     70:             break;
                     71: 
                     72:         if (!pointer->init(properties))
                     73:             break;
                     74: 
                     75:         if (!pointer->attach(this))
                     76:             break;
                     77: 
                     78:         if (!pointer->start(this))
                     79:             break;
                     80: 
                     81:         result = true;
                     82:     } while (false);
                     83: 
                     84:     return result;
                     85: }
                     86: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.