00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00026
00028 #include <SFML/Audio/SoundBuffer.h>
00029 #include <SFML/Audio/SoundBuffer.hpp>
00030 #include <SFML/Internal.h>
00031
00032
00033 struct sfSoundBuffer
00034 {
00035 sf::SoundBuffer This;
00036 };
00037
00038
00042 sfSoundBuffer* sfSoundBuffer_CreateFromFile(const char* Filename)
00043 {
00044 sfSoundBuffer* Buffer = new sfSoundBuffer;
00045
00046 if (!Buffer->This.LoadFromFile(Filename))
00047 {
00048 delete Buffer;
00049 Buffer = NULL;
00050 }
00051
00052 return Buffer;
00053 }
00054
00055
00059 sfSoundBuffer* sfSoundBuffer_CreateFromMemory(const char* Data, size_t SizeInBytes)
00060 {
00061 sfSoundBuffer* Buffer = new sfSoundBuffer;
00062
00063 if (!Buffer->This.LoadFromMemory(Data, SizeInBytes))
00064 {
00065 delete Buffer;
00066 Buffer = NULL;
00067 }
00068
00069 return Buffer;
00070 }
00071
00072
00078 sfSoundBuffer* sfSoundBuffer_CreateFromSamples(const sfInt16* Samples, size_t SamplesCount, unsigned int ChannelsCount, unsigned int SampleRate)
00079 {
00080 sfSoundBuffer* Buffer = new sfSoundBuffer;
00081
00082 if (!Buffer->This.LoadFromSamples(Samples, SamplesCount, ChannelsCount, SampleRate))
00083 {
00084 delete Buffer;
00085 Buffer = NULL;
00086 }
00087
00088 return Buffer;
00089 }
00090
00091
00095 void sfSoundBuffer_Destroy(sfSoundBuffer* SoundBuffer)
00096 {
00097 delete SoundBuffer;
00098 }
00099
00100
00104 sfBool sfSoundBuffer_SaveToFile(sfSoundBuffer* SoundBuffer, const char* Filename)
00105 {
00106 CSFML_CALL_RETURN(SoundBuffer, SaveToFile(Filename), sfFalse)
00107 }
00108
00109
00113 const sfInt16* sfSoundBuffer_GetSamples(sfSoundBuffer* SoundBuffer)
00114 {
00115 CSFML_CALL_RETURN(SoundBuffer, GetSamples(), NULL)
00116 }
00117
00118
00122 size_t sfSoundBuffer_GetSamplesCount(sfSoundBuffer* SoundBuffer)
00123 {
00124 CSFML_CALL_RETURN(SoundBuffer, GetSamplesCount(), 0)
00125 }
00126
00127
00131 unsigned int sfSoundBuffer_GetSampleRate(sfSoundBuffer* SoundBuffer)
00132 {
00133 CSFML_CALL_RETURN(SoundBuffer, GetSampleRate(), 0)
00134 }
00135
00136
00140 unsigned int sfSoundBuffer_GetChannelsCount(sfSoundBuffer* SoundBuffer)
00141 {
00142 CSFML_CALL_RETURN(SoundBuffer, GetChannelsCount(), 0)
00143 }
00144
00145
00149 float sfSoundBuffer_GetDuration(sfSoundBuffer* SoundBuffer)
00150 {
00151 CSFML_CALL_RETURN(SoundBuffer, GetDuration(), 0.f)
00152 }