1#[allow(unused_imports)]
3use super::types::*;
4#[allow(unused_imports)]
5use serde::{Deserialize, Serialize};
6#[allow(unused_imports)]
7use serde_json::Value as Json;
8#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
9pub enum SubsamplingFormat {
10 #[serde(rename = "yuv420")]
11 Yuv420,
12 #[serde(rename = "yuv422")]
13 Yuv422,
14 #[serde(rename = "yuv444")]
15 Yuv444,
16}
17#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
18pub enum ImageType {
19 #[serde(rename = "jpeg")]
20 Jpeg,
21 #[serde(rename = "webp")]
22 Webp,
23 #[serde(rename = "unknown")]
24 Unknown,
25}
26#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
27pub struct GpuDevice {
28 #[serde(default)]
29 #[serde(rename = "vendorId")]
30 pub vendor_id: JsFloat,
31 #[serde(default)]
32 #[serde(rename = "deviceId")]
33 pub device_id: JsFloat,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 #[serde(default)]
36 #[serde(rename = "subSysId")]
37 pub sub_sys_id: Option<JsFloat>,
38 #[serde(skip_serializing_if = "Option::is_none")]
39 #[serde(default)]
40 #[serde(rename = "revision")]
41 pub revision: Option<JsFloat>,
42 #[serde(default)]
43 #[serde(rename = "vendorString")]
44 pub vendor_string: String,
45 #[serde(default)]
46 #[serde(rename = "deviceString")]
47 pub device_string: String,
48 #[serde(default)]
49 #[serde(rename = "driverVendor")]
50 pub driver_vendor: String,
51 #[serde(default)]
52 #[serde(rename = "driverVersion")]
53 pub driver_version: String,
54}
55#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
56pub struct Size {
57 #[serde(default)]
58 #[serde(rename = "width")]
59 pub width: JsUInt,
60 #[serde(default)]
61 #[serde(rename = "height")]
62 pub height: JsUInt,
63}
64#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
65pub struct VideoDecodeAcceleratorCapability {
66 #[serde(default)]
67 #[serde(rename = "profile")]
68 pub profile: String,
69 #[serde(rename = "maxResolution")]
70 pub max_resolution: Size,
71 #[serde(rename = "minResolution")]
72 pub min_resolution: Size,
73}
74#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
75pub struct VideoEncodeAcceleratorCapability {
76 #[serde(default)]
77 #[serde(rename = "profile")]
78 pub profile: String,
79 #[serde(rename = "maxResolution")]
80 pub max_resolution: Size,
81 #[serde(default)]
82 #[serde(rename = "maxFramerateNumerator")]
83 pub max_framerate_numerator: JsUInt,
84 #[serde(default)]
85 #[serde(rename = "maxFramerateDenominator")]
86 pub max_framerate_denominator: JsUInt,
87}
88#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
89pub struct ImageDecodeAcceleratorCapability {
90 #[serde(rename = "imageType")]
91 pub image_type: ImageType,
92 #[serde(rename = "maxDimensions")]
93 pub max_dimensions: Size,
94 #[serde(rename = "minDimensions")]
95 pub min_dimensions: Size,
96 #[serde(rename = "subsamplings")]
97 pub subsamplings: Vec<SubsamplingFormat>,
98}
99#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
100pub struct GpuInfo {
101 #[serde(rename = "devices")]
102 pub devices: Vec<GpuDevice>,
103 #[serde(default)]
104 #[serde(rename = "driverBugWorkarounds")]
105 pub driver_bug_workarounds: Vec<String>,
106 #[serde(rename = "videoDecoding")]
107 pub video_decoding: Vec<VideoDecodeAcceleratorCapability>,
108 #[serde(rename = "videoEncoding")]
109 pub video_encoding: Vec<VideoEncodeAcceleratorCapability>,
110 #[serde(rename = "imageDecoding")]
111 pub image_decoding: Vec<ImageDecodeAcceleratorCapability>,
112}
113#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
114pub struct ProcessInfo {
115 #[serde(default)]
116 #[serde(rename = "type")]
117 pub r#type: String,
118 #[serde(default)]
119 #[serde(rename = "id")]
120 pub id: JsUInt,
121 #[serde(default)]
122 #[serde(rename = "cpuTime")]
123 pub cpu_time: JsFloat,
124}
125#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
126#[serde(rename_all = "camelCase")]
127pub struct GetInfo(pub Option<serde_json::Value>);
128#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
129pub struct GetFeatureState {
130 #[serde(default)]
131 #[serde(rename = "featureState")]
132 pub feature_state: String,
133}
134#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
135#[serde(rename_all = "camelCase")]
136pub struct GetProcessInfo(pub Option<serde_json::Value>);
137#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
138pub struct GetInfoReturnObject {
139 #[serde(rename = "gpu")]
140 pub gpu: GpuInfo,
141 #[serde(default)]
142 #[serde(rename = "modelName")]
143 pub model_name: String,
144 #[serde(default)]
145 #[serde(rename = "modelVersion")]
146 pub model_version: String,
147 #[serde(default)]
148 #[serde(rename = "commandLine")]
149 pub command_line: String,
150}
151#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
152pub struct GetFeatureStateReturnObject {
153 #[serde(default)]
154 #[serde(rename = "featureEnabled")]
155 pub feature_enabled: bool,
156}
157#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
158pub struct GetProcessInfoReturnObject {
159 #[serde(rename = "processInfo")]
160 pub process_info: Vec<ProcessInfo>,
161}
162impl Method for GetInfo {
163 const NAME: &'static str = "SystemInfo.getInfo";
164 type ReturnObject = GetInfoReturnObject;
165}
166impl Method for GetFeatureState {
167 const NAME: &'static str = "SystemInfo.getFeatureState";
168 type ReturnObject = GetFeatureStateReturnObject;
169}
170impl Method for GetProcessInfo {
171 const NAME: &'static str = "SystemInfo.getProcessInfo";
172 type ReturnObject = GetProcessInfoReturnObject;
173}
174pub mod events {
175 #[allow(unused_imports)]
176 use super::super::types::*;
177 #[allow(unused_imports)]
178 use serde::{Deserialize, Serialize};
179}