@@ -14,6 +14,9 @@ decl {\#include "Fl_Scalepack.H"} {public global | |||||
decl {\#include "Fl_Flip_Button.H"} {public global | decl {\#include "Fl_Flip_Button.H"} {public global | ||||
} | } | ||||
decl {\#include "Fl_Arc_Dial.H"} {public global | |||||
} | |||||
widget_class Mixer_Strip {open | widget_class Mixer_Strip {open | ||||
xywh {1051 42 124 816} type Double box UP_FRAME color 32 selection_color 63 resizable | xywh {1051 42 124 816} type Double box UP_FRAME color 32 selection_color 63 resizable | ||||
code0 {size( 120, h() );} visible | code0 {size( 120, h() );} visible | ||||
@@ -24,7 +27,7 @@ widget_class Mixer_Strip {open | |||||
} | } | ||||
Fl_Box {} { | Fl_Box {} { | ||||
label {<Oscilloscope>} | label {<Oscilloscope>} | ||||
xywh {7 33 110 104} box UP_FRAME | |||||
xywh {7 33 110 104} box UP_FRAME hide | |||||
} | } | ||||
Fl_Group {} {open | Fl_Group {} {open | ||||
xywh {7 143 110 25} | xywh {7 143 110 25} | ||||
@@ -83,11 +86,27 @@ widget_class Mixer_Strip {open | |||||
} | } | ||||
} | } | ||||
Fl_Box {} { | Fl_Box {} { | ||||
label Pan selected | |||||
label Pan | |||||
xywh {6 693 110 90} box THIN_UP_BOX labelsize 11 align 1 | xywh {6 693 110 90} box THIN_UP_BOX labelsize 11 align 1 | ||||
class Panner | class Panner | ||||
} | } | ||||
Fl_Progress {} { | Fl_Progress {} { | ||||
xywh {8 789 110 21} labeltype NO_LABEL | xywh {8 789 110 21} labeltype NO_LABEL | ||||
} | } | ||||
Fl_Dial {} { | |||||
xywh {10 36 41 39} box OVAL_FRAME color 52 selection_color 55 | |||||
class Fl_Arc_Dial | |||||
} | |||||
Fl_Dial {} {selected | |||||
xywh {10 80 41 39} box OVAL_FRAME color 52 selection_color 55 | |||||
class Fl_Arc_Dial | |||||
} | |||||
Fl_Dial {} { | |||||
xywh {73 36 41 39} box OVAL_FRAME color 52 selection_color 55 | |||||
class Fl_Arc_Dial | |||||
} | |||||
Fl_Dial {} { | |||||
xywh {73 80 41 39} box OVAL_FRAME color 52 selection_color 55 | |||||
class Fl_Arc_Dial | |||||
} | |||||
} | } |
@@ -105,28 +105,28 @@ Panner::event_point ( void ) | |||||
return NULL; | return NULL; | ||||
} | } | ||||
#if 0 | |||||
/* translate angle /a/ into x/y coords and place the result in /X/ and /Y/ */ | /* translate angle /a/ into x/y coords and place the result in /X/ and /Y/ */ | ||||
void | |||||
Panner::angle_to_axes ( float a, float *X, float *Y ) | |||||
Panner::Point | |||||
Panner::angle_to_axes ( float a ) | |||||
{ | { | ||||
Point p; | |||||
float A; | |||||
// int X, Y; | |||||
a -= 90; | |||||
a = 360 - a; | |||||
A = a * ( M_PI / 180 ); | |||||
double A; | |||||
float r = tw / 2; | |||||
A = a * ( M_PI / 180 ); | |||||
X = r * cos( A ); | |||||
Y = -r * sin( A ); | |||||
// const float r = tw / 2; | |||||
/* fl_push_matrix(); */ | |||||
const double r = 1.0f; | |||||
/* fl_translate( (tx + (tw / 2)) + X, (ty + (th / 2)) + Y ); */ | |||||
p.x = r * cos( A ); | |||||
p.y = -r * sin( A ); | |||||
return p; | |||||
} | } | ||||
#endif | |||||
void | void | ||||
Panner::draw ( void ) | Panner::draw ( void ) | ||||
@@ -161,9 +161,13 @@ Panner::draw ( void ) | |||||
a -= 90; | a -= 90; | ||||
a = 360 - a; | a = 360 - a; | ||||
/* fl_color( FL_WHITE ); */ | |||||
/* /\* fl_color( FL_WHITE ); *\/ */ | |||||
/* fl_line_style( FL_SOLID, 10 ); */ | |||||
/* fl_arc( tx, ty, tw, th, a - 20, a + 20 ); */ | |||||
/* fl_line_style( FL_SOLID, 0 ); */ | |||||
/* fl_arc( tx, ty, tw, th, a - 3, a + 3 ); */ | |||||
Point p = angle_to_axes( a ); | |||||
// printf( "%d: %f, %f\n", i, p.x, p.y ); | |||||
{ | { | ||||
float A; | float A; | ||||
@@ -245,6 +249,8 @@ Panner::handle ( int m ) | |||||
drag->x = (float)(X / (w() / 2)) - 1.0f; | drag->x = (float)(X / (w() / 2)) - 1.0f; | ||||
drag->y = (float)(Y / (h() / 2)) - 1.0f; | drag->y = (float)(Y / (h() / 2)) - 1.0f; | ||||
printf( "%f\n", drag->distance( angle_to_axes( _configs[ _outs ][ 0 ] ) ) ); | |||||
redraw(); | redraw(); | ||||
return 1; | return 1; | ||||
@@ -23,6 +23,8 @@ | |||||
#include <FL/fl_draw.H> | #include <FL/fl_draw.H> | ||||
#include <FL/Fl.H> | #include <FL/Fl.H> | ||||
#include <math.h> | |||||
#include <vector> | #include <vector> | ||||
using namespace std; | using namespace std; | ||||
@@ -36,6 +38,14 @@ class Panner : public Fl_Widget | |||||
Point ( ) : x( 0.0f ), y( 0.0f ) { } | Point ( ) : x( 0.0f ), y( 0.0f ) { } | ||||
Point ( float X, float Y ) : x( X ), y( Y ) { } | Point ( float X, float Y ) : x( X ), y( Y ) { } | ||||
/* return the distance between the point and that referenced by /p/ */ | |||||
float | |||||
distance ( const Point &p ) | |||||
{ | |||||
return sqrt( pow( x - p.x, 2 ) + pow( y - p.y, 2 ) ); | |||||
} | |||||
}; | }; | ||||
@@ -59,6 +69,7 @@ class Panner : public Fl_Widget | |||||
} | } | ||||
Point * event_point ( void ); | Point * event_point ( void ); | ||||
Point angle_to_axes ( float a ); | |||||
public: | public: | ||||