Allow track channel configuration to be adjusted in the GUI.
This commit is contained in:
parent
c4532c70d7
commit
b199cfadd8
|
@ -28,6 +28,7 @@
|
||||||
#include "Port.H"
|
#include "Port.H"
|
||||||
|
|
||||||
#include "../FL/Fl_Sometimes_Input.H"
|
#include "../FL/Fl_Sometimes_Input.H"
|
||||||
|
#include <FL/fl_ask.H>
|
||||||
|
|
||||||
void
|
void
|
||||||
Track::cb_input_field ( Fl_Widget *w, void *v )
|
Track::cb_input_field ( Fl_Widget *w, void *v )
|
||||||
|
@ -384,6 +385,61 @@ Track::handle ( int m )
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
case FL_PUSH:
|
||||||
|
{
|
||||||
|
int X = Fl::event_x();
|
||||||
|
int Y = Fl::event_y();
|
||||||
|
|
||||||
|
if ( Fl::event_button3() && X < Track::width() )
|
||||||
|
{
|
||||||
|
int c = output.size();
|
||||||
|
|
||||||
|
/* context menu */
|
||||||
|
Fl_Menu_Item menu[] =
|
||||||
|
{
|
||||||
|
{ "Type", 0, 0, 0, FL_SUBMENU },
|
||||||
|
{ "Mono", 0, 0, 0, FL_MENU_RADIO | ( c == 1 ? FL_MENU_VALUE : 0 ) },
|
||||||
|
{ "Stereo", 0, 0, 0, FL_MENU_RADIO | ( c == 2 ? FL_MENU_VALUE : 0 ) },
|
||||||
|
{ "Quad", 0, 0, 0, FL_MENU_RADIO | ( c == 4 ? FL_MENU_VALUE : 0 ) },
|
||||||
|
{ "...", 0, 0, 0, FL_MENU_RADIO | ( c == 3 || c > 4 ? FL_MENU_VALUE : 0 ) },
|
||||||
|
{ 0 },
|
||||||
|
{ 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
const Fl_Menu_Item *r = menu->popup( X, Y, "Track" );
|
||||||
|
|
||||||
|
if ( r )
|
||||||
|
{
|
||||||
|
if ( r < &menu[ 4 ] )
|
||||||
|
{
|
||||||
|
int c = r - &menu[1];
|
||||||
|
int ca[] = { 1, 2, 4 };
|
||||||
|
|
||||||
|
configure_inputs( ca[ c ] );
|
||||||
|
configure_outputs( ca[ c ] );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( r == &menu[ 4 ] )
|
||||||
|
{
|
||||||
|
const char *s = fl_input( "How many channels?", "3" );
|
||||||
|
|
||||||
|
int c = atoi( s );
|
||||||
|
|
||||||
|
if ( c <= 0 || c > 10 )
|
||||||
|
fl_alert( "Invalid number of channels." );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
configure_inputs( c );
|
||||||
|
configure_outputs( c );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return Fl_Group::handle( m );
|
return Fl_Group::handle( m );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue