diff options
Diffstat (limited to 'platform/winrt/audio_driver_winrt.h')
-rw-r--r-- | platform/winrt/audio_driver_winrt.h | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/platform/winrt/audio_driver_winrt.h b/platform/winrt/audio_driver_winrt.h deleted file mode 100644 index d7a69994f8..0000000000 --- a/platform/winrt/audio_driver_winrt.h +++ /dev/null @@ -1,109 +0,0 @@ -/*************************************************************************/ -/* audio_driver_winrt.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* http://www.godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ -#ifndef AUDIO_DRIVER_WINRT_H -#define AUDIO_DRIVER_WINRT_H - -#include "servers/audio/audio_server_sw.h" - -#include "core/os/thread.h" -#include "core/os/mutex.h" - -#include <windows.h> -#include <mmsystem.h> -#include <mmreg.h> -#include <xaudio2.h> -#include <wrl/client.h> - -class AudioDriverWinRT : public AudioDriverSW { - - enum { - AUDIO_BUFFERS = 2 - }; - - struct XAudio2DriverVoiceCallback : public IXAudio2VoiceCallback { - - HANDLE buffer_end_event; - XAudio2DriverVoiceCallback() : buffer_end_event(CreateEvent(NULL, FALSE, FALSE, NULL)) {} - void STDMETHODCALLTYPE OnBufferEnd(void* pBufferContext) { /*print_line("buffer ended");*/ SetEvent(buffer_end_event); } - - //Unused methods are stubs - void STDMETHODCALLTYPE OnStreamEnd() { } - void STDMETHODCALLTYPE OnVoiceProcessingPassEnd() { } - void STDMETHODCALLTYPE OnVoiceProcessingPassStart(UINT32 SamplesRequired) { } - void STDMETHODCALLTYPE OnBufferStart(void * pBufferContext) { } - void STDMETHODCALLTYPE OnLoopEnd(void * pBufferContext) { } - void STDMETHODCALLTYPE OnVoiceError(void * pBufferContext, HRESULT Error) { } - - }; - - Thread* thread; - Mutex* mutex; - - int32_t* samples_in; - int16_t* samples_out[AUDIO_BUFFERS]; - - static void thread_func(void* p_udata); - int buffer_size; - - unsigned int mix_rate; - OutputFormat output_format; - - int channels; - - bool active; - bool thread_exited; - mutable bool exit_thread; - bool pcm_open; - - WAVEFORMATEX wave_format; - Microsoft::WRL::ComPtr<IXAudio2> xaudio; - int current_buffer; - IXAudio2MasteringVoice* mastering_voice; - XAUDIO2_BUFFER xaudio_buffer[AUDIO_BUFFERS]; - IXAudio2SourceVoice* source_voice; - XAudio2DriverVoiceCallback* voice_callback; - -public: - - const char* get_name() const; - - virtual Error init(); - virtual void start(); - virtual int get_mix_rate() const; - virtual OutputFormat get_output_format() const; - virtual float get_latency(); - virtual void lock(); - virtual void unlock(); - virtual void finish(); - - AudioDriverWinRT(); - ~AudioDriverWinRT(); -}; - -#endif |