00001 00002 // 00003 // SFML - Simple and Fast Multimedia Library 00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) 00005 // 00006 // This software is provided 'as-is', without any express or implied warranty. 00007 // In no event will the authors be held liable for any damages arising from the use of this software. 00008 // 00009 // Permission is granted to anyone to use this software for any purpose, 00010 // including commercial applications, and to alter it and redistribute it freely, 00011 // subject to the following restrictions: 00012 // 00013 // 1. The origin of this software must not be misrepresented; 00014 // you must not claim that you wrote the original software. 00015 // If you use this software in a product, an acknowledgment 00016 // in the product documentation would be appreciated but is not required. 00017 // 00018 // 2. Altered source versions must be plainly marked as such, 00019 // and must not be misrepresented as being the original software. 00020 // 00021 // 3. This notice may not be removed or altered from any source distribution. 00022 // 00024 00025 #ifndef SFML_SOUNDSTREAM_H 00026 #define SFML_SOUNDSTREAM_H 00027 00029 // Headers 00031 #include <SFML/Config.h> 00032 #include <SFML/Audio/SoundStatus.h> 00033 #include <SFML/Audio/Types.h> 00034 00035 00040 typedef struct 00041 { 00042 sfInt16* Samples; 00043 unsigned int NbSamples; 00044 } sfSoundStreamChunk; 00045 00046 typedef sfBool (*sfSoundStreamStartCallback)(void*); 00047 typedef sfBool (*sfSoundStreamGetDataCallback)(sfSoundStreamChunk*, void*); 00048 00049 00062 CSFML_API sfSoundStream* sfSoundStream_Create(sfSoundStreamStartCallback OnStart, 00063 sfSoundStreamGetDataCallback OnGetData, 00064 unsigned int ChannelsCount, 00065 unsigned int SampleRate, 00066 void* UserData); 00067 00074 CSFML_API void sfSoundStream_Destroy(sfSoundStream* SoundStreamStream); 00075 00082 CSFML_API void sfSoundStream_Play(sfSoundStream* SoundStream); 00083 00090 CSFML_API void sfSoundStream_Pause(sfSoundStream* SoundStream); 00091 00098 CSFML_API void sfSoundStream_Stop(sfSoundStream* SoundStream); 00099 00108 CSFML_API sfSoundStatus sfSoundStream_GetStatus(sfSoundStream* SoundStream); 00109 00119 CSFML_API unsigned int sfSoundStream_GetChannelsCount(sfSoundStream* SoundStream); 00120 00129 CSFML_API unsigned int sfSoundStream_GetSampleRate(sfSoundStream* SoundStream); 00130 00138 CSFML_API void sfSoundStream_SetPitch(sfSoundStream* SoundStream, float Pitch); 00139 00147 CSFML_API void sfSoundStream_SetVolume(sfSoundStream* SoundStream, float Volume); 00148 00158 CSFML_API void sfSoundStream_SetPosition(sfSoundStream* SoundStream, float X, float Y, float Z); 00159 00169 CSFML_API void sfSoundStream_SetRelativeToListener(sfSoundStream* SoundStream, sfBool Relative); 00170 00180 CSFML_API void sfSoundStream_SetMinDistance(sfSoundStream* SoundStream, float MinDistance); 00181 00191 CSFML_API void sfSoundStream_SetAttenuation(sfSoundStream* SoundStream, float Attenuation); 00192 00200 CSFML_API void sfSoundStream_SetLoop(sfSoundStream* SoundStream, sfBool Loop); 00201 00210 CSFML_API float sfSoundStream_GetPitch(sfSoundStream* SoundStream); 00211 00220 CSFML_API float sfSoundStream_GetVolume(sfSoundStream* SoundStream); 00221 00231 CSFML_API void sfSoundStream_GetPosition(sfSoundStream* SoundStream, float* X, float* Y, float* Z); 00232 00242 CSFML_API sfBool sfSoundStream_IsRelativeToListener(sfSoundStream* SoundStream); 00243 00252 CSFML_API float sfSoundStream_GetMinDistance(sfSoundStream* SoundStream); 00253 00262 CSFML_API float sfSoundStream_GetAttenuation(sfSoundStream* SoundStream); 00263 00272 CSFML_API sfBool sfSoundStream_GetLoop(sfSoundStream* SoundStream); 00273 00282 CSFML_API float sfSoundStream_GetPlayingOffset(sfSoundStream* SoundStream); 00283 00284 00285 #endif // SFML_SOUNDSTREAM_H
:: Copyright © 2007-2008 Laurent Gomila, all rights reserved :: Documentation generated by doxygen 1.5.2 ::