/[svn]/linuxsampler/trunk/src/common/global.h
ViewVC logotype

Contents of /linuxsampler/trunk/src/common/global.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 724 - (show annotations) (download) (as text)
Mon Jul 25 09:28:00 2005 UTC (18 years, 8 months ago) by iliev
File MIME type: text/x-c++hdr
File size: 5199 byte(s)
- Fixed some typos

1 /***************************************************************************
2 * *
3 * LinuxSampler - modular, streaming capable sampler *
4 * *
5 * Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck *
6 * Copyright (C) 2005 Christian Schoenebeck *
7 * *
8 * This program is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation; either version 2 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * This program is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this program; if not, write to the Free Software *
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
21 * MA 02111-1307 USA *
22 ***************************************************************************/
23
24 // All application global declarations are defined here.
25
26 #ifndef __GLOBAL_H__
27 #define __GLOBAL_H__
28
29 #include <stdlib.h>
30 #include <stdint.h>
31 #include <stdio.h>
32
33 #include <string>
34 #include <sstream>
35
36 #ifdef HAVE_CONFIG_H
37 # include <config.h>
38 #endif
39
40 // Make sure all mandatory configuration macros are defined.
41 // We don't care about optional configuration macros though.
42 #ifndef CONFIG_MAX_PITCH
43 # error "Configuration macro CONFIG_MAX_PITCH not defined!"
44 #endif // CONFIG_MAX_PITCH
45 #ifndef CONFIG_MAX_EVENTS_PER_FRAGMENT
46 # error "Configuration macro CONFIG_MAX_EVENTS_PER_FRAGMENT not defined!"
47 #endif // CONFIG_MAX_EVENTS_PER_FRAGMENT
48 #ifndef CONFIG_EG_BOTTOM
49 # error "Configuration macro CONFIG_EG_BOTTOM not defined!"
50 #endif // CONFIG_EG_BOTTOM
51 #ifndef CONFIG_EG_MIN_RELEASE_TIME
52 # error "Configuration macro CONFIG_EG_MIN_RELEASE_TIME not defined!"
53 #endif // CONFIG_EG_MIN_RELEASE_TIME
54 #ifndef CONFIG_REFILL_STREAMS_PER_RUN
55 # error "Configuration macro CONFIG_REFILL_STREAMS_PER_RUN not defined!"
56 #endif // CONFIG_REFILL_STREAMS_PER_RUN
57 #ifndef CONFIG_STREAM_MIN_REFILL_SIZE
58 # error "Configuration macro CONFIG_STREAM_MIN_REFILL_SIZE not defined!"
59 #endif // CONFIG_STREAM_MIN_REFILL_SIZE
60 #ifndef CONFIG_STREAM_MAX_REFILL_SIZE
61 # error "Configuration macro CONFIG_STREAM_MAX_REFILL_SIZE not defined!"
62 #endif // CONFIG_STREAM_MAX_REFILL_SIZE
63 #ifndef CONFIG_STREAM_BUFFER_SIZE
64 # error "Configuration macro CONFIG_STREAM_BUFFER_SIZE not defined!"
65 #endif // CONFIG_STREAM_BUFFER_SIZE
66 #ifndef CONFIG_MAX_STREAMS
67 # error "Configuration macro CONFIG_MAX_STREAMS not defined!"
68 #endif // CONFIG_MAX_STREAMS
69 #ifndef CONFIG_MAX_VOICES
70 # error "Configuration macro CONFIG_MAX_VOICES not defined!"
71 #endif // CONFIG_MAX_VOICES
72 #ifndef CONFIG_VOICE_STEAL_ALGO
73 # error "Configuration macro CONFIG_VOICE_STEAL_ALGO not defined!"
74 #endif // CONFIG_VOICE_STEAL_ALGO
75 #ifndef CONFIG_SYSEX_BUFFER_SIZE
76 # error "Configuration macro CONFIG_SYSEX_BUFFER_SIZE not defined!"
77 #endif // CONFIG_SYSEX_BUFFER_SIZE
78 #ifndef CONFIG_FILTER_UPDATE_STEPS
79 # error "Configuration macro CONFIG_FILTER_UPDATE_STEPS not defined!"
80 #endif // CONFIG_FILTER_UPDATE_STEPS
81 #ifndef CONFIG_FILTER_CUTOFF_MIN
82 # error "Configuration macro CONFIG_FILTER_CUTOFF_MIN not defined!"
83 #endif // CONFIG_FILTER_CUTOFF_MIN
84 #ifndef CONFIG_FILTER_CUTOFF_MAX
85 # error "Configuration macro CONFIG_FILTER_CUTOFF_MAX not defined!"
86 #endif // CONFIG_FILTER_CUTOFF_MAX
87
88 #if CONFIG_DEBUG_LEVEL > 0
89 # define dmsg(debuglevel,x) if (CONFIG_DEBUG_LEVEL >= debuglevel) {printf x; fflush(stdout);}
90 #else
91 # define dmsg(debuglevel,x)
92 #endif // CONFIG_DEBUG_LEVEL > 0
93
94 #define EMMS __asm__ __volatile__ ("emms" ::: "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)", "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7")
95
96 /// defines globally the bit depth of used samples
97 typedef int16_t sample_t;
98
99 typedef std::string String;
100
101 /**
102 * Whether a function / method call was successful, or if warnings or even an
103 * error occured.
104 */
105 enum result_type_t {
106 result_type_success,
107 result_type_warning,
108 result_type_error
109 };
110
111 /**
112 * Used whenever a detailed description of the result of a function / method
113 * call is needed.
114 */
115 struct result_t {
116 result_type_t type; ///< success, warning or error
117 int code; ///< warning or error code
118 String message; ///< detailed warning or error message
119 };
120
121 template<class T> inline String ToString(T o) {
122 std::stringstream ss;
123 ss << o;
124 return ss.str();
125 }
126
127 #endif // __GLOBAL_H__

  ViewVC Help
Powered by ViewVC