This repository has been archived by the owner on Feb 11, 2021. It is now read-only.
/
SDL_wave.h
65 lines (57 loc) · 2.15 KB
1
2
/*
SDL - Simple DirectMedia Layer
3
Copyright (C) 1997-2009 Sam Lantinga
4
5
This library is SDL_free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) any later version.
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
13
Lesser General Public License for more details.
14
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
18
19
Sam Lantinga
20
slouken@libsdl.org
21
*/
22
#include "SDL_config.h"
23
24
25
26
27
28
/* WAVE files are little-endian */
/*******************************************/
/* Define values for Microsoft WAVE format */
/*******************************************/
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" */
35
36
#define PCM_CODE 0x0001
#define MS_ADPCM_CODE 0x0002
37
#define IEEE_FLOAT_CODE 0x0003
38
#define IMA_ADPCM_CODE 0x0011
39
#define MP3_CODE 0x0055
40
41
42
43
#define WAVE_MONO 1
#define WAVE_STEREO 2
/* Normally, these three chunks come consecutively in a WAVE file */
44
45
typedef struct WaveFMT
{
46
47
48
49
/* Not saved in the chunk we read:
Uint32 FMTchunk;
Uint32 fmtlen;
*/
50
51
52
53
54
55
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 */
56
57
58
} WaveFMT;
/* The general chunk found in the WAVE file */
59
60
61
62
63
typedef struct Chunk
{
Uint32 magic;
Uint32 length;
Uint8 *data;
64
} Chunk;
65
/* vi: set ts=4 sw=4 expandtab: */