hammerspoon/extensions/streamdeck/HSStreamDeckDevice.h

88 lines
2.6 KiB
Objective-C

//
// HSStreamDeckDevice.h
// Hammerspoon
//
// Created by Chris Jones on 06/09/2017.
// Copyright © 2017 Hammerspoon. All rights reserved.
//
@import Foundation;
@import Cocoa;
@import IOKit;
@import IOKit.hid;
@import LuaSkin;
#import "NSImage+BMP.h"
#import "NSImage+JPEG.h"
#import "NSImage+Rotated.h"
#import "NSImage+Flipped.h"
#import "streamdeck.h"
typedef enum : NSUInteger {
STREAMDECK_CODEC_UNKNOWN,
STREAMDECK_CODEC_BMP,
STREAMDECK_CODEC_JPEG,
} HSStreamDeckImageCodec;
@interface HSStreamDeckDevice : NSObject {
NSString *serialNumberCache;
}
@property (nonatomic) IOHIDDeviceRef device;
@property (nonatomic) id manager;
@property (nonatomic) int selfRefCount;
@property (nonatomic) int buttonCallbackRef;
@property (nonatomic) BOOL isValid;
@property (nonatomic) LSGCCanary lsCanary;
@property (nonatomic) NSString *deckType;
@property (nonatomic, readonly, getter=getKeyCount) int keyCount;
@property (nonatomic) int keyColumns;
@property (nonatomic) int keyRows;
@property (nonatomic) int imageWidth;
@property (nonatomic) int imageHeight;
@property (nonatomic) HSStreamDeckImageCodec imageCodec;
@property (nonatomic) BOOL imageFlipX;
@property (nonatomic) BOOL imageFlipY;
@property (nonatomic) int imageAngle;
@property (nonatomic) int simpleReportLength;
@property (nonatomic) int reportLength;
@property (nonatomic) int reportHeaderLength;
@property (nonatomic) int dataKeyOffset;
@property (nonatomic) NSUInteger firmwareReadOffset;
@property (nonatomic) NSUInteger serialNumberReadOffset;
@property (nonatomic) NSData *resetCommand;
@property (nonatomic) NSData *setBrightnessCommand;
@property (nonatomic) NSUInteger serialNumberCommand;
@property (nonatomic) NSUInteger firmwareVersionCommand;
@property (nonatomic) NSMutableArray *buttonStateCache;
@property (nonatomic, readonly, getter=getSerialNumber) NSString *serialNumber;
- (id)initWithDevice:(IOHIDDeviceRef)device manager:(id)manager;
- (void)invalidate;
- (void)initialiseCaches;
- (IOReturn)deviceWriteSimpleReport:(NSData *)command;
- (IOReturn)deviceWrite:(NSData *)report;
- (void)deviceWriteImage:(NSData *)data button:(int)button;
- (void)deviceV2WriteImage:(NSData *)data button:(int)button;
- (NSData *)deviceRead:(int)resultLength reportID:(CFIndex)reportID readOffset:(NSUInteger)readOffset;
- (int)transformKeyIndex:(int)sourceKey;
- (void)deviceDidSendInput:(NSArray*)newButtonStates;
- (BOOL)setBrightness:(int)brightness;
- (void)reset;
- (NSString *)cacheSerialNumber;
- (NSString *)firmwareVersion;
- (int)getKeyCount;
- (void)clearImage:(int)button;
- (void)setColor:(NSColor*)color forButton:(int)button;
- (void)setImage:(NSImage*)image forButton:(int)button;
@end