SDL_sound 1.0.1
SDL_sound.h
Go to the documentation of this file.
1
3/*
4 * SDL_sound -- An abstract sound format decoding API.
5 * Copyright (C) 2001 Ryan C. Gordon.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
64#ifndef _INCLUDE_SDL_SOUND_H_
65#define _INCLUDE_SDL_SOUND_H_
66
67#include "SDL.h"
68#include "SDL_endian.h"
69
70#ifdef __cplusplus
71extern "C" {
72#endif
73
74#ifndef DOXYGEN_SHOULD_IGNORE_THIS
75
76#ifndef SDLCALL /* may not be defined with older SDL releases. */
77#define SDLCALL
78#endif
79
80#ifdef SDL_SOUND_DLL_EXPORTS
81# define SNDDECLSPEC __declspec(dllexport)
82#else
83# define SNDDECLSPEC
84#endif
85
86#define SOUND_VER_MAJOR 1
87#define SOUND_VER_MINOR 0
88#define SOUND_VER_PATCH 3
89#endif
90
91
107typedef enum
108{
111 /* these are set at sample creation time... */
114 /* these are set during decoding... */
117 SOUND_SAMPLEFLAG_EAGAIN = 1 << 31
119
120
133typedef struct
134{
135 Uint16 format;
136 Uint8 channels;
137 Uint32 rate;
139
140
160typedef struct
161{
162 const char **extensions;
163 const char *description;
164 const char *author;
165 const char *url;
167
168
169
189
190
204typedef struct
205{
206 int major;
207 int minor;
208 int patch;
210
211
212/* functions and macros... */
213
230#define SOUND_VERSION(x) \
231{ \
232 (x)->major = SOUND_VER_MAJOR; \
233 (x)->minor = SOUND_VER_MINOR; \
234 (x)->patch = SOUND_VER_PATCH; \
235}
236
237
267SNDDECLSPEC void SDLCALL Sound_GetLinkedVersion(Sound_Version *ver);
268
269
285SNDDECLSPEC int SDLCALL Sound_Init(void);
286
287
310SNDDECLSPEC int SDLCALL Sound_Quit(void);
311
312
345SNDDECLSPEC const Sound_DecoderInfo ** SDLCALL Sound_AvailableDecoders(void);
346
347
363SNDDECLSPEC const char * SDLCALL Sound_GetError(void);
364
365
374SNDDECLSPEC void SDLCALL Sound_ClearError(void);
375
376
449SNDDECLSPEC Sound_Sample * SDLCALL Sound_NewSample(SDL_RWops *rw,
450 const char *ext,
451 Sound_AudioInfo *desired,
452 Uint32 bufferSize);
453
481SNDDECLSPEC Sound_Sample * SDLCALL Sound_NewSampleFromFile(const char *fname,
482 Sound_AudioInfo *desired,
483 Uint32 bufferSize);
484
499SNDDECLSPEC void SDLCALL Sound_FreeSample(Sound_Sample *sample);
500
501
527SNDDECLSPEC int SDLCALL Sound_SetBufferSize(Sound_Sample *sample,
528 Uint32 new_size);
529
530
550SNDDECLSPEC Uint32 SDLCALL Sound_Decode(Sound_Sample *sample);
551
552
586SNDDECLSPEC Uint32 SDLCALL Sound_DecodeAll(Sound_Sample *sample);
587
588
620SNDDECLSPEC int SDLCALL Sound_Rewind(Sound_Sample *sample);
621
622
665SNDDECLSPEC int SDLCALL Sound_Seek(Sound_Sample *sample, Uint32 ms);
666
667#ifdef __cplusplus
668}
669#endif
670
671#endif /* !defined _INCLUDE_SDL_SOUND_H_ */
672
673/* end of SDL_sound.h ... */
674
Uint32 Sound_DecodeAll(Sound_Sample *sample)
Decode the remainder of the sound data in a Sound_Sample.
Sound_Sample * Sound_NewSampleFromFile(const char *fname, Sound_AudioInfo *desired, Uint32 bufferSize)
Start decoding a new sound sample from a file on disk.
Sound_Sample * Sound_NewSample(SDL_RWops *rw, const char *ext, Sound_AudioInfo *desired, Uint32 bufferSize)
Start decoding a new sound sample.
int Sound_Init(void)
Initialize SDL_sound.
Uint32 Sound_Decode(Sound_Sample *sample)
Decode more of the sound data in a Sound_Sample.
int Sound_Rewind(Sound_Sample *sample)
Rewind a sample to the start.
void Sound_ClearError(void)
Clear the current error message.
void Sound_FreeSample(Sound_Sample *sample)
Dispose of a Sound_Sample.
int Sound_Quit(void)
Shutdown SDL_sound.
const Sound_DecoderInfo ** Sound_AvailableDecoders(void)
Get a list of sound formats supported by this version of SDL_sound.
void Sound_GetLinkedVersion(Sound_Version *ver)
Get the version of SDL_sound that is linked against your program.
Sound_SampleFlags
Flags that are used in a Sound_Sample to show various states.
Definition SDL_sound.h:108
@ SOUND_SAMPLEFLAG_NONE
Definition SDL_sound.h:109
@ SOUND_SAMPLEFLAG_CANSEEK
Definition SDL_sound.h:112
@ SOUND_SAMPLEFLAG_ERROR
Definition SDL_sound.h:116
@ SOUND_SAMPLEFLAG_EAGAIN
Definition SDL_sound.h:117
@ SOUND_SAMPLEFLAG_EOF
Definition SDL_sound.h:115
int Sound_SetBufferSize(Sound_Sample *sample, Uint32 new_size)
Change the current buffer size for a sample.
int Sound_Seek(Sound_Sample *sample, Uint32 ms)
Seek to a different point in a sample.
const char * Sound_GetError(void)
Get the last SDL_sound error message as a null-terminated string.
Information about an existing sample's format.
Definition SDL_sound.h:134
Uint8 channels
Definition SDL_sound.h:136
Uint32 rate
Definition SDL_sound.h:137
Uint16 format
Definition SDL_sound.h:135
Information about available soudn decoders.
Definition SDL_sound.h:161
const char * author
Definition SDL_sound.h:164
const char ** extensions
Definition SDL_sound.h:162
const char * url
Definition SDL_sound.h:165
const char * description
Definition SDL_sound.h:163
Represents sound data in the process of being decoded.
Definition SDL_sound.h:180
const Sound_DecoderInfo * decoder
Definition SDL_sound.h:182
Sound_SampleFlags flags
Definition SDL_sound.h:187
void * buffer
Definition SDL_sound.h:185
Sound_AudioInfo actual
Definition SDL_sound.h:184
Uint32 buffer_size
Definition SDL_sound.h:186
Sound_AudioInfo desired
Definition SDL_sound.h:183
void * opaque
Definition SDL_sound.h:181
Information the version of SDL_sound in use.
Definition SDL_sound.h:205
int minor
Definition SDL_sound.h:207
int major
Definition SDL_sound.h:206
int patch
Definition SDL_sound.h:208