sometimes, you just have to do what a windows programmer would do. add a global signal, ARDOUR::GUIIdle() which can be used in the middle of long-running backend operations to give the GUI a chance to update. use it while adding routes.

git-svn-id: svn://localhost/ardour2/branches/3.0@13650 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-12-12 18:59:47 +00:00
parent 8e8b296bb4
commit 75f3005c67
4 changed files with 8 additions and 11 deletions

View file

@ -48,6 +48,7 @@ namespace ARDOUR {
class AudioEngine;
extern PBD::Signal1<void,std::string> BootMessage;
extern PBD::Signal0<void> GUIIdle;
int init (bool with_vst, bool try_optimization);
void init_post_engine ();

View file

@ -113,6 +113,7 @@ mix_buffers_with_gain_t ARDOUR::mix_buffers_with_gain = 0;
mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0;
PBD::Signal1<void,std::string> ARDOUR::BootMessage;
PBD::Signal0<void> ARDOUR::GUIIdle;
namespace ARDOUR {
extern void setup_enum_writer ();

View file

@ -2012,6 +2012,8 @@ Session::new_audio_route (int input_channels, int output_channels, RouteGroup* r
bus->add_internal_return ();
ret.push_back (bus);
ARDOUR::GUIIdle ();
}
@ -2242,6 +2244,8 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
order++;
}
}
ARDOUR::GUIIdle ();
}
if (_monitor_out && IO::connecting_legal) {