Time flies
[ardour.git] / gtk2_ardour / main.cc
index 8cc72a6284d3e5ee3d3bed4866f643bd55aa1ca6..10c9c306e71c65fd05d5bd7818fcfe9f1e37174d 100644 (file)
 */
 
 #include <cstdlib>
-#include <signal.h>
 #include <cerrno>
 #include <vector>
 
+#include <signal.h>
+#include <locale.h>
+
 #include <sigc++/bind.h>
 #include <gtkmm/settings.h>
 
@@ -56,7 +58,7 @@
 #include "enums.h"
 #include "bundle_env.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 #ifdef PLATFORM_WINDOWS
 #include <fcntl.h> // Needed for '_fmode'
 #include "gtk2ardour-version.h"
 #endif
 
+#ifdef LXVST_SUPPORT
+#include <gdk/gdkx.h>
+#endif
+
 using namespace std;
 using namespace Gtk;
 using namespace ARDOUR_COMMAND_LINE;
@@ -289,12 +295,19 @@ 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
-       gtk_set_locale ();
+       /* initialize C locale to user preference */
+       if (ARDOUR::translations_are_enabled ()) {
+               setlocale (LC_ALL, "");
+       }
 #endif
 
        console_madness_begin();
@@ -403,8 +416,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;