stream_deck_plugin/
client_response.rs1use serde::Deserialize;
2use serde::Serialize;
3
4#[derive(Debug, Deserialize, Serialize)]
5pub enum Controller {
7 Keypad,
8 Encoder,
9}
10
11#[derive(Debug, Deserialize, Serialize)]
12#[serde(rename_all = "camelCase")]
13pub struct Coordinates {
14 column: u8,
15 pub row: u8,
16}
17#[derive(Debug, Deserialize, Serialize)]
18#[serde(rename_all = "camelCase")]
19enum Event {
20 DeviceDidConnect,
21 KeyUp,
22 KeyDown,
23 WillAppear,
24 TitleParametersDidChange,
25
26 SetTitle,
27 SetState,
28}
29
30#[derive(Debug, Deserialize, Serialize)]
31#[serde(rename_all = "camelCase")]
32pub struct ClientResponseWillAppearPayload {
33 pub settings: serde_json::Value,
34 pub coordinates: Coordinates,
35 pub controller: Controller,
36 pub state: u8,
37 pub is_in_multi_action: bool,
38}
39#[derive(Debug, Deserialize, Serialize)]
40#[serde(rename_all = "camelCase")]
41pub struct ClientResponseKeyUpPayload {
42 pub settings: serde_json::Value,
43 pub coordinates: Coordinates,
44 pub state: usize,
45 pub user_desired_state: Option<u8>,
46 pub is_in_multi_action: bool,
47}
48#[derive(Debug, Deserialize, Serialize)]
49#[serde(rename_all = "camelCase")]
50#[serde(tag = "event")]
51pub enum ClientResponse {
52 KeyUp {
53 action: String,
54 context: String,
56 device: String,
57 payload: ClientResponseKeyUpPayload,
58 },
59 WillAppear {
60 action: String,
61 context: String,
63 device: String,
64 payload: ClientResponseWillAppearPayload,
65 },
66}