openalbridge/globals.h
author nemo
Tue, 30 Mar 2010 13:33:01 +0000
changeset 3173 909b28b1b61a
parent 2529 51e5df1c8462
permissions -rw-r--r--
This map has always been broken. This variant makes it slightly less broken (although something changed on the ceiling might prevent hiding on pixels on the slope). What will finally fix it is either moving nets closer together or adding angle bounce to hedgehogs or some other layout that prevents hiding.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2529
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     1
/*
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     2
 * OpenAL Bridge - a simple portable library for OpenAL interface
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     3
 * Copyright (c) 2009 Vittorio Giovara <vittorio.giovara@gmail.com>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     4
 *
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     6
 * it under the terms of the GNU Lesser General Public License as published by
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     8
 *
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    12
 * GNU Lesser General Public License for more details.
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    13
 *
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    14
 * You should have received a copy of the GNU Lesser General Public License
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    17
 */
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    18
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    19
#ifndef _OALB_GLOBALS_H
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    20
#define _OALB_GLOBALS_H
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    21
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    22
#include <stdio.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    23
#include <stdlib.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    24
#include <stdint.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    25
#include <stdarg.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    26
#include <string.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    27
#include <errno.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    28
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    29
#ifndef _WIN32
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    30
#include <pthread.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    31
#include <syslog.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    32
#else
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    33
#include <process.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    34
#define syslog(x,y) fprintf(stderr,y)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    35
#define LOG_INFO 6
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    36
#define LOG_ERR 3
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    37
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    38
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    39
#include "al.h"
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    40
#include "errlib.h"
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    41
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    42
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    43
/*control debug verbosity*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    44
#ifdef TRACE
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    45
#ifndef DEBUG
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    46
#define DEBUG
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    47
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    48
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    49
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    50
/** 1.0 02/03/10 - Defines cross-platform sleep, usleep, etc. [Wu Yongwei] **/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    51
#ifndef _SLEEP_H
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    52
#define _SLEEP_H
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    53
#ifdef _WIN32
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    54
# if defined(_NEED_SLEEP_ONLY) && (defined(_MSC_VER) || defined(__MINGW32__))
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    55
#  include <stdlib.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    56
#  define sleep(t) _sleep((t) * 1000)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    57
# else
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    58
#  define WIN32_LEAN_AND_MEAN
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    59
#  include <windows.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    60
#  define sleep(t)  Sleep((t) * 1000)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    61
# endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    62
# ifndef _NEED_SLEEP_ONLY
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    63
#  define msleep(t) Sleep(t)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    64
#  define usleep(t) Sleep((t) / 1000)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    65
# endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    66
#else
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    67
# include <unistd.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    68
# ifndef _NEED_SLEEP_ONLY
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    69
#  define msleep(t) usleep((t) * 1000)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    70
# endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    71
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    72
#endif /* _SLEEP_H */
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    73
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    74
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    75
/* check compiler requirements */    /*FIXME*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    76
#if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    77
#warning __BIG_ENDIAN__ or __LITTLE_ENDIAN__ not found, going to set __LITTLE_ENDIAN__ as default
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    78
#define __LITTLE_ENDIAN__ 1
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    79
//#error Do not know the endianess of this architecture
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    80
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    81
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    82
/* use byteswap macros from the host system, hopefully optimized ones ;-) 
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    83
 * or define our own version, simple, stupid, straight-forward... */
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    84
#ifdef HAVE_BYTESWAP_H
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    85
#include <byteswap.h>
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    86
#else        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    87
#define bswap_16(x)	((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8))
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    88
#define bswap_32(x)	((((x) & 0xFF000000) >> 24) | (((x) & 0x00FF0000) >> 8)  | \
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    89
(((x) & 0x0000FF00) << 8)  | (((x) & 0x000000FF) << 24) )
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    90
#endif /* HAVE_BYTESWAP_H */
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    91
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    92
/* swap numbers accordingly to architecture automatically */
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    93
#ifdef __LITTLE_ENDIAN__
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    94
#define ENDIAN_LITTLE_32(x) x
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    95
#define ENDIAN_BIG_32(x)    bswap_32(x)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    96
#define ENDIAN_LITTLE_16(x) x
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    97
#define ENDIAN_BIG_16(x)    bswap_16(x)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    98
#elif __BIG_ENDIAN__
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
    99
#define ENDIAN_LITTLE_32(x) bswap_32(x)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   100
#define ENDIAN_BIG_32(x)    x
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   101
#define ENDIAN_LITTLE_16(x) bswap_16(x)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   102
#define ENDIAN_BIG_16(x)    x    
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   103
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   104
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   105
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   106
#ifdef __CPLUSPLUS
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   107
extern "C" {
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   108
#endif 
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   109
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   110
        /*data type for WAV header*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   111
#pragma pack(1)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   112
        typedef struct _WAV_header_t {
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   113
                uint32_t ChunkID;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   114
                uint32_t ChunkSize;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   115
                uint32_t Format;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   116
                uint32_t Subchunk1ID;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   117
                uint32_t Subchunk1Size;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   118
                uint16_t AudioFormat;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   119
                uint16_t NumChannels;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   120
                uint32_t SampleRate;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   121
                uint32_t ByteRate;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   122
                uint16_t BlockAlign;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   123
                uint16_t BitsPerSample;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   124
                uint32_t Subchunk2ID;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   125
                uint32_t Subchunk2Size;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   126
        } WAV_header_t;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   127
#pragma pack()
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   128
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   129
        /*data type for passing data between threads*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   130
#pragma pack(1)
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   131
        typedef struct _fade_t {
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   132
                uint32_t index;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   133
                uint16_t quantity;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   134
        } fade_t;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   135
#pragma pack()
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   136
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   137
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   138
        /*file format defines*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   139
#define OGG_FILE_FORMAT 0x4F676753
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   140
#define WAV_FILE_FORMAT 0x52494646
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   141
#define WAV_HEADER_SUBCHUNK2ID 0x64617461
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   142
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   143
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   144
        /*other defines*/
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   145
#define FADE_IN  0
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   146
#define FADE_OUT 1
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   147
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   148
        char *prog;
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   149
        
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   150
#ifdef __CPLUSPLUS
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   151
}
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   152
#endif
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   153
51e5df1c8462 restore openalbridge to r2489
koda
parents:
diff changeset
   154
#endif /*_OALB_GLOBALS_H*/