2 * Copyright (c) 2007-2010 SlimDX Group
\r
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
\r
5 * of this software and associated documentation files (the "Software"), to deal
\r
6 * in the Software without restriction, including without limitation the rights
\r
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
\r
8 * copies of the Software, and to permit persons to whom the Software is
\r
9 * furnished to do so, subject to the following conditions:
\r
11 * The above copyright notice and this permission notice shall be included in
\r
12 * all copies or substantial portions of the Software.
\r
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
\r
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
\r
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
\r
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
\r
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
\r
24 #include "../Result.h"
\r
26 #include "FilterParameters.h"
\r
27 #include "VoiceDetails.h"
\r
28 #include "VoiceSendDescriptor.h"
\r
29 #include "EffectDescriptor.h"
\r
35 public ref class Voice abstract
\r
38 IXAudio2Voice *m_Pointer;
\r
41 property IXAudio2Voice *InternalPointer
\r
43 IXAudio2Voice *get() { return m_Pointer; }
\r
44 void set( IXAudio2Voice *value ) { m_Pointer = value; }
\r
51 Result EnableEffect( int effectIndex );
\r
52 Result EnableEffect( int effectIndex, int operationSet );
\r
54 Result DisableEffect( int effectIndex );
\r
55 Result DisableEffect( int effectIndex, int operationSet );
\r
57 array<float>^ GetChannelVolumes( int channels );
\r
59 Result SetChannelVolumes( int channels, array<float>^ volumes );
\r
60 Result SetChannelVolumes( int channels, array<float>^ volumes, int operationSet );
\r
62 Result GetEffectParameters( int effectIndex, array<System::Byte>^ parameters );
\r
64 generic<typename T> where T : value class
\r
65 T GetEffectParameters( int effectIndex );
\r
67 Result SetEffectParameters( int effectIndex, array<System::Byte>^ parameters );
\r
68 Result SetEffectParameters( int effectIndex, array<System::Byte>^ parameters, int operationSet );
\r
70 generic<typename T> where T : value class
\r
71 Result SetEffectParameters( int effectIndex, T parameters );
\r
72 generic<typename T> where T : value class
\r
73 Result SetEffectParameters( int effectIndex, T parameters, int operationSet );
\r
75 bool IsEffectEnabled( int effectIndex );
\r
77 array<float>^ GetOutputMatrix( int sourceChannels, int destinationChannels );
\r
78 array<float>^ GetOutputMatrix( Voice^ destinationVoice, int sourceChannels, int destinationChannels );
\r
80 Result SetOutputMatrix( int sourceChannels, int destinationChannels, array<float>^ matrix );
\r
81 Result SetOutputMatrix( int sourceChannels, int destinationChannels, array<float>^ matrix, int operationSet );
\r
83 Result SetOutputMatrix( Voice^ destinationVoice, int sourceChannels, int destinationChannels, array<float>^ matrix );
\r
84 Result SetOutputMatrix( Voice^ destinationVoice, int sourceChannels, int destinationChannels, array<float>^ matrix, int operationSet );
\r
86 Result SetEffectChain( array<EffectDescriptor>^ effects );
\r
88 #if SLIMDX_XAUDIO2_VERSION < 24
\r
89 Result SetOutputVoices( array<Voice^>^ outputVoices );
\r
91 Result SetOutputVoices( array<VoiceSendDescriptor>^ outputVoices );
\r
93 property FilterParameters FilterParameters
\r
95 SlimDX::XAudio2::FilterParameters get();
\r
96 void set( SlimDX::XAudio2::FilterParameters value );
\r
99 property VoiceDetails VoiceDetails
\r
101 SlimDX::XAudio2::VoiceDetails get();
\r
104 property float Volume
\r
107 void set( float value );
\r