Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 *	Machine dependent defines/includes for LAME.
3
 *
4
 *	Copyright (c) 1999 A.L. Faber
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Library General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
14
 * Library General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Library General Public
17
 * License along with this library; if not, write to the
18
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19
 * Boston, MA 02111-1307, USA.
20
 */
21
 
22
#ifndef LAME_MACHINE_H
23
#define LAME_MACHINE_H
24
 
25
#include <stdio.h>
26
#include <memory.h>
27
 
28
#ifdef STDC_HEADERS
29
# include <stdlib.h>
30
# include <string.h>
31
#else
32
# ifndef HAVE_STRCHR
33
#  define strchr index
34
#  define strrchr rindex
35
# endif
36
char *strchr (), *strrchr ();
37
# ifndef HAVE_MEMCPY
38
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
39
#  define memmove(d, s, n) bcopy ((s), (d), (n))
40
# endif
41
#endif
42
 
43
#if  defined(__riscos__)  &&  defined(FPA10)
44
# include "ymath.h"
45
#else
46
# include <math.h>
47
#endif
48
 
49
#include <ctype.h>
50
 
51
#ifdef HAVE_ERRNO_H
52
# include <errno.h>
53
#endif
54
#ifdef HAVE_FCNTL_H
55
# include <fcntl.h>
56
#endif
57
 
58
#if defined(macintosh)
59
# include <types.h>
60
# include <stat.h>
61
#else
62
# include <sys/types.h>
63
# include <sys/stat.h>
64
#endif
65
 
66
/* 
67
 * 3 different types of pow() functions:
68
 *   - table lookup
69
 *   - pow()
70
 *   - exp()   on some machines this is claimed to be faster than pow()
71
 */
72
 
73
#define POW20(x)  pow20[x]
74
//#define POW20(x)  pow(2.0,((double)(x)-210)*.25)
75
//#define POW20(x)  exp( ((double)(x)-210)*(.25*LOG2) )
76
 
77
#define IPOW20(x)  ipow20[x]
78
//#define IPOW20(x)  exp( -((double)(x)-210)*.1875*LOG2 )
79
//#define IPOW20(x)  pow(2.0,-((double)(x)-210)*.1875)
80
 
81
 
82
/* in case this is used without configure */
83
#ifndef inline
84
# define inline
85
#endif
86
/* compatibility */
87
#define INLINE inline
88
 
89
#if defined(_MSC_VER)
90
# undef inline
91
# define inline _inline
92
#elif defined(__SASC) || defined(__GNUC__)
93
/* if __GNUC__ we always want to inline, not only if the user requests it */
94
# undef inline
95
# define inline __inline
96
#endif
97
 
98
#if    defined(_MSC_VER)
99
# pragma warning( disable : 4244 )
100
//# pragma warning( disable : 4305 )
101
#endif
102
 
103
/*
104
 * FLOAT    for variables which require at least 32 bits
105
 * FLOAT8   for variables which require at least 64 bits
106
 *
107
 * On some machines, 64 bit will be faster than 32 bit.  Also, some math
108
 * routines require 64 bit float, so setting FLOAT=float will result in a
109
 * lot of conversions.
110
 */
111
 
112
#if ( defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) )
113
# define WIN32_LEAN_AND_MEAN
114
# include <windows.h>
115
#else
116
# ifndef FLOAT
117
typedef float   FLOAT;
118
# endif
119
#endif
120
 
121
#ifndef FLOAT8  /* NOTE: RH: 7/00:  if FLOAT8=float, it breaks resampling and VBR code */
122
typedef double  FLOAT8;
123
#endif
124
 
125
/* Various integer types */
126
 
127
#if   defined _WIN32 && !defined __CYGWIN__
128
typedef unsigned char	u_char;
129
#elif defined __DECALPHA__
130
// do nothing
131
#elif defined OS_AMIGAOS
132
// do nothing
133
#elif defined __DJGPP__
134
typedef unsigned char	u_char;
135
#elif !defined __GNUC__  ||  defined __STRICT_ANSI__
136
typedef unsigned char	u_char;
137
#else
138
// do nothing
139
#endif
140
 
141
/* sample_t must be floating point, at least 32 bits */
142
typedef FLOAT     sample_t;
143
typedef sample_t  stereo_t [2];
144
 
145
#endif
146
 
147
/* end of machine.h */