Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
64 lines (56 loc) · 2.12 KB

SDL_wave.h

File metadata and controls

64 lines (56 loc) · 2.12 KB
 
Apr 26, 2001
Apr 26, 2001
1
2
/*
SDL - Simple DirectMedia Layer
Feb 1, 2006
Feb 1, 2006
3
Copyright (C) 1997-2006 Sam Lantinga
Apr 26, 2001
Apr 26, 2001
4
Feb 7, 2006
Feb 7, 2006
5
This library is SDL_free software; you can redistribute it and/or
Feb 1, 2006
Feb 1, 2006
6
modify it under the terms of the GNU Lesser General Public
Apr 26, 2001
Apr 26, 2001
7
License as published by the Free Software Foundation; either
Feb 1, 2006
Feb 1, 2006
8
version 2.1 of the License, or (at your option) any later version.
Apr 26, 2001
Apr 26, 2001
9
10
11
12
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Feb 1, 2006
Feb 1, 2006
13
Lesser General Public License for more details.
Apr 26, 2001
Apr 26, 2001
14
Feb 1, 2006
Feb 1, 2006
15
16
17
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Apr 26, 2001
Apr 26, 2001
18
19
Sam Lantinga
Dec 14, 2001
Dec 14, 2001
20
slouken@libsdl.org
Apr 26, 2001
Apr 26, 2001
21
*/
Feb 21, 2006
Feb 21, 2006
22
#include "SDL_config.h"
Apr 26, 2001
Apr 26, 2001
23
24
25
26
27
28
/* WAVE files are little-endian */
/*******************************************/
/* Define values for Microsoft WAVE format */
/*******************************************/
May 28, 2006
May 28, 2006
29
30
31
32
33
34
#define RIFF 0x46464952 /* "RIFF" */
#define WAVE 0x45564157 /* "WAVE" */
#define FACT 0x74636166 /* "fact" */
#define LIST 0x5453494c /* "LIST" */
#define FMT 0x20746D66 /* "fmt " */
#define DATA 0x61746164 /* "data" */
Apr 26, 2001
Apr 26, 2001
35
36
37
#define PCM_CODE 0x0001
#define MS_ADPCM_CODE 0x0002
#define IMA_ADPCM_CODE 0x0011
May 17, 2006
May 17, 2006
38
#define MP3_CODE 0x0055
Apr 26, 2001
Apr 26, 2001
39
40
41
42
#define WAVE_MONO 1
#define WAVE_STEREO 2
/* Normally, these three chunks come consecutively in a WAVE file */
May 28, 2006
May 28, 2006
43
44
typedef struct WaveFMT
{
Apr 26, 2001
Apr 26, 2001
45
46
47
48
/* Not saved in the chunk we read:
Uint32 FMTchunk;
Uint32 fmtlen;
*/
May 28, 2006
May 28, 2006
49
50
51
52
53
54
Uint16 encoding;
Uint16 channels; /* 1 = mono, 2 = stereo */
Uint32 frequency; /* One of 11025, 22050, or 44100 Hz */
Uint32 byterate; /* Average bytes per second */
Uint16 blockalign; /* Bytes per sample block */
Uint16 bitspersample; /* One of 8, 12, 16, or 4 for ADPCM */
Apr 26, 2001
Apr 26, 2001
55
56
57
} WaveFMT;
/* The general chunk found in the WAVE file */
May 28, 2006
May 28, 2006
58
59
60
61
62
typedef struct Chunk
{
Uint32 magic;
Uint32 length;
Uint8 *data;
Apr 26, 2001
Apr 26, 2001
63
} Chunk;
May 28, 2006
May 28, 2006
64
/* vi: set ts=4 sw=4 expandtab: */