tmp
[blender.git] / extern / audaspace / bindings / C / AUD_PlaybackManager.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_PlaybackManager.h"
25
26 AUD_API AUD_PlaybackManager* AUD_PlaybackManager_create(AUD_Device* device)
27 {
28         assert(device);
29
30         try
31         {
32                 return new AUD_PlaybackManager(new PlaybackManager(*device));
33         }
34         catch(Exception&)
35         {
36                 return nullptr;
37         }
38 }
39
40 AUD_API void AUD_PlaybackManager_free(AUD_PlaybackManager* manager)
41 {
42         assert(manager);
43         delete manager;
44 }
45
46 AUD_API void AUD_PlaybackManager_play(AUD_PlaybackManager* manager, AUD_Sound* sound, unsigned int catKey)
47 {
48         assert(manager);
49         assert(sound);
50
51         (*manager)->play(*sound, catKey);
52 }
53
54 AUD_API int AUD_PlaybackManager_resume(AUD_PlaybackManager* manager, unsigned int catKey)
55 {
56         assert(manager);
57         return (*manager)->resume(catKey);
58 }
59
60 AUD_API int AUD_PlaybackManager_pause(AUD_PlaybackManager* manager, unsigned int catKey)
61 {
62         assert(manager);
63         return (*manager)->pause(catKey);
64 }
65
66 AUD_API unsigned int AUD_PlaybackManager_addCategory(AUD_PlaybackManager* manager, float volume)
67 {
68         assert(manager);
69         return (*manager)->addCategory(volume);
70 }
71
72 AUD_API float AUD_PlaybackManager_getVolume(AUD_PlaybackManager* manager, unsigned int catKey)
73 {
74         assert(manager);
75         return (*manager)->getVolume(catKey);
76 }
77
78 AUD_API int AUD_PlaybackManager_setVolume(AUD_PlaybackManager* manager, float volume, unsigned int catKey)
79 {
80         assert(manager);
81         return (*manager)->setVolume(volume, catKey);
82 }
83
84 AUD_API int AUD_PlaybackManager_stop(AUD_PlaybackManager* manager, unsigned int catKey)
85 {
86         assert(manager);
87         return (*manager)->stop(catKey);
88 }
89
90 AUD_API void AUD_PlaybackManager_clean(AUD_PlaybackManager* manager)
91 {
92         assert(manager);
93         (*manager)->clean();
94 }