diff options
Diffstat (limited to 'audio/out/ao_wasapi.h')
-rwxr-xr-x | audio/out/ao_wasapi.h | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/audio/out/ao_wasapi.h b/audio/out/ao_wasapi.h index 8df45f042e..a0ce654d4d 100755 --- a/audio/out/ao_wasapi.h +++ b/audio/out/ao_wasapi.h @@ -34,25 +34,11 @@ typedef struct wasapi_state { /* Init phase */ int init_ret; HANDLE init_done; - HANDLE fatal_error; /* signal to indicate unrecoverable error */ int share_mode; - /* Events */ - HANDLE hPause; - - /* Play */ - HANDLE hPlay; - int is_playing; - - /* Reset */ - HANDLE hReset; - - /* uninit */ HANDLE hUninit; - LONG immed; /* volume control */ - HANDLE hGetvol, hSetvol, hDoneVol; DWORD vol_hw_support, status; float audio_volume; @@ -70,10 +56,23 @@ typedef struct wasapi_state { IAudioRenderClient *pRenderClient; IAudioEndpointVolume *pEndpointVolume; HANDLE hFeed; /* wasapi event */ + HANDLE hForceFeed; /* forces writing a buffer (e.g. before audio_resume) */ + HANDLE hFeedDone; /* set only after a hForceFeed */ HANDLE hTask; /* AV thread */ DWORD taskIndex; /* AV task ID */ WAVEFORMATEXTENSIBLE format; + /* WASAPI proxy handles, for Single-Threaded Apartment communication. + One is needed for each object that's accessed by a different thread. */ + IAudioClient *pAudioClientProxy; + IAudioEndpointVolume *pEndpointVolumeProxy; + + /* Streams used to marshal the proxy objects. The thread owning the actual objects + needs to marshal proxy objects into these streams, and the thread that wants the + proxies unmarshals them from here. */ + IStream *sAudioClient; + IStream *sEndpointVolume; + /* WASAPI internal clock information, for estimating delay */ IAudioClock *pAudioClock; UINT64 clock_frequency; /* scale for the "samples" returned by the clock */ @@ -92,4 +91,4 @@ typedef struct wasapi_state { } VistaBlob; } wasapi_state; -#endif
\ No newline at end of file +#endif |