Skip to main content

origin_sdk/protocol/
overlay.rs

1use 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 ShowIgo {
72    #[serde(rename = "@bShow")]
73    pub b_show: bool,
74}
75
76#[derive(Debug, Serialize, Deserialize)]
77pub struct ShowIgoWindow {
78    #[serde(rename = "@UserId")]
79    pub user_id: u64,
80    #[serde(rename = "@WindowId")]
81    pub window_id: IgoWindow,
82    #[serde(rename = "@Show", default = "ShowIgoWindow::default_show")]
83    pub show: bool,
84    #[serde(rename = "@Flags")]
85    pub flags: i32,
86    #[serde(rename = "@ContentId")]
87    pub content_id: String,
88    #[serde(rename = "TargetId", default)]
89    pub target_id: Vec<u64>,
90    #[serde(rename = "String")]
91    pub string: String,
92    #[serde(rename = "Args", default)]
93    pub args: Vec<String>,
94    #[serde(rename = "MasterTitleIds", default)]
95    pub master_title_ids: Vec<String>,
96    #[serde(rename = "Categories", default)]
97    pub categories: Vec<String>,
98    #[serde(rename = "Offers", default)]
99    pub offers: Vec<String>,
100}
101
102impl ShowIgoWindow {
103    #[must_use]
104    pub fn default_show() -> bool {
105        true
106    }
107}