#ifdef WINDOWS_VST_SUPPORT
#include <fst.h>
#endif
+#ifdef AUDIOUNIT_SUPPORT
+#include "ardour/audio_unit.h"
+#endif
#include "timecode/time.h"
using namespace std;
ARDOUR_UI *ARDOUR_UI::theArdourUI = 0;
-UIConfiguration *ARDOUR_UI::ui_config = 0;
sigc::signal<void,bool> ARDOUR_UI::Blink;
sigc::signal<void> ARDOUR_UI::RapidScreenUpdate;
ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
: Gtkmm2ext::UI (PROGRAM_NAME, argcp, argvp)
-
+ , ui_config (new UIConfiguration)
, gui_object_state (new GUIObjectState)
, primary_clock (new MainClock (X_("primary"), false, X_("transport"), true, true, true, false, true))
, editor_meter_peak_display()
, speaker_config_window (X_("speaker-config"), _("Speaker Configuration"))
- , theme_manager (X_("theme-manager"), _("Theme Manager"))
, key_editor (X_("key-editor"), _("Key Bindings"))
, rc_option_editor (X_("rc-options-editor"), _("Preferences"))
, add_route_dialog (X_("add-routes"), _("Add Tracks/Busses"))
theArdourUI = this;
}
- ui_config = new UIConfiguration();
-
ui_config->ParameterChanged.connect (sigc::mem_fun (*this, &ARDOUR_UI::parameter_changed));
boost::function<void (string)> pc (boost::bind (&ARDOUR_UI::parameter_changed, this, _1));
ui_config->map_parameters (pc);
const XMLNode* ui_xml = Config->extra_xml (X_("UI"));
if (ui_xml) {
- theme_manager.set_state (*ui_xml);
key_editor.set_state (*ui_xml);
rc_option_editor.set_state (*ui_xml);
session_option_editor.set_state (*ui_xml);
midi_port_matrix.set_state (*ui_xml);
}
- WM::Manager::instance().register_window (&theme_manager);
WM::Manager::instance().register_window (&key_editor);
WM::Manager::instance().register_window (&rc_option_editor);
WM::Manager::instance().register_window (&session_option_editor);
WM::Manager::instance().register_window (&audio_port_matrix);
WM::Manager::instance().register_window (&midi_port_matrix);
- /* We need to instantiate the theme manager because it loads our
- theme files. This should really change so that its window
- and its functionality are separate
- */
-
- (void) theme_manager.get (true);
+ /* Trigger setting up the color scheme and loading the GTK RC file */
+
+ ARDOUR_UI::config()->load_rc_file (false);
_process_thread = new ProcessThread ();
_process_thread->init ();
{
/* Things to be done once (and once ONLY) after we have a backend running in the AudioEngine
*/
+#ifdef AUDIOUNIT_SUPPORT
+ std::string au_msg;
+ if (AUPluginInfo::au_get_crashlog(au_msg)) {
+ popup_error(_("Audio Unit Plugin Scan Failed. Automatic AU scanning has been disabled. Please see the log window for further details."));
+ error << _("Audio Unit Plugin Scan Failed:") << endmsg;
+ info << au_msg << endmsg;
+ }
+#endif
ARDOUR::init_post_engine ();
ARDOUR_UI::~ARDOUR_UI ()
{
- if (ui_config->dirty()) {
- ui_config->save_state();
- }
+ ui_config->save_state();
stop_video_server();
should also be changed.
*/
- float const c = AudioEngine::instance()->get_dsp_load ();
+ double const c = AudioEngine::instance()->get_dsp_load ();
snprintf (buf, sizeof (buf), _("DSP: <span foreground=\"%s\">%5.1f%%</span>"), c >= 90 ? X_("red") : X_("green"), c);
cpu_load_label.set_markup (buf);
}
void
ARDOUR_UI::update_clocks ()
{
- if (!editor || !editor->dragging_playhead()) {
+ if (editor && !editor->dragging_playhead()) {
Clock (_session->audible_frame(), false, editor->get_preferred_edit_position()); /* EMIT_SIGNAL */
}
}
{
#ifdef __APPLE__
open_uri("http://webchat.freenode.net/?channels=ardour-osx");
+#elif defined PLATFORM_WINDOWS
+ open_uri("http://webchat.freenode.net/?channels=ardour-windows");
#else
open_uri("http://webchat.freenode.net/?channels=ardour");
#endif
PBD::open_uri (Config->get_reference_manual_url());
}
+void
+ARDOUR_UI::launch_tracker ()
+{
+ PBD::open_uri ("http://tracker.ardour.org/bug_report_page.php");
+}
+
+void
+ARDOUR_UI::launch_cheat_sheet ()
+{
+#ifdef __APPLE__
+ PBD::open_uri ("http://manual.ardour.org/files/a3_mnemonic_cheat_sheet_osx.pdf");
+#else
+ PBD::open_uri ("http://manual.ardour.org/files/a3_mnemonic_cheatsheet.pdf");
+#endif
+}
+
+void
+ARDOUR_UI::launch_website ()
+{
+ PBD::open_uri ("http://ardour.org");
+}
+
+void
+ARDOUR_UI::launch_website_dev ()
+{
+ PBD::open_uri ("http://ardour.org/development.html");
+}
+
+void
+ARDOUR_UI::launch_forums ()
+{
+ PBD::open_uri ("https://community.ardour.org/forums");
+}
+
+void
+ARDOUR_UI::launch_howto_report ()
+{
+ PBD::open_uri ("http://ardour.org/reporting_bugs");
+}
+
void
ARDOUR_UI::loading_message (const std::string& msg)
{
void
ARDOUR_UI::halt_on_xrun_message ()
{
- MessageDialog msg (*editor,
- _("Recording was stopped because your system could not keep up."));
+ cerr << "HALT on xrun\n";
+ MessageDialog msg (*editor, _("Recording was stopped because your system could not keep up."));
msg.run ();
}
scan_dlg->get_vbox()->pack_start (*scan_tbox, PACK_SHRINK, 4);
}
+ assert(scan_dlg && scan_tbox && cancel_button);
+
if (type == X_("closeme")) {
scan_dlg->hide();
} else {