summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-03 08:33:51 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-03 08:33:51 -0400
commita435e6357f0366558c4aa4e70f35993269044444 (patch)
tree28a9b98e811ab0c4bfba0cd54aea53a905d21b58
parent4898b95e933597fccd8e024c7847c7881204d8ac (diff)
use visibility macros to control visibility in control surface DLL/DSO's
-rw-r--r--libs/surfaces/control_protocol/control_protocol/control_protocol.h13
-rw-r--r--libs/surfaces/control_protocol/wscript1
-rw-r--r--libs/surfaces/generic_midi/interface.cc14
-rw-r--r--libs/surfaces/generic_midi/wscript1
-rw-r--r--libs/surfaces/mackie/interface.cc15
-rw-r--r--libs/surfaces/mackie/wscript1
-rw-r--r--libs/surfaces/osc/interface.cc13
-rw-r--r--libs/surfaces/osc/wscript1
-rw-r--r--libs/surfaces/tranzport/interface.cc14
-rw-r--r--libs/surfaces/tranzport/wscript1
-rw-r--r--libs/surfaces/wiimote/interface.cc16
-rw-r--r--libs/surfaces/wiimote/wscript1
12 files changed, 38 insertions, 53 deletions
diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
index 0c849064bb..b20771b726 100644
--- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h
+++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h
@@ -33,13 +33,22 @@
#include "control_protocol/basic_ui.h"
#include "control_protocol/types.h"
+#include "ardour/visibility.h"
+
+#ifdef ARDOURSURFACE_DLL_EXPORTS // defined if we are building the ARDOUR surface DLLs (instead of using them)
+ #define ARDOURSURFACE_API LIBARDOUR_HELPER_DLL_EXPORT
+#else
+ #define ARDOURSURFACE_API LIBARDOUR_HELPER_DLL_IMPORT
+#endif
+#define ARDOURSURFACE_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
+
namespace ARDOUR {
class Route;
class Session;
class Bundle;
-class ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList, public BasicUI
+class ARDOURSURFACE_API ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList, public BasicUI
{
public:
ControlProtocol (Session&, std::string name);
@@ -142,7 +151,7 @@ class ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList,
void prev_track (uint32_t initial_id);
private:
- ControlProtocol (const ControlProtocol&); /* noncopyable */
+ ARDOURSURFACE_LOCAL ControlProtocol (const ControlProtocol&); /* noncopyable */
};
extern "C" {
diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript
index 2ba48d5138..eb0f2cdae9 100644
--- a/libs/surfaces/control_protocol/wscript
+++ b/libs/surfaces/control_protocol/wscript
@@ -28,6 +28,7 @@ def build(bld):
obj.export_includes = ['.', './control_protocol' ]
obj.cxxflags = '-DPACKAGE="ardour_cp" -fPIC'
obj.includes = ['.', './control_protocol']
+ obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.name = 'libardour_cp'
obj.target = 'ardourcp'
obj.use = 'ardour libtimecode'
diff --git a/libs/surfaces/generic_midi/interface.cc b/libs/surfaces/generic_midi/interface.cc
index 94edb0ba80..f90c04b0ab 100644
--- a/libs/surfaces/generic_midi/interface.cc
+++ b/libs/surfaces/generic_midi/interface.cc
@@ -24,7 +24,7 @@
using namespace ARDOUR;
-ControlProtocol*
+ControlProtocol* ARDOURSURFACE_LOCAL
new_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s)
{
GenericMidiControlProtocol* gmcp;
@@ -43,13 +43,13 @@ new_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s
return gmcp;
}
-void
+void ARDOURSURFACE_LOCAL
delete_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp)
{
delete cp;
}
-bool
+bool ARDOURSURFACE_LOCAL
probe_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/)
{
return GenericMidiControlProtocol::probe ();
@@ -67,11 +67,5 @@ static ControlProtocolDescriptor generic_midi_descriptor = {
destroy : delete_generic_midi_protocol
};
-
-extern "C" {
-ControlProtocolDescriptor*
-protocol_descriptor () {
- return &generic_midi_descriptor;
-}
-}
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &generic_midi_descriptor; }
diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript
index 4cdf2602fd..ffd4dd3698 100644
--- a/libs/surfaces/generic_midi/wscript
+++ b/libs/surfaces/generic_midi/wscript
@@ -34,6 +34,7 @@ def build(bld):
obj.includes = ['.', './generic_midi']
obj.name = 'libardour_generic_midi'
obj.target = 'ardour_generic_midi'
+ obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.uselib = 'GTKMM GTK GDK'
obj.use = 'libardour libardour_cp libgtkmm2ext libpbd'
obj.vnum = LIBARDOUR_GENERIC_MIDI_LIB_VERSION
diff --git a/libs/surfaces/mackie/interface.cc b/libs/surfaces/mackie/interface.cc
index 294a222a6b..289f1a946d 100644
--- a/libs/surfaces/mackie/interface.cc
+++ b/libs/surfaces/mackie/interface.cc
@@ -29,7 +29,7 @@ using namespace ARDOUR;
using namespace PBD;
using namespace std;
-ControlProtocol*
+static ControlProtocol*
new_mackie_protocol (ControlProtocolDescriptor*, Session* s)
{
MackieControlProtocol* mcp = 0;
@@ -47,7 +47,7 @@ new_mackie_protocol (ControlProtocolDescriptor*, Session* s)
return mcp;
}
-void
+static void
delete_mackie_protocol (ControlProtocolDescriptor*, ControlProtocol* cp)
{
try
@@ -66,7 +66,7 @@ delete_mackie_protocol (ControlProtocolDescriptor*, ControlProtocol* cp)
So anything that can be changed in the UI should not be used here to
prevent loading of the lib.
*/
-bool
+static bool
probe_mackie_protocol (ControlProtocolDescriptor*)
{
return MackieControlProtocol::probe();
@@ -89,11 +89,4 @@ static ControlProtocolDescriptor mackie_descriptor = {
};
-extern "C" {
-
-ControlProtocolDescriptor*
-protocol_descriptor () {
- return &mackie_descriptor;
-}
-
-}
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript
index fe276c4e82..e097772e7a 100644
--- a/libs/surfaces/mackie/wscript
+++ b/libs/surfaces/mackie/wscript
@@ -46,6 +46,7 @@ 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.target = 'ardour_mcp'
obj.uselib = 'GTKMM'
obj.use = 'libardour libardour_cp libgtkmm2ext'
diff --git a/libs/surfaces/osc/interface.cc b/libs/surfaces/osc/interface.cc
index a414d4eb82..f20d898418 100644
--- a/libs/surfaces/osc/interface.cc
+++ b/libs/surfaces/osc/interface.cc
@@ -23,7 +23,7 @@
using namespace ARDOUR;
-ControlProtocol*
+static ControlProtocol*
new_osc_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s)
{
OSC* osc = new OSC (*s, Config->get_osc_port());
@@ -33,13 +33,13 @@ new_osc_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s)
return osc;
}
-void
+static void
delete_osc_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp)
{
delete cp;
}
-bool
+static bool
probe_osc_protocol (ControlProtocolDescriptor* /*descriptor*/)
{
return true; // we can always do OSC
@@ -57,10 +57,5 @@ static ControlProtocolDescriptor osc_descriptor = {
destroy : delete_osc_protocol
};
-extern "C" {
-ControlProtocolDescriptor*
-protocol_descriptor () {
- return &osc_descriptor;
-}
-}
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript
index c2c12616c1..f3046658ec 100644
--- a/libs/surfaces/osc/wscript
+++ b/libs/surfaces/osc/wscript
@@ -30,6 +30,7 @@ def build(bld):
obj.cxxflags = '-DPACKAGE="ardour_cp"'
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'
diff --git a/libs/surfaces/tranzport/interface.cc b/libs/surfaces/tranzport/interface.cc
index 16ff22687a..3cf7090783 100644
--- a/libs/surfaces/tranzport/interface.cc
+++ b/libs/surfaces/tranzport/interface.cc
@@ -23,7 +23,7 @@
using namespace ARDOUR;
-ControlProtocol*
+static ControlProtocol*
new_tranzport_protocol (ControlProtocolDescriptor* descriptor, Session* s)
{
TranzportControlProtocol* tcp = new TranzportControlProtocol (*s);
@@ -37,13 +37,13 @@ new_tranzport_protocol (ControlProtocolDescriptor* descriptor, Session* s)
}
-void
+static void
delete_tranzport_protocol (ControlProtocolDescriptor* descriptor, ControlProtocol* cp)
{
delete cp;
}
-bool
+static bool
probe_tranzport_protocol (ControlProtocolDescriptor* descriptor)
{
return TranzportControlProtocol::probe();
@@ -62,10 +62,6 @@ static ControlProtocolDescriptor tranzport_descriptor = {
};
-extern "C" {
-ControlProtocolDescriptor*
-protocol_descriptor () {
- return &tranzport_descriptor;
-}
-}
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &tranzport_descriptor; }
+
diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript
index 311a9a2045..3c479e72d8 100644
--- a/libs/surfaces/tranzport/wscript
+++ b/libs/surfaces/tranzport/wscript
@@ -42,6 +42,7 @@ def build(bld):
obj.cxxflags = '-DPACKAGE="ardour_tranzport"'
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
diff --git a/libs/surfaces/wiimote/interface.cc b/libs/surfaces/wiimote/interface.cc
index 318bc40adf..9a704e445e 100644
--- a/libs/surfaces/wiimote/interface.cc
+++ b/libs/surfaces/wiimote/interface.cc
@@ -29,7 +29,7 @@
using namespace ARDOUR;
using namespace PBD;
-ControlProtocol*
+static ControlProtocol*
new_wiimote_protocol (ControlProtocolDescriptor*, Session* s)
{
WiimoteControlProtocol* wmcp = new WiimoteControlProtocol (*s);
@@ -37,13 +37,13 @@ new_wiimote_protocol (ControlProtocolDescriptor*, Session* s)
return wmcp;
}
-void
+static void
delete_wiimote_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp)
{
delete cp;
}
-bool
+static bool
probe_wiimote_protocol (ControlProtocolDescriptor*)
{
return WiimoteControlProtocol::probe ();
@@ -61,13 +61,5 @@ static ControlProtocolDescriptor wiimote_descriptor = {
destroy : delete_wiimote_protocol
};
-
-extern "C" {
-
-ControlProtocolDescriptor*
-protocol_descriptor () {
- return &wiimote_descriptor;
-}
-
-}
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
index 3a4bd109c2..f565927360 100644
--- a/libs/surfaces/wiimote/wscript
+++ b/libs/surfaces/wiimote/wscript
@@ -28,6 +28,7 @@ def build(bld):
obj.cxxflags = '-DPACKAGE="ardour_wiimote"'
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'