/[svn]/linuxsampler/trunk/src/engines/gig/Synthesizer.cpp
ViewVC logotype

Annotation of /linuxsampler/trunk/src/engines/gig/Synthesizer.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2376 - (hide annotations) (download)
Thu Oct 4 18:09:26 2012 UTC (11 years, 6 months ago) by schoenebeck
File size: 8597 byte(s)
- don't use printf() for error messages

1 schoenebeck 320 /***************************************************************************
2     * *
3     * LinuxSampler - modular, streaming capable sampler *
4     * *
5     * Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck *
6 schoenebeck 2376 * Copyright (C) 2005 - 2012 Christian Schoenebeck *
7 schoenebeck 320 * *
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     #include <unistd.h>
25     #include <stdlib.h>
26     #include <stdio.h>
27    
28     #include "Synthesizer.h"
29    
30 persson 903 #define SYNTHESIZE(CHAN,LOOP,FILTER,INTERPOLATE,BITDEPTH24) \
31     Synthesizer<CHAN,LOOP,FILTER,INTERPOLATE,BITDEPTH24>::SynthesizeSubFragment( \
32 schoenebeck 770 pFinalParam, pLoop)
33 schoenebeck 320
34     namespace LinuxSampler { namespace gig {
35    
36 schoenebeck 770 void SynthesizeFragment_mode00(SynthesisParam* pFinalParam, Loop* pLoop) {
37 persson 903 SYNTHESIZE(MONO,0,0,0,0);
38 schoenebeck 738 }
39    
40 schoenebeck 770 void SynthesizeFragment_mode01(SynthesisParam* pFinalParam, Loop* pLoop) {
41 persson 903 SYNTHESIZE(MONO,0,0,1,0);
42 schoenebeck 320 }
43    
44 schoenebeck 770 void SynthesizeFragment_mode02(SynthesisParam* pFinalParam, Loop* pLoop) {
45 persson 903 SYNTHESIZE(MONO,0,1,0,0);
46 schoenebeck 320 }
47    
48 schoenebeck 770 void SynthesizeFragment_mode03(SynthesisParam* pFinalParam, Loop* pLoop) {
49 persson 903 SYNTHESIZE(MONO,0,1,1,0);
50 schoenebeck 320 }
51    
52 schoenebeck 770 void SynthesizeFragment_mode04(SynthesisParam* pFinalParam, Loop* pLoop) {
53 persson 903 SYNTHESIZE(MONO,1,0,0,0);
54 schoenebeck 320 }
55    
56 schoenebeck 770 void SynthesizeFragment_mode05(SynthesisParam* pFinalParam, Loop* pLoop) {
57 persson 903 SYNTHESIZE(MONO,1,0,1,0);
58 schoenebeck 320 }
59    
60 schoenebeck 770 void SynthesizeFragment_mode06(SynthesisParam* pFinalParam, Loop* pLoop) {
61 persson 903 SYNTHESIZE(MONO,1,1,0,0);
62 schoenebeck 320 }
63    
64 schoenebeck 770 void SynthesizeFragment_mode07(SynthesisParam* pFinalParam, Loop* pLoop) {
65 persson 903 SYNTHESIZE(MONO,1,1,1,0);
66 schoenebeck 320 }
67    
68 schoenebeck 770 void SynthesizeFragment_mode08(SynthesisParam* pFinalParam, Loop* pLoop) {
69 persson 903 SYNTHESIZE(STEREO,0,0,0,0);
70 schoenebeck 320 }
71    
72 schoenebeck 770 void SynthesizeFragment_mode09(SynthesisParam* pFinalParam, Loop* pLoop) {
73 persson 903 SYNTHESIZE(STEREO,0,0,1,0);
74 schoenebeck 320 }
75    
76 schoenebeck 770 void SynthesizeFragment_mode0a(SynthesisParam* pFinalParam, Loop* pLoop) {
77 persson 903 SYNTHESIZE(STEREO,0,1,0,0);
78 schoenebeck 320 }
79    
80 schoenebeck 770 void SynthesizeFragment_mode0b(SynthesisParam* pFinalParam, Loop* pLoop) {
81 persson 903 SYNTHESIZE(STEREO,0,1,1,0);
82 schoenebeck 320 }
83    
84 schoenebeck 770 void SynthesizeFragment_mode0c(SynthesisParam* pFinalParam, Loop* pLoop) {
85 persson 903 SYNTHESIZE(STEREO,1,0,0,0);
86 schoenebeck 320 }
87    
88 schoenebeck 770 void SynthesizeFragment_mode0d(SynthesisParam* pFinalParam, Loop* pLoop) {
89 persson 903 SYNTHESIZE(STEREO,1,0,1,0);
90 schoenebeck 320 }
91    
92 schoenebeck 770 void SynthesizeFragment_mode0e(SynthesisParam* pFinalParam, Loop* pLoop) {
93 persson 903 SYNTHESIZE(STEREO,1,1,0,0);
94 schoenebeck 320 }
95    
96 schoenebeck 770 void SynthesizeFragment_mode0f(SynthesisParam* pFinalParam, Loop* pLoop) {
97 persson 903 SYNTHESIZE(STEREO,1,1,1,0);
98 schoenebeck 320 }
99    
100 persson 903 void SynthesizeFragment_mode10(SynthesisParam* pFinalParam, Loop* pLoop) {
101     SYNTHESIZE(MONO,0,0,0,1);
102     }
103    
104     void SynthesizeFragment_mode11(SynthesisParam* pFinalParam, Loop* pLoop) {
105     SYNTHESIZE(MONO,0,0,1,1);
106     }
107    
108     void SynthesizeFragment_mode12(SynthesisParam* pFinalParam, Loop* pLoop) {
109     SYNTHESIZE(MONO,0,1,0,1);
110     }
111    
112     void SynthesizeFragment_mode13(SynthesisParam* pFinalParam, Loop* pLoop) {
113     SYNTHESIZE(MONO,0,1,1,1);
114     }
115    
116     void SynthesizeFragment_mode14(SynthesisParam* pFinalParam, Loop* pLoop) {
117     SYNTHESIZE(MONO,1,0,0,1);
118     }
119    
120     void SynthesizeFragment_mode15(SynthesisParam* pFinalParam, Loop* pLoop) {
121     SYNTHESIZE(MONO,1,0,1,1);
122     }
123    
124     void SynthesizeFragment_mode16(SynthesisParam* pFinalParam, Loop* pLoop) {
125     SYNTHESIZE(MONO,1,1,0,1);
126     }
127    
128     void SynthesizeFragment_mode17(SynthesisParam* pFinalParam, Loop* pLoop) {
129     SYNTHESIZE(MONO,1,1,1,1);
130     }
131    
132     void SynthesizeFragment_mode18(SynthesisParam* pFinalParam, Loop* pLoop) {
133     SYNTHESIZE(STEREO,0,0,0,1);
134     }
135    
136     void SynthesizeFragment_mode19(SynthesisParam* pFinalParam, Loop* pLoop) {
137     SYNTHESIZE(STEREO,0,0,1,1);
138     }
139    
140     void SynthesizeFragment_mode1a(SynthesisParam* pFinalParam, Loop* pLoop) {
141     SYNTHESIZE(STEREO,0,1,0,1);
142     }
143    
144     void SynthesizeFragment_mode1b(SynthesisParam* pFinalParam, Loop* pLoop) {
145     SYNTHESIZE(STEREO,0,1,1,1);
146     }
147    
148     void SynthesizeFragment_mode1c(SynthesisParam* pFinalParam, Loop* pLoop) {
149     SYNTHESIZE(STEREO,1,0,0,1);
150     }
151    
152     void SynthesizeFragment_mode1d(SynthesisParam* pFinalParam, Loop* pLoop) {
153     SYNTHESIZE(STEREO,1,0,1,1);
154     }
155    
156     void SynthesizeFragment_mode1e(SynthesisParam* pFinalParam, Loop* pLoop) {
157     SYNTHESIZE(STEREO,1,1,0,1);
158     }
159    
160     void SynthesizeFragment_mode1f(SynthesisParam* pFinalParam, Loop* pLoop) {
161     SYNTHESIZE(STEREO,1,1,1,1);
162     }
163    
164 schoenebeck 738 void* GetSynthesisFunction(int SynthesisMode) {
165 persson 903 // Mode Bits: (PROF),(IMPL),24BIT,CHAN,LOOP,FILT,INTERP
166 schoenebeck 320 switch (SynthesisMode) {
167 schoenebeck 738 case 0x00: return (void*) SynthesizeFragment_mode00;
168 senkov 325 case 0x01: return (void*) SynthesizeFragment_mode01;
169 schoenebeck 738 case 0x02: return (void*) SynthesizeFragment_mode02;
170 senkov 325 case 0x03: return (void*) SynthesizeFragment_mode03;
171     case 0x04: return (void*) SynthesizeFragment_mode04;
172     case 0x05: return (void*) SynthesizeFragment_mode05;
173     case 0x06: return (void*) SynthesizeFragment_mode06;
174     case 0x07: return (void*) SynthesizeFragment_mode07;
175 schoenebeck 738 case 0x08: return (void*) SynthesizeFragment_mode08;
176 senkov 325 case 0x09: return (void*) SynthesizeFragment_mode09;
177 schoenebeck 738 case 0x0a: return (void*) SynthesizeFragment_mode0a;
178 senkov 325 case 0x0b: return (void*) SynthesizeFragment_mode0b;
179     case 0x0c: return (void*) SynthesizeFragment_mode0c;
180     case 0x0d: return (void*) SynthesizeFragment_mode0d;
181     case 0x0e: return (void*) SynthesizeFragment_mode0e;
182     case 0x0f: return (void*) SynthesizeFragment_mode0f;
183 persson 903 case 0x10: return (void*) SynthesizeFragment_mode10;
184     case 0x11: return (void*) SynthesizeFragment_mode11;
185     case 0x12: return (void*) SynthesizeFragment_mode12;
186     case 0x13: return (void*) SynthesizeFragment_mode13;
187     case 0x14: return (void*) SynthesizeFragment_mode14;
188     case 0x15: return (void*) SynthesizeFragment_mode15;
189     case 0x16: return (void*) SynthesizeFragment_mode16;
190     case 0x17: return (void*) SynthesizeFragment_mode17;
191     case 0x18: return (void*) SynthesizeFragment_mode18;
192     case 0x19: return (void*) SynthesizeFragment_mode19;
193     case 0x1a: return (void*) SynthesizeFragment_mode1a;
194     case 0x1b: return (void*) SynthesizeFragment_mode1b;
195     case 0x1c: return (void*) SynthesizeFragment_mode1c;
196     case 0x1d: return (void*) SynthesizeFragment_mode1d;
197     case 0x1e: return (void*) SynthesizeFragment_mode1e;
198     case 0x1f: return (void*) SynthesizeFragment_mode1f;
199 schoenebeck 320 default: {
200 schoenebeck 2376 std::cerr << "gig::Synthesizer: Invalid Synthesis Mode: " << SynthesisMode << std::endl << std::flush;
201 schoenebeck 320 exit(-1);
202     }
203     }
204     }
205    
206 schoenebeck 770 void RunSynthesisFunction(const int SynthesisMode, SynthesisParam* pFinalParam, Loop* pLoop) {
207     SynthesizeFragment_Fn* f = (SynthesizeFragment_Fn*) GetSynthesisFunction(SynthesisMode);
208     f(pFinalParam, pLoop);
209 senkov 325 }
210 schoenebeck 328
211 schoenebeck 320 }} // namespace LinuxSampler::gig

  ViewVC Help
Powered by ViewVC