Merge branch 'master' into windows
[ardour.git] / libs / ardour / ardour / ardour.h
index 45b45ecd06f717d1b5264a7adfb19d555384bf20..311611997f3466fa107f9c59353045e4e5a550a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 1999 Paul Davis 
+    Copyright (C) 1999-2009 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #ifndef __ardour_ardour_h__
 #define __ardour_ardour_h__
 
-#include <limits.h>
+#include <map>
 #include <string>
+#include <vector>
+
+#include <limits.h>
 #include <signal.h>
 
-#include <pbd/error.h>
-#include <pbd/lockmonitor.h>
-#include <pbd/failed_constructor.h>
+#include "pbd/signals.h"
 
-#include <ardour/configuration.h>
-#include <ardour/types.h>
+#include "pbd/error.h"
+#include "pbd/failed_constructor.h"
+#include "pbd/locale_guard.h"
+#include "pbd/stateful.h"
 
-using namespace PBD;
+#include "ardour/types.h"
+
+#include <jack/jack.h>
 
 namespace MIDI {
        class MachineControl;
@@ -43,43 +47,39 @@ namespace ARDOUR {
 
        class AudioEngine;
 
-       static const jack_nframes_t max_frames = JACK_MAX_FRAMES;
-
-       int init (AudioEngine&, bool with_vst, bool try_optimization, void (*sighandler)(int,siginfo_t*,void*) = 0);
+       extern PBD::Signal1<void,std::string> BootMessage;
+       extern PBD::Signal0<void> GUIIdle;
+
+       /**
+        * @param with_vst true to enable VST Support
+        * @param try_optimization true to enable hardware optimized routines
+        * for mixing, finding peak values etc.
+        * @param localedir Directory to look for localisation files
+        *
+        * @return true if Ardour library was successfully initialized
+        */
+       bool init (bool with_vst, bool try_optimization, const char* localedir);
+       void init_post_engine ();
        int cleanup ();
+       bool no_auto_connect ();
+       void make_property_quarks ();
 
-       
-       std::string get_user_ardour_path ();
-       std::string get_system_ardour_path ();
+       extern PBD::PropertyChange bounds_change;
 
-       std::string find_config_file (std::string name);
-       std::string find_data_file (std::string name, std::string subdir = "" );
+       extern const char* const ardour_config_info;
 
-       const layer_t max_layer = UCHAR_MAX;
+       void find_bindings_files (std::map<std::string,std::string>&);
 
-       id_t new_id();
+       /* these only impact bundled installations */
+       std::string translation_enable_path ();
+       bool translations_are_enabled ();
+       bool set_translations_enabled (bool);
 
-       Change new_change ();
+       microseconds_t get_microseconds ();
 
-       extern Change StartChanged;
-       extern Change LengthChanged;
-       extern Change PositionChanged;
-       extern Change NameChanged;
-       extern Change BoundsChanged;
-
-       struct LocaleGuard {
-           LocaleGuard (const char*);
-           ~LocaleGuard ();
-           const char* old;
-       };
-
-};
-
-/* how do we make these be within the Ardour namespace? */
-
-extern MIDI::Port* default_mmc_port;
-extern MIDI::Port* default_mtc_port;
-extern MIDI::Port* default_midi_port;
+       void setup_fpu ();
+       std::vector<SyncSource> get_available_sync_options();
+}
 
 #endif /* __ardour_ardour_h__ */