streamdeck-plugin/events_received.go
2024-06-27 20:10:18 +09:30

302 lines
9.1 KiB
Go

package streamdeck
import (
"encoding/json"
"reflect"
)
var receivedEventTypeMap = map[string]reflect.Type{}
func init() {
receivedEventTypeMap["keyUp"] = reflect.TypeOf(ERKeyUp{})
receivedEventTypeMap["didReceiveSettingsPayload"] = reflect.TypeOf(ERDidReceiveSettingsPayload{})
receivedEventTypeMap["didReceiveSettings"] = reflect.TypeOf(ERDidReceiveSettings{})
receivedEventTypeMap["globalSettings"] = reflect.TypeOf(ERGlobalSettings{})
receivedEventTypeMap["didReceiveDeepLink"] = reflect.TypeOf(ERDidReceiveDeepLink{})
receivedEventTypeMap["touchTap"] = reflect.TypeOf(ERTouchTap{})
receivedEventTypeMap["dialDown"] = reflect.TypeOf(ERDialDown{})
receivedEventTypeMap["dialUp"] = reflect.TypeOf(ERDialUp{})
receivedEventTypeMap["dialRotate"] = reflect.TypeOf(ERDialRotate{})
receivedEventTypeMap["keyDown"] = reflect.TypeOf(ERKeyDown{})
receivedEventTypeMap["willAppear"] = reflect.TypeOf(ERWillAppear{})
receivedEventTypeMap["willDisappear"] = reflect.TypeOf(ERWillDisappear{})
receivedEventTypeMap["titleParametersDidChange"] = reflect.TypeOf(ERTitleParametersDidChange{})
receivedEventTypeMap["deviceDidConnect"] = reflect.TypeOf(ERDeviceDidConnect{})
receivedEventTypeMap["deviceDidDisconnect"] = reflect.TypeOf(ERDeviceDidDisconnect{})
receivedEventTypeMap["applicationDidLaunch"] = reflect.TypeOf(ERApplicationDidLaunch{})
receivedEventTypeMap["applicationDidTerminate"] = reflect.TypeOf(ERApplicationDidTerminate{})
receivedEventTypeMap["applicationSystemDidWakeUp"] = reflect.TypeOf(ERApplicationSystemDidWakeUp{})
receivedEventTypeMap["applicationPropertyInspectorDidAppear"] = reflect.TypeOf(ERApplicationPropertyInspectorDidAppear{})
receivedEventTypeMap["applicationPropertyInspectorDidDisappear"] = reflect.TypeOf(ERApplicationPropertyInspectorDidDisappear{})
receivedEventTypeMap["applicationPropertySendToPlugin"] = reflect.TypeOf(ERApplicationPropertySendToPlugin{})
receivedEventTypeMap["applicationPropertySendToPropertyInspector"] = reflect.TypeOf(ERApplicationPropertySendToPropertyInspector{})
}
type ERBase struct {
Event string `json:"event"`
}
//{Action: Event:deviceDidConnect Context: Device:A1DA463F033AD2616E05636CD16F064F Payload:[]}"}
type ERCommon struct {
Action string `json:"action"`
Event string `json:"event"`
Context string `json:"context"`
Device string `json:"device"`
}
// https://docs.elgato.com/sdk/plugins/events-received#didreceivesettings
type ERDidReceiveSettingsPayload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
IsInMultiAction bool `json:"isInMultiAction"`
}
type ERDidReceiveSettings struct {
ERCommon
Payload ERDidReceiveSettingsPayload `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#didreceiveglobalsettings
type ERGlobalSettings struct {
Event string `json:"event"`
Payload json.RawMessage `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#didreceivedeeplink
type ERDidReceiveDeepLink struct {
Event string `json:"event"`
Payload struct {
Url string `json:"url"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#touchtap-sd
type ERTouchTap struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Controller string `json:"controller"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
TapPosition []int `json:"tapPos"`
Hold bool `json:"hold"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#dialdown-sd
type ERDialDown struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Controller string `json:"controller"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#dialup-sd
type ERDialUp struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Controller string `json:"controller"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#dialrotate-sd
type ERDialRotate struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Controller string `json:"controller"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
Ticks int `json:"ticks"`
Pressed bool `json:"pressed"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#keydown
type ERKeyDown struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
State int `json:"state"`
UserDesiredState int `json:"userDesiredState"`
IsInMultiAction bool `json:"isInMultiAction"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#keyup
type ERKeyUp struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
State int `json:"state"`
UserDesiredState int `json:"userDesiredState"`
IsInMultiAction bool `json:"isInMultiAction"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#willappear
type ERWillAppear struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
Controller string `json:"controller"`
State int `json:"state"`
IsInMultiAction bool `json:"isInMultiAction"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#willdisappear
const ERWillDisappearAction = "willDisappear"
type ERWillDisappear struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
Controller string `json:"controller"`
State int `json:"state"`
IsInMultiAction bool `json:"isInMultiAction"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#titleparametersdidchange
type ERTitleParametersDidChange struct {
ERCommon
Payload struct {
Settings json.RawMessage `json:"settings"`
Coordinates struct {
Column int `json:"column"`
Row int `json:"row"`
} `json:"coordinates"`
State int `json:"state"`
Title string `json:"title"`
TitleParameters struct {
FontFamily string `json:"fontFamily"`
FontSize int `json:"fontSize"`
FontStyle string `json:"fontStyle"`
FontUnderline bool `json:"fontUnderline"`
ShowTitle bool `json:"showTitle"`
TitleAlignment string `json:"titleAlignment"`
TitleColor string `json:"titleColor"`
} `json:"titleParameters"`
} `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#devicedidconnect
type ERDeviceDidConnect struct {
Event string `json:"event"`
Device string `json:"device"`
DeviceInfo struct {
Name string `json:"name"`
DeviceType int `json:"type"`
Size struct {
Columns int `json:"columns"`
Rows int `json:"rows"`
} `json:"size"`
} `json:"deviceInfo"`
}
// https://docs.elgato.com/sdk/plugins/events-received#devicediddisconnect
type ERDeviceDidDisconnect struct {
Event string `json:"event"`
Device string `json:"device"`
}
// https://docs.elgato.com/sdk/plugins/events-received#applicationdidlaunch
type ERApplicationDidLaunch struct {
Event string `json:"event"`
Payload struct {
Application string `json:"application"`
}
}
// https://docs.elgato.com/sdk/plugins/events-received#applicationdidterminate
type ERApplicationDidTerminate struct {
Event string `json:"event"`
Payload struct {
Application string `json:"application"`
}
}
// https://docs.elgato.com/sdk/plugins/events-received#systemdidwakeup
type ERApplicationSystemDidWakeUp struct {
Event string `json:"event"`
}
// https://docs.elgato.com/sdk/plugins/events-received#propertyinspectordidappear
type ERApplicationPropertyInspectorDidAppear struct {
ERCommon
}
// https://docs.elgato.com/sdk/plugins/events-received#propertyinspectordiddisappear
type ERApplicationPropertyInspectorDidDisappear struct {
ERCommon
}
// https://docs.elgato.com/sdk/plugins/events-received#sendtoplugin
type ERApplicationPropertySendToPlugin struct {
Action string `json:"action"`
Event string `json:"event"`
Context string `json:"context"`
Payload json.RawMessage `json:"payload"`
}
// https://docs.elgato.com/sdk/plugins/events-received#sendtopropertyinspector
type ERApplicationPropertySendToPropertyInspector struct {
Action string `json:"action"`
Event string `json:"event"`
Context string `json:"context"`
Payload json.RawMessage `json:"payload"`
}