commit 0082567506bbb779327c98670afecf0e8b822c25
parent 7ecd77d36c0c266ceae7bd47c7be57601cc96a08
Author: Johannes Lorenz <johannes89@ist-einmalig.de>
Date: Sun, 28 Jun 2015 09:55:09 +0200
Preparations for subsynth bug. MidiTable::addElem still returns Port::apropros = nullptr.
Diffstat:
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/UI/SUBnoteUI.fl b/src/UI/SUBnoteUI.fl
@@ -52,6 +52,21 @@ class PPSlider {: {public Fl_Slider, public Fl_Osc_Widget}
} {
code {int X=x(),Y=y(),W=w(),H=h();
+// catch any (un)learn event first
+{
+ bool middle_mouse = (event == FL_PUSH && Fl::event_state(FL_BUTTON2) && !Fl::event_shift());
+ bool ctl_click = (event == FL_PUSH && Fl::event_state(FL_BUTTON1) && Fl::event_ctrl());
+ bool shift_middle = (event == FL_PUSH && Fl::event_state(FL_BUTTON2) && Fl::event_shift());
+ if(middle_mouse || ctl_click) {
+ puts("Trying to learn...");
+ osc->write("/learn", "s", (loc+ext).c_str());
+ return 1;
+ } else if(shift_middle) {
+ osc->write("/unlearn", "s", (loc+ext).c_str());
+ return 1;
+ }
+}
+
if ((!Fl::event_buttons())|| (event==0)||(Fl::event_shift()==0)) return(Fl_Slider::handle(event));
if (!Fl::event_inside(X,Y,W,H)) {
@@ -100,7 +115,7 @@ class SUBnoteharmonic {: {public Fl_Osc_Group}
int x=0;
if (Fl::event_button1() || Fl::event() == FL_MOUSEWHEEL) x=127-(int)o->value();
else o->value(127-x);
- o->osc->writeValue(o->loc + "Phmag" + to_s(n), (char) x);
+ o->osc->writeValue(o->loc + o->ext, (char) x);
if (x==0) o->selection_color(0);
else o->selection_color(222);}
tooltip {harmonic's magnitude} xywh {0 15 10 135} type {Vert Knob} box FLAT_BOX selection_color 222 maximum 127 step 1 value 127
@@ -137,16 +152,18 @@ if (Fl::event_button1() || Fl::event() == FL_MOUSEWHEEL) x=127-(int)o->value();
code {n=n_;
make_window();
harmonic->show();
-
-osc->createLink(base+"Phmag"+to_s(n), mag);
+mag->ext = "Phmag" + to_s(n);
+puts((mag->loc + mag->ext).c_str());
+mag->oscRegister(mag->ext.c_str());
+puts((base + "Phrelbw"+to_s(n)).c_str());
osc->createLink(base+"Phrelbw"+to_s(n), bw);
-osc->requestValue(base+"Phmag"+to_s(n));
osc->requestValue(base+"Phrelbw"+to_s(n));
end();} {}
}
Function {refresh()} {} {
- code {osc->requestValue(base+"Phmag"+to_s(n));
+ code {// request values for the widgets
+mag->oscWrite(mag->ext);
osc->requestValue(base+"Phrelbw"+to_s(n));} {}
}
Function {~SUBnoteharmonic()} {} {