tmp
[blender.git] / extern / audaspace / bindings / C / AUD_DynamicMusic.h
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 #pragma once
18
19 #include "AUD_Types.h"
20 #include "AUD_Handle.h"
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /**
27 * Creates a new dynamic music player.
28 * \param device The device that will be used to play sounds.
29 * \return The new DynamicMusic object.
30 */
31 extern AUD_API AUD_DynamicMusic* AUD_DynamicMusic_create(AUD_Device* device);
32
33 /**
34 * Deletes a dynamic music player.
35 * \param player The DynamicMusic object to be deleted.
36 */
37 extern AUD_API void AUD_DynamicMusic_free(AUD_DynamicMusic* player);
38
39 /**
40 * Adds a sound scene to a dynamic music player.
41 * \param player The DynamicMusic object.
42 * \param scene The sound to be added as a scene.
43 * \return The index of the new scene.
44 */
45 extern AUD_API int AUD_DynamicMusic_addScene(AUD_DynamicMusic* player, AUD_Sound* scene);
46
47 /**
48 * Changes the current sound scene of a dynamic music player.
49 * \param player The DynamicMusic object.
50 * \param scene The index of the scene to be played.
51 * \return 0 if the target scene doesn't exist.
52 */
53 extern AUD_API int AUD_DynamicMusic_setSecene(AUD_DynamicMusic* player, int scene);
54
55 /**
56 * Retrives the index of the current scene.
57 * \param player The DynamicMusic object.
58 * \return The index of the current scene.
59 */
60 extern AUD_API int AUD_DynamicMusic_getScene(AUD_DynamicMusic* player);
61
62 /**
63 * Adds a new transition between two scenes.
64 * \param player The DynamicMusic object.
65 * \param ini The origin scene for the transition.
66 * \param end The end scene for the transition.
67 * \param transition A sound that will be used as transition between two scenes.
68 * \return 0 if the ini or end scenes don't exist.
69 */
70 extern AUD_API int AUD_DynamicMusic_addTransition(AUD_DynamicMusic* player, int ini, int end, AUD_Sound* transition);
71
72 /**
73 * Changes the fade time for the default transitions of a dynamic music player.
74 * \param player The DynamicMusic object.
75 * \param seconds The amount of secods that the crossfade transition will take.
76 */
77 extern AUD_API void AUD_DynamicMusic_setFadeTime(AUD_DynamicMusic* player, float seconds);
78
79 /**
80 * Retrieves the fade time of a dynamic music player.
81 * \param player The DynamicMusic object.
82 * \return The fade time of the player.
83 */
84 extern AUD_API float AUD_DynamicMusic_getFadeTime(AUD_DynamicMusic* player);
85
86 /**
87 * Resumes the current scene playback of a dynamic music player if it is paused.
88 * \param player The DynamicMusic object.
89 * \return 0 if the playback wasn't resumed.
90 */
91 extern AUD_API int AUD_DynamicMusic_resume(AUD_DynamicMusic* player);
92
93 /**
94 * Pauses the current scene of a dynamic music player.
95 * \param player The DynamicMusic object.
96 * \return 0 if the playback wasn't paused.
97 */
98 extern AUD_API int AUD_DynamicMusic_pause(AUD_DynamicMusic* player);
99
100 /**
101 * Seeks the current playing scene of a dynamic music player.
102 * \param player The DynamicMusic object.
103 * \param position The new position from which to play back, in seconds.
104 * \return 0 if the seeking wasn't possible.
105 */
106 extern AUD_API int AUD_DynamicMusic_seek(AUD_DynamicMusic* player, float position);
107
108 /**
109 * Retrieves the position of the current scene of a dynamic music player.
110 * \param player The DynamicMusic object.
111 * \return The position of the current playing scene.
112 */
113 extern AUD_API float AUD_DynamicMusic_getPosition(AUD_DynamicMusic* player);
114
115 /**
116 * Retrieves the volume of the current scene of a dynamic music player.
117 * \param player The DynamicMusic object.
118 * \return The volume of the current playing scene.
119 */
120 extern AUD_API float AUD_DynamicMusic_getVolume(AUD_DynamicMusic* player);
121
122 /**
123 * Changes the volume of the current scene in a dynamic music player.
124 * \param player The DynamicMusic object.
125 * \param 0 if the volume couldn't be changed.
126 */
127 extern AUD_API int AUD_DynamicMusic_setVolume(AUD_DynamicMusic* player, float volume);
128
129 /**
130 * Retrieves the status of the current scene in a dynamic music player.
131 * \param player The DynamicMusic object.
132 * \return The Status of the current playing scene.
133 */
134 extern AUD_API AUD_Status AUD_DynamicMusic_getStatus(AUD_DynamicMusic* player);
135
136 /**
137 * Stops the current scene of a dynamic music player.
138 * \param player The DynamicMusic object.
139 * \return 0 if the playback wasn't stopped.
140 */
141 extern AUD_API int AUD_DynamicMusic_stop(AUD_DynamicMusic* player);
142
143 #ifdef __cplusplus
144 }
145 #endif