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 ();
|
_process_thread->init ();
|
||||||
|
|
||||||
DPIReset.connect (sigc::mem_fun (*this, &ARDOUR_UI::resize_text_widgets));
|
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
|
int
|
||||||
|
|
@ -3148,16 +3150,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
return;
|
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();
|
string template_path = add_route_dialog->track_template();
|
||||||
|
|
||||||
if (!template_path.empty()) {
|
if (!template_path.empty()) {
|
||||||
|
|
@ -3170,7 +3162,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
string name_template = add_route_dialog->name_template ();
|
string name_template = add_route_dialog->name_template ();
|
||||||
PluginInfoPtr instrument = add_route_dialog->requested_instrument ();
|
PluginInfoPtr instrument = add_route_dialog->requested_instrument ();
|
||||||
RouteGroup* route_group = add_route_dialog->route_group ();
|
RouteGroup* route_group = add_route_dialog->route_group ();
|
||||||
|
|
||||||
AutoConnectOption oac = Config->get_output_auto_connect();
|
AutoConnectOption oac = Config->get_output_auto_connect();
|
||||||
|
|
||||||
if (oac & AutoConnectMaster) {
|
if (oac & AutoConnectMaster) {
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ namespace ARDOUR {
|
||||||
class AudioEngine;
|
class AudioEngine;
|
||||||
|
|
||||||
extern PBD::Signal1<void,std::string> BootMessage;
|
extern PBD::Signal1<void,std::string> BootMessage;
|
||||||
|
extern PBD::Signal0<void> GUIIdle;
|
||||||
|
|
||||||
int init (bool with_vst, bool try_optimization);
|
int init (bool with_vst, bool try_optimization);
|
||||||
void init_post_engine ();
|
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;
|
mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0;
|
||||||
|
|
||||||
PBD::Signal1<void,std::string> ARDOUR::BootMessage;
|
PBD::Signal1<void,std::string> ARDOUR::BootMessage;
|
||||||
|
PBD::Signal0<void> ARDOUR::GUIIdle;
|
||||||
|
|
||||||
namespace ARDOUR {
|
namespace ARDOUR {
|
||||||
extern void setup_enum_writer ();
|
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 ();
|
bus->add_internal_return ();
|
||||||
|
|
||||||
ret.push_back (bus);
|
ret.push_back (bus);
|
||||||
|
|
||||||
|
ARDOUR::GUIIdle ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2242,6 +2244,8 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
|
||||||
order++;
|
order++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ARDOUR::GUIIdle ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_monitor_out && IO::connecting_legal) {
|
if (_monitor_out && IO::connecting_legal) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue