summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorsletz <sletz@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-06-05 10:17:55 +0000
committersletz <sletz@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-06-05 10:17:55 +0000
commita20801bf5800d4e0bf3553674fb9e6d3702d9292 (patch)
tree3003994e6954be293cd894c94c16cfd808964a5e /common
parent3fa859b50cac44d98c3062bcfc421bf2a96001a7 (diff)
downloadjack2-a20801bf5800d4e0bf3553674fb9e6d3702d9292.tar.gz
Better control of exported symbols.
git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2456 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'common')
-rw-r--r--common/JackDriverLoader.cpp6
-rw-r--r--common/JackDriverLoader.h8
-rw-r--r--common/JackDummyDriver.cpp5
-rw-r--r--common/JackEngine.h2
-rw-r--r--common/JackEngineControl.h2
-rw-r--r--common/JackError.cpp4
-rw-r--r--common/JackError.h4
-rw-r--r--common/JackExports.h2
-rw-r--r--common/JackFifo.h3
-rw-r--r--common/JackFrameTimer.h3
-rw-r--r--common/JackGlobals.cpp16
-rw-r--r--common/JackGlobals.h27
-rw-r--r--common/JackGraphManager.h2
-rw-r--r--common/JackLibAPI.cpp7
-rw-r--r--common/JackLockedEngine.h2
-rw-r--r--common/JackNetDriver.cpp5
-rw-r--r--common/JackNetTool.cpp24
-rw-r--r--common/JackNetTool.h29
-rw-r--r--common/JackPort.h3
-rw-r--r--common/JackPosixSemaphore.h3
-rw-r--r--common/JackPosixThread.cpp8
-rw-r--r--common/JackPosixThread.h2
-rw-r--r--common/JackSocketClientChannel.h1
-rw-r--r--common/JackThread.h10
-rw-r--r--common/JackThreadedDriver.h4
-rw-r--r--common/JackTime.h2
-rw-r--r--common/jack/ringbuffer.h29
-rw-r--r--common/ringbuffer.c26
-rw-r--r--common/shm.c6
-rw-r--r--common/shm.h38
30 files changed, 134 insertions, 149 deletions
diff --git a/common/JackDriverLoader.cpp b/common/JackDriverLoader.cpp
index b89d2157..5a33819c 100644
--- a/common/JackDriverLoader.cpp
+++ b/common/JackDriverLoader.cpp
@@ -88,7 +88,7 @@ jack_print_driver_param_usage (jack_driver_desc_t * desc, unsigned long param, F
fprintf (file, "%s\n", desc->params[param].long_desc);
}
-EXPORT int
+int
jack_parse_driver_params (jack_driver_desc_t * desc, int argc, char* argv[], JSList ** param_ptr)
{
struct option * long_options;
@@ -369,7 +369,7 @@ jackctl_parse_driver_params (jackctl_driver *driver_ptr, int argc, char* argv[])
return 0;
}
-EXPORT jack_driver_desc_t *
+jack_driver_desc_t *
jack_find_driver_descriptor (JSList * drivers, const char * name)
{
jack_driver_desc_t * desc = 0;
@@ -486,7 +486,7 @@ jack_drivers_get_descriptor (JSList * drivers, const char * sofile)
#ifdef WIN32
-EXPORT JSList *
+JSList *
jack_drivers_load (JSList * drivers) {
char * driver_dir;
char driver_dir_storage[512];
diff --git a/common/JackDriverLoader.h b/common/JackDriverLoader.h
index 05f5fa8a..57311012 100644
--- a/common/JackDriverLoader.h
+++ b/common/JackDriverLoader.h
@@ -54,13 +54,11 @@ typedef struct _jack_driver_info
}
jack_driver_info_t;
-EXPORT jack_driver_desc_t * jack_find_driver_descriptor (JSList * drivers, const char * name);
+jack_driver_desc_t * jack_find_driver_descriptor (JSList * drivers, const char * name);
jack_driver_desc_t * jack_drivers_get_descriptor (JSList * drivers, const char * sofile);
-
-EXPORT JSList * jack_drivers_load (JSList * drivers);
+JSList * jack_drivers_load (JSList * drivers);
jack_driver_info_t * jack_load_driver (jack_driver_desc_t * driver_desc);
-
-EXPORT int jack_parse_driver_params (jack_driver_desc_t * desc, int argc, char* argv[], JSList ** param_ptr);
+int jack_parse_driver_params (jack_driver_desc_t * desc, int argc, char* argv[], JSList ** param_ptr);
EXPORT int jackctl_parse_driver_params (jackctl_driver *driver_ptr, int argc, char* argv[]);
#endif
diff --git a/common/JackDummyDriver.cpp b/common/JackDummyDriver.cpp
index ee0fe11d..a2e08cbe 100644
--- a/common/JackDummyDriver.cpp
+++ b/common/JackDummyDriver.cpp
@@ -27,6 +27,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "JackGraphManager.h"
#include "JackDriverLoader.h"
#include "JackThreadedDriver.h"
+#include "JackExports.h"
#include <iostream>
#include <unistd.h>
@@ -77,7 +78,7 @@ extern "C"
{
#endif
- jack_driver_desc_t * driver_get_descriptor () {
+ EXPORT jack_driver_desc_t * driver_get_descriptor () {
jack_driver_desc_t * desc;
unsigned int i;
@@ -138,7 +139,7 @@ extern "C"
return desc;
}
- Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) {
+ EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) {
jack_nframes_t sample_rate = 48000;
jack_nframes_t period_size = 1024;
unsigned int capture_ports = 2;
diff --git a/common/JackEngine.h b/common/JackEngine.h
index 47360861..36a45276 100644
--- a/common/JackEngine.h
+++ b/common/JackEngine.h
@@ -38,7 +38,7 @@ class JackExternalClient;
\brief Engine description.
*/
-class JackEngine
+class EXPORT JackEngine
{
private:
diff --git a/common/JackEngineControl.h b/common/JackEngineControl.h
index ced24488..f67b5408 100644
--- a/common/JackEngineControl.h
+++ b/common/JackEngineControl.h
@@ -65,7 +65,7 @@ struct JackTimingMeasure
\brief Engine control in shared memory.
*/
-struct JackEngineControl : public JackShmMem
+struct EXPORT JackEngineControl : public JackShmMem
{
// Shared state
jack_nframes_t fBufferSize;
diff --git a/common/JackError.cpp b/common/JackError.cpp
index a3bf1349..82c29220 100644
--- a/common/JackError.cpp
+++ b/common/JackError.cpp
@@ -132,5 +132,5 @@ static void default_jack_info_callback (const char *desc)
fflush(stdout);
}
-void (*jack_error_callback)(const char *desc) = &default_jack_error_callback;
-void (*jack_info_callback)(const char *desc) = &default_jack_info_callback;
+EXPORT void (*jack_error_callback)(const char *desc) = &default_jack_error_callback;
+EXPORT void (*jack_info_callback)(const char *desc) = &default_jack_info_callback;
diff --git a/common/JackError.h b/common/JackError.h
index 04642947..68dd88dd 100644
--- a/common/JackError.h
+++ b/common/JackError.h
@@ -44,8 +44,8 @@ extern "C"
// like jack_info() but only if verbose mode is enabled
EXPORT void jack_log(const char *fmt, ...);
- extern void (*jack_error_callback)(const char *desc);
- extern void (*jack_info_callback)(const char *desc);
+ EXPORT extern void (*jack_error_callback)(const char *desc);
+ EXPORT extern void (*jack_info_callback)(const char *desc);
typedef void (* jack_log_function_t)(int level, const char *message);
diff --git a/common/JackExports.h b/common/JackExports.h
index 613a2b14..6cb6dc81 100644
--- a/common/JackExports.h
+++ b/common/JackExports.h
@@ -23,7 +23,7 @@ This program is free software; you can redistribute it and/or modify
#ifdef WIN32
#define EXPORT __declspec(dllexport)
#else
-#define EXPORT
+#define EXPORT __attribute__ ((visibility("default")))
#endif
#endif
diff --git a/common/JackFifo.h b/common/JackFifo.h
index da5913ec..315ef71a 100644
--- a/common/JackFifo.h
+++ b/common/JackFifo.h
@@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define __JackFifo__
#include "JackSynchro.h"
+#include "JackExports.h"
#include <assert.h>
#include <stdio.h>
#include <poll.h>
@@ -32,7 +33,7 @@ namespace Jack
\brief Inter process synchronization using Fifo.
*/
-class JackFifo : public detail::JackSynchro
+class EXPORT JackFifo : public detail::JackSynchro
{
private:
diff --git a/common/JackFrameTimer.h b/common/JackFrameTimer.h
index bd5ab80c..78fb9a74 100644
--- a/common/JackFrameTimer.h
+++ b/common/JackFrameTimer.h
@@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define __JackFrameTimer__
#include "JackAtomicState.h"
+#include "JackExports.h"
#include "types.h"
namespace Jack
@@ -31,7 +32,7 @@ namespace Jack
\brief A structure used for time management.
*/
-struct JackTimer
+struct EXPORT JackTimer
{
jack_nframes_t fFrames;
jack_time_t fCurrentWakeup;
diff --git a/common/JackGlobals.cpp b/common/JackGlobals.cpp
index cf45b98b..bf0c7b70 100644
--- a/common/JackGlobals.cpp
+++ b/common/JackGlobals.cpp
@@ -22,7 +22,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#endif
#include "JackGlobals.h"
-#include "JackError.h"
static bool gKeyRealtimeInitialized = false;
static bool g_key_log_function_initialized = false;
@@ -30,7 +29,8 @@ static bool g_key_log_function_initialized = false;
jack_tls_key gRealTime;
jack_tls_key g_key_log_function;
-void jack_init()
+__attribute__ ((constructor))
+static void jack_init()
{
if (!gKeyRealtimeInitialized) {
gKeyRealtimeInitialized = jack_tls_allocate_key(&gRealTime);
@@ -40,7 +40,8 @@ void jack_init()
g_key_log_function_initialized = jack_tls_allocate_key(&g_key_log_function);
}
-void jack_uninit()
+__attribute__ ((destructor))
+static void jack_uninit()
{
if (gKeyRealtimeInitialized) {
jack_tls_free_key(gRealTime);
@@ -57,6 +58,11 @@ void jack_uninit()
#ifdef WIN32
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason) {
@@ -70,4 +76,8 @@ BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserv
return TRUE;
}
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/common/JackGlobals.h b/common/JackGlobals.h
index da8810ae..9e1a16ff 100644
--- a/common/JackGlobals.h
+++ b/common/JackGlobals.h
@@ -20,36 +20,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#ifndef __JackGlobals__
#define __JackGlobals__
-#include "JackError.h"
-#include "JackExports.h"
-
-#include "JackPlatformSynchro.h"
-#include "JackPlatformProcessSync.h"
#include "JackPlatformThread.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
extern jack_tls_key gRealTime;
extern jack_tls_key g_key_log_function;
-#ifdef WIN32
-
-EXPORT void jack_init();
-EXPORT void jack_uninit();
-
-#else
-
-void __attribute__ ((constructor)) jack_init();
-void __attribute__ ((destructor)) jack_uninit();
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
#endif
diff --git a/common/JackGraphManager.h b/common/JackGraphManager.h
index 17c4c203..76441777 100644
--- a/common/JackGraphManager.h
+++ b/common/JackGraphManager.h
@@ -35,7 +35,7 @@ namespace Jack
\brief Graph manager: contains the connection manager and the port array.
*/
-class JackGraphManager : public JackShmMem, public JackAtomicState<JackConnectionManager>
+class EXPORT JackGraphManager : public JackShmMem, public JackAtomicState<JackConnectionManager>
{
private:
diff --git a/common/JackLibAPI.cpp b/common/JackLibAPI.cpp
index 8597c368..b7802186 100644
--- a/common/JackLibAPI.cpp
+++ b/common/JackLibAPI.cpp
@@ -28,16 +28,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "JackLibGlobals.h"
#include "JackGlobals.h"
#include "JackServerLaunch.h"
+#include "JackExports.h"
#include "JackTools.h"
using namespace Jack;
-#ifdef WIN32
-#define EXPORT __declspec(dllexport)
-#else
-#define EXPORT
-#endif
-
#ifdef __cplusplus
extern "C"
{
diff --git a/common/JackLockedEngine.h b/common/JackLockedEngine.h
index af134c7b..52395e36 100644
--- a/common/JackLockedEngine.h
+++ b/common/JackLockedEngine.h
@@ -30,7 +30,7 @@ namespace Jack
\brief Locked Engine.
*/
-class JackLockedEngine : public JackLockAble
+class EXPORT JackLockedEngine : public JackLockAble
{
private:
diff --git a/common/JackNetDriver.cpp b/common/JackNetDriver.cpp
index edeba782..4778db38 100644
--- a/common/JackNetDriver.cpp
+++ b/common/JackNetDriver.cpp
@@ -26,6 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "JackDriverLoader.h"
#include "JackThreadedDriver.h"
#include "JackException.h"
+#include "JackExports.h"
#define DEFAULT_MULTICAST_IP "225.3.19.154"
#define DEFAULT_PORT 19000
@@ -571,7 +572,7 @@ namespace Jack
extern "C"
{
#endif
- jack_driver_desc_t* driver_get_descriptor ()
+ EXPORT jack_driver_desc_t* driver_get_descriptor ()
{
jack_driver_desc_t* desc = ( jack_driver_desc_t* ) calloc ( 1, sizeof ( jack_driver_desc_t ) );
strcpy ( desc->name, "net" );
@@ -637,7 +638,7 @@ namespace Jack
return desc;
}
- Jack::JackDriverClientInterface* driver_initialize ( Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params )
+ EXPORT Jack::JackDriverClientInterface* driver_initialize ( Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params )
{
const char* multicast_ip = DEFAULT_MULTICAST_IP;
char name[JACK_CLIENT_NAME_SIZE];
diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp
index 0d5351d8..4b4628ad 100644
--- a/common/JackNetTool.cpp
+++ b/common/JackNetTool.cpp
@@ -127,7 +127,7 @@ namespace Jack
// SessionParams ************************************************************************************
- void SessionParamsHToN ( session_params_t* params )
+ EXPORT void SessionParamsHToN ( session_params_t* params )
{
params->fPacketID = htonl ( params->fPacketID );
params->fMtu = htonl ( params->fMtu );
@@ -142,7 +142,7 @@ namespace Jack
params->fBitdepth = htonl ( params->fBitdepth );
}
- void SessionParamsNToH ( session_params_t* params )
+ EXPORT void SessionParamsNToH ( session_params_t* params )
{
params->fPacketID = ntohl ( params->fPacketID );
params->fMtu = ntohl ( params->fMtu );
@@ -157,7 +157,7 @@ namespace Jack
params->fBitdepth = ntohl ( params->fBitdepth );
}
- void SessionParamsDisplay ( session_params_t* params )
+ EXPORT void SessionParamsDisplay ( session_params_t* params )
{
jack_info ( "********************Params********************" );
jack_info ( "Protocol revision : %c", params->fProtocolVersion );
@@ -176,7 +176,7 @@ namespace Jack
jack_info ( "**********************************************" );
}
- sync_packet_type_t GetPacketType ( session_params_t* params )
+ EXPORT sync_packet_type_t GetPacketType ( session_params_t* params )
{
switch ( params->fPacketID )
{
@@ -194,7 +194,7 @@ namespace Jack
return INVALID;
}
- int SetPacketType ( session_params_t* params, sync_packet_type_t packet_type )
+ EXPORT int SetPacketType ( session_params_t* params, sync_packet_type_t packet_type )
{
switch ( packet_type )
{
@@ -220,7 +220,7 @@ namespace Jack
// Packet header **********************************************************************************
- void PacketHeaderHToN ( packet_header_t* header )
+ EXPORT void PacketHeaderHToN ( packet_header_t* header )
{
header->fID = htonl ( header->fID );
header->fMidiDataSize = htonl ( header->fMidiDataSize );
@@ -230,7 +230,7 @@ namespace Jack
header->fSubCycle = htonl ( header->fSubCycle );
}
- void PacketHeaderNToH ( packet_header_t* header )
+ EXPORT void PacketHeaderNToH ( packet_header_t* header )
{
header->fID = ntohl ( header->fID );
header->fMidiDataSize = ntohl ( header->fMidiDataSize );
@@ -240,7 +240,7 @@ namespace Jack
header->fSubCycle = ntohl ( header->fSubCycle );
}
- void PacketHeaderDisplay ( packet_header_t* header )
+ EXPORT void PacketHeaderDisplay ( packet_header_t* header )
{
jack_info ( "********************Header********************" );
jack_info ( "Data type : %c", header->fDataType );
@@ -257,7 +257,7 @@ namespace Jack
// Utility *******************************************************************************************************
- size_t SetFramesPerPacket ( session_params_t* params )
+ EXPORT size_t SetFramesPerPacket ( session_params_t* params )
{
if ( !params->fSendAudioChannels && !params->fReturnAudioChannels )
return ( params->fFramesPerPacket = params->fPeriodSize );
@@ -267,7 +267,7 @@ namespace Jack
return params->fFramesPerPacket;
}
- size_t GetNMidiPckt ( session_params_t* params, size_t data_size )
+ EXPORT size_t GetNMidiPckt ( session_params_t* params, size_t data_size )
{
//even if there is no midi data, jack need an empty buffer to know there is no event to read
//99% of the cases : all data in one packet
@@ -280,7 +280,7 @@ namespace Jack
return npckt;
}
- int SetRxTimeout ( int* sockfd, session_params_t* params )
+ EXPORT int SetRxTimeout ( int* sockfd, session_params_t* params )
{
int ret;
struct timeval timeout;
@@ -295,7 +295,7 @@ namespace Jack
// Packet *******************************************************************************************************
- bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles )
+ EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles )
{
//ignore first cycle
if ( previous->fCycle <= 1 )
diff --git a/common/JackNetTool.h b/common/JackNetTool.h
index d9537032..e7537090 100644
--- a/common/JackNetTool.h
+++ b/common/JackNetTool.h
@@ -2,6 +2,7 @@
#include "types.h"
#include "JackConstants.h"
#include "JackMidiPort.h"
+#include "JackExports.h"
#include <string>
#include <algorithm>
@@ -101,7 +102,7 @@ namespace Jack
//midi data ***********************************************************************************
- class NetMidiBuffer
+ class EXPORT NetMidiBuffer
{
private:
int fNPorts;
@@ -130,7 +131,7 @@ namespace Jack
// audio data *********************************************************************************
- class NetAudioBuffer
+ class EXPORT NetAudioBuffer
{
private:
int fNPorts;
@@ -153,24 +154,24 @@ namespace Jack
//utility *************************************************************************************
//n<-->h functions
- void SessionParamsHToN ( session_params_t* params );
- void SessionParamsNToH ( session_params_t* params );
- void PacketHeaderHToN ( packet_header_t* header );
- void PacketHeaderNToH ( packet_header_t* header );
+ EXPORT void SessionParamsHToN ( session_params_t* params );
+ EXPORT void SessionParamsNToH ( session_params_t* params );
+ EXPORT void PacketHeaderHToN ( packet_header_t* header );
+ EXPORT void PacketHeaderNToH ( packet_header_t* header );
//display session parameters
- void SessionParamsDisplay ( session_params_t* params );
+ EXPORT void SessionParamsDisplay ( session_params_t* params );
//display packet header
- void PacketHeaderDisplay ( packet_header_t* header );
+ EXPORT void PacketHeaderDisplay ( packet_header_t* header );
//get the packet type from a sesion parameters
- sync_packet_type_t GetPacketType ( session_params_t* params );
+ EXPORT sync_packet_type_t GetPacketType ( session_params_t* params );
//set the packet type in a session parameters
- int SetPacketType ( session_params_t* params, sync_packet_type_t packet_type );
+ EXPORT int SetPacketType ( session_params_t* params, sync_packet_type_t packet_type );
//step of network initialization
- size_t SetFramesPerPacket ( session_params_t* params );
+ EXPORT size_t SetFramesPerPacket ( session_params_t* params );
//get the midi packet number for a given cycle
- size_t GetNMidiPckt ( session_params_t* params, size_t data_size );
+ EXPORT size_t GetNMidiPckt ( session_params_t* params, size_t data_size );
//set the recv timeout on a socket
- int SetRxTimeout ( int* sockfd, session_params_t* params );
+ EXPORT int SetRxTimeout ( int* sockfd, session_params_t* params );
//check if 'next' packet is really the next after 'previous'
- bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles );
+ EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles );
}
diff --git a/common/JackPort.h b/common/JackPort.h
index 21828d61..ad37be62 100644
--- a/common/JackPort.h
+++ b/common/JackPort.h
@@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "types.h"
#include "JackConstants.h"
+#include "JackExports.h"
namespace Jack
{
@@ -34,7 +35,7 @@ namespace Jack
\brief Base class for port.
*/
-class JackPort
+class EXPORT JackPort
{
friend class JackGraphManager;
diff --git a/common/JackPosixSemaphore.h b/common/JackPosixSemaphore.h
index b3a66599..4110c308 100644
--- a/common/JackPosixSemaphore.h
+++ b/common/JackPosixSemaphore.h
@@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define __JackPosixSemaphore__
#include "JackSynchro.h"
+#include "JackExports.h"
#include <semaphore.h>
#include <time.h>
#include <stdio.h>
@@ -33,7 +34,7 @@ namespace Jack
\brief Inter process synchronization using POSIX semaphore.
*/
-class JackPosixSemaphore : public detail::JackSynchro
+class EXPORT JackPosixSemaphore : public detail::JackSynchro
{
private:
diff --git a/common/JackPosixThread.cpp b/common/JackPosixThread.cpp
index a44f2b14..59584720 100644
--- a/common/JackPosixThread.cpp
+++ b/common/JackPosixThread.cpp
@@ -237,7 +237,7 @@ void JackPosixThread::Terminate()
} // end of namespace
-bool jack_tls_allocate_key(jack_tls_key *key_ptr)
+EXPORT bool jack_tls_allocate_key(jack_tls_key *key_ptr)
{
int ret;
@@ -251,7 +251,7 @@ bool jack_tls_allocate_key(jack_tls_key *key_ptr)
return true;
}
-bool jack_tls_free_key(jack_tls_key key)
+EXPORT bool jack_tls_free_key(jack_tls_key key)
{
int ret;
@@ -265,7 +265,7 @@ bool jack_tls_free_key(jack_tls_key key)
return true;
}
-bool jack_tls_set(jack_tls_key key, void *data_ptr)
+EXPORT bool jack_tls_set(jack_tls_key key, void *data_ptr)
{
int ret;
@@ -279,7 +279,7 @@ bool jack_tls_set(jack_tls_key key, void *data_ptr)
return true;
}
-void *jack_tls_get(jack_tls_key key)
+EXPORT void *jack_tls_get(jack_tls_key key)
{
return pthread_getspecific(key);
}
diff --git a/common/JackPosixThread.h b/common/JackPosixThread.h
index 76fd8799..515f83bd 100644
--- a/common/JackPosixThread.h
+++ b/common/JackPosixThread.h
@@ -35,7 +35,7 @@ namespace Jack
\brief The POSIX thread base class.
*/
-class JackPosixThread : public detail::JackThread
+class EXPORT JackPosixThread : public detail::JackThread
{
protected:
diff --git a/common/JackSocketClientChannel.h b/common/JackSocketClientChannel.h
index feea18c7..90436abc 100644
--- a/common/JackSocketClientChannel.h
+++ b/common/JackSocketClientChannel.h
@@ -24,6 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "JackSocket.h"
#include "JackPlatformThread.h"
#include "JackRequest.h"
+#include "JackError.h"
namespace Jack
{
diff --git a/common/JackThread.h b/common/JackThread.h
index f24d70e5..0fb5bc5d 100644
--- a/common/JackThread.h
+++ b/common/JackThread.h
@@ -21,6 +21,8 @@
#ifndef __JackThread__
#define __JackThread__
+#include "JackExports.h"
+
#ifdef WIN32
#include <windows.h>
typedef HANDLE pthread_t;
@@ -106,10 +108,10 @@ typedef DWORD jack_tls_key;
typedef pthread_key_t jack_tls_key;
#endif
-bool jack_tls_allocate_key(jack_tls_key *key_ptr);
-bool jack_tls_free_key(jack_tls_key key);
+EXPORT bool jack_tls_allocate_key(jack_tls_key *key_ptr);
+EXPORT bool jack_tls_free_key(jack_tls_key key);
-bool jack_tls_set(jack_tls_key key, void *data_ptr);
-void *jack_tls_get(jack_tls_key key);
+EXPORT bool jack_tls_set(jack_tls_key key, void *data_ptr);
+EXPORT void *jack_tls_get(jack_tls_key key);
#endif
diff --git a/common/JackThreadedDriver.h b/common/JackThreadedDriver.h
index 5e1bd7db..d1136c92 100644
--- a/common/JackThreadedDriver.h
+++ b/common/JackThreadedDriver.h
@@ -31,7 +31,7 @@ namespace Jack
\brief The base class for threaded drivers. Threaded drivers are used with blocking devices.
*/
-class JackThreadedDriver : public JackDriverClientInterface, public JackRunnableInterface
+class EXPORT JackThreadedDriver : public JackDriverClientInterface, public JackRunnableInterface
{
protected:
@@ -148,7 +148,7 @@ class JackThreadedDriver : public JackDriverClientInterface, public JackRunnable
};
-class JackRestartThreadedDriver : public JackThreadedDriver
+class EXPORT JackRestartThreadedDriver : public JackThreadedDriver
{
public:
diff --git a/common/JackTime.h b/common/JackTime.h
index e0709183..3ff3a6e8 100644
--- a/common/JackTime.h
+++ b/common/JackTime.h
@@ -35,7 +35,7 @@ extern "C"
#include <mach/mach_time.h>
#include <unistd.h>
- extern double __jack_time_ratio;
+ extern EXPORT double __jack_time_ratio;
static inline jack_time_t GetMicroSeconds(void) {
return (jack_time_t) (mach_absolute_time () * __jack_time_ratio);
diff --git a/common/jack/ringbuffer.h b/common/jack/ringbuffer.h
index b91eeb17..cdb93c88 100644
--- a/common/jack/ringbuffer.h
+++ b/common/jack/ringbuffer.h
@@ -21,6 +21,8 @@
#ifndef _RINGBUFFER_H
#define _RINGBUFFER_H
+#include "JackExports.h"
+
#ifdef __cplusplus
extern "C"
{
@@ -68,7 +70,7 @@ extern "C"
* @return a pointer to a new jack_ringbuffer_t, if successful; NULL
* otherwise.
*/
- jack_ringbuffer_t *jack_ringbuffer_create(size_t sz);
+ EXPORT jack_ringbuffer_t *jack_ringbuffer_create(size_t sz);
/**
* Frees the ringbuffer data structure allocated by an earlier call to
@@ -76,7 +78,7 @@ extern "C"
*
* @param rb a pointer to the ringbuffer structure.
*/
- void jack_ringbuffer_free(jack_ringbuffer_t *rb);
+ EXPORT void jack_ringbuffer_free(jack_ringbuffer_t *rb);
/**
* Fill a data structure with a description of the current readable
@@ -98,7 +100,7 @@ extern "C"
* @param vec a pointer to a 2 element array of jack_ringbuffer_data_t.
*
*/
- void jack_ringbuffer_get_read_vector(const jack_ringbuffer_t *rb,
+ EXPORT void jack_ringbuffer_get_read_vector(const jack_ringbuffer_t *rb,
jack_ringbuffer_data_t *vec);
/**
@@ -120,7 +122,7 @@ extern "C"
* @param rb a pointer to the ringbuffer structure.
* @param vec a pointer to a 2 element array of jack_ringbuffer_data_t.
*/
- void jack_ringbuffer_get_write_vector(const jack_ringbuffer_t *rb,
+ EXPORT void jack_ringbuffer_get_write_vector(const jack_ringbuffer_t *rb,
jack_ringbuffer_data_t *vec);
/**
@@ -133,7 +135,7 @@ extern "C"
*
* @return the number of bytes read, which may range from 0 to cnt.
*/
- size_t jack_ringbuffer_read(jack_ringbuffer_t *rb, char *dest, size_t cnt);
+ EXPORT size_t jack_ringbuffer_read(jack_ringbuffer_t *rb, char *dest, size_t cnt);
/**
* Read data from the ringbuffer. Opposed to jack_ringbuffer_read()
@@ -150,7 +152,7 @@ extern "C"
*
* @return the number of bytes read, which may range from 0 to cnt.
*/
- size_t jack_ringbuffer_peek(jack_ringbuffer_t *rb, char *dest, size_t cnt);
+ EXPORT size_t jack_ringbuffer_peek(jack_ringbuffer_t *rb, char *dest, size_t cnt);
/**
* Advance the read pointer.
@@ -163,7 +165,7 @@ extern "C"
* @param rb a pointer to the ringbuffer structure.
* @param cnt the number of bytes read.
*/
- void jack_ringbuffer_read_advance(jack_ringbuffer_t *rb, size_t cnt);
+ EXPORT void jack_ringbuffer_read_advance(jack_ringbuffer_t *rb, size_t cnt);
/**
* Return the number of bytes available for reading.
@@ -172,7 +174,7 @@ extern "C"
*
* @return the number of bytes available to read.
*/
- size_t jack_ringbuffer_read_space(const jack_ringbuffer_t *rb);
+ EXPORT size_t jack_ringbuffer_read_space(const jack_ringbuffer_t *rb);
/**
* Lock a ringbuffer data block into memory.
@@ -181,7 +183,7 @@ extern "C"
*
* @param rb a pointer to the ringbuffer structure.
*/
- int jack_ringbuffer_mlock(jack_ringbuffer_t *rb);
+ EXPORT int jack_ringbuffer_mlock(jack_ringbuffer_t *rb);
/**
* Reset the read and write pointers, making an empty buffer.
@@ -190,7 +192,7 @@ extern "C"
*
* @param rb a pointer to the ringbuffer structure.
*/
- void jack_ringbuffer_reset(jack_ringbuffer_t *rb);
+ EXPORT void jack_ringbuffer_reset(jack_ringbuffer_t *rb);
/**
* Write data into the ringbuffer.
@@ -201,7 +203,7 @@ extern "C"
*
* @return the number of bytes write, which may range from 0 to cnt
*/
- size_t jack_ringbuffer_write(jack_ringbuffer_t *rb, const char *src,
+ EXPORT size_t jack_ringbuffer_write(jack_ringbuffer_t *rb, const char *src,
size_t cnt);
/**
@@ -215,7 +217,7 @@ extern "C"
* @param rb a pointer to the ringbuffer structure.
* @param cnt the number of bytes written.
*/
- void jack_ringbuffer_write_advance(jack_ringbuffer_t *rb, size_t cnt);
+ EXPORT void jack_ringbuffer_write_advance(jack_ringbuffer_t *rb, size_t cnt);
/**
* Return the number of bytes available for writing.
@@ -224,8 +226,7 @@ extern "C"
*
* @return the amount of free space (in bytes) available for writing.
*/
- size_t jack_ringbuffer_write_space(const jack_ringbuffer_t *rb);
-
+ EXPORT size_t jack_ringbuffer_write_space(const jack_ringbuffer_t *rb);
#ifdef __cplusplus
}
diff --git a/common/ringbuffer.c b/common/ringbuffer.c
index 67680b9c..4caf2042 100644
--- a/common/ringbuffer.c
+++ b/common/ringbuffer.c
@@ -34,7 +34,7 @@
/* Create a new ringbuffer to hold at least `sz' bytes of data. The
actual buffer size is rounded up to the next power of two. */
-jack_ringbuffer_t *
+EXPORT jack_ringbuffer_t *
jack_ringbuffer_create (size_t sz)
{
int power_of_two;
@@ -58,7 +58,7 @@ jack_ringbuffer_create (size_t sz)
/* Free all data associated with the ringbuffer `rb'. */
-void
+EXPORT void
jack_ringbuffer_free (jack_ringbuffer_t * rb)
{
#ifdef USE_MLOCK
@@ -72,7 +72,7 @@ jack_ringbuffer_free (jack_ringbuffer_t * rb)
/* Lock the data block of `rb' using the system call 'mlock'. */
-int
+EXPORT int
jack_ringbuffer_mlock (jack_ringbuffer_t * rb)
{
#ifdef USE_MLOCK
@@ -87,7 +87,7 @@ jack_ringbuffer_mlock (jack_ringbuffer_t * rb)
/* Reset the read and write pointers to zero. This is not thread
safe. */
-void
+EXPORT void
jack_ringbuffer_reset (jack_ringbuffer_t * rb)
{
rb->read_ptr = 0;
@@ -98,7 +98,7 @@ jack_ringbuffer_reset (jack_ringbuffer_t * rb)
number of bytes in front of the read pointer and behind the write
pointer. */
-size_t
+EXPORT size_t
jack_ringbuffer_read_space (const jack_ringbuffer_t * rb)
{
size_t w, r;
@@ -117,7 +117,7 @@ jack_ringbuffer_read_space (const jack_ringbuffer_t * rb)
number of bytes in front of the write pointer and behind the read
pointer. */
-size_t
+EXPORT size_t
jack_ringbuffer_write_space (const jack_ringbuffer_t * rb)
{
size_t w, r;
@@ -137,7 +137,7 @@ jack_ringbuffer_write_space (const jack_ringbuffer_t * rb)
/* The copying data reader. Copy at most `cnt' bytes from `rb' to
`dest'. Returns the actual number of bytes copied. */
-size_t
+EXPORT size_t
jack_ringbuffer_read (jack_ringbuffer_t * rb, char *dest, size_t cnt)
{
size_t free_cnt;
@@ -178,7 +178,7 @@ jack_ringbuffer_read (jack_ringbuffer_t * rb, char *dest, size_t cnt)
`cnt' bytes from `rb' to `dest'. Returns the actual number of bytes
copied. */
-size_t
+EXPORT size_t
jack_ringbuffer_peek (jack_ringbuffer_t * rb, char *dest, size_t cnt)
{
size_t free_cnt;
@@ -221,7 +221,7 @@ jack_ringbuffer_peek (jack_ringbuffer_t * rb, char *dest, size_t cnt)
/* The copying data writer. Copy at most `cnt' bytes to `rb' from
`src'. Returns the actual number of bytes copied. */
-size_t
+EXPORT size_t
jack_ringbuffer_write (jack_ringbuffer_t * rb, const char *src, size_t cnt)
{
size_t free_cnt;
@@ -260,7 +260,7 @@ jack_ringbuffer_write (jack_ringbuffer_t * rb, const char *src, size_t cnt)
/* Advance the read pointer `cnt' places. */
-void
+EXPORT void
jack_ringbuffer_read_advance (jack_ringbuffer_t * rb, size_t cnt)
{
rb->read_ptr += cnt;
@@ -269,7 +269,7 @@ jack_ringbuffer_read_advance (jack_ringbuffer_t * rb, size_t cnt)
/* Advance the write pointer `cnt' places. */
-void
+EXPORT void
jack_ringbuffer_write_advance (jack_ringbuffer_t * rb, size_t cnt)
{
rb->write_ptr += cnt;
@@ -281,7 +281,7 @@ jack_ringbuffer_write_advance (jack_ringbuffer_t * rb, size_t cnt)
the readable data is in one segment the second segment has zero
length. */
-void
+EXPORT void
jack_ringbuffer_get_read_vector (const jack_ringbuffer_t * rb,
jack_ringbuffer_data_t * vec)
{
@@ -325,7 +325,7 @@ jack_ringbuffer_get_read_vector (const jack_ringbuffer_t * rb,
the writeable data is in one segment the second segment has zero
length. */
-void
+EXPORT void
jack_ringbuffer_get_write_vector (const jack_ringbuffer_t * rb,
jack_ringbuffer_data_t * vec)
{
diff --git a/common/shm.c b/common/shm.c
index 6742acfa..6ef81dd3 100644
--- a/common/shm.c
+++ b/common/shm.c
@@ -426,7 +426,7 @@ jack_release_shm_info (jack_shm_registry_index_t index)
* ENOSPC if server registration limit reached
* ENOMEM if unable to access shared memory registry
*/
-EXPORT int
+int
jack_register_server (const char *server_name, int new_registry)
{
int i, res = 0;
@@ -496,7 +496,7 @@ jack_register_server (const char *server_name, int new_registry)
}
/* release server_name registration */
-EXPORT void
+void
jack_unregister_server (const char *server_name /* unused */)
{
int i;
@@ -520,7 +520,7 @@ jack_unregister_server (const char *server_name /* unused */)
}
/* called for server startup and termination */
-EXPORT int
+int
jack_cleanup_shm ()
{
int i;
diff --git a/common/shm.h b/common/shm.h
index f3bd1138..e2bac1cf 100644
--- a/common/shm.h
+++ b/common/shm.h
@@ -123,32 +123,30 @@ extern "C"
jack_shm_info_t;
/* utility functions used only within JACK */
-
- extern void jack_shm_copy_from_registry (jack_shm_info_t*,
+
+ void jack_shm_copy_from_registry (jack_shm_info_t*,
jack_shm_registry_index_t);
- extern void jack_shm_copy_to_registry (jack_shm_info_t*,
+ void jack_shm_copy_to_registry (jack_shm_info_t*,
jack_shm_registry_index_t*);
- extern void jack_release_shm_info (jack_shm_registry_index_t);
-
- extern char* jack_shm_addr (jack_shm_info_t* si); // steph
-
- /* here beginneth the API */
+ void jack_release_shm_info (jack_shm_registry_index_t);
+ char* jack_shm_addr (jack_shm_info_t* si); // steph
- EXPORT extern int jack_register_server (const char *server_name, int new_registry);
- EXPORT extern void jack_unregister_server (const char *server_name);
+ // here begin the API
+ int jack_register_server (const char *server_name, int new_registry);
+ void jack_unregister_server (const char *server_name);
- extern int jack_initialize_shm (const char *server_name);
- extern int jack_initialize_shm_server (void); // steph
- extern int jack_initialize_shm_client (void); // steph
- EXPORT extern int jack_cleanup_shm (void);
+ int jack_initialize_shm (const char *server_name);
+ int jack_initialize_shm_server (void); // steph
+ int jack_initialize_shm_client (void); // steph
+ int jack_cleanup_shm (void);
- extern int jack_shmalloc (const char *shm_name, jack_shmsize_t size,
+ int jack_shmalloc (const char *shm_name, jack_shmsize_t size,
jack_shm_info_t* result);
- extern void jack_release_shm (jack_shm_info_t*);
- extern void jack_destroy_shm (jack_shm_info_t*);
- extern int jack_attach_shm (jack_shm_info_t*);
- extern int jack_attach_shm_read (jack_shm_info_t*); // steph
- extern int jack_resize_shm (jack_shm_info_t*, jack_shmsize_t size);
+ void jack_release_shm (jack_shm_info_t*);
+ void jack_destroy_shm (jack_shm_info_t*);
+ int jack_attach_shm (jack_shm_info_t*);
+ int jack_attach_shm_read (jack_shm_info_t*); // steph
+ int jack_resize_shm (jack_shm_info_t*, jack_shmsize_t size);
#ifdef __cplusplus
}