mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-14 18:46:34 +01:00
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:
parent
8e8b296bb4
commit
75f3005c67
4 changed files with 8 additions and 11 deletions
|
|
@ -325,6 +325,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
|
|||
_process_thread->init ();
|
||||
|
||||
DPIReset.connect (sigc::mem_fun (*this, &ARDOUR_UI::resize_text_widgets));
|
||||
|
||||
ARDOUR::GUIIdle.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&Gtkmm2ext::UI::flush_pending, this), gui_context());
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -3148,16 +3150,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
|||
return;
|
||||
}
|
||||
|
||||
if (count > 8) {
|
||||
/* 8 is arbitrary - we just need a threshold for where
|
||||
we start caring that this operation might take
|
||||
a long time
|
||||
*/
|
||||
flush_pending();
|
||||
flush_pending();
|
||||
flush_pending();
|
||||
}
|
||||
|
||||
string template_path = add_route_dialog->track_template();
|
||||
|
||||
if (!template_path.empty()) {
|
||||
|
|
@ -3170,7 +3162,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
|||
string name_template = add_route_dialog->name_template ();
|
||||
PluginInfoPtr instrument = add_route_dialog->requested_instrument ();
|
||||
RouteGroup* route_group = add_route_dialog->route_group ();
|
||||
|
||||
AutoConnectOption oac = Config->get_output_auto_connect();
|
||||
|
||||
if (oac & AutoConnectMaster) {
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue