origin_sdk/protocol/
overlay.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct IgoEvent {
5 #[serde(rename = "@State")]
6 pub state: IgoState,
7}
8
9#[derive(Debug, Serialize, Deserialize)]
10pub enum IgoState {
11 #[serde(rename = "DOWN")]
12 Down,
13 #[serde(rename = "UP")]
14 Up,
15}
16
17#[derive(Debug, Serialize, Deserialize)]
18pub struct IgoUnavailable {
19 #[serde(rename = "@Reason")]
20 pub reason: i32,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub enum IgoWindow {
25 #[serde(rename = "LOGIN")]
26 Login = 1,
27 #[serde(rename = "PROFILE")]
28 Profile,
29 #[serde(rename = "RECENT")]
30 Recent,
31 #[serde(rename = "FEEDBACK")]
32 Feedback,
33 #[serde(rename = "FRIENDS")]
34 Friends,
35 #[serde(rename = "FRIEND_REQUEST")]
36 FriendRequest,
37 #[serde(rename = "CHAT")]
38 Chat,
39 #[serde(rename = "COMPOSE_CHAT")]
40 ComposeChat,
41 #[serde(rename = "INVITE")]
42 Invite,
43 #[serde(rename = "ACHIEVEMENTS")]
44 Achievements,
45 #[serde(rename = "STORE")]
46 Store,
47 #[serde(rename = "CODE_REDEMPTION")]
48 CodeRedemption,
49 #[serde(rename = "CHECKOUT")]
50 Checkout,
51 #[serde(rename = "BLOCKED")]
52 Blocked,
53 #[serde(rename = "BROWSER")]
54 Browser,
55 #[serde(rename = "FIND_FRIENDS")]
56 FindFriends,
57 #[serde(rename = "CHANGE_AVATAR")]
58 ChangeAvatar,
59 #[serde(rename = "GAMEDETAILS")]
60 Gamedetails,
61 #[serde(rename = "BROADCAST")]
62 Broadcast,
63 #[serde(rename = "UPSELL")]
64 Upsell,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct MinimizeRequest;
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct OverlayStateChanged {
72 #[serde(rename = "@State")]
73 pub state: IgoState,
74}
75
76#[derive(Debug, Serialize, Deserialize)]
77pub struct ShowIgo {
78 #[serde(rename = "@bShow")]
79 pub b_show: bool,
80}
81
82#[derive(Debug, Serialize, Deserialize)]
83pub struct ShowIgoWindow {
84 #[serde(rename = "@UserId")]
85 pub user_id: u64,
86 #[serde(rename = "@WindowId")]
87 pub window_id: IgoWindow,
88 #[serde(rename = "@Show", default = "ShowIgoWindow::default_show")]
89 pub show: bool,
90 #[serde(rename = "@Flags")]
91 pub flags: i32,
92 #[serde(rename = "@ContentId")]
93 pub content_id: String,
94 #[serde(rename = "TargetId", default)]
95 pub target_id: Vec<u64>,
96 #[serde(rename = "String")]
97 pub string: String,
98 #[serde(rename = "Args", default)]
99 pub args: Vec<String>,
100 #[serde(rename = "MasterTitleIds", default)]
101 pub master_title_ids: Vec<String>,
102 #[serde(rename = "Categories", default)]
103 pub categories: Vec<String>,
104 #[serde(rename = "Offers", default)]
105 pub offers: Vec<String>,
106}
107
108impl ShowIgoWindow {
109 #[must_use]
110 pub fn default_show() -> bool {
111 true
112 }
113}