1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
|
#ifndef MODULARSYNTH_H
#define MODULARSYNTH_H
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <qwidget.h>
#include <qstring.h>
#include <qslider.h>
#include <qcheckbox.h>
#include <qlabel.h>
#include <qlist.h>
#include <qframe.h>
#include <qmessagebox.h>
#include <qmainwindow.h>
#include <qsocketnotifier.h>
#include <qpopupmenu.h>
#include <qscrollview.h>
#include <qlistview.h>
#include <qpoint.h>
#include <qcolor.h>
#include <alsa/asoundlib.h>
#include "main.h"
#include "synthdata.h"
#include "module.h"
#include "port.h"
#include "m_vco.h"
#include "m_vca.h"
#include "m_delay.h"
#include "m_seq.h"
#include "m_env.h"
#include "m_vcenv.h"
#include "m_vcenv2.h"
#include "m_advenv.h"
#include "m_mcv.h"
#include "m_advmcv.h"
#include "m_scmcv.h"
#include "m_ringmod.h"
#include "m_mix.h"
#include "m_stereomix.h"
#include "m_pcmout.h"
#include "m_pcmin.h"
#include "m_wavout.h"
#include "m_lfo.h"
#include "m_noise.h"
#include "m_ladspa.h"
#include "m_vcf.h"
#include "m_inv.h"
#include "m_amp.h"
#include "m_ad.h"
#include "m_vquant.h"
#include "m_conv.h"
#include "m_cvs.h"
#include "m_vcswitch.h"
#include "m_slew.h"
#include "m_sh.h"
#include "m_vcpanning.h"
#include "m_midiout.h"
#include "m_scope.h"
#include "m_spectrum.h"
#include "m_vcorgan.h"
#include "m_dynamicwaves.h"
#include "m_quantizer.h"
#include "m_scquantizer.h"
#include "m_function.h"
#include "m_vcdoubledecay.h"
#include "m_mphlfo.h"
#include "midiwidget.h"
#include "guiwidget.h"
#include "prefwidget.h"
#include "textedit.h"
#include "ladspadialog.h"
enum connectorStyleType {CONNECTOR_STRAIGHT, CONNECTOR_BEZIER};
class ModularSynth : public QScrollView
{
Q_OBJECT
private:
QMessageBox *aboutWidget;
QMainWindow *mainWindow;
QList<Module> listModule;
QList<TextEdit> listTextEdit;
QString presetPath, savePath, rcPath;
connectorStyleType connectorStyle;
bool firstPort;
Port *connectingPort[2];
QSocketNotifier *seqNotifier;
LadspaDialog *ladspaDialog;
MidiWidget *midiWidget;
GuiWidget *guiWidget;
PrefWidget *prefWidget;
QPopupMenu *contextMenu;
bool loadingPatch;
const char *pcmname;
QColor colorBackground, colorModuleBackground, colorModuleBorder, colorModuleFont;
int fsamp;
int frsize;
int nfrags;
int ncapt;
int nplay;
int portid;
int clientid;
public:
SynthData *synthdata;
private:
void initPorts(Module *m);
void initNewModule(Module *m);
snd_pcm_t *open_pcm(bool openCapture);
snd_seq_t *open_seq();
int initSeqNotifier();
void newM_mix(int in_channels);
void newM_function(int functionCount);
void newM_stereomix(int in_channels);
void newM_seq(int seqLen);
void newM_vcorgan(int oscCount);
void newM_dynamicwaves(int oscCount);
void newM_ad(int outCount);
void new_textEdit(int x, int y, int w, int h);
void showContextMenu(QPoint pos);
public:
ModularSynth (QWidget* parent, const char *pcmname, int fsamp, int frsize, int nfrags,
int ncapt, int nplay, int poly, float edge);
~ModularSynth();
virtual QSize sizeHint() const;
virtual QSizePolicy sizePolicy() const;
int go(bool withJack);
int setPresetPath(QString name);
int setSavePath(QString name);
protected:
void viewportPaintEvent(QPaintEvent *pe);
virtual void mousePressEvent (QMouseEvent* );
virtual void mouseReleaseEvent (QMouseEvent* );
public slots:
void displayAbout();
void displayMidiController();
void displayParameterView();
void displayPreferences();
void displayLadspaPlugins();
void midiAction(int fd);
void startSynth();
void stopSynth();
void new_textEdit();
void newM_delay();
void newM_seq_8();
void newM_seq_12();
void newM_seq_16();
void newM_seq_24();
void newM_seq_32();
void newM_env();
void newM_vcenv();
void newM_vcenv2();
void newM_vcdoubledecay();
void newM_vcpanning();
void newM_advenv();
void newM_mcv();
void newM_advmcv();
void newM_scmcv();
void newM_scmcv(QString *p_scalaName);
void newM_vco();
void newM_vca_lin();
void newM_vca_exp();
void newM_vcf();
void newM_lfo();
void newM_mphlfo();
void newM_noise();
void newM_ringmod();
void newM_inv();
void newM_amp();
void newM_ad_2();
void newM_ad_4();
void newM_ad_6();
void newM_vquant();
void newM_conv();
void newM_cvs();
void newM_slew();
void newM_quantizer();
void newM_scquantizer(QString *p_scalaName);
void newM_scquantizer();
void newM_mix_2();
void newM_mix_4();
void newM_mix_8();
void newM_function_1();
void newM_function_2();
void newM_function_4();
void newM_stereomix_2();
void newM_stereomix_4();
void newM_stereomix_8();
void newM_ladspa(int p_ladspaDesFuncIndex, int n, bool p_newLadspaPoly, bool p_extCtrlPorts);
void newM_pcmout();
void newM_pcmin();
void newM_wavout();
void newM_sh();
void newM_midiout();
void newM_vcswitch();
void newM_scope();
void newM_spectrum();
void newM_vcorgan_4();
void newM_vcorgan_6();
void newM_vcorgan_8();
void newM_dynamicwaves_4();
void newM_dynamicwaves_6();
void newM_dynamicwaves_8();
void moveModule(QPoint pos);
void moveTextEdit(QPoint pos);
void resizeTextEdit(QPoint pos);
void portSelected();
void updatePortConnections();
void deleteModule();
void deleteModule(Module *m);
void deleteTextEdit();
void deleteTextEdit(TextEdit *te);
void clearConfig();
void load(QString *presetName);
void load();
void save();
void loadColors();
void saveColors();
void allVoicesOff();
void cleanUpSynth();
void colorBackgroundClicked();
void colorModuleBackgroundClicked();
void colorModuleBorderClicked();
void colorModuleFontClicked();
void colorDefaultClicked();
void colorCableClicked();
void colorJackClicked();
void refreshColors();
void updateColors();
};
#endif
|