-GUI resets when "new" session is started

main
Harry van Haaren 2013-10-03 16:11:14 +01:00
parent c1e3296a10
commit 493ccbad2c
2 changed files with 30 additions and 5 deletions

View File

@ -45,7 +45,7 @@ ClipSelector::ClipSelector( int _x, int _y, int _w, int _h,
for(int i = 0; i < 10; i++ )
{
stringstream s;
s << i + 1;
s << "Scene " << i + 1;
clips[i].setName( s.str() );
}

View File

@ -101,10 +101,7 @@ static void gui_header_callback(Fl_Widget *w, void *data)
int yes = fl_choice("Start a new session?","Cancel","Yes",0);
if ( yes )
{
EventStateReset ev;
writeToDspRingbuffer( &ev );
gui->reset();
}
}
else if ( strcmp(m->label(), "Load Session") == 0 )
@ -281,6 +278,34 @@ Gui::Gui() :
}
void Gui::reset()
{
// signal to DSP to reset state
EventStateReset ev;
writeToDspRingbuffer( &ev );
// clear UI state: track names / scene names
for(unsigned int i = 0; i < NTRACKS; i++)
{
stringstream s;
s << "Track " << i+1;
tracks.at(i)->bg.setLabel( s.str().c_str() );
for(unsigned int s = 0; s < NSCENES; s++)
{
tracks.at(i)->getClipSelector()->clipName( s, "" );
}
}
for(unsigned int i = 0; i < NSCENES; i++)
{
stringstream s;
s << "Scene " << i+1;
master->getClipSelector()->clipName( i, s.str() );
}
}
GTrack* Gui::getTrack(int id)
{
return tracks.at(id);