src/audio/SDL_wave.h
author Sam Lantinga
Mon, 09 Jan 2017 11:58:01 -0800
changeset 10802 6afc9b833867
parent 10737 3406a0f8b041
child 10894 748bedefb03f
permissions -rw-r--r--
We only need the first few keymaps corresponding to the following constants:
K_NORMTAB, K_SHIFTTAB, K_ALTTAB, K_ALTSHIFTTAB

In the normal case we'll load all the keymaps from the kernel, but this reduces the size of the SDL library for the fallback case when we can't get to the tty.
slouken@0
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@10737
     3
  Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
slouken@0
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@0
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@0
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@0
    20
*/
icculus@8093
    21
#include "../SDL_internal.h"
slouken@0
    22
slouken@0
    23
/* WAVE files are little-endian */
slouken@0
    24
slouken@0
    25
/*******************************************/
slouken@0
    26
/* Define values for Microsoft WAVE format */
slouken@0
    27
/*******************************************/
slouken@7191
    28
#define RIFF            0x46464952      /* "RIFF" */
slouken@7191
    29
#define WAVE            0x45564157      /* "WAVE" */
slouken@7191
    30
#define FACT            0x74636166      /* "fact" */
slouken@7191
    31
#define LIST            0x5453494c      /* "LIST" */
slouken@8909
    32
#define BEXT            0x74786562      /* "bext" */
slouken@8998
    33
#define JUNK            0x4B4E554A      /* "JUNK" */
slouken@7191
    34
#define FMT             0x20746D66      /* "fmt " */
slouken@7191
    35
#define DATA            0x61746164      /* "data" */
slouken@7191
    36
#define PCM_CODE        0x0001
slouken@7191
    37
#define MS_ADPCM_CODE   0x0002
slouken@7191
    38
#define IEEE_FLOAT_CODE 0x0003
slouken@7191
    39
#define IMA_ADPCM_CODE  0x0011
slouken@7191
    40
#define MP3_CODE        0x0055
slouken@7191
    41
#define WAVE_MONO       1
slouken@7191
    42
#define WAVE_STEREO     2
slouken@0
    43
slouken@0
    44
/* Normally, these three chunks come consecutively in a WAVE file */
slouken@1895
    45
typedef struct WaveFMT
slouken@1895
    46
{
slouken@0
    47
/* Not saved in the chunk we read:
slouken@7191
    48
    Uint32  FMTchunk;
slouken@7191
    49
    Uint32  fmtlen;
slouken@0
    50
*/
slouken@1895
    51
    Uint16 encoding;
slouken@1895
    52
    Uint16 channels;            /* 1 = mono, 2 = stereo */
slouken@1895
    53
    Uint32 frequency;           /* One of 11025, 22050, or 44100 Hz */
slouken@1895
    54
    Uint32 byterate;            /* Average bytes per second */
slouken@1895
    55
    Uint16 blockalign;          /* Bytes per sample block */
slouken@1895
    56
    Uint16 bitspersample;       /* One of 8, 12, 16, or 4 for ADPCM */
slouken@0
    57
} WaveFMT;
slouken@0
    58
slouken@0
    59
/* The general chunk found in the WAVE file */
slouken@1895
    60
typedef struct Chunk
slouken@1895
    61
{
slouken@1895
    62
    Uint32 magic;
slouken@1895
    63
    Uint32 length;
slouken@1895
    64
    Uint8 *data;
slouken@0
    65
} Chunk;
slouken@7191
    66
slouken@1895
    67
/* vi: set ts=4 sw=4 expandtab: */