Make it optional (Options/Behavior/...) wether or not stopping the transport disables global record.

This commit is contained in:
Jonathan Moore Liles 2010-01-29 14:12:24 -06:00
parent 60e54068b3
commit b0b5a1f510
3 changed files with 31 additions and 11 deletions

View File

@ -1,5 +1,5 @@
# data file for the Fltk User Interface Designer (fluid) # data file for the Fltk User Interface Designer (fluid)
version 1.0108 version 1.0110
header_name {.H} header_name {.H}
code_name {.C} code_name {.C}
comment {// comment {//
@ -144,9 +144,7 @@ Fl::lock();
} }
Function {TLE()} {open Function {TLE()} {open
} { } {
code { code {Fl::visual( FL_DOUBLE | FL_RGB8 );
Fl::visual( FL_DOUBLE | FL_RGB8 );
make_window(); make_window();
@ -575,6 +573,21 @@ Fl::scheme( Fl::scheme() );}
} }
} }
} }
Submenu {} {
label {&Behavior} open
xywh {0 0 74 25}
} {
Submenu {} {
label {&Transport} open
xywh {0 0 74 25}
} {
MenuItem {} {
label {Stop Disables Record}
callback {transport->stop_disables_record( ((Fl_Menu_*)o)->mvalue()->flags & FL_MENU_VALUE );} selected
xywh {5 5 40 25} type Toggle value 1
}
}
}
} }
Submenu {} { Submenu {} {
label {&Help} open label {&Help} open
@ -800,8 +813,7 @@ if ( engine->zombified() && ! zombie )
solo_blinker->value( Track::soloing() ); solo_blinker->value( Track::soloing() );
rec_blinker->value( transport->rolling && transport->rec_enabled() ); rec_blinker->value( transport->rolling && transport->rec_enabled() );
lash_blinker->value( lash->enabled() ); lash_blinker->value( lash->enabled() );
selected_blinker->value( timeline->nselected() );} {selected selected_blinker->value( timeline->nselected() );} {}
}
} }
Function {update_cb( void *v )} {open private return_type {static void} Function {update_cb( void *v )} {open private return_type {static void}
} { } {

View File

@ -34,6 +34,7 @@ Transport::Transport ( int X, int Y, int W, int H, const char *L )
{ {
recording = false; recording = false;
rolling = false; rolling = false;
_stop_disables_record = true;
const int bw = W / 3; const int bw = W / 3;
@ -96,12 +97,12 @@ Transport::update_record_state ( void )
* should begin or end on the next frame */ * should begin or end on the next frame */
if ( rolling ) if ( rolling )
{ {
if ( w->value() ) if ( ! recording && w->value() )
{ {
timeline->record(); timeline->record();
recording = true; recording = true;
} }
else else if ( recording )
{ {
timeline->stop(); timeline->stop();
recording = false; recording = false;
@ -190,7 +191,9 @@ Transport::stop ( void )
// MESSAGE( "Stopping transport" ); // MESSAGE( "Stopping transport" );
if ( _record_button->value() ) if ( _record_button->value() )
{ {
if ( _stop_disables_record )
_record_button->value( 0 ); _record_button->value( 0 );
update_record_state(); update_record_state();
} }

View File

@ -35,6 +35,8 @@ struct Transport : public jack_position_t, public Fl_Pack
private: private:
bool _stop_disables_record;
static void cb_button ( Fl_Widget *w, void *arg ); static void cb_button ( Fl_Widget *w, void *arg );
void cb_button ( Fl_Widget *w ); void cb_button ( Fl_Widget *w );
@ -55,6 +57,9 @@ public:
bool rec_enabled ( void ) const; bool rec_enabled ( void ) const;
void stop_disables_record ( bool b ) { _stop_disables_record = b; }
bool stop_disables_record ( void ) const { return _stop_disables_record; }
void toggle_record ( void ); void toggle_record ( void );
int handle ( int m ); int handle ( int m );