From e40fc849149dd97c248866a4a1d026dda5e57b62 Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Mon, 7 Mar 2011 19:01:11 +0000 Subject: clean3 --- .../synti/zynaddsubfx/UI/EnvelopeUI.fl | 851 +++++++++++++++++++++ 1 file changed, 851 insertions(+) create mode 100644 attic/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl (limited to 'attic/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl') diff --git a/attic/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl b/attic/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl new file mode 100644 index 00000000..090a77fc --- /dev/null +++ b/attic/muse_qt4_evolution/synti/zynaddsubfx/UI/EnvelopeUI.fl @@ -0,0 +1,851 @@ +# data file for the Fltk User Interface Designer (fluid) +version 1.0106 +header_name {.h} +code_name {.cc} +decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {} + +decl {//License: GNU GPL version 2} {} + +decl {\#include "WidgetPDial.h"} {public +} + +decl {\#include } {public +} + +decl {\#include } {public +} + +decl {\#include "../globals.h"} {public +} + +decl {\#include } {public +} + +decl {\#include "../Params/EnvelopeParams.h"} {public +} + +decl {\#include } {public +} + +decl {\#include } {public +} + +decl {\#include } {public +} + +decl {\#include "PresetsUI.h"} {public +} + +class EnvelopeFreeEdit {: {public Fl_Box} +} { + Function {EnvelopeFreeEdit(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} { + code {env=NULL; +pair=NULL;} {} + } + Function {init(EnvelopeParams *env_)} {} { + code {env=env_; +oldx=-1; +currentpoint=-1; +cpx=0; +lastpoint=-1;} {} + } + Function {setpair(Fl_Box *pair_)} {} { + code {pair=pair_;} {} + } + Function {getpointx(int n)} {return_type int + } { + code {int lx=w()-10; +int npoints=env->Penvpoints; + +float sum=0; +for (int i=1;igetdt(i)+1; + +float sumbefore=0;//the sum of all points before the computed point +for (int i=1;i<=n;i++) sumbefore+=env->getdt(i)+1; + +return((int) (sumbefore/(REALTYPE) sum*lx));} {} + } + Function {getpointy(int n)} {return_type int + } { + code {int ly=h()-10; + +return((int) ((1.0-env->Penvval[n]/127.0)*ly));} {} + } + Function {getnearest(int x,int y)} {return_type int + } { + code {x-=5;y-=5; + +int nearestpoint=0; +int nearestval=1000000;//a big value +for (int i=0;iPenvpoints;i++){ + int distance=abs(x-getpointx(i))+abs(y-getpointy(i)); + if (distancePfreemode==0) env->converttofree(); +int npoints=env->Penvpoints; + +if (active_r()) fl_color(FL_BLACK); + else fl_color(90,90,90); +if (!active_r()) currentpoint=-1; + +fl_rectf(ox,oy,lx,ly); + +ox+=5;oy+=5;lx-=10;ly-=10; + +//draw the lines +fl_color(FL_GRAY); + +fl_line_style(FL_SOLID); +fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2); + +//draws the evelope points and lines +Fl_Color alb=FL_WHITE; +if (!active_r()) alb=fl_rgb_color(180,180,180); +fl_color(alb); +int oldxx=0,xx=0,oldyy=0,yy=getpointy(0); +fl_rectf(ox-3,oy+yy-3,6,6); +for (int i=1;i=0){ + fl_color(FL_CYAN); + fl_rectf(ox+getpointx(lastpoint)-5,oy+getpointy(lastpoint)-5,10,10); +}; + +//draw the sustain position +if (env->Penvsustain>0){ + fl_color(FL_YELLOW); + xx=getpointx(env->Penvsustain); + fl_line(ox+xx,oy+0,ox+xx,oy+ly); +}; + +//Show the envelope duration and the current line duration +fl_font(FL_HELVETICA|FL_BOLD,10); +float time=0.0; +if (currentpoint<=0){ + fl_color(alb); + for (int i=1;igetdt(i); +} else { + fl_color(255,0,0); + time=env->getdt(currentpoint); +}; +char tmpstr[20]; +if (time<1000.0) snprintf((char *)&tmpstr,20,"%.1fms",time); + else snprintf((char *)&tmpstr,20,"%.2fs",time/1000.0); +fl_draw(tmpstr,ox+lx-20,oy+ly-10,20,10,FL_ALIGN_RIGHT,NULL,0);} {} + } + Function {handle(int event)} {return_type int + } { + code {int x_=Fl::event_x()-x(); +int y_=Fl::event_y()-y(); + +if (event==FL_PUSH) { + currentpoint=getnearest(x_,y_); + cpx=x_; + cpdt=env->Penvdt[currentpoint]; + lastpoint=currentpoint; + redraw(); + if (pair!=NULL) pair->redraw(); +}; + +if (event==FL_RELEASE){ + currentpoint=-1; + redraw(); + if (pair!=NULL) pair->redraw(); +}; + +if ((event==FL_DRAG)&&(currentpoint>=0)){ + int ny=127-(int) (y_*127.0/h()); + if (ny<0) ny=0;if (ny>127) ny=127; + env->Penvval[currentpoint]=ny; + + int dx=(int)((x_-cpx)*0.1); + int newdt=cpdt+dx; + if (newdt<0) newdt=0;if (newdt>127) newdt=127; + if (currentpoint!=0) env->Penvdt[currentpoint]=newdt; + else env->Penvdt[currentpoint]=0; + + redraw(); + if (pair!=NULL) pair->redraw(); +}; + + +return(1);} {} + } + decl {Fl_Box *pair;} {} + decl {EnvelopeParams *env;} {} + decl {int oldx,oldy;} {} + decl {int currentpoint,cpx,cpdt;} {} + decl {int lastpoint;} {public + } +} + +class EnvelopeUI {: {public Fl_Group,PresetsUI_} +} { + Function {EnvelopeUI(int x,int y, int w, int h, const char *label=0):Fl_Group(x,y,w,h,label)} {} { + code {env=NULL; +freemodeeditwindow=NULL; +envADSR=NULL; +envASR=NULL; +envADSRfilter=NULL; +envASRbw=NULL; +envfree=NULL;} {} + } + Function {~EnvelopeUI()} {} { + code {envwindow->hide(); +hide(); +freemodeeditwindow->hide(); +delete (freemodeeditwindow);} {} + } + Function {make_freemode_edit_window()} {} { + Fl_Window freemodeeditwindow { + label Envelope + xywh {60 308 575 180} type Double hide + } { + Fl_Box freeedit { + label Envelope + xywh {5 5 565 145} box FLAT_BOX color 0 + code0 {o->init(env);} + class EnvelopeFreeEdit + } + Fl_Button addpoint { + label {Add point} + callback {int curpoint=freeedit->lastpoint; +if (curpoint<0) return; +//if (curpoint>=env->Penvpoints-1) return; +if (env->Penvpoints>=MAX_ENVELOPE_POINTS) return; + +for (int i=env->Penvpoints;i>=curpoint+1;i--){ + env->Penvdt[i]=env->Penvdt[i-1]; + env->Penvval[i]=env->Penvval[i-1]; +}; + +if (curpoint==0) { + env->Penvdt[1]=64; +}; + +env->Penvpoints++; +if (curpoint<=env->Penvsustain) env->Penvsustain++; + +freeedit->lastpoint+=1; +freeedit->redraw(); +envfree->redraw(); + +sustaincounter->value(env->Penvsustain); +sustaincounter->maximum(env->Penvpoints-2);} + xywh {115 155 80 20} box THIN_UP_BOX + code0 {if (env->Pfreemode==0) o->hide();} + } + Fl_Button deletepoint { + label {Delete point} + callback {int curpoint=freeedit->lastpoint; +if (curpoint<1) return; +if (curpoint>=env->Penvpoints-1) return; +if (env->Penvpoints<=3) return; + +for (int i=curpoint+1;iPenvpoints;i++){ + env->Penvdt[i-1]=env->Penvdt[i]; + env->Penvval[i-1]=env->Penvval[i]; +}; + +env->Penvpoints--; + +if (curpoint<=env->Penvsustain) env->Penvsustain--; + + +freeedit->lastpoint-=1; +freeedit->redraw(); +envfree->redraw(); + +sustaincounter->value(env->Penvsustain); +sustaincounter->maximum(env->Penvpoints-2);} + xywh {200 155 80 20} box THIN_UP_BOX + code0 {if (env->Pfreemode==0) o->hide();} + } + Fl_Light_Button freemodebutton { + label FreeMode + callback {reinit(); + +freeedit->lastpoint=-1; +freeedit->redraw();} + tooltip {Enable or disable the freemode} xywh {10 155 95 25} box PLASTIC_UP_BOX + } + Fl_Check_Button forcedreleasecheck { + label frcR + callback {env->Pforcedrelease=(int)o->value();} + tooltip {Forced Relase} xywh {410 165 40 15} down_box DOWN_BOX labelsize 11 + code0 {o->value(env->Pforcedrelease);} + code1 {if (env->Pfreemode==0) o->hide();} + } + Fl_Dial envstretchdial { + label {Str.} + callback {env->Penvstretch=(int)o->value();} + tooltip {Envelope stretch (on lower notes make the envelope longer)} xywh {380 155 25 25} box ROUND_UP_BOX labelsize 11 align 4 maximum 127 step 1 + code0 {o->value(env->Penvstretch);} + code1 {if (env->Pfreemode==0) o->hide();} + class WidgetPDial + } + Fl_Button {} { + label Close + callback {freemodeeditwindow->hide();} + xywh {510 155 60 25} box THIN_UP_BOX + } + Fl_Check_Button linearenvelopecheck { + label L + callback {env->Plinearenvelope=(int)o->value();} + tooltip {Linear Envelope} xywh {410 151 30 15} down_box DOWN_BOX labelsize 11 + code0 {o->value(env->Plinearenvelope);} + code1 {if ((env->Pfreemode==0)||(env->Envmode>2)) o->hide();} + } + Fl_Counter sustaincounter { + label Sust + callback {env->Penvsustain=(int) o->value(); +freeedit->redraw(); +envfree->redraw();} + tooltip {Sustain (0 is disabled)} xywh {315 155 40 15} type Simple labelsize 12 align 4 minimum 0 maximum 127 step 1 + code0 {o->value(env->Penvsustain);} + code1 {if (env->Pfreemode==0) o->hide();} + code2 {o->maximum(env->Penvpoints-2);} + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {465 160 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {482 160 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + } + Function {make_ADSR_window()} {} { + Fl_Window envADSR { + xywh {108 336 205 70} type Double color 50 labelfont 1 hide + class Fl_Group + } { + Fl_Group {} { + label {Amplitude Envelope} + xywh {0 0 205 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 + } { + Fl_Dial e1adt { + label {A.dt} + callback {env->PA_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Attack time} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_dt);} + class WidgetPDial + } + Fl_Dial e1ddt { + label {D.dt} + callback {env->PD_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Decay time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PD_dt);} + class WidgetPDial + } + Fl_Dial e1rdt { + label {R.dt} + callback {env->PR_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Release time} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_dt);} + class WidgetPDial + } + Fl_Dial e1sval { + label {S.val} + callback {env->PS_val=(int)o->value(); +freeedit->redraw();} + tooltip {Sustain value} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PS_val);} + class WidgetPDial + } + Fl_Check_Button e1forcedrelease { + label frcR + callback {env->Pforcedrelease=(int)o->value();} + tooltip {Forced Relase} xywh {180 35 20 15} down_box DOWN_BOX labelsize 11 align 6 + code0 {o->value(env->Pforcedrelease);} + } + Fl_Dial e1envstretch { + label Stretch + callback {env->Penvstretch=(int)o->value();} + tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->Penvstretch);} + class WidgetPDial + } + Fl_Button {} { + label E + callback {freemodeeditwindow->show();} + tooltip {Envelope window} xywh {185 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10 + } + Fl_Check_Button e1linearenvelope { + label L + callback {env->Plinearenvelope=(int)o->value();} + tooltip {The evelope is linear} xywh {180 20 15 15} down_box DOWN_BOX labelsize 11 align 4 + code0 {o->value(env->Plinearenvelope);} + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {150 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {167 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + } + } + Function {make_ASR_window()} {} { + Fl_Window envASR { + xywh {71 320 210 70} type Double hide + class Fl_Group + } { + Fl_Group {} { + label {Frequency Envelope} + xywh {0 0 210 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 + } { + Fl_Dial e2aval { + label {A.val} + callback {env->PA_val=(int)o->value(); +freeedit->redraw();} + tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_val);} + class WidgetPDial + } + Fl_Dial e2adt { + label {A.dt} + callback {env->PA_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_dt);} + class WidgetPDial + } + Fl_Dial e2rval { + label {R.val} + callback {env->PR_val=(int)o->value(); +freeedit->redraw();} + tooltip {Release value} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_val);} + class WidgetPDial + } + Fl_Dial e2rdt { + label {R.dt} + callback {env->PR_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Release time} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_dt);} + class WidgetPDial + } + Fl_Dial e2envstretch { + label Stretch + callback {env->Penvstretch=(int)o->value();} + tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->Penvstretch);} + class WidgetPDial + } + Fl_Check_Button e2forcedrelease { + label frcR + callback {env->Pforcedrelease=(int)o->value();} + tooltip {Forced release} xywh {180 25 15 25} down_box DOWN_BOX labelsize 11 align 6 + code0 {o->value(env->Pforcedrelease);} + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {155 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {172 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + Fl_Button {} { + label E + callback {freemodeeditwindow->show();} + tooltip {Envelope window} xywh {190 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10 + } + } + } + Function {make_ADSRfilter_window()} {} { + Fl_Window envADSRfilter { + xywh {87 143 275 70} type Double color 50 labelfont 1 hide + class Fl_Group + } { + Fl_Group {} { + label {Filter Envelope} + xywh {0 0 275 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 + } { + Fl_Dial e3aval { + label {A.val} + callback {env->PA_val=(int)o->value(); +freeedit->redraw();} + tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_val);} + class WidgetPDial + } + Fl_Dial e3adt { + label {A.dt} + callback {env->PA_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_dt);} + class WidgetPDial + } + Fl_Dial e3dval { + label {D.val} + callback {env->PD_val=(int)o->value(); +freeedit->redraw();} + tooltip {decay value} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PD_val);} + class WidgetPDial + } + Fl_Dial e3ddt { + label {D.dt} + callback {env->PD_dt=(int)o->value(); +freeedit->redraw();} + tooltip {decay time} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PD_dt);} + class WidgetPDial + } + Fl_Dial e3rdt { + label {R.dt} + callback {env->PR_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Release time} xywh {145 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_dt);} + class WidgetPDial + } + Fl_Dial e3rval { + label {R.val} + callback {env->PR_val=(int)o->value(); +freeedit->redraw();} + tooltip {Release value} xywh {180 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_val);} + class WidgetPDial + } + Fl_Dial e3envstretch { + label Stretch + callback {env->Penvstretch=(int)o->value();} + tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {215 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->Penvstretch);} + class WidgetPDial + } + Fl_Check_Button e3forcedrelease { + label frcR + callback {env->Pforcedrelease=(int)o->value();} + tooltip {Forced Relase} xywh {250 30 15 20} down_box DOWN_BOX labelsize 11 align 6 + code0 {o->value(env->Pforcedrelease);} + } + Fl_Button {} { + label E + callback {freemodeeditwindow->show();} + xywh {255 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10 + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {220 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {237 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + } + } + Function {make_ASRbw_window()} {} { + Fl_Window envASRbw { + xywh {224 539 210 70} type Double hide + class Fl_Group + } { + Fl_Group {} { + label {BandWidth Envelope} + xywh {0 0 210 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 + } { + Fl_Dial e4aval { + label {A.val} + callback {env->PA_val=(int)o->value(); +freeedit->redraw();} + tooltip {Starting value} xywh {5 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_val);} + class WidgetPDial + } + Fl_Dial e4adt { + label {A.dt} + callback {env->PA_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Attack time} xywh {40 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PA_dt);} + class WidgetPDial + } + Fl_Dial e4rval { + label {R.val} + callback {env->PR_val=(int)o->value(); +freeedit->redraw();} + tooltip {Release value} xywh {110 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_val);} + class WidgetPDial + } + Fl_Dial e4rdt { + label {R.dt} + callback {env->PR_dt=(int)o->value(); +freeedit->redraw();} + tooltip {Release time} xywh {75 20 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->PR_dt);} + class WidgetPDial + } + Fl_Dial e4envstretch { + label Stretch + callback {env->Penvstretch=(int)o->value();} + tooltip {Envelope stretch (on lower notes makes the envelope longer)} xywh {145 25 25 25} box ROUND_UP_BOX labelsize 11 maximum 127 step 1 + code0 {o->value(env->Penvstretch);} + class WidgetPDial + } + Fl_Check_Button e4forcedrelease { + label frcR + callback {env->Pforcedrelease=(int)o->value();} + tooltip {Forced release} xywh {180 25 15 25} down_box DOWN_BOX labelsize 11 align 6 + code0 {o->value(env->Pforcedrelease);} + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {155 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {172 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + Fl_Button {} { + label E + callback {freemodeeditwindow->show();} + xywh {190 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10 + } + } + } + Function {make_free_window()} {} { + Fl_Window envfree { + xywh {373 413 205 70} type Double color 50 labelfont 1 hide resizable + class Fl_Group + } { + Fl_Group envfreegroup { + label {Amplitude Envelope} + xywh {0 0 205 70} box PLASTIC_UP_BOX color 223 labeltype ENGRAVED_LABEL labelsize 11 align 17 resizable + } { + Fl_Box freeeditsmall { + label Envelope + callback {envfree->redraw();} + xywh {5 20 195 45} box FLAT_BOX color 0 resizable + code0 {o->init(env);} + class EnvelopeFreeEdit + } + Fl_Button {} { + label E + callback {freemodeeditwindow->show();} + xywh {185 5 15 15} box PLASTIC_UP_BOX labelfont 1 labelsize 10 + } + Fl_Button {} { + label C + callback {presetsui->copy(env);} + xywh {150 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + Fl_Button {} { + label P + callback {presetsui->paste(env,this);} + xywh {167 5 15 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 10 labelcolor 7 + } + } + } + } + Function {init(EnvelopeParams *env_)} {} { + code {env=env_; +make_ADSR_window(); +make_ASR_window(); +make_ADSRfilter_window(); +make_ASRbw_window(); +make_free_window(); + +make_freemode_edit_window(); + +envwindow=NULL; +if (env->Envmode==3) envfreegroup->label("Frequency Envelope"); +if (env->Envmode==4) envfreegroup->label("Filter Envelope"); +if (env->Envmode==5) envfreegroup->label("Bandwidth Envelope"); + +freemodeeditwindow->label(this->label()); + + +freeeditsmall->setpair(freeedit); +freeedit->setpair(freeeditsmall); + + +refresh();} {} + } + Function {reinit()} {} { + code {if (env->Pfreemode!=0){ + int answer=fl_ask("Disable the free mode of the Envelope?"); + if (env->Pfreemode!=0) freemodebutton->value(1); + else freemodebutton->value(0); + if (answer==0) return; +}; + +if (env->Pfreemode==0) env->Pfreemode=1; + else env->Pfreemode=0; + +hide(); +int winx=freemodeeditwindow->x(); +int winy=freemodeeditwindow->y(); + +freemodeeditwindow->hide(); + +envwindow->hide(); +Fl_Group *par=envwindow->parent(); +par->hide(); + + +refresh(); +envwindow->show(); +par->redraw(); + +par->show(); +show(); +freemodeeditwindow->position(winx,winy); +freemodeeditwindow->show(); + +if (env->Pfreemode!=0) { + freemodebutton->value(1); + addpoint->show(); + deletepoint->show(); + forcedreleasecheck->show(); +}else{ + freemodebutton->value(0); + addpoint->hide(); + deletepoint->hide(); + forcedreleasecheck->hide(); +};} {selected + } + } + Function {refresh()} {} { + code {freemodebutton->value(env->Pfreemode); + +sustaincounter->value(env->Penvsustain); +if (env->Pfreemode==0) sustaincounter->hide(); + else sustaincounter->show(); +sustaincounter->maximum(env->Penvpoints-2); + +envstretchdial->value(env->Penvstretch); +if (env->Pfreemode==0) envstretchdial->hide(); + else envstretchdial->show(); + +linearenvelopecheck->value(env->Plinearenvelope); +if ((env->Pfreemode==0)||(env->Envmode>2)) linearenvelopecheck->hide(); + else linearenvelopecheck->show(); + +forcedreleasecheck->value(env->Pforcedrelease); +if (env->Pfreemode==0) forcedreleasecheck->hide(); + +freeedit->redraw(); + + +if (env->Pfreemode==0){ + switch(env->Envmode){ + case(1): + case(2): + e1adt->value(env->PA_dt); + e1ddt->value(env->PD_dt); + e1sval->value(env->PS_val); + e1rdt->value(env->PR_dt); + e1envstretch->value(env->Penvstretch); + e1linearenvelope->value(env->Plinearenvelope); + e1forcedrelease->value(env->Pforcedrelease); + break; + case(3): + e2aval->value(env->PA_val); + e2adt->value(env->PA_dt); + e2rdt->value(env->PR_dt); + e2rval->value(env->PR_val); + e2envstretch->value(env->Penvstretch); + e2forcedrelease->value(env->Pforcedrelease); + break; + case(4): + e3aval->value(env->PA_val); + e3adt->value(env->PA_dt); + e3dval->value(env->PD_val); + e3ddt->value(env->PD_dt); + e3rdt->value(env->PR_dt); + e3rval->value(env->PR_val); + e3envstretch->value(env->Penvstretch); + e3forcedrelease->value(env->Pforcedrelease); + break; + case(5): + e4aval->value(env->PA_val); + e4adt->value(env->PA_dt); + e4rdt->value(env->PR_dt); + e4rval->value(env->PR_val); + e4envstretch->value(env->Penvstretch); + e4forcedrelease->value(env->Pforcedrelease); + break; + default: + break; + }; +}else{ + envfree->redraw(); +}; + + +envADSR->hide(); +envASR->hide(); +envADSRfilter->hide(); +envASRbw->hide(); +envfree->hide(); + +if (env->Pfreemode==0){ + switch(env->Envmode){ + case(1): + case(2): + envwindow=envADSR; + break; + case(3): + envwindow=envASR; + break; + case(4): + envwindow=envADSRfilter; + break; + case(5): + envwindow=envASRbw; + break; + default: + break; + }; +}else{ + envwindow=envfree; +}; + +envwindow->resize(this->x(),this->y(),this->w(),this->h()); + +envwindow->show();} {} + } + decl {EnvelopeParams *env;} {} + decl {Fl_Group *envwindow;} {} +} -- cgit v1.2.3