18 #ifndef MT32EMU_PARTIAL_H 19 #define MT32EMU_PARTIAL_H 22 #include "internals.h" 24 #include "Structures.h" 26 #include "LA32WaveGenerator.h" 27 #include "LA32FloatWaveGenerator.h" 37 struct ControlROMPCMStruct;
43 const int partialIndex;
51 Bit32s leftPanValue, rightPanValue;
55 int structurePosition;
84 Bit32u getCutoffValue();
86 template <
class Sample,
class LA32PairImpl>
87 bool doProduceOutput(Sample *leftBuf, Sample *rightBuf, Bit32u length, LA32PairImpl *la32PairImpl);
88 bool canProduceOutput();
89 template <
class LA32PairImpl>
90 bool generateNextSample(LA32PairImpl *la32PairImpl);
91 void produceAndMixSample(IntSample *&leftBuf, IntSample *&rightBuf,
LA32IntPartialPair *la32IntPair);
92 void produceAndMixSample(FloatSample *&leftBuf, FloatSample *&rightBuf,
LA32FloatPartialPair *la32FloatPair);
100 int debugGetPartialNum()
const;
101 Bit32u debugGetSampleNum()
const;
103 int getOwnerPart()
const;
104 const Poly *getPoly()
const;
105 bool isActive()
const;
106 void activate(
int part);
107 void deactivate(
void);
110 void startDecayAll();
112 bool isRingModulatingNoMix()
const;
113 bool hasRingModulatingSlave()
const;
114 bool isRingModulatingSlave()
const;
117 Synth *getSynth()
const;
125 bool produceOutput(IntSample *leftBuf, IntSample *rightBuf, Bit32u length);
126 bool produceOutput(FloatSample *leftBuf, FloatSample *rightBuf, Bit32u length);
131 #endif // #ifndef MT32EMU_PARTIAL_H Definition: LA32WaveGenerator.h:230
Definition: LA32WaveGenerator.h:206
Definition: Structures.h:231
Definition: Structures.h:238
Definition: Structures.h:246
Definition: LA32Ramp.h:26
Definition: Structures.h:143
Definition: LA32FloatWaveGenerator.h:97