Browse Source

Do not include auto-generated files

pull/1/head
falkTX 7 years ago
parent
commit
1ad5a1931d
32 changed files with 0 additions and 21470 deletions
  1. +0
    -2452
      zynaddsubfx/UI/ADnoteUI.cpp
  2. +0
    -308
      zynaddsubfx/UI/ADnoteUI.h
  3. +0
    -196
      zynaddsubfx/UI/BankUI.cpp
  4. +0
    -60
      zynaddsubfx/UI/BankUI.h
  5. +0
    -397
      zynaddsubfx/UI/ConfigUI.cpp
  6. +0
    -90
      zynaddsubfx/UI/ConfigUI.h
  7. +0
    -3024
      zynaddsubfx/UI/EffUI.cpp
  8. +0
    -318
      zynaddsubfx/UI/EffUI.h
  9. +0
    -1352
      zynaddsubfx/UI/EnvelopeUI.cpp
  10. +0
    -256
      zynaddsubfx/UI/EnvelopeUI.h
  11. +0
    -905
      zynaddsubfx/UI/FilterUI.cpp
  12. +0
    -161
      zynaddsubfx/UI/FilterUI.h
  13. +0
    -251
      zynaddsubfx/UI/LFOUI.cpp
  14. +0
    -44
      zynaddsubfx/UI/LFOUI.h
  15. +0
    -2547
      zynaddsubfx/UI/MasterUI.cpp
  16. +0
    -417
      zynaddsubfx/UI/MasterUI.h
  17. +0
    -449
      zynaddsubfx/UI/MicrotonalUI.cpp
  18. +0
    -79
      zynaddsubfx/UI/MicrotonalUI.h
  19. +0
    -1336
      zynaddsubfx/UI/OscilGenUI.cpp
  20. +0
    -260
      zynaddsubfx/UI/OscilGenUI.h
  21. +0
    -1444
      zynaddsubfx/UI/PADnoteUI.cpp
  22. +0
    -247
      zynaddsubfx/UI/PADnoteUI.h
  23. +0
    -2024
      zynaddsubfx/UI/PartUI.cpp
  24. +0
    -274
      zynaddsubfx/UI/PartUI.h
  25. +0
    -331
      zynaddsubfx/UI/PresetsUI.cpp
  26. +0
    -92
      zynaddsubfx/UI/PresetsUI.h
  27. +0
    -461
      zynaddsubfx/UI/ResonanceUI.cpp
  28. +0
    -91
      zynaddsubfx/UI/ResonanceUI.h
  29. +0
    -821
      zynaddsubfx/UI/SUBnoteUI.cpp
  30. +0
    -131
      zynaddsubfx/UI/SUBnoteUI.h
  31. +0
    -552
      zynaddsubfx/UI/VirKeyboard.cpp
  32. +0
    -100
      zynaddsubfx/UI/VirKeyboard.h

+ 0
- 2452
zynaddsubfx/UI/ADnoteUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 308
zynaddsubfx/UI/ADnoteUI.h View File

@@ -1,308 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ADnoteUI_h
#define ADnoteUI_h
#include <FL/Fl.H>
#include "../Params/ADnoteParameters.h"
#include "ResonanceUI.h"
#include "Fl_Osc_Slider.H"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include "Fl_Osc_Pane.H"
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Choice.H"
#include "Fl_Osc_Slider.H"
#include "Fl_Osc_VSlider.H"
#include "Fl_Oscilloscope.h"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "OscilGenUI.h"
#include "PresetsUI.h"

class PhaseSlider : public Fl_Osc_TSlider {
public:
PhaseSlider(int x,int y, int w, int h, const char *label=0)
;
void set_scope(Fl_Oscilloscope *newscope);
void OSC_value(int i);
void cb(void);
private:
Fl_Oscilloscope *oscope = NULL;
};
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>

class ADvoicelistitem : public Fl_Osc_Group {
Fl_Osc_Group* make_window();
Fl_Osc_Group *ADnoteVoiceListItem;
Fl_Osc_Group *voicelistitemgroup;
public:
Fl_Osc_VSlider *voicevolume;
Fl_Osc_Check *voiceresonanceenabled;
Fl_Osc_VSlider *voicelfofreq;
Fl_Osc_Dial *voicepanning;
Fl_Osc_Group *voiceoscil;
Fl_Osc_Output *detunevalueoutput;
Fl_Osc_Slider *voicedetune;
private:
void cb_voicedetune_i(Fl_Osc_Slider*, void*);
static void cb_voicedetune(Fl_Osc_Slider*, void*);
public:
Fl_Box *whitenoiselabel;
Fl_Box *pinknoiselabel;
private:
Fl_Osc_Check *voiceenabled;
void cb_voiceenabled_i(Fl_Osc_Check*, void*);
static void cb_voiceenabled(Fl_Osc_Check*, void*);
void cb_edit_i(Fl_Button*, void*);
static void cb_edit(Fl_Button*, void*);
public:
ADvoicelistitem(int x,int y, int w, int h, const char *label=0);
void init(int nvoice_, std::string loc_, Fl_Osc_Interface *osc_);
void refreshlist();
~ADvoicelistitem();
private:
int nvoice;
class Osc_IntModel *voice_phase;
class Osc_IntModel *sound_type;
class Osc_IntModel *ext_oscil;
Fl_Oscilloscope *oscil;
std::string loc;
};
#include <FL/Fl_Group.H>

class ADvoiceUI : public Fl_Group {
public:
Fl_Osc_Group* make_window();
Fl_Osc_Group *ADnoteVoiceParameters;
Fl_Group *voiceparametersgroup;
Fl_Group *voicemodegroup;
Fl_Group *voiceFMparametersgroup;
Fl_Group *modfrequency;
EnvelopeUI *voiceFMfreqenvgroup;
private:
void cb_On_i(Fl_Osc_Check*, void*);
static void cb_On(Fl_Osc_Check*, void*);
void cb__i(Fl_Osc_Slider*, void*);
static void cb_(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *fmdetunevalueoutput;
private:
void cb_Detune_i(Fl_Osc_Choice*, void*);
static void cb_Detune(Fl_Osc_Choice*, void*);
void cb_440Hz_i(Fl_Osc_Check*, void*);
static void cb_440Hz(Fl_Osc_Check*, void*);
public:
EnvelopeUI *voiceFMampenvgroup;
private:
void cb_On1_i(Fl_Osc_Check*, void*);
static void cb_On1(Fl_Osc_Check*, void*);
public:
Fl_Group *modoscil;
Fl_Osc_Group *fmoscil;
Fl_Button *changeFMoscilbutton;
private:
void cb_changeFMoscilbutton_i(Fl_Button*, void*);
static void cb_changeFMoscilbutton(Fl_Button*, void*);
public:
Fl_Osc_Choice *extFMoscil;
private:
void cb_extFMoscil_i(Fl_Osc_Choice*, void*);
static void cb_extFMoscil(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Choice *extMod;
private:
void cb_extMod_i(Fl_Osc_Choice*, void*);
static void cb_extMod(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Choice *mod_type;
private:
void cb_mod_type_i(Fl_Osc_Choice*, void*);
static void cb_mod_type(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_mod_type[];
public:
EnvelopeUI *voicefreqenvgroup;
private:
void cb_On2_i(Fl_Osc_Check*, void*);
static void cb_On2(Fl_Osc_Check*, void*);
public:
LFOUI *voicefreqlfogroup;
private:
void cb_On3_i(Fl_Osc_Check*, void*);
static void cb_On3(Fl_Osc_Check*, void*);
public:
Fl_Osc_Dial *bendadjdial;
Fl_Osc_Dial *offsethzdial;
private:
void cb_1_i(Fl_Osc_Slider*, void*);
static void cb_1(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *detunevalueoutput;
private:
void cb_440Hz1_i(Fl_Osc_Check*, void*);
static void cb_440Hz1(Fl_Osc_Check*, void*);
public:
Fl_Osc_Dial *fixedfreqetdial;
private:
void cb_Detune1_i(Fl_Osc_Choice*, void*);
static void cb_Detune1(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Group *voiceoscil;
Fl_Button *changevoiceoscilbutton;
private:
void cb_changevoiceoscilbutton_i(Fl_Button*, void*);
static void cb_changevoiceoscilbutton(Fl_Button*, void*);
public:
Fl_Osc_Choice *extoscil;
private:
void cb_extoscil_i(Fl_Osc_Choice*, void*);
static void cb_extoscil(Fl_Osc_Choice*, void*);
void cb_Frequency_i(Fl_Osc_Slider*, void*);
static void cb_Frequency(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *unisonspreadoutput;
EnvelopeUI *voiceampenvgroup;
private:
void cb_On4_i(Fl_Osc_Check*, void*);
static void cb_On4(Fl_Osc_Check*, void*);
public:
LFOUI *voiceamplfogroup;
private:
void cb_On5_i(Fl_Osc_Check*, void*);
static void cb_On5(Fl_Osc_Check*, void*);
public:
Fl_Group *voicefiltergroup;
EnvelopeUI *voicefilterenvgroup;
private:
void cb_On6_i(Fl_Osc_Check*, void*);
static void cb_On6(Fl_Osc_Check*, void*);
public:
LFOUI *voicefilterlfogroup;
private:
void cb_On7_i(Fl_Osc_Check*, void*);
static void cb_On7(Fl_Osc_Check*, void*);
public:
Fl_Group *activeVoiceID;
private:
void cb_2_i(Fl_Osc_Choice*, void*);
static void cb_2(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_[];
public:
Fl_Osc_Check *bypassfiltercheckbutton;
private:
void cb_On8_i(Fl_Osc_Check*, void*);
static void cb_On8(Fl_Osc_Check*, void*);
public:
Fl_Box *whitenoiselabel;
Fl_Box *pinknoiselabel;
Fl_Osc_Check *voiceonbutton;
private:
void cb_voiceonbutton_i(Fl_Osc_Check*, void*);
static void cb_voiceonbutton(Fl_Osc_Check*, void*);
public:
ADvoiceUI(int x,int y, int w, int h, const char *label=0);
void init(int nvoice_, std::string loc_, Fl_Osc_Interface *osc_);
~ADvoiceUI();
void change_voice(int nvoice_);
private:
int nvoice;
OscilEditor *oscedit;
Fl_Oscilloscope *osc;
Fl_Oscilloscope *oscFM;
std::string loc;
std::string base;
Fl_Osc_Interface *osc_i;
};
#include <FL/Fl_Counter.H>
#include <FL/Fl_Text_Display.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>

class ADnoteUI : public PresetsUI_ {
Fl_Osc_Window* make_window();
public:
Fl_Osc_Window *ADnoteGlobalParameters;
EnvelopeUI *freqenv;
Fl_Osc_Counter *octave;
Fl_Osc_Counter *coarsedet;
LFOUI *freqlfo;
Fl_Osc_Slider *detune;
private:
void cb_detune_i(Fl_Osc_Slider*, void*);
static void cb_detune(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *detunevalueoutput;
Fl_Osc_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Osc_Choice*, void*);
static void cb_detunetype(Fl_Osc_Choice*, void*);
void cb_relBW_i(Fl_Osc_Dial*, void*);
static void cb_relBW(Fl_Osc_Dial*, void*);
public:
Fl_Osc_VSlider *volume;
Fl_Osc_VSlider *vsns;
Fl_Osc_Dial *pan;
Fl_Osc_Dial *pstr;
Fl_Osc_Dial *pt;
Fl_Osc_Dial *pstc;
Fl_Osc_Dial *pvel;
EnvelopeUI *ampenv;
LFOUI *amplfo;
Fl_Osc_Check *rndgrp;
EnvelopeUI *filterenv;
LFOUI *filterlfo;
FilterUI *filterui;
Fl_Osc_Check *stereo;
private:
void cb_Show_i(Fl_Button*, void*);
static void cb_Show(Fl_Button*, void*);
void cb_Show1_i(Fl_Button*, void*);
static void cb_Show1(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Resonance_i(Fl_Button*, void*);
static void cb_Resonance(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Osc_Window *ADnoteVoice;
ADvoiceUI *advoice;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Counter *currentvoicecounter;
private:
void cb_currentvoicecounter_i(Fl_Counter*, void*);
static void cb_currentvoicecounter(Fl_Counter*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
void cb_Show2_i(Fl_Button*, void*);
static void cb_Show2(Fl_Button*, void*);
void cb_Show3_i(Fl_Button*, void*);
static void cb_Show3(Fl_Button*, void*);
public:
Fl_Osc_Window *ADnoteVoiceList;
private:
void cb_Close2_i(Fl_Button*, void*);
static void cb_Close2(Fl_Button*, void*);
void cb_Edit_i(Fl_Button*, void*);
static void cb_Edit(Fl_Button*, void*);
public:
ADnoteUI(std::string loc_, Fl_Osc_Interface *osc_);
~ADnoteUI();
void refresh();
private:
ResonanceUI *resui;
int nvoice;
ADvoicelistitem *voicelistitem[NUM_VOICES];
std::string loc;
Fl_Osc_Interface *osc;
};
#endif

+ 0
- 196
zynaddsubfx/UI/BankUI.cpp View File

@@ -1,196 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/BankUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void BankUI::cb_Close_i(Fl_Button*, void*) {
bankuiwindow->hide();
}
void BankUI::cb_Close(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void BankUI::cb_New_i(Fl_Button*, void*) {
const char *dirname;

dirname=fl_input("New empty Bank:");
if (dirname==NULL) return;

osc->write("/bank/newbank", "s", dirname);
refreshmainwindow();
}
void BankUI::cb_New(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_New_i(o,v);
}

void BankUI::cb_banklist_i(BankList*, void*) {
refreshmainwindow();
}
void BankUI::cb_banklist(BankList* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_banklist_i(o,v);
}

void BankUI::cb_Refresh_i(Fl_Button*, void*) {
rescan_for_banks();
banklist->value(0);
}
void BankUI::cb_Refresh(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Refresh_i(o,v);
}

void BankUI::cb_Search_i(Fl_Input* o, void*) {
std::string str = o->value();
update_search(str);
}
void BankUI::cb_Search(Fl_Input* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Search_i(o,v);
}

Fl_Osc_Window* BankUI::make_window() {
{ bankuiwindow = new Fl_Osc_Window(785, 575, "Bank");
bankuiwindow->box(FL_FLAT_BOX);
bankuiwindow->color(FL_BACKGROUND_COLOR);
bankuiwindow->selection_color(FL_BACKGROUND_COLOR);
bankuiwindow->labeltype(FL_NO_LABEL);
bankuiwindow->labelfont(0);
bankuiwindow->labelsize(14);
bankuiwindow->labelcolor(FL_FOREGROUND_COLOR);
bankuiwindow->user_data((void*)(this));
bankuiwindow->align(Fl_Align(FL_ALIGN_TOP));
bankuiwindow->when(FL_WHEN_RELEASE);
{ new Fl_Box(0, 0, 0, 0);
bankuiwindow->init(osc, "/");
} // Fl_Box* o
{ Fl_Button* o = new Fl_Button(705, 546, 70, 24, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ bankview = new BankView(5, 34, 772, 491);
bankview->box(FL_ENGRAVED_FRAME);
bankview->color(FL_BACKGROUND_COLOR);
bankview->selection_color(FL_BACKGROUND_COLOR);
bankview->labeltype(FL_NORMAL_LABEL);
bankview->labelfont(0);
bankview->labelsize(14);
bankview->labelcolor(FL_FOREGROUND_COLOR);
bankview->align(Fl_Align(FL_ALIGN_TOP));
bankview->when(FL_WHEN_RELEASE);
bankview->end();
} // BankView* bankview
{ BankViewControls* o = modeselect = new BankViewControls(5, 528, 425, 42);
modeselect->box(FL_ENGRAVED_BOX);
modeselect->color(FL_BACKGROUND_COLOR);
modeselect->selection_color(FL_BACKGROUND_COLOR);
modeselect->labeltype(FL_NORMAL_LABEL);
modeselect->labelfont(0);
modeselect->labelsize(14);
modeselect->labelcolor(FL_FOREGROUND_COLOR);
modeselect->align(Fl_Align(FL_ALIGN_TOP));
modeselect->when(FL_WHEN_RELEASE);
o->box(FL_UP_BOX);
modeselect->end();
} // BankViewControls* modeselect
{ Fl_Button* o = new Fl_Button(685, 5, 93, 25, "New Bank...");
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_New);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Osc_Check* o = new Fl_Osc_Check(705, 529, 60, 15, "auto close");
o->tooltip("automatically close the bank window if the instrument is loaded");
o->box(FL_NO_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("config/cfg.BankUIAutoClose");
} // Fl_Osc_Check* o
{ BankList* o = banklist = new BankList(5, 8, 220, 20);
banklist->box(FL_UP_BOX);
banklist->down_box(FL_BORDER_BOX);
banklist->color(FL_BACKGROUND_COLOR);
banklist->selection_color(FL_SELECTION_COLOR);
banklist->labeltype(FL_NORMAL_LABEL);
banklist->labelfont(1);
banklist->labelsize(14);
banklist->labelcolor(FL_FOREGROUND_COLOR);
banklist->textfont(1);
banklist->textsize(11);
banklist->callback((Fl_Callback*)cb_banklist);
banklist->align(Fl_Align(FL_ALIGN_CENTER));
banklist->when(FL_WHEN_RELEASE);
bankview->init(osc, modeselect, npart);
o->init("bank/bank_select");
} // BankList* banklist
{ Fl_Button* o = new Fl_Button(230, 8, 105, 20, "Refresh bank list");
o->tooltip("Refresh the bank list (rescan)");
o->box(FL_THIN_UP_BOX);
o->color(FL_LIGHT1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Refresh);
} // Fl_Button* o
{ Fl_Input* o = new Fl_Input(460, 8, 105, 20, "Search by name: ");
o->tooltip("Enter text to search for");
o->box(FL_THIN_UP_BOX);
o->color(FL_LIGHT1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Search);
o->when(FL_WHEN_CHANGED);
} // Fl_Input* o
bankuiwindow->end();
} // Fl_Osc_Window* bankuiwindow
return bankuiwindow;
}

BankUI::BankUI(int *npart_, Fl_Osc_Interface *osc_) {
npart=npart_;
osc =osc_;
make_window();
}

BankUI::~BankUI() {
bankuiwindow->hide();
delete bankuiwindow;
}

void BankUI::show() {
bankuiwindow->show();
}

void BankUI::hide() {
bankuiwindow->hide();
}

void BankUI::init(Fl_Valuator *cbwig_) {
cbwig=cbwig_;
bankview->cbwig(cbwig);
rescan_for_banks();
}

void BankUI::process() {
}

void BankUI::refreshmainwindow() {
bankview->refresh();
}

void BankUI::rescan_for_banks() {
banklist->clear();
osc->write("/bank/rescan");
if (banklist->size() == 0)
banklist->add(" ");
}

void BankUI::update_search(std::string search_string) {
if (search_string.empty()) {
refreshmainwindow();
} else {
osc->write("/bank/search", "s", search_string.c_str());
}
}

+ 0
- 60
zynaddsubfx/UI/BankUI.h View File

@@ -1,60 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef BankUI_h
#define BankUI_h
#include <FL/Fl.H>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <FL/Fl_Button.H>
#include <FL/Fl_File_Chooser.H>
#include <FL/Fl_Input.H>
#include "Fl_Osc_Interface.h"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Pane.H"
#include "../Misc/Util.h"
#include "BankView.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Input.H>

class BankUI {
public:
Fl_Osc_Window* make_window();
Fl_Osc_Window *bankuiwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
BankView *bankview;
BankViewControls *modeselect;
private:
void cb_New_i(Fl_Button*, void*);
static void cb_New(Fl_Button*, void*);
public:
BankList *banklist;
private:
void cb_banklist_i(BankList*, void*);
static void cb_banklist(BankList*, void*);
void cb_Refresh_i(Fl_Button*, void*);
static void cb_Refresh(Fl_Button*, void*);
void cb_Search_i(Fl_Input*, void*);
static void cb_Search(Fl_Input*, void*);
public:
BankUI(int *npart_, Fl_Osc_Interface *osc_);
virtual ~BankUI();
void show();
void hide();
void init(Fl_Valuator *cbwig_);
void process();
void refreshmainwindow();
void rescan_for_banks();
void update_search(std::string search_string);
private:
Fl_Osc_Interface *osc;
public:
Fl_Valuator *cbwig;
private:
int *npart;
};
#endif

+ 0
- 397
zynaddsubfx/UI/ConfigUI.cpp View File

@@ -1,397 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/ConfigUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void ConfigUI::cb_configwindow_i(Fl_Osc_Window* o, void*) {
o->hide();
}
void ConfigUI::cb_configwindow(Fl_Osc_Window* o, void* v) {
((ConfigUI*)(o->user_data()))->cb_configwindow_i(o,v);
}

void ConfigUI::cb_oscilsize_widget_i(Fl_Choice* o, void*) {
oscilsize->updateVal((int)(o->value()+7));
}
void ConfigUI::cb_oscilsize_widget(Fl_Choice* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_oscilsize_widget_i(o,v);
}

Fl_Menu_Item ConfigUI::menu_oscilsize_widget[] = {
{"128", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"256", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"512", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"1024", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"2048", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"4096", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"8192", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"16384", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{0,0,0,0,0,0,0,0,0}
};

Fl_Menu_Item ConfigUI::menu_PADsynth[] = {
{"Linear(fast)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"Cubic(slow)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

Fl_Menu_Item ConfigUI::menu_Virtual[] = {
{" ", 0, 0, 0, 1, FL_NORMAL_LABEL, 1, 11, 0},
{"QWERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Dvorak", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"QWERTZ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"AZERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

void ConfigUI::cb_rootsbrowse_i(Fl_Osc_ListView* o, void*) {
activatebutton_rootdir(o->value()!=0);
}
void ConfigUI::cb_rootsbrowse(Fl_Osc_ListView* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_rootsbrowse_i(o,v);
}

void ConfigUI::cb_Add_i(Fl_Button*, void*) {
const char *dirname;
dirname=fl_dir_chooser("Add a root directory for banks:",NULL,0);
if (dirname==NULL) return;

rootsbrowse->append(dirname);
}
void ConfigUI::cb_Add(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add_i(o,v);
}

void ConfigUI::cb_removerootdirbutton_i(Fl_Button*, void*) {
if (rootsbrowse->value()!=0) {
rootsbrowse->doRemove(rootsbrowse->value());
};
activatebutton_rootdir(false);
}
void ConfigUI::cb_removerootdirbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removerootdirbutton_i(o,v);
}

void ConfigUI::cb_makedefaultrootdirbutton_i(Fl_Button*, void*) {
int n=rootsbrowse->value();

if (n!=0) {
rootsbrowse->doMove(1,n);
rootsbrowse->value(1);
rootsbrowse->redraw();
};
activatebutton_rootdir(true);
}
void ConfigUI::cb_makedefaultrootdirbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultrootdirbutton_i(o,v);
}

void ConfigUI::cb_presetbrowse_i(Fl_Osc_ListView* o, void*) {
activatebutton_presetdir(o->value()!=0);
}
void ConfigUI::cb_presetbrowse(Fl_Osc_ListView* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_presetbrowse_i(o,v);
}

void ConfigUI::cb_Add1_i(Fl_Button*, void*) {
const char *dirname;
dirname=fl_dir_chooser("Add a preset directory :",NULL,0);
if (dirname==NULL) return;

presetbrowse->add(dirname);
}
void ConfigUI::cb_Add1(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add1_i(o,v);
}

void ConfigUI::cb_removepresetbutton_i(Fl_Button*, void*) {
if (presetbrowse->value()!=0) {
presetbrowse->remove(presetbrowse->value());
};
activatebutton_presetdir(false);
}
void ConfigUI::cb_removepresetbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removepresetbutton_i(o,v);
}

void ConfigUI::cb_makedefaultpresetbutton_i(Fl_Button*, void*) {
int n=presetbrowse->value();

if (n!=0) {
presetbrowse->move(1,n);
presetbrowse->value(1);
presetbrowse->redraw();
};
activatebutton_presetdir(true);
}
void ConfigUI::cb_makedefaultpresetbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultpresetbutton_i(o,v);
}

void ConfigUI::cb_Close_i(Fl_Button*, void*) {
configwindow->hide();
}
void ConfigUI::cb_Close(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

Fl_Osc_Window* ConfigUI::make_window() {
{ configwindow = new Fl_Osc_Window(510, 370, "ZynAddSubFX Settings");
configwindow->box(FL_FLAT_BOX);
configwindow->color(FL_BACKGROUND_COLOR);
configwindow->selection_color(FL_BACKGROUND_COLOR);
configwindow->labeltype(FL_NO_LABEL);
configwindow->labelfont(0);
configwindow->labelsize(14);
configwindow->labelcolor(FL_FOREGROUND_COLOR);
configwindow->callback((Fl_Callback*)cb_configwindow, (void*)(this));
configwindow->align(Fl_Align(FL_ALIGN_TOP));
configwindow->when(FL_WHEN_RELEASE);
{ dummy = new Fl_Box(25, 25, 25, 25);
configwindow->init(osc, "/config/");
} // Fl_Box* dummy
{ Fl_Tabs* o = new Fl_Tabs(5, 5, 500, 330);
{ mainsettings = new Fl_Group(5, 25, 500, 310, "Main settings");
{ Fl_Group* o = new Fl_Group(15, 45, 165, 30, "Sample Rate");
o->box(FL_ENGRAVED_FRAME);
{ Fl_Osc_Numeric_Input* o = samplerateinput = new Fl_Osc_Numeric_Input(115, 50, 60, 20);
samplerateinput->type(2);
samplerateinput->box(FL_DOWN_BOX);
samplerateinput->color(FL_BACKGROUND2_COLOR);
samplerateinput->selection_color(FL_SELECTION_COLOR);
samplerateinput->labeltype(FL_NORMAL_LABEL);
samplerateinput->labelfont(0);
samplerateinput->labelsize(14);
samplerateinput->labelcolor(FL_FOREGROUND_COLOR);
samplerateinput->textfont(1);
samplerateinput->align(Fl_Align(FL_ALIGN_LEFT));
samplerateinput->when(FL_WHEN_RELEASE);
o->init("cfg.SampleRate");
} // Fl_Osc_Numeric_Input* samplerateinput
o->end();
} // Fl_Group* o
{ Fl_Osc_Numeric_Input* o = new Fl_Osc_Numeric_Input(190, 45, 60, 20, "Buffer Size");
o->tooltip("Internal Sound Buffer Size (samples)");
o->type(2);
o->box(FL_DOWN_BOX);
o->color(FL_BACKGROUND2_COLOR);
o->selection_color(FL_SELECTION_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->textfont(1);
o->align(Fl_Align(129));
o->when(FL_WHEN_RELEASE);
o->init("cfg.SoundBufferSize");
} // Fl_Osc_Numeric_Input* o
{ Fl_Osc_Check* o = new Fl_Osc_Check(15, 80, 95, 20, "Swap Stereo ");
o->box(FL_NO_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("cfg.SwapStereo");
} // Fl_Osc_Check* o
{ oscilsize_widget = new Fl_Choice(175, 80, 75, 20, "OscilSize");
oscilsize_widget->tooltip("ADSynth Oscillator Size (samples)");
oscilsize_widget->down_box(FL_BORDER_BOX);
oscilsize_widget->labelfont(1);
oscilsize_widget->labelsize(11);
oscilsize_widget->textsize(10);
oscilsize_widget->callback((Fl_Callback*)cb_oscilsize_widget);
oscilsize_widget->menu(menu_oscilsize_widget);
} // Fl_Choice* oscilsize_widget
{ Fl_Box* o = new Fl_Box(10, 300, 235, 30, "Most settings has effect only after ZynAddSubFX is restarted.");
o->labelfont(1);
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Box* o
{ Fl_Osc_Counter* o = new Fl_Osc_Counter(20, 215, 65, 15, "XML compression level");
o->tooltip("gzip compression level (0 - uncompressed)");
o->type(1);
o->box(FL_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_INACTIVE_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->minimum(0);
o->maximum(9);
o->step(1);
o->align(Fl_Align(FL_ALIGN_RIGHT));
o->when(FL_WHEN_CHANGED);
o->init("cfg.GzipCompression");
} // Fl_Osc_Counter* o
{ Fl_Osc_Choice* o = new Fl_Osc_Choice(175, 105, 75, 15, "PADsynth Interpolation");
o->box(FL_UP_BOX);
o->down_box(FL_BORDER_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_SELECTION_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->textsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE);
o->menu(menu_PADsynth);
o->init("cfg.Interpolation");
} // Fl_Osc_Choice* o
{ Fl_Osc_Choice* o = new Fl_Osc_Choice(155, 235, 85, 20, "Virtual Keyboard Layout");
o->box(FL_UP_BOX);
o->down_box(FL_BORDER_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_SELECTION_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(12);
o->labelcolor(FL_FOREGROUND_COLOR);
o->textfont(1);
o->textsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE);
o->menu(menu_Virtual);
o->init("cfg.VirKeybLayout");
} // Fl_Osc_Choice* o
{ Fl_Osc_Check* o = new Fl_Osc_Check(10, 255, 220, 20, "Ignore MIDI Program Change");
o->box(FL_NO_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(14);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("cfg.IgnoreProgramChange");
} // Fl_Osc_Check* o
mainsettings->end();
} // Fl_Group* mainsettings
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Bank root dirs");
o->hide();
{ Fl_Osc_ListView* o = rootsbrowse = new Fl_Osc_ListView(15, 35, 485, 220);
rootsbrowse->type(2);
rootsbrowse->box(FL_NO_BOX);
rootsbrowse->color(FL_BACKGROUND2_COLOR);
rootsbrowse->selection_color(FL_SELECTION_COLOR);
rootsbrowse->labeltype(FL_NORMAL_LABEL);
rootsbrowse->labelfont(0);
rootsbrowse->labelsize(14);
rootsbrowse->labelcolor(FL_FOREGROUND_COLOR);
rootsbrowse->callback((Fl_Callback*)cb_rootsbrowse);
rootsbrowse->align(Fl_Align(FL_ALIGN_BOTTOM));
rootsbrowse->when(FL_WHEN_RELEASE_ALWAYS);
o->init("cfg.bankRootDirList");
} // Fl_Osc_ListView* rootsbrowse
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add root directory...");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Add);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Button* o = removerootdirbutton = new Fl_Button(105, 265, 80, 35, "Remove root dir...");
removerootdirbutton->box(FL_THIN_UP_BOX);
removerootdirbutton->callback((Fl_Callback*)cb_removerootdirbutton);
removerootdirbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* removerootdirbutton
{ Fl_Button* o = makedefaultrootdirbutton = new Fl_Button(190, 265, 80, 35, "Make default");
makedefaultrootdirbutton->box(FL_THIN_UP_BOX);
makedefaultrootdirbutton->callback((Fl_Callback*)cb_makedefaultrootdirbutton);
makedefaultrootdirbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* makedefaultrootdirbutton
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Presets dirs");
o->hide();
{ Fl_Osc_ListView* o = presetbrowse = new Fl_Osc_ListView(15, 35, 485, 220);
presetbrowse->type(2);
presetbrowse->box(FL_NO_BOX);
presetbrowse->color(FL_BACKGROUND2_COLOR);
presetbrowse->selection_color(FL_SELECTION_COLOR);
presetbrowse->labeltype(FL_NORMAL_LABEL);
presetbrowse->labelfont(0);
presetbrowse->labelsize(14);
presetbrowse->labelcolor(FL_FOREGROUND_COLOR);
presetbrowse->callback((Fl_Callback*)cb_presetbrowse);
presetbrowse->align(Fl_Align(FL_ALIGN_BOTTOM));
presetbrowse->when(FL_WHEN_RELEASE_ALWAYS);
o->init("cfg.presetsDirList");
} // Fl_Osc_ListView* presetbrowse
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add preset directory...");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Add1);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Button* o = removepresetbutton = new Fl_Button(105, 265, 80, 35, "Remove preset dir...");
removepresetbutton->box(FL_THIN_UP_BOX);
removepresetbutton->callback((Fl_Callback*)cb_removepresetbutton);
removepresetbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* removepresetbutton
{ Fl_Button* o = makedefaultpresetbutton = new Fl_Button(190, 265, 80, 35, "Make default");
makedefaultpresetbutton->box(FL_THIN_UP_BOX);
makedefaultpresetbutton->callback((Fl_Callback*)cb_makedefaultpresetbutton);
makedefaultpresetbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* makedefaultpresetbutton
o->end();
} // Fl_Group* o
o->end();
} // Fl_Tabs* o
{ Fl_Button* o = new Fl_Button(200, 345, 105, 20, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
configwindow->end();
} // Fl_Osc_Window* configwindow
return configwindow;
}

ConfigUI::ConfigUI(Fl_Osc_Interface *osc_) {
osc = osc_;
make_window();
oscilsize = new Osc_IntModel(osc);
oscilsize->callback = [this](int i){
oscilsize_widget->value(i-7);
};
oscilsize->doUpdate("/config/cfg.OscilPower");
}

void ConfigUI::activatebutton_rootdir(bool active) {
if (active) {
removerootdirbutton->activate();
makedefaultrootdirbutton->activate();
}else{
removerootdirbutton->deactivate();
makedefaultrootdirbutton->deactivate();
};
}

void ConfigUI::activatebutton_presetdir(bool active) {
if (active) {
removepresetbutton->activate();
makedefaultpresetbutton->activate();
}else{
removepresetbutton->deactivate();
makedefaultpresetbutton->deactivate();
};
}

void ConfigUI::show() {
if (isPlugin) {
mainsettings->deactivate();
}
rootsbrowse->update();
presetbrowse->update();
configwindow->show();
}

+ 0
- 90
zynaddsubfx/UI/ConfigUI.h View File

@@ -1,90 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ConfigUI_h
#define ConfigUI_h
#include <FL/Fl.H>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <FL/Fl_File_Chooser.H>
#include "Fl_Osc_Button.H"
#include "Fl_Osc_Counter.H"
#include "Fl_Osc_Choice.H"
#include "Osc_IntModel.h"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Input.H"
#include "Fl_Osc_Numeric_Input.H"
#include "Fl_Osc_ListView.H"
#include "Fl_Osc_Pane.H"
#include "../globals.h"
#include "../Misc/Util.h"
using namespace zyncarla;
#include <FL/Fl_Box.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Button.H>

class ConfigUI {
public:
Fl_Osc_Window* make_window();
Fl_Osc_Window *configwindow;
private:
void cb_configwindow_i(Fl_Osc_Window*, void*);
static void cb_configwindow(Fl_Osc_Window*, void*);
public:
Fl_Box *dummy;
Fl_Group *mainsettings;
Fl_Osc_Numeric_Input *samplerateinput;
Fl_Choice *oscilsize_widget;
private:
void cb_oscilsize_widget_i(Fl_Choice*, void*);
static void cb_oscilsize_widget(Fl_Choice*, void*);
static Fl_Menu_Item menu_oscilsize_widget[];
static Fl_Menu_Item menu_PADsynth[];
static Fl_Menu_Item menu_Virtual[];
public:
Fl_Osc_ListView *rootsbrowse;
private:
void cb_rootsbrowse_i(Fl_Osc_ListView*, void*);
static void cb_rootsbrowse(Fl_Osc_ListView*, void*);
void cb_Add_i(Fl_Button*, void*);
static void cb_Add(Fl_Button*, void*);
public:
Fl_Button *removerootdirbutton;
private:
void cb_removerootdirbutton_i(Fl_Button*, void*);
static void cb_removerootdirbutton(Fl_Button*, void*);
public:
Fl_Button *makedefaultrootdirbutton;
private:
void cb_makedefaultrootdirbutton_i(Fl_Button*, void*);
static void cb_makedefaultrootdirbutton(Fl_Button*, void*);
public:
Fl_Osc_ListView *presetbrowse;
private:
void cb_presetbrowse_i(Fl_Osc_ListView*, void*);
static void cb_presetbrowse(Fl_Osc_ListView*, void*);
void cb_Add1_i(Fl_Button*, void*);
static void cb_Add1(Fl_Button*, void*);
public:
Fl_Button *removepresetbutton;
private:
void cb_removepresetbutton_i(Fl_Button*, void*);
static void cb_removepresetbutton(Fl_Button*, void*);
public:
Fl_Button *makedefaultpresetbutton;
private:
void cb_makedefaultpresetbutton_i(Fl_Button*, void*);
static void cb_makedefaultpresetbutton(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
ConfigUI(Fl_Osc_Interface *osc_);
void activatebutton_rootdir(bool active);
void activatebutton_presetdir(bool active);
void show();
class Fl_Osc_Interface *osc;
class Osc_IntModel *oscilsize;
};
#endif

+ 0
- 3024
zynaddsubfx/UI/EffUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 318
zynaddsubfx/UI/EffUI.h View File

@@ -1,318 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef EffUI_h
#define EffUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../globals.h"
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Check.H"
#include "Fl_EQGraph.H"
#include "Fl_Osc_Pane.H"
#include "EnvelopeUI.h"
#include "FilterUI.h"
#include "../Misc/Util.h"
#include "../Effects/EffectMgr.h"
#include "../Effects/Phaser.h" /* for macros only, TODO */
#include "../Effects/Alienwah.h" /* for macros only, TODO */
#include "PresetsUI.h"
#include "common.H"
using namespace zyncarla;
#include <FL/Fl_Counter.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Double_Window.H>

class EffUI : public Fl_Osc_Group,public PresetsUI_ {
public:
EffUI(int x,int y, int w, int h, const char *label=0);
~EffUI();
Fl_Group* make_null_window();
Fl_Group *effnullwindow;
Fl_Group* make_reverb_window();
Fl_Group *effreverbwindow;
Fl_Osc_Choice *revp;
static Fl_Menu_Item menu_revp[];
Fl_Osc_Choice *revp10;
private:
void cb_revp10_i(Fl_Osc_Choice*, void*);
static void cb_revp10(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_revp10[];
public:
Fl_Osc_Dial *revp0;
Fl_Osc_Dial *revp1;
Fl_Osc_Dial *revp2;
Fl_Osc_Dial *revp3;
Fl_Osc_Dial *revp4;
Fl_Osc_Dial *revp12;
Fl_Osc_Dial *revp6;
Fl_Osc_Dial *revp7;
Fl_Osc_Dial *revp8;
Fl_Osc_Dial *revp9;
Fl_Osc_Dial *revp11;
Fl_Group* make_echo_window();
Fl_Group *effechowindow;
Fl_Osc_Choice *echop;
static Fl_Menu_Item menu_echop[];
Fl_Osc_Dial *echop0;
Fl_Osc_Dial *echop1;
Fl_Osc_Dial *echop2;
Fl_Osc_Dial *echop3;
Fl_Osc_Dial *echop4;
Fl_Osc_Dial *echop5;
Fl_Osc_Dial *echop6;
Fl_Group* make_chorus_window();
Fl_Group *effchoruswindow;
Fl_Osc_Choice *chorusp;
static Fl_Menu_Item menu_chorusp[];
Fl_Osc_Dial *chorusp0;
Fl_Osc_Dial *chorusp1;
Fl_Osc_Dial *chorusp2;
Fl_Osc_Dial *chorusp3;
Fl_Osc_Dial *chorusp5;
Fl_Osc_Dial *chorusp6;
Fl_Osc_Dial *chorusp7;
Fl_Osc_Dial *chorusp8;
Fl_Osc_Dial *chorusp9;
Fl_Osc_Check *chorusp11;
Fl_Osc_Choice *chorusp4;
static Fl_Menu_Item menu_chorusp4[];
Fl_Group* make_phaser_window();
Fl_Group *effphaserwindow;
Fl_Osc_Choice *phaserp;
static Fl_Menu_Item menu_phaserp[];
Fl_Osc_Dial *phaserp0;
Fl_Osc_Dial *phaserp1;
Fl_Osc_Dial *phaserp2;
Fl_Osc_Dial *phaserp3;
Fl_Osc_Choice *phaserp4;
static Fl_Menu_Item menu_phaserp4[];
Fl_Osc_Dial *phaserp5;
Fl_Osc_Dial *phaserp6;
Fl_Osc_Dial *phaserp7;
Fl_Osc_Counter *phaserp8;
Fl_Osc_Dial *phaserp9;
Fl_Osc_Check *phaserp10;
Fl_Osc_Dial *phaserp11;
Fl_Osc_Check *phaserp12;
Fl_Osc_Dial *phaserp13;
Fl_Osc_Check *phaserp14;
Fl_Group* make_alienwah_window();
Fl_Group *effalienwahwindow;
Fl_Osc_Choice *awp;
static Fl_Menu_Item menu_awp[];
Fl_Osc_Dial *awp0;
Fl_Osc_Dial *awp1;
Fl_Osc_Dial *awp2;
Fl_Osc_Dial *awp3;
Fl_Osc_Dial *awp5;
Fl_Osc_Dial *awp6;
Fl_Osc_Dial *awp7;
Fl_Osc_Dial *awp9;
Fl_Osc_Choice *awp4;
static Fl_Menu_Item menu_awp4[];
Fl_Osc_Dial *awp10;
Fl_Osc_Counter *awp8;
Fl_Group* make_distorsion_window();
Fl_Group *effdistorsionwindow;
Fl_Osc_Choice *distp;
static Fl_Menu_Item menu_distp[];
Fl_Osc_Dial *distp0;
Fl_Osc_Dial *distp1;
Fl_Osc_Dial *distp2;
Fl_Osc_Dial *distp3;
Fl_Osc_Dial *distp4;
Fl_Osc_Dial *distp7;
Fl_Osc_Dial *distp8;
Fl_Osc_Choice *distp5;
static Fl_Menu_Item menu_distp5[];
Fl_Osc_Check *distp6;
Fl_Osc_Check *distp9;
Fl_Osc_Check *distp10;
Fl_Group* make_eq_window();
Fl_Group *effeqwindow;
Fl_Osc_Dial *eqp0;
private:
void cb_eqp0_i(Fl_Osc_Dial*, void*);
static void cb_eqp0(Fl_Osc_Dial*, void*);
public:
Fl_Counter *bandcounter;
private:
void cb_bandcounter_i(Fl_Counter*, void*);
static void cb_bandcounter(Fl_Counter*, void*);
public:
Fl_Group *bandgroup;
Fl_Osc_Dial *freqdial;
private:
void cb_freqdial_i(Fl_Osc_Dial*, void*);
static void cb_freqdial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *gaindial;
private:
void cb_gaindial_i(Fl_Osc_Dial*, void*);
static void cb_gaindial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *qdial;
private:
void cb_qdial_i(Fl_Osc_Dial*, void*);
static void cb_qdial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Counter *stagescounter;
private:
void cb_stagescounter_i(Fl_Osc_Counter*, void*);
static void cb_stagescounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Choice *typechoice;
private:
void cb_typechoice_i(Fl_Osc_Choice*, void*);
static void cb_typechoice(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_typechoice[];
public:
Fl_EQGraph *eqgraph;
Fl_Group* make_dynamicfilter_window();
Fl_Group *effdynamicfilterwindow;
Fl_Osc_Choice *dfp;
static Fl_Menu_Item menu_dfp[];
Fl_Osc_Dial *dfp0;
Fl_Osc_Dial *dfp1;
Fl_Osc_Dial *dfp2;
Fl_Osc_Dial *dfp3;
Fl_Osc_Dial *dfp5;
Fl_Osc_Dial *dfp6;
Fl_Osc_Choice *dfp4;
static Fl_Menu_Item menu_dfp4[];
private:
void cb_Filter_i(Fl_Button*, void*);
static void cb_Filter(Fl_Button*, void*);
public:
Fl_Osc_Dial *dfp7;
Fl_Osc_Dial *dfp9;
Fl_Osc_Check *dfp8;
Fl_Double_Window* make_filter_window();
Fl_Double_Window *filterwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
void init(bool ins_);
void refresh();
private:
int eqband;
public:
bool insertion;
int efftype;
};

class SimpleEffUI : public Fl_Osc_Group,public PresetsUI_ {
public:
SimpleEffUI(int x,int y, int w, int h, const char *label=0);
~SimpleEffUI();
Fl_Group* make_null_window();
Fl_Group *effnullwindow;
Fl_Group* make_reverb_window();
Fl_Group *effreverbwindow;
Fl_Osc_Choice *revp;
static Fl_Menu_Item menu_revp1[];
Fl_Osc_Dial *revp0;
Fl_Osc_Dial *revp2;
Fl_Osc_Dial *revp3;
Fl_Osc_Dial *revp9;
Fl_Group* make_echo_window();
Fl_Group *effechowindow;
Fl_Osc_Choice *echop;
static Fl_Menu_Item menu_echop1[];
Fl_Osc_Dial *echop0;
Fl_Osc_Dial *echop2;
Fl_Osc_Dial *echop5;
Fl_Group* make_chorus_window();
Fl_Group *effchoruswindow;
Fl_Osc_Choice *chorusp;
static Fl_Menu_Item menu_chorusp1[];
Fl_Osc_Dial *chorusp0;
Fl_Osc_Dial *chorusp2;
Fl_Osc_Dial *chorusp6;
Fl_Osc_Dial *chorusp7;
Fl_Osc_Dial *chorusp8;
Fl_Group* make_phaser_window();
Fl_Group *effphaserwindow;
Fl_Osc_Choice *phaserp;
static Fl_Menu_Item menu_phaserp1[];
Fl_Osc_Dial *phaserp0;
Fl_Osc_Dial *phaserp2;
Fl_Osc_Dial *phaserp5;
Fl_Osc_Dial *phaserp6;
Fl_Osc_Dial *phaserp7;
Fl_Osc_Counter *phaserp8;
Fl_Group* make_alienwah_window();
Fl_Group *effalienwahwindow;
Fl_Osc_Choice *awp;
static Fl_Menu_Item menu_awp1[];
Fl_Osc_Dial *awp0;
Fl_Osc_Dial *awp2;
Fl_Osc_Dial *awp6;
Fl_Osc_Counter *awp8;
Fl_Group* make_distorsion_window();
Fl_Group *effdistorsionwindow;
Fl_Osc_Choice *distp;
static Fl_Menu_Item menu_distp1[];
Fl_Osc_Dial *distp0;
Fl_Osc_Dial *distp3;
Fl_Osc_Dial *distp4;
Fl_Osc_Dial *distp7;
Fl_Osc_Choice *distp5;
static Fl_Menu_Item menu_distp51[];
Fl_Group* make_eq_window();
Fl_Group *effeqwindow;
Fl_Counter *bandcounter;
private:
void cb_bandcounter1_i(Fl_Counter*, void*);
static void cb_bandcounter1(Fl_Counter*, void*);
public:
Fl_Group *bandgroup;
Fl_Osc_Dial *freqdial;
private:
void cb_freqdial1_i(Fl_Osc_Dial*, void*);
static void cb_freqdial1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *gaindial;
private:
void cb_gaindial1_i(Fl_Osc_Dial*, void*);
static void cb_gaindial1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *qdial;
private:
void cb_qdial1_i(Fl_Osc_Dial*, void*);
static void cb_qdial1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Counter *stagescounter;
private:
void cb_stagescounter1_i(Fl_Osc_Counter*, void*);
static void cb_stagescounter1(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Choice *typechoice;
private:
void cb_typechoice1_i(Fl_Osc_Choice*, void*);
static void cb_typechoice1(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_typechoice1[];
public:
Fl_EQGraph *eqgraph;
Fl_Group* make_dynamicfilter_window();
Fl_Group *effdynamicfilterwindow;
Fl_Osc_Choice *dfp;
static Fl_Menu_Item menu_dfp1[];
Fl_Osc_Dial *dfp0;
Fl_Osc_Dial *dfp2;
Fl_Osc_Dial *dfp6;
Fl_Osc_Dial *dfp7;
Fl_Osc_Dial *dfp9;
void init(bool ins_);
void refresh();
private:
int eqband;
public:
bool insertion;
int efftype;
};
#endif

+ 0
- 1352
zynaddsubfx/UI/EnvelopeUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 256
zynaddsubfx/UI/EnvelopeUI.h View File

@@ -1,256 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef EnvelopeUI_h
#define EnvelopeUI_h
#include <FL/Fl.H>
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Button.H"
#include "Fl_Osc_Counter.H"
#include "Fl_Osc_Pane.H"
#include <stdio.h>
#include <stdlib.h>
#include "../globals.h"
#include <FL/Fl_Group.H>
#include "../Params/EnvelopeParams.h"
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/fl_ask.H>
#include "PresetsUI.h"
#include "common.H"
#include "EnvelopeFreeEdit.h"

class PointButton : public Fl_Button, public Fl_Osc_Widget {
public:
PointButton(int x,int y, int w, int h, const char *label=0);
void rebase(std::string new_base);
void init(std::string path_);
};
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>

class EnvelopeUI : public Fl_Osc_Group,PresetsUI_ {
public:
EnvelopeUI(int x,int y, int w, int h, const char *label=0);
~EnvelopeUI();
Fl_Osc_Window* make_freemode_edit_window();
Fl_Osc_Window *freemodeeditwindow;
private:
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
PointButton *addpoint;
private:
void cb_addpoint_i(PointButton*, void*);
static void cb_addpoint(PointButton*, void*);
public:
EnvelopeFreeEdit *freeedit;
private:
void cb_freeedit_i(EnvelopeFreeEdit*, void*);
static void cb_freeedit(EnvelopeFreeEdit*, void*);
public:
PointButton *deletepoint;
private:
void cb_deletepoint_i(PointButton*, void*);
static void cb_deletepoint(PointButton*, void*);
public:
Fl_Osc_Check *forcedreleasecheck;
Fl_Osc_Dial *envstretchdial;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Osc_Check *linearenvelopecheck;
Fl_Osc_Counter *sustaincounter;
private:
void cb_sustaincounter_i(Fl_Osc_Counter*, void*);
static void cb_sustaincounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Check *freemodehack;
private:
void cb_freemodehack_i(Fl_Osc_Check*, void*);
static void cb_freemodehack(Fl_Osc_Check*, void*);
void cb_Cancel_i(Fl_Osc_Button*, void*);
static void cb_Cancel(Fl_Osc_Button*, void*);
public:
Fl_Osc_Group* make_ADSR_window();
Fl_Osc_Group *envADSR;
private:
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
public:
Fl_Osc_Dial *e1adt;
private:
void cb_e1adt_i(Fl_Osc_Dial*, void*);
static void cb_e1adt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e1ddt;
private:
void cb_e1ddt_i(Fl_Osc_Dial*, void*);
static void cb_e1ddt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e1rdt;
private:
void cb_e1rdt_i(Fl_Osc_Dial*, void*);
static void cb_e1rdt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e1sval;
private:
void cb_e1sval_i(Fl_Osc_Dial*, void*);
static void cb_e1sval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Check *e1forcedrelease;
Fl_Osc_Dial *e1envstretch;
private:
void cb_E_i(Fl_Osc_Button*, void*);
static void cb_E(Fl_Osc_Button*, void*);
public:
Fl_Osc_Check *e1linearenvelope;
Fl_Osc_Group* make_ASR_window();
Fl_Osc_Group *envASR;
private:
void cb_C2_i(Fl_Button*, void*);
static void cb_C2(Fl_Button*, void*);
void cb_P2_i(Fl_Button*, void*);
static void cb_P2(Fl_Button*, void*);
public:
Fl_Osc_Dial *e2aval;
private:
void cb_e2aval_i(Fl_Osc_Dial*, void*);
static void cb_e2aval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e2adt;
private:
void cb_e2adt_i(Fl_Osc_Dial*, void*);
static void cb_e2adt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e2rval;
private:
void cb_e2rval_i(Fl_Osc_Dial*, void*);
static void cb_e2rval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e2rdt;
private:
void cb_e2rdt_i(Fl_Osc_Dial*, void*);
static void cb_e2rdt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e2envstretch;
Fl_Osc_Check *e2forcedrelease;
private:
void cb_E1_i(Fl_Osc_Button*, void*);
static void cb_E1(Fl_Osc_Button*, void*);
public:
Fl_Osc_Group* make_ADSRfilter_window();
Fl_Osc_Group *envADSRfilter;
private:
void cb_C3_i(Fl_Button*, void*);
static void cb_C3(Fl_Button*, void*);
void cb_P3_i(Fl_Button*, void*);
static void cb_P3(Fl_Button*, void*);
public:
Fl_Osc_Dial *e3aval;
private:
void cb_e3aval_i(Fl_Osc_Dial*, void*);
static void cb_e3aval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3adt;
private:
void cb_e3adt_i(Fl_Osc_Dial*, void*);
static void cb_e3adt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3dval;
private:
void cb_e3dval_i(Fl_Osc_Dial*, void*);
static void cb_e3dval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3ddt;
private:
void cb_e3ddt_i(Fl_Osc_Dial*, void*);
static void cb_e3ddt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3rdt;
private:
void cb_e3rdt_i(Fl_Osc_Dial*, void*);
static void cb_e3rdt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3rval;
private:
void cb_e3rval_i(Fl_Osc_Dial*, void*);
static void cb_e3rval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e3envstretch;
Fl_Osc_Check *e3forcedrelease;
private:
void cb_E2_i(Fl_Osc_Button*, void*);
static void cb_E2(Fl_Osc_Button*, void*);
public:
Fl_Osc_Group* make_ASRbw_window();
Fl_Osc_Group *envASRbw;
private:
void cb_C4_i(Fl_Button*, void*);
static void cb_C4(Fl_Button*, void*);
void cb_P4_i(Fl_Button*, void*);
static void cb_P4(Fl_Button*, void*);
public:
Fl_Osc_Dial *e4aval;
private:
void cb_e4aval_i(Fl_Osc_Dial*, void*);
static void cb_e4aval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e4adt;
private:
void cb_e4adt_i(Fl_Osc_Dial*, void*);
static void cb_e4adt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e4rval;
private:
void cb_e4rval_i(Fl_Osc_Dial*, void*);
static void cb_e4rval(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e4rdt;
private:
void cb_e4rdt_i(Fl_Osc_Dial*, void*);
static void cb_e4rdt(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *e4envstretch;
Fl_Osc_Check *e4forcedrelease;
private:
void cb_E3_i(Fl_Osc_Button*, void*);
static void cb_E3(Fl_Osc_Button*, void*);
public:
Fl_Osc_Group* make_free_window();
Fl_Osc_Group *envfree;
Fl_Group *envfreegroup;
private:
void cb_E4_i(Fl_Osc_Button*, void*);
static void cb_E4(Fl_Osc_Button*, void*);
public:
EnvelopeFreeEdit *freeeditsmall;
private:
void cb_freeeditsmall_i(EnvelopeFreeEdit*, void*);
static void cb_freeeditsmall(EnvelopeFreeEdit*, void*);
void cb_C5_i(Fl_Button*, void*);
static void cb_C5(Fl_Button*, void*);
void cb_P5_i(Fl_Button*, void*);
static void cb_P5(Fl_Button*, void*);
public:
void open_as_freemode();
void init(int env_type, Fl_Osc_Interface *osc_, std::string base_, std::string ext_);
void rebase(std::string new_base);
void disable_freemode();
void refresh();
void refresh_display();
private:
int Envmode;
int Penvsustain;
int Penvpoints;
int Penvstretch;
int Pforcedrelease;
int Plinearenvelope;
Fl_Group *envwindow;
};
#endif

+ 0
- 905
zynaddsubfx/UI/FilterUI.cpp View File

@@ -1,905 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/FilterUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
#include <cmath>
#include <stdio.h>
#include <stdlib.h>

void FilterUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(filterui->loc(),this);
}
void FilterUI::cb_P(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

Fl_Menu_Item FilterUI::menu_analogfiltertypechoice[] = {
{"LPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"LPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"BPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"NF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"PkF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"LSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

Fl_Menu_Item FilterUI::menu_svfiltertypechoice[] = {
{"1LPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1HPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1BPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1NF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void FilterUI::cb_filtertype_i(Fl_Osc_Choice*, void*) {
refresh();
}
void FilterUI::cb_filtertype(Fl_Osc_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_filtertype_i(o,v);
}

Fl_Menu_Item FilterUI::menu_filtertype[] = {
{"Analog", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"Formant", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"StVarF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void FilterUI::cb_qdial_i(Fl_Osc_Dial*, void*) {
formantfiltergraph->redraw();
}
void FilterUI::cb_qdial(Fl_Osc_Dial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_qdial_i(o,v);
}

void FilterUI::cb_gaindial_i(Fl_Osc_Dial*, void*) {
formantfiltergraph->redraw();
}
void FilterUI::cb_gaindial(Fl_Osc_Dial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_gaindial_i(o,v);
}

void FilterUI::cb_stcounter_i(Fl_Osc_Choice*, void*) {
formantfiltergraph->redraw();
}
void FilterUI::cb_stcounter(Fl_Osc_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_stcounter_i(o,v);
}

void FilterUI::cb_editbutton_i(Fl_Button*, void*) {
formantparswindow->show();
}
void FilterUI::cb_editbutton(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_editbutton_i(o,v);
}

void FilterUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(filterui->loc());
}
void FilterUI::cb_C(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void FilterUI::cb_P1_i(Fl_Button*, void*) {
presetsui->paste(filterui->loc(),this);
}
void FilterUI::cb_P1(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_P1_i(o,v);
}

void FilterUI::cb_P2_i(Fl_Button*, void*) {
presetsui->paste(filterui->loc(),this,nvowel);
}
void FilterUI::cb_P2(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_P2_i(o,v);
}

void FilterUI::cb_Formant_i(Fl_Counter* o, void*) {
nformant=(int) o->value();
formantparsgroup->reext("Pvowels"+to_s(nvowel)+"/Pformants"+to_s(nformant)+"/");
update_formant_window();
formantfiltergraph->redraw();
}
void FilterUI::cb_Formant(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Formant_i(o,v);
}

void FilterUI::cb_Vowel_i(Fl_Counter* o, void*) {
nvowel=(int) o->value();
formantparsgroup->reext("Pvowels"+to_s(nvowel)+"/Pformants"+to_s(nformant)+"/");
update_formant_window();
formantfiltergraph->redraw();
}
void FilterUI::cb_Vowel(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Vowel_i(o,v);
}

void FilterUI::cb_formant_freq_dial_i(Fl_Osc_Dial*, void*) {
formantfiltergraph->update();
}
void FilterUI::cb_formant_freq_dial(Fl_Osc_Dial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_freq_dial_i(o,v);
}

void FilterUI::cb_formant_q_dial_i(Fl_Osc_Dial*, void*) {
formantfiltergraph->update();
}
void FilterUI::cb_formant_q_dial(Fl_Osc_Dial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_q_dial_i(o,v);
}

void FilterUI::cb_formant_amp_dial_i(Fl_Osc_Dial*, void*) {
formantfiltergraph->update();
}
void FilterUI::cb_formant_amp_dial(Fl_Osc_Dial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_amp_dial_i(o,v);
}

void FilterUI::cb_sequencesize_i(Fl_Osc_Counter*, void*) {
update_formant_window();
}
void FilterUI::cb_sequencesize(Fl_Osc_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_sequencesize_i(o,v);
}

void FilterUI::cb_S_i(Fl_Counter* o, void*) {
nseqpos = o->value();update_formant_window();vowel_counter->oscMove("vowel_seq"+to_s(nseqpos));
}
void FilterUI::cb_S(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_S_i(o,v);
}

void FilterUI::cb_vowel_counter_i(Fl_Osc_Counter* o, void*) {
(void)o;//pars->Psequence[nseqpos].nvowel=(int) o->value(); pars->changed=true;
}
void FilterUI::cb_vowel_counter(Fl_Osc_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_vowel_counter_i(o,v);
}

void FilterUI::cb_numformants_i(Fl_Osc_Counter*, void*) {
update_formant_window();
formantfiltergraph->redraw();
}
void FilterUI::cb_numformants(Fl_Osc_Counter* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_numformants_i(o,v);
}

void FilterUI::cb_centerfreqvo_i(Fl_Osc_Output* o, void*) {
o->value(o->newvalue()/1000.0);
}
void FilterUI::cb_centerfreqvo(Fl_Osc_Output* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v);
}

void FilterUI::cb_octavesfreqvo_i(Fl_Osc_Output* o, void*) {
o->value(o->newvalue());
}
void FilterUI::cb_octavesfreqvo(Fl_Osc_Output* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v);
}

void FilterUI::cb_cfknob_i(Fl_Osc_Slider*, void*) {
centerfreqvo->update();
}
void FilterUI::cb_cfknob(Fl_Osc_Slider* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_cfknob_i(o,v);
}

void FilterUI::cb_octknob_i(Fl_Osc_Slider*, void*) {
octavesfreqvo->update();
}
void FilterUI::cb_octknob(Fl_Osc_Slider* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_octknob_i(o,v);
}

void FilterUI::cb_Close_i(Fl_Button*, void*) {
formantparswindow->hide();
}
void FilterUI::cb_Close(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void FilterUI::cb_C1_i(Fl_Button*, void*) {
presetsui->copy(filterui->loc(),nvowel);
}
void FilterUI::cb_C1(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_C1_i(o,v);
}

FilterUI::FilterUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h) {
nvowel=0;nformant=0;nseqpos=0;
}

FilterUI::~FilterUI() {
filterui->hide();
formantparswindow->hide();
hide();
//delete (filterui);
delete (formantparswindow);
}

Fl_Osc_Group* FilterUI::make_window() {
{ filterui = new Fl_Osc_Group(0, 0, 275, 70);
filterui->box(FL_FLAT_BOX);
filterui->color(FL_LIGHT1);
filterui->selection_color(FL_BACKGROUND_COLOR);
filterui->labeltype(FL_NO_LABEL);
filterui->labelfont(1);
filterui->labelsize(14);
filterui->labelcolor(FL_FOREGROUND_COLOR);
filterui->user_data((void*)(this));
filterui->align(Fl_Align(FL_ALIGN_TOP));
filterui->when(FL_WHEN_RELEASE);
{ Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
{ Fl_Group* o = filterparamswindow = new Fl_Group(0, 0, 275, 75, "Filter Parameters");
filterparamswindow->box(FL_UP_FRAME);
filterparamswindow->color((Fl_Color)183);
filterparamswindow->labeltype(FL_ENGRAVED_LABEL);
filterparamswindow->labelsize(10);
filterparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Osc_Choice* o = analogfiltertypechoice = new Fl_Osc_Choice(10, 50, 50, 15, "FilterType");
analogfiltertypechoice->tooltip("The Filter type");
analogfiltertypechoice->box(FL_UP_BOX);
analogfiltertypechoice->down_box(FL_BORDER_BOX);
analogfiltertypechoice->color(FL_BACKGROUND_COLOR);
analogfiltertypechoice->selection_color(FL_SELECTION_COLOR);
analogfiltertypechoice->labeltype(FL_NORMAL_LABEL);
analogfiltertypechoice->labelfont(0);
analogfiltertypechoice->labelsize(10);
analogfiltertypechoice->labelcolor(FL_FOREGROUND_COLOR);
analogfiltertypechoice->textsize(10);
analogfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT));
analogfiltertypechoice->when(FL_WHEN_RELEASE);
analogfiltertypechoice->menu(menu_analogfiltertypechoice);
o->init("Ptype");
} // Fl_Osc_Choice* analogfiltertypechoice
{ Fl_Osc_Choice* o = svfiltertypechoice = new Fl_Osc_Choice(10, 50, 50, 15, "FilterType");
svfiltertypechoice->tooltip("The Filter type");
svfiltertypechoice->box(FL_UP_BOX);
svfiltertypechoice->down_box(FL_BORDER_BOX);
svfiltertypechoice->color(FL_BACKGROUND_COLOR);
svfiltertypechoice->selection_color(FL_SELECTION_COLOR);
svfiltertypechoice->labeltype(FL_NORMAL_LABEL);
svfiltertypechoice->labelfont(0);
svfiltertypechoice->labelsize(10);
svfiltertypechoice->labelcolor(FL_FOREGROUND_COLOR);
svfiltertypechoice->textsize(10);
svfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT));
svfiltertypechoice->when(FL_WHEN_RELEASE);
svfiltertypechoice->menu(menu_svfiltertypechoice);
o->init("Ptype");
} // Fl_Osc_Choice* svfiltertypechoice
{ Fl_Osc_Choice* o = filtertype = new Fl_Osc_Choice(10, 20, 60, 15, "Category");
filtertype->tooltip("The Category of the Filter (Analog/Formantic/etc.)");
filtertype->box(FL_UP_BOX);
filtertype->down_box(FL_BORDER_BOX);
filtertype->color(FL_BACKGROUND_COLOR);
filtertype->selection_color(FL_SELECTION_COLOR);
filtertype->labeltype(FL_NORMAL_LABEL);
filtertype->labelfont(0);
filtertype->labelsize(10);
filtertype->labelcolor(FL_FOREGROUND_COLOR);
filtertype->textsize(10);
filtertype->callback((Fl_Callback*)cb_filtertype);
filtertype->align(Fl_Align(FL_ALIGN_TOP_LEFT));
filtertype->when(FL_WHEN_RELEASE);
filtertype->menu(menu_filtertype);
o->init("Pcategory");
} // Fl_Osc_Choice* filtertype
{ Fl_Osc_Dial* o = cfreqdial = new Fl_Osc_Dial(75, 25, 30, 30, "C.Freq");
cfreqdial->tooltip("Center Frequency of the Filter or the base position in the vowel\'s sequence");
cfreqdial->box(FL_ROUND_UP_BOX);
cfreqdial->color(FL_BACKGROUND_COLOR);
cfreqdial->selection_color(FL_INACTIVE_COLOR);
cfreqdial->labeltype(FL_NORMAL_LABEL);
cfreqdial->labelfont(0);
cfreqdial->labelsize(10);
cfreqdial->labelcolor(FL_FOREGROUND_COLOR);
cfreqdial->maximum(127);
cfreqdial->step(1);
cfreqdial->align(Fl_Align(FL_ALIGN_BOTTOM));
cfreqdial->when(FL_WHEN_CHANGED);
o->init("Pfreq");
} // Fl_Osc_Dial* cfreqdial
{ Fl_Osc_Dial* o = qdial = new Fl_Osc_Dial(110, 25, 30, 30, "Q");
qdial->tooltip("Filter resonance or bandwidth");
qdial->box(FL_ROUND_UP_BOX);
qdial->color(FL_BACKGROUND_COLOR);
qdial->selection_color(FL_INACTIVE_COLOR);
qdial->labeltype(FL_NORMAL_LABEL);
qdial->labelfont(0);
qdial->labelsize(10);
qdial->labelcolor(FL_FOREGROUND_COLOR);
qdial->maximum(127);
qdial->step(1);
qdial->callback((Fl_Callback*)cb_qdial);
qdial->align(Fl_Align(FL_ALIGN_BOTTOM));
qdial->when(FL_WHEN_CHANGED);
o->init("Pq");
} // Fl_Osc_Dial* qdial
{ Fl_Osc_Dial* o = freqtrdial = new Fl_Osc_Dial(215, 25, 30, 30, "freq.tr.");
freqtrdial->tooltip("Filter frequency tracking (left is negative, middle is 0, and right is positi\
ve)");
freqtrdial->box(FL_ROUND_UP_BOX);
freqtrdial->color(FL_BACKGROUND_COLOR);
freqtrdial->selection_color(FL_INACTIVE_COLOR);
freqtrdial->labeltype(FL_NORMAL_LABEL);
freqtrdial->labelfont(0);
freqtrdial->labelsize(10);
freqtrdial->labelcolor(FL_FOREGROUND_COLOR);
freqtrdial->maximum(127);
freqtrdial->step(1);
freqtrdial->align(Fl_Align(FL_ALIGN_BOTTOM));
freqtrdial->when(FL_WHEN_CHANGED);
o->init("Pfreqtrack");
} // Fl_Osc_Dial* freqtrdial
{ Fl_Osc_Dial* o = vsnsadial = new Fl_Osc_Dial(145, 25, 30, 30, "V.SnsA.");
vsnsadial->tooltip("Velocity sensing amount of the Filter");
vsnsadial->box(FL_ROUND_UP_BOX);
vsnsadial->color(FL_BACKGROUND_COLOR);
vsnsadial->selection_color(FL_INACTIVE_COLOR);
vsnsadial->labeltype(FL_NORMAL_LABEL);
vsnsadial->labelfont(0);
vsnsadial->labelsize(10);
vsnsadial->labelcolor(FL_FOREGROUND_COLOR);
vsnsadial->maximum(127);
vsnsadial->step(1);
vsnsadial->align(Fl_Align(FL_ALIGN_BOTTOM));
vsnsadial->when(FL_WHEN_CHANGED);
if(!alt_root.empty()) o->alt_init(alt_root, "VelocityScale");
else {o->deactivate(); o->value(127);o->mark_dead();}
} // Fl_Osc_Dial* vsnsadial
{ Fl_Osc_Dial* o = vsnsdial = new Fl_Osc_Dial(180, 25, 30, 30, "V.Sns.");
vsnsdial->tooltip("Velocity Sensing Function of the Filter");
vsnsdial->box(FL_ROUND_UP_BOX);
vsnsdial->color(FL_BACKGROUND_COLOR);
vsnsdial->selection_color(FL_INACTIVE_COLOR);
vsnsdial->labeltype(FL_NORMAL_LABEL);
vsnsdial->labelfont(0);
vsnsdial->labelsize(10);
vsnsdial->labelcolor(FL_FOREGROUND_COLOR);
vsnsdial->maximum(127);
vsnsdial->step(1);
vsnsdial->align(Fl_Align(FL_ALIGN_BOTTOM));
vsnsdial->when(FL_WHEN_CHANGED);
if(!alt_root.empty()) o->alt_init(alt_root, "VelocityScaleFunction");
else {o->deactivate(); o->value(127);o->mark_dead();}
} // Fl_Osc_Dial* vsnsdial
{ Fl_Osc_Dial* o = gaindial = new Fl_Osc_Dial(250, 35, 20, 20, "gain");
gaindial->tooltip("Filter output gain/damp");
gaindial->box(FL_ROUND_UP_BOX);
gaindial->color(FL_BACKGROUND_COLOR);
gaindial->selection_color(FL_INACTIVE_COLOR);
gaindial->labeltype(FL_NORMAL_LABEL);
gaindial->labelfont(0);
gaindial->labelsize(10);
gaindial->labelcolor(FL_FOREGROUND_COLOR);
gaindial->maximum(127);
gaindial->step(1);
gaindial->callback((Fl_Callback*)cb_gaindial);
gaindial->align(Fl_Align(FL_ALIGN_BOTTOM));
gaindial->when(FL_WHEN_CHANGED);
o->init("Pgain");
} // Fl_Osc_Dial* gaindial
{ Fl_Osc_Choice* o = stcounter = new Fl_Osc_Choice(235, 5, 35, 15, "St");
stcounter->tooltip("Filter stages (in order to increase dB/oct. value and the order of the filter\
)");
stcounter->box(FL_UP_BOX);
stcounter->down_box(FL_BORDER_BOX);
stcounter->color(FL_BACKGROUND_COLOR);
stcounter->selection_color(FL_SELECTION_COLOR);
stcounter->labeltype(FL_NORMAL_LABEL);
stcounter->labelfont(0);
stcounter->labelsize(10);
stcounter->labelcolor(FL_FOREGROUND_COLOR);
stcounter->textfont(1);
stcounter->textsize(10);
stcounter->callback((Fl_Callback*)cb_stcounter);
stcounter->align(Fl_Align(FL_ALIGN_LEFT));
stcounter->when(FL_WHEN_RELEASE);
for (int i=0;i<MAX_FILTER_STAGES;i++) {char tmp[10];snprintf(tmp,10,"%dx",i+1);o->add(tmp);};
o->init("Pstages");
} // Fl_Osc_Choice* stcounter
set_module_parameters( o );
filterparamswindow->end();
} // Fl_Group* filterparamswindow
{ editbutton = new Fl_Button(15, 40, 50, 25, "Edit");
editbutton->labelfont(1);
editbutton->labelsize(11);
editbutton->callback((Fl_Callback*)cb_editbutton);
} // Fl_Button* editbutton
{ Fl_Button* o = new Fl_Button(186, 5, 15, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P1);
} // Fl_Button* o
filterui->end();
} // Fl_Osc_Group* filterui
return filterui;
}

Fl_Osc_Window* FilterUI::make_formant_window() {
{ formantparswindow = new Fl_Osc_Window(700, 205, "Formant Filter Parameters");
formantparswindow->box(FL_FLAT_BOX);
formantparswindow->color(FL_BACKGROUND_COLOR);
formantparswindow->selection_color(FL_BACKGROUND_COLOR);
formantparswindow->labeltype(FL_NO_LABEL);
formantparswindow->labelfont(0);
formantparswindow->labelsize(14);
formantparswindow->labelcolor(FL_FOREGROUND_COLOR);
formantparswindow->user_data((void*)(this));
formantparswindow->align(Fl_Align(FL_ALIGN_TOP));
formantparswindow->when(FL_WHEN_RELEASE);
{ Fl_Button* o = new Fl_Button(665, 25, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P2);
formantparswindow->osc = osc;
formantparswindow->base = loc();
} // Fl_Button* o
{ Fl_Osc_Group* o = new Fl_Osc_Group(485, 47, 105, 113);
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(14);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_TOP));
o->when(FL_WHEN_RELEASE);
{ Fl_Counter* o = new Fl_Counter(545, 80, 40, 15, "Formant ");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_Formant);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->bounds(0,FF_MAX_FORMANTS-1);
o->value(nformant);
} // Fl_Counter* o
{ Fl_Counter* o = new Fl_Counter(545, 55, 40, 20, "Vowel no.");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Vowel);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->bounds(0,FF_MAX_VOWELS-1);
o->value(nvowel);
} // Fl_Counter* o
{ formantparsgroup = new Fl_Osc_Group(490, 105, 95, 50);
formantparsgroup->box(FL_ENGRAVED_FRAME);
formantparsgroup->color(FL_BACKGROUND_COLOR);
formantparsgroup->selection_color(FL_BACKGROUND_COLOR);
formantparsgroup->labeltype(FL_NORMAL_LABEL);
formantparsgroup->labelfont(0);
formantparsgroup->labelsize(14);
formantparsgroup->labelcolor(FL_FOREGROUND_COLOR);
formantparsgroup->align(Fl_Align(FL_ALIGN_TOP));
formantparsgroup->when(FL_WHEN_RELEASE);
{ Fl_Box* o = new Fl_Box(515, 130, 35, 16, "dummy");
o->hide();
o->deactivate();
formantparsgroup->ext = "Pvowels0/Pformants0/";
} // Fl_Box* o
{ Fl_Osc_Dial* o = formant_freq_dial = new Fl_Osc_Dial(495, 115, 25, 25, "freq");
formant_freq_dial->tooltip("Formant frequency");
formant_freq_dial->box(FL_ROUND_UP_BOX);
formant_freq_dial->color(FL_BACKGROUND_COLOR);
formant_freq_dial->selection_color(FL_INACTIVE_COLOR);
formant_freq_dial->labeltype(FL_NORMAL_LABEL);
formant_freq_dial->labelfont(0);
formant_freq_dial->labelsize(10);
formant_freq_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_freq_dial->maximum(127);
formant_freq_dial->step(1);
formant_freq_dial->callback((Fl_Callback*)cb_formant_freq_dial);
formant_freq_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_freq_dial->when(FL_WHEN_CHANGED);
//TODO get widget renaming working here!!!
o->init("freq");
} // Fl_Osc_Dial* formant_freq_dial
{ Fl_Osc_Dial* o = formant_q_dial = new Fl_Osc_Dial(525, 115, 24, 25, "Q");
formant_q_dial->tooltip("Formant\'s Q");
formant_q_dial->box(FL_ROUND_UP_BOX);
formant_q_dial->color(FL_BACKGROUND_COLOR);
formant_q_dial->selection_color(FL_INACTIVE_COLOR);
formant_q_dial->labeltype(FL_NORMAL_LABEL);
formant_q_dial->labelfont(0);
formant_q_dial->labelsize(10);
formant_q_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_q_dial->maximum(127);
formant_q_dial->step(1);
formant_q_dial->callback((Fl_Callback*)cb_formant_q_dial);
formant_q_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_q_dial->when(FL_WHEN_CHANGED);
o->init("q");
} // Fl_Osc_Dial* formant_q_dial
{ Fl_Osc_Dial* o = formant_amp_dial = new Fl_Osc_Dial(555, 115, 24, 25, "amp");
formant_amp_dial->tooltip("Formant amplitude");
formant_amp_dial->box(FL_ROUND_UP_BOX);
formant_amp_dial->color(FL_BACKGROUND_COLOR);
formant_amp_dial->selection_color(FL_INACTIVE_COLOR);
formant_amp_dial->labeltype(FL_NORMAL_LABEL);
formant_amp_dial->labelfont(0);
formant_amp_dial->labelsize(10);
formant_amp_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_amp_dial->maximum(127);
formant_amp_dial->step(1);
formant_amp_dial->callback((Fl_Callback*)cb_formant_amp_dial);
formant_amp_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_amp_dial->when(FL_WHEN_CHANGED);
o->init("amp");
} // Fl_Osc_Dial* formant_amp_dial
formantparsgroup->end();
} // Fl_Osc_Group* formantparsgroup
o->end();
} // Fl_Osc_Group* o
{ Fl_Osc_Group* o = new Fl_Osc_Group(590, 47, 100, 113);
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(14);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_TOP));
o->when(FL_WHEN_RELEASE);
{ Fl_Osc_Counter* o = sequencesize = new Fl_Osc_Counter(595, 62, 55, 20, "Seq.Size");
sequencesize->type(1);
sequencesize->box(FL_UP_BOX);
sequencesize->color(FL_BACKGROUND_COLOR);
sequencesize->selection_color(FL_INACTIVE_COLOR);
sequencesize->labeltype(FL_NORMAL_LABEL);
sequencesize->labelfont(1);
sequencesize->labelsize(10);
sequencesize->labelcolor(FL_FOREGROUND_COLOR);
sequencesize->minimum(0);
sequencesize->maximum(127);
sequencesize->step(1);
sequencesize->textfont(1);
sequencesize->textsize(11);
sequencesize->callback((Fl_Callback*)cb_sequencesize);
sequencesize->align(Fl_Align(FL_ALIGN_TOP_LEFT));
sequencesize->when(FL_WHEN_CHANGED);
o->bounds(1,FF_MAX_SEQUENCE-1);
o->init("Psequencesize");
} // Fl_Osc_Counter* sequencesize
{ Fl_Counter* o = new Fl_Counter(595, 97, 40, 15, "S.Pos.");
o->tooltip("Current position from the sequence");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_S);
o->align(Fl_Align(FL_ALIGN_TOP_RIGHT));
o->bounds(0,FF_MAX_SEQUENCE-2);
o->value(nseqpos);
} // Fl_Counter* o
{ Fl_Osc_Counter* o = vowel_counter = new Fl_Osc_Counter(640, 97, 40, 15, "Vowel");
vowel_counter->type(1);
vowel_counter->box(FL_UP_BOX);
vowel_counter->color(FL_BACKGROUND_COLOR);
vowel_counter->selection_color(FL_INACTIVE_COLOR);
vowel_counter->labeltype(FL_NORMAL_LABEL);
vowel_counter->labelfont(0);
vowel_counter->labelsize(10);
vowel_counter->labelcolor(FL_FOREGROUND_COLOR);
vowel_counter->minimum(0);
vowel_counter->maximum(127);
vowel_counter->step(1);
vowel_counter->textsize(10);
vowel_counter->callback((Fl_Callback*)cb_vowel_counter);
vowel_counter->align(Fl_Align(FL_ALIGN_TOP));
vowel_counter->when(FL_WHEN_CHANGED);
o->bounds(0,FF_MAX_VOWELS-1);
o->init("vowel_seq0");
} // Fl_Osc_Counter* vowel_counter
{ Fl_Osc_Check* o = new Fl_Osc_Check(625, 132, 60, 20, "Neg.Input");
o->tooltip("Negate the input from LFO/envelopes/etc.");
o->box(FL_NO_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("Psequencereversed");
} // Fl_Osc_Check* o
{ Fl_Osc_Dial* o = strchdial = new Fl_Osc_Dial(595, 130, 25, 25, "Strch");
strchdial->tooltip("Sequence Stretch");
strchdial->box(FL_ROUND_UP_BOX);
strchdial->color(FL_BACKGROUND_COLOR);
strchdial->selection_color(FL_INACTIVE_COLOR);
strchdial->labeltype(FL_NORMAL_LABEL);
strchdial->labelfont(0);
strchdial->labelsize(10);
strchdial->labelcolor(FL_FOREGROUND_COLOR);
strchdial->maximum(127);
strchdial->step(1);
strchdial->align(Fl_Align(FL_ALIGN_TOP));
strchdial->when(FL_WHEN_CHANGED);
o->init("Psequencestretch");
} // Fl_Osc_Dial* strchdial
o->end();
} // Fl_Osc_Group* o
{ Fl_Osc_Counter* o = numformants = new Fl_Osc_Counter(485, 15, 65, 20, "Num.Formants");
numformants->type(1);
numformants->box(FL_UP_BOX);
numformants->color(FL_BACKGROUND_COLOR);
numformants->selection_color(FL_INACTIVE_COLOR);
numformants->labeltype(FL_NORMAL_LABEL);
numformants->labelfont(0);
numformants->labelsize(10);
numformants->labelcolor(FL_FOREGROUND_COLOR);
numformants->minimum(0);
numformants->maximum(127);
numformants->step(1);
numformants->callback((Fl_Callback*)cb_numformants);
numformants->align(Fl_Align(FL_ALIGN_TOP_LEFT));
numformants->when(FL_WHEN_CHANGED);
o->bounds(1,FF_MAX_FORMANTS);
o->init("Pnumformants");
} // Fl_Osc_Counter* numformants
{ Fl_Osc_Dial* o = frsldial = new Fl_Osc_Dial(565, 15, 25, 25, "Fr.Sl.");
frsldial->tooltip("Formant\'s Slowness (Morphing)");
frsldial->box(FL_ROUND_UP_BOX);
frsldial->color(FL_BACKGROUND_COLOR);
frsldial->selection_color(FL_INACTIVE_COLOR);
frsldial->labeltype(FL_NORMAL_LABEL);
frsldial->labelfont(0);
frsldial->labelsize(10);
frsldial->labelcolor(FL_FOREGROUND_COLOR);
frsldial->maximum(127);
frsldial->step(1);
frsldial->align(Fl_Align(FL_ALIGN_TOP));
frsldial->when(FL_WHEN_CHANGED);
o->init("Pformantslowness");
} // Fl_Osc_Dial* frsldial
{ Fl_Osc_Output* o = centerfreqvo = new Fl_Osc_Output(511, 164, 40, 18, "C.f.");
centerfreqvo->tooltip("Center Frequency (kHz)");
centerfreqvo->box(FL_NO_BOX);
centerfreqvo->color(FL_BACKGROUND_COLOR);
centerfreqvo->selection_color(FL_BACKGROUND_COLOR);
centerfreqvo->labeltype(FL_NORMAL_LABEL);
centerfreqvo->labelfont(0);
centerfreqvo->labelsize(13);
centerfreqvo->labelcolor(FL_FOREGROUND_COLOR);
centerfreqvo->minimum(1);
centerfreqvo->maximum(10);
centerfreqvo->step(0.01);
centerfreqvo->value(1);
centerfreqvo->textfont(1);
centerfreqvo->textsize(11);
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo);
centerfreqvo->align(Fl_Align(FL_ALIGN_LEFT));
centerfreqvo->when(3);
o->init("centerfreq");
} // Fl_Osc_Output* centerfreqvo
{ Fl_Osc_Output* o = octavesfreqvo = new Fl_Osc_Output(511, 182, 40, 18, "Oct.");
octavesfreqvo->tooltip("No. of octaves");
octavesfreqvo->box(FL_NO_BOX);
octavesfreqvo->color(FL_BACKGROUND_COLOR);
octavesfreqvo->selection_color(FL_BACKGROUND_COLOR);
octavesfreqvo->labeltype(FL_NORMAL_LABEL);
octavesfreqvo->labelfont(0);
octavesfreqvo->labelsize(13);
octavesfreqvo->labelcolor(FL_FOREGROUND_COLOR);
octavesfreqvo->minimum(1);
octavesfreqvo->maximum(127);
octavesfreqvo->step(0.01);
octavesfreqvo->value(5);
octavesfreqvo->textfont(1);
octavesfreqvo->textsize(11);
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo);
octavesfreqvo->align(Fl_Align(FL_ALIGN_LEFT));
octavesfreqvo->when(3);
o->init("octavesfreq");
} // Fl_Osc_Output* octavesfreqvo
{ Fl_Osc_Slider* o = cfknob = new Fl_Osc_Slider(555, 167, 84, 15);
cfknob->type(5);
cfknob->box(FL_FLAT_BOX);
cfknob->color(FL_BACKGROUND_COLOR);
cfknob->selection_color(FL_BACKGROUND_COLOR);
cfknob->labeltype(FL_NORMAL_LABEL);
cfknob->labelfont(0);
cfknob->labelsize(14);
cfknob->labelcolor(FL_FOREGROUND_COLOR);
cfknob->maximum(127);
cfknob->callback((Fl_Callback*)cb_cfknob);
cfknob->align(Fl_Align(FL_ALIGN_BOTTOM));
cfknob->when(FL_WHEN_CHANGED);
o->init("Pcenterfreq", 'i');
} // Fl_Osc_Slider* cfknob
{ Fl_Osc_Slider* o = octknob = new Fl_Osc_Slider(555, 185, 84, 15);
octknob->type(5);
octknob->box(FL_FLAT_BOX);
octknob->color(FL_BACKGROUND_COLOR);
octknob->selection_color(FL_BACKGROUND_COLOR);
octknob->labeltype(FL_NORMAL_LABEL);
octknob->labelfont(0);
octknob->labelsize(14);
octknob->labelcolor(FL_FOREGROUND_COLOR);
octknob->maximum(127);
octknob->callback((Fl_Callback*)cb_octknob);
octknob->align(Fl_Align(FL_ALIGN_BOTTOM));
octknob->when(FL_WHEN_CHANGED);
o->init("Poctavesfreq", 'i');
} // Fl_Osc_Slider* octknob
{ FormantFilterGraph* o = formantfiltergraph = new FormantFilterGraph(5, 5, 475, 195);
formantfiltergraph->box(FL_BORDER_BOX);
formantfiltergraph->color(FL_BACKGROUND_COLOR);
formantfiltergraph->selection_color(FL_BACKGROUND_COLOR);
formantfiltergraph->labeltype(FL_NORMAL_LABEL);
formantfiltergraph->labelfont(0);
formantfiltergraph->labelsize(14);
formantfiltergraph->labelcolor(FL_FOREGROUND_COLOR);
formantfiltergraph->align(Fl_Align(FL_ALIGN_CENTER));
formantfiltergraph->when(FL_WHEN_RELEASE);
o->init(&nvowel,&nformant);
} // FormantFilterGraph* formantfiltergraph
{ Fl_Osc_Dial* o = wvknob = new Fl_Osc_Dial(600, 15, 25, 25, "Vw.Cl.");
wvknob->tooltip("Vowel \"clearness\" (how the mixed vowels are avoided)");
wvknob->box(FL_ROUND_UP_BOX);
wvknob->color(FL_BACKGROUND_COLOR);
wvknob->selection_color(FL_INACTIVE_COLOR);
wvknob->labeltype(FL_NORMAL_LABEL);
wvknob->labelfont(0);
wvknob->labelsize(10);
wvknob->labelcolor(FL_FOREGROUND_COLOR);
wvknob->maximum(127);
wvknob->step(1);
wvknob->align(Fl_Align(FL_ALIGN_TOP));
wvknob->when(FL_WHEN_CHANGED);
o->init("Pvowelclearness");
} // Fl_Osc_Dial* wvknob
{ Fl_Button* o = new Fl_Button(645, 180, 50, 25, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(635, 25, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_C1);
} // Fl_Button* o
{ Fl_Box* o = new Fl_Box(635, 6, 55, 15, "Vowel");
o->labelfont(1);
} // Fl_Box* o
formantparswindow->end();
} // Fl_Osc_Window* formantparswindow
return formantparswindow;
}

void FilterUI::update_formant_window() {
//formant_freq_dial->value(pars->Pvowels[nvowel].formants[nformant].freq);
//formant_q_dial->value(pars->Pvowels[nvowel].formants[nformant].q);
//formant_amp_dial->value(pars->Pvowels[nvowel].formants[nformant].amp);
if (nformant<numformants->value()) formantparsgroup->activate();
else formantparsgroup->deactivate();
if (nseqpos<sequencesize->value()) vowel_counter->activate();
else vowel_counter->deactivate();
//vowel_counter->value(pars->Psequence[nseqpos].nvowel);
}

void FilterUI::refresh() {
update_formant_window();
formantfiltergraph->redraw();
const int Pcategory = filtertype->value();
const int Ptype = analogfiltertypechoice->value();
if (Pcategory==2) svfiltertypechoice->value(Ptype);
if (Pcategory==0) analogfiltertypechoice->value(Ptype);
const int categ=Pcategory;
if ((categ==0)||(categ==2)) {
if (categ==0) {
analogfiltertypechoice->show();
svfiltertypechoice->hide();
} else {
svfiltertypechoice->show();
analogfiltertypechoice->hide();
};
editbutton->hide();
formantparswindow->hide();
cfreqdial->label("C.freq");
} else {
analogfiltertypechoice->hide();
svfiltertypechoice->hide();
editbutton->show();
cfreqdial->label("BS.pos");
};
filterparamswindow->redraw();
}

void FilterUI::rebase(std::string new_base) {
formantparswindow->rebase(new_base+"VoiceFilter/");
Fl_Osc_Group::rebase(new_base);
}

void FilterUI::init(std::string alt_root_, Fl_Osc_Interface *osc_, std::string base_, std::string ext_) {
alt_root = alt_root_;
osc = osc_;
base = base_;
ext = ext_;
assert(osc);
make_window();
end();
make_formant_window();
filterui->resize(this->x(),this->y(),this->w(),this->h());
switchcategory(0);
formantparswindow->label(this->label());
update_formant_window();
}

void FilterUI::switchcategory(int newcat) {
//TODO update Pgain & filter type on switch Pgain=64;
(void) newcat;
refresh();
}

void FilterUI::use_for_dynamic_filter() {
freqtrdial->deactivate();
gaindial->when(0);
cfknob->when(FL_WHEN_RELEASE);
octknob->when(FL_WHEN_RELEASE);
frsldial->when(0);
wvknob->when(0);
formant_freq_dial->when(0);
formant_q_dial->when(0);
formant_amp_dial->when(0);
strchdial->when(0);
}

+ 0
- 161
zynaddsubfx/UI/FilterUI.h View File

@@ -1,161 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef FilterUI_h
#define FilterUI_h
#include <FL/Fl.H>
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Choice.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Counter.H"
#include "Fl_Osc_Output.H"
#include "Fl_Osc_Slider.H"
#include "Fl_Osc_Pane.H"
#include "../globals.h"
#include "../Misc/Util.h"
#include <FL/Fl_Group.H>
#include "../Params/FilterParams.h"
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/fl_ask.H>
#include "PresetsUI.h"
#include "common.H"
#include "FormantFilterGraph.H"
using namespace zyncarla;
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Box.H>

class FilterUI : public Fl_Osc_Group,PresetsUI_ {
public:
FilterUI(int x,int y, int w, int h, const char *label=0);
~FilterUI();
Fl_Osc_Group* make_window();
Fl_Osc_Group *filterui;
private:
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Group *filterparamswindow;
Fl_Osc_Choice *analogfiltertypechoice;
static Fl_Menu_Item menu_analogfiltertypechoice[];
Fl_Osc_Choice *svfiltertypechoice;
static Fl_Menu_Item menu_svfiltertypechoice[];
Fl_Osc_Choice *filtertype;
private:
void cb_filtertype_i(Fl_Osc_Choice*, void*);
static void cb_filtertype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_filtertype[];
public:
Fl_Osc_Dial *cfreqdial;
Fl_Osc_Dial *qdial;
private:
void cb_qdial_i(Fl_Osc_Dial*, void*);
static void cb_qdial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *freqtrdial;
Fl_Osc_Dial *vsnsadial;
Fl_Osc_Dial *vsnsdial;
Fl_Osc_Dial *gaindial;
private:
void cb_gaindial_i(Fl_Osc_Dial*, void*);
static void cb_gaindial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Choice *stcounter;
private:
void cb_stcounter_i(Fl_Osc_Choice*, void*);
static void cb_stcounter(Fl_Osc_Choice*, void*);
public:
Fl_Button *editbutton;
private:
void cb_editbutton_i(Fl_Button*, void*);
static void cb_editbutton(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
public:
Fl_Osc_Window* make_formant_window();
Fl_Osc_Window *formantparswindow;
private:
void cb_P2_i(Fl_Button*, void*);
static void cb_P2(Fl_Button*, void*);
void cb_Formant_i(Fl_Counter*, void*);
static void cb_Formant(Fl_Counter*, void*);
void cb_Vowel_i(Fl_Counter*, void*);
static void cb_Vowel(Fl_Counter*, void*);
public:
Fl_Osc_Group *formantparsgroup;
Fl_Osc_Dial *formant_freq_dial;
private:
void cb_formant_freq_dial_i(Fl_Osc_Dial*, void*);
static void cb_formant_freq_dial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *formant_q_dial;
private:
void cb_formant_q_dial_i(Fl_Osc_Dial*, void*);
static void cb_formant_q_dial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *formant_amp_dial;
private:
void cb_formant_amp_dial_i(Fl_Osc_Dial*, void*);
static void cb_formant_amp_dial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Counter *sequencesize;
private:
void cb_sequencesize_i(Fl_Osc_Counter*, void*);
static void cb_sequencesize(Fl_Osc_Counter*, void*);
void cb_S_i(Fl_Counter*, void*);
static void cb_S(Fl_Counter*, void*);
public:
Fl_Osc_Counter *vowel_counter;
private:
void cb_vowel_counter_i(Fl_Osc_Counter*, void*);
static void cb_vowel_counter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Dial *strchdial;
Fl_Osc_Counter *numformants;
private:
void cb_numformants_i(Fl_Osc_Counter*, void*);
static void cb_numformants(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Dial *frsldial;
Fl_Osc_Output *centerfreqvo;
private:
void cb_centerfreqvo_i(Fl_Osc_Output*, void*);
static void cb_centerfreqvo(Fl_Osc_Output*, void*);
public:
Fl_Osc_Output *octavesfreqvo;
private:
void cb_octavesfreqvo_i(Fl_Osc_Output*, void*);
static void cb_octavesfreqvo(Fl_Osc_Output*, void*);
public:
Fl_Osc_Slider *cfknob;
private:
void cb_cfknob_i(Fl_Osc_Slider*, void*);
static void cb_cfknob(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Slider *octknob;
private:
void cb_octknob_i(Fl_Osc_Slider*, void*);
static void cb_octknob(Fl_Osc_Slider*, void*);
public:
FormantFilterGraph *formantfiltergraph;
Fl_Osc_Dial *wvknob;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
public:
void update_formant_window();
void refresh();
void rebase(std::string new_base);
void init(std::string alt_root_, Fl_Osc_Interface *osc_, std::string base_, std::string ext_);
void switchcategory(int newcat);
void use_for_dynamic_filter();
private:
std::string alt_root;
int nvowel,nformant,nseqpos;
};
#endif

+ 0
- 251
zynaddsubfx/UI/LFOUI.cpp View File

@@ -1,251 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/LFOUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
#include "../globals.h"
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>

Fl_Menu_Item LFOUI::menu_LFOtype[] = {
{"SINE", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"TRI", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"SQR", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"R.up", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"R.dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"E1dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"E2dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void LFOUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(lfoparamswindow->loc());
}
void LFOUI::cb_C(Fl_Button* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_C_i(o,v);
}

void LFOUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(lfoparamswindow->loc(),this);
}
void LFOUI::cb_P(Fl_Button* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_P_i(o,v);
}

LFOUI::LFOUI(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h) {
cached_label = label;
}

LFOUI::~LFOUI() {
lfoui->hide();
hide();
}

Fl_Group* LFOUI::make_window() {
{ lfoui = new Fl_Group(0, 0, 230, 70);
lfoui->box(FL_FLAT_BOX);
lfoui->color(FL_LIGHT1);
lfoui->selection_color(FL_BACKGROUND_COLOR);
lfoui->labeltype(FL_NO_LABEL);
lfoui->labelfont(1);
lfoui->labelsize(14);
lfoui->labelcolor(FL_FOREGROUND_COLOR);
lfoui->user_data((void*)(this));
lfoui->align(Fl_Align(FL_ALIGN_TOP));
lfoui->when(FL_WHEN_RELEASE);
{ Fl_Osc_Group* o = lfoparamswindow = new Fl_Osc_Group(0, 0, 230, 70, "LFO");
lfoparamswindow->box(FL_UP_BOX);
lfoparamswindow->color(FL_CYAN);
lfoparamswindow->selection_color(FL_BACKGROUND_COLOR);
lfoparamswindow->labeltype(FL_ENGRAVED_LABEL);
lfoparamswindow->labelfont(0);
lfoparamswindow->labelsize(10);
lfoparamswindow->labelcolor(FL_FOREGROUND_COLOR);
lfoparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
lfoparamswindow->when(FL_WHEN_RELEASE);
{ Fl_Osc_DialF* o = freq = new Fl_Osc_DialF(5, 20, 30, 30, "Freq.");
freq->tooltip("LFO Frequency");
freq->box(FL_ROUND_UP_BOX);
freq->color(FL_BACKGROUND_COLOR);
freq->selection_color(FL_INACTIVE_COLOR);
freq->labeltype(FL_NORMAL_LABEL);
freq->labelfont(0);
freq->labelsize(10);
freq->labelcolor(FL_FOREGROUND_COLOR);
freq->step(1e-05);
freq->align(Fl_Align(FL_ALIGN_BOTTOM));
freq->when(FL_WHEN_CHANGED);
o->init("Pfreq");
} // Fl_Osc_DialF* freq
{ Fl_Osc_Dial* o = intensity = new Fl_Osc_Dial(40, 20, 30, 30, "Depth");
intensity->tooltip("LFO Amount");
intensity->box(FL_ROUND_UP_BOX);
intensity->color(FL_BACKGROUND_COLOR);
intensity->selection_color(FL_INACTIVE_COLOR);
intensity->labeltype(FL_NORMAL_LABEL);
intensity->labelfont(0);
intensity->labelsize(10);
intensity->labelcolor(FL_FOREGROUND_COLOR);
intensity->maximum(127);
intensity->step(1);
intensity->align(Fl_Align(FL_ALIGN_BOTTOM));
intensity->when(FL_WHEN_CHANGED);
o->init("Pintensity");
} // Fl_Osc_Dial* intensity
{ Fl_Osc_Dial* o = delay = new Fl_Osc_Dial(110, 20, 30, 30, "Delay");
delay->tooltip("LFO delay");
delay->box(FL_ROUND_UP_BOX);
delay->color(FL_BACKGROUND_COLOR);
delay->selection_color(FL_INACTIVE_COLOR);
delay->labeltype(FL_NORMAL_LABEL);
delay->labelfont(0);
delay->labelsize(10);
delay->labelcolor(FL_FOREGROUND_COLOR);
delay->maximum(127);
delay->step(1);
delay->align(Fl_Align(FL_ALIGN_BOTTOM));
delay->when(FL_WHEN_CHANGED);
o->init("Pdelay");
} // Fl_Osc_Dial* delay
{ Fl_Osc_Dial* o = startphase = new Fl_Osc_Dial(75, 20, 30, 30, "Start");
startphase->tooltip("LFO Startphase (leftmost is Random)");
startphase->box(FL_ROUND_UP_BOX);
startphase->color(FL_BACKGROUND_COLOR);
startphase->selection_color(FL_INACTIVE_COLOR);
startphase->labeltype(FL_NORMAL_LABEL);
startphase->labelfont(0);
startphase->labelsize(10);
startphase->labelcolor(FL_FOREGROUND_COLOR);
startphase->maximum(127);
startphase->step(1);
startphase->align(Fl_Align(FL_ALIGN_BOTTOM));
startphase->when(FL_WHEN_CHANGED);
o->init("Pstartphase");
} // Fl_Osc_Dial* startphase
{ Fl_Osc_Dial* o = randomness = new Fl_Osc_Dial(180, 7, 20, 20, "A.R.");
randomness->tooltip("LFO Amplitude Randomness");
randomness->box(FL_ROUND_UP_BOX);
randomness->color(FL_BACKGROUND_COLOR);
randomness->selection_color(FL_INACTIVE_COLOR);
randomness->labeltype(FL_NORMAL_LABEL);
randomness->labelfont(0);
randomness->labelsize(10);
randomness->labelcolor(FL_FOREGROUND_COLOR);
randomness->maximum(127);
randomness->step(1);
randomness->align(Fl_Align(FL_ALIGN_BOTTOM));
randomness->when(FL_WHEN_CHANGED);
o->init("Prandomness");
} // Fl_Osc_Dial* randomness
{ Fl_Osc_Choice* o = LFOtype = new Fl_Osc_Choice(180, 40, 45, 15, "Type");
LFOtype->tooltip("LFO function");
LFOtype->box(FL_UP_BOX);
LFOtype->down_box(FL_BORDER_BOX);
LFOtype->color(FL_BACKGROUND_COLOR);
LFOtype->selection_color(FL_SELECTION_COLOR);
LFOtype->labeltype(FL_NORMAL_LABEL);
LFOtype->labelfont(0);
LFOtype->labelsize(10);
LFOtype->labelcolor(FL_FOREGROUND_COLOR);
LFOtype->textsize(8);
LFOtype->align(Fl_Align(FL_ALIGN_BOTTOM));
LFOtype->when(FL_WHEN_RELEASE);
LFOtype->menu(menu_LFOtype);
o->init("PLFOtype");
} // Fl_Osc_Choice* LFOtype
{ Fl_Osc_Check* o = continous = new Fl_Osc_Check(165, 35, 15, 15, "C.");
continous->tooltip("Continuous LFO");
continous->box(FL_NO_BOX);
continous->down_box(FL_DOWN_BOX);
continous->color(FL_BACKGROUND_COLOR);
continous->selection_color(FL_FOREGROUND_COLOR);
continous->labeltype(FL_NORMAL_LABEL);
continous->labelfont(0);
continous->labelsize(10);
continous->labelcolor(FL_FOREGROUND_COLOR);
continous->align(Fl_Align(FL_ALIGN_BOTTOM));
continous->when(FL_WHEN_RELEASE);
o->init("Pcontinous");
} // Fl_Osc_Check* continous
{ Fl_Osc_Dial* o = freqrand = new Fl_Osc_Dial(205, 7, 20, 20, "F.R.");
freqrand->tooltip("LFO Frequency Randomness");
freqrand->box(FL_ROUND_UP_BOX);
freqrand->color(FL_BACKGROUND_COLOR);
freqrand->selection_color(FL_INACTIVE_COLOR);
freqrand->labeltype(FL_NORMAL_LABEL);
freqrand->labelfont(0);
freqrand->labelsize(10);
freqrand->labelcolor(FL_FOREGROUND_COLOR);
freqrand->maximum(127);
freqrand->step(1);
freqrand->align(Fl_Align(FL_ALIGN_BOTTOM));
freqrand->when(FL_WHEN_CHANGED);
o->init("Pfreqrand");
} // Fl_Osc_Dial* freqrand
{ Fl_Osc_Dial* o = stretch = new Fl_Osc_Dial(144, 30, 20, 20, "Str.");
stretch->tooltip("LFO stretch");
stretch->box(FL_ROUND_UP_BOX);
stretch->color(FL_BACKGROUND_COLOR);
stretch->selection_color(FL_INACTIVE_COLOR);
stretch->labeltype(FL_NORMAL_LABEL);
stretch->labelfont(0);
stretch->labelsize(10);
stretch->labelcolor(FL_FOREGROUND_COLOR);
stretch->maximum(127);
stretch->step(1);
stretch->align(Fl_Align(FL_ALIGN_BOTTOM));
stretch->when(FL_WHEN_CHANGED);
o->init("Pstretch");
} // Fl_Osc_Dial* stretch
{ Fl_Button* o = new Fl_Button(145, 10, 15, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(162, 10, 15, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
set_module_parameters(o);
lfoparamswindow->end();
} // Fl_Osc_Group* lfoparamswindow
lfoui->end();
} // Fl_Group* lfoui
return lfoui;
}

void LFOUI::refresh() {
freq->update();
intensity->update();
startphase->update();
delay->update();
continous->update();
stretch->update();
randomness->update();
freqrand->update();
LFOtype->update();
}

void LFOUI::init(Fl_Osc_Interface *osc_, std::string base_, std::string ext_) {
base = base_;
ext = ext_;
osc = osc_;
make_window();
end();
refresh();
lfoui->resize(this->x(),this->y(),this->w(),this->h());
lfoparamswindow->label(cached_label);
}

+ 0
- 44
zynaddsubfx/UI/LFOUI.h View File

@@ -1,44 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef LFOUI_h
#define LFOUI_h
#include <FL/Fl.H>
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_DialF.H"
#include "Fl_Osc_Choice.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Pane.H"
#include <string>
#include "PresetsUI.h"
#include "common.H"
#include <FL/Fl_Button.H>

class LFOUI : public Fl_Osc_Group, PresetsUI_ {
public:
LFOUI(int x,int y, int w, int h, const char *label=0);
~LFOUI();
Fl_Group* make_window();
Fl_Group *lfoui;
Fl_Osc_Group *lfoparamswindow;
Fl_Osc_DialF *freq;
Fl_Osc_Dial *intensity;
Fl_Osc_Dial *delay;
Fl_Osc_Dial *startphase;
Fl_Osc_Dial *randomness;
Fl_Osc_Choice *LFOtype;
static Fl_Menu_Item menu_LFOtype[];
Fl_Osc_Check *continous;
Fl_Osc_Dial *freqrand;
Fl_Osc_Dial *stretch;
private:
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
void refresh();
void init(Fl_Osc_Interface *osc_, std::string base_, std::string ext_);
private:
const char *cached_label;
};
#endif

+ 0
- 2547
zynaddsubfx/UI/MasterUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 417
zynaddsubfx/UI/MasterUI.h View File

@@ -1,417 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef MasterUI_h
#define MasterUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "WidgetPDial.h"
#include "ADnoteUI.h"
#include "SUBnoteUI.h"
#include "EffUI.h"
#include "VirKeyboard.h"
#include "ConfigUI.h"
#include "BankUI.h"
#include "PartUI.h"
#include "MicrotonalUI.h"
#include "PresetsUI.h"
#include "NioUI.h"
#include "VuPartMeter.h"
#include "VuMasterMeter.h"
#include "PartNameButton.h"
#include "common.H"
#if USE_NSM
#include "NSM.H"
extern NSM_Client *nsm;
#endif
#if !defined(PLUGINVERSION) && HAS_X11
#include <X11/xpm.h>
#endif
#include "../globals.h"

class SysEffSend : public Fl_Osc_Dial {
public:
SysEffSend(int x,int y, int w, int h, const char *label=0);
void init(int neff1,int neff2);
~SysEffSend();
};
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>

class Panellistitem : public Fl_Osc_Group {
Fl_Group* make_window();
Fl_Group *panellistitem;
Fl_Group *panellistitemgroup;
public:
VuPartMeter *partvu;
PartNameButton *partname;
private:
void cb_partname_i(PartNameButton*, void*);
static void cb_partname(PartNameButton*, void*);
public:
Fl_Osc_TSlider *partvolume;
Fl_Osc_Dial *partpanning;
private:
void cb_edit_i(Fl_Button*, void*);
static void cb_edit(Fl_Button*, void*);
public:
Fl_Osc_Choice *partrcv;
private:
Fl_Osc_Check *partenabled;
void cb_partenabled_i(Fl_Osc_Check*, void*);
static void cb_partenabled(Fl_Osc_Check*, void*);
public:
Panellistitem(int x,int y, int w, int h, const char *label=0);
void init(int npart_,BankUI *bankui_, PartUI *partui_);
void refresh();
~Panellistitem();
private:
int npart;
BankUI *bankui;
PartUI *partui;
};
#include <FL/Fl_Box.H>
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Choice.H>

class MasterUI {
public:
Fl_Osc_Window* make_window();
Fl_Osc_Window *masterwindow;
private:
void cb_masterwindow_i(Fl_Osc_Window*, void*);
static void cb_masterwindow(Fl_Osc_Window*, void*);
public:
Fl_Box *dummy_again;
Fl_Osc_Group *win_root;
Fl_Menu_Bar *mastermenu;
static Fl_Menu_Item menu_mastermenu[];
private:
void cb_New_i(Fl_Menu_*, void*);
static void cb_New(Fl_Menu_*, void*);
void cb_Revert_i(Fl_Menu_*, void*);
static void cb_Revert(Fl_Menu_*, void*);
void cb_Open_i(Fl_Menu_*, void*);
static void cb_Open(Fl_Menu_*, void*);
void cb_Save_i(Fl_Menu_*, void*);
static void cb_Save(Fl_Menu_*, void*);
void cb_Load_i(Fl_Menu_*, void*);
static void cb_Load(Fl_Menu_*, void*);
void cb_Clear_i(Fl_Menu_*, void*);
static void cb_Clear(Fl_Menu_*, void*);
void cb_Save1_i(Fl_Menu_*, void*);
static void cb_Save1(Fl_Menu_*, void*);
void cb_Load1_i(Fl_Menu_*, void*);
static void cb_Load1(Fl_Menu_*, void*);
void cb_Save2_i(Fl_Menu_*, void*);
static void cb_Save2(Fl_Menu_*, void*);
void cb_Show_i(Fl_Menu_*, void*);
static void cb_Show(Fl_Menu_*, void*);
void cb_Settings_i(Fl_Menu_*, void*);
static void cb_Settings(Fl_Menu_*, void*);
void cb_N_i(Fl_Menu_*, void*);
static void cb_N(Fl_Menu_*, void*);
void cb_Copyright_i(Fl_Menu_*, void*);
static void cb_Copyright(Fl_Menu_*, void*);
void cb_E_i(Fl_Menu_*, void*);
static void cb_E(Fl_Menu_*, void*);
void cb_Clear1_i(Fl_Menu_*, void*);
static void cb_Clear1(Fl_Menu_*, void*);
void cb_Open1_i(Fl_Menu_*, void*);
static void cb_Open1(Fl_Menu_*, void*);
void cb_Save3_i(Fl_Menu_*, void*);
static void cb_Save3(Fl_Menu_*, void*);
void cb_Show1_i(Fl_Menu_*, void*);
static void cb_Show1(Fl_Menu_*, void*);
void cb_Virtual_i(Fl_Menu_*, void*);
static void cb_Virtual(Fl_Menu_*, void*);
public:
static Fl_Menu_Item *recordmenu;
private:
void cb_Choose_i(Fl_Menu_*, void*);
static void cb_Choose(Fl_Menu_*, void*);
void cb_Switch_i(Fl_Menu_*, void*);
static void cb_Switch(Fl_Menu_*, void*);
public:
Fl_Box *dummy;
Fl_Osc_Dial *mastervolumedial;
Fl_Osc_Counter *masterkeyshiftcounter;
private:
void cb_Panic_i(Fl_Osc_Button*, void*);
static void cb_Panic(Fl_Osc_Button*, void*);
public:
Fl_Group *partuigroup;
PartUI *partui;
Fl_Counter *syseffnocounter;
private:
void cb_syseffnocounter_i(Fl_Counter*, void*);
static void cb_syseffnocounter(Fl_Counter*, void*);
public:
Fl_Osc_Choice *sysefftype;
private:
void cb_sysefftype_i(Fl_Osc_Choice*, void*);
static void cb_sysefftype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_sysefftype[];
public:
Fl_Osc_Group *syseffectuigroup;
EffUI *syseffectui;
private:
void cb_Send_i(Fl_Button*, void*);
static void cb_Send(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Counter *inseffnocounter;
private:
void cb_inseffnocounter_i(Fl_Counter*, void*);
static void cb_inseffnocounter(Fl_Counter*, void*);
public:
Fl_Osc_Choice *insefftype;
private:
void cb_insefftype_i(Fl_Osc_Choice*, void*);
static void cb_insefftype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_insefftype[];
public:
Fl_Osc_Group *inseffectuigroup;
EffUI *inseffectui;
Fl_Osc_Choice *inseffpart;
private:
void cb_inseffpart_i(Fl_Osc_Choice*, void*);
static void cb_inseffpart(Fl_Osc_Choice*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
void cb_Scales_i(Fl_Button*, void*);
static void cb_Scales(Fl_Button*, void*);
public:
Fl_Osc_Button *recordbutton;
private:
void cb_recordbutton_i(Fl_Osc_Button*, void*);
static void cb_recordbutton(Fl_Osc_Button*, void*);
public:
Fl_Osc_Button *stopbutton;
private:
void cb_stopbutton_i(Fl_Osc_Button*, void*);
static void cb_stopbutton(Fl_Osc_Button*, void*);
public:
Fl_Osc_Button *pausebutton;
private:
void cb_pausebutton_i(Fl_Osc_Button*, void*);
static void cb_pausebutton(Fl_Osc_Button*, void*);
public:
Fl_Box *pauselabel;
VuMasterMeter *mastervu;
Fl_Osc_Check *nrpnbutton;
Fl_Counter *npartcounter;
private:
void cb_npartcounter_i(Fl_Counter*, void*);
static void cb_npartcounter(Fl_Counter*, void*);
void cb_vK_i(Fl_Button*, void*);
static void cb_vK(Fl_Button*, void*);
void cb_Reset_i(Fl_Button*, void*);
static void cb_Reset(Fl_Button*, void*);
public:
Fl_Osc_Dial *globalfinedetuneslider;
private:
void cb_Panel_i(Fl_Button*, void*);
static void cb_Panel(Fl_Button*, void*);
public:
Fl_Button *sm_indicator1;
Fl_Double_Window *aboutwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Osc_Window *syseffsendwindow;
Fl_Scroll *syseffscroll;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Osc_Window *panelwindow;
private:
void cb_Close2_i(Fl_Button*, void*);
static void cb_Close2(Fl_Button*, void*);
void cb_Refresh_i(Fl_Button*, void*);
static void cb_Refresh(Fl_Button*, void*);
public:
Fl_Osc_Window *simplemasterwindow;
private:
void cb_simplemasterwindow_i(Fl_Osc_Window*, void*);
static void cb_simplemasterwindow(Fl_Osc_Window*, void*);
public:
Fl_Menu_Bar *simplemastermenu;
static Fl_Menu_Item menu_simplemastermenu[];
private:
void cb_New1_i(Fl_Menu_*, void*);
static void cb_New1(Fl_Menu_*, void*);
void cb_Revert1_i(Fl_Menu_*, void*);
static void cb_Revert1(Fl_Menu_*, void*);
void cb_Open2_i(Fl_Menu_*, void*);
static void cb_Open2(Fl_Menu_*, void*);
void cb_Save4_i(Fl_Menu_*, void*);
static void cb_Save4(Fl_Menu_*, void*);
void cb_Settings1_i(Fl_Menu_*, void*);
static void cb_Settings1(Fl_Menu_*, void*);
void cb_Copyright1_i(Fl_Menu_*, void*);
static void cb_Copyright1(Fl_Menu_*, void*);
void cb_E1_i(Fl_Menu_*, void*);
static void cb_E1(Fl_Menu_*, void*);
void cb_Open3_i(Fl_Menu_*, void*);
static void cb_Open3(Fl_Menu_*, void*);
void cb_Show2_i(Fl_Menu_*, void*);
static void cb_Show2(Fl_Menu_*, void*);
void cb_Switch1_i(Fl_Menu_*, void*);
static void cb_Switch1(Fl_Menu_*, void*);
Fl_Osc_Group *simplelistitemgroup;
public:
PartNameButton *partname;
private:
void cb_partname1_i(PartNameButton*, void*);
static void cb_partname1(PartNameButton*, void*);
public:
Fl_Osc_TSlider *partpanning;
Fl_Osc_Choice *partrcv;
private:
void cb_partrcv_i(Fl_Osc_Choice*, void*);
static void cb_partrcv(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Dial *partvolume;
Fl_Osc_Check *simplepartportamento;
Fl_Osc_Counter *simpleminkcounter;
private:
void cb_simpleminkcounter_i(Fl_Osc_Counter*, void*);
static void cb_simpleminkcounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Counter *simplemaxkcounter;
private:
void cb_simplemaxkcounter_i(Fl_Osc_Counter*, void*);
static void cb_simplemaxkcounter(Fl_Osc_Counter*, void*);
void cb_m_i(Fl_Osc_Button*, void*);
static void cb_m(Fl_Osc_Button*, void*);
void cb_M_i(Fl_Osc_Button*, void*);
static void cb_M(Fl_Osc_Button*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Osc_Counter *simplepartkeyshiftcounter;
Fl_Osc_Dial *simplesyseffsend;
private:
Fl_Osc_Check *partenabled;
void cb_partenabled1_i(Fl_Osc_Check*, void*);
static void cb_partenabled1(Fl_Osc_Check*, void*);
public:
VirKeys *virkeys;
Fl_Counter *simplesyseffnocounter;
private:
void cb_simplesyseffnocounter_i(Fl_Counter*, void*);
static void cb_simplesyseffnocounter(Fl_Counter*, void*);
public:
Fl_Osc_Choice *simplesysefftype;
private:
void cb_simplesysefftype_i(Fl_Osc_Choice*, void*);
static void cb_simplesysefftype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_simplesysefftype[];
public:
Fl_Osc_Group *simplesyseffectuigroup;
SimpleEffUI *simplesyseffectui;
private:
void cb_Send1_i(Fl_Button*, void*);
static void cb_Send1(Fl_Button*, void*);
void cb_P2_i(Fl_Button*, void*);
static void cb_P2(Fl_Button*, void*);
public:
Fl_Counter *simpleinseffnocounter;
private:
void cb_simpleinseffnocounter_i(Fl_Counter*, void*);
static void cb_simpleinseffnocounter(Fl_Counter*, void*);
public:
Fl_Osc_Choice *simpleinsefftype;
private:
void cb_simpleinsefftype_i(Fl_Osc_Choice*, void*);
static void cb_simpleinsefftype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_simpleinsefftype[];
public:
Fl_Osc_Group *simpleinseffectuigroup;
SimpleEffUI *simpleinseffectui;
Fl_Choice *simpleinseffpart;
private:
void cb_simpleinseffpart_i(Fl_Choice*, void*);
static void cb_simpleinseffpart(Fl_Choice*, void*);
void cb_P3_i(Fl_Button*, void*);
static void cb_P3(Fl_Button*, void*);
public:
VuMasterMeter *simplemastervu;
Fl_Osc_Dial *simplemastervolumedial;
Fl_Osc_Counter *simplemasterkeyshiftcounter;
private:
void cb_Stop_i(Fl_Osc_Button*, void*);
static void cb_Stop(Fl_Osc_Button*, void*);
void cb_Reset1_i(Fl_Button*, void*);
static void cb_Reset1(Fl_Button*, void*);
public:
Fl_Osc_Dial *simpleglobalfinedetuneslider;
Fl_Counter *simplenpartcounter;
private:
void cb_simplenpartcounter_i(Fl_Counter*, void*);
static void cb_simplenpartcounter(Fl_Counter*, void*);
void cb_Keyb_i(Fl_Counter*, void*);
static void cb_Keyb(Fl_Counter*, void*);
public:
Fl_Button *sm_indicator2;
Fl_Osc_Window *selectuiwindow;
private:
void cb_selectuiwindow_i(Fl_Osc_Window*, void*);
static void cb_selectuiwindow(Fl_Osc_Window*, void*);
void cb_Advanced_i(Fl_Button*, void*);
static void cb_Advanced(Fl_Button*, void*);
void cb_Beginner_i(Fl_Button*, void*);
static void cb_Beginner(Fl_Button*, void*);
public:
void updatesendwindow();
void updatepanel();
void setfilelabel(const char *filename);
MasterUI(int *exitprogram_, class Fl_Osc_Interface *osc_);
~MasterUI();
void showUI(int UIMode);
void simplerefresh();
void do_new_master_unconditional();
void do_new_master();
int do_revert_changes_unconditional();
void do_revert_changes();
int do_load_master_unconditional(const char *filename, const char *display_name);
void do_load_master(const char* file = NULL);
void do_save_master(const char* file = NULL);
void refresh_master_ui();
class Osc_DataModel *last_xmz;
private:
MicrotonalUI *microtonalui;
BankUI *bankui;
int ninseff,npart;
int nsyseff;
int *exitprogram;
Fl_Osc_Dial *syseffsend[NUM_SYS_EFX][NUM_SYS_EFX];
VirKeyboard *virkeyboard;
ConfigUI *configui;
int swapefftype;
char masterwindowlabel[100];
public:
Panellistitem *panellistitem[NUM_MIDI_PARTS];
private:
NioUI nioui;
public:
class Fl_Osc_Interface *osc;
char last_loaded[XMZ_PATH_MAX];
char loading_next[XMZ_PATH_MAX];
void close();
};
#endif

+ 0
- 449
zynaddsubfx/UI/MicrotonalUI.cpp View File

@@ -1,449 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/MicrotonalUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void MicrotonalUI::cb_Invert_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) centerinvertcounter->deactivate();
else centerinvertcounter->activate();
}
void MicrotonalUI::cb_Invert(Fl_Osc_Check* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Invert_i(o,v);
}

void MicrotonalUI::cb_applybutton_i(Fl_Button*, void*) {
apply();
}
void MicrotonalUI::cb_applybutton(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_applybutton_i(o,v);
}

void MicrotonalUI::cb_Import_i(Fl_Button*, void*) {
const char *filename;
filename=fl_file_chooser("Open:","(*.scl)",NULL,0);
if (filename==NULL) return;
osc->write("/load_scl", "s", filename);
if (true) {
updateTuningsInput();
nameinput->update();
commentinput->update();
tuningsinput->position(0);
octavesizeoutput->update();
};
}
void MicrotonalUI::cb_Import(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import_i(o,v);
}

void MicrotonalUI::cb_mappingenabledbutton_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) keymappinggroup->deactivate();
else keymappinggroup->activate();
o->show();
}
void MicrotonalUI::cb_mappingenabledbutton(Fl_Osc_Check* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_mappingenabledbutton_i(o,v);
}

void MicrotonalUI::cb_Import1_i(Fl_Button*, void*) {
const char *filename;
filename=fl_file_chooser("Open:","(*.kbm)",NULL,0);
if (filename==NULL) return;
osc->write("/load_kbm", "s", filename);
if (true) {
updateMappingInput();
mappinginput->position(0);
mapsizeoutput->update();
firstnotecounter->update();
lastnotecounter->update();
middlenotecounter->update();
mappingenabledbutton->update();
afreqinput->update();
anotecounter->update();
};
}
void MicrotonalUI::cb_Import1(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import1_i(o,v);
}

void MicrotonalUI::cb_anotecounter_i(Fl_Osc_Counter* o, void*) {
/*if (microtonal->getnotefreq(o->value(),0)<0.0) o->textcolor(FL_RED);
else o->textcolor(FL_BLACK);*/

o->redraw();
}
void MicrotonalUI::cb_anotecounter(Fl_Osc_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_anotecounter_i(o,v);
}

void MicrotonalUI::cb_Close_i(Fl_Button*, void*) {
microtonaluiwindow->hide();
}
void MicrotonalUI::cb_Close(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void MicrotonalUI::cb_Enable_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) microtonalgroup->deactivate();
else microtonalgroup->activate();
}
void MicrotonalUI::cb_Enable(Fl_Osc_Check* o, void* v) {
((MicrotonalUI*)(o->parent()->user_data()))->cb_Enable_i(o,v);
}

Fl_Osc_Window* MicrotonalUI::make_window(Fl_Osc_Interface *osc, std::string base) {
{ microtonaluiwindow = new Fl_Osc_Window(405, 450, "Scales");
microtonaluiwindow->box(FL_FLAT_BOX);
microtonaluiwindow->color(FL_BACKGROUND_COLOR);
microtonaluiwindow->selection_color(FL_BACKGROUND_COLOR);
microtonaluiwindow->labeltype(FL_NO_LABEL);
microtonaluiwindow->labelfont(0);
microtonaluiwindow->labelsize(14);
microtonaluiwindow->labelcolor(FL_FOREGROUND_COLOR);
microtonaluiwindow->user_data((void*)(this));
microtonaluiwindow->align(Fl_Align(FL_ALIGN_TOP));
microtonaluiwindow->when(FL_WHEN_RELEASE);
{ new Fl_Box(0, 0, 0, 0);
microtonaluiwindow->init(osc, base);
} // Fl_Box* o
{ Fl_Group* o = new Fl_Group(249, 2, 155, 45);
o->tooltip("Center where the note\'s freqs. are turned upside-down");
o->box(FL_ENGRAVED_FRAME);
{ Fl_Osc_Check* o = new Fl_Osc_Check(254, 13, 55, 30, "Invert keys");
o->tooltip("Turn upside-down the note frequencies");
o->box(FL_NO_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_Invert);
o->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("Pinvertupdown");
} // Fl_Osc_Check* o
{ Fl_Osc_Counter* o = centerinvertcounter = new Fl_Osc_Counter(319, 13, 80, 20, "Center");
centerinvertcounter->box(FL_UP_BOX);
centerinvertcounter->color(FL_BACKGROUND_COLOR);
centerinvertcounter->selection_color(FL_INACTIVE_COLOR);
centerinvertcounter->labeltype(FL_NORMAL_LABEL);
centerinvertcounter->labelfont(1);
centerinvertcounter->labelsize(11);
centerinvertcounter->labelcolor(FL_FOREGROUND_COLOR);
centerinvertcounter->minimum(0);
centerinvertcounter->maximum(127);
centerinvertcounter->step(1);
centerinvertcounter->textfont(1);
centerinvertcounter->align(Fl_Align(130));
centerinvertcounter->when(FL_WHEN_CHANGED);
o->lstep(12/*microtonal->getoctavesize()*/);
o->init("Pinvertupdowncenter");
} // Fl_Osc_Counter* centerinvertcounter
o->end();
} // Fl_Group* o
{ microtonalgroup = new Fl_Group(3, 49, 402, 398);
microtonalgroup->box(FL_ENGRAVED_FRAME);
{ applybutton = new Fl_Button(8, 413, 107, 28, "Retune");
applybutton->tooltip("Retune the synth accorging to the inputs from \"Tunnings\" and \"Keyboard Map\
pings\"");
applybutton->box(FL_THIN_UP_BOX);
applybutton->labeltype(FL_EMBOSSED_LABEL);
applybutton->labelfont(1);
applybutton->labelsize(13);
applybutton->callback((Fl_Callback*)cb_applybutton);
} // Fl_Button* applybutton
{ Fl_Osc_Output* o = octavesizeoutput = new Fl_Osc_Output(150, 423, 35, 17, "nts./oct.");
octavesizeoutput->tooltip("Notes/Octave");
octavesizeoutput->box(FL_NO_BOX);
octavesizeoutput->color(FL_BACKGROUND_COLOR);
octavesizeoutput->selection_color(FL_BACKGROUND_COLOR);
octavesizeoutput->labeltype(FL_NORMAL_LABEL);
octavesizeoutput->labelfont(0);
octavesizeoutput->labelsize(10);
octavesizeoutput->labelcolor(FL_FOREGROUND_COLOR);
octavesizeoutput->maximum(500);
octavesizeoutput->step(1);
octavesizeoutput->value(12);
octavesizeoutput->textfont(1);
octavesizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
octavesizeoutput->when(FL_WHEN_CHANGED);
o->init("octavesize");
} // Fl_Osc_Output* octavesizeoutput
{ Fl_Osc_Input* o = nameinput = new Fl_Osc_Input(8, 64, 285, 25, "Name:");
nameinput->box(FL_DOWN_BOX);
nameinput->color(FL_BACKGROUND2_COLOR);
nameinput->selection_color(FL_SELECTION_COLOR);
nameinput->labeltype(FL_NORMAL_LABEL);
nameinput->labelfont(1);
nameinput->labelsize(11);
nameinput->labelcolor(FL_FOREGROUND_COLOR);
nameinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
nameinput->when(FL_WHEN_RELEASE);
o->maximum_size(MICROTONAL_MAX_NAME_LEN);
o->init("Pname");
} // Fl_Osc_Input* nameinput
{ Fl_Osc_Input* o = tuningsinput = new Fl_Osc_Input(8, 144, 182, 264, "Tunings:");
tuningsinput->type(4);
tuningsinput->box(FL_DOWN_BOX);
tuningsinput->color(FL_BACKGROUND2_COLOR);
tuningsinput->selection_color(FL_SELECTION_COLOR);
tuningsinput->labeltype(FL_NORMAL_LABEL);
tuningsinput->labelfont(1);
tuningsinput->labelsize(11);
tuningsinput->labelcolor(FL_FOREGROUND_COLOR);
tuningsinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
tuningsinput->when(FL_WHEN_NEVER);
o->init("tunings");
} // Fl_Osc_Input* tuningsinput
{ Fl_Osc_Input* o = commentinput = new Fl_Osc_Input(8, 104, 391, 25, "Comment:");
commentinput->box(FL_DOWN_BOX);
commentinput->color(FL_BACKGROUND2_COLOR);
commentinput->selection_color(FL_SELECTION_COLOR);
commentinput->labeltype(FL_NORMAL_LABEL);
commentinput->labelfont(1);
commentinput->labelsize(11);
commentinput->labelcolor(FL_FOREGROUND_COLOR);
commentinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
commentinput->when(FL_WHEN_RELEASE);
o->maximum_size(MICROTONAL_MAX_NAME_LEN);
o->init("Pcomment");
} // Fl_Osc_Input* commentinput
{ Fl_Osc_Counter* o = new Fl_Osc_Counter(313, 69, 70, 20, "Shift");
o->type(1);
o->box(FL_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_INACTIVE_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->minimum(-64);
o->maximum(63);
o->step(1);
o->textfont(1);
o->align(Fl_Align(FL_ALIGN_TOP));
o->when(FL_WHEN_CHANGED);
o->init("Pscaleshift");
} // Fl_Osc_Counter* o
{ Fl_Button* o = new Fl_Button(243, 411, 84, 15, "Import .SCL file");
o->tooltip("Inport Scala .scl file (tunnings)");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Import);
} // Fl_Button* o
{ keymappinggroup = new Fl_Group(193, 144, 206, 264, "Keyboard Mapping");
keymappinggroup->box(FL_ENGRAVED_BOX);
keymappinggroup->labelfont(1);
keymappinggroup->labelsize(11);
{ Fl_Osc_Input* o = mappinginput = new Fl_Osc_Input(250, 147, 146, 258);
mappinginput->type(4);
mappinginput->box(FL_DOWN_BOX);
mappinginput->color(FL_BACKGROUND2_COLOR);
mappinginput->selection_color(FL_SELECTION_COLOR);
mappinginput->labeltype(FL_NORMAL_LABEL);
mappinginput->labelfont(1);
mappinginput->labelsize(11);
mappinginput->labelcolor(FL_FOREGROUND_COLOR);
mappinginput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
mappinginput->when(FL_WHEN_NEVER);
o->init("mapping");
} // Fl_Osc_Input* mappinginput
{ Fl_Osc_Counter* o = firstnotecounter = new Fl_Osc_Counter(199, 195, 42, 18, "First note");
firstnotecounter->tooltip("First MIDI note number");
firstnotecounter->type(1);
firstnotecounter->box(FL_UP_BOX);
firstnotecounter->color(FL_BACKGROUND_COLOR);
firstnotecounter->selection_color(FL_INACTIVE_COLOR);
firstnotecounter->labeltype(FL_NORMAL_LABEL);
firstnotecounter->labelfont(0);
firstnotecounter->labelsize(10);
firstnotecounter->labelcolor(FL_FOREGROUND_COLOR);
firstnotecounter->minimum(0);
firstnotecounter->maximum(127);
firstnotecounter->step(1);
firstnotecounter->textfont(1);
firstnotecounter->textsize(11);
firstnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
firstnotecounter->when(FL_WHEN_CHANGED);
o->init("Pfirstkey");
} // Fl_Osc_Counter* firstnotecounter
{ Fl_Osc_Counter* o = lastnotecounter = new Fl_Osc_Counter(199, 225, 42, 18, "Last note");
lastnotecounter->tooltip("Last MIDI note number");
lastnotecounter->type(1);
lastnotecounter->box(FL_UP_BOX);
lastnotecounter->color(FL_BACKGROUND_COLOR);
lastnotecounter->selection_color(FL_INACTIVE_COLOR);
lastnotecounter->labeltype(FL_NORMAL_LABEL);
lastnotecounter->labelfont(0);
lastnotecounter->labelsize(10);
lastnotecounter->labelcolor(FL_FOREGROUND_COLOR);
lastnotecounter->minimum(0);
lastnotecounter->maximum(127);
lastnotecounter->step(1);
lastnotecounter->value(127);
lastnotecounter->textfont(1);
lastnotecounter->textsize(11);
lastnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
lastnotecounter->when(FL_WHEN_CHANGED);
o->init("Plastkey");
} // Fl_Osc_Counter* lastnotecounter
{ Fl_Osc_Counter* o = middlenotecounter = new Fl_Osc_Counter(199, 267, 42, 18, "Midle note");
middlenotecounter->tooltip("Midle note (where scale degree 0 is mapped to)");
middlenotecounter->type(1);
middlenotecounter->box(FL_UP_BOX);
middlenotecounter->color(FL_BACKGROUND_COLOR);
middlenotecounter->selection_color(FL_INACTIVE_COLOR);
middlenotecounter->labeltype(FL_NORMAL_LABEL);
middlenotecounter->labelfont(0);
middlenotecounter->labelsize(10);
middlenotecounter->labelcolor(FL_FOREGROUND_COLOR);
middlenotecounter->minimum(0);
middlenotecounter->maximum(127);
middlenotecounter->step(1);
middlenotecounter->value(60);
middlenotecounter->textfont(1);
middlenotecounter->textsize(11);
middlenotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
middlenotecounter->when(FL_WHEN_CHANGED);
o->init("Pmiddlenote");
} // Fl_Osc_Counter* middlenotecounter
{ Fl_Osc_Output* o = mapsizeoutput = new Fl_Osc_Output(201, 382, 44, 20, "Map Size");
mapsizeoutput->box(FL_NO_BOX);
mapsizeoutput->color(FL_BACKGROUND_COLOR);
mapsizeoutput->selection_color(FL_BACKGROUND_COLOR);
mapsizeoutput->labeltype(FL_NORMAL_LABEL);
mapsizeoutput->labelfont(0);
mapsizeoutput->labelsize(10);
mapsizeoutput->labelcolor(FL_FOREGROUND_COLOR);
mapsizeoutput->maximum(500);
mapsizeoutput->step(1);
mapsizeoutput->value(12);
mapsizeoutput->textfont(1);
mapsizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
mapsizeoutput->when(FL_WHEN_CHANGED);
o->init("Pmapsize");
} // Fl_Osc_Output* mapsizeoutput
keymappinggroup->end();
} // Fl_Group* keymappinggroup
{ Fl_Osc_Check* o = mappingenabledbutton = new Fl_Osc_Check(198, 150, 48, 21, "ON");
mappingenabledbutton->tooltip("Enable the Mapping (otherwise the mapping is linear)");
mappingenabledbutton->box(FL_FLAT_BOX);
mappingenabledbutton->down_box(FL_DOWN_BOX);
mappingenabledbutton->color(FL_BACKGROUND_COLOR);
mappingenabledbutton->selection_color(FL_FOREGROUND_COLOR);
mappingenabledbutton->labeltype(FL_NORMAL_LABEL);
mappingenabledbutton->labelfont(1);
mappingenabledbutton->labelsize(14);
mappingenabledbutton->labelcolor(FL_FOREGROUND_COLOR);
mappingenabledbutton->callback((Fl_Callback*)cb_mappingenabledbutton);
mappingenabledbutton->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
mappingenabledbutton->when(FL_WHEN_RELEASE);
o->init("Pmappingenabled");
} // Fl_Osc_Check* mappingenabledbutton
{ Fl_Button* o = new Fl_Button(243, 428, 84, 16, "Import .kbm file");
o->tooltip("Inport Scala .kbm file (keyboard mapping)");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Import1);
} // Fl_Button* o
microtonalgroup->end();
} // Fl_Group* microtonalgroup
{ Fl_Group* o = new Fl_Group(108, 2, 140, 45);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Osc_Counter* o = anotecounter = new Fl_Osc_Counter(173, 17, 65, 20, "\"A\" Note");
anotecounter->tooltip("The \"A\" note (the reference note for which freq. (\"A\" freq) is given)");
anotecounter->box(FL_UP_BOX);
anotecounter->color(FL_BACKGROUND_COLOR);
anotecounter->selection_color(FL_INACTIVE_COLOR);
anotecounter->labeltype(FL_NORMAL_LABEL);
anotecounter->labelfont(1);
anotecounter->labelsize(10);
anotecounter->labelcolor(FL_FOREGROUND_COLOR);
anotecounter->minimum(0);
anotecounter->maximum(127);
anotecounter->step(1);
anotecounter->value(69);
anotecounter->textfont(1);
anotecounter->textsize(10);
anotecounter->callback((Fl_Callback*)cb_anotecounter);
anotecounter->align(Fl_Align(129));
anotecounter->when(FL_WHEN_CHANGED);
o->lstep(12);
o->init("PAnote");
} // Fl_Osc_Counter* anotecounter
{ Fl_Osc_Value* o = afreqinput = new Fl_Osc_Value(118, 17, 45, 20, "\"A\" Freq.");
afreqinput->tooltip("The freq. of \"A\" note (default=440.0)");
afreqinput->box(FL_DOWN_BOX);
afreqinput->color(FL_BACKGROUND2_COLOR);
afreqinput->selection_color(FL_SELECTION_COLOR);
afreqinput->labeltype(FL_NORMAL_LABEL);
afreqinput->labelfont(1);
afreqinput->labelsize(10);
afreqinput->labelcolor(FL_FOREGROUND_COLOR);
afreqinput->minimum(1);
afreqinput->maximum(20000);
afreqinput->step(0.001);
afreqinput->value(440);
afreqinput->textfont(1);
afreqinput->textsize(10);
afreqinput->align(Fl_Align(FL_ALIGN_TOP));
afreqinput->when(FL_WHEN_CHANGED);
o->init("PAfreq");
} // Fl_Osc_Value* afreqinput
o->end();
} // Fl_Group* o
{ Fl_Button* o = new Fl_Button(333, 413, 67, 28, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Osc_Check* o = new Fl_Osc_Check(3, 3, 102, 45, "Enable Microtonal");
o->box(FL_UP_BOX);
o->down_box(FL_DOWN_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_FOREGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_Enable);
o->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->when(FL_WHEN_RELEASE);
o->init("Penabled");
} // Fl_Osc_Check* o
microtonaluiwindow->end();
} // Fl_Osc_Window* microtonaluiwindow
return microtonaluiwindow;
}

void MicrotonalUI::updateTuningsInput() {
tuningsinput->update();
}

void MicrotonalUI::updateMappingInput() {
mappinginput->update();
}

MicrotonalUI::MicrotonalUI(Fl_Osc_Interface *osc_, std::string base) {
osc=osc_;make_window(osc, base);
}

MicrotonalUI::~MicrotonalUI() {
microtonaluiwindow->hide();
delete(microtonaluiwindow);
}

void MicrotonalUI::show() {
microtonaluiwindow->show();
}

void MicrotonalUI::apply() {
osc->write("/microtonal/tunings", "s", tuningsinput->value());
osc->write("/microtonal/mapping", "s", mappinginput->value());
octavesizeoutput->update();
mapsizeoutput->update();
anotecounter->update();
}

+ 0
- 79
zynaddsubfx/UI/MicrotonalUI.h View File

@@ -1,79 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef MicrotonalUI_h
#define MicrotonalUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <FL/Fl_File_Chooser.H>
#include <FL/fl_ask.H>
#include "Fl_Osc_Pane.H"
#include "Fl_Osc_Value.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Counter.H"
#include "Fl_Osc_Input.H"
#include "Fl_Osc_Output.H"
#include "../Misc/Microtonal.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>

class MicrotonalUI {
public:
Fl_Osc_Window* make_window(Fl_Osc_Interface *osc, std::string base);
Fl_Osc_Window *microtonaluiwindow;
private:
void cb_Invert_i(Fl_Osc_Check*, void*);
static void cb_Invert(Fl_Osc_Check*, void*);
public:
Fl_Osc_Counter *centerinvertcounter;
Fl_Group *microtonalgroup;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
Fl_Osc_Output *octavesizeoutput;
Fl_Osc_Input *nameinput;
Fl_Osc_Input *tuningsinput;
Fl_Osc_Input *commentinput;
private:
void cb_Import_i(Fl_Button*, void*);
static void cb_Import(Fl_Button*, void*);
public:
Fl_Group *keymappinggroup;
Fl_Osc_Input *mappinginput;
Fl_Osc_Counter *firstnotecounter;
Fl_Osc_Counter *lastnotecounter;
Fl_Osc_Counter *middlenotecounter;
Fl_Osc_Output *mapsizeoutput;
Fl_Osc_Check *mappingenabledbutton;
private:
void cb_mappingenabledbutton_i(Fl_Osc_Check*, void*);
static void cb_mappingenabledbutton(Fl_Osc_Check*, void*);
void cb_Import1_i(Fl_Button*, void*);
static void cb_Import1(Fl_Button*, void*);
public:
Fl_Osc_Counter *anotecounter;
private:
void cb_anotecounter_i(Fl_Osc_Counter*, void*);
static void cb_anotecounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Value *afreqinput;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Enable_i(Fl_Osc_Check*, void*);
static void cb_Enable(Fl_Osc_Check*, void*);
public:
void updateTuningsInput();
void updateMappingInput();
MicrotonalUI(Fl_Osc_Interface *osc_, std::string base);
~MicrotonalUI();
void show();
void apply();
private:
Fl_Osc_Interface *osc;
};
#endif

+ 0
- 1336
zynaddsubfx/UI/OscilGenUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 260
zynaddsubfx/UI/OscilGenUI.h View File

@@ -1,260 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef OscilGenUI_h
#define OscilGenUI_h
#include <FL/Fl.H>
#include "../Synth/OscilGen.h"
#include "../Misc/Util.h"
#include "ResonanceUI.h"
#include "Fl_Oscilloscope.h"
#include "Fl_OscilSpectrum.h"
#include "Fl_Osc_Interface.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Slider.H>
#include "Fl_Osc_Pane.H"
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Choice.H"
#include "Fl_Osc_Counter.H"
#include "Fl_Osc_TSlider.H"
#include "Fl_Osc_VSlider.H"
#include "PresetsUI.h"
#include <FL/fl_draw.H>
using namespace zyncarla;

class OGSlider : public Fl_Osc_TSlider {
public:
OGSlider(int x,int y, int w, int h, const char *label=0)
;
void OSC_value(char c);
void cb(void);
void update(void);
bool phase;
};

class OGWaveChoice : public Fl_Osc_Choice {
public:
OGWaveChoice(int x,int y, int w, int h, const char *label=0)
;
void OSC_value(int i);
void cb(void);
class OscilEditor *ogui;
};
#include <FL/Fl_Box.H>

class Oscilharmonic : public Fl_Group {
Fl_Osc_Group* make_window();
Fl_Osc_Group *harmonic;
public:
OGSlider *mag;
private:
void cb_mag_i(OGSlider*, void*);
static void cb_mag(OGSlider*, void*);
public:
OGSlider *phase;
private:
void cb_phase_i(OGSlider*, void*);
static void cb_phase(OGSlider*, void*);
public:
Oscilharmonic(int x,int y, int w, int h, const char *label=0);
void init(int n_,Fl_Group *display_, std::string loc_, Fl_Osc_Interface *osc_);
void refresh();
~Oscilharmonic();
private:
Fl_Group *display;
int n;
Fl_Osc_Interface *osc;
std::string loc;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>

class OscilEditor : public PresetsUI_ {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *osceditUI;
Fl_Osc_Group *dummy;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
Fl_Group *oscildisplaygroup;
Fl_Osc_VSlider *rndslider;
Fl_Osc_Choice *hrndtype;
static Fl_Menu_Item menu_hrndtype[];
Fl_Osc_Dial *hrnddial;
Fl_Osc_Choice *magtype;
private:
void cb_magtype_i(Fl_Osc_Choice*, void*);
static void cb_magtype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_magtype[];
public:
Fl_Osc_Group *basefuncdisplaygroup;
Fl_Osc_Dial *bfpar;
private:
void cb_bfpar_i(Fl_Osc_Dial*, void*);
static void cb_bfpar(Fl_Osc_Dial*, void*);
public:
OGWaveChoice *bftype;
private:
void cb_bftype_i(OGWaveChoice*, void*);
static void cb_bftype(OGWaveChoice*, void*);
static Fl_Menu_Item menu_bftype[];
public:
Fl_Value_Output *bfparval;
Fl_Group *basefuncmodulation;
Fl_Osc_Choice *bfmodtype;
private:
void cb_bfmodtype_i(Fl_Osc_Choice*, void*);
static void cb_bfmodtype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_bfmodtype[];
public:
Fl_Osc_Dial *bfmodpar1;
private:
void cb_bfmodpar1_i(Fl_Osc_Dial*, void*);
static void cb_bfmodpar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *bfmodpar2;
private:
void cb_bfmodpar2_i(Fl_Osc_Dial*, void*);
static void cb_bfmodpar2(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *bfmodpar3;
private:
void cb_bfmodpar3_i(Fl_Osc_Dial*, void*);
static void cb_bfmodpar3(Fl_Osc_Dial*, void*);
void cb_Use_i(Fl_Button*, void*);
static void cb_Use(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Clear_i(Fl_Button*, void*);
static void cb_Clear(Fl_Button*, void*);
public:
Fl_Osc_Choice *wshbutton;
private:
void cb_wshbutton_i(Fl_Osc_Choice*, void*);
static void cb_wshbutton(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_wshbutton[];
public:
Fl_Osc_Dial *wshpar;
private:
void cb_wshpar_i(Fl_Osc_Dial*, void*);
static void cb_wshpar(Fl_Osc_Dial*, void*);
public:
Fl_Value_Output *wsparval;
Fl_Check_Button *autoclearbutton;
Fl_Osc_Choice *fltbutton;
private:
void cb_fltbutton_i(Fl_Osc_Choice*, void*);
static void cb_fltbutton(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_fltbutton[];
public:
Fl_Osc_Dial *filtervalue1;
private:
void cb_filtervalue1_i(Fl_Osc_Dial*, void*);
static void cb_filtervalue1(Fl_Osc_Dial*, void*);
public:
Fl_Check_Button *filterpref;
private:
void cb_filterpref_i(Fl_Check_Button*, void*);
static void cb_filterpref(Fl_Check_Button*, void*);
public:
Fl_Osc_Dial *filtervalue2;
private:
void cb_filtervalue2_i(Fl_Osc_Dial*, void*);
static void cb_filtervalue2(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Choice *sabutton;
private:
void cb_sabutton_i(Fl_Osc_Choice*, void*);
static void cb_sabutton(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_sabutton[];
public:
Fl_Osc_Dial *sadjpar;
private:
void cb_sadjpar_i(Fl_Osc_Dial*, void*);
static void cb_sadjpar(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Counter *harmonicshiftcounter;
private:
void cb_harmonicshiftcounter_i(Fl_Osc_Counter*, void*);
static void cb_harmonicshiftcounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Check *harmonicshiftpre;
private:
void cb_harmonicshiftpre_i(Fl_Osc_Check*, void*);
static void cb_harmonicshiftpre(Fl_Osc_Check*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Osc_Choice *adhrtype;
private:
void cb_adhrtype_i(Fl_Osc_Choice*, void*);
static void cb_adhrtype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_adhrtype[];
public:
Fl_Osc_Dial *adhrpow;
private:
void cb_adhrpow_i(Fl_Osc_Dial*, void*);
static void cb_adhrpow(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *adhrbf;
private:
void cb_adhrbf_i(Fl_Osc_Dial*, void*);
static void cb_adhrbf(Fl_Osc_Dial*, void*);
public:
Fl_Osc_TSlider *adhrpar;
private:
void cb_adhrpar_i(Fl_Osc_TSlider*, void*);
static void cb_adhrpar(Fl_Osc_TSlider*, void*);
public:
Fl_Osc_Choice *modtype;
private:
void cb_modtype_i(Fl_Osc_Choice*, void*);
static void cb_modtype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_modtype[];
public:
Fl_Osc_Dial *modpar1;
private:
void cb_modpar1_i(Fl_Osc_Dial*, void*);
static void cb_modpar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *modpar2;
private:
void cb_modpar2_i(Fl_Osc_Dial*, void*);
static void cb_modpar2(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *modpar3;
private:
void cb_modpar3_i(Fl_Osc_Dial*, void*);
static void cb_modpar3(Fl_Osc_Dial*, void*);
void cb_Sine_i(Fl_Button*, void*);
static void cb_Sine(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Scroll *_this_has_to_be_the_last;
Fl_Pack *harmonics;
OscilEditor(bool adnotep_, std::string loc_, Fl_Osc_Interface *osc_);
~OscilEditor();
void refresh();
void redrawoscil();
void setbfmodstatus(int menuentry);
private:
Oscilharmonic *h[(MAX_AD_HARMONICS - 1)];
std::string loc;
Fl_Osc_Interface *osc;
Fl_Oscilloscope *oscilo, *oscilo_base;
Fl_OscilSpectrum *oscils, *oscils_base;
bool adnotep;
bool initialized;
};
#endif

+ 0
- 1444
zynaddsubfx/UI/PADnoteUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 247
zynaddsubfx/UI/PADnoteUI.h View File

@@ -1,247 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PADnoteUI_h
#define PADnoteUI_h
#include <FL/Fl.H>
#include "../Params/PADnoteParameters.h"
#include "ResonanceUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_File_Chooser.H>
#include <string>
#include "Fl_Osc_TSlider.H"
#include "Fl_Osc_VSlider.H"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "OscilGenUI.h"
#include "Fl_PADnoteOvertonePosition.h"
#include "Fl_PADnoteHarmonicProfile.h"
#include "PresetsUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>

class PADnoteUI : public PresetsUI_ {
public:
PADnoteUI(std::string location_, Fl_Osc_Interface *osc_);
Fl_Osc_Window* make_window();
Fl_Osc_Window *padnotewindow;
Fl_Box *dummy;
private:
void cb__i(Fl_Tabs*, void*);
static void cb_(Fl_Tabs*, void*);
public:
Fl_Osc_Group *harmonicstructuregroup;
Fl_Osc_Group *bwprofilegroup;
Fl_Osc_Dial *hpbasepar1;
private:
void cb_hpbasepar1_i(Fl_Osc_Dial*, void*);
static void cb_hpbasepar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Choice *hpbasetype;
private:
void cb_hpbasetype_i(Fl_Osc_Choice*, void*);
static void cb_hpbasetype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_hpbasetype[];
public:
Fl_Osc_Dial *hpfreqmult;
private:
void cb_hpfreqmult_i(Fl_Osc_Dial*, void*);
static void cb_hpfreqmult(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *hpmpar1;
private:
void cb_hpmpar1_i(Fl_Osc_Dial*, void*);
static void cb_hpmpar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *hpmfreq;
private:
void cb_hpmfreq_i(Fl_Osc_Dial*, void*);
static void cb_hpmfreq(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Choice *hpamptype;
private:
void cb_hpamptype_i(Fl_Osc_Choice*, void*);
static void cb_hpamptype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_hpamptype[];
public:
Fl_Osc_Choice *hpampmode;
private:
void cb_hpampmode_i(Fl_Osc_Choice*, void*);
static void cb_hpampmode(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_hpampmode[];
public:
Fl_Osc_Dial *hpamppar1;
private:
void cb_hpamppar1_i(Fl_Osc_Dial*, void*);
static void cb_hpamppar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *hpamppar2;
private:
void cb_hpamppar2_i(Fl_Osc_Dial*, void*);
static void cb_hpamppar2(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Check *hpautoscale;
private:
void cb_hpautoscale_i(Fl_Osc_Check*, void*);
static void cb_hpautoscale(Fl_Osc_Check*, void*);
public:
Fl_Osc_Choice *hponehalf;
private:
void cb_hponehalf_i(Fl_Osc_Choice*, void*);
static void cb_hponehalf(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_hponehalf[];
public:
Fl_Osc_Dial *hpwidth;
private:
void cb_hpwidth_i(Fl_Osc_Dial*, void*);
static void cb_hpwidth(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Group *oscilgroup;
private:
void cb_Change_i(Fl_Button*, void*);
static void cb_Change(Fl_Button*, void*);
public:
Fl_Box *cbwidget;
private:
void cb_cbwidget_i(Fl_Box*, void*);
static void cb_cbwidget(Fl_Box*, void*);
void cb_Resonance_i(Fl_Button*, void*);
static void cb_Resonance(Fl_Button*, void*);
public:
Fl_Osc_Dial *bwdial;
private:
void cb_bwdial_i(Fl_Osc_Dial*, void*);
static void cb_bwdial(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Output *bwcents;
Fl_Osc_Choice *hrpostype;
private:
void cb_hrpostype_i(Fl_Osc_Choice*, void*);
static void cb_hrpostype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_hrpostype[];
public:
Fl_Osc_Dial *hrpospar1;
private:
void cb_hrpospar1_i(Fl_Osc_Dial*, void*);
static void cb_hrpospar1(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *hrpospar2;
private:
void cb_hrpospar2_i(Fl_Osc_Dial*, void*);
static void cb_hrpospar2(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Dial *hrpospar3;
private:
void cb_hrpospar3_i(Fl_Osc_Dial*, void*);
static void cb_hrpospar3(Fl_Osc_Dial*, void*);
public:
Fl_Osc_Choice *bwscale;
private:
void cb_bwscale_i(Fl_Osc_Choice*, void*);
static void cb_bwscale(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_bwscale[];
public:
Fl_Group *overtonepos;
Fl_Osc_Choice *qsamplesize;
private:
void cb_qsamplesize_i(Fl_Osc_Choice*, void*);
static void cb_qsamplesize(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_qsamplesize[];
public:
Fl_Osc_Choice *qsmpoct;
private:
void cb_qsmpoct_i(Fl_Osc_Choice*, void*);
static void cb_qsmpoct(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_qsmpoct[];
public:
Fl_Osc_Choice *qoct;
private:
void cb_qoct_i(Fl_Osc_Choice*, void*);
static void cb_qoct(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_qoct[];
public:
Fl_Osc_Choice *qbasenote;
private:
void cb_qbasenote_i(Fl_Osc_Choice*, void*);
static void cb_qbasenote(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_qbasenote[];
public:
Fl_Group *hprofile;
Fl_Osc_Choice *spectrummode;
private:
void cb_spectrummode_i(Fl_Osc_Choice*, void*);
static void cb_spectrummode(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_spectrummode[];
public:
EnvelopeUI *freqenv;
Fl_Osc_Counter *octave;
Fl_Osc_Counter *coarsedet;
LFOUI *freqlfo;
Fl_Osc_Slider *detune;
private:
void cb_detune_i(Fl_Osc_Slider*, void*);
static void cb_detune(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *detunevalueoutput;
Fl_Osc_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Osc_Choice*, void*);
static void cb_detunetype(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Dial *bendadjustdial;
Fl_Osc_Dial *offsethzdial;
Fl_Osc_Check *hz440;
private:
void cb_hz440_i(Fl_Osc_Check*, void*);
static void cb_hz440(Fl_Osc_Check*, void*);
public:
Fl_Osc_Dial *fixedfreqetdial;
Fl_Osc_VSlider *volume;
Fl_Osc_VSlider *vsns;
Fl_Osc_Dial *pan;
Fl_Osc_Dial *pstr;
Fl_Osc_Dial *pt;
Fl_Osc_Dial *pstc;
Fl_Osc_Dial *pvel;
EnvelopeUI *ampenv;
LFOUI *amplfo;
Fl_Osc_Check *stereo;
private:
void cb_stereo_i(Fl_Osc_Check*, void*);
static void cb_stereo(Fl_Osc_Check*, void*);
public:
EnvelopeUI *filterenv;
LFOUI *filterlfo;
FilterUI *filterui;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
void cb_export_i(Fl_Osc_Button*, void*);
static void cb_export(Fl_Osc_Button*, void*);
public:
void refresh();
~PADnoteUI();
OscilEditor *oscui;
private:
bool initialized;
public:
Fl_Oscilloscope *osc;
ResonanceUI *resui;
private:
std::string location;
Fl_Osc_Interface *osc_i;
PADnoteHarmonicProfile *hpui;
PADnoteOvertonePosition *opui;
class Osc_IntModel *apply_watcher;
};
#endif

+ 0
- 2024
zynaddsubfx/UI/PartUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 274
zynaddsubfx/UI/PartUI.h View File

@@ -1,274 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PartUI_h
#define PartUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <string>
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Input.H"
#include "PartNameButton.h"
#include "EffUI.h"
#include "BankUI.h"
#include "ADnoteUI.h"
#include "SUBnoteUI.h"
#include "PADnoteUI.h"
#include "../Misc/Config.h"
#include "../Misc/Master.h"
#include "../Misc/Part.h"

class PartSysEffSend : public Fl_Group {
Fl_Group* make_window();
Fl_Group *syseffsend;
public:
Fl_Osc_Dial *widget;
PartSysEffSend(int x,int y, int w, int h, const char *label=0);
void init(int npart_,int neff_);
void rebase(int part);
~PartSysEffSend();
private:
int neff;
int npart;
};
#include <FL/Fl_Button.H>

class PartKitItem : public Fl_Osc_Group {
Fl_Osc_Group* make_window();
Fl_Osc_Group *partkititem;
Fl_Osc_Group *partkititemgroup;
public:
Fl_Osc_Counter *minkcounter;
private:
void cb_m_i(Fl_Osc_Button*, void*);
static void cb_m(Fl_Osc_Button*, void*);
void cb_M_i(Fl_Osc_Button*, void*);
static void cb_M(Fl_Osc_Button*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Button *adeditbutton;
private:
void cb_adeditbutton_i(Fl_Button*, void*);
static void cb_adeditbutton(Fl_Button*, void*);
public:
Fl_Button *subeditbutton;
private:
void cb_subeditbutton_i(Fl_Button*, void*);
static void cb_subeditbutton(Fl_Button*, void*);
public:
Fl_Osc_Check *mutedcheck;
Fl_Osc_Counter *maxkcounter;
Fl_Osc_Input *labelbutton;
private:
void cb_labelbutton_i(Fl_Osc_Input*, void*);
static void cb_labelbutton(Fl_Osc_Input*, void*);
Fl_Osc_Check *adcheck;
void cb_adcheck_i(Fl_Osc_Check*, void*);
static void cb_adcheck(Fl_Osc_Check*, void*);
Fl_Osc_Check *subcheck;
void cb_subcheck_i(Fl_Osc_Check*, void*);
static void cb_subcheck(Fl_Osc_Check*, void*);
public:
Fl_Osc_Choice *sendtoeffect;
Fl_Button *padeditbutton;
private:
void cb_padeditbutton_i(Fl_Button*, void*);
static void cb_padeditbutton(Fl_Button*, void*);
Fl_Osc_Check *padcheck;
void cb_padcheck_i(Fl_Osc_Check*, void*);
static void cb_padcheck(Fl_Osc_Check*, void*);
Fl_Osc_Check *enabledcheck;
void cb_enabledcheck_i(Fl_Osc_Check*, void*);
static void cb_enabledcheck(Fl_Osc_Check*, void*);
public:
PartKitItem(int x,int y, int w, int h, const char *label=0);
void refresh();
void init(int n_,class PartUI *partui_);
~PartKitItem();
private:
int n;
char label[10];
class PartUI *partui;
};
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Group.H>

class PartUI : public Fl_Osc_Group {
Fl_Group* make_window();
Fl_Group *partgroup;
public:
Fl_Osc_Group *partgroupui;
private:
void cb_Grand_i(PartNameButton*, void*);
static void cb_Grand(PartNameButton*, void*);
public:
Fl_Osc_Counter *minkcounter;
private:
void cb_minkcounter_i(Fl_Osc_Counter*, void*);
static void cb_minkcounter(Fl_Osc_Counter*, void*);
public:
Fl_Osc_Counter *maxkcounter;
private:
void cb_maxkcounter_i(Fl_Osc_Counter*, void*);
static void cb_maxkcounter(Fl_Osc_Counter*, void*);
void cb_Controllers_i(Fl_Button*, void*);
static void cb_Controllers(Fl_Button*, void*);
void cb_Edit_i(Fl_Button*, void*);
static void cb_Edit(Fl_Button*, void*);
void cb_m1_i(Fl_Osc_Button*, void*);
static void cb_m1(Fl_Osc_Button*, void*);
void cb_M1_i(Fl_Osc_Button*, void*);
static void cb_M1(Fl_Osc_Button*, void*);
void cb_R1_i(Fl_Osc_Button*, void*);
static void cb_R1(Fl_Osc_Button*, void*);
public:
Fl_Osc_Counter *keylimitlist;
Fl_Osc_Check *partenablebutton;
private:
void cb_partenablebutton_i(Fl_Osc_Check*, void*);
static void cb_partenablebutton(Fl_Osc_Check*, void*);
Fl_Osc_Window *ctlwindow;
public:
Fl_Check_Button *benddir;
private:
void cb_benddir_i(Fl_Check_Button*, void*);
static void cb_benddir(Fl_Check_Button*, void*);
public:
Fl_Osc_Counter *bendrng;
Fl_Osc_Check *bendsplt;
private:
void cb_bendsplt_i(Fl_Osc_Check*, void*);
static void cb_bendsplt(Fl_Osc_Check*, void*);
void cb_Sustain_i(Fl_Osc_Check*, void*);
static void cb_Sustain(Fl_Osc_Check*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Reset_i(Fl_Osc_Button*, void*);
static void cb_Reset(Fl_Osc_Button*, void*);
public:
Fl_Osc_Dial *propta;
Fl_Osc_Dial *proptb;
private:
void cb_Proprt_i(Fl_Osc_Check*, void*);
static void cb_Proprt(Fl_Osc_Check*, void*);
Fl_Osc_Window *partfx;
public:
Fl_Counter *inseffnocounter;
private:
void cb_inseffnocounter_i(Fl_Counter*, void*);
static void cb_inseffnocounter(Fl_Counter*, void*);
public:
Fl_Osc_Choice *insefftype;
private:
void cb_insefftype_i(Fl_Osc_Choice*, void*);
static void cb_insefftype(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_insefftype[];
public:
Fl_Osc_Group *inseffectuigroup;
EffUI *inseffectui;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Osc_Choice *sendtochoice;
private:
void cb_sendtochoice_i(Fl_Osc_Choice*, void*);
static void cb_sendtochoice(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_sendtochoice[];
public:
Fl_Osc_Check *bypasseff;
private:
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Osc_Window *instrumentkitlist;
private:
void cb_Close2_i(Fl_Button*, void*);
static void cb_Close2(Fl_Button*, void*);
public:
Fl_Scroll *kitlist;
private:
void cb_Mode_i(Fl_Osc_Choice*, void*);
static void cb_Mode(Fl_Osc_Choice*, void*);
static Fl_Menu_Item menu_Mode[];
void cb_Comments_i(Fl_Button*, void*);
static void cb_Comments(Fl_Button*, void*);
void cb_Effects_i(Fl_Button*, void*);
static void cb_Effects(Fl_Button*, void*);
public:
Fl_Osc_Window *instrumenteditwindow;
Fl_Osc_Group *editgroup;
Fl_Button *padeditbutton;
private:
void cb_padeditbutton1_i(Fl_Button*, void*);
static void cb_padeditbutton1(Fl_Button*, void*);
public:
Fl_Osc_Check *padsynenabledcheck;
private:
void cb_padsynenabledcheck_i(Fl_Osc_Check*, void*);
static void cb_padsynenabledcheck(Fl_Osc_Check*, void*);
public:
Fl_Osc_Check *adsynenabledcheck;
private:
void cb_adsynenabledcheck_i(Fl_Osc_Check*, void*);
static void cb_adsynenabledcheck(Fl_Osc_Check*, void*);
public:
Fl_Button *adeditbutton;
private:
void cb_adeditbutton1_i(Fl_Button*, void*);
static void cb_adeditbutton1(Fl_Button*, void*);
public:
Fl_Osc_Check *subsynenabledcheck;
private:
void cb_subsynenabledcheck_i(Fl_Osc_Check*, void*);
static void cb_subsynenabledcheck(Fl_Osc_Check*, void*);
public:
Fl_Button *subeditbutton;
private:
void cb_subeditbutton1_i(Fl_Button*, void*);
static void cb_subeditbutton1(Fl_Button*, void*);
void cb_Kit_i(Fl_Button*, void*);
static void cb_Kit(Fl_Button*, void*);
void cb_Effects1_i(Fl_Button*, void*);
static void cb_Effects1(Fl_Button*, void*);
void cb_Author_i(Fl_Osc_Input*, void*);
static void cb_Author(Fl_Osc_Input*, void*);
void cb_Comments1_i(Fl_Osc_Input*, void*);
static void cb_Comments1(Fl_Osc_Input*, void*);
static Fl_Menu_Item menu_Type[];
void cb_Close3_i(Fl_Button*, void*);
static void cb_Close3(Fl_Button*, void*);
public:
PartUI(int x,int y, int w, int h, const char *label=0);
void init(std::string part_path_, int npart_,BankUI *bankui_, std::string loc_, Fl_Osc_Interface *osc_);
int cleanuplastkit(int kititem);
void showparameters(int kititem,int engine);
void showvoiceparams(int kititem, bool voicelist);
~PartUI();
private:
BankUI *bankui;
public:
ADnoteUI *adnoteui;
private:
SUBnoteUI *subnoteui;
PADnoteUI *padnoteui;
PartSysEffSend *psyef[NUM_SYS_EFX];
int npart;
int ninseff;
int lastkititem;
PartKitItem *partkititem[NUM_KIT_ITEMS];
std::string part_path;
std::string loc;
Fl_Osc_Interface *osc;
public:
void rebase(std::string new_loc);
};
#endif

+ 0
- 331
zynaddsubfx/UI/PresetsUI.cpp View File

@@ -1,331 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/PresetsUI.h"

void PresetsUI_::refresh() {
;
}

PresetsUI_::~PresetsUI_() {
;
}

void PresetsUI::cb_copybrowse_i(Fl_Browser* o, void*) {
int val=o->value();
if (val!=0){
presetname->cut(0,presetname->maximum_size());
presetname->insert(o->text(val));
};
}
void PresetsUI::cb_copybrowse(Fl_Browser* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copybrowse_i(o,v);
}

void PresetsUI::cb_copypbutton_i(Fl_Button*, void*) {
const char *tmp=presetname->value();
if (tmp!=NULL) {
if (strlen(tmp)>0){
if(arraymode)
osc->write("/presets/copy", "ssi", url.c_str(), tmp, arrayidx);
else
osc->write("/presets/copy", "ss", url.c_str(), tmp);
copywin->hide();
};
};
}
void PresetsUI::cb_copypbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copypbutton_i(o,v);
}

void PresetsUI::cb_copybutton_i(Fl_Button*, void*) {
if(arraymode)
osc->write("/presets/copy", "si", url.c_str(), arrayidx);
else
osc->write("/presets/copy", "s", url.c_str());
copywin->hide();
}
void PresetsUI::cb_copybutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copybutton_i(o,v);
}

void PresetsUI::cb_Cancel_i(Fl_Button*, void*) {
copywin->hide();
}
void PresetsUI::cb_Cancel(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel_i(o,v);
}

void PresetsUI::cb_presetname_i(Fl_Input* o, void*) {
const char *tmp=o->value();
if (tmp==NULL) tmp="";
if (strlen(tmp)>0) {
copybutton->deactivate();
copypbutton->activate();
} else {
copybutton->activate();
copypbutton->deactivate();
};
}
void PresetsUI::cb_presetname(Fl_Input* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_presetname_i(o,v);
}

void PresetsUI::cb_pastebrowse_i(Fl_Browser* o, void*) {
if (o->value()==0) {
pastepbutton->deactivate();
deletepbutton->deactivate();
}else{
pastepbutton->activate();
deletepbutton->activate();
};
}
void PresetsUI::cb_pastebrowse(Fl_Browser* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastebrowse_i(o,v);
}

void PresetsUI::cb_pastepbutton_i(Fl_Button*, void*) {
int n=pastebrowse->value()-1;
if (n>=0){
if(arraymode)
osc->write("/presets/paste", "ssi", url.c_str(), files[n].c_str(), arrayidx);
else
osc->write("/presets/paste", "ss", url.c_str(), files[n].c_str());
}
pastewin->hide();
pui->refresh();
}
void PresetsUI::cb_pastepbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastepbutton_i(o,v);
}

void PresetsUI::cb_pastebutton_i(Fl_Button*, void*) {
if(arraymode)
osc->write("/presets/paste", "si", url.c_str(), arrayidx);
else
osc->write("/presets/paste", "s", url.c_str());
pastewin->hide();
pui->refresh();
}
void PresetsUI::cb_pastebutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastebutton_i(o,v);
}

void PresetsUI::cb_Cancel1_i(Fl_Button*, void*) {
pastewin->hide();
}
void PresetsUI::cb_Cancel1(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel1_i(o,v);
}

void PresetsUI::cb_deletepbutton_i(Fl_Button*, void*) {
int n=pastebrowse->value()-1;

if (n>=0) {
osc->write("/presets/delete", "s", files[n].c_str());
}
rescan(url);
}
void PresetsUI::cb_deletepbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_deletepbutton_i(o,v);
}

PresetsUI::PresetsUI(Fl_Osc_Interface *osc_):listmodel(osc_), datamodel(osc_) {
osc = osc_;
arraymode = false;
make_window();
listmodel.callback = [this](Osc_ListModel::list_t list) {
copybrowse->clear();
pastebrowse->clear();
files.clear();
printf("adding entries<%s>...\n", datamodel.value.c_str());
if(datamodel.value.empty())
return;
for(unsigned i=0;i<list.size();++i){
std::string type = std::get<2>(list[i]);
std::string comp = datamodel.value.substr(1);
if(arraymode)
comp += "n";
bool same = comp == type;
same |= strstr(type.c_str(), "Plfo") && strstr(comp.c_str(), "Plfo");
if(!same)
continue;
files.push_back(std::get<0>(list[i]));
copybrowse->add(std::get<1>(list[i]).c_str());
pastebrowse->add(std::get<1>(list[i]).c_str());
}};
datamodel.callback = [this](Osc_DataModel::value_t val) {
printf("Value = %s\n", val.c_str());
copytypetext->label(val.c_str());
pastetypetext->label(val.c_str());
listmodel.doUpdate("/presets/scan-for-presets");
};
}

PresetsUI::~PresetsUI() {
copywin->hide();delete(copywin);
pastewin->hide();delete(pastewin);
}

Fl_Double_Window* PresetsUI::make_window() {
{ copywin = new Fl_Double_Window(265, 430, "Copy to Clipboard/Preset");
copywin->box(FL_THIN_UP_BOX);
copywin->color((Fl_Color)238);
copywin->user_data((void*)(this));
{ copybrowse = new Fl_Browser(10, 25, 245, 320);
copybrowse->type(1);
copybrowse->callback((Fl_Callback*)cb_copybrowse);
} // Fl_Browser* copybrowse
{ copypbutton = new Fl_Button(145, 355, 110, 20, "Copy to Preset");
copypbutton->box(FL_THIN_UP_BOX);
copypbutton->callback((Fl_Callback*)cb_copypbutton);
} // Fl_Button* copypbutton
{ copybutton = new Fl_Button(25, 385, 90, 35, "Copy to Clipboard");
copybutton->box(FL_THIN_UP_BOX);
copybutton->callback((Fl_Callback*)cb_copybutton);
copybutton->align(Fl_Align(192));
} // Fl_Button* copybutton
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Cancel);
o->align(Fl_Align(192));
} // Fl_Button* o
{ Fl_Box* o = new Fl_Box(10, 5, 40, 15, "Type:");
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ copytypetext = new Fl_Box(50, 5, 205, 15);
copytypetext->box(FL_FLAT_BOX);
copytypetext->color((Fl_Color)238);
copytypetext->labelfont(1);
copytypetext->labelsize(11);
copytypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* copytypetext
{ presetname = new Fl_Input(10, 355, 130, 20);
presetname->callback((Fl_Callback*)cb_presetname);
presetname->when(FL_WHEN_CHANGED);
} // Fl_Input* presetname
copywin->set_modal();
copywin->end();
} // Fl_Double_Window* copywin
{ pastewin = new Fl_Double_Window(265, 430, "Paste from Clipboard/Preset");
pastewin->box(FL_THIN_UP_BOX);
pastewin->color((Fl_Color)238);
pastewin->user_data((void*)(this));
{ pastebrowse = new Fl_Browser(10, 25, 245, 320);
pastebrowse->type(2);
pastebrowse->callback((Fl_Callback*)cb_pastebrowse);
} // Fl_Browser* pastebrowse
{ pastepbutton = new Fl_Button(10, 355, 160, 20, "Paste from Preset");
pastepbutton->box(FL_THIN_UP_BOX);
pastepbutton->callback((Fl_Callback*)cb_pastepbutton);
} // Fl_Button* pastepbutton
{ pastebutton = new Fl_Button(25, 385, 90, 35, "Paste from Clipboard");
pastebutton->box(FL_THIN_UP_BOX);
pastebutton->callback((Fl_Callback*)cb_pastebutton);
pastebutton->align(Fl_Align(192));
} // Fl_Button* pastebutton
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Cancel1);
o->align(Fl_Align(192));
} // Fl_Button* o
{ pastetypetext = new Fl_Box(55, 5, 200, 15);
pastetypetext->box(FL_FLAT_BOX);
pastetypetext->color((Fl_Color)238);
pastetypetext->labelfont(1);
pastetypetext->labelsize(11);
pastetypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* pastetypetext
{ Fl_Box* o = new Fl_Box(15, 5, 40, 15, "Type:");
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ deletepbutton = new Fl_Button(180, 355, 75, 20, "Delete");
deletepbutton->box(FL_THIN_UP_BOX);
deletepbutton->callback((Fl_Callback*)cb_deletepbutton);
} // Fl_Button* deletepbutton
pastewin->set_modal();
pastewin->end();
} // Fl_Double_Window* pastewin
return pastewin;
}

void PresetsUI::paste(std::string url_, PresetsUI_ *pui, int idx) {
url = url_;
this->pui=pui;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
pastepbutton->deactivate();
deletepbutton->deactivate();
arraymode = true;
arrayidx = idx;
if(but) {
osc->write("/presets/paste", "si", url.c_str(), idx);
pui->refresh();
} else {
rescan(url_);
pastewin->show();
}
}

void PresetsUI::copy(std::string url_, int idx) {
copybutton->activate();
copypbutton->deactivate();
arraymode = true;
arrayidx = idx;
url = url_;
this->pui=NULL;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
presetname->cut(0,presetname->maximum_size());
if(but) {
osc->write("/presets/copy", "si", url_.c_str(), idx);
} else {
rescan(url_);
copywin->show();
}
}

void PresetsUI::copy(std::string url_) {
copybutton->activate();
copypbutton->deactivate();
arraymode = false;
url = url_;
this->pui=NULL;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
presetname->cut(0,presetname->maximum_size());
if(but) {
osc->write("/presets/copy", "s", url_.c_str());
} else {
rescan(url_);
copywin->show();
};
}

void PresetsUI::paste(std::string url_, PresetsUI_ *pui) {
url = url_;
this->pui=pui;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
pastepbutton->deactivate();
deletepbutton->deactivate();
arraymode = false;
if(but) {
osc->write("/presets/paste", "s", url.c_str());
pui->refresh();
} else {
rescan(url_);
pastewin->show();
};
}

void PresetsUI::rescan(std::string url) {
copybrowse->clear();
pastebrowse->clear();
printf("Datamodel Update...");
datamodel.doUpdate(url+"preset-type");
}
PresetsUI *presetsui;

+ 0
- 92
zynaddsubfx/UI/PresetsUI.h View File

@@ -1,92 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PresetsUI_h
#define PresetsUI_h
#include <FL/Fl.H>
#include <FL/fl_ask.H>
#include <cstdio>
#include <cstdlib>
#include <string>
#include "Osc_ListModel.h"
#include "Osc_DataModel.h"

class PresetsUI_ {
public:
virtual void refresh();
virtual ~PresetsUI_();
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Input.H>

class PresetsUI {
public:
PresetsUI(Fl_Osc_Interface *osc_);
~PresetsUI();
Fl_Double_Window* make_window();
Fl_Double_Window *copywin;
Fl_Browser *copybrowse;
private:
void cb_copybrowse_i(Fl_Browser*, void*);
static void cb_copybrowse(Fl_Browser*, void*);
public:
Fl_Button *copypbutton;
private:
void cb_copypbutton_i(Fl_Button*, void*);
static void cb_copypbutton(Fl_Button*, void*);
public:
Fl_Button *copybutton;
private:
void cb_copybutton_i(Fl_Button*, void*);
static void cb_copybutton(Fl_Button*, void*);
void cb_Cancel_i(Fl_Button*, void*);
static void cb_Cancel(Fl_Button*, void*);
public:
Fl_Box *copytypetext;
Fl_Input *presetname;
private:
void cb_presetname_i(Fl_Input*, void*);
static void cb_presetname(Fl_Input*, void*);
public:
Fl_Double_Window *pastewin;
Fl_Browser *pastebrowse;
private:
void cb_pastebrowse_i(Fl_Browser*, void*);
static void cb_pastebrowse(Fl_Browser*, void*);
public:
Fl_Button *pastepbutton;
private:
void cb_pastepbutton_i(Fl_Button*, void*);
static void cb_pastepbutton(Fl_Button*, void*);
public:
Fl_Button *pastebutton;
private:
void cb_pastebutton_i(Fl_Button*, void*);
static void cb_pastebutton(Fl_Button*, void*);
void cb_Cancel1_i(Fl_Button*, void*);
static void cb_Cancel1(Fl_Button*, void*);
public:
Fl_Box *pastetypetext;
Fl_Button *deletepbutton;
private:
void cb_deletepbutton_i(Fl_Button*, void*);
static void cb_deletepbutton(Fl_Button*, void*);
public:
void paste(std::string url_, PresetsUI_ *pui, int idx);
void copy(std::string url_, int idx);
void copy(std::string url_);
void paste(std::string url_, PresetsUI_ *pui);
void rescan(std::string url);
std::string url;
Fl_Osc_Interface *osc;
Osc_ListModel listmodel;
Osc_DataModel datamodel;
std::vector<std::string> files;
bool arraymode;
int arrayidx;
PresetsUI_ *pui;
};
extern PresetsUI *presetsui;
#endif

+ 0
- 461
zynaddsubfx/UI/ResonanceUI.cpp View File

@@ -1,461 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/ResonanceUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void ResonanceUI::cb_Close_i(Fl_Button*, void*) {
resonancewindow->hide();
}
void ResonanceUI::cb_Close(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void ResonanceUI::cb_Zero_i(Fl_Osc_Button* o, void*) {
o->oscWrite("zero");
redrawPADnoteApply();
}
void ResonanceUI::cb_Zero(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Zero_i(o,v);
}

void ResonanceUI::cb_Smooth_i(Fl_Osc_Button* o, void*) {
o->oscWrite("smooth");
redrawPADnoteApply();
}
void ResonanceUI::cb_Smooth(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Smooth_i(o,v);
}

void ResonanceUI::cb_maxdb_i(Fl_Osc_Slider* o, void*) {
maxdbvo->value(o->value());
redrawPADnoteApply();
}
void ResonanceUI::cb_maxdb(Fl_Osc_Slider* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_maxdb_i(o,v);
}

void ResonanceUI::cb_centerfreqvo_i(Fl_Osc_Output* o, void*) {
o->value(o->newvalue()/1000.0);
}
void ResonanceUI::cb_centerfreqvo(Fl_Osc_Output* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v);
}

void ResonanceUI::cb_octavesfreqvo_i(Fl_Osc_Output* o, void*) {
o->value(o->newvalue());
}
void ResonanceUI::cb_octavesfreqvo(Fl_Osc_Output* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v);
}

void ResonanceUI::cb_RND2_i(Fl_Osc_Button* o, void*) {
o->oscWrite("randomize", "i", 1);
redrawPADnoteApply();
}
void ResonanceUI::cb_RND2(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND2_i(o,v);
}

void ResonanceUI::cb_RND1_i(Fl_Osc_Button* o, void*) {
o->oscWrite("randomize", "i", 0);
redrawPADnoteApply();
}
void ResonanceUI::cb_RND1(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND1_i(o,v);
}

void ResonanceUI::cb_RND3_i(Fl_Osc_Button* o, void*) {
o->oscWrite("randomize", "i", 2);
redrawPADnoteApply();
}
void ResonanceUI::cb_RND3(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND3_i(o,v);
}

void ResonanceUI::cb_InterpP_i(Fl_Osc_Button* o, void*) {
int type;
if (Fl::event_button()==FL_LEFT_MOUSE) type=0;
else type=1;
o->oscWrite("interpolatepeaks", "i", type);
redrawPADnoteApply();
}
void ResonanceUI::cb_InterpP(Fl_Osc_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_InterpP_i(o,v);
}

void ResonanceUI::cb_centerfreq_i(Fl_Osc_Slider*, void*) {
centerfreqvo->do_callback();
redrawPADnoteApply();
}
void ResonanceUI::cb_centerfreq(Fl_Osc_Slider* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreq_i(o,v);
}

void ResonanceUI::cb_octavesfreq_i(Fl_Osc_Slider*, void*) {
octavesfreqvo->do_callback();
redrawPADnoteApply();
}
void ResonanceUI::cb_octavesfreq(Fl_Osc_Slider* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreq_i(o,v);
}

void ResonanceUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(resonancewindow->loc());
}
void ResonanceUI::cb_C(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void ResonanceUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(resonancewindow->loc(),this);
}
void ResonanceUI::cb_P(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

void ResonanceUI::cb_applybutton_i(Fl_Button*, void*) {
applybutton->color(FL_GRAY);
applybutton->redraw();
if (cbapplywidget!=NULL) {
cbapplywidget->do_callback();
cbapplywidget->color(FL_GRAY);
cbapplywidget->redraw();
};
}
void ResonanceUI::cb_applybutton(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_applybutton_i(o,v);
}

Fl_Osc_Window* ResonanceUI::make_window(Fl_Osc_Interface *osc, std::string loc) {
{ resonancewindow = new Fl_Osc_Window(780, 305, "Resonance");
resonancewindow->box(FL_FLAT_BOX);
resonancewindow->color(FL_BACKGROUND_COLOR);
resonancewindow->selection_color(FL_BACKGROUND_COLOR);
resonancewindow->labeltype(FL_NO_LABEL);
resonancewindow->labelfont(0);
resonancewindow->labelsize(14);
resonancewindow->labelcolor(FL_FOREGROUND_COLOR);
resonancewindow->user_data((void*)(this));
resonancewindow->align(Fl_Align(FL_ALIGN_TOP));
resonancewindow->when(FL_WHEN_RELEASE);
{ khzvalue = new Fl_Value_Output(415, 264, 45, 18, "kHz");
khzvalue->labelsize(12);
khzvalue->minimum(0.001);
khzvalue->maximum(48);
khzvalue->step(0.01);
khzvalue->textfont(1);
khzvalue->textsize(12);
khzvalue->align(Fl_Align(FL_ALIGN_RIGHT));
//this widget must be before the calling widgets
resonancewindow->init(osc,loc);
} // Fl_Value_Output* khzvalue
{ dbvalue = new Fl_Value_Output(415, 282, 45, 18, "dB");
dbvalue->labelsize(12);
dbvalue->minimum(-150);
dbvalue->maximum(150);
dbvalue->step(0.1);
dbvalue->textfont(1);
dbvalue->textsize(12);
dbvalue->align(Fl_Align(FL_ALIGN_RIGHT));
//this widget must be before the calling widgets
} // Fl_Value_Output* dbvalue
{ Fl_Button* o = new Fl_Button(690, 283, 84, 17, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Osc_Button* o = new Fl_Osc_Button(491, 264, 66, 15, "Zero");
o->tooltip("Clear the resonance function");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(12);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_Zero);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Button* o = new Fl_Osc_Button(491, 282, 66, 18, "Smooth");
o->tooltip("Smooth the resonance function");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(12);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_Smooth);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Check* o = enabled = new Fl_Osc_Check(6, 270, 78, 27, "Enable");
enabled->box(FL_THIN_UP_BOX);
enabled->down_box(FL_DOWN_BOX);
enabled->color(FL_BACKGROUND_COLOR);
enabled->selection_color(FL_FOREGROUND_COLOR);
enabled->labeltype(FL_NORMAL_LABEL);
enabled->labelfont(0);
enabled->labelsize(14);
enabled->labelcolor(FL_FOREGROUND_COLOR);
enabled->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
enabled->when(FL_WHEN_RELEASE);
o->init("Penabled");
} // Fl_Osc_Check* enabled
{ Fl_Osc_Slider* o = maxdb = new Fl_Osc_Slider(90, 285, 84, 15);
maxdb->type(5);
maxdb->box(FL_FLAT_BOX);
maxdb->color(FL_BACKGROUND_COLOR);
maxdb->selection_color(FL_BACKGROUND_COLOR);
maxdb->labeltype(FL_NORMAL_LABEL);
maxdb->labelfont(0);
maxdb->labelsize(14);
maxdb->labelcolor(FL_FOREGROUND_COLOR);
maxdb->minimum(1);
maxdb->maximum(90);
maxdb->step(1);
maxdb->value(30);
maxdb->callback((Fl_Callback*)cb_maxdb);
maxdb->align(Fl_Align(FL_ALIGN_BOTTOM));
maxdb->when(FL_WHEN_CHANGED);
o->init("PmaxdB", 'i'); o->reset_value = 30;
} // Fl_Osc_Slider* maxdb
{ maxdbvo = new Fl_Value_Output(126, 264, 24, 18, "Max.");
maxdbvo->tooltip("The Maximum amplitude (dB)");
maxdbvo->labelsize(12);
maxdbvo->minimum(1);
maxdbvo->maximum(127);
maxdbvo->step(1);
maxdbvo->value(30);
maxdbvo->textsize(12);
} // Fl_Value_Output* maxdbvo
{ new Fl_Box(150, 264, 24, 18, "dB");
} // Fl_Box* o
{ Fl_Osc_Output* o = centerfreqvo = new Fl_Osc_Output(210, 264, 45, 18, "C.f.");
centerfreqvo->tooltip("Center Frequency (kHz)");
centerfreqvo->box(FL_NO_BOX);
centerfreqvo->color(FL_BACKGROUND_COLOR);
centerfreqvo->selection_color(FL_BACKGROUND_COLOR);
centerfreqvo->labeltype(FL_NORMAL_LABEL);
centerfreqvo->labelfont(0);
centerfreqvo->labelsize(12);
centerfreqvo->labelcolor(FL_FOREGROUND_COLOR);
centerfreqvo->minimum(1);
centerfreqvo->maximum(10);
centerfreqvo->step(0.01);
centerfreqvo->value(1);
centerfreqvo->textfont(1);
centerfreqvo->textsize(12);
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo);
centerfreqvo->align(Fl_Align(FL_ALIGN_LEFT));
centerfreqvo->when(3);
o->init("centerfreq");
} // Fl_Osc_Output* centerfreqvo
{ Fl_Osc_Output* o = octavesfreqvo = new Fl_Osc_Output(210, 282, 45, 18, "Oct.");
octavesfreqvo->tooltip("No. of octaves");
octavesfreqvo->box(FL_NO_BOX);
octavesfreqvo->color(FL_BACKGROUND_COLOR);
octavesfreqvo->selection_color(FL_BACKGROUND_COLOR);
octavesfreqvo->labeltype(FL_NORMAL_LABEL);
octavesfreqvo->labelfont(0);
octavesfreqvo->labelsize(12);
octavesfreqvo->labelcolor(FL_FOREGROUND_COLOR);
octavesfreqvo->maximum(11);
octavesfreqvo->step(0.01);
octavesfreqvo->value(5);
octavesfreqvo->textfont(1);
octavesfreqvo->textsize(12);
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo);
octavesfreqvo->align(Fl_Align(FL_ALIGN_LEFT));
octavesfreqvo->when(3);
o->init("octavesfreq");
} // Fl_Osc_Output* octavesfreqvo
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 276, 42, 12, "RND2");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_RND2);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 264, 42, 12, "RND1");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_RND1);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Button* o = new Fl_Osc_Button(566, 288, 42, 12, "RND3");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_RND3);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Check* o = p1st = new Fl_Osc_Check(365, 285, 45, 15, "P.1st");
p1st->tooltip("Protect the fundamental frequency (do not damp the first harmonic)");
p1st->box(FL_NO_BOX);
p1st->down_box(FL_DOWN_BOX);
p1st->color(FL_BACKGROUND_COLOR);
p1st->selection_color(FL_FOREGROUND_COLOR);
p1st->labeltype(FL_NORMAL_LABEL);
p1st->labelfont(0);
p1st->labelsize(10);
p1st->labelcolor(FL_FOREGROUND_COLOR);
p1st->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
p1st->when(FL_WHEN_RELEASE);
o->init("Pprotectthefundamental");
} // Fl_Osc_Check* p1st
{ Fl_Osc_Button* o = new Fl_Osc_Button(365, 265, 46, 15, "InterpP");
o->tooltip("Interpolate the peaks");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_InterpP);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ Fl_Osc_Slider* o = centerfreq = new Fl_Osc_Slider(260, 268, 90, 14);
centerfreq->type(5);
centerfreq->box(FL_FLAT_BOX);
centerfreq->color(FL_BACKGROUND_COLOR);
centerfreq->selection_color(FL_BACKGROUND_COLOR);
centerfreq->labeltype(FL_NORMAL_LABEL);
centerfreq->labelfont(0);
centerfreq->labelsize(10);
centerfreq->labelcolor(FL_FOREGROUND_COLOR);
centerfreq->maximum(127);
centerfreq->step(1);
centerfreq->callback((Fl_Callback*)cb_centerfreq);
centerfreq->align(Fl_Align(FL_ALIGN_BOTTOM));
centerfreq->when(FL_WHEN_CHANGED);
o->init("Pcenterfreq", 'i');o->reset_value=64;
} // Fl_Osc_Slider* centerfreq
{ Fl_Osc_Slider* o = octavesfreq = new Fl_Osc_Slider(260, 286, 90, 14);
octavesfreq->type(5);
octavesfreq->box(FL_FLAT_BOX);
octavesfreq->color(FL_BACKGROUND_COLOR);
octavesfreq->selection_color(FL_BACKGROUND_COLOR);
octavesfreq->labeltype(FL_NORMAL_LABEL);
octavesfreq->labelfont(0);
octavesfreq->labelsize(10);
octavesfreq->labelcolor(FL_FOREGROUND_COLOR);
octavesfreq->maximum(127);
octavesfreq->step(1);
octavesfreq->callback((Fl_Callback*)cb_octavesfreq);
octavesfreq->align(Fl_Align(FL_ALIGN_BOTTOM));
octavesfreq->when(FL_WHEN_CHANGED);
o->init("Poctavesfreq", 'i');o->reset_value=64;
} // Fl_Osc_Slider* octavesfreq
{ Fl_Button* o = new Fl_Button(625, 275, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(655, 275, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
{ applybutton = new Fl_Button(690, 265, 85, 15, "Apply");
applybutton->box(FL_THIN_UP_BOX);
applybutton->labelfont(1);
applybutton->labelsize(11);
applybutton->callback((Fl_Callback*)cb_applybutton);
} // Fl_Button* applybutton
{ rg = new Fl_Resonance_Graph(6, 5, 768, 256);
rg->box(FL_BORDER_BOX);
rg->color(FL_BACKGROUND_COLOR);
rg->selection_color(FL_BACKGROUND_COLOR);
rg->labeltype(FL_NORMAL_LABEL);
rg->labelfont(0);
rg->labelsize(14);
rg->labelcolor(FL_FOREGROUND_COLOR);
rg->align(Fl_Align(FL_ALIGN_CENTER));
rg->when(FL_WHEN_RELEASE);
} // Fl_Resonance_Graph* rg
resonancewindow->end();
} // Fl_Osc_Window* resonancewindow
return resonancewindow;
}

ResonanceUI::ResonanceUI(Fl_Osc_Interface *osc, std::string loc) {
assert(osc);
cbwidget=NULL;
cbapplywidget=NULL;
make_window(osc, loc);
rg->init(khzvalue,dbvalue);
applybutton->hide();
}

ResonanceUI::~ResonanceUI() {
resonancewindow->hide();
delete resonancewindow;
}

void ResonanceUI::redrawPADnoteApply() {
rg->update();
if (cbwidget!=NULL) {
cbwidget->do_callback();
applybutton->color(FL_RED);
applybutton->redraw();
};
}

void ResonanceUI::setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget) {
this->cbwidget=cbwidget;
this->cbapplywidget=cbapplywidget;
rg->setcbwidget(cbwidget,applybutton);
applybutton->show();
}

void ResonanceUI::refresh() {
redrawPADnoteApply();
//TODO fix me when controls are relocatable
//enabled->value(respar->Penabled);
//maxdb->value(respar->PmaxdB);
//maxdbvo->value(respar->PmaxdB);
//
//centerfreqvo->value(respar->getcenterfreq()/1000.0);
//octavesfreqvo->value(respar->getoctavesfreq());
//
//centerfreq->value(respar->Pcenterfreq);
//octavesfreq->value(respar->Poctavesfreq);
//
//p1st->value(respar->Pprotectthefundamental);
rg->update();
}

+ 0
- 91
zynaddsubfx/UI/ResonanceUI.h View File

@@ -1,91 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ResonanceUI_h
#define ResonanceUI_h
#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Value_Output.H>
#include "Fl_Osc_Dial.H"
#include "Fl_Osc_Pane.H"
#include "Fl_Osc_Button.H"
#include "Fl_Osc_Check.H"
#include "Fl_Osc_Slider.H"
#include "Fl_Osc_Output.H"
#include "Fl_Resonance_Graph.H"
#include "PresetsUI.h"
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>

class ResonanceUI : PresetsUI_ {
public:
Fl_Osc_Window* make_window(Fl_Osc_Interface *osc, std::string loc);
Fl_Osc_Window *resonancewindow;
Fl_Value_Output *khzvalue;
Fl_Value_Output *dbvalue;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Zero_i(Fl_Osc_Button*, void*);
static void cb_Zero(Fl_Osc_Button*, void*);
void cb_Smooth_i(Fl_Osc_Button*, void*);
static void cb_Smooth(Fl_Osc_Button*, void*);
public:
Fl_Osc_Check *enabled;
Fl_Osc_Slider *maxdb;
private:
void cb_maxdb_i(Fl_Osc_Slider*, void*);
static void cb_maxdb(Fl_Osc_Slider*, void*);
public:
Fl_Value_Output *maxdbvo;
Fl_Osc_Output *centerfreqvo;
private:
void cb_centerfreqvo_i(Fl_Osc_Output*, void*);
static void cb_centerfreqvo(Fl_Osc_Output*, void*);
public:
Fl_Osc_Output *octavesfreqvo;
private:
void cb_octavesfreqvo_i(Fl_Osc_Output*, void*);
static void cb_octavesfreqvo(Fl_Osc_Output*, void*);
void cb_RND2_i(Fl_Osc_Button*, void*);
static void cb_RND2(Fl_Osc_Button*, void*);
void cb_RND1_i(Fl_Osc_Button*, void*);
static void cb_RND1(Fl_Osc_Button*, void*);
void cb_RND3_i(Fl_Osc_Button*, void*);
static void cb_RND3(Fl_Osc_Button*, void*);
public:
Fl_Osc_Check *p1st;
private:
void cb_InterpP_i(Fl_Osc_Button*, void*);
static void cb_InterpP(Fl_Osc_Button*, void*);
public:
Fl_Osc_Slider *centerfreq;
private:
void cb_centerfreq_i(Fl_Osc_Slider*, void*);
static void cb_centerfreq(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Slider *octavesfreq;
private:
void cb_octavesfreq_i(Fl_Osc_Slider*, void*);
static void cb_octavesfreq(Fl_Osc_Slider*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
Fl_Resonance_Graph *rg;
ResonanceUI(Fl_Osc_Interface *osc, std::string loc);
~ResonanceUI();
void redrawPADnoteApply();
void setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget);
void refresh();
private:
Fl_Widget *cbwidget,*cbapplywidget;
};
#endif

+ 0
- 821
zynaddsubfx/UI/SUBnoteUI.cpp View File

@@ -1,821 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/SUBnoteUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

SUBSlider::SUBSlider(int x,int y, int w, int h, const char *label)
:Fl_Osc_TSlider(x,y,w,h,label) {
}

void SUBSlider::OSC_value(char c) {
value(127-c);
selection_color(value() == reset_value ? 0 : 222);
}

void SUBSlider::cb(void) {
selection_color(value() == reset_value ? 0 : 222);
oscWrite(ext, "c", (int)(127-Fl_Slider::value()));
if(cb_data.first)
cb_data.first(this, cb_data.second);
}

Fl_Osc_Group* SUBnoteharmonic::make_window() {
{ harmonic = new Fl_Osc_Group(0, 0, 90, 305);
harmonic->box(FL_FLAT_BOX);
harmonic->color(FL_BACKGROUND_COLOR);
harmonic->selection_color(FL_BACKGROUND_COLOR);
harmonic->labeltype(FL_NO_LABEL);
harmonic->labelfont(0);
harmonic->labelsize(14);
harmonic->labelcolor(FL_FOREGROUND_COLOR);
harmonic->user_data((void*)(this));
harmonic->align(Fl_Align(FL_ALIGN_TOP));
harmonic->when(FL_WHEN_RELEASE);
{ mag = new SUBSlider(0, 15, 10, 135);
mag->tooltip("harmonic\'s magnitude");
mag->type(4);
mag->box(FL_FLAT_BOX);
mag->color(FL_BACKGROUND_COLOR);
mag->selection_color(FL_FOREGROUND_COLOR);
mag->labeltype(FL_NORMAL_LABEL);
mag->labelfont(0);
mag->labelsize(14);
mag->labelcolor(FL_FOREGROUND_COLOR);
mag->maximum(127);
mag->step(1);
mag->value(127);
mag->align(Fl_Align(FL_ALIGN_BOTTOM));
mag->when(FL_WHEN_CHANGED);
} // SUBSlider* mag
{ bw = new SUBSlider(0, 157, 10, 130);
bw->tooltip("harmonic\'s bandwidth");
bw->type(4);
bw->box(FL_FLAT_BOX);
bw->color(FL_BACKGROUND_COLOR);
bw->selection_color((Fl_Color)222);
bw->labeltype(FL_NORMAL_LABEL);
bw->labelfont(0);
bw->labelsize(14);
bw->labelcolor(FL_FOREGROUND_COLOR);
bw->maximum(127);
bw->step(1);
bw->value(64);
bw->align(Fl_Align(FL_ALIGN_BOTTOM));
bw->when(FL_WHEN_CHANGED);
} // SUBSlider* bw
{ Fl_Box* o = new Fl_Box(10, 219, 5, 5);
o->box(FL_FLAT_BOX);
o->color(FL_DARK2);
if (n+1==MAX_SUB_HARMONICS) o->hide();
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(0, 288, 10, 15, "01");
o->labelfont(1);
o->labelsize(9);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(0, 0, 10, 15, "01");
o->labelfont(1);
o->labelsize(9);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
} // Fl_Box* o
harmonic->end();
} // Fl_Osc_Group* harmonic
return harmonic;
}

SUBnoteharmonic::SUBnoteharmonic(int x,int y, int w, int h, const char *label):Fl_Osc_Group(x,y,w,h,label) {
n=0;
}

void SUBnoteharmonic::init(int n_) {
n=n_;
make_window();
harmonic->show();
mag->reset_value=127;
mag->ext = "Phmag" + to_s(n);
mag->oscRegister(mag->ext.c_str());
mag->set_transform([](float x){return 127.0f - x;});
bw->reset_value=63;
bw->ext = "Phrelbw" + to_s(n);
bw->oscRegister(bw->ext.c_str());
bw->set_transform([](float x){return 63.0f - x;});
osc->requestValue(base+"Phrelbw"+to_s(n));
end();
}

void SUBnoteharmonic::refresh() {
// request values for the widgets
mag->oscWrite(mag->ext);
bw->oscWrite(bw->ext);
}

SUBnoteharmonic::~SUBnoteharmonic() {
harmonic->hide();
hide();
//delete(harmonic);
}

void SUBnoteUI::cb_Close_i(Fl_Button*, void*) {
SUBparameters->hide();
}
void SUBnoteUI::cb_Close(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

Fl_Menu_Item SUBnoteUI::menu_magtype[] = {
{"Linear", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-40dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-60dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-80dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-100dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

Fl_Menu_Item SUBnoteUI::menu_start[] = {
{"Zero", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Max.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

void SUBnoteUI::cb_freqee_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) freqenvelopegroup->deactivate();
else freqenvelopegroup->activate();
o->show();
freqsettingsui->redraw();
}
void SUBnoteUI::cb_freqee(Fl_Osc_Check* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_freqee_i(o,v);
}

void SUBnoteUI::cb_detune_i(Fl_Osc_Slider* o, void*) {
o->oscWrite("detunevalue");
}
void SUBnoteUI::cb_detune(Fl_Osc_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detune_i(o,v);
}

void SUBnoteUI::cb_hz440_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) fixedfreqetdial->deactivate();
else fixedfreqetdial->activate();
}
void SUBnoteUI::cb_hz440(Fl_Osc_Check* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_hz440_i(o,v);
}

void SUBnoteUI::cb_detunetype_i(Fl_Osc_Choice* o, void*) {
o->oscWrite("detunevalue");
}
void SUBnoteUI::cb_detunetype(Fl_Osc_Choice* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detunetype_i(o,v);
}

void SUBnoteUI::cb_Clear_i(Fl_Osc_Button* o, void*) {
o->oscWrite("clear");
for (int i=1;i<MAX_SUB_HARMONICS;i++){
h[i]->mag->oscWrite(h[i]->mag->ext, "c", 0);
h[i]->bw->oscWrite(h[i]->bw->ext, "c", 64);
};
h[0]->mag->oscWrite(h[0]->mag->ext, "c", 127);
h[0]->bw->oscWrite(h[0]->bw->ext, "c", 64);
SUBparameters->redraw();
}
void SUBnoteUI::cb_Clear(Fl_Osc_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_Clear_i(o,v);
}

void SUBnoteUI::cb_bwee_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) bandwidthenvelopegroup->deactivate();
else bandwidthenvelopegroup->activate();
o->show();
bandwidthsettingsui->redraw();
}
void SUBnoteUI::cb_bwee(Fl_Osc_Check* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_bwee_i(o,v);
}

void SUBnoteUI::cb_filtere_i(Fl_Osc_Check* o, void*) {
if (o->value()==0) globalfiltergroup->deactivate();
else globalfiltergroup->activate();
o->show();
globalfiltergroup->redraw();
}
void SUBnoteUI::cb_filtere(Fl_Osc_Check* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_filtere_i(o,v);
}

void SUBnoteUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(loc);
}
void SUBnoteUI::cb_C(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void SUBnoteUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(loc,this);
}
void SUBnoteUI::cb_P(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

Fl_Menu_Item SUBnoteUI::menu_spreadtype[] = {
{"Harmonic", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"ShiftU", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"ShiftL", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"PowerU", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"PowerL", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Sine", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Power", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Shift", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

Fl_Osc_Window* SUBnoteUI::make_window() {
{ SUBparameters = new Fl_Osc_Window(735, 475, "SUBsynth Parameters");
SUBparameters->box(FL_FLAT_BOX);
SUBparameters->color(FL_BACKGROUND_COLOR);
SUBparameters->selection_color(FL_BACKGROUND_COLOR);
SUBparameters->labeltype(FL_NO_LABEL);
SUBparameters->labelfont(0);
SUBparameters->labelsize(14);
SUBparameters->labelcolor(FL_FOREGROUND_COLOR);
SUBparameters->user_data((void*)(this));
SUBparameters->align(Fl_Align(FL_ALIGN_TOP));
SUBparameters->when(FL_WHEN_RELEASE);
{ Fl_Box* o = new Fl_Box(0, 0, 0, 0);
o->box(FL_FLAT_BOX);
o->color(FL_DARK2);
SUBparameters->init(osc, loc);
} // Fl_Box* o
{ Fl_Scroll* o = new Fl_Scroll(5, 140, 434, 330, "scroll");
o->type(1);
o->box(FL_FLAT_BOX);
o->labeltype(FL_NO_LABEL);
{ Fl_Pack* o = harmonics = new Fl_Pack(5, 145, 425, 325);
harmonics->type(1);
for (int i=0;i<MAX_SUB_HARMONICS;i++){h[i]=new SUBnoteharmonic(0,0,15,o->h(),"");h[i]->init(i);}
harmonics->end();
} // Fl_Pack* harmonics
o->end();
} // Fl_Scroll* o
{ Fl_Button* o = new Fl_Button(670, 446, 60, 25, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Group* o = new Fl_Group(5, 5, 215, 135, "AMPLITUDE");
o->box(FL_UP_FRAME);
o->labeltype(FL_EMBOSSED_LABEL);
o->labelfont(1);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Osc_VSlider* o = vol = new Fl_Osc_VSlider(10, 25, 140, 15, "Vol");
vol->tooltip("Volume");
vol->type(5);
vol->box(FL_NO_BOX);
vol->color(FL_BACKGROUND_COLOR);
vol->selection_color(FL_BACKGROUND_COLOR);
vol->labeltype(FL_NORMAL_LABEL);
vol->labelfont(0);
vol->labelsize(11);
vol->labelcolor(FL_FOREGROUND_COLOR);
vol->maximum(127);
vol->step(1);
vol->align(Fl_Align(FL_ALIGN_RIGHT));
vol->when(FL_WHEN_CHANGED);
o->init("PVolume");o->reset_value=96;
} // Fl_Osc_VSlider* vol
{ Fl_Osc_VSlider* o = vsns = new Fl_Osc_VSlider(10, 45, 140, 15, "V.Sns");
vsns->tooltip("Velocity Sensing Function (rightmost to disable)");
vsns->type(5);
vsns->box(FL_NO_BOX);
vsns->color(FL_BACKGROUND_COLOR);
vsns->selection_color(FL_BACKGROUND_COLOR);
vsns->labeltype(FL_NORMAL_LABEL);
vsns->labelfont(0);
vsns->labelsize(11);
vsns->labelcolor(FL_FOREGROUND_COLOR);
vsns->maximum(127);
vsns->step(1);
vsns->align(Fl_Align(FL_ALIGN_RIGHT));
vsns->when(FL_WHEN_CHANGED);
o->init("PAmpVelocityScaleFunction");o->reset_value=90;
} // Fl_Osc_VSlider* vsns
{ Fl_Osc_Dial* o = pan = new Fl_Osc_Dial(185, 20, 30, 30, "Pan");
pan->tooltip("Panning (leftmost is Random)");
pan->box(FL_ROUND_UP_BOX);
pan->color(FL_BACKGROUND_COLOR);
pan->selection_color(FL_INACTIVE_COLOR);
pan->labeltype(FL_NORMAL_LABEL);
pan->labelfont(0);
pan->labelsize(10);
pan->labelcolor(FL_FOREGROUND_COLOR);
pan->maximum(127);
pan->step(1);
pan->align(Fl_Align(FL_ALIGN_BOTTOM));
pan->when(FL_WHEN_CHANGED);
o->init("PPanning");o->reset_value=64;
} // Fl_Osc_Dial* pan
{ EnvelopeUI* o = ampenv = new EnvelopeUI(10, 65, 205, 70, "SUBsynth - Amplitude Envelope");
ampenv->box(FL_FLAT_BOX);
ampenv->color((Fl_Color)51);
ampenv->selection_color(FL_BACKGROUND_COLOR);
ampenv->labeltype(FL_NORMAL_LABEL);
ampenv->labelfont(0);
ampenv->labelsize(14);
ampenv->labelcolor(FL_FOREGROUND_COLOR);
ampenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
ampenv->when(FL_WHEN_RELEASE);
o->init(ENV_ADSR, osc, loc, "AmpEnvelope/");
ampenv->end();
} // EnvelopeUI* ampenv
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(495, 406, 235, 35);
o->box(FL_UP_FRAME);
{ Fl_Osc_Counter* o = filterstages = new Fl_Osc_Counter(515, 421, 45, 15, "Filter Stages");
filterstages->tooltip("How many times the noise is filtered");
filterstages->type(1);
filterstages->box(FL_UP_BOX);
filterstages->color(FL_BACKGROUND_COLOR);
filterstages->selection_color(FL_INACTIVE_COLOR);
filterstages->labeltype(FL_NORMAL_LABEL);
filterstages->labelfont(1);
filterstages->labelsize(10);
filterstages->labelcolor(FL_FOREGROUND_COLOR);
filterstages->minimum(1);
filterstages->maximum(5);
filterstages->step(1);
filterstages->textsize(10);
filterstages->align(Fl_Align(FL_ALIGN_TOP));
filterstages->when(FL_WHEN_CHANGED);
o->init("Pnumstages");
} // Fl_Osc_Counter* filterstages
{ Fl_Osc_Choice* o = magtype = new Fl_Osc_Choice(585, 421, 65, 15, "Mag.Type");
magtype->box(FL_UP_BOX);
magtype->down_box(FL_BORDER_BOX);
magtype->color(FL_BACKGROUND_COLOR);
magtype->selection_color(FL_SELECTION_COLOR);
magtype->labeltype(FL_NORMAL_LABEL);
magtype->labelfont(1);
magtype->labelsize(10);
magtype->labelcolor(FL_FOREGROUND_COLOR);
magtype->textsize(11);
magtype->align(Fl_Align(FL_ALIGN_TOP));
magtype->when(FL_WHEN_RELEASE);
magtype->menu(menu_magtype);
o->init("Phmagtype");
} // Fl_Osc_Choice* magtype
{ Fl_Osc_Choice* o = start = new Fl_Osc_Choice(670, 420, 50, 15, "Start");
start->box(FL_UP_BOX);
start->down_box(FL_BORDER_BOX);
start->color(FL_BACKGROUND_COLOR);
start->selection_color(FL_SELECTION_COLOR);
start->labeltype(FL_NORMAL_LABEL);
start->labelfont(1);
start->labelsize(10);
start->labelcolor(FL_FOREGROUND_COLOR);
start->textsize(11);
start->align(Fl_Align(FL_ALIGN_TOP));
start->when(FL_WHEN_RELEASE);
start->menu(menu_start);
o->init("Pstart");
} // Fl_Osc_Choice* start
o->end();
} // Fl_Group* o
{ freqsettingsui = new Fl_Group(440, 5, 295, 146, "FREQUENCY");
freqsettingsui->box(FL_UP_FRAME);
freqsettingsui->labeltype(FL_EMBOSSED_LABEL);
freqsettingsui->labelfont(1);
freqsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = freqenvelopegroup = new EnvelopeUI(445, 75, 205, 70, "SUBsynth - Frequency Envelope");
freqenvelopegroup->box(FL_FLAT_BOX);
freqenvelopegroup->color((Fl_Color)51);
freqenvelopegroup->selection_color(FL_BACKGROUND_COLOR);
freqenvelopegroup->labeltype(FL_NORMAL_LABEL);
freqenvelopegroup->labelfont(0);
freqenvelopegroup->labelsize(14);
freqenvelopegroup->labelcolor(FL_FOREGROUND_COLOR);
freqenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
freqenvelopegroup->when(FL_WHEN_RELEASE);
o->init(ENV_ASR, osc, loc, "FreqEnvelope/");
freqenvelopegroup->end();
} // EnvelopeUI* freqenvelopegroup
{ Fl_Osc_Check* o = freqee = new Fl_Osc_Check(445, 77, 55, 15, "Enabled");
freqee->box(FL_NO_BOX);
freqee->down_box(FL_DOWN_BOX);
freqee->color(FL_BACKGROUND_COLOR);
freqee->selection_color(FL_FOREGROUND_COLOR);
freqee->labeltype(FL_NORMAL_LABEL);
freqee->labelfont(1);
freqee->labelsize(10);
freqee->labelcolor(FL_FOREGROUND_COLOR);
freqee->callback((Fl_Callback*)cb_freqee);
freqee->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
freqee->when(FL_WHEN_RELEASE);
o->init("PFreqEnvelopeEnabled");
} // Fl_Osc_Check* freqee
{ Fl_Osc_Counter* o = octave = new Fl_Osc_Counter(670, 58, 45, 15, "Octave");
octave->tooltip("Octave");
octave->type(1);
octave->box(FL_UP_BOX);
octave->color(FL_BACKGROUND_COLOR);
octave->selection_color(FL_INACTIVE_COLOR);
octave->labeltype(FL_NORMAL_LABEL);
octave->labelfont(0);
octave->labelsize(10);
octave->labelcolor(FL_FOREGROUND_COLOR);
octave->minimum(-8);
octave->maximum(7);
octave->step(1);
octave->textfont(1);
octave->textsize(11);
octave->align(Fl_Align(FL_ALIGN_TOP));
octave->when(FL_WHEN_CHANGED);
o->init("octave");
} // Fl_Osc_Counter* octave
{ Fl_Osc_Counter* o = coarsedet = new Fl_Osc_Counter(655, 125, 60, 20, "Coarse Det.");
coarsedet->tooltip("Coarse Detune");
coarsedet->box(FL_UP_BOX);
coarsedet->color(FL_BACKGROUND_COLOR);
coarsedet->selection_color(FL_INACTIVE_COLOR);
coarsedet->labeltype(FL_NORMAL_LABEL);
coarsedet->labelfont(0);
coarsedet->labelsize(10);
coarsedet->labelcolor(FL_FOREGROUND_COLOR);
coarsedet->minimum(-64);
coarsedet->maximum(63);
coarsedet->step(1);
coarsedet->textfont(1);
coarsedet->textsize(11);
coarsedet->align(Fl_Align(FL_ALIGN_TOP));
coarsedet->when(FL_WHEN_CHANGED);
o->init("coarsedetune");
o->lstep(10);
} // Fl_Osc_Counter* coarsedet
{ Fl_Osc_Slider* o = detune = new Fl_Osc_Slider(495, 27, 230, 15);
detune->tooltip("Fine Detune (cents)");
detune->type(5);
detune->box(FL_NO_BOX);
detune->color(FL_BACKGROUND_COLOR);
detune->selection_color(FL_BACKGROUND_COLOR);
detune->labeltype(FL_NORMAL_LABEL);
detune->labelfont(0);
detune->labelsize(14);
detune->labelcolor(FL_FOREGROUND_COLOR);
detune->minimum(-8192);
detune->maximum(8191);
detune->step(1);
detune->callback((Fl_Callback*)cb_detune);
detune->align(Fl_Align(FL_ALIGN_BOTTOM));
detune->when(FL_WHEN_CHANGED);
o->init("PDetune",'i');
} // Fl_Osc_Slider* detune
{ Fl_Osc_Output* o = detunevalueoutput = new Fl_Osc_Output(448, 27, 45, 15, "Detune");
detunevalueoutput->box(FL_NO_BOX);
detunevalueoutput->color(FL_BACKGROUND_COLOR);
detunevalueoutput->selection_color(FL_BACKGROUND_COLOR);
detunevalueoutput->labeltype(FL_NORMAL_LABEL);
detunevalueoutput->labelfont(0);
detunevalueoutput->labelsize(10);
detunevalueoutput->labelcolor(FL_FOREGROUND_COLOR);
detunevalueoutput->minimum(-5000);
detunevalueoutput->maximum(5000);
detunevalueoutput->step(0.01);
detunevalueoutput->textfont(1);
detunevalueoutput->textsize(10);
detunevalueoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
detunevalueoutput->when(FL_WHEN_CHANGED);
o->init("detunevalue");
} // Fl_Osc_Output* detunevalueoutput
{ Fl_Osc_Dial* o = bendadjdial = new Fl_Osc_Dial(448, 53, 15, 15, "Bend");
bendadjdial->tooltip("How the frequency varies according to the pitch wheel");
bendadjdial->box(FL_ROUND_UP_BOX);
bendadjdial->color(FL_BACKGROUND_COLOR);
bendadjdial->selection_color(FL_INACTIVE_COLOR);
bendadjdial->labeltype(FL_NORMAL_LABEL);
bendadjdial->labelfont(0);
bendadjdial->labelsize(10);
bendadjdial->labelcolor(FL_FOREGROUND_COLOR);
bendadjdial->minimum(-64);
bendadjdial->maximum(63);
bendadjdial->step(1);
bendadjdial->align(Fl_Align(FL_ALIGN_RIGHT));
bendadjdial->when(FL_WHEN_CHANGED);
o->init("PBendAdjust"); o->reset_value=24;o->set_transform([](float x){return x/24.0f;});o->set_rounding(2);
} // Fl_Osc_Dial* bendadjdial
{ Fl_Osc_Dial* o = offsethzdial = new Fl_Osc_Dial(500, 53, 15, 15, "Offset");
offsethzdial->tooltip("Offset of frequency in Hz");
offsethzdial->box(FL_ROUND_UP_BOX);
offsethzdial->color(FL_BACKGROUND_COLOR);
offsethzdial->selection_color(FL_INACTIVE_COLOR);
offsethzdial->labeltype(FL_NORMAL_LABEL);
offsethzdial->labelfont(0);
offsethzdial->labelsize(10);
offsethzdial->labelcolor(FL_FOREGROUND_COLOR);
offsethzdial->minimum(-64);
offsethzdial->maximum(63);
offsethzdial->step(1);
offsethzdial->align(Fl_Align(FL_ALIGN_RIGHT));
offsethzdial->when(FL_WHEN_CHANGED);
o->init("POffsetHz"); o->set_rounding(2); o->set_transform([](float x){x/=64; return 15*(x*sqrtf(fabsf(x)));});
} // Fl_Osc_Dial* offsethzdial
{ Fl_Osc_Check* o = hz440 = new Fl_Osc_Check(555, 53, 50, 15, "440Hz");
hz440->tooltip("set the base frequency to 440Hz");
hz440->box(FL_NO_BOX);
hz440->down_box(FL_DOWN_BOX);
hz440->color(FL_BACKGROUND_COLOR);
hz440->selection_color(FL_FOREGROUND_COLOR);
hz440->labeltype(FL_NORMAL_LABEL);
hz440->labelfont(1);
hz440->labelsize(10);
hz440->labelcolor(FL_FOREGROUND_COLOR);
hz440->callback((Fl_Callback*)cb_hz440);
hz440->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
hz440->when(FL_WHEN_RELEASE);
o->init("Pfixedfreq");
} // Fl_Osc_Check* hz440
{ Fl_Osc_Dial* o = fixedfreqetdial = new Fl_Osc_Dial(610, 53, 15, 15, "Eq.T.");
fixedfreqetdial->tooltip("How the frequency varies according to the keyboard (leftmost for fixed freque\
ncy)");
fixedfreqetdial->box(FL_ROUND_UP_BOX);
fixedfreqetdial->color(FL_BACKGROUND_COLOR);
fixedfreqetdial->selection_color(FL_INACTIVE_COLOR);
fixedfreqetdial->labeltype(FL_NORMAL_LABEL);
fixedfreqetdial->labelfont(0);
fixedfreqetdial->labelsize(10);
fixedfreqetdial->labelcolor(FL_FOREGROUND_COLOR);
fixedfreqetdial->maximum(127);
fixedfreqetdial->step(1);
fixedfreqetdial->align(Fl_Align(FL_ALIGN_RIGHT));
fixedfreqetdial->when(FL_WHEN_CHANGED);
o->init("PfixedfreqET");
} // Fl_Osc_Dial* fixedfreqetdial
{ Fl_Osc_Choice* o = detunetype = new Fl_Osc_Choice(655, 94, 70, 15, "Detune Type");
detunetype->box(FL_UP_BOX);
detunetype->down_box(FL_BORDER_BOX);
detunetype->color(FL_BACKGROUND_COLOR);
detunetype->selection_color(FL_SELECTION_COLOR);
detunetype->labeltype(FL_NORMAL_LABEL);
detunetype->labelfont(0);
detunetype->labelsize(10);
detunetype->labelcolor(FL_FOREGROUND_COLOR);
detunetype->textfont(1);
detunetype->textsize(10);
detunetype->callback((Fl_Callback*)cb_detunetype);
detunetype->align(Fl_Align(FL_ALIGN_TOP_LEFT));
detunetype->when(FL_WHEN_RELEASE);
o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");
o->init("PDetuneType",1);
} // Fl_Osc_Choice* detunetype
freqsettingsui->end();
} // Fl_Group* freqsettingsui
{ Fl_Osc_Check* o = stereo = new Fl_Osc_Check(440, 406, 55, 35, "Stereo");
stereo->box(FL_THIN_UP_BOX);
stereo->down_box(FL_DOWN_BOX);
stereo->color(FL_BACKGROUND_COLOR);
stereo->selection_color(FL_FOREGROUND_COLOR);
stereo->labeltype(FL_NORMAL_LABEL);
stereo->labelfont(0);
stereo->labelsize(10);
stereo->labelcolor(FL_FOREGROUND_COLOR);
stereo->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
stereo->when(FL_WHEN_RELEASE);
o->init("Pstereo");
} // Fl_Osc_Check* stereo
{ Fl_Osc_Button* o = new Fl_Osc_Button(445, 446, 70, 25, "Clear");
o->tooltip("Clear the harmonics");
o->box(FL_THIN_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(14);
o->labelcolor(FL_FOREGROUND_COLOR);
o->callback((Fl_Callback*)cb_Clear);
o->align(Fl_Align(FL_ALIGN_CENTER));
o->when(FL_WHEN_RELEASE);
} // Fl_Osc_Button* o
{ bandwidthsettingsui = new Fl_Group(220, 5, 220, 135, "BANDWIDTH");
bandwidthsettingsui->box(FL_UP_FRAME);
bandwidthsettingsui->labeltype(FL_EMBOSSED_LABEL);
bandwidthsettingsui->labelfont(1);
bandwidthsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = bandwidthenvelopegroup = new EnvelopeUI(225, 65, 205, 70, "SUBsynth - BandWidth Envelope");
bandwidthenvelopegroup->box(FL_FLAT_BOX);
bandwidthenvelopegroup->color((Fl_Color)51);
bandwidthenvelopegroup->selection_color(FL_BACKGROUND_COLOR);
bandwidthenvelopegroup->labeltype(FL_NORMAL_LABEL);
bandwidthenvelopegroup->labelfont(0);
bandwidthenvelopegroup->labelsize(14);
bandwidthenvelopegroup->labelcolor(FL_FOREGROUND_COLOR);
bandwidthenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
bandwidthenvelopegroup->when(FL_WHEN_RELEASE);
o->init(ENV_ADSR_BW, osc, loc, "BandWidthEnvelope/");
bandwidthenvelopegroup->end();
} // EnvelopeUI* bandwidthenvelopegroup
{ Fl_Osc_Check* o = bwee = new Fl_Osc_Check(225, 67, 55, 15, "Enabled");
bwee->box(FL_NO_BOX);
bwee->down_box(FL_DOWN_BOX);
bwee->color(FL_BACKGROUND_COLOR);
bwee->selection_color(FL_FOREGROUND_COLOR);
bwee->labeltype(FL_NORMAL_LABEL);
bwee->labelfont(1);
bwee->labelsize(10);
bwee->labelcolor(FL_FOREGROUND_COLOR);
bwee->callback((Fl_Callback*)cb_bwee);
bwee->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
bwee->when(FL_WHEN_RELEASE);
o->init("PBandWidthEnvelopeEnabled");
} // Fl_Osc_Check* bwee
{ Fl_Osc_VSlider* o = bandwidth = new Fl_Osc_VSlider(225, 40, 115, 15, "Band Width");
bandwidth->type(5);
bandwidth->box(FL_NO_BOX);
bandwidth->color(FL_BACKGROUND_COLOR);
bandwidth->selection_color(FL_BACKGROUND_COLOR);
bandwidth->labeltype(FL_NORMAL_LABEL);
bandwidth->labelfont(0);
bandwidth->labelsize(10);
bandwidth->labelcolor(FL_FOREGROUND_COLOR);
bandwidth->maximum(127);
bandwidth->step(1);
bandwidth->align(Fl_Align(FL_ALIGN_TOP));
bandwidth->when(FL_WHEN_CHANGED);
o->init("Pbandwidth");o->reset_value=40;
} // Fl_Osc_VSlider* bandwidth
{ Fl_Osc_TSlider* o = bwidthscale = new Fl_Osc_TSlider(345, 40, 90, 15, "B.Width Scale");
bwidthscale->tooltip("How much I increase the BandWidth according to lower/higher harmonics");
bwidthscale->type(5);
bwidthscale->box(FL_NO_BOX);
bwidthscale->color(FL_BACKGROUND_COLOR);
bwidthscale->selection_color(FL_BACKGROUND_COLOR);
bwidthscale->labeltype(FL_NORMAL_LABEL);
bwidthscale->labelfont(0);
bwidthscale->labelsize(10);
bwidthscale->labelcolor(FL_FOREGROUND_COLOR);
bwidthscale->minimum(-64);
bwidthscale->maximum(63);
bwidthscale->step(1);
bwidthscale->align(Fl_Align(FL_ALIGN_TOP));
bwidthscale->when(FL_WHEN_CHANGED);
o->init("Pbwscale",'i');
} // Fl_Osc_TSlider* bwidthscale
bandwidthsettingsui->end();
} // Fl_Group* bandwidthsettingsui
{ globalfiltergroup = new Fl_Group(440, 221, 290, 185, "FILTER");
globalfiltergroup->box(FL_UP_FRAME);
globalfiltergroup->labeltype(FL_EMBOSSED_LABEL);
globalfiltergroup->labelfont(1);
globalfiltergroup->labelsize(13);
globalfiltergroup->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = filterenv = new EnvelopeUI(445, 331, 275, 70, "SUBsynth - Filter Envelope");
filterenv->box(FL_FLAT_BOX);
filterenv->color((Fl_Color)51);
filterenv->selection_color(FL_BACKGROUND_COLOR);
filterenv->labeltype(FL_NORMAL_LABEL);
filterenv->labelfont(0);
filterenv->labelsize(14);
filterenv->labelcolor(FL_FOREGROUND_COLOR);
filterenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
filterenv->when(FL_WHEN_RELEASE);
o->init(ENV_ADSR_FILTER, osc, loc, "GlobalFilterEnvelope/");
filterenv->end();
} // EnvelopeUI* filterenv
{ FilterUI* o = filterui = new FilterUI(445, 246, 275, 75, "SUBsynthl - Filter");
filterui->box(FL_FLAT_BOX);
filterui->color(FL_LIGHT1);
filterui->selection_color(FL_BACKGROUND_COLOR);
filterui->labeltype(FL_NORMAL_LABEL);
filterui->labelfont(0);
filterui->labelsize(14);
filterui->labelcolor(FL_FOREGROUND_COLOR);
filterui->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
filterui->when(FL_WHEN_RELEASE);
o->init(loc + "PGlobalFilter" , osc, loc, "GlobalFilter/");
filterui->end();
} // FilterUI* filterui
globalfiltergroup->end();
} // Fl_Group* globalfiltergroup
{ Fl_Osc_Check* o = filtere = new Fl_Osc_Check(445, 226, 85, 20, "Enabled");
filtere->box(FL_NO_BOX);
filtere->down_box(FL_DOWN_BOX);
filtere->color(FL_BACKGROUND_COLOR);
filtere->selection_color(FL_FOREGROUND_COLOR);
filtere->labeltype(FL_NORMAL_LABEL);
filtere->labelfont(1);
filtere->labelsize(11);
filtere->labelcolor(FL_FOREGROUND_COLOR);
filtere->callback((Fl_Callback*)cb_filtere);
filtere->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
filtere->when(FL_WHEN_RELEASE);
o->init("PGlobalFilterEnabled");
} // Fl_Osc_Check* filtere
{ Fl_Button* o = new Fl_Button(600, 451, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(630, 451, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor((Fl_Color)55);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
{ Fl_Group* o = new Fl_Group(440, 151, 220, 70, "OVERTONES");
o->box(FL_UP_FRAME);
o->labeltype(FL_EMBOSSED_LABEL);
o->labelfont(1);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Osc_Choice* o = spreadtype = new Fl_Osc_Choice(450, 190, 80, 20, "OvertonesPosition");
spreadtype->box(FL_UP_BOX);
spreadtype->down_box(FL_BORDER_BOX);
spreadtype->color(FL_BACKGROUND_COLOR);
spreadtype->selection_color(FL_SELECTION_COLOR);
spreadtype->labeltype(FL_NORMAL_LABEL);
spreadtype->labelfont(0);
spreadtype->labelsize(10);
spreadtype->labelcolor(FL_FOREGROUND_COLOR);
spreadtype->textsize(10);
spreadtype->align(Fl_Align(FL_ALIGN_TOP_LEFT));
spreadtype->when(FL_WHEN_RELEASE);
spreadtype->menu(menu_spreadtype);
o->init("POvertoneSpread.type");
} // Fl_Osc_Choice* spreadtype
{ Fl_Osc_Dial* o = spreadpar1 = new Fl_Osc_Dial(548, 173, 30, 30, "Par1");
spreadpar1->box(FL_ROUND_UP_BOX);
spreadpar1->color(FL_BACKGROUND_COLOR);
spreadpar1->selection_color(FL_INACTIVE_COLOR);
spreadpar1->labeltype(FL_NORMAL_LABEL);
spreadpar1->labelfont(0);
spreadpar1->labelsize(10);
spreadpar1->labelcolor(FL_FOREGROUND_COLOR);
spreadpar1->maximum(255);
spreadpar1->step(1);
spreadpar1->align(Fl_Align(FL_ALIGN_BOTTOM));
spreadpar1->when(FL_WHEN_CHANGED);
o->init("POvertoneSpread.par1");
} // Fl_Osc_Dial* spreadpar1
{ Fl_Osc_Dial* o = spreadpar2 = new Fl_Osc_Dial(583, 173, 30, 30, "Par2");
spreadpar2->box(FL_ROUND_UP_BOX);
spreadpar2->color(FL_BACKGROUND_COLOR);
spreadpar2->selection_color(FL_INACTIVE_COLOR);
spreadpar2->labeltype(FL_NORMAL_LABEL);
spreadpar2->labelfont(0);
spreadpar2->labelsize(10);
spreadpar2->labelcolor(FL_FOREGROUND_COLOR);
spreadpar2->maximum(255);
spreadpar2->step(1);
spreadpar2->align(Fl_Align(FL_ALIGN_BOTTOM));
spreadpar2->when(FL_WHEN_CHANGED);
o->init("POvertoneSpread.par2");
} // Fl_Osc_Dial* spreadpar2
{ Fl_Osc_Dial* o = spreadpar3 = new Fl_Osc_Dial(618, 173, 30, 30, "ForceH");
spreadpar3->box(FL_ROUND_UP_BOX);
spreadpar3->color(FL_BACKGROUND_COLOR);
spreadpar3->selection_color(FL_INACTIVE_COLOR);
spreadpar3->labeltype(FL_NORMAL_LABEL);
spreadpar3->labelfont(0);
spreadpar3->labelsize(10);
spreadpar3->labelcolor(FL_FOREGROUND_COLOR);
spreadpar3->maximum(255);
spreadpar3->step(1);
spreadpar3->align(Fl_Align(FL_ALIGN_BOTTOM));
spreadpar3->when(FL_WHEN_CHANGED);
o->init("POvertoneSpread.par3");
} // Fl_Osc_Dial* spreadpar3
o->end();
} // Fl_Group* o
SUBparameters->end();
} // Fl_Osc_Window* SUBparameters
return SUBparameters;
}

void SUBnoteUI::refresh() {
SUBparameters->update();
for (int i=0;i<MAX_SUB_HARMONICS;i++) h[i]->refresh();
//globalfiltergroup->redraw();
//ampenv->refresh();
//bandwidthenvelopegroup->refresh();
//freqenvelopegroup->refresh();
//filterui->refresh();
//filterenv->refresh();
}

SUBnoteUI::SUBnoteUI(Fl_Osc_Interface *osc_, std::string loc_) {
osc = osc_;
loc = loc_;
make_window();
}

SUBnoteUI::~SUBnoteUI() {
//for (int i=0;i<MAX_SUB_HARMONICS;i++) delete (h[i]);
SUBparameters->hide();
delete(SUBparameters);
}

+ 0
- 131
zynaddsubfx/UI/SUBnoteUI.h View File

@@ -1,131 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef SUBnoteUI_h
#define SUBnoteUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../globals.h"
#include "Fl_Osc_VSlider.H"
#include "Fl_Osc_TSlider.H"
#include "Fl_Osc_Dial.H"
#include "EnvelopeUI.h"
#include "FilterUI.h"
#include "../Misc/Util.h"
#include "../Params/SUBnoteParameters.h"
#include "PresetsUI.h"

class SUBSlider : public Fl_Osc_TSlider {
public:
SUBSlider(int x,int y, int w, int h, const char *label=0)
;
void OSC_value(char c);
void cb(void);
};
#include <FL/Fl_Box.H>

class SUBnoteharmonic : public Fl_Osc_Group {
Fl_Osc_Group* make_window();
public:
Fl_Osc_Group *harmonic;
SUBSlider *mag;
SUBSlider *bw;
SUBnoteharmonic(int x,int y, int w, int h, const char *label=0);
void init(int n_);
void refresh();
~SUBnoteharmonic();
private:
int n;
};
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>

class SUBnoteUI : public PresetsUI_ {
public:
Fl_Osc_Window* make_window();
Fl_Osc_Window *SUBparameters;
Fl_Pack *harmonics;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Osc_VSlider *vol;
Fl_Osc_VSlider *vsns;
Fl_Osc_Dial *pan;
EnvelopeUI *ampenv;
Fl_Osc_Counter *filterstages;
Fl_Osc_Choice *magtype;
static Fl_Menu_Item menu_magtype[];
Fl_Osc_Choice *start;
static Fl_Menu_Item menu_start[];
Fl_Group *freqsettingsui;
EnvelopeUI *freqenvelopegroup;
Fl_Osc_Check *freqee;
private:
void cb_freqee_i(Fl_Osc_Check*, void*);
static void cb_freqee(Fl_Osc_Check*, void*);
public:
Fl_Osc_Counter *octave;
Fl_Osc_Counter *coarsedet;
Fl_Osc_Slider *detune;
private:
void cb_detune_i(Fl_Osc_Slider*, void*);
static void cb_detune(Fl_Osc_Slider*, void*);
public:
Fl_Osc_Output *detunevalueoutput;
Fl_Osc_Dial *bendadjdial;
Fl_Osc_Dial *offsethzdial;
Fl_Osc_Check *hz440;
private:
void cb_hz440_i(Fl_Osc_Check*, void*);
static void cb_hz440(Fl_Osc_Check*, void*);
public:
Fl_Osc_Dial *fixedfreqetdial;
Fl_Osc_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Osc_Choice*, void*);
static void cb_detunetype(Fl_Osc_Choice*, void*);
public:
Fl_Osc_Check *stereo;
private:
void cb_Clear_i(Fl_Osc_Button*, void*);
static void cb_Clear(Fl_Osc_Button*, void*);
public:
Fl_Group *bandwidthsettingsui;
EnvelopeUI *bandwidthenvelopegroup;
Fl_Osc_Check *bwee;
private:
void cb_bwee_i(Fl_Osc_Check*, void*);
static void cb_bwee(Fl_Osc_Check*, void*);
public:
Fl_Osc_VSlider *bandwidth;
Fl_Osc_TSlider *bwidthscale;
Fl_Group *globalfiltergroup;
EnvelopeUI *filterenv;
FilterUI *filterui;
Fl_Osc_Check *filtere;
private:
void cb_filtere_i(Fl_Osc_Check*, void*);
static void cb_filtere(Fl_Osc_Check*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Osc_Choice *spreadtype;
static Fl_Menu_Item menu_spreadtype[];
Fl_Osc_Dial *spreadpar1;
Fl_Osc_Dial *spreadpar2;
Fl_Osc_Dial *spreadpar3;
void refresh();
SUBnoteUI(Fl_Osc_Interface *osc_, std::string loc_);
~SUBnoteUI();
private:
Fl_Osc_Interface *osc;
std::string loc;
SUBnoteharmonic *h[MAX_SUB_HARMONICS];
};
#endif

+ 0
- 552
zynaddsubfx/UI/VirKeyboard.cpp View File

@@ -1,552 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "external/zynaddsubfx/UI/VirKeyboard.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
static const int keyspos[12]={0,-1,1,-2,2,3,-4,4,-5,5,-6,6};
static const int keysoct1qwerty[]={'q','2','w','3','e','r','5','t','6','y','7','u','i','9','o','0','p','[','=',']','\\',FL_Enter,0};
static const int keysoct2qwerty[]={'z','s','x','d','c','v','g','b','h','n','j','m',',','l','.',';','/',0};
static const int keysoct1dw[]={'\'','2',',','3','.','p','5','y','6','f','7','g','c','9','r','0','l','/',']','=','\\',FL_Enter,0};
static const int keysoct2dw[]={';','o','q','e','j','k','i','x','d','b','h','m','w','n','v','s','z',0};
static const int keysoct1qwertz[]={'q','2','w','3','e','r','5','t','6','z','7','u','i','9','o','0','p',252,'\'','+','\\',FL_Enter,0};
static const int keysoct2qwertz[]={'y','s','x','d','c','v','g','b','h','n','j','m',',','l','.',246,'-',0};
static const int keysoct1az[]={'a',233,'z','\"','e','r','(','t','-','y',232,'u','i',231,'o',224,'p',65106,'=','$',0};
static const int keysoct2az[]={'w','s','x','d','c','v','g','b','h','n','j',',',';','l',':','m','!',0};

VirKeys::VirKeys(int x,int y, int w, int h, const char *label):Fl_Box(x,y,w,h,label),Fl_Osc_Widget() {
}

void VirKeys::OSC_value(int layout) {
keylayout = layout;
}

void VirKeys::init(Fl_Osc_Interface *osc_, std::string loc_) {
osc=osc_;
osc->createLink("/config/cfg.VirKeybLayout", this);
osc->requestValue("/config/cfg.VirKeybLayout");
loc=loc_;
for (int i=0;i<N_OCT*12+1;i++) pressed[i]=0;
keylayout=0;
midich=0;
midivel=100;
midioct=2;
keyoct1=3;
keyoct2=2;
rndvelocity=0;
}

void VirKeys::draw() {
int ox=x(),oy=y(),lx=w(),ly=h()-1,i;
#ifdef NTK_GUI
#ifdef CARLA_VERSION_STRING
Fl_Image *white_up = Fl_Shared_Image::get( gUiPixmapPath + "/white_key.png" );
Fl_Image *white_down = Fl_Shared_Image::get( gUiPixmapPath + "/white_key_pressed.png" );
Fl_Image *black_up = Fl_Shared_Image::get( gUiPixmapPath + "/black_key.png" );
Fl_Image *black_down = Fl_Shared_Image::get( gUiPixmapPath + "/black_key_pressed.png" );
#else
Fl_Image *white_up = Fl_Shared_Image::get( PIXMAP_PATH "white_key.png" );
Fl_Image *white_down = Fl_Shared_Image::get( PIXMAP_PATH "white_key_pressed.png" );
Fl_Image *black_up = Fl_Shared_Image::get( PIXMAP_PATH "black_key.png" );
Fl_Image *black_down = Fl_Shared_Image::get( PIXMAP_PATH "black_key_pressed.png" );
#endif
//On error fetch everything from source directory
if(!(white_up&&white_down&&black_up&&black_down)) {
white_up = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/white_key.png");
white_down = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/white_key_pressed.png");
black_up = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/black_key.png");
black_down = Fl_Shared_Image::get(SOURCE_DIR "/pixmaps/black_key_pressed.png");
}
Fl_Image *key;
for (i=0;i<N_OCT*12;i++) {
int noct=i/12;
int kv=keyspos[i%12];
if (kv>=0){//white keys
if (pressed[i]==0)
key = white_up;
else
key = white_down;
key->draw( ox + (kv + 7 * noct ) * white_up->w() + 3, oy );
}
}
for (i=0;i<N_OCT*12;i++){
int noct=i/12;
int kv=keyspos[i%12];
if ( kv < 0 ) {
kv=keyspos[(i+1)%12];
if (pressed[i]==0)
key = black_up;
else
key = black_down;
key->draw( ox + (kv + 7 * noct ) * white_up->w() - black_up->w() / 2 + 2, oy );
}
}
#else
if (damage()!=1){
fl_color(250,240,230);
fl_rectf(ox,oy,lx,ly);
fl_color(FL_BLACK);
fl_line(ox,oy,ox+lx,oy);
fl_line(ox,oy+ly,ox+lx,oy+ly);
for (i=0;i<N_OCT*7+1;i++){
fl_line(ox+i*SIZE_WHITE,oy,ox+i*SIZE_WHITE,oy+ly);
int ik=i%7;
if ((ik==1)||(ik==2)||(ik==4)||(ik==5)||(ik==6))
fl_rectf(ox+i*SIZE_WHITE-SIZE_BLACK/2,oy,
SIZE_BLACK+1,ly*3/5);
}
}
for (i=0;i<N_OCT*12;i++){
// if (pressed[i]==0) continue;
int noct=i/12;
int kv=keyspos[i%12];
if (kv>=0){//white keys
if (pressed[i]==0) fl_color(250,240,230);
else fl_color(FL_BLUE);
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE+3,oy+ly*3/5+2,
SIZE_WHITE-4,ly*2/5-3);
} else {//black keys
kv=keyspos[(i+1)%12];
if (pressed[i]==0) fl_color(FL_BLACK);
else fl_color(FL_BLUE);
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE-SIZE_BLACK/2+2,oy+2,
SIZE_BLACK-3,ly*3/5-5);
}
}
#endif
}

int VirKeys::handle(int event) {
int i;
int ly=h();
int x_=Fl::event_x()-x();
int y_=Fl::event_y()-y();
if ( (x_<0)&&(x_>w()) && (y_<0)&&(y_>h())){
return(0);
};
if ((event==FL_PUSH)||(event==FL_DRAG)||(event==FL_RELEASE)){
int kpos=-1;
if (y_>ly*3/5){//white keys
int pos=x_/SIZE_WHITE;
if (pos<0) return(1);
for (i=0;i<12;i++) {
if (pos%7==keyspos[i]) {
kpos=pos/7*12+i;
break;
};
};
} else {//black keys
int pos=(x_+SIZE_WHITE/2)/SIZE_WHITE;
if (pos<0) return(1);
for (i=1;i<12;i++) {
if (pos%7==-keyspos[i]) {
kpos=pos/7*12+i;
break;
};
};
};
if ((kpos!=-1)&&((event==FL_PUSH)||(event==FL_DRAG))&&
(Fl::event_shift()==0)) {
presskey(kpos,1,1);
};
if ((event==FL_PUSH)&&(Fl::event_shift()!=0)) {
if (pressed[kpos]==0) presskey(kpos,0,1);
else releasekey(kpos,1);
};
if ((event==FL_RELEASE)&&(Fl::event_shift()==0))
releaseallkeys(1);
take_focus();
};
const int *keysoct1=keysoct1qwerty;
const int *keysoct2=keysoct2qwerty;
if (keylayout==2) {
keysoct1=keysoct1dw;
keysoct2=keysoct2dw;
}else if (keylayout==3) {
keysoct1=keysoct1qwertz;
keysoct2=keysoct2qwertz;
}else if (keylayout==4) {
keysoct1=keysoct1az;
keysoct2=keysoct2az;
};
if ((event==FL_KEYDOWN)||(event==FL_KEYUP)){
int key=Fl::event_key();
int kpos=-1;
for (i=0;keysoct1[i]!=0;i++) if (key==keysoct1[i]) kpos=i+12*keyoct1;
for (i=0;keysoct2[i]!=0;i++) if (key==keysoct2[i]) kpos=i+12*keyoct2;
if (kpos==-1) return(0);
if ((event==FL_KEYUP) && (Fl::event_key(key)==0) && (Fl::get_key(key)!=0)) return(0);
if (event==FL_KEYDOWN) presskey(kpos,0,2);
else releasekey(kpos,2);
};
return(1);
}

void VirKeys::presskey(int nk,int exclusive,int type) {
//Exclusive means that multiple keys can be pressed at once
//when the user uses the shift key
if (nk>=N_OCT*12) return;
if ((nk<0)&&(exclusive==0)) {
releaseallkeys(type);
return;
};
if (nk<0) return;
if (pressed[nk]!=0) return;//the key is already pressed
if (exclusive!=0) releaseallkeys(type);
pressed[nk]=type;
damage(1);
float vel=midivel;
if (rndvelocity!=0){
vel=midivel*(127.0-rndvelocity)/127.0+(rand()/RAND_MAX)*rndvelocity;
};
osc->write(loc+"noteOn", "iii", midich,nk+midioct*12,(int)vel);
}

void VirKeys::releasekey(int nk,int type) {
if ((nk<0)||(nk>=N_OCT*12)) return;
if (pressed[nk]==0) return;//the key is not pressed
if ((type!=0)&&(pressed[nk]!=type)) return;
pressed[nk]=0;
damage(1);
osc->write(loc+"noteOff", "ii", midich,nk+12*midioct);
}

void VirKeys::releaseallkeys(int type) {
for (int i=0;i<N_OCT*12;i++) releasekey(i,type);
}

void VirKeyboard::cb_virkeyboardwindow_i(Fl_Double_Window*, void*) {
releaseallkeys();
virkeyboardwindow->hide();
}
void VirKeyboard::cb_virkeyboardwindow(Fl_Double_Window* o, void* v) {
((VirKeyboard*)(o->user_data()))->cb_virkeyboardwindow_i(o,v);
}

void VirKeyboard::cb_qwer_i(Fl_Counter* o, void*) {
releaseallkeys();
virkeys->keyoct1=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_qwer(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_qwer_i(o,v);
}

void VirKeyboard::cb_zxcv_i(Fl_Counter* o, void*) {
releaseallkeys();
virkeys->keyoct2=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_zxcv(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_zxcv_i(o,v);
}

void VirKeyboard::cb_Vel_i(Fl_Value_Slider* o, void*) {
virkeys->midivel=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_Vel(Fl_Value_Slider* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Vel_i(o,v);
}

void VirKeyboard::cb_Oct_i(Fl_Counter* o, void*) {
releaseallkeys();
virkeys->midioct=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_Oct(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Oct_i(o,v);
}

void VirKeyboard::cb_Close_i(Fl_Button*, void*) {
releaseallkeys();
virkeyboardwindow->hide();
}
void VirKeyboard::cb_Close(Fl_Button* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void VirKeyboard::cb_Cval_i(Fl_Value_Slider* o, void*) {
int ctl=midictl;

osc->write("/setController", "iii", virkeys->midich,ctl,(int) o->value());
virkeys->take_focus();
}
void VirKeyboard::cb_Cval(Fl_Value_Slider* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Cval_i(o,v);
}

void VirKeyboard::cb_Controller_i(Fl_Choice* o, void*) {
switch((int) o->value()+1){
case 1: midictl=C_modwheel; break;
case 2: midictl=C_volume; break;
case 3: midictl=C_panning; break;
case 4: midictl=C_expression; break;
case 5: midictl=C_sustain; break;
case 6: midictl=C_portamento; break;
case 7: midictl=C_filterq; break;
case 8: midictl=C_filtercutoff; break;
case 9: midictl=C_bandwidth; break;
case 10: midictl=C_fmamp; break;
case 11: midictl=C_resonance_center; break;
case 12: midictl=C_resonance_bandwidth; break;
default: midictl=C_NULL; break;

};



virkeys->take_focus();
}
void VirKeyboard::cb_Controller(Fl_Choice* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Controller_i(o,v);
}

Fl_Menu_Item VirKeyboard::menu_Controller[] = {
{"01: Mod.Wheel", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"07: Volume", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"10: Panning", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"11: Expression", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"64: Sustain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"65: Portamento", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"71: Filter Q", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"74: Filter Freq.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"75: Bandwidth", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"76: FM Gain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"77: Res. c. freq", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"78: Res. bw.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void VirKeyboard::cb_pitchwheelroller_i(Fl_Roller* o, void*) {
osc->write("/setController", "iii", virkeys->midich,C_pitchwheel,-(int) o->value());
virkeys->take_focus();
}
void VirKeyboard::cb_pitchwheelroller(Fl_Roller* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_pitchwheelroller_i(o,v);
}

void VirKeyboard::cb_R_i(Fl_Button*, void*) {
pitchwheelroller->value(0);
pitchwheelroller->do_callback();
}
void VirKeyboard::cb_R(Fl_Button* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_R_i(o,v);
}

void VirKeyboard::cb_Vrnd_i(WidgetPDial* o, void*) {
virkeys->rndvelocity=(int) o->value();
}
void VirKeyboard::cb_Vrnd(WidgetPDial* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Vrnd_i(o,v);
}

void VirKeyboard::cb_partrcv_i(Fl_Choice* o, void*) {
releaseallkeys();
virkeys->midich=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_partrcv(Fl_Choice* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_partrcv_i(o,v);
}

Fl_Double_Window* VirKeyboard::make_window() {
{ virkeyboardwindow = new Fl_Double_Window(650, 130, "Virtual Keyboard - ZynAddSubFX");
virkeyboardwindow->callback((Fl_Callback*)cb_virkeyboardwindow, (void*)(this));
{ VirKeys* o = virkeys = new VirKeys(10, 10, 590, 80, "Keyboard");
virkeys->box(FL_FLAT_BOX);
virkeys->color((Fl_Color)17);
virkeys->selection_color(FL_BACKGROUND_COLOR);
virkeys->labeltype(FL_NORMAL_LABEL);
virkeys->labelfont(0);
virkeys->labelsize(14);
virkeys->labelcolor(FL_FOREGROUND_COLOR);
virkeys->align(Fl_Align(FL_ALIGN_CENTER));
virkeys->when(FL_WHEN_RELEASE);
o->init(osc,loc);
} // VirKeys* virkeys
{ Fl_Counter* o = new Fl_Counter(380, 95, 45, 15, "\"qwer..\" Oct");
o->tooltip("keys \"q2w3er5t6y...\" octave");
o->type(1);
o->labelsize(10);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_qwer);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->keyoct1);
} // Fl_Counter* o
{ Fl_Counter* o = new Fl_Counter(380, 110, 45, 15, "\"zxcv..\" Oct");
o->tooltip("keys \"zsxdcvgbh...\" octave");
o->type(1);
o->labelsize(10);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_zxcv);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->keyoct2);
} // Fl_Counter* o
{ Fl_Value_Slider* o = new Fl_Value_Slider(95, 105, 100, 15, "Vel");
o->tooltip("Velocity");
o->type(5);
o->box(FL_NO_BOX);
o->labelsize(10);
o->minimum(1);
o->maximum(127);
o->step(1);
o->callback((Fl_Callback*)cb_Vel);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(virkeys->midivel);
} // Fl_Value_Slider* o
{ Fl_Counter* o = new Fl_Counter(255, 100, 55, 20, "Oct.");
o->tooltip("Midi Octave");
o->type(1);
o->labelsize(11);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Oct);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->midioct);
} // Fl_Counter* o
{ Fl_Button* o = new Fl_Button(545, 105, 55, 20, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Value_Slider* o = new Fl_Value_Slider(605, 10, 15, 115, "Cval");
o->tooltip("Controller value");
o->type(2);
o->box(FL_ENGRAVED_BOX);
o->selection_color((Fl_Color)229);
o->labelsize(8);
o->minimum(127);
o->maximum(0);
o->step(1);
o->value(64);
o->textsize(7);
o->callback((Fl_Callback*)cb_Cval);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
} // Fl_Value_Slider* o
{ Fl_Choice* o = new Fl_Choice(435, 105, 100, 15, "Controller");
o->down_box(FL_BORDER_BOX);
o->labelsize(10);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_Controller);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->menu(menu_Controller);
midictl=C_filtercutoff;o->value(7);
} // Fl_Choice* o
{ pitchwheelroller = new Fl_Roller(625, 10, 20, 95, "Pwh");
pitchwheelroller->tooltip("Pitch Wheel");
pitchwheelroller->labelsize(8);
pitchwheelroller->minimum(-8192);
pitchwheelroller->maximum(8192);
pitchwheelroller->step(64);
pitchwheelroller->callback((Fl_Callback*)cb_pitchwheelroller);
pitchwheelroller->align(Fl_Align(FL_ALIGN_TOP));
pitchwheelroller->when(3);
} // Fl_Roller* pitchwheelroller
{ Fl_Button* o = new Fl_Button(625, 110, 20, 15, "R");
o->tooltip("Reset Pitch Bend");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->callback((Fl_Callback*)cb_R);
} // Fl_Button* o
{ WidgetPDial* o = new WidgetPDial(205, 105, 20, 20, "Vrnd");
o->tooltip("Velocity Randomness");
o->box(FL_ROUND_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_INACTIVE_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->maximum(127);
o->step(1);
o->callback((Fl_Callback*)cb_Vrnd);
o->align(Fl_Align(129));
o->when(FL_WHEN_CHANGED);
o->value(virkeys->rndvelocity);
} // WidgetPDial* o
{ Fl_Choice* o = partrcv = new Fl_Choice(20, 105, 65, 20, "MIDI Ch.");
partrcv->tooltip("Send to Midi Channel");
partrcv->down_box(FL_BORDER_BOX);
partrcv->labelsize(10);
partrcv->textfont(1);
partrcv->textsize(10);
partrcv->callback((Fl_Callback*)cb_partrcv);
partrcv->align(Fl_Align(FL_ALIGN_TOP_LEFT));
char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Chn%d",i+1);if (i!=9) o->add(nrstr); else o->add("Drum10");};
o->value(virkeys->midich);
} // Fl_Choice* partrcv
virkeyboardwindow->end();
} // Fl_Double_Window* virkeyboardwindow
return virkeyboardwindow;
}

VirKeyboard::VirKeyboard(Fl_Osc_Interface *osc_, std::string loc_) {
osc=osc_;
loc=loc_;
midictl=75;
make_window();
}

VirKeyboard::~VirKeyboard() {
delete virkeyboardwindow;
}

void VirKeyboard::show() {
virkeyboardwindow->show();
}

void VirKeyboard::releaseallkeys() {
virkeys->releaseallkeys(0);
}

+ 0
- 100
zynaddsubfx/UI/VirKeyboard.h View File

@@ -1,100 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef VirKeyboard_h
#define VirKeyboard_h
#include <FL/Fl.H>
#include <cstdlib>
#include <FL/fl_draw.H>
#include <FL/Fl_Box.H>
#include "../globals.h"
#include "../Misc/Util.h"
#include "WidgetPDial.h"
#include "Fl_Osc_Counter.H"
#include "common.H"
#ifdef NTK_GUI
#include "FL/Fl_Shared_Image.H"
#endif
using namespace zyncarla;

class VirKeys : public Fl_Box, public Fl_Osc_Widget {
static const int N_OCT=6;
static const int SIZE_WHITE=14;
static const int SIZE_BLACK=8;
public:
VirKeys(int x,int y, int w, int h, const char *label=0);
void OSC_value(int layout);
void init(Fl_Osc_Interface *osc_, std::string loc_);
void draw();
int handle(int event);
void presskey(int nk,int exclusive,int type);
void releasekey(int nk,int type);
void releaseallkeys(int type);
private:
int pressed[N_OCT*12+1];
public:
unsigned char midich;
int keylayout;
unsigned char midivel;
char midioct,keyoct1,keyoct2;
unsigned char rndvelocity;
private:
Fl_Osc_Interface *osc;
std::string loc;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Roller.H>

class VirKeyboard {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *virkeyboardwindow;
private:
void cb_virkeyboardwindow_i(Fl_Double_Window*, void*);
static void cb_virkeyboardwindow(Fl_Double_Window*, void*);
public:
VirKeys *virkeys;
private:
void cb_qwer_i(Fl_Counter*, void*);
static void cb_qwer(Fl_Counter*, void*);
void cb_zxcv_i(Fl_Counter*, void*);
static void cb_zxcv(Fl_Counter*, void*);
void cb_Vel_i(Fl_Value_Slider*, void*);
static void cb_Vel(Fl_Value_Slider*, void*);
void cb_Oct_i(Fl_Counter*, void*);
static void cb_Oct(Fl_Counter*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Cval_i(Fl_Value_Slider*, void*);
static void cb_Cval(Fl_Value_Slider*, void*);
void cb_Controller_i(Fl_Choice*, void*);
static void cb_Controller(Fl_Choice*, void*);
static Fl_Menu_Item menu_Controller[];
public:
Fl_Roller *pitchwheelroller;
private:
void cb_pitchwheelroller_i(Fl_Roller*, void*);
static void cb_pitchwheelroller(Fl_Roller*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
void cb_Vrnd_i(WidgetPDial*, void*);
static void cb_Vrnd(WidgetPDial*, void*);
public:
Fl_Choice *partrcv;
private:
void cb_partrcv_i(Fl_Choice*, void*);
static void cb_partrcv(Fl_Choice*, void*);
public:
VirKeyboard(Fl_Osc_Interface *osc_, std::string loc_);
~VirKeyboard();
void show();
void releaseallkeys();
private:
int midictl;
Fl_Osc_Interface *osc;
std::string loc;
};
#endif

Loading…
Cancel
Save