OSDN Git Service

#36897 [DTXC] MIDIインポート機能の呼び出し口を、ファイルメニュー内にも配置。
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / directsound / I3DL2Reverb.cpp
1 #include "stdafx.h"\r
2 /*\r
3 * Copyright (c) 2007-2010 SlimDX Group\r
4\r
5 * Permission is hereby granted, free of charge, to any person obtaining a copy\r
6 * of this software and associated documentation files (the "Software"), to deal\r
7 * in the Software without restriction, including without limitation the rights\r
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
9 * copies of the Software, and to permit persons to whom the Software is\r
10 * furnished to do so, subject to the following conditions:\r
11\r
12 * The above copyright notice and this permission notice shall be included in\r
13 * all copies or substantial portions of the Software.\r
14\r
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
21 * THE SOFTWARE.\r
22 */\r
23 #include <windows.h>\r
24 #include <dsound.h>\r
25 \r
26 #include "../ComObject.h"\r
27 \r
28 #include "DirectSoundException.h"\r
29 \r
30 #include "I3DL2Reverb.h"\r
31 \r
32 using namespace System;\r
33 \r
34 namespace SlimDX\r
35 {\r
36 namespace DirectSound\r
37 {\r
38         int I3DL2Reverb::Room::get()\r
39         {\r
40                 DSFXI3DL2Reverb param;\r
41 \r
42                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
43                 if( RECORD_DSOUND( hr ).IsFailure )\r
44                         return 0;\r
45 \r
46                 return param.lRoom;\r
47         }\r
48 \r
49         void I3DL2Reverb::Room::set( int value )\r
50         {\r
51                 DSFXI3DL2Reverb param;\r
52 \r
53                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
54                 if( RECORD_DSOUND( hr ).IsFailure )\r
55                         return;\r
56 \r
57                 param.lRoom = value;\r
58                 hr = InternalPointer->SetAllParameters( &param );\r
59                 RECORD_DSOUND( hr );\r
60         }\r
61 \r
62         int I3DL2Reverb::RoomHF::get()\r
63         {\r
64                 DSFXI3DL2Reverb param;\r
65 \r
66                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
67                 if( RECORD_DSOUND( hr ).IsFailure )\r
68                         return 0;\r
69 \r
70                 return param.lRoomHF;\r
71         }\r
72 \r
73         void I3DL2Reverb::RoomHF::set( int value )\r
74         {\r
75                 DSFXI3DL2Reverb param;\r
76 \r
77                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
78                 if( RECORD_DSOUND( hr ).IsFailure )\r
79                         return;\r
80 \r
81                 param.lRoomHF = value;\r
82                 hr = InternalPointer->SetAllParameters( &param );\r
83                 RECORD_DSOUND( hr );\r
84         }\r
85 \r
86         int I3DL2Reverb::Reflections::get()\r
87         {\r
88                 DSFXI3DL2Reverb param;\r
89 \r
90                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
91                 if( RECORD_DSOUND( hr ).IsFailure )\r
92                         return 0;\r
93 \r
94                 return param.lReflections;\r
95         }\r
96 \r
97         void I3DL2Reverb::Reflections::set( int value )\r
98         {\r
99                 DSFXI3DL2Reverb param;\r
100 \r
101                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
102                 if( RECORD_DSOUND( hr ).IsFailure )\r
103                         return;\r
104 \r
105                 param.lReflections = value;\r
106                 hr = InternalPointer->SetAllParameters( &param );\r
107                 RECORD_DSOUND( hr );\r
108         }\r
109 \r
110         int I3DL2Reverb::Reverb::get()\r
111         {\r
112                 DSFXI3DL2Reverb param;\r
113 \r
114                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
115                 if( RECORD_DSOUND( hr ).IsFailure )\r
116                         return 0;\r
117 \r
118                 return param.lReverb;\r
119         }\r
120 \r
121         void I3DL2Reverb::Reverb::set( int value )\r
122         {\r
123                 DSFXI3DL2Reverb param;\r
124 \r
125                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
126                 if( RECORD_DSOUND( hr ).IsFailure )\r
127                         return;\r
128 \r
129                 param.lReverb = value;\r
130                 hr = InternalPointer->SetAllParameters( &param );\r
131                 RECORD_DSOUND( hr );\r
132         }\r
133 \r
134         float I3DL2Reverb::RoomRolloffFactor::get()\r
135         {\r
136                 DSFXI3DL2Reverb param;\r
137 \r
138                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
139                 if( RECORD_DSOUND( hr ).IsFailure )\r
140                         return 0.0f;\r
141 \r
142                 return param.flRoomRolloffFactor;\r
143         }\r
144 \r
145         void I3DL2Reverb::RoomRolloffFactor::set( float value )\r
146         {\r
147                 DSFXI3DL2Reverb param;\r
148 \r
149                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
150                 if( RECORD_DSOUND( hr ).IsFailure )\r
151                         return;\r
152 \r
153                 param.flRoomRolloffFactor = value;\r
154                 hr = InternalPointer->SetAllParameters( &param );\r
155                 RECORD_DSOUND( hr );\r
156         }\r
157 \r
158         float I3DL2Reverb::DecayTime::get()\r
159         {\r
160                 DSFXI3DL2Reverb param;\r
161 \r
162                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
163                 if( RECORD_DSOUND( hr ).IsFailure )\r
164                         return 0.0f;\r
165 \r
166                 return param.flDecayTime;\r
167         }\r
168 \r
169         void I3DL2Reverb::DecayTime::set( float value )\r
170         {\r
171                 DSFXI3DL2Reverb param;\r
172 \r
173                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
174                 if( RECORD_DSOUND( hr ).IsFailure )\r
175                         return;\r
176 \r
177                 param.flDecayTime = value;\r
178                 hr = InternalPointer->SetAllParameters( &param );\r
179                 RECORD_DSOUND( hr );\r
180         }\r
181 \r
182         float I3DL2Reverb::DecayHFRatio::get()\r
183         {\r
184                 DSFXI3DL2Reverb param;\r
185 \r
186                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
187                 if( RECORD_DSOUND( hr ).IsFailure )\r
188                         return 0.0f;\r
189 \r
190                 return param.flDecayHFRatio;\r
191         }\r
192 \r
193         void I3DL2Reverb::DecayHFRatio::set( float value )\r
194         {\r
195                 DSFXI3DL2Reverb param;\r
196 \r
197                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
198                 if( RECORD_DSOUND( hr ).IsFailure )\r
199                         return;\r
200 \r
201                 param.flDecayHFRatio = value;\r
202                 hr = InternalPointer->SetAllParameters( &param );\r
203                 RECORD_DSOUND( hr );\r
204         }\r
205 \r
206         float I3DL2Reverb::ReflectionsDelay::get()\r
207         {\r
208                 DSFXI3DL2Reverb param;\r
209 \r
210                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
211                 if( RECORD_DSOUND( hr ).IsFailure )\r
212                         return 0.0f;\r
213 \r
214                 return param.flReflectionsDelay;\r
215         }\r
216 \r
217         void I3DL2Reverb::ReflectionsDelay::set( float value )\r
218         {\r
219                 DSFXI3DL2Reverb param;\r
220 \r
221                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
222                 if( RECORD_DSOUND( hr ).IsFailure )\r
223                         return;\r
224 \r
225                 param.flReflectionsDelay = value;\r
226                 hr = InternalPointer->SetAllParameters( &param );\r
227                 RECORD_DSOUND( hr );\r
228         }\r
229 \r
230         float I3DL2Reverb::ReverbDelay::get()\r
231         {\r
232                 DSFXI3DL2Reverb param;\r
233 \r
234                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
235                 if( RECORD_DSOUND( hr ).IsFailure )\r
236                         return 0.0f;\r
237 \r
238                 return param.flReverbDelay;\r
239         }\r
240 \r
241         void I3DL2Reverb::ReverbDelay::set( float value )\r
242         {\r
243                 DSFXI3DL2Reverb param;\r
244 \r
245                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
246                 if( RECORD_DSOUND( hr ).IsFailure )\r
247                         return;\r
248 \r
249                 param.flReverbDelay = value;\r
250                 hr = InternalPointer->SetAllParameters( &param );\r
251                 RECORD_DSOUND( hr );\r
252         }\r
253 \r
254         float I3DL2Reverb::Diffusion::get()\r
255         {\r
256                 DSFXI3DL2Reverb param;\r
257 \r
258                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
259                 if( RECORD_DSOUND( hr ).IsFailure )\r
260                         return 0.0f;\r
261 \r
262                 return param.flDiffusion;\r
263         }\r
264 \r
265         void I3DL2Reverb::Diffusion::set( float value )\r
266         {\r
267                 DSFXI3DL2Reverb param;\r
268 \r
269                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
270                 if( RECORD_DSOUND( hr ).IsFailure )\r
271                         return;\r
272 \r
273                 param.flDiffusion = value;\r
274                 hr = InternalPointer->SetAllParameters( &param );\r
275                 RECORD_DSOUND( hr );\r
276         }\r
277 \r
278         float I3DL2Reverb::Density::get()\r
279         {\r
280                 DSFXI3DL2Reverb param;\r
281 \r
282                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
283                 if( RECORD_DSOUND( hr ).IsFailure )\r
284                         return 0.0f;\r
285 \r
286                 return param.flDensity;\r
287         }\r
288 \r
289         void I3DL2Reverb::Density::set( float value )\r
290         {\r
291                 DSFXI3DL2Reverb param;\r
292 \r
293                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
294                 if( RECORD_DSOUND( hr ).IsFailure )\r
295                         return;\r
296 \r
297                 param.flDensity = value;\r
298                 hr = InternalPointer->SetAllParameters( &param );\r
299                 RECORD_DSOUND( hr );\r
300         }\r
301 \r
302         float I3DL2Reverb::HFReference::get()\r
303         {\r
304                 DSFXI3DL2Reverb param;\r
305 \r
306                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
307                 if( RECORD_DSOUND( hr ).IsFailure )\r
308                         return 0.0f;\r
309 \r
310                 return param.flHFReference;\r
311         }\r
312 \r
313         void I3DL2Reverb::HFReference::set( float value )\r
314         {\r
315                 DSFXI3DL2Reverb param;\r
316 \r
317                 HRESULT hr = InternalPointer->GetAllParameters( &param );\r
318                 if( RECORD_DSOUND( hr ).IsFailure )\r
319                         return;\r
320 \r
321                 param.flHFReference = value;\r
322                 hr = InternalPointer->SetAllParameters( &param );\r
323                 RECORD_DSOUND( hr );\r
324         }\r
325 \r
326         int I3DL2Reverb::Quality::get()\r
327         {\r
328                 LONG result;\r
329                 HRESULT hr = InternalPointer->GetQuality( &result );\r
330                 RECORD_DSOUND( hr );\r
331 \r
332                 return static_cast<int>( result );\r
333         }\r
334 \r
335         void I3DL2Reverb::Quality::set( int value )\r
336         {\r
337                 HRESULT hr = InternalPointer->SetQuality( static_cast<LONG>( value ) );\r
338                 RECORD_DSOUND( hr );\r
339         }\r
340 \r
341         I3DL2ReverbPreset I3DL2Reverb::Preset::get()\r
342         {\r
343                 DWORD result;\r
344                 HRESULT hr = InternalPointer->GetPreset( &result );\r
345                 RECORD_DSOUND( hr );\r
346 \r
347                 return static_cast<I3DL2ReverbPreset>( result );\r
348         }\r
349 \r
350         void I3DL2Reverb::Preset::set( I3DL2ReverbPreset value )\r
351         {\r
352                 HRESULT hr = InternalPointer->SetPreset( static_cast<DWORD>( value ) );\r
353                 RECORD_DSOUND( hr );\r
354         }\r
355 }\r
356 }