compressors: added mkup_gain reset, fixed smooth_only
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / synthesizer / synthesizer.h
index d8d10bd3070602d49799ae1c49ccb989f669afc6..79bc0356b2f361ca47b6cbb8cf494ff640ddef44 100644 (file)
 #include "guicast.h"
 #include "mutex.h"
 #include "pluginaclient.h"
-#include "synthesizer.inc"
 #include "vframe.inc"
 
 
+class Synth;
+class SynthWindow;
+
 // Frequency table for piano
 float keyboard_freqs[] =
 {
@@ -106,12 +108,13 @@ float keyboard_freqs[] =
 };
 
 #define MAX_FREQS 16
-#define TOTALOSCILLATORS 1
+#define MAX_OSCILLATORS 256
+#define OSCILLATORHEIGHT yS(40)
 #define TOTALNOTES ((int)(sizeof(keyboard_freqs) / sizeof(float)))
 #define MIDDLE_C 24
 #define FIRST_TITLE (MIDDLE_C - 12)
 #define LAST_TITLE (MIDDLE_C + 12)
-#define MARGIN yS(10)
+#define YMARGIN yS(10)
 
 #define SINE 0
 #define SAWTOOTH 1
@@ -251,7 +254,7 @@ public:
        SynthOscGUI *gui;
 };
 
-class SynthOscGUIFreq : public BC_IPot
+class SynthOscGUIFreq : public BC_FPot
 {
 public:
        SynthOscGUIFreq(Synth *synth, SynthOscGUI *gui, int y);
@@ -507,6 +510,24 @@ public:
        Synth *synth;
 };
 
+class SynthFreqPow1 : public BC_MenuItem
+{
+public:
+       SynthFreqPow1(Synth *synth);
+       ~SynthFreqPow1();
+       int handle_event();
+       Synth *synth;
+};
+
+class SynthFreqPow2 : public BC_MenuItem
+{
+public:
+       SynthFreqPow2(Synth *synth);
+       ~SynthFreqPow2();
+       int handle_event();
+       Synth *synth;
+};
+
 class SynthFreqEnum : public BC_MenuItem
 {
 public:
@@ -516,6 +537,15 @@ public:
        Synth *synth;
 };
 
+class SynthFreqMin : public BC_MenuItem
+{
+public:
+       SynthFreqMin(Synth *synth);
+       ~SynthFreqMin();
+       int handle_event();
+       Synth *synth;
+};
+
 class SynthFreqEven : public BC_MenuItem
 {
 public: