Annotation of XNU/iokit/Families/IOHIDSystem/IOHITablet.cpp, revision 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.