misc/libopenalbridge/openalbridge_t.h
author smaxx
Fri, 30 Jul 2010 19:56:28 +0200
changeset 3691 34fe2149f75d
parent 3529 0e968ba12a84
child 3695 c11abf387a7d
permissions -rw-r--r--
Engine: * Added/merged support for anaglyph (red/cyan) rendering (might not be supported by very old cards; don't use it if you've got low fps anyway) Frontend: * Added a checkbox to options to enable anaglyph rendering
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3691
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     1
/*
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     2
 * OpenAL Bridge - a simple portable library for OpenAL interface
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     3
 * Copyright (c) 2009 Vittorio Giovara <vittorio.giovara@gmail.com>
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     4
 *
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     6
 * it under the terms of the GNU Lesser General Public License as published by
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     8
 *
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    12
 * GNU Lesser General Public License for more details.
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    13
 *
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    14
 * You should have received a copy of the GNU Lesser General Public License
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    15
 * along with this program; if not, write to the Free Software
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    17
 */
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    18
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    19
#include <stdint.h>
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    20
#include "al.h"
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    21
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    22
#ifndef _OALB_INTERFACE_TYPES_H
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    23
#define _OALB_INTERFACE_TYPES_H
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    24
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    25
enum al_fade_enum {AL_FADE_IN, AL_FADE_OUT};
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    26
typedef enum al_fade_enum al_fade_t;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    27
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    28
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    29
// data type to handle which source source is playing what
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    30
#pragma pack(1)
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    31
typedef struct _al_sound_t {
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    32
    const char *filename;       // name of the sound file
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    33
    ALuint buffer;              // actual sound content
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    34
    uint32_t source_index;      // index of the associated source
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    35
    ALboolean is_used;          // tells if the element can be overwritten
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    36
} al_sound_t;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    37
#pragma pack()
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    38
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    39
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    40
// data type for passing data between threads
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    41
#pragma pack(1)
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    42
typedef struct _fade_t {
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    43
    uint32_t index;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    44
    uint16_t quantity;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    45
    al_fade_t type;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    46
} fade_t;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    47
#pragma pack()
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    48
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    49
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    50
// data type for WAV header
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    51
#pragma pack(1)
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    52
typedef struct _WAV_header_t {
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    53
    uint32_t ChunkID;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    54
    uint32_t ChunkSize;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    55
    uint32_t Format;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    56
    uint32_t Subchunk1ID;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    57
    uint32_t Subchunk1Size;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    58
    uint16_t AudioFormat;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    59
    uint16_t NumChannels;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    60
    uint32_t SampleRate;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    61
    uint32_t ByteRate;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    62
    uint16_t BlockAlign;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    63
    uint16_t BitsPerSample;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    64
    uint32_t Subchunk2ID;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    65
    uint32_t Subchunk2Size;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    66
} WAV_header_t;
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    67
#pragma pack()
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    68
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    69
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    70
#ifdef __CPLUSPLUS
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    71
}
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    72
#endif
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    73
34fe2149f75d Engine:
smaxx
parents: 3529
diff changeset
    74
#endif /*_OALB_INTERFACE_TYPES_H*/