#include "nsm.h"
#include "opts.h"
#include "pingback.h"
+#include "plugin_dspload_window.h"
#include "processor_box.h"
#include "public_editor.h"
#include "rc_option_editor.h"
ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
: Gtkmm2ext::UI (PROGRAM_NAME, X_("gui"), argcp, argvp)
- , session_loaded (false)
, session_load_in_progress (false)
, gui_object_state (new GUIObjectState)
, primary_clock (new MainClock (X_("primary"), X_("transport"), true ))
, export_video_dialog (X_("video-export"), _("Video Export Dialog"))
, lua_script_window (X_("script-manager"), _("Script Manager"))
, idleometer (X_("idle-o-meter"), _("Idle'o'Meter"))
+ , plugin_dsp_load_window (X_("plugin-dsp-load"), _("Plugin DSP Load"))
, transport_masters_window (X_("transport-masters"), _("Transport Masters"))
, session_option_editor (X_("session-options-editor"), _("Properties"), boost::bind (&ARDOUR_UI::create_session_option_editor, this))
, add_video_dialog (X_("add-video"), _("Add Video"), boost::bind (&ARDOUR_UI::create_add_video_dialog, this))
const XMLNode* ui_xml = Config->extra_xml (X_("UI"));
if (ui_xml) {
- std::cerr << "\n\n\nHAVE UI XML, set dialogs\n\n\n";
key_editor.set_state (*ui_xml, 0);
session_option_editor.set_state (*ui_xml, 0);
speaker_config_window.set_state (*ui_xml, 0);
export_video_dialog.set_state (*ui_xml, 0);
lua_script_window.set_state (*ui_xml, 0);
idleometer.set_state (*ui_xml, 0);
+ plugin_dsp_load_window.set_state (*ui_xml, 0);
transport_masters_window.set_state (*ui_xml, 0);
}
WM::Manager::instance().register_window (&audio_port_matrix);
WM::Manager::instance().register_window (&midi_port_matrix);
WM::Manager::instance().register_window (&idleometer);
+ WM::Manager::instance().register_window (&plugin_dsp_load_window);
WM::Manager::instance().register_window (&transport_masters_window);
/* do not retain position for add route dialog */
ENSURE_GUI_THREAD (*this, &ARDOUR_UI::update_sample_rate, ignored)
- if (!AudioEngine::instance()->connected()) {
+ if (!AudioEngine::instance()->running()) {
snprintf (buf, sizeof (buf), "%s", _("Audio: <span foreground=\"red\">none</span>"));
case MBWF:
s << _("MBWF");
break;
+ case FLAC:
+ s << _("FLAC");
+ break;
}
s << " ";
bool
ARDOUR_UI::check_audioengine (Gtk::Window& parent)
{
- if (!AudioEngine::instance()->connected()) {
+ if (!AudioEngine::instance()->running()) {
MessageDialog msg (parent, string_compose (
_("%1 is not connected to any audio backend.\n"
"You cannot open or close sessions in this condition"),
}
}
+void
+ARDOUR_UI::session_add_foldback_bus (uint32_t how_many, string const & name_template)
+{
+ RouteList routes;
+
+ assert (_session);
+
+ try {
+ routes = _session->new_audio_route (2, 2, 0, how_many, name_template, PresentationInfo::FoldbackBus, -1);
+
+ if (routes.size() != how_many) {
+ error << string_compose (P_("could not create %1 new foldback bus", "could not create %1 new foldback busses", how_many), how_many)
+ << endmsg;
+ }
+ }
+
+ catch (...) {
+ display_insufficient_ports_message ();
+ return;
+ }
+
+ for (RouteList::iterator i = routes.begin(); i != routes.end(); ++i) {
+ (*i)->set_strict_io (true);
+ }
+}
+
void
ARDOUR_UI::display_insufficient_ports_message ()
{
return;
}
-#if 0
if (_session->config.get_external_sync()) {
- switch (Config->get_sync_source()) {
+ switch (TransportMasterManager::instance().current()->type()) {
case Engine:
break;
default:
return;
}
}
-#endif
bool rolling = _session->transport_rolling();
}
if (_session->config.get_external_sync()) {
- switch (Config->get_sync_source()) {
+ switch (TransportMasterManager::instance().current()->type()) {
case Engine:
break;
default:
msg.run ();
return;
}
- // no break
+ /* fall through */
case 0:
_session->remove_pending_capture_state ();
break;
msg.run ();
return;
}
- // no break
+ /* fall through */
case 0:
_session->remove_pending_capture_state ();
break;
}
}
- session_loaded = false;
-
loading_message (string_compose (_("Please wait while %1 loads your session"), PROGRAM_NAME));
try {
set_session (new_session);
- session_loaded = true;
-
if (_session) {
_session->set_clean ();
}
Session *new_session;
int x;
- session_loaded = false;
x = unload_session ();
if (x < 0) {
set_session (new_session);
- session_loaded = true;
-
new_session->save_state(new_session->name());
return 0;
return;
}
+ if (!AudioEngine::instance()->running ()) {
+ switch (r) {
+ case AddRouteDialog::Add:
+ case AddRouteDialog::AddAndClose:
+ break;
+ default:
+ return;
+ }
+ add_route_dialog->ArdourDialog::on_response (r);
+ ARDOUR_UI_UTILS::engine_is_running ();
+ return;
+ }
+
int count;
switch (r) {
case AddRouteDialog::VCAMaster:
_session->vca_manager().create_vca (count, name_template);
break;
+ case AddRouteDialog::FoldbackBus:
+ session_add_foldback_bus (count, name_template);
+ break;
}
}