/*
- 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/failed_constructor.h>
+#include "pbd/signals.h"
+
+#include "pbd/error.h"
+#include "pbd/failed_constructor.h"
+#include "pbd/locale_guard.h"
+#include "pbd/stateful.h"
+
+#include "ardour/libardour_visibility.h"
+#include "ardour/types.h"
+#include "ardour/libardour_visibility.h"
-#include <ardour/configuration.h>
-#include <ardour/types.h>
+#include <jack/jack.h>
namespace MIDI {
class MachineControl;
namespace ARDOUR {
class AudioEngine;
- class OSC;
- extern OSC* osc;
+ LIBARDOUR_API extern PBD::Signal1<void,std::string> BootMessage;
+ LIBARDOUR_API extern PBD::Signal0<void> GUIIdle;
- static const jack_nframes_t max_frames = JACK_MAX_FRAMES;
+ /**
+ * @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
+ */
+ LIBARDOUR_API bool init (bool with_vst, bool try_optimization, const char* localedir);
+ LIBARDOUR_API void init_post_engine ();
+ LIBARDOUR_API void cleanup ();
+ LIBARDOUR_API bool no_auto_connect ();
+ LIBARDOUR_API void make_property_quarks ();
- int init (bool with_vst, bool try_optimization);
- int cleanup ();
+ LIBARDOUR_API extern PBD::PropertyChange bounds_change;
-
- std::string get_user_ardour_path ();
- std::string get_system_data_path ();
- std::string get_system_module_path ();
+ LIBARDOUR_API extern const char* const ardour_config_info;
- std::string find_config_file (std::string name);
- std::string find_data_file (std::string name, std::string subdir = "" );
+ LIBARDOUR_API void find_bindings_files (std::map<std::string,std::string>&);
- const layer_t max_layer = UCHAR_MAX;
+ /* these only impact bundled installations */
+ LIBARDOUR_API std::string translation_enable_path ();
+ LIBARDOUR_API bool translations_are_enabled ();
+ LIBARDOUR_API bool set_translations_enabled (bool);
- microseconds_t get_microseconds ();
-
- Change new_change ();
-
- extern Change StartChanged;
- extern Change LengthChanged;
- extern Change PositionChanged;
- extern Change NameChanged;
- extern Change BoundsChanged;
-
- struct LocaleGuard {
- LocaleGuard (const char*);
- ~LocaleGuard ();
- const char* old;
- };
+ LIBARDOUR_API microseconds_t get_microseconds ();
+ LIBARDOUR_API void setup_fpu ();
+ LIBARDOUR_API std::vector<SyncSource> get_available_sync_options();
}
-/* 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;
-
#endif /* __ardour_ardour_h__ */