| 
									
										
										
										
											2023-05-21 20:36:22 +01:00
										 |  |  | #import <WebAudio/BaseAudioContext.idl> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-27 13:34:51 -04:00
										 |  |  | // https://www.w3.org/TR/webaudio/#enumdef-audiocontextlatencycategory | 
					
						
							|  |  |  | enum AudioContextLatencyCategory { "balanced", "interactive", "playback" }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-21 20:36:22 +01:00
										 |  |  | // https://webaudio.github.io/web-audio-api/#AudioContext | 
					
						
							|  |  |  | [Exposed=Window] | 
					
						
							|  |  |  | interface AudioContext : BaseAudioContext { | 
					
						
							| 
									
										
										
										
											2023-06-27 13:34:51 -04:00
										 |  |  |     constructor(optional AudioContextOptions contextOptions = {}); | 
					
						
							|  |  |  |     readonly attribute double baseLatency; | 
					
						
							|  |  |  |     readonly attribute double outputLatency; | 
					
						
							|  |  |  |     AudioTimestamp getOutputTimestamp (); | 
					
						
							|  |  |  |     Promise<undefined> resume (); | 
					
						
							|  |  |  |     Promise<undefined> suspend (); | 
					
						
							|  |  |  |     Promise<undefined> close (); | 
					
						
							| 
									
										
										
										
											2024-05-19 22:15:54 +12:00
										 |  |  |     [FIXME] MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement); | 
					
						
							|  |  |  |     [FIXME] MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream); | 
					
						
							|  |  |  |     [FIXME] MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack); | 
					
						
							|  |  |  |     [FIXME] MediaStreamAudioDestinationNode createMediaStreamDestination (); | 
					
						
							| 
									
										
										
										
											2023-06-27 13:34:51 -04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dictionary AudioContextOptions { | 
					
						
							| 
									
										
										
										
											2023-10-25 17:27:19 +02:00
										 |  |  |     AudioContextLatencyCategory latencyHint = "interactive"; | 
					
						
							|  |  |  |     float sampleRate; | 
					
						
							| 
									
										
										
										
											2023-06-27 13:34:51 -04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dictionary AudioTimestamp { | 
					
						
							| 
									
										
										
										
											2023-10-25 17:27:19 +02:00
										 |  |  |     double contextTime; | 
					
						
							|  |  |  |     // FIXME: Should be DOMHighResTimeStamp, but DOMHighResTimeStamp doesn't get parsed as a double during codegen | 
					
						
							|  |  |  |     double performanceTime; | 
					
						
							| 
									
										
										
										
											2023-05-21 20:36:22 +01:00
										 |  |  | }; |