15#include <FL/fl_draw.H>
40 osc->createLink(
loc+
string(
"Penvdt") +
to_s(
i),
this);
41 osc->createLink(
loc+
string(
"Penvval") +
to_s(
i),
this);
48 if(strstr(
msg,
"Penvpoints") && !strcmp(args,
"i")) {
50 }
else if(strstr(
msg,
"Penvdt") && !strcmp(args,
"b")) {
54 }
else if(strstr(
msg,
"Penvval") && !strcmp(args,
"b")) {
58 }
else if(strstr(
msg,
"Penvval") && !strcmp(args,
"c")) {
59 const char *str = strstr(
msg,
"Penvval");
63 }
else if(strstr(
msg,
"Penvdt") && !strcmp(args,
"c")) {
64 const char *str = strstr(
msg,
"Penvdt");
68 }
else if(strstr(
msg,
"Penvsustain") && !strcmp(args,
"i")) {
86 for(
int i=1;
i<npoints; ++
i)
90 for(
int i=1;
i<=
n; ++
i)
93 return (
int) (sumbefore/(float) sum*
lx);
115 if (distance_sq<nearest_distance_sq) {
117 nearest_distance_sq=distance_sq;
126 return (powf(2.0f,
val / 127.0f * 12.0f) - 1.0f) * 10.0f;
138 int ox=
x(),oy=
y(),
lx=
w(),ly=
h();
143 if (active_r()) fl_color(FL_BLACK);
144 else fl_color(90,90,90);
147 fl_rectf(ox,oy,
lx,ly);
150 ox+=5;oy+=5;
lx-=10;ly-=10;
155 const int midline = oy+ly*(1-64.0/127);
156 fl_line_style(FL_SOLID);
157 fl_line(ox+2,midline,ox+
lx-2,midline);
160 Fl_Color alb=FL_WHITE;
161 if (!active_r()) alb=fl_rgb_color(180,180,180);
163 int oldxx=0,xx=0,oldyy=0,yy=
getpointy(0);
164 fl_rectf(ox-3,oy+yy-3,6,6);
165 for (
int i=1;
i<npoints; ++
i){
172 fl_line(ox+oldxx,oy+oldyy,ox+xx,oy+yy);
173 fl_rectf(ox+xx-3,oy+yy-3,6,6);
186 fl_line(ox+xx,oy+0,ox+xx,oy+ly);
190 fl_font(FL_HELVETICA|FL_BOLD,10);
194 for(
int i=1;
i<npoints; ++
i)
203 snprintf((
char *)&tmpstr,20,
"%.1fms",
time);
205 snprintf((
char *)&tmpstr,20,
"%.2fs",
time/1000.0);
206 fl_draw(tmpstr,ox+
lx-20,oy+ly-10,20,10,FL_ALIGN_RIGHT,
NULL,0);
211 fl_draw(tmpstr,ox+
lx-20,oy+ly-23,20,10,FL_ALIGN_RIGHT,
NULL,0);
218 const int x_=Fl::event_x()-
x();
219 const int y_=Fl::event_y()-
y();
220 static Fl_Widget *old_focus;
221 int key, old_mod_state;
225 old_focus=Fl::focus();
231 Fl::focus(old_focus);
235 key = Fl::event_key();
236 if (
key==FL_Alt_L ||
key==FL_Alt_R) {
241 if (
key==FL_Control_L ||
key==FL_Control_R){
265 if (Fl::event_buttons())
268 int delta = Fl::event_dy() * (Fl::event_shift() ? 4 : 1);
271 ny = ny < 0 ? 0 : ny > 127 ? 127 : ny;
277 newdt = newdt < 0 ? 0 : newdt > 127 ? 127 : newdt;
308 const int dx=(
int)((x_-
cpx)*0.1);
340 osc->renameLink(
loc+
"Penvpoints", new_base+
"Penvpoints",
this);
341 osc->renameLink(
loc+
"Penvdt", new_base+
"Penvdt",
this);
342 osc->renameLink(
loc+
"Penvval", new_base+
"Penvval",
this);
343 osc->renameLink(
loc+
"Penvsustain", new_base+
"Penvsustain",
this);
345 string dt = string(
"Penvdt") +
to_s(
i);
346 string val = string(
"Penvval") +
to_s(
i);
#define MAX_ENVELOPE_POINTS
Definition globals.h:191
static bool ctrldown
Definition EnvelopeFreeEdit.cpp:134
static float dt(char val)
Definition EnvelopeFreeEdit.cpp:124
static int distance_fn(int dx, int dy)
Definition EnvelopeFreeEdit.cpp:103
static bool altdown
Definition EnvelopeFreeEdit.cpp:134
int getpointy(int n) const
Definition EnvelopeFreeEdit.cpp:96
float getdt(int i) const
Definition EnvelopeFreeEdit.cpp:129
void setpair(Fl_Box *pair_)
Definition EnvelopeFreeEdit.cpp:75
int cpx
Definition EnvelopeFreeEdit.h:54
void OSC_raw(const char *msg) override
Definition EnvelopeFreeEdit.cpp:45
char Penvdt[MAX_ENVELOPE_POINTS]
Definition EnvelopeFreeEdit.h:57
Fl_Box * pair
Definition EnvelopeFreeEdit.h:51
char Penvval[MAX_ENVELOPE_POINTS]
Definition EnvelopeFreeEdit.h:58
int getnearest(int x, int y) const
Definition EnvelopeFreeEdit.cpp:107
int cpval
Definition EnvelopeFreeEdit.h:54
void rebase(std::string new_base) override
Definition EnvelopeFreeEdit.cpp:338
int handle(int event) override
Definition EnvelopeFreeEdit.cpp:216
int cpy
Definition EnvelopeFreeEdit.h:54
char Penvsustain
Definition EnvelopeFreeEdit.h:60
int cpdt
Definition EnvelopeFreeEdit.h:54
int lastpoint
Definition EnvelopeFreeEdit.h:41
char Penvpoints
Definition EnvelopeFreeEdit.h:44
EnvelopeFreeEdit(int x, int y, int w, int h, const char *label=0)
Definition EnvelopeFreeEdit.cpp:22
void init(void)
Definition EnvelopeFreeEdit.cpp:31
void draw(void) override
Definition EnvelopeFreeEdit.cpp:136
int getpointx(int n) const
Definition EnvelopeFreeEdit.cpp:80
void update(void) override
Definition EnvelopeFreeEdit.cpp:330
int currentpoint
Definition EnvelopeFreeEdit.h:54
int mod_state
Definition EnvelopeFreeEdit.h:62
UINT_D64 w
Definition inflate.c:942
int y
Definition inflate.c:1588
int lx[BMAX+1]
Definition inflate.c:1578
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
int val
Definition jpeglib.h:956
const char * msg
Definition missing_descriptor.c:20
Definition zynaddsubfx-src.cpp:569
T limit(T val, T min, T max)
Definition Util.h:85
const AbsTime * time
Definition PADnoteParameters.h:189
std::string to_s(T x)
Definition Util.h:67
const char * rtosc_argument_string(const char *msg)
Definition rtosc.c:11
rtosc_arg_t rtosc_argument(const char *msg, unsigned idx)
Definition rtosc.c:732
int32_t i
Definition rtosc.h:47
rtosc_blob_t b
Definition rtosc.h:55
int n
Definition crypt.c:458
memcpy(hh, h, RAND_HEAD_LEN)
ZCONST char * key
Definition crypt.c:587
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
typedef int(UZ_EXP MsgFn)()
dy
Definition zipinfo.c:2288