Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge...
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 10 Jan 2014 21:07:57 +0000 (16:07 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 10 Jan 2014 21:07:57 +0000 (16:07 -0500)
98 files changed:
1  2 
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_dialogs.cc
gtk2_ardour/audio_clock.cc
gtk2_ardour/audio_region_view.cc
gtk2_ardour/audio_region_view.h
gtk2_ardour/automation_line.cc
gtk2_ardour/automation_time_axis.cc
gtk2_ardour/editor_canvas.cc
gtk2_ardour/editor_drag.cc
gtk2_ardour/editor_markers.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/editor_rulers.cc
gtk2_ardour/editor_timefx.cc
gtk2_ardour/editor_videotimeline.cc
gtk2_ardour/export_dialog.cc
gtk2_ardour/generic_pluginui.cc
gtk2_ardour/gtk_pianokeyboard.c
gtk2_ardour/main.cc
gtk2_ardour/meter_patterns.cc
gtk2_ardour/midi_region_view.cc
gtk2_ardour/mixer_strip.cc
gtk2_ardour/panner_ui.cc
gtk2_ardour/plugin_selector.cc
gtk2_ardour/port_matrix.cc
gtk2_ardour/processor_box.cc
gtk2_ardour/rc_option_editor.cc
gtk2_ardour/return_ui.cc
gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_ui.cc
gtk2_ardour/send_ui.cc
gtk2_ardour/sfdb_ui.cc
gtk2_ardour/wscript
libs/ardour/ardour/filesystem_paths.h
libs/ardour/ardour/panner.h
libs/ardour/ardour/panner_manager.h
libs/ardour/ardour/session.h
libs/ardour/audioengine.cc
libs/ardour/control_protocol_manager.cc
libs/ardour/export_handler.cc
libs/ardour/globals.cc
libs/ardour/lv2_plugin.cc
libs/ardour/meter.cc
libs/ardour/midi_clock_slave.cc
libs/ardour/midi_ui.cc
libs/ardour/panner_manager.cc
libs/ardour/panner_search_path.cc
libs/ardour/plugin_manager.cc
libs/ardour/port_insert.cc
libs/ardour/route.cc
libs/ardour/session.cc
libs/ardour/session_state.cc
libs/ardour/utils.cc
libs/ardour/vst_plugin.cc
libs/ardour/wscript
libs/audiographer/audiographer/broadcast_info.h
libs/backends/jack/jack_utils.cc
libs/backends/jack/wscript
libs/clearlooks-newer/clearlooks_draw_glossy.c
libs/clearlooks-newer/clearlooks_rc_style.c
libs/evoral/src/libsmf/smf.c
libs/evoral/src/libsmf/smf_decode.c
libs/evoral/src/libsmf/smf_load.c
libs/evoral/src/libsmf/smf_save.c
libs/evoral/src/libsmf/smf_tempo.c
libs/midi++2/ipmidi_port.cc
libs/midi++2/midi++/ipmidi_port.h
libs/midi++2/midi++/port.h
libs/midi++2/midnam_patch.cc
libs/midi++2/mmc.cc
libs/panners/1in2out/panner_1in2out.cc
libs/panners/1in2out/wscript
libs/panners/2in2out/panner_2in2out.cc
libs/panners/2in2out/wscript
libs/panners/stereobalance/wscript
libs/panners/vbap/vbap.cc
libs/panners/vbap/wscript
libs/pbd/fpu.cc
libs/pbd/pbd/search_path.h
libs/pbd/pbd/stacktrace.h
libs/pbd/semutils.cc
libs/pbd/stacktrace.cc
libs/pbd/wscript
libs/surfaces/control_protocol/control_protocol/control_protocol.h
libs/surfaces/control_protocol/wscript
libs/surfaces/generic_midi/generic_midi_control_protocol.cc
libs/surfaces/generic_midi/wscript
libs/surfaces/mackie/interface.cc
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/wscript
libs/surfaces/osc/interface.cc
libs/surfaces/osc/osc.cc
libs/surfaces/osc/wscript
libs/surfaces/tranzport/wscript
libs/surfaces/wiimote/interface.cc
libs/surfaces/wiimote/wscript
libs/taglib/wscript
wscript

index 6337b1919fed3ea6b2a5b5fef17fb3a68b85272c,e24370ff992f113cdfd3af65cdc14d7b6db91bf4..a2a5f0a385e12981b0fa790adc959e85a44a5780
@@@ -753,27 -744,16 +757,29 @@@ ARDOUR_UI::starting (
                        // wait for announce reply from nsm server
                        for ( i = 0; i < 5000; ++i) {
                                nsm->check ();
-                               usleep (i);
-                               if (nsm->is_active()) {
++
+                               Glib::usleep (i);
+                               if (nsm->is_active())
                                        break;
 +                              }
 +                      }
 +                      if (i == 5000) {
 +                              error << _("NSM server did not announce itself") << endmsg;
 +                              return -1;
                        }
                        // wait for open command from nsm server
                        for ( i = 0; i < 5000; ++i) {
                                nsm->check ();
-                               usleep (1000);
-                               if (nsm->client_id ()) {
++
+                               Glib::usleep (1000);
+                               if (nsm->client_id ())
                                        break;
 +                              }
 +                      }
 +
 +                      if (i == 5000) {
 +                              error << _("NSM: no client ID provided") << endmsg;
 +                              return -1;
                        }
  
                        if (_session && nsm) {
index 78cc46efb5c9762a072570c42fff11e5165043f4,9944a5353cf824fe7c91c947e6dcc969bb40d36c..1561a0102ce6e4e99016c00d0b3b2bf613747fda
@@@ -70,7 -71,9 +71,8 @@@
  #include "ardour_dialog.h"
  #include "ardour_window.h"
  #include "editing.h"
+ #include "engine_dialog.h"
  #include "meterbridge.h"
 -#include "nsm.h"
  #include "ui_config.h"
  #include "enums.h"
  #include "visibility_group.h"
@@@ -99,13 -107,9 +106,10 @@@ class SessionDialog
  class SessionOptionEditor;
  class ShuttleControl;
  class Splash;
- class SpeakerDialog;
- class ThemeManager;
  class TimeInfoBox;
  class MidiTracer;
 +class NSM_Client;
  class LevelMeterHBox;
- class GlobalPortMatrixWindow;
  class GUIObjectState;
  
  namespace Gtkmm2ext {
Simple merge
Simple merge
index f95576cd3e7bd7970b25e1821d38e574ee6a4337,028a3c3b48f8e684708aed5a4d18446f0f85bd32..d8ec2abb3cbddda694ae89179f8fb1c4d91f04f6
@@@ -561,12 -560,12 +562,12 @@@ AudioRegionView::reset_fade_in_shape_wi
  
        uint32_t npoints = std::min (gdk_screen_width(), (int) pwidth);
        double effective_height;
-       float curve[npoints];
+       std::vector<float> curve(npoints);
  
-       audio_region()->fade_in()->curve().get_vector (0, audio_region()->fade_in()->back()->when, curve, npoints);
+       audio_region()->fade_in()->curve().get_vector (0, audio_region()->fade_in()->back()->when, &curve[0], npoints);
  
        if (_height >= NAME_HIGHLIGHT_THRESH) {
 -              effective_height = _height - NAME_HIGHLIGHT_SIZE - 2;
 +              effective_height = _height - NAME_HIGHLIGHT_SIZE - 1;
        } else {
                effective_height = _height - 2;
        }
@@@ -639,14 -660,14 +640,14 @@@ AudioRegionView::reset_fade_out_shape_w
  
        uint32_t npoints = std::min (gdk_screen_width(), (int) pwidth);
        double effective_height;
-       float curve[npoints];
+       std::vector<float> curve(npoints);
  
-       audio_region()->fade_out()->curve().get_vector (0, audio_region()->fade_out()->back()->when, curve, npoints);
+       audio_region()->fade_out()->curve().get_vector (0, audio_region()->fade_out()->back()->when, &curve[0], npoints);
  
        if (_height >= NAME_HIGHLIGHT_THRESH) {
 -              effective_height = _height - NAME_HIGHLIGHT_SIZE - 2;
 +              effective_height = _height - (NAME_HIGHLIGHT_SIZE + 1); /* skip the top pixel that shows the frame of this regionview */
        } else {
 -              effective_height = _height - 2;
 +              effective_height = _height - 2; /* skip the top and bottom pixel that are the frame of this regionview */
        }
  
        /* points *MUST* be in anti-clockwise order */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 458393708a8476588c07e6db312fbef9fc796d43,2526d7c16a3cc9190c2aea2528ca30d142986b5a..1390aa440fdecf9cd3991cc471de0ed59d1d5bd8
@@@ -103,7 -106,8 +105,7 @@@ Editor::embed_audio_from_video (std::st
        }
  
        import_status.all_done = true;
-       unlink(path.c_str());
 -#endif
+       ::g_unlink(path.c_str());
  }
  
  void
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index a6ead1adb9cf6a5a31fd10380051bdbaa3a0b20d,07ff4f4be321fd6f98bb26b3b9b005df4d6d4cbd..578409c4ae853f8142f99690ceafcbbe4cbf9fa7
@@@ -419,20 -439,8 +420,24 @@@ def build(bld)
          'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
          'PROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'
          ]
 +    obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
 +    obj.uselib       = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL'
 +    obj.uselib       += ' GTKMM CANVAS FFTW3F'
 +    obj.uselib       += ' AUDIOUNITS OSX GTKOSX LO '
 +
 +    if bld.is_defined('USE_EXTERNAL_LIBS'):
 +        obj.uselib += ' TAGLIB'
 +    else:
 +        obj.use += ('libtaglib')
 +    if sys.platform == 'darwin':
 +        obj.uselib += ' AUDIOUNITS OSX GTKOSX'
 +        obj.use    += ' libappleutility'
      obj.includes += ['../libs']
  
++    if bld.env['build_target'] == 'mingw':
++      if bld.env['DEBUG'] == False:
++            obj.linkflags = ['-mwindows']
++
      if bld.is_defined('HAVE_SUIL'):
          obj.source += [ 'lv2_plugin_ui.cc' ]
          obj.use += [ 'SUIL' ]
index b96cd051377a0f27c16c95d075e4ae82fe373f58,b96cd051377a0f27c16c95d075e4ae82fe373f58..0bf25c5153a70d571074eac26a850b1fd40f166f
@@@ -43,14 -43,14 +43,14 @@@ namespace ARDOUR 
         * @return the search path to be used when looking for per-system
         * configuration files. This may include user configuration files.
         */
--      LIBARDOUR_API PBD::SearchPath ardour_config_search_path ();
++      LIBARDOUR_API PBD::Searchpath ardour_config_search_path ();
  
        /**
         * @return the search path to be used when looking for data files
         * that could be shared by systems (h/w and configuration independent
         * files, such as icons, XML files, etc)
         */
--      LIBARDOUR_API PBD::SearchPath ardour_data_search_path ();
++      LIBARDOUR_API PBD::Searchpath ardour_data_search_path ();
  
  } // namespace ARDOUR
  
index 47b102989b7bb2564597416deca2072b556a8df8,7dd9de6e0ab18e5ab4ff854b5c4834e97b745125..48f583c18558466b9e603c4f23f47f0f2092e88d
  #include "ardour/types.h"
  #include "ardour/automation_control.h"
  #include "ardour/automatable.h"
 -#include "ardour/visibility.h"
  
 -#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them)
 -    #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_EXPORT
 -#else
 -    #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_IMPORT
 -#endif 
 -#define ARDOURPANNER_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
++
++/* This section is for actual panners to use. They will include this file,
++ * declare ARDOURPANNER_DLL_EXPORTS during compilation, and ... voila.
++ */
++
++#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building a panner implementation
++    #define ARDOURPANNER_API LIBARDOUR_DLL_EXPORT
++  #else
++    #define ARDOURPANNER_API LIBARDOUR_DLL_IMPORT
++  #endif 
++#define ARDOURPANNER_LOCAL LIBARDOUR_DLL_LOCAL
  namespace ARDOUR {
  
  class Session;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 24fa10e22516846a3453e08b5075f3c850f5106f,8611c7bc86d5b4ba9c183a25014126b45e1e8f58..3c9623f3e6fa674a798c4c731258b3650a303536
@@@ -60,30 -60,29 +61,31 @@@ PannerManager::instance (
        return *_instance;
  }
  
-       return str[0] != '.' && (str.length() > 3 && str.find (".so") == (str.length() - 3));
 +static bool panner_filter (const string& str, void */*arg*/)
 +{
 +#ifdef __APPLE__
 +      return str[0] != '.' && (str.length() > 6 && str.find (".dylib") == (str.length() - 6));
 +#else
++      return str[0] != '.' && (str.length() > 3 && (str.find (".so") == (str.length() - 3) || str.find (".dll") == (str.length() - 4)));
 +#endif
 +}
 +
  void
  PannerManager::discover_panners ()
  {
 -      vector<std::string> panner_modules;
 -
 -      Glib::PatternSpec so_extension_pattern("*.so");
 -      Glib::PatternSpec dylib_extension_pattern("*.dylib");
 -      Glib::PatternSpec dll_extension_pattern("*.dll");
 -
 -      find_matching_files_in_search_path (panner_search_path (),
 -                                          so_extension_pattern, panner_modules);
 +      PathScanner scanner;
 +      std::vector<std::string *> *panner_modules;
 +      std::string search_path = panner_search_path().to_string();
  
 -      find_matching_files_in_search_path (panner_search_path (),
 -                                          dylib_extension_pattern, panner_modules);
 +      DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), search_path));
  
 -      find_matching_files_in_search_path (panner_search_path (),
 -                                          dll_extension_pattern, panner_modules);
 +      panner_modules = scanner (search_path, panner_filter, 0, false, true, 1, true);
  
 -      DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1"), panner_search_path().to_string()));
 -
 -      for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
 -              panner_discover (*i);
 +      for (vector<std::string *>::iterator i = panner_modules->begin(); i != panner_modules->end(); ++i) {
 +              panner_discover (**i);
        }
++
 +      vector_delete (panner_modules);
  }
  
  int
index 49349238e4cfed5e01e8a368ff45adc1184c71b8,100c406edd6d37314c92054596f916ef5c2fe922..2889063ca47f4156500dfd24a07d245427883c93
@@@ -31,13 -31,14 +31,18 @@@ using namespace PBD
  
  namespace ARDOUR {
  
- SearchPath
+ Searchpath
  panner_search_path ()
  {
-       SearchPath spath(user_config_directory ());
+       Searchpath spath(user_config_directory ());
        spath += ardour_dll_directory ();
        spath.add_subdirectory_to_paths(panner_dir_name);
++<<<<<<< HEAD
 +      spath += SearchPath(Glib::getenv(panner_env_variable_name));
++=======
+       spath += Searchpath(Glib::getenv(panner_env_variable_name));
++>>>>>>> windows+cc
        return spath;
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 18c2188f6a6cd24c4c24208fb0523b873d50e8ba,e7345821970146b65160dfc05ce55030b132f78e..21f745e20bf72f8410f36e53f9b80aa5498a81a8
@@@ -244,11 -246,15 +246,14 @@@ def configure(conf)
          'libardour3', conf.env['MAJOR'], conf.env['MINOR'], 0,
          'LIBARDOUR_API', 'ardour/libardour_visibility.h')
      autowaf.configure(conf)
 -    if Options.options.dist_target == 'auto':
 -        if re.search ("linux", sys.platform) != None:
 -            autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA')
 +    autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
 +                      exact_version='0.3.2')
      autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
-     autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF',
-                       atleast_version='0.4.0')
+     if Options.options.dist_target != 'mingw':
+         autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF',
+                           atleast_version='0.4.0')
+         autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
+                           atleast_version='0.3.2')
      autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE',
                        atleast_version='0.1.0')
      autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP',
Simple merge
Simple merge
index 9f8fbd4945273f47b11c5b7092232fbc6be1c0d8,b54abebb4de159d005907d4a347f7b8432d6d525..8d6e0aa898139aa92d9c49b51400405d106669ee
@@@ -306,12 -306,12 +306,12 @@@ clearlooks_gtk2_rc_parse_style (GtkSett
  static guint
  clearlooks_gtk2_rc_parse_dummy (GtkSettings      *settings,
                                  GScanner         *scanner,
 -                                gchar            *name)
 +                                const gchar      *name)
  {
-       (void) settings;
        guint token;
  
+       (void) settings;
        /* Skip option */
        token = g_scanner_get_next_token (scanner);
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index d151a4381410b2a455a1c530be4f88f27d555aee,9515bdb5a449a45bc9d916c9a6d7258921132933..6e55134bb582d2e5d25522421f1d1992ae66df59
  #include <string>
  #include <iostream>
  
 -#include <jack/types.h>
 +#include <jack/types.h> /* XXX ... desirable to get rid of this but needed for
 +                       * now due to use of JackPortIsXXXX
 +                       */
  
+ #include <pthread.h>
  #include "pbd/xml++.h"
+ #ifndef PLATFORM_WINDOWS
  #include "pbd/crossthread.h"
+ #endif
  #include "pbd/signals.h"
  #include "pbd/ringbuffer.h"
  
Simple merge
Simple merge
index 465b2da7a52695e559c30b8b20e2397d56ba8e83,86d1693d91e60e5a06f3c39433d9f059d55f7feb..de6b21af25cfaf40a830b181f2cc37d97732b967
@@@ -22,7 -22,10 +22,8 @@@ def build(bld)
      obj = bld(features = 'cxx cxxshlib')
      obj.source = [ 'panner_1in2out.cc' ]
      obj.export_includes = ['.']
--    obj.defines     = [ 'PACKAGE="libardour_pan1in2out"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
 -    obj.defines      = [ 'ARDOURPANNER_DLL_EXPORTS' ]
++    obj.defines      = [ 'PACKAGE="libardour_pan1in2out"' ]
++    obj.defines     += [ 'ARDOURPANNER_DLL_EXPORTS' ]
      obj.includes     = ['.']
      obj.name         = 'libardour_pan1in2out'
      obj.target       = 'pan1in2out'
index 4d144b1934d8ba937914810aa7e4991cf63c60b9,bd955e79fb0df508049ce9bfabbf29a67ba780f3..63f029f28793ddbae80b672c6716eb8f82589cdd
@@@ -22,7 -22,10 +22,8 @@@ def build(bld)
      obj = bld(features = 'cxx cxxshlib')
      obj.source = [ 'panner_2in2out.cc' ]
      obj.export_includes = ['.']
--    obj.defines     = [ 'PACKAGE="libardour_pan2in2out"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
 -    obj.defines      = [ 'ARDOURPANNER_DLL_EXPORTS' ]
++    obj.defines      = [ 'PACKAGE="libardour_pan2in2out"' ]
++    obj.defines     += [ 'ARDOURPANNER_DLL_EXPORTS' ]
      obj.includes     = ['.']
      obj.name         = 'libardour_pan2in2out'
      obj.target       = 'pan2in2out'
index 75eccca41945c7f147a8839f2626ccf26ef7103a,0000000000000000000000000000000000000000..b66a2ffee60e87faf103df9d8e37b64a51385f34
mode 100644,000000..100644
--- /dev/null
@@@ -1,34 -1,0 +1,35 @@@
-     obj.cxxflags     = '-DPACKAGE="libardour_panbalance"'
 +#!/usr/bin/env python
 +from waflib.extras import autowaf as autowaf
 +import os
 +
 +# Library version (UNIX style major, minor, micro)
 +# major increment <=> incompatible changes
 +# minor increment <=> compatible changes (additions)
 +# micro increment <=> no interface changes
 +LIBARDOUR_PAN2IN2OUT_LIB_VERSION = '1.0.0'
 +
 +# Mandatory variables
 +top = '.'
 +out = 'build'
 +
 +def options(opt):
 +    autowaf.set_options(opt)
 +
 +def configure(conf):
 +    autowaf.configure(conf)
 +
 +def build(bld):
 +    obj = bld(features = 'cxx cxxshlib')
 +    obj.source = [ 'panner_balance.cc' ]
 +    obj.export_includes = ['.']
++    obj.defines      = ['PACKAGE="libardour_panbalance"']
++    obj.defines     += ['ARDOURPANNER_DLL_EXPORTS']
 +    obj.includes     = ['.']
 +    obj.name         = 'libardour_panbalance'
 +    obj.target       = 'panbalance'
 +    obj.use          = 'libardour libardour_cp libpbd'
 +    obj.vnum         = LIBARDOUR_PAN2IN2OUT_LIB_VERSION
 +    obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners')
 +
 +def shutdown():
 +    autowaf.shutdown()
Simple merge
index bc18def5e669f5ba74be802ab269dc8ca8a36835,1f8208317d9c996b6272a7c8ecd0fd36cd2d1079..8fe9dc8e8aa6f547dfc014ac4cbd39356f3f70a0
@@@ -22,7 -22,10 +22,8 @@@ def build(bld)
      obj = bld(features = 'cxx cxxshlib')
      obj.source = [ 'vbap_speakers.cc', 'vbap.cc'  ]
      obj.export_includes = ['.']
--    obj.defines     = [ 'PACKAGE="libardour_panvbap"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL_=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
 -    obj.defines      = [ 'ARDOURPANNER_DLL_EXPORTS' ]
++    obj.defines      = ['PACKAGE="libardour_panvbap"']
++    obj.defines     += ['ARDOURPANNER_DLL_EXPORTS']
      obj.includes     = ['.']
      obj.name         = 'libardour_panvbap'
      obj.target       = 'panvbap'
diff --cc libs/pbd/fpu.cc
Simple merge
index ad0b6c75d55505c55290f2ff733a2c3ee20c5e4c,5203588f723a7a7702cdea5b21f98d7692a37733..909bffb0a4af9ccc5443e741f9a8a37d739412ec
@@@ -17,8 -17,8 +17,8 @@@
  
  */
  
--#ifndef PBD_SEARCH_PATH_INCLUDED
--#define PBD_SEARCH_PATH_INCLUDED
++#ifndef __libpbd_search_path_h__
++#define __libpbd_search_path_h__
  
  #include <string>
  #include <vector>
@@@ -110,4 -112,4 +112,4 @@@ protected
  
  } // namespace PBD
  
--#endif
++#endif /* __libpbd_search_path_h__ */
index fbb92c8fa0c34544ae4a77325ad09ec0f47cddd1,672ee2acad3a79e7d107c5d2e517d1aba89eb799..c5d9743b1e55678ea2f97cbf09f43b4534e9ddfa
  
  
  namespace PBD {
 +
        LIBPBD_API void stacktrace (std::ostream& out, int levels = 0);
        LIBPBD_API void trace_twb();
 -/* JE - !!!! Declaration might possibly get removed (except it's still used in 'libs/canvas/item.cc') */      std::string demangle (const std::string&);
 +      LIBPBD_API std::string demangle (const std::string&);
  
  template<typename T>
- class LIBPBD_API thing_with_backtrace 
+ class /*LIBPBD_API*/ thing_with_backtrace 
  {
    public:
      thing_with_backtrace () {
Simple merge
index 0177b8c9e8e6f36fc1558ba2efef47084018261b,5721c69c54efd16434e3e3ce8d12cf2de0ec8ef3..c74dd946f78d7896246d4dfe36f19df64440bc32
@@@ -105,7 -106,7 +106,7 @@@ PBD::stacktrace (std::ostream& out, in
  #else
  
  std::string 
- PBD::demangle (std::string const & l)
 -/* JE - !!!! 'PBD' namespace might possibly get removed (except it's still used in 'libs/canvas/item.cc') */PBD::demangle (std::string const & l)
++PBD::demangle (std::string const & l) /* JE - !!!! 'PBD' namespace might possibly get removed (except it's still used in 'libs/canvas/item.cc') */
  {
        return std::string();
  }
Simple merge
index 72726600c97f424611aa598dcc88f6193f4e8339,7dbda7d3ebbd235b5dd8aa889282d0ce65ad29e2..f5af008e4a85881c2c55165ccfe7cdd470e99230
@@@ -145,8 -151,7 +145,8 @@@ class LIBCONTROLCP_API ControlProtocol 
        void prev_track (uint32_t initial_id);
  
    private:
-       ControlProtocol (const ControlProtocol&); /* noncopyable */
 -      ARDOURSURFACE_LOCAL ControlProtocol (const ControlProtocol&); /* noncopyable */
++      LIBCONTROLCP_LOCAL ControlProtocol (const ControlProtocol&); /* noncopyable */
 +        bool _active;
  };
  
  extern "C" {
index 235c6c06cba224f518c1af4db9533c26aed518c1,10ec7f6c95cefe737120ee61e348dde24ea68f20..c79a3a2dbc31e520172a1f35b88c73ef7abb417c
@@@ -28,7 -28,9 +28,7 @@@ def build(bld)
      if bld.is_defined ('INTERNAL_SHARED_LIBS'):
          obj              = bld.shlib(features = 'c cxx cshlib cxxshlib', source=controlcp_sources)
          # defines for this library
-         obj.defines      = [ 'LIBCONTROLCP_DLL_EXPORTS=1' ]
 -        obj.defines      = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ]
 -        # internal shared libs that we use
 -        obj.defines     += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1', 'LIBEVORAL_DLL=1' ]
++        obj.defines      = [ 'LIBCONTROLCP_DLL_EXPORTS' ]
          obj.cxxflags     = [ '-fvisibility=hidden' ]
          obj.cflags       = [ '-fvisibility=hidden' ]
      else:
Simple merge
index 294a222a6bee8ecff3836504f5f205358ee612c7,abef84817d4cbf58e48023cd6f5bacc8044b4fd5..35216da26380278f2d14d8276d16e1023bc5a099
@@@ -89,11 -90,4 +90,4 @@@ static ControlProtocolDescriptor mackie
  };
        
  
- extern "C" {
- ControlProtocolDescriptor* 
- protocol_descriptor () {
-       return &mackie_descriptor;
- }
- }
 -extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
++extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
index beba402fa18f82a27a6c574396f82338450218ab,a7177bf0a683ab673b7cd46f0cf7c588c8221e63..2dc546a5d7bded0bdb3566c8417f1750e1bb79a9
@@@ -46,6 -46,9 +46,8 @@@ def build(bld)
      # need ../libs because some GTK2 header files require stuff there
      obj.includes     = ['.', '../libs']
      obj.name         = 'libardour_mcp'
 -    obj.defines      = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
++    obj.defines      = [ 'LIBCONTROLCP_EXPORTS' ]
++    obj.defines     += [ 'PACKAGE="libardour_mcp"' ]
      obj.target       = 'ardour_mcp'
      obj.uselib       = 'GTKMM'
      obj.use          = 'libardour libardour_cp libgtkmm2ext'
index a414d4eb82fb1fc03198d468f440322ccef455ac,f20d89841809017b742cea2d68c8621dd39fa031..7c09828f462e1cd9ab844a7b09802a42c7638fb9
@@@ -57,10 -57,5 +57,5 @@@ static ControlProtocolDescriptor osc_de
        destroy : delete_osc_protocol
  };
  
- extern "C" {
- ControlProtocolDescriptor* 
- protocol_descriptor () {
-       return &osc_descriptor;
- }
- }
 -extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
++extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
  
index 37fe0715eb82ac39c564d2dc43f934d502ab198e,8b57dc0c3e14007f8a30327fd1fcfc29a2ad76f3..e252d22e3d7c38fe92d7a8e29b828718e0bb0efb
  #include <unistd.h>
  #include <fcntl.h>
  
+ #include <glib/gstdio.h>
  #include <glibmm/miscutils.h>
  
 +#include <pbd/convert.h>
  #include <pbd/pthread_utils.h>
  #include <pbd/file_utils.h>
  #include <pbd/failed_constructor.h>
index cd77f99871e2ff9d581ff1c14c38a654f2bc9dda,102b7426bdcd8e36ec9e5623536f775d0469c6ec..a00663e977427e51469999ace17aebae1d2fb0fb
@@@ -28,8 -28,11 +28,9 @@@ def build(bld)
      '''
      obj.export_includes = ['.']
      obj.defines     = [ 'PACKAGE="ardour_osc"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ]
      obj.includes     = ['.', './osc']
      obj.name         = 'libardour_osc'
+     obj.defines      = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
      obj.target       = 'ardour_osc'
      obj.uselib       = ' LO '
      obj.use          = 'libardour libardour_cp libpbd'
index dfc10f5525b682c076eb63b301f63a274c055191,a73cec28322da3882d527cf3812401cb4412a8ab..05fd7cf5d6d2e673e057f2c775c4a5941a0d5860
@@@ -40,8 -40,11 +40,9 @@@ def build(bld)
      '''
      obj.export_includes = ['./tranzport']
      obj.defines     = [ 'PACKAGE="ardour_tranzport"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ]
      obj.includes     = ['.', './tranzport']
      obj.name         = 'libardour_tranzport'
+     obj.defines      = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
      obj.target       = 'ardour_tranzport'
      obj.use          = 'libardour libardour_cp'
      obj.vnum         = LIBARDOUR_TRANZPORT_LIB_VERSION
index 318bc40adf2b967d031d6c07954593e7444e1632,9a704e445e87f46773c59c88ba7e58a18eeb8ff3..8695facb8dd4a584901e74442b9a0f01400850be
@@@ -61,13 -61,5 +61,5 @@@ static ControlProtocolDescriptor wiimot
        destroy : delete_wiimote_protocol
  };
  
- extern "C" {
- ControlProtocolDescriptor*
- protocol_descriptor () {
-       return &wiimote_descriptor;
- }
- }
 -extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
++extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
  
index f3c36275c83ed140f05c63cb54400c3eb1cdb3fb,4dca1fcdb03f6dc1e5932827afb8acfe14b4c5dc..e63713c855ba4d19f1201ec52a43de1bb2fbf36a
@@@ -26,8 -26,11 +26,9 @@@ def build(bld)
      '''
      obj.export_includes = ['./wiimote']
      obj.defines     = [ 'PACKAGE="ardour_wiimote"' ]
 -    if bld.is_defined ('INTERNAL_SHARED_LIBS'):
 -        obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ]
      obj.includes     = ['.', '../libs']
      obj.name         = 'libardour_wiimote'
+     obj.defines      = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
      obj.target       = 'ardour_wiimote'
      obj.uselib       = 'GTKMM CWIID'
      obj.use          = 'libardour libardour_cp libgtkmm2ext'
Simple merge
diff --cc wscript
index 63a8203d32d6f83c80be1cdeb62f2380090115a6,22f1d90c6dfc89e7729b118edf949283bd5e7c85..b302fe9d5a71168ab0b5ec3eeb619641a833a19e
+++ b/wscript
@@@ -65,10 -33,8 +65,9 @@@ children = 
          'libs/timecode',
          'libs/ardour',
          'libs/gtkmm2ext',
-         'libs/clearlooks-newer',
          'libs/audiographer',
          'libs/canvas',
 +        'libs/plugins/reasonablesynth.lv2',
          'gtk2_ardour',
          'export',
          'midi_maps',
@@@ -299,11 -249,11 +290,11 @@@ def set_compiler_flags (conf,opt)
          print("However, this is tricky and not recommended for beginners.")
          sys.exit (-1)
  
-     if opt.lxvst:
+     if conf.env['LXVST_SUPPORT'] == True:
          if conf.env['build_target'] == 'x86_64':
 -            conf.env.append_value('CXXFLAGS', "-DLXVST_64BIT")
 +            compiler_flags.append("-DLXVST_64BIT")
          else:
 -            conf.env.append_value('CXXFLAGS', "-DLXVST_32BIT")
 +            compiler_flags.append("-DLXVST_32BIT")
  
      #
      # a single way to test if we're on OS X