NO-OP: indent and remove whitespace
[ardour.git] / gtk2_ardour / main.cc
index a123631a54cc0f2b3219b919e67f2f8767a49e9e..9c9981bcc382087363e888ec44f32ef781681868 100644 (file)
@@ -48,8 +48,9 @@
 #include "ardour/filesystem_paths.h"
 
 #include <gtkmm/main.h>
+#include <gtkmm/stock.h>
+
 #include <gtkmm2ext/application.h>
-#include <gtkmm2ext/popup.h>
 #include <gtkmm2ext/utils.h>
 
 #include "ardour_ui.h"
 #include "gtk2ardour-version.h"
 #endif
 
+#ifdef LXVST_SUPPORT
+#include <gdk/gdkx.h>
+#endif
+
 using namespace std;
 using namespace Gtk;
 using namespace ARDOUR_COMMAND_LINE;
@@ -291,17 +296,18 @@ int main (int argc, char *argv[])
                Glib::thread_init();
        }
 
+#ifdef LXVST_SUPPORT
+       XInitThreads ();
+#endif
+
 #ifdef HAVE_FFTW35F
        fftwf_make_planner_thread_safe ();
 #endif
 
 #ifdef ENABLE_NLS
-       /* initialize C and C++ locales to user preference */
-       setlocale (LC_ALL, "");
-       try {
-               std::locale::global (std::locale (setlocale (LC_ALL, 0)));
-       } catch (...) {
-               std::cerr << "Cannot set C++ locale\n";
+       /* initialize C locale to user preference */
+       if (ARDOUR::translations_are_enabled ()) {
+               setlocale (LC_ALL, "");
        }
 #endif
 
@@ -372,6 +378,11 @@ int main (int argc, char *argv[])
 
        if (!ARDOUR::init (ARDOUR_COMMAND_LINE::use_vst, ARDOUR_COMMAND_LINE::try_hw_optimization, localedir.c_str())) {
                error << string_compose (_("could not initialize %1."), PROGRAM_NAME) << endmsg;
+               Gtk::Main main (argc, argv);
+               Gtk::MessageDialog msg (string_compose (_("Could not initialize %1 (likely due to corrupt config files).\n"
+                                                         "Run %1 from a commandline for more information."), PROGRAM_NAME),
+                                       false, Gtk::MESSAGE_ERROR , Gtk::BUTTONS_OK, true);
+               msg.run ();
                exit (1);
        }
 
@@ -411,8 +422,22 @@ int main (int argc, char *argv[])
        ui = 0;
 
        ARDOUR::cleanup ();
+#ifndef NDEBUG
+       if (getenv ("ARDOUR_RUNNING_UNDER_VALGRIND")) {
+               Glib::usleep(100000);
+               sched_yield();
+       }
+#endif
+
        pthread_cancel_all ();
 
+#ifndef NDEBUG
+       if (getenv ("ARDOUR_RUNNING_UNDER_VALGRIND")) {
+               Glib::usleep(100000);
+               sched_yield();
+       }
+#endif
+
        console_madness_end ();
 
        return 0;