+++ /dev/null
-/*\r
-* Copyright (c) 2007-2010 SlimDX Group\r
-* \r
-* Permission is hereby granted, free of charge, to any person obtaining a copy\r
-* of this software and associated documentation files (the "Software"), to deal\r
-* in the Software without restriction, including without limitation the rights\r
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-* copies of the Software, and to permit persons to whom the Software is\r
-* furnished to do so, subject to the following conditions:\r
-* \r
-* The above copyright notice and this permission notice shall be included in\r
-* all copies or substantial portions of the Software.\r
-* \r
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-* THE SOFTWARE.\r
-*/\r
-#pragma once\r
-\r
-#include "../ComObject.h"\r
-#include "../multimedia/WaveFormat.h"\r
-#include "../multimedia/WaveFormatExtensible.h"\r
-\r
-#include "DeviceDetails.h"\r
-#include "PerformanceData.h"\r
-#include "DebugConfiguration.h"\r
-#include "ErrorEventArgs.h"\r
-#include "EngineCallback.h"\r
-\r
-namespace SlimDX\r
-{\r
- namespace XAudio2\r
- {\r
- public ref class XAudio2 : public ComObject\r
- {\r
- COMOBJECT(IXAudio2, XAudio2);\r
-\r
- private:\r
- EngineCallbackShim *callback;\r
-\r
- internal:\r
- void InvokeCriticalError( ErrorEventArgs^ e ) { OnCriticalError( e ); }\r
- void InvokeProcessingPassEnd() { OnProcessingPassEnd( System::EventArgs::Empty ); }\r
- void InvokeProcessingPassStart() { OnProcessingPassStart( System::EventArgs::Empty); }\r
-\r
- protected:\r
- void OnCriticalError( ErrorEventArgs^ e );\r
- void OnProcessingPassEnd( System::EventArgs^ e );\r
- void OnProcessingPassStart( System::EventArgs^ e );\r
-\r
- public:\r
- XAudio2();\r
- XAudio2( XAudio2Flags flags, ProcessorSpecifier processor );\r
- virtual ~XAudio2() { if( callback != NULL ) delete callback; callback = NULL; }\r
-\r
- static float AmplitudeRatioToDecibels( float volume );\r
- static float CutoffFrequencyToRadians( float cutoffFrequency, int sampleRate );\r
- static float DecibelsToAmplitudeRatio( float decibels );\r
- static float FrequencyRatioToSemitones( float frequencyRatio );\r
- static float RadiansToCutoffFrequency( float radians, float sampleRate );\r
- static float SemitonesToFrequencyRatio( float semitones );\r
-\r
- Result StartEngine();\r
- void StopEngine();\r
-\r
- Result CommitChanges();\r
- Result CommitChanges( int operationSet );\r
-\r
- DeviceDetails^ GetDeviceDetails( int index );\r
-\r
- void SetDebugConfiguration( DebugConfiguration configuration );\r
-\r
- property int DeviceCount\r
- {\r
- int get();\r
- }\r
-\r
- property PerformanceData^ PerformanceData\r
- {\r
- SlimDX::XAudio2::PerformanceData^ get();\r
- }\r
-\r
- event System::EventHandler<ErrorEventArgs^>^ CriticalError;\r
- event System::EventHandler^ ProcessingPassEnd;\r
- event System::EventHandler^ ProcessingPassStart;\r
-\r
- literal int MaximumBufferBytes = XAUDIO2_MAX_BUFFER_BYTES;\r
- literal int MaximumQueuedBuffers = XAUDIO2_MAX_QUEUED_BUFFERS;\r
- literal int MaximumAudioChannels = XAUDIO2_MAX_AUDIO_CHANNELS;\r
- literal int MinimumSampleRate = XAUDIO2_MIN_SAMPLE_RATE;\r
- literal int MaximumSampleRate = XAUDIO2_MAX_SAMPLE_RATE;\r
- literal float MaximumVolumeLevel = XAUDIO2_MAX_VOLUME_LEVEL;\r
- literal float MinimumFrequencyRatio = XAUDIO2_MIN_FREQ_RATIO;\r
- literal float MaximumFrequencyRatio = XAUDIO2_MAX_FREQ_RATIO;\r
- literal float DefaultFrequencyRatio = XAUDIO2_DEFAULT_FREQ_RATIO;\r
- literal float MaximumFilterOneOverQ = XAUDIO2_MAX_FILTER_ONEOVERQ;\r
- literal float MaximumFilterFrequency = XAUDIO2_MAX_FILTER_FREQUENCY;\r
- literal int MaximumLoopCount = XAUDIO2_MAX_LOOP_COUNT;\r
-\r
- literal int CommitNow = XAUDIO2_COMMIT_NOW;\r
- literal int CommitAll = XAUDIO2_COMMIT_ALL;\r
- literal int NoLoopRegion = XAUDIO2_NO_LOOP_REGION;\r
- literal int LoopInfinite = XAUDIO2_LOOP_INFINITE;\r
- literal int DefaultChannels = XAUDIO2_DEFAULT_CHANNELS;\r
- literal int DefaultSampleRate = XAUDIO2_DEFAULT_SAMPLERATE;\r
-\r
- static property System::Guid FormatSubtypePcm\r
- {\r
- System::Guid get();\r
- }\r
-\r
- static property System::Guid FormatSubtypeAdpcm\r
- {\r
- System::Guid get();\r
- }\r
-\r
- static property System::Guid FormatSubtypeIeee\r
- {\r
- System::Guid get();\r
- }\r
- };\r
- }\r
-}
\ No newline at end of file