as per freedesktop/XDG specs, ardour3 config files etc now live ~/.config/ardour3...
[ardour.git] / libs / ardour / globals.cc
index 73b390b64a89127eeff61d017ec5dc60747ee431..4d75c30a0d09f8cd687ac0c7d38735a239559394 100644 (file)
@@ -28,7 +28,6 @@
 #include <sys/resource.h>
 #include <unistd.h>
 #include <fcntl.h>
-#include <locale.h>
 #include <errno.h>
 
 #ifdef VST_SUPPORT
 #include "pbd/strsplit.h"
 #include "pbd/fpu.h"
 #include "pbd/file_utils.h"
+#include "pbd/enumwriter.h"
 
 #include "midi++/port.h"
 #include "midi++/manager.h"
 #include "midi++/mmc.h"
 
-#include "ardour/ardour.h"
-#include "ardour/debug.h"
 #include "ardour/analyser.h"
+#include "ardour/ardour.h"
 #include "ardour/audio_library.h"
-#include "ardour/rc_configuration.h"
-#include "ardour/profile.h"
-#include "ardour/plugin_manager.h"
+#include "ardour/audioengine.h"
 #include "ardour/audiosource.h"
-#include "ardour/utils.h"
-#include "ardour/session.h"
-#include "ardour/source_factory.h"
 #include "ardour/control_protocol_manager.h"
-#include "ardour/audioengine.h"
+#include "ardour/debug.h"
 #include "ardour/filesystem_paths.h"
-
 #include "ardour/mix.h"
+#include "ardour/plugin_manager.h"
+#include "ardour/profile.h"
+#include "ardour/rc_configuration.h"
 #include "ardour/runtime_functions.h"
+#include "ardour/session.h"
+#include "ardour/source_factory.h"
+#include "ardour/utils.h"
 
 #if defined (__APPLE__)
        #include <Carbon/Carbon.h> // For Gestalt
@@ -309,6 +308,11 @@ lotsa_files_please ()
 int
 ARDOUR::init (bool use_vst, bool try_optimization)
 {
+       if (!Glib::thread_supported())
+               Glib::thread_init();
+
+       PBD::ID::init ();
+
        extern void setup_enum_writer ();
 
        (void) bindtextdomain(PACKAGE, LOCALEDIR);
@@ -397,13 +401,6 @@ ARDOUR::cleanup ()
        return 0;
 }
 
-
-microseconds_t
-ARDOUR::get_microseconds ()
-{
-       return (microseconds_t) jack_get_time ();
-}
-
 ARDOUR::Change
 ARDOUR::new_change ()
 {
@@ -464,20 +461,6 @@ ARDOUR::no_auto_connect()
        return getenv ("ARDOUR_NO_AUTOCONNECT") != 0;
 }
 
-ARDOUR::LocaleGuard::LocaleGuard (const char* str)
-{
-       old = strdup (setlocale (LC_NUMERIC, NULL));
-       if (strcmp (old, str)) {
-               setlocale (LC_NUMERIC, str);
-       }
-}
-
-ARDOUR::LocaleGuard::~LocaleGuard ()
-{
-       setlocale (LC_NUMERIC, old);
-       free ((char*)old);
-}
-
 void
 ARDOUR::setup_fpu ()
 {
@@ -616,30 +599,3 @@ ARDOUR::coverage (nframes_t sa, nframes_t ea,
        return OverlapNone;
 }
 
-/* not sure where to put these */
-
-template<class T>
-std::istream& int_to_type (std::istream& o, T& hf) {
-       int val;
-       o >> val;
-       hf = (T) val;
-       return o;
-}
-
-std::istream& operator>>(std::istream& o, HeaderFormat& var) { return int_to_type<HeaderFormat> (o, var); }
-std::istream& operator>>(std::istream& o, SampleFormat& var) { return int_to_type<SampleFormat> (o, var); }
-std::istream& operator>>(std::istream& o, AutoConnectOption& var) { return int_to_type<AutoConnectOption> (o, var); }
-std::istream& operator>>(std::istream& o, MonitorModel& var) { return int_to_type<MonitorModel> (o, var); }
-std::istream& operator>>(std::istream& o, RemoteModel& var) { return int_to_type<RemoteModel> (o, var); }
-std::istream& operator>>(std::istream& o, EditMode& var) { return int_to_type<EditMode> (o, var); }
-std::istream& operator>>(std::istream& o, ListenPosition& var) { return int_to_type<ListenPosition> (o, var); }
-std::istream& operator>>(std::istream& o, LayerModel& var) { return int_to_type<LayerModel> (o, var); }
-std::istream& operator>>(std::istream& o, CrossfadeModel& var) { return int_to_type<CrossfadeModel> (o, var); }
-std::istream& operator>>(std::istream& o, SlaveSource& var) { return int_to_type<SlaveSource> (o, var); }
-std::istream& operator>>(std::istream& o, ShuttleBehaviour& var) { return int_to_type<ShuttleBehaviour> (o, var); }
-std::istream& operator>>(std::istream& o, ShuttleUnits& var) { return int_to_type<ShuttleUnits> (o, var); }
-std::istream& operator>>(std::istream& o, SmpteFormat& var) { return int_to_type<SmpteFormat> (o, var); }
-std::istream& operator>>(std::istream& o, DenormalModel& var) { return int_to_type<DenormalModel> (o, var); }
-std::istream& operator>>(std::istream& o, WaveformScale& var) { return int_to_type<WaveformScale> (o, var); }
-std::istream& operator>>(std::istream& o, WaveformShape& var) { return int_to_type<WaveformShape> (o, var); }
-