hopefully fix the build, and actually use the options
[ardour.git] / libs / ardour / globals.cc
index 3401d8c48a2d3977fb1289cb0790c5cf60f2800c..90f05ce325f49e47a32c3c616274c0fcbd32c71d 100644 (file)
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+
+#ifdef WAF_BUILD
+#include "libardour-config.h"
+#endif
+
 #include <cstdio> // Needed so that libraptor (included in lrdf) won't complain
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -31,7 +36,7 @@
 #endif
 
 #ifdef HAVE_AUDIOUNITS
-#include <ardour/audio_unit.h>
+#include "ardour/audio_unit.h"
 #endif
 
 #ifdef __SSE__
 
 #include <lrdf.h>
 
-#include <pbd/error.h>
-#include <pbd/id.h>
-#include <pbd/strsplit.h>
-#include <pbd/fpu.h>
-#include <pbd/file_utils.h>
-
-#include <midi++/port.h>
-#include <midi++/manager.h>
-#include <midi++/mmc.h>
-
-#include <ardour/ardour.h>
-#include <ardour/analyser.h>
-#include <ardour/audio_library.h>
-#include <ardour/configuration.h>
-#include <ardour/profile.h>
-#include <ardour/plugin_manager.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/filesystem_paths.h>
-
-#ifdef HAVE_LIBLO
-#include <ardour/osc.h>
-#endif
-
-#include <ardour/mix.h>
-#include <ardour/runtime_functions.h>
+#include "pbd/error.h"
+#include "pbd/id.h"
+#include "pbd/strsplit.h"
+#include "pbd/fpu.h"
+#include "pbd/file_utils.h"
+
+#include "midi++/port.h"
+#include "midi++/manager.h"
+#include "midi++/mmc.h"
+
+#include "ardour/ardour.h"
+#include "ardour/analyser.h"
+#include "ardour/audio_library.h"
+#include "ardour/rc_configuration.h"
+#include "ardour/profile.h"
+#include "ardour/plugin_manager.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/filesystem_paths.h"
+
+#include "ardour/mix.h"
+#include "ardour/runtime_functions.h"
 
 #if defined (__APPLE__)
        #include <Carbon/Carbon.h> // For Gestalt
 
 #include "i18n.h"
 
-ARDOUR::Configuration* ARDOUR::Config = 0;
+ARDOUR::RCConfiguration* ARDOUR::Config = 0;
 ARDOUR::RuntimeProfile* ARDOUR::Profile = 0;
 ARDOUR::AudioLibrary* ARDOUR::Library = 0;
 
-#ifdef HAVE_LIBLO
-ARDOUR::OSC* ARDOUR::osc = 0;
-#endif
-
 using namespace ARDOUR;
 using namespace std;
 using namespace PBD;
 
-MIDI::Port *default_mmc_port = 0;
-MIDI::Port *default_mtc_port = 0;
-MIDI::Port *default_midi_port = 0;
-MIDI::Port *default_midi_clock_port = 0;
+MIDI::Port *ARDOUR::default_mmc_port = 0;
+MIDI::Port *ARDOUR::default_mtc_port = 0;
+MIDI::Port *ARDOUR::default_midi_port = 0;
+MIDI::Port *ARDOUR::default_midi_clock_port = 0;
 
 Change ARDOUR::StartChanged = ARDOUR::new_change ();
 Change ARDOUR::LengthChanged = ARDOUR::new_change ();
@@ -111,30 +108,11 @@ mix_buffers_no_gain_t   ARDOUR::mix_buffers_no_gain = 0;
 
 sigc::signal<void,std::string> ARDOUR::BootMessage;
 
-#ifdef HAVE_LIBLO
-static int
-setup_osc ()
-{
-       /* no real cost to creating this object, and it avoids
-          conditionals anywhere that uses it
-       */
-
-       osc = new OSC (Config->get_osc_port());
-
-       if (Config->get_use_osc ()) {
-               BootMessage (_("Starting OSC"));
-               return osc->start ();
-       } else {
-               return 0;
-       }
-}
-#endif
-
 int
-setup_midi ()
+ARDOUR::setup_midi ()
 {
        if (Config->midi_ports.size() == 0) {
-               warning << _("no MIDI ports specified: no MMC or MTC control possible") << endmsg;
+               //warning << _("no MIDI ports specified: no MMC or MTC control possible") << endmsg;
                return 0;
        }
 
@@ -204,16 +182,17 @@ setup_midi ()
                        << endmsg;
                return 0;
        }
 
        if (default_mtc_port == 0) {
                warning << string_compose (_("No MTC support (MIDI port \"%1\" not available)"), Config->get_mtc_port_name())
                        << endmsg;
-       }
+       } 
 
        if (default_midi_port == 0) {
                warning << string_compose (_("No MIDI parameter support (MIDI port \"%1\" not available)"), Config->get_midi_port_name())
                        << endmsg;
-       }
+       } 
 
        if (default_midi_clock_port == 0) {
                warning << string_compose (_("No MIDI Clock support (MIDI port \"%1\" not available)"), Config->get_midi_clock_port_name())
@@ -329,7 +308,7 @@ ARDOUR::init (bool use_vst, bool try_optimization)
 
        BootMessage (_("Loading configuration"));
 
-       Config = new Configuration;
+       Config = new RCConfiguration;
 
        if (Config->load_state ()) {
                return -1;
@@ -339,14 +318,9 @@ ARDOUR::init (bool use_vst, bool try_optimization)
 
        Profile = new RuntimeProfile;
 
-#ifdef HAVE_LIBLO
-       if (setup_osc ()) {
-               return -1;
-       }
-#endif
 
 #ifdef VST_SUPPORT
-       if (Config->get_use_vst() && fst_init ()) {
+       if (Config->get_use_vst() && fst_init (0)) {
                return -1;
        }
 #endif
@@ -394,6 +368,9 @@ ARDOUR::cleanup ()
        delete Library;
        lrdf_cleanup ();
        delete &ControlProtocolManager::instance();
+#ifdef VST_SUPPORT
+       fst_exit ();
+#endif
        return 0;
 }
 
@@ -458,6 +435,12 @@ ARDOUR::find_bindings_files (map<string,string>& files)
        }
 }
 
+bool
+ARDOUR::no_auto_connect() 
+{
+       return getenv ("ARDOUR_NO_AUTOCONNECT") != 0;
+}
+
 ARDOUR::LocaleGuard::LocaleGuard (const char* str)
 {
        old = strdup (setlocale (LC_NUMERIC, NULL));
@@ -626,7 +609,7 @@ std::istream& operator>>(std::istream& o, AutoConnectOption& var) { return int_t
 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, SoloModel& var) { return int_to_type<SoloModel> (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); }
@@ -634,4 +617,6 @@ std::istream& operator>>(std::istream& o, ShuttleBehaviour& var) { return int_to
 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); }