summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-12-12 18:59:47 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-12-12 18:59:47 +0000
commit75f3005c67f5c8ea883c0e24e9832b59c5ced13f (patch)
tree7f8ce77feb7f292488e5a104c0486d226604d9d5 /libs
parent8e8b296bb424972d2cddba4ef56fbdb3388fb36d (diff)
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
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/ardour.h1
-rw-r--r--libs/ardour/globals.cc1
-rw-r--r--libs/ardour/session.cc4
3 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h
index c19d4332e8..03de3965ec 100644
--- a/libs/ardour/ardour/ardour.h
+++ b/libs/ardour/ardour/ardour.h
@@ -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 ();
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 085dfc8e59..2b0bc05534 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -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 ();
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index ccf4cb2b86..3b46ad3be1 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -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) {