23 lines
789 B
TypeScript
23 lines
789 B
TypeScript
|
|
import type { EventEmitter } from '$lib/utils/EventEmitter';
|
||
|
|
import type { GmcpPackageHandler } from './GmcpPackageHandler';
|
||
|
|
|
||
|
|
export class ClientKeystrokePackage implements GmcpPackageHandler {
|
||
|
|
public readonly packageName = 'Client.Keystroke';
|
||
|
|
public readonly version = '1';
|
||
|
|
private emitter: EventEmitter | null = null;
|
||
|
|
|
||
|
|
initialize(emitter: EventEmitter): void {
|
||
|
|
this.emitter = emitter;
|
||
|
|
}
|
||
|
|
|
||
|
|
handleMessage(module: string, data: any): void {
|
||
|
|
if (module === 'Client.Keystroke.Capture') {
|
||
|
|
// Handle keystroke capture request
|
||
|
|
this.emitter?.emit('captureKeystroke', data.keys || [], data.type || 'all');
|
||
|
|
} else if (module === 'Client.Keystroke.Release') {
|
||
|
|
// Handle keystroke release request
|
||
|
|
this.emitter?.emit('releaseKeystroke');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|