1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-10 17:08:39 +00:00
MTMR/MTMR/KeyPress.swift

36 lines
801 B
Swift

//
// KeyPress.swift
// MTMR
//
// Created by Anton Palgunov on 17/03/2018.
// Copyright © 2018 Anton Palgunov. All rights reserved.
//
import Foundation
protocol KeyPress {
var keyCode: CGKeyCode { get }
func send()
}
struct GenericKeyPress: KeyPress {
var keyCode: CGKeyCode
}
extension KeyPress {
func send () {
let src = CGEventSource(stateID: .hidSystemState)
let keyDown = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: true)
let keyUp = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: false)
let loc: CGEventTapLocation = .cghidEventTap
keyDown?.post(tap: loc)
keyUp?.post(tap: loc)
}
}
func HIDPostAuxKey(_ key: Int32) {
let key = UInt8(key)
MediaKeys.hidPostAuxKey(key)
}