From 94ef2692b895c6979e821811a64c8f4614fb0aac Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 10:52:02 -0400 Subject: [PATCH] add export control to libevoral --- gtk2_ardour/wscript | 1 + libs/ardour/wscript | 9 ++++++--- libs/evoral/evoral/Control.hpp | 4 +++- libs/evoral/evoral/ControlList.hpp | 6 ++++-- libs/evoral/evoral/ControlSet.hpp | 4 +++- libs/evoral/evoral/Curve.hpp | 6 ++++-- libs/evoral/evoral/Event.hpp | 11 ++++++----- libs/evoral/evoral/EventList.hpp | 4 +++- libs/evoral/evoral/EventRingBuffer.hpp | 3 ++- libs/evoral/evoral/EventSink.hpp | 4 ++-- libs/evoral/evoral/MIDIEvent.hpp | 5 ++++- libs/evoral/evoral/MIDIParameters.hpp | 10 ++++++---- libs/evoral/evoral/Note.hpp | 6 ++++-- libs/evoral/evoral/OldSMF.hpp | 4 +++- libs/evoral/evoral/Parameter.hpp | 4 +++- libs/evoral/evoral/PatchChange.hpp | 5 +++-- libs/evoral/evoral/Range.hpp | 12 +++++++----- libs/evoral/evoral/SMF.hpp | 4 +++- libs/evoral/evoral/SMFReader.hpp | 4 +++- libs/evoral/evoral/Sequence.hpp | 8 +++++--- libs/evoral/evoral/TimeConverter.hpp | 6 ++++-- libs/evoral/evoral/TypeMap.hpp | 3 ++- libs/evoral/evoral/midi_util.h | 4 +++- libs/evoral/evoral/types.hpp | 9 ++++++--- libs/evoral/wscript | 13 ++++++++++--- libs/midi++2/midi++/channel.h | 2 -- 26 files changed, 100 insertions(+), 51 deletions(-) diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 168f0c7358..ddc07fe3e7 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -417,6 +417,7 @@ def build(bld): 'LIBARDOUR_DLL=1', 'LIBARDOUR_CP_DLL=1', 'LIBGTKMM2EXT_DLL=1', + 'LIBEVORAL_DLL=1', ] # continue with setup of obj, which could be a shared library # or an executable. diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 1adc131332..d263785f5d 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -321,11 +321,15 @@ def build(bld): # Library if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=libardour_sources) + # macros for this shared library + obj.defines = [ 'LIBARDOUR_DLL=1', 'LIBARDOUR_DLL_EXPORTS=1' ] + # macros for this other internal shared libraries that we use + obj.defines += [ 'LIBEVORAL_DLL=1', 'LIBMIDIPP_DLL=1', 'LIBPBD_DLL=1' ] else: obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=libardour_sources) obj.cxxflags = [ '-fPIC' ] obj.cflags = [ '-fPIC' ] - + obj.defines = [] obj.export_includes = ['.'] obj.includes = ['.', '../surfaces/control_protocol', '..'] obj.name = 'ardour' @@ -338,14 +342,13 @@ def build(bld): 'libaudiographer','libltc','libtimecode'] obj.vnum = LIBARDOUR_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.defines = [ + obj.defines += [ 'PACKAGE="' + I18N_PACKAGE + '"', 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', 'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"', 'PROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"', 'EVORAL_MIDI_XML=1', - 'LIBARDOUR_DLL_EXPORTS=1' ] #obj.source += ' st_stretch.cc st_pitch.cc ' diff --git a/libs/evoral/evoral/Control.hpp b/libs/evoral/evoral/Control.hpp index 369c4df630..2b7fd0aa65 100644 --- a/libs/evoral/evoral/Control.hpp +++ b/libs/evoral/evoral/Control.hpp @@ -23,6 +23,8 @@ #include #include #include "pbd/signals.h" + +#include "evoral/visibility.h" #include "evoral/types.hpp" #include "evoral/Parameter.hpp" @@ -38,7 +40,7 @@ class Transport; * a list of values for automation. */ -class Control +class LIBEVORAL_API Control { public: Control(const Parameter& parameter, boost::shared_ptr); diff --git a/libs/evoral/evoral/ControlList.hpp b/libs/evoral/evoral/ControlList.hpp index 967e08d619..de6eb6e3d9 100644 --- a/libs/evoral/evoral/ControlList.hpp +++ b/libs/evoral/evoral/ControlList.hpp @@ -25,6 +25,8 @@ #include #include #include "pbd/signals.h" + +#include "evoral/visibility.h" #include "evoral/types.hpp" #include "evoral/Range.hpp" #include "evoral/Parameter.hpp" @@ -35,7 +37,7 @@ class Curve; /** A single event (time-stamped value) for a control */ -class ControlEvent { +class LIBEVORAL_API ControlEvent { public: ControlEvent (double w, double v) : when (w), value (v), coeff (0) @@ -67,7 +69,7 @@ public: /** A list (sequence) of time-stamped values for a control */ -class ControlList +class LIBEVORAL_API ControlList { public: typedef std::list EventList; diff --git a/libs/evoral/evoral/ControlSet.hpp b/libs/evoral/evoral/ControlSet.hpp index 716d199fec..57a77afe71 100644 --- a/libs/evoral/evoral/ControlSet.hpp +++ b/libs/evoral/evoral/ControlSet.hpp @@ -25,6 +25,8 @@ #include #include #include "pbd/signals.h" + +#include "evoral/visibility.h" #include "evoral/types.hpp" #include "evoral/Parameter.hpp" #include "evoral/ControlList.hpp" @@ -34,7 +36,7 @@ namespace Evoral { class Control; class ControlEvent; -class ControlSet : public boost::noncopyable { +class LIBEVORAL_API ControlSet : public boost::noncopyable { public: ControlSet(); ControlSet (const ControlSet&); diff --git a/libs/evoral/evoral/Curve.hpp b/libs/evoral/evoral/Curve.hpp index 5719abf2d4..6aeeb039d7 100644 --- a/libs/evoral/evoral/Curve.hpp +++ b/libs/evoral/evoral/Curve.hpp @@ -22,11 +22,13 @@ #include #include +#include "evoral/visibility.h" + namespace Evoral { class ControlList; -class Curve : public boost::noncopyable +class LIBEVORAL_API Curve : public boost::noncopyable { public: Curve (const ControlList& cl); @@ -51,7 +53,7 @@ private: } // namespace Evoral extern "C" { - void curve_get_vector_from_c (void *arg, double, double, float*, int32_t); + LIBEVORAL_API void curve_get_vector_from_c (void *arg, double, double, float*, int32_t); } #endif // EVORAL_CURVE_HPP diff --git a/libs/evoral/evoral/Event.hpp b/libs/evoral/evoral/Event.hpp index 747b795480..facaa64e68 100644 --- a/libs/evoral/evoral/Event.hpp +++ b/libs/evoral/evoral/Event.hpp @@ -25,6 +25,7 @@ #include #include +#include "evoral/visibility.h" #include "evoral/types.hpp" /** If this is not defined, all methods of MidiEvent are RT safe @@ -35,16 +36,16 @@ namespace Evoral { -event_id_t event_id_counter(); -event_id_t next_event_id(); -void init_event_id_counter(event_id_t n); +LIBEVORAL_API event_id_t event_id_counter(); +LIBEVORAL_API event_id_t next_event_id(); +LIBEVORAL_API void init_event_id_counter(event_id_t n); /** An event (much like a type generic jack_midi_event_t) * * Template parameter Time is the type of the time stamp used for this event. */ template -class Event { +class LIBEVORAL_API Event { public: #ifdef EVORAL_EVENT_ALLOC Event (EventType type=0, Time time=0, uint32_t size=0, uint8_t* buf=NULL, bool alloc=false); @@ -157,7 +158,7 @@ protected: template -std::ostream& operator<<(std::ostream& o, const Evoral::Event