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;
8pub type GraphObjectId = String;
9pub type NodeType = String;
10pub type ParamType = String;
11#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
12pub enum ContextType {
13 #[serde(rename = "realtime")]
14 Realtime,
15 #[serde(rename = "offline")]
16 Offline,
17}
18#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
19pub enum ContextState {
20 #[serde(rename = "suspended")]
21 Suspended,
22 #[serde(rename = "running")]
23 Running,
24 #[serde(rename = "closed")]
25 Closed,
26 #[serde(rename = "interrupted")]
27 Interrupted,
28}
29#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
30pub enum ChannelCountMode {
31 #[serde(rename = "clamped-max")]
32 ClampedMax,
33 #[serde(rename = "explicit")]
34 Explicit,
35 #[serde(rename = "max")]
36 Max,
37}
38#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
39pub enum ChannelInterpretation {
40 #[serde(rename = "discrete")]
41 Discrete,
42 #[serde(rename = "speakers")]
43 Speakers,
44}
45#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
46pub enum AutomationRate {
47 #[serde(rename = "a-rate")]
48 ARate,
49 #[serde(rename = "k-rate")]
50 KRate,
51}
52#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
53pub struct ContextRealtimeData {
54 #[serde(default)]
55 #[serde(rename = "currentTime")]
56 pub current_time: JsFloat,
57 #[serde(default)]
58 #[serde(rename = "renderCapacity")]
59 pub render_capacity: JsFloat,
60 #[serde(default)]
61 #[serde(rename = "callbackIntervalMean")]
62 pub callback_interval_mean: JsFloat,
63 #[serde(default)]
64 #[serde(rename = "callbackIntervalVariance")]
65 pub callback_interval_variance: JsFloat,
66}
67#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
68pub struct BaseAudioContext {
69 #[serde(rename = "contextId")]
70 pub context_id: GraphObjectId,
71 #[serde(rename = "contextType")]
72 pub context_type: ContextType,
73 #[serde(rename = "contextState")]
74 pub context_state: ContextState,
75 #[serde(skip_serializing_if = "Option::is_none")]
76 #[serde(rename = "realtimeData")]
77 pub realtime_data: Option<ContextRealtimeData>,
78 #[serde(default)]
79 #[serde(rename = "callbackBufferSize")]
80 pub callback_buffer_size: JsFloat,
81 #[serde(default)]
82 #[serde(rename = "maxOutputChannelCount")]
83 pub max_output_channel_count: JsFloat,
84 #[serde(default)]
85 #[serde(rename = "sampleRate")]
86 pub sample_rate: JsFloat,
87}
88#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
89pub struct AudioListener {
90 #[serde(rename = "listenerId")]
91 pub listener_id: GraphObjectId,
92 #[serde(rename = "contextId")]
93 pub context_id: GraphObjectId,
94}
95#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
96pub struct AudioNode {
97 #[serde(rename = "nodeId")]
98 pub node_id: GraphObjectId,
99 #[serde(rename = "contextId")]
100 pub context_id: GraphObjectId,
101 #[serde(rename = "nodeType")]
102 pub node_type: NodeType,
103 #[serde(default)]
104 #[serde(rename = "numberOfInputs")]
105 pub number_of_inputs: JsFloat,
106 #[serde(default)]
107 #[serde(rename = "numberOfOutputs")]
108 pub number_of_outputs: JsFloat,
109 #[serde(default)]
110 #[serde(rename = "channelCount")]
111 pub channel_count: JsFloat,
112 #[serde(rename = "channelCountMode")]
113 pub channel_count_mode: ChannelCountMode,
114 #[serde(rename = "channelInterpretation")]
115 pub channel_interpretation: ChannelInterpretation,
116}
117#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
118pub struct AudioParam {
119 #[serde(rename = "paramId")]
120 pub param_id: GraphObjectId,
121 #[serde(rename = "nodeId")]
122 pub node_id: GraphObjectId,
123 #[serde(rename = "contextId")]
124 pub context_id: GraphObjectId,
125 #[serde(rename = "paramType")]
126 pub param_type: ParamType,
127 #[serde(rename = "rate")]
128 pub rate: AutomationRate,
129 #[serde(default)]
130 #[serde(rename = "defaultValue")]
131 pub default_value: JsFloat,
132 #[serde(default)]
133 #[serde(rename = "minValue")]
134 pub min_value: JsFloat,
135 #[serde(default)]
136 #[serde(rename = "maxValue")]
137 pub max_value: JsFloat,
138}
139#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
140#[serde(rename_all = "camelCase")]
141pub struct Enable(pub Option<serde_json::Value>);
142#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
143#[serde(rename_all = "camelCase")]
144pub struct Disable(pub Option<serde_json::Value>);
145#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
146pub struct GetRealtimeData {
147 #[serde(rename = "contextId")]
148 pub context_id: GraphObjectId,
149}
150#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
151#[serde(rename_all = "camelCase")]
152pub struct EnableReturnObject {}
153#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
154#[serde(rename_all = "camelCase")]
155pub struct DisableReturnObject {}
156#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
157pub struct GetRealtimeDataReturnObject {
158 #[serde(rename = "realtimeData")]
159 pub realtime_data: ContextRealtimeData,
160}
161impl Method for Enable {
162 const NAME: &'static str = "WebAudio.enable";
163 type ReturnObject = EnableReturnObject;
164}
165impl Method for Disable {
166 const NAME: &'static str = "WebAudio.disable";
167 type ReturnObject = DisableReturnObject;
168}
169impl Method for GetRealtimeData {
170 const NAME: &'static str = "WebAudio.getRealtimeData";
171 type ReturnObject = GetRealtimeDataReturnObject;
172}
173pub mod events {
174 #[allow(unused_imports)]
175 use super::super::types::*;
176 #[allow(unused_imports)]
177 use serde::{Deserialize, Serialize};
178 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
179 pub struct ContextCreatedEvent {
180 pub params: ContextCreatedEventParams,
181 }
182 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
183 pub struct ContextCreatedEventParams {
184 #[serde(rename = "context")]
185 pub context: super::BaseAudioContext,
186 }
187 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
188 pub struct ContextWillBeDestroyedEvent {
189 pub params: ContextWillBeDestroyedEventParams,
190 }
191 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
192 pub struct ContextWillBeDestroyedEventParams {
193 #[serde(rename = "contextId")]
194 pub context_id: super::GraphObjectId,
195 }
196 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
197 pub struct ContextChangedEvent {
198 pub params: ContextChangedEventParams,
199 }
200 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
201 pub struct ContextChangedEventParams {
202 #[serde(rename = "context")]
203 pub context: super::BaseAudioContext,
204 }
205 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
206 pub struct AudioListenerCreatedEvent {
207 pub params: AudioListenerCreatedEventParams,
208 }
209 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
210 pub struct AudioListenerCreatedEventParams {
211 #[serde(rename = "listener")]
212 pub listener: super::AudioListener,
213 }
214 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
215 pub struct AudioListenerWillBeDestroyedEvent {
216 pub params: AudioListenerWillBeDestroyedEventParams,
217 }
218 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
219 pub struct AudioListenerWillBeDestroyedEventParams {
220 #[serde(rename = "contextId")]
221 pub context_id: super::GraphObjectId,
222 #[serde(rename = "listenerId")]
223 pub listener_id: super::GraphObjectId,
224 }
225 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
226 pub struct AudioNodeCreatedEvent {
227 pub params: AudioNodeCreatedEventParams,
228 }
229 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
230 pub struct AudioNodeCreatedEventParams {
231 #[serde(rename = "node")]
232 pub node: super::AudioNode,
233 }
234 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
235 pub struct AudioNodeWillBeDestroyedEvent {
236 pub params: AudioNodeWillBeDestroyedEventParams,
237 }
238 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
239 pub struct AudioNodeWillBeDestroyedEventParams {
240 #[serde(rename = "contextId")]
241 pub context_id: super::GraphObjectId,
242 #[serde(rename = "nodeId")]
243 pub node_id: super::GraphObjectId,
244 }
245 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
246 pub struct AudioParamCreatedEvent {
247 pub params: AudioParamCreatedEventParams,
248 }
249 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
250 pub struct AudioParamCreatedEventParams {
251 #[serde(rename = "param")]
252 pub param: super::AudioParam,
253 }
254 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
255 pub struct AudioParamWillBeDestroyedEvent {
256 pub params: AudioParamWillBeDestroyedEventParams,
257 }
258 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
259 pub struct AudioParamWillBeDestroyedEventParams {
260 #[serde(rename = "contextId")]
261 pub context_id: super::GraphObjectId,
262 #[serde(rename = "nodeId")]
263 pub node_id: super::GraphObjectId,
264 #[serde(rename = "paramId")]
265 pub param_id: super::GraphObjectId,
266 }
267 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
268 pub struct NodesConnectedEvent {
269 pub params: NodesConnectedEventParams,
270 }
271 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
272 pub struct NodesConnectedEventParams {
273 #[serde(rename = "contextId")]
274 pub context_id: super::GraphObjectId,
275 #[serde(rename = "sourceId")]
276 pub source_id: super::GraphObjectId,
277 #[serde(rename = "destinationId")]
278 pub destination_id: super::GraphObjectId,
279 #[serde(skip_serializing_if = "Option::is_none")]
280 #[serde(default)]
281 #[serde(rename = "sourceOutputIndex")]
282 pub source_output_index: Option<JsFloat>,
283 #[serde(skip_serializing_if = "Option::is_none")]
284 #[serde(default)]
285 #[serde(rename = "destinationInputIndex")]
286 pub destination_input_index: Option<JsFloat>,
287 }
288 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
289 pub struct NodesDisconnectedEvent {
290 pub params: NodesDisconnectedEventParams,
291 }
292 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
293 pub struct NodesDisconnectedEventParams {
294 #[serde(rename = "contextId")]
295 pub context_id: super::GraphObjectId,
296 #[serde(rename = "sourceId")]
297 pub source_id: super::GraphObjectId,
298 #[serde(rename = "destinationId")]
299 pub destination_id: super::GraphObjectId,
300 #[serde(skip_serializing_if = "Option::is_none")]
301 #[serde(default)]
302 #[serde(rename = "sourceOutputIndex")]
303 pub source_output_index: Option<JsFloat>,
304 #[serde(skip_serializing_if = "Option::is_none")]
305 #[serde(default)]
306 #[serde(rename = "destinationInputIndex")]
307 pub destination_input_index: Option<JsFloat>,
308 }
309 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
310 pub struct NodeParamConnectedEvent {
311 pub params: NodeParamConnectedEventParams,
312 }
313 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
314 pub struct NodeParamConnectedEventParams {
315 #[serde(rename = "contextId")]
316 pub context_id: super::GraphObjectId,
317 #[serde(rename = "sourceId")]
318 pub source_id: super::GraphObjectId,
319 #[serde(rename = "destinationId")]
320 pub destination_id: super::GraphObjectId,
321 #[serde(skip_serializing_if = "Option::is_none")]
322 #[serde(default)]
323 #[serde(rename = "sourceOutputIndex")]
324 pub source_output_index: Option<JsFloat>,
325 }
326 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
327 pub struct NodeParamDisconnectedEvent {
328 pub params: NodeParamDisconnectedEventParams,
329 }
330 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
331 pub struct NodeParamDisconnectedEventParams {
332 #[serde(rename = "contextId")]
333 pub context_id: super::GraphObjectId,
334 #[serde(rename = "sourceId")]
335 pub source_id: super::GraphObjectId,
336 #[serde(rename = "destinationId")]
337 pub destination_id: super::GraphObjectId,
338 #[serde(skip_serializing_if = "Option::is_none")]
339 #[serde(default)]
340 #[serde(rename = "sourceOutputIndex")]
341 pub source_output_index: Option<JsFloat>,
342 }
343}