OSDN Git Service

DTXMania089リリースに際してのtag付け。
[dtxmania/dtxmania.git] / 110401(DTXMania089) / SlimDXc_Jun2010(VC++2008) / source / xact3 / Wave.cpp
1 /*\r
2 * Copyright (c) 2007-2010 SlimDX Group\r
3\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
10\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
13\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
20 * THE SOFTWARE.\r
21 */\r
22 #include "stdafx.h"\r
23 \r
24 #include "XACT3Exception.h"\r
25 #include "Wave.h"\r
26 \r
27 namespace SlimDX\r
28 {\r
29 namespace XACT3\r
30 {\r
31         Wave::Wave(IXACT3Wave *wave)\r
32         {\r
33                 InternalPointer = wave;\r
34         }\r
35 \r
36         Result Wave::Destroy()\r
37         {\r
38                 HRESULT hr = InternalPointer->Destroy();\r
39                 return RECORD_XACT3(hr);\r
40         }\r
41 \r
42         Result Wave::Pause(bool pause)\r
43         {\r
44                 HRESULT hr = InternalPointer->Pause(pause);\r
45                 return RECORD_XACT3(hr);\r
46         }\r
47 \r
48         Result Wave::Play()\r
49         {\r
50                 HRESULT hr = InternalPointer->Play();\r
51                 return RECORD_XACT3(hr);\r
52         }\r
53 \r
54         Result Wave::SetMatrixCoefficients(int srcChannelCount, int dstChannelCount, array<float>^ matrixCoefficients)\r
55         {\r
56                 pin_ptr<float> pinnedMatrix = &matrixCoefficients[0];\r
57 \r
58                 HRESULT hr = InternalPointer->SetMatrixCoefficients(srcChannelCount, dstChannelCount, pinnedMatrix);\r
59                 return RECORD_XACT3(hr);\r
60         }\r
61 \r
62         Result Wave::SetPitch(int pitch)\r
63         {\r
64                 HRESULT hr = InternalPointer->SetPitch(static_cast<XACTPITCH>(pitch));\r
65                 return RECORD_XACT3(hr);\r
66         }\r
67 \r
68         Result Wave::SetVolume(float volume)\r
69         {\r
70                 HRESULT hr = InternalPointer->SetVolume(volume);\r
71                 return RECORD_XACT3(hr);\r
72         }\r
73 \r
74         Result Wave::Stop(StopFlags flags)\r
75         {\r
76                 HRESULT hr = InternalPointer->Stop((DWORD)flags);\r
77                 return RECORD_XACT3(hr);\r
78         }\r
79 \r
80         WaveInstanceProperties Wave::Properties::get()\r
81         {\r
82                 XACT_WAVE_INSTANCE_PROPERTIES result;\r
83 \r
84                 HRESULT hr = InternalPointer->GetProperties(&result);\r
85                 RECORD_XACT3(hr);\r
86 \r
87                 return WaveInstanceProperties(result);\r
88         }\r
89 \r
90         WaveState Wave::State::get()\r
91         {\r
92                 DWORD result;\r
93 \r
94                 HRESULT hr = InternalPointer->GetState(&result);\r
95                 RECORD_XACT3(hr);\r
96 \r
97                 return static_cast<WaveState>(result);\r
98         }\r
99 }\r
100 }\r