tmp
[blender.git] / extern / audaspace / bindings / C / AUD_DynamicMusic.cpp
1 /*******************************************************************************
2 * Copyright 2015-2016 Juan Francisco Crespo Gal├ín
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *   http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17 #include "Exception.h"
18
19 #include <cassert>
20
21 using namespace aud;
22
23 #define AUD_CAPI_IMPLEMENTATION
24 #include "AUD_DynamicMusic.h"
25
26 AUD_API AUD_DynamicMusic* AUD_DynamicMusic_create(AUD_Device* device)
27 {
28         assert(device);
29
30         try
31         {
32                 return new AUD_DynamicMusic(new DynamicMusic(*device));
33         }
34         catch(Exception&)
35         {
36                 return nullptr;
37         }
38 }
39
40 AUD_API void AUD_DynamicMusic_free(AUD_DynamicMusic* player)
41 {
42         assert(player);
43         delete player;
44 }
45
46 AUD_API int AUD_DynamicMusic_addScene(AUD_DynamicMusic* player, AUD_Sound* scene)
47 {
48         assert(player);
49         assert(scene);
50
51         return (*player)->addScene(*scene);
52 }
53
54 AUD_API int AUD_DynamicMusic_setSecene(AUD_DynamicMusic* player, int scene)
55 {
56         assert(player);
57
58         return (*player)->changeScene(scene);
59 }
60
61 AUD_API int AUD_DynamicMusic_getScene(AUD_DynamicMusic* player)
62 {
63         assert(player);
64
65         return (*player)->getScene();
66 }
67
68 AUD_API int AUD_DynamicMusic_addTransition(AUD_DynamicMusic* player, int ini, int end, AUD_Sound* transition)
69 {
70         assert(player);
71         assert(transition);
72
73         return (*player)->addTransition(ini, end, *transition);
74 }
75
76 AUD_API void AUD_DynamicMusic_setFadeTime(AUD_DynamicMusic* player, float seconds)
77 {
78         assert(player);
79
80         (*player)->setFadeTime(seconds);
81 }
82
83 AUD_API float AUD_DynamicMusic_getFadeTime(AUD_DynamicMusic* player)
84 {
85         assert(player);
86
87         return (*player)->getFadeTime();
88 }
89
90 AUD_API int AUD_DynamicMusic_resume(AUD_DynamicMusic* player)
91 {
92         assert(player);
93
94         return (*player)->resume();
95 }
96
97 AUD_API int AUD_DynamicMusic_pause(AUD_DynamicMusic* player)
98 {
99         assert(player);
100
101         return (*player)->pause();
102 }
103
104 AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, float position)
105 {
106         assert(player);
107
108         return (*player)->seek(position);
109 }
110
111 AUD_API float AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player)
112 {
113         assert(player);
114
115         return (*player)->getPosition();
116 }
117
118 AUD_API float AUD_DynamicMusic_getVolume(AUD_DynamicMusic* player)
119 {
120         assert(player);
121
122         return (*player)->getVolume();
123 }
124
125 AUD_API int AUD_DynamicMusic_setVolume(AUD_DynamicMusic* player, float volume)
126 {
127         assert(player);
128
129         return (*player)->setVolume(volume);
130 }
131
132 AUD_API AUD_Status AUD_DynamicMusic_getStatus(AUD_DynamicMusic* player)
133 {
134         assert(player);
135
136         return static_cast<AUD_Status>((*player)->getStatus());
137 }
138
139 AUD_API int AUD_DynamicMusic_stop(AUD_DynamicMusic* player)
140 {
141         assert(player);
142
143         return (*player)->stop();
144 }