merge exportvis branch into cairocanvas, to reduce the number of "floating" branches.

Still need to add API export/visibility macros for the canvas library.
This commit is contained in:
Paul Davis 2013-12-27 14:29:06 -05:00
commit b0e4f81eb3
426 changed files with 2059 additions and 1259 deletions

View file

@ -68,7 +68,6 @@ ARDOUR_UI::set_session (Session *s)
{ {
SessionHandlePtr::set_session (s); SessionHandlePtr::set_session (s);
if (!_session) { if (!_session) {
WM::Manager::instance().set_session (s); WM::Manager::instance().set_session (s);
/* Session option editor cannot exist across change-of-session */ /* Session option editor cannot exist across change-of-session */
@ -198,9 +197,15 @@ ARDOUR_UI::set_session (Session *s)
editor_meter_peak_display.hide(); editor_meter_peak_display.hide();
} }
if (_session if (meter_box.get_parent()) {
&& _session->master_out() transport_tearoff_hbox.remove (meter_box);
&& _session->master_out()->n_outputs().n(DataType::AUDIO) > 0) { transport_tearoff_hbox.remove (editor_meter_peak_display);
}
if (_session &&
_session->master_out() &&
_session->master_out()->n_outputs().n(DataType::AUDIO) > 0) {
editor_meter = new LevelMeterHBox(_session); editor_meter = new LevelMeterHBox(_session);
editor_meter->set_meter (_session->master_out()->shared_peak_meter().get()); editor_meter->set_meter (_session->master_out()->shared_peak_meter().get());
editor_meter->clear_meters(); editor_meter->clear_meters();
@ -228,7 +233,7 @@ ARDOUR_UI::set_session (Session *s)
meter_box.show(); meter_box.show();
editor_meter_peak_display.show(); editor_meter_peak_display.show();
} }
} }
} }
int int

View file

@ -256,7 +256,8 @@ def configure(conf):
autowaf.build_version_files( autowaf.build_version_files(
path_prefix + 'version.h', path_prefix + 'version.h',
path_prefix + 'version.cc', path_prefix + 'version.cc',
'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], 0) 'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], 0,
'', '')
autowaf.configure(conf) autowaf.configure(conf)
if re.search ("linux", sys.platform) != None: if re.search ("linux", sys.platform) != None:
@ -410,12 +411,17 @@ def build(bld):
'libcanvas', 'libcanvas',
] ]
# continue with setup of obj, which could be a shared library obj.defines = [
# or an executable. 'PACKAGE="' + I18N_PACKAGE + '"',
'VERSIONSTRING="' + bld.env['VERSION'] + '"',
'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'] + '"'
]
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL' obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL'
obj.uselib += ' GTKMM GNOMECANVASMM GNOMECANVAS FFTW3F' obj.uselib += ' GTKMM CANVAS FFTW3F'
obj.uselib += ' AUDIOUNITS OSX GTKOSX LO ' obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
if bld.is_defined('USE_EXTERNAL_LIBS'): if bld.is_defined('USE_EXTERNAL_LIBS'):
@ -425,14 +431,6 @@ def build(bld):
if sys.platform == 'darwin': if sys.platform == 'darwin':
obj.uselib += ' AUDIOUNITS OSX GTKOSX' obj.uselib += ' AUDIOUNITS OSX GTKOSX'
obj.use += ' libappleutility' obj.use += ' libappleutility'
obj.defines = [
'PACKAGE="' + I18N_PACKAGE + '"',
'VERSIONSTRING="' + bld.env['VERSION'] + '"',
'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'] + '"'
]
obj.includes += ['../libs'] obj.includes += ['../libs']
if bld.is_defined('HAVE_SUIL'): if bld.is_defined('HAVE_SUIL'):

View file

@ -19,6 +19,7 @@
#ifndef __ardour_amp_h__ #ifndef __ardour_amp_h__
#define __ardour_amp_h__ #define __ardour_amp_h__
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/chan_count.h" #include "ardour/chan_count.h"
#include "ardour/processor.h" #include "ardour/processor.h"
@ -32,7 +33,7 @@ class IO;
/** Applies a declick operation to all audio inputs, passing the same number of /** Applies a declick operation to all audio inputs, passing the same number of
* audio outputs, and passing through any other types unchanged. * audio outputs, and passing through any other types unchanged.
*/ */
class Amp : public Processor { class LIBARDOUR_API Amp : public Processor {
public: public:
Amp(Session& s); Amp(Session& s);

View file

@ -23,13 +23,15 @@
#include <glibmm/threads.h> #include <glibmm/threads.h>
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
class AudioFileSource; class AudioFileSource;
class Source; class Source;
class TransientDetector; class TransientDetector;
class Analyser { class LIBARDOUR_API Analyser {
public: public:
Analyser(); Analyser();

View file

@ -34,7 +34,9 @@
#include "pbd/locale_guard.h" #include "pbd/locale_guard.h"
#include "pbd/stateful.h" #include "pbd/stateful.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/libardour_visibility.h"
#include <jack/jack.h> #include <jack/jack.h>
@ -47,8 +49,8 @@ namespace ARDOUR {
class AudioEngine; class AudioEngine;
extern PBD::Signal1<void,std::string> BootMessage; LIBARDOUR_API extern PBD::Signal1<void,std::string> BootMessage;
extern PBD::Signal0<void> GUIIdle; LIBARDOUR_API extern PBD::Signal0<void> GUIIdle;
/** /**
* @param with_vst true to enable VST Support * @param with_vst true to enable VST Support
@ -58,27 +60,27 @@ namespace ARDOUR {
* *
* @return true if Ardour library was successfully initialized * @return true if Ardour library was successfully initialized
*/ */
bool init (bool with_vst, bool try_optimization, const char* localedir); LIBARDOUR_API bool init (bool with_vst, bool try_optimization, const char* localedir);
void init_post_engine (); LIBARDOUR_API void init_post_engine ();
void cleanup (); LIBARDOUR_API void cleanup ();
bool no_auto_connect (); LIBARDOUR_API bool no_auto_connect ();
void make_property_quarks (); LIBARDOUR_API void make_property_quarks ();
extern PBD::PropertyChange bounds_change; LIBARDOUR_API extern PBD::PropertyChange bounds_change;
extern const char* const ardour_config_info; LIBARDOUR_API extern const char* const ardour_config_info;
void find_bindings_files (std::map<std::string,std::string>&); LIBARDOUR_API void find_bindings_files (std::map<std::string,std::string>&);
/* these only impact bundled installations */ /* these only impact bundled installations */
std::string translation_enable_path (); LIBARDOUR_API std::string translation_enable_path ();
bool translations_are_enabled (); LIBARDOUR_API bool translations_are_enabled ();
bool set_translations_enabled (bool); LIBARDOUR_API bool set_translations_enabled (bool);
microseconds_t get_microseconds (); LIBARDOUR_API microseconds_t get_microseconds ();
void setup_fpu (); LIBARDOUR_API void setup_fpu ();
std::vector<SyncSource> get_available_sync_options(); LIBARDOUR_API std::vector<SyncSource> get_available_sync_options();
} }
#endif /* __ardour_ardour_h__ */ #endif /* __ardour_ardour_h__ */

View file

@ -34,11 +34,12 @@
#include "midi++/parser.h" #include "midi++/parser.h"
#include "midi++/port.h" #include "midi++/port.h"
#include "ardour/libardour_visibility.h"
#include "ardour/midi_port.h" #include "ardour/midi_port.h"
namespace ARDOUR { namespace ARDOUR {
class AsyncMIDIPort : public ARDOUR::MidiPort, public MIDI::Port { class LIBARDOUR_API AsyncMIDIPort : public ARDOUR::MidiPort, public MIDI::Port {
public: public:
AsyncMIDIPort (std::string const &, PortFlags); AsyncMIDIPort (std::string const &, PortFlags);

View file

@ -28,21 +28,21 @@
#include <boost/function.hpp> #include <boost/function.hpp>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/audioengine.h" #include "ardour/audioengine.h"
#include "ardour/port_engine.h" #include "ardour/port_engine.h"
#include "ardour/visibility.h"
#ifdef ARDOURBACKEND_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them) #ifdef ARDOURBACKEND_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them)
#define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_EXPORT #define ARDOURBACKEND_API LIBARDOUR_DLL_EXPORT
#else #else
#define ARDOURBACKEND_API LIBARDOUR_HELPER_DLL_IMPORT #define ARDOURBACKEND_API LIBARDOUR_DLL_IMPORT
#endif #endif
#define ARDOURBACKEND_LOCAL LIBARDOUR_HELPER_DLL_LOCAL #define ARDOURBACKEND_LOCAL LIBARDOUR_DLL_LOCAL
namespace ARDOUR { namespace ARDOUR {
class AudioBackend : public PortEngine { class LIBARDOUR_API AudioBackend : public PortEngine {
public: public:
AudioBackend (AudioEngine& e) : PortEngine (e), engine (e) {} AudioBackend (AudioEngine& e) : PortEngine (e), engine (e) {}
@ -491,7 +491,7 @@ class AudioBackend : public PortEngine {
virtual int _start (bool for_latency_measurement) = 0; virtual int _start (bool for_latency_measurement) = 0;
}; };
struct AudioBackendInfo { struct LIBARDOUR_API AudioBackendInfo {
const char* name; const char* name;
/** Using arg1 and arg2, initialize this audiobackend. /** Using arg1 and arg2, initialize this audiobackend.

View file

@ -27,7 +27,7 @@
namespace ARDOUR { namespace ARDOUR {
/** Buffer containing audio data. */ /** Buffer containing audio data. */
class AudioBuffer : public Buffer class LIBARDOUR_API AudioBuffer : public Buffer
{ {
public: public:
AudioBuffer(size_t capacity); AudioBuffer(size_t capacity);

View file

@ -53,7 +53,7 @@ class AudioPlaylist;
class AudioFileSource; class AudioFileSource;
class IO; class IO;
class AudioDiskstream : public Diskstream class LIBARDOUR_API AudioDiskstream : public Diskstream
{ {
public: public:
AudioDiskstream (Session &, const std::string& name, Diskstream::Flag f = Recordable); AudioDiskstream (Session &, const std::string& name, Diskstream::Flag f = Recordable);

View file

@ -24,9 +24,11 @@
#include <map> #include <map>
#include <vector> #include <vector>
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
class AudioLibrary class LIBARDOUR_API AudioLibrary
{ {
public: public:
AudioLibrary (); AudioLibrary ();
@ -43,7 +45,7 @@ class AudioLibrary
std::string src; std::string src;
}; };
extern AudioLibrary* Library; LIBARDOUR_API extern AudioLibrary* Library;
} // ARDOUR namespace } // ARDOUR namespace

View file

@ -38,7 +38,7 @@ class AudioRegionImporter;
class AudioPlaylistImporter; class AudioPlaylistImporter;
class Session; class Session;
class AudioPlaylistImportHandler : public ElementImportHandler class LIBARDOUR_API AudioPlaylistImportHandler : public ElementImportHandler
{ {
public: public:
typedef boost::shared_ptr<AudioPlaylistImporter> PlaylistPtr; typedef boost::shared_ptr<AudioPlaylistImporter> PlaylistPtr;
@ -57,7 +57,7 @@ class AudioPlaylistImportHandler : public ElementImportHandler
AudioRegionImportHandler & region_handler; AudioRegionImportHandler & region_handler;
}; };
class UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler class LIBARDOUR_API UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
{ {
public: public:
UnusedAudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler) : UnusedAudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler) :
@ -65,7 +65,7 @@ class UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
std::string get_info () const; std::string get_info () const;
}; };
class AudioPlaylistImporter : public ElementImporter class LIBARDOUR_API AudioPlaylistImporter : public ElementImporter
{ {
public: public:
AudioPlaylistImporter (XMLTree const & source, Session & session, AudioPlaylistImportHandler & handler, XMLNode const & node); AudioPlaylistImporter (XMLTree const & source, Session & session, AudioPlaylistImportHandler & handler, XMLNode const & node);

View file

@ -32,7 +32,7 @@ namespace ARDOUR {
class AudioPlaylist; class AudioPlaylist;
class AudioPlaylistSource : public PlaylistSource, public AudioSource { class LIBARDOUR_API AudioPlaylistSource : public PlaylistSource, public AudioSource {
public: public:
virtual ~AudioPlaylistSource (); virtual ~AudioPlaylistSource ();

View file

@ -26,7 +26,7 @@
namespace ARDOUR { namespace ARDOUR {
class AudioPort : public Port class LIBARDOUR_API AudioPort : public Port
{ {
public: public:
~AudioPort (); ~AudioPort ();

View file

@ -39,7 +39,7 @@ class Region;
class Session; class Session;
class Source; class Source;
class AudioRegionImportHandler : public ElementImportHandler class LIBARDOUR_API AudioRegionImportHandler : public ElementImportHandler
{ {
public: public:
// Inerface implementation // Inerface implementation
@ -69,7 +69,7 @@ class AudioRegionImportHandler : public ElementImportHandler
IdMap id_map; IdMap id_map;
}; };
class AudioRegionImporter : public ElementImporter class LIBARDOUR_API AudioRegionImporter : public ElementImporter
{ {
public: public:
AudioRegionImporter (XMLTree const & source, Session & session, AudioRegionImportHandler & handler, XMLNode const & node); AudioRegionImporter (XMLTree const & source, Session & session, AudioRegionImportHandler & handler, XMLNode const & node);

View file

@ -31,7 +31,7 @@ class AudioPlaylist;
class RouteGroup; class RouteGroup;
class AudioFileSource; class AudioFileSource;
class AudioTrack : public Track class LIBARDOUR_API AudioTrack : public Track
{ {
public: public:
AudioTrack (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal); AudioTrack (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal);

View file

@ -34,7 +34,7 @@ namespace ARDOUR {
class AudioPlaylistImportHandler; class AudioPlaylistImportHandler;
class AudioPlaylistImporter; class AudioPlaylistImporter;
class AudioTrackImportHandler : public ElementImportHandler class LIBARDOUR_API AudioTrackImportHandler : public ElementImportHandler
{ {
public: public:
AudioTrackImportHandler (XMLTree const & source, Session & session, AudioPlaylistImportHandler & pl_handler); AudioTrackImportHandler (XMLTree const & source, Session & session, AudioPlaylistImportHandler & pl_handler);
@ -46,7 +46,7 @@ class AudioTrackImportHandler : public ElementImportHandler
}; };
class AudioTrackImporter : public ElementImporter class LIBARDOUR_API AudioTrackImporter : public ElementImporter
{ {
public: public:
AudioTrackImporter (XMLTree const & source, AudioTrackImporter (XMLTree const & source,

View file

@ -41,14 +41,14 @@
class CAComponent; class CAComponent;
class CAAudioUnit; class CAAudioUnit;
class CAComponentDescription; class CAComponentDescription;
struct AudioBufferList; struct LIBARDOUR_API AudioBufferList;
namespace ARDOUR { namespace ARDOUR {
class AudioEngine; class AudioEngine;
class Session; class Session;
struct AUParameterDescriptor : public Plugin::ParameterDescriptor { struct LIBARDOUR_API AUParameterDescriptor : public Plugin::ParameterDescriptor {
// additional fields to make operations more efficient // additional fields to make operations more efficient
AudioUnitParameterID id; AudioUnitParameterID id;
AudioUnitScope scope; AudioUnitScope scope;
@ -58,7 +58,7 @@ struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
AudioUnitParameterUnit unit; AudioUnitParameterUnit unit;
}; };
class AUPlugin : public ARDOUR::Plugin class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin
{ {
public: public:
AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAComponent> comp); AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAComponent> comp);
@ -221,11 +221,11 @@ class AUPlugin : public ARDOUR::Plugin
typedef boost::shared_ptr<AUPlugin> AUPluginPtr; typedef boost::shared_ptr<AUPlugin> AUPluginPtr;
struct AUPluginCachedInfo { struct LIBARDOUR_API AUPluginCachedInfo {
std::vector<std::pair<int,int> > io_configs; std::vector<std::pair<int,int> > io_configs;
}; };
class AUPluginInfo : public PluginInfo { class LIBARDOUR_API AUPluginInfo : public PluginInfo {
public: public:
AUPluginInfo (boost::shared_ptr<CAComponentDescription>); AUPluginInfo (boost::shared_ptr<CAComponentDescription>);
~AUPluginInfo (); ~AUPluginInfo ();

View file

@ -25,7 +25,8 @@
#include <ostream> #include <ostream>
#include <fstream> #include <fstream>
#include <boost/utility.hpp> #include <boost/utility.hpp>
#include <vamp-sdk/Plugin.h> #include "vamp-sdk/Plugin.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR { namespace ARDOUR {
@ -33,7 +34,7 @@ namespace ARDOUR {
class Readable; class Readable;
class Session; class Session;
class AudioAnalyser : public boost::noncopyable { class LIBARDOUR_API AudioAnalyser : public boost::noncopyable {
public: public:
typedef Vamp::Plugin AnalysisPlugin; typedef Vamp::Plugin AnalysisPlugin;

View file

@ -39,6 +39,7 @@
#include "ardour/ardour.h" #include "ardour/ardour.h"
#include "ardour/data_type.h" #include "ardour/data_type.h"
#include "ardour/session_handle.h" #include "ardour/session_handle.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/chan_count.h" #include "ardour/chan_count.h"
#include "ardour/port_manager.h" #include "ardour/port_manager.h"
@ -59,7 +60,7 @@ class ProcessThread;
class AudioBackend; class AudioBackend;
class AudioBackendInfo; class AudioBackendInfo;
class AudioEngine : public SessionHandlePtr, public PortManager class LIBARDOUR_API AudioEngine : public SessionHandlePtr, public PortManager
{ {
public: public:

View file

@ -27,13 +27,15 @@
#include <taglib/taglib.h> #include <taglib/taglib.h>
#include <taglib/xiphcomment.h> #include <taglib/xiphcomment.h>
#include "ardour/libardour_visibility.h"
namespace ARDOUR namespace ARDOUR
{ {
class SessionMetadata; class SessionMetadata;
/// Class with static functions for tagging audiofiles /// Class with static functions for tagging audiofiles
class AudiofileTagger class LIBARDOUR_API AudiofileTagger
{ {
public: public:

View file

@ -27,7 +27,7 @@
namespace ARDOUR { namespace ARDOUR {
struct SoundFileInfo { struct LIBARDOUR_API SoundFileInfo {
float samplerate; float samplerate;
uint16_t channels; uint16_t channels;
int64_t length; int64_t length;
@ -35,7 +35,7 @@ struct SoundFileInfo {
int64_t timecode; int64_t timecode;
}; };
class AudioFileSource : public AudioSource, public FileSource { class LIBARDOUR_API AudioFileSource : public AudioSource, public FileSource {
public: public:
virtual ~AudioFileSource (); virtual ~AudioFileSource ();

View file

@ -32,10 +32,9 @@ class Session;
class Region; class Region;
class AudioRegion; class AudioRegion;
class Source; class Source;
class AudioPlaylist; class AudioPlaylist;
class AudioPlaylist : public ARDOUR::Playlist class LIBARDOUR_API AudioPlaylist : public ARDOUR::Playlist
{ {
public: public:
AudioPlaylist (Session&, const XMLNode&, bool hidden = false); AudioPlaylist (Session&, const XMLNode&, bool hidden = false);

View file

@ -40,17 +40,17 @@ class PlaylistReadTest;
namespace ARDOUR { namespace ARDOUR {
namespace Properties { namespace Properties {
extern PBD::PropertyDescriptor<bool> envelope_active; LIBARDOUR_API extern PBD::PropertyDescriptor<bool> envelope_active;
extern PBD::PropertyDescriptor<bool> default_fade_in; LIBARDOUR_API extern PBD::PropertyDescriptor<bool> default_fade_in;
extern PBD::PropertyDescriptor<bool> default_fade_out; LIBARDOUR_API extern PBD::PropertyDescriptor<bool> default_fade_out;
extern PBD::PropertyDescriptor<bool> fade_in_active; LIBARDOUR_API extern PBD::PropertyDescriptor<bool> fade_in_active;
extern PBD::PropertyDescriptor<bool> fade_out_active; LIBARDOUR_API extern PBD::PropertyDescriptor<bool> fade_out_active;
extern PBD::PropertyDescriptor<float> scale_amplitude; LIBARDOUR_API extern PBD::PropertyDescriptor<float> scale_amplitude;
extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_in; LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_in;
extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_in; LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_in;
extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_out; LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_out;
extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_out; LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_out;
extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > envelope; LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > envelope;
} }
class Playlist; class Playlist;
@ -59,7 +59,7 @@ class Filter;
class AudioSource; class AudioSource;
class AudioRegion : public Region class LIBARDOUR_API AudioRegion : public Region
{ {
public: public:
static void make_property_quarks (); static void make_property_quarks ();
@ -235,4 +235,12 @@ class AudioRegion : public Region
} /* namespace ARDOUR */ } /* namespace ARDOUR */
/* access from C objects */
extern "C" {
LIBARDOUR_API int region_read_peaks_from_c (void *arg, uint32_t npeaks, uint32_t start, uint32_t length, intptr_t data, uint32_t n_chan, double samples_per_unit);
LIBARDOUR_API uint32_t region_length_from_c (void *arg);
LIBARDOUR_API uint32_t sourcefile_length_from_c (void *arg, double);
}
#endif /* __ardour_audio_region_h__ */ #endif /* __ardour_audio_region_h__ */

View file

@ -38,7 +38,7 @@
namespace ARDOUR { namespace ARDOUR {
class AudioSource : virtual public Source, class LIBARDOUR_API AudioSource : virtual public Source,
public ARDOUR::Readable, public ARDOUR::Readable,
public boost::enable_shared_from_this<ARDOUR::AudioSource> public boost::enable_shared_from_this<ARDOUR::AudioSource>
{ {

View file

@ -33,7 +33,7 @@ class Session;
class AudioRegion; class AudioRegion;
class AudioPlaylist; class AudioPlaylist;
class Auditioner : public AudioTrack class LIBARDOUR_API Auditioner : public AudioTrack
{ {
public: public:
Auditioner (Session&); Auditioner (Session&);

View file

@ -26,7 +26,7 @@
namespace ARDOUR { namespace ARDOUR {
class AutoBundle : public Bundle { class LIBARDOUR_API AutoBundle : public Bundle {
public: public:
AutoBundle (bool i = true); AutoBundle (bool i = true);

View file

@ -26,6 +26,7 @@
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include "pbd/signals.h" #include "pbd/signals.h"
#include "evoral/ControlSet.hpp" #include "evoral/ControlSet.hpp"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
class XMLNode; class XMLNode;
@ -38,7 +39,7 @@ class AutomationControl;
/* The inherited ControlSet is virtual because AutomatableSequence inherits /* The inherited ControlSet is virtual because AutomatableSequence inherits
* from this AND EvoralSequence, which is also a ControlSet * from this AND EvoralSequence, which is also a ControlSet
*/ */
class Automatable : virtual public Evoral::ControlSet class LIBARDOUR_API Automatable : virtual public Evoral::ControlSet
{ {
public: public:
Automatable(Session&); Automatable(Session&);

View file

@ -27,7 +27,7 @@ namespace ARDOUR {
/** Contains notes and controllers */ /** Contains notes and controllers */
template<typename T> template<typename T>
class AutomatableSequence : public Automatable, public Evoral::Sequence<T> { class LIBARDOUR_API AutomatableSequence : public Automatable, public Evoral::Sequence<T> {
public: public:
AutomatableSequence(Session& s) AutomatableSequence(Session& s)
: Evoral::ControlSet() : Evoral::ControlSet()

View file

@ -26,6 +26,8 @@
#include "pbd/controllable.h" #include "pbd/controllable.h"
#include "evoral/Control.hpp" #include "evoral/Control.hpp"
#include "ardour/libardour_visibility.h"
#include "ardour/automation_list.h" #include "ardour/automation_list.h"
namespace ARDOUR { namespace ARDOUR {
@ -36,7 +38,7 @@ class Automatable;
/** A PBD::Controllable with associated automation data (AutomationList) /** A PBD::Controllable with associated automation data (AutomationList)
*/ */
class AutomationControl : public PBD::Controllable, public Evoral::Control, public boost::enable_shared_from_this<AutomationControl> class LIBARDOUR_API AutomationControl : public PBD::Controllable, public Evoral::Control, public boost::enable_shared_from_this<AutomationControl>
{ {
public: public:
AutomationControl(ARDOUR::Session&, AutomationControl(ARDOUR::Session&,

View file

@ -40,7 +40,7 @@ namespace ARDOUR {
class AutomationList; class AutomationList;
/** A SharedStatefulProperty for AutomationLists */ /** A SharedStatefulProperty for AutomationLists */
class AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList> class LIBARDOUR_API AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
{ {
public: public:
AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr p) AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr p)
@ -59,7 +59,7 @@ private:
AutomationListProperty& operator= (AutomationListProperty const &); AutomationListProperty& operator= (AutomationListProperty const &);
}; };
class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList class LIBARDOUR_API AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
{ {
public: public:
AutomationList (Evoral::Parameter id); AutomationList (Evoral::Parameter id);

View file

@ -30,7 +30,7 @@ namespace ARDOUR {
class AutomationControl; class AutomationControl;
class AutomationWatch : public sigc::trackable, public ARDOUR::SessionHandlePtr, public PBD::ScopedConnectionList { class LIBARDOUR_API AutomationWatch : public sigc::trackable, public ARDOUR::SessionHandlePtr, public PBD::ScopedConnectionList {
public: public:
static AutomationWatch& instance(); static AutomationWatch& instance();

View file

@ -20,6 +20,7 @@
*/ */
#include "evoral/TimeConverter.hpp" #include "evoral/TimeConverter.hpp"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#ifndef __ardour_beats_frames_converter_h__ #ifndef __ardour_beats_frames_converter_h__
@ -33,7 +34,7 @@ class TempoMap;
* from some origin (supplied to the constructor in frames), and converts * from some origin (supplied to the constructor in frames), and converts
* them to the opposite unit, taking tempo changes into account. * them to the opposite unit, taking tempo changes into account.
*/ */
class BeatsFramesConverter : public Evoral::TimeConverter<double,framepos_t> { class LIBARDOUR_API BeatsFramesConverter : public Evoral::TimeConverter<double,framepos_t> {
public: public:
BeatsFramesConverter (TempoMap& tempo_map, framepos_t origin) BeatsFramesConverter (TempoMap& tempo_map, framepos_t origin)
: Evoral::TimeConverter<double, framepos_t> (origin) : Evoral::TimeConverter<double, framepos_t> (origin)

View file

@ -23,6 +23,7 @@
#include <string> #include <string>
#include "ardour/libardour_visibility.h"
#include "audiographer/broadcast_info.h" #include "audiographer/broadcast_info.h"
namespace ARDOUR namespace ARDOUR
@ -30,7 +31,7 @@ namespace ARDOUR
class Session; class Session;
class BroadcastInfo : public AudioGrapher::BroadcastInfo class LIBARDOUR_API BroadcastInfo : public AudioGrapher::BroadcastInfo
{ {
public: public:
BroadcastInfo (); BroadcastInfo ();

View file

@ -23,6 +23,7 @@
#include <boost/utility.hpp> #include <boost/utility.hpp>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/data_type.h" #include "ardour/data_type.h"
@ -38,7 +39,7 @@ namespace ARDOUR {
* *
* To actually read/write buffer contents, use the appropriate derived class. * To actually read/write buffer contents, use the appropriate derived class.
*/ */
class Buffer : public boost::noncopyable class LIBARDOUR_API Buffer : public boost::noncopyable
{ {
public: public:
virtual ~Buffer() {} virtual ~Buffer() {}

View file

@ -32,7 +32,7 @@ namespace ARDOUR {
class ThreadBuffers; class ThreadBuffers;
class BufferManager class LIBARDOUR_API BufferManager
{ {
public: public:
static void init (uint32_t); static void init (uint32_t);

View file

@ -27,6 +27,7 @@
#include <vector> #include <vector>
#include "ardour/chan_count.h" #include "ardour/chan_count.h"
#include "ardour/data_type.h" #include "ardour/data_type.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#if defined VST_SUPPORT || defined LXVST_SUPPORT #if defined VST_SUPPORT || defined LXVST_SUPPORT
@ -61,7 +62,7 @@ class PortSet;
* others the form of their output (eg what they did to the BufferSet). * others the form of their output (eg what they did to the BufferSet).
* Setting the use counts is realtime safe. * Setting the use counts is realtime safe.
*/ */
class BufferSet class LIBARDOUR_API BufferSet
{ {
public: public:
BufferSet(); BufferSet();

View file

@ -40,7 +40,7 @@ class AudioEngine;
* `Channel' is a rather overloaded term but I can't think of a better * `Channel' is a rather overloaded term but I can't think of a better
* one right now. * one right now.
*/ */
class Bundle : public PBD::ScopedConnectionList class LIBARDOUR_API Bundle : public PBD::ScopedConnectionList
{ {
public: public:
@ -149,7 +149,7 @@ class Bundle : public PBD::ScopedConnectionList
Change _pending_change; Change _pending_change;
}; };
class BundleChannel class LIBARDOUR_API BundleChannel
{ {
public: public:
BundleChannel () : channel (-1) {} BundleChannel () : channel (-1) {}

View file

@ -24,6 +24,7 @@
#include "pbd/ringbuffer.h" #include "pbd/ringbuffer.h"
#include "pbd/pool.h" #include "pbd/pool.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/session_handle.h" #include "ardour/session_handle.h"
@ -36,7 +37,7 @@ namespace ARDOUR {
* are empty they are deleted. * are empty they are deleted.
*/ */
class Butler : public SessionHandleRef class LIBARDOUR_API Butler : public SessionHandleRef
{ {
public: public:
Butler (Session& session); Butler (Session& session);

View file

@ -21,6 +21,7 @@
#define __ardour_ca_importable_source_h__ #define __ardour_ca_importable_source_h__
#include "pbd/failed_constructor.h" #include "pbd/failed_constructor.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/importable_source.h" #include "ardour/importable_source.h"
@ -28,7 +29,7 @@
namespace ARDOUR { namespace ARDOUR {
class CAImportableSource : public ImportableSource { class LIBARDOUR_API CAImportableSource : public ImportableSource {
public: public:
CAImportableSource (const std::string& path); CAImportableSource (const std::string& path);
virtual ~CAImportableSource(); virtual ~CAImportableSource();

View file

@ -24,7 +24,7 @@
namespace ARDOUR { namespace ARDOUR {
class CapturingProcessor : public Processor class LIBARDOUR_API CapturingProcessor : public Processor
{ {
public: public:
CapturingProcessor (Session & session); CapturingProcessor (Session & session);

View file

@ -34,7 +34,7 @@ namespace ARDOUR {
* Operators are defined so this may safely be used as if it were a simple * Operators are defined so this may safely be used as if it were a simple
* (single-typed) integer count of channels. * (single-typed) integer count of channels.
*/ */
class ChanCount { class LIBARDOUR_API ChanCount {
public: public:
ChanCount(const XMLNode& node); ChanCount(const XMLNode& node);
ChanCount() { reset(); } ChanCount() { reset(); }

View file

@ -34,7 +34,7 @@ namespace ARDOUR {
/** A mapping from one set of channels to another /** A mapping from one set of channels to another
* (e.g. how to 'connect' two BufferSets). * (e.g. how to 'connect' two BufferSets).
*/ */
class ChanMapping { class LIBARDOUR_API ChanMapping {
public: public:
ChanMapping() {} ChanMapping() {}
ChanMapping(ARDOUR::ChanCount identity); ChanMapping(ARDOUR::ChanCount identity);

View file

@ -23,12 +23,13 @@
#include <list> #include <list>
#include "pbd/pool.h" #include "pbd/pool.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/io.h" #include "ardour/io.h"
namespace ARDOUR { namespace ARDOUR {
class Click { class LIBARDOUR_API Click {
public: public:
framepos_t start; framepos_t start;
framecnt_t duration; framecnt_t duration;
@ -49,7 +50,7 @@ private:
static Pool pool; static Pool pool;
}; };
class ClickIO : public IO class LIBARDOUR_API ClickIO : public IO
{ {
public: public:
ClickIO (Session& s, const std::string& name) : IO (s, name, IO::Output) {} ClickIO (Session& s, const std::string& name) : IO (s, name, IO::Output) {}

View file

@ -21,10 +21,12 @@
#ifndef __ardour_comparable_shared_ptr_h__ #ifndef __ardour_comparable_shared_ptr_h__
#define __ardour_comparable_shared_ptr_h__ #define __ardour_comparable_shared_ptr_h__
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
template<typename T> template<typename T>
class ComparableSharedPtr : public boost::shared_ptr<T> class LIBARDOUR_API ComparableSharedPtr : public boost::shared_ptr<T>
, public boost::less_than_comparable<ComparableSharedPtr<T> > , public boost::less_than_comparable<ComparableSharedPtr<T> >
{ {
public: public:

View file

@ -29,7 +29,7 @@ class XMLNode;
namespace ARDOUR { namespace ARDOUR {
class Configuration : public PBD::Stateful class LIBARDOUR_API Configuration : public PBD::Stateful
{ {
public: public:
Configuration(); Configuration();

View file

@ -25,12 +25,13 @@
#include "pbd/xml++.h" #include "pbd/xml++.h"
#include "pbd/convert.h" #include "pbd/convert.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/utils.h" #include "ardour/utils.h"
namespace ARDOUR { namespace ARDOUR {
class ConfigVariableBase { class LIBARDOUR_API ConfigVariableBase {
public: public:
ConfigVariableBase (std::string str) : _name (str) {} ConfigVariableBase (std::string str) : _name (str) {}
@ -51,7 +52,7 @@ class ConfigVariableBase {
}; };
template<class T> template<class T>
class ConfigVariable : public ConfigVariableBase class LIBARDOUR_API ConfigVariable : public ConfigVariableBase
{ {
public: public:
@ -91,7 +92,7 @@ class ConfigVariable : public ConfigVariableBase
/** Specialisation of ConfigVariable for std::string to cope with whitespace properly */ /** Specialisation of ConfigVariable for std::string to cope with whitespace properly */
template<> template<>
class ConfigVariable<std::string> : public ConfigVariableBase class LIBARDOUR_API ConfigVariable<std::string> : public ConfigVariableBase
{ {
public: public:
@ -126,7 +127,7 @@ class ConfigVariable<std::string> : public ConfigVariableBase
}; };
template<> template<>
class ConfigVariable<bool> : public ConfigVariableBase class LIBARDOUR_API ConfigVariable<bool> : public ConfigVariableBase
{ {
public: public:
@ -163,7 +164,7 @@ class ConfigVariable<bool> : public ConfigVariableBase
}; };
template<class T> template<class T>
class ConfigVariableWithMutation : public ConfigVariable<T> class LIBARDOUR_API ConfigVariableWithMutation : public ConfigVariable<T>
{ {
public: public:
ConfigVariableWithMutation (std::string name, T val, T (*m)(T)) ConfigVariableWithMutation (std::string name, T val, T (*m)(T))
@ -192,7 +193,7 @@ class ConfigVariableWithMutation : public ConfigVariable<T>
}; };
template<> template<>
class ConfigVariableWithMutation<std::string> : public ConfigVariable<std::string> class LIBARDOUR_API ConfigVariableWithMutation<std::string> : public ConfigVariable<std::string>
{ {
public: public:
ConfigVariableWithMutation (std::string name, std::string val, std::string (*m)(std::string)) ConfigVariableWithMutation (std::string name, std::string val, std::string (*m)(std::string))

View file

@ -35,7 +35,7 @@ class ControlProtocol;
class ControlProtocolDescriptor; class ControlProtocolDescriptor;
class Session; class Session;
class ControlProtocolInfo { class LIBARDOUR_API ControlProtocolInfo {
public: public:
ControlProtocolDescriptor* descriptor; ControlProtocolDescriptor* descriptor;
ControlProtocol* protocol; ControlProtocol* protocol;
@ -52,7 +52,7 @@ public:
~ControlProtocolInfo() { delete state; } ~ControlProtocolInfo() { delete state; }
}; };
class ControlProtocolManager : public PBD::Stateful, public ARDOUR::SessionHandlePtr class LIBARDOUR_API ControlProtocolManager : public PBD::Stateful, public ARDOUR::SessionHandlePtr
{ {
public: public:
~ControlProtocolManager (); ~ControlProtocolManager ();

View file

@ -28,7 +28,7 @@ using namespace std;
namespace ARDOUR { namespace ARDOUR {
class CoreAudioSource : public AudioFileSource { class LIBARDOUR_API CoreAudioSource : public AudioFileSource {
public: public:
CoreAudioSource (ARDOUR::Session&, const XMLNode&); CoreAudioSource (ARDOUR::Session&, const XMLNode&);
CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag); CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag);

View file

@ -24,12 +24,13 @@
#include <iostream> #include <iostream>
#include <cstdlib> #include <cstdlib>
#include "ardour/libardour_visibility.h"
#include "ardour/cycles.h" #include "ardour/cycles.h"
#include "ardour/debug.h" #include "ardour/debug.h"
float get_mhz (); float get_mhz ();
class CycleTimer { class LIBARDOUR_API CycleTimer {
private: private:
static float cycles_per_usec; static float cycles_per_usec;
#ifndef NDEBUG #ifndef NDEBUG
@ -63,7 +64,7 @@ class CycleTimer {
} }
}; };
class StoringTimer class LIBARDOUR_API StoringTimer
{ {
public: public:
StoringTimer (int); StoringTimer (int);

View file

@ -24,6 +24,8 @@
#include <stdint.h> #include <stdint.h>
#include <glib.h> #include <glib.h>
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
/** A type of Data Ardour is capable of processing. /** A type of Data Ardour is capable of processing.
@ -32,7 +34,7 @@ namespace ARDOUR {
* other type representations, simple comparison between then, etc. This code * other type representations, simple comparison between then, etc. This code
* is deliberately 'ugly' so other code doesn't have to be. * is deliberately 'ugly' so other code doesn't have to be.
*/ */
class DataType class LIBARDOUR_API DataType
{ {
public: public:
/** Numeric symbol for this DataType. /** Numeric symbol for this DataType.

View file

@ -24,46 +24,47 @@
#include <sstream> #include <sstream>
#include "ardour/libardour_visibility.h"
#include "pbd/debug.h" #include "pbd/debug.h"
namespace PBD { namespace PBD {
namespace DEBUG { namespace DEBUG {
extern uint64_t MidiSourceIO; LIBARDOUR_API extern uint64_t MidiSourceIO;
extern uint64_t MidiPlaylistIO; LIBARDOUR_API extern uint64_t MidiPlaylistIO;
extern uint64_t MidiDiskstreamIO; LIBARDOUR_API extern uint64_t MidiDiskstreamIO;
extern uint64_t SnapBBT; LIBARDOUR_API extern uint64_t SnapBBT;
extern uint64_t Configuration; LIBARDOUR_API extern uint64_t Configuration;
extern uint64_t Latency; LIBARDOUR_API extern uint64_t Latency;
extern uint64_t Processors; LIBARDOUR_API extern uint64_t Processors;
extern uint64_t ProcessThreads; LIBARDOUR_API extern uint64_t ProcessThreads;
extern uint64_t Graph; LIBARDOUR_API extern uint64_t Graph;
extern uint64_t Destruction; LIBARDOUR_API extern uint64_t Destruction;
extern uint64_t MTC; LIBARDOUR_API extern uint64_t MTC;
extern uint64_t LTC; LIBARDOUR_API extern uint64_t LTC;
extern uint64_t Transport; LIBARDOUR_API extern uint64_t Transport;
extern uint64_t Slave; LIBARDOUR_API extern uint64_t Slave;
extern uint64_t SessionEvents; LIBARDOUR_API extern uint64_t SessionEvents;
extern uint64_t MidiIO; LIBARDOUR_API extern uint64_t MidiIO;
extern uint64_t MackieControl; LIBARDOUR_API extern uint64_t MackieControl;
extern uint64_t MidiClock; LIBARDOUR_API extern uint64_t MidiClock;
extern uint64_t Monitor; LIBARDOUR_API extern uint64_t Monitor;
extern uint64_t Solo; LIBARDOUR_API extern uint64_t Solo;
extern uint64_t AudioPlayback; LIBARDOUR_API extern uint64_t AudioPlayback;
extern uint64_t Panning; LIBARDOUR_API extern uint64_t Panning;
extern uint64_t LV2; LIBARDOUR_API extern uint64_t LV2;
extern uint64_t CaptureAlignment; LIBARDOUR_API extern uint64_t CaptureAlignment;
extern uint64_t PluginManager; LIBARDOUR_API extern uint64_t PluginManager;
extern uint64_t AudioUnits; LIBARDOUR_API extern uint64_t AudioUnits;
extern uint64_t ControlProtocols; LIBARDOUR_API extern uint64_t ControlProtocols;
extern uint64_t CycleTimers; LIBARDOUR_API extern uint64_t CycleTimers;
extern uint64_t MidiTrackers; LIBARDOUR_API extern uint64_t MidiTrackers;
extern uint64_t Layering; LIBARDOUR_API extern uint64_t Layering;
extern uint64_t TempoMath; LIBARDOUR_API extern uint64_t TempoMath;
extern uint64_t TempoMap; LIBARDOUR_API extern uint64_t TempoMap;
extern uint64_t OrderKeys; LIBARDOUR_API extern uint64_t OrderKeys;
extern uint64_t Automation; LIBARDOUR_API extern uint64_t Automation;
extern uint64_t WiimoteControl; LIBARDOUR_API extern uint64_t WiimoteControl;
extern uint64_t Ports; LIBARDOUR_API extern uint64_t Ports;
} }
} }

View file

@ -21,6 +21,7 @@
#include <string> #include <string>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/chan_count.h" #include "ardour/chan_count.h"
#include "ardour/io_processor.h" #include "ardour/io_processor.h"
@ -34,7 +35,7 @@ class PannerShell;
class Panner; class Panner;
class Pannable; class Pannable;
class Delivery : public IOProcessor class LIBARDOUR_API Delivery : public IOProcessor
{ {
public: public:
enum Role { enum Role {

View file

@ -21,24 +21,26 @@
#ifndef __ardour_directory_names_h__ #ifndef __ardour_directory_names_h__
#define __ardour_directory_names_h__ #define __ardour_directory_names_h__
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
extern const char* const old_sound_dir_name; LIBARDOUR_API extern const char* const old_sound_dir_name;
extern const char* const sound_dir_name; LIBARDOUR_API extern const char* const sound_dir_name;
extern const char* const midi_dir_name; LIBARDOUR_API extern const char* const midi_dir_name;
extern const char* const midi_patch_dir_name; LIBARDOUR_API extern const char* const midi_patch_dir_name;
extern const char* const video_dir_name; LIBARDOUR_API extern const char* const video_dir_name;
extern const char* const dead_dir_name; LIBARDOUR_API extern const char* const dead_dir_name;
extern const char* const interchange_dir_name; LIBARDOUR_API extern const char* const interchange_dir_name;
extern const char* const peak_dir_name; LIBARDOUR_API extern const char* const peak_dir_name;
extern const char* const export_dir_name; LIBARDOUR_API extern const char* const export_dir_name;
extern const char* const export_formats_dir_name; LIBARDOUR_API extern const char* const export_formats_dir_name;
extern const char* const templates_dir_name; LIBARDOUR_API extern const char* const templates_dir_name;
extern const char* const route_templates_dir_name; LIBARDOUR_API extern const char* const route_templates_dir_name;
extern const char* const surfaces_dir_name; LIBARDOUR_API extern const char* const surfaces_dir_name;
extern const char* const user_config_dir_name; LIBARDOUR_API extern const char* const user_config_dir_name;
extern const char* const panner_dir_name; LIBARDOUR_API extern const char* const panner_dir_name;
extern const char* const backend_dir_name; LIBARDOUR_API extern const char* const backend_dir_name;
}; };

View file

@ -34,6 +34,7 @@
#include "ardour/ardour.h" #include "ardour/ardour.h"
#include "ardour/chan_count.h" #include "ardour/chan_count.h"
#include "ardour/session_object.h" #include "ardour/session_object.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/utils.h" #include "ardour/utils.h"
#include "ardour/public_diskstream.h" #include "ardour/public_diskstream.h"
@ -54,7 +55,7 @@ class BufferSet;
/** Parent class for classes which can stream data to and from disk. /** Parent class for classes which can stream data to and from disk.
* These are used by Tracks to get playback and put recorded data. * These are used by Tracks to get playback and put recorded data.
*/ */
class Diskstream : public SessionObject, public PublicDiskstream class LIBARDOUR_API Diskstream : public SessionObject, public PublicDiskstream
{ {
public: public:
enum Flag { enum Flag {

View file

@ -27,6 +27,9 @@
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include "ardour/libardour_visibility.h"
#include "pbd/libpbd_visibility.h"
class XMLTree; class XMLTree;
namespace ARDOUR { namespace ARDOUR {
@ -35,7 +38,7 @@ class Session;
class ElementImporter; class ElementImporter;
/// Virtual interface class for element import handlers /// Virtual interface class for element import handlers
class ElementImportHandler class LIBARDOUR_API ElementImportHandler
{ {
public: public:
typedef boost::shared_ptr<ElementImporter> ElementPtr; typedef boost::shared_ptr<ElementImporter> ElementPtr;

View file

@ -25,6 +25,7 @@
#include <utility> #include <utility>
#include "pbd/signals.h" #include "pbd/signals.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
class XMLTree; class XMLTree;
@ -34,7 +35,7 @@ class Session;
class ImportStatus; class ImportStatus;
/// Virtual interface class for element importers /// Virtual interface class for element importers
class ElementImporter class LIBARDOUR_API ElementImporter
{ {
public: public:

View file

@ -25,12 +25,14 @@
#include "evoral/TypeMap.hpp" #include "evoral/TypeMap.hpp"
#include "evoral/ControlList.hpp" #include "evoral/ControlList.hpp"
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
/** This is the interface Ardour provides to Evoral about what /** This is the interface Ardour provides to Evoral about what
* parameter and event types/ranges/names etc. to use. * parameter and event types/ranges/names etc. to use.
*/ */
class EventTypeMap : public Evoral::TypeMap { class LIBARDOUR_API EventTypeMap : public Evoral::TypeMap {
public: public:
bool type_is_midi(uint32_t type) const; bool type_is_midi(uint32_t type) const;
uint8_t parameter_midi_type(const Evoral::Parameter& param) const; uint8_t parameter_midi_type(const Evoral::Parameter& param) const;

View file

@ -40,7 +40,7 @@ class AudioRegion;
class CapturingProcessor; class CapturingProcessor;
/// Export channel base class interface for different source types /// Export channel base class interface for different source types
class ExportChannel : public boost::less_than_comparable<ExportChannel> class LIBARDOUR_API ExportChannel : public boost::less_than_comparable<ExportChannel>
{ {
public: public:
@ -62,7 +62,7 @@ class ExportChannel : public boost::less_than_comparable<ExportChannel>
}; };
/// Basic export channel that reads from AudioPorts /// Basic export channel that reads from AudioPorts
class PortExportChannel : public ExportChannel class LIBARDOUR_API PortExportChannel : public ExportChannel
{ {
public: public:
typedef std::set<boost::weak_ptr<AudioPort> > PortSet; typedef std::set<boost::weak_ptr<AudioPort> > PortSet;
@ -89,7 +89,7 @@ class PortExportChannel : public ExportChannel
/// Handles RegionExportChannels and does actual reading from region /// Handles RegionExportChannels and does actual reading from region
class RegionExportChannelFactory class LIBARDOUR_API RegionExportChannelFactory
{ {
public: public:
enum Type { enum Type {
@ -128,7 +128,7 @@ class RegionExportChannelFactory
}; };
/// Export channel that reads from region channel /// Export channel that reads from region channel
class RegionExportChannel : public ExportChannel class LIBARDOUR_API RegionExportChannel : public ExportChannel
{ {
friend class RegionExportChannelFactory; friend class RegionExportChannelFactory;
@ -152,7 +152,7 @@ class RegionExportChannel : public ExportChannel
}; };
/// Export channel for exporting from different positions in a route /// Export channel for exporting from different positions in a route
class RouteExportChannel : public ExportChannel class LIBARDOUR_API RouteExportChannel : public ExportChannel
{ {
class ProcessorRemover; // fwd declaration class ProcessorRemover; // fwd declaration

View file

@ -37,7 +37,7 @@ namespace ARDOUR
class Session; class Session;
class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration> class LIBARDOUR_API ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration>
{ {
private: private:

View file

@ -24,10 +24,12 @@
#include <exception> #include <exception>
#include <string> #include <string>
#include "ardour/libardour_visibility.h"
namespace ARDOUR namespace ARDOUR
{ {
class ExportFailed : public std::exception class LIBARDOUR_API ExportFailed : public std::exception
{ {
public: public:
ExportFailed (std::string const &); ExportFailed (std::string const &);

View file

@ -34,7 +34,7 @@ namespace ARDOUR
class Session; class Session;
class ExportFilename { class LIBARDOUR_API ExportFilename {
public: public:
enum DateFormat { enum DateFormat {

View file

@ -30,6 +30,7 @@
#include <samplerate.h> #include <samplerate.h>
#include "pbd/signals.h" #include "pbd/signals.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "audiographer/general/sample_format_converter.h" #include "audiographer/general/sample_format_converter.h"
@ -37,7 +38,7 @@
namespace ARDOUR namespace ARDOUR
{ {
class ExportFormatBase { class LIBARDOUR_API ExportFormatBase {
public: public:
enum Type { enum Type {

View file

@ -28,7 +28,7 @@ namespace ARDOUR
{ {
/// Allows adding to all sets. A format should be able to test if it is compatible with this /// Allows adding to all sets. A format should be able to test if it is compatible with this
class ExportFormatCompatibility : public ExportFormatBase, public ExportFormatBase::SelectableCompatible { class LIBARDOUR_API ExportFormatCompatibility : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
private: private:
public: public:

View file

@ -39,7 +39,7 @@ class ExportFormatCompatibility;
class ExportFormatSpecification; class ExportFormatSpecification;
class AnyTime; class AnyTime;
class ExportFormatManager : public PBD::ScopedConnectionList class LIBARDOUR_API ExportFormatManager : public PBD::ScopedConnectionList
{ {
public: public:

View file

@ -25,6 +25,7 @@
#include "pbd/uuid.h" #include "pbd/uuid.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/export_format_base.h" #include "ardour/export_format_base.h"
@ -37,7 +38,7 @@ class ExportFormat;
class ExportFormatCompatibility; class ExportFormatCompatibility;
class Session; class Session;
class ExportFormatSpecification : public ExportFormatBase { class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase {
private: private:

View file

@ -33,13 +33,13 @@
namespace ARDOUR namespace ARDOUR
{ {
class ExportFormatIncompatible : public failed_constructor { class LIBARDOUR_API ExportFormatIncompatible : public failed_constructor {
public: public:
virtual const char *what() const throw() { return "Export format constructor failed: Format incompatible with system"; } virtual const char *what() const throw() { return "Export format constructor failed: Format incompatible with system"; }
}; };
/// Base class for formats /// Base class for formats
class ExportFormat : public ExportFormatBase, public ExportFormatBase::SelectableCompatible { class LIBARDOUR_API ExportFormat : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
public: public:
ExportFormat () {}; ExportFormat () {};
@ -86,7 +86,7 @@ class ExportFormat : public ExportFormatBase, public ExportFormatBase::Selectabl
}; };
/// Class to be inherited by export formats that have a selectable sample format /// Class to be inherited by export formats that have a selectable sample format
class HasSampleFormat : public PBD::ScopedConnectionList { class LIBARDOUR_API HasSampleFormat : public PBD::ScopedConnectionList {
public: public:
class SampleFormatState : public ExportFormatBase::SelectableCompatible { class SampleFormatState : public ExportFormatBase::SelectableCompatible {
@ -156,7 +156,7 @@ class HasSampleFormat : public PBD::ScopedConnectionList {
ExportFormatBase::SampleFormatSet & _sample_formats; ExportFormatBase::SampleFormatSet & _sample_formats;
}; };
class ExportFormatLinear : public ExportFormat, public HasSampleFormat { class LIBARDOUR_API ExportFormatLinear : public ExportFormat, public HasSampleFormat {
public: public:
ExportFormatLinear (std::string name, FormatId format_id); ExportFormatLinear (std::string name, FormatId format_id);
@ -174,7 +174,7 @@ class ExportFormatLinear : public ExportFormat, public HasSampleFormat {
SampleFormat _default_sample_format; SampleFormat _default_sample_format;
}; };
class ExportFormatOggVorbis : public ExportFormat { class LIBARDOUR_API ExportFormatOggVorbis : public ExportFormat {
public: public:
ExportFormatOggVorbis (); ExportFormatOggVorbis ();
~ExportFormatOggVorbis () {}; ~ExportFormatOggVorbis () {};
@ -185,7 +185,7 @@ class ExportFormatOggVorbis : public ExportFormat {
virtual bool supports_tagging () const { return true; } virtual bool supports_tagging () const { return true; }
}; };
class ExportFormatFLAC : public ExportFormat, public HasSampleFormat { class LIBARDOUR_API ExportFormatFLAC : public ExportFormat, public HasSampleFormat {
public: public:
ExportFormatFLAC (); ExportFormatFLAC ();
~ExportFormatFLAC () {}; ~ExportFormatFLAC () {};
@ -198,7 +198,7 @@ class ExportFormatFLAC : public ExportFormat, public HasSampleFormat {
virtual bool supports_tagging () const { return true; } virtual bool supports_tagging () const { return true; }
}; };
class ExportFormatBWF : public ExportFormat, public HasSampleFormat { class LIBARDOUR_API ExportFormatBWF : public ExportFormat, public HasSampleFormat {
public: public:
ExportFormatBWF (); ExportFormatBWF ();
~ExportFormatBWF () {}; ~ExportFormatBWF () {};

View file

@ -48,7 +48,7 @@ namespace ARDOUR
class ExportTimespan; class ExportTimespan;
class Session; class Session;
class ExportGraphBuilder class LIBARDOUR_API ExportGraphBuilder
{ {
private: private:
typedef ExportHandler::FileSpec FileSpec; typedef ExportHandler::FileSpec FileSpec;

View file

@ -29,6 +29,7 @@
#include "ardour/export_pointers.h" #include "ardour/export_pointers.h"
#include "ardour/session.h" #include "ardour/session.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace AudioGrapher { namespace AudioGrapher {
@ -45,7 +46,7 @@ class ExportFilename;
class ExportGraphBuilder; class ExportGraphBuilder;
class Location; class Location;
class ExportElementFactory class LIBARDOUR_API ExportElementFactory
{ {
public: public:
@ -67,7 +68,7 @@ class ExportElementFactory
Session & session; Session & session;
}; };
class ExportHandler : public ExportElementFactory class LIBARDOUR_API ExportHandler : public ExportElementFactory
{ {
public: public:
struct FileSpec { struct FileSpec {

View file

@ -25,6 +25,7 @@
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp> #include <boost/weak_ptr.hpp>
#include "ardour/libardour_visibility.h"
#include "ardour/comparable_shared_ptr.h" #include "ardour/comparable_shared_ptr.h"
namespace AudioGrapher { namespace AudioGrapher {

View file

@ -26,12 +26,14 @@
#include "pbd/uuid.h" #include "pbd/uuid.h"
#include "pbd/xml++.h" #include "pbd/xml++.h"
#include "ardour/libardour_visibility.h"
namespace ARDOUR namespace ARDOUR
{ {
class Session; class Session;
class ExportPreset { class LIBARDOUR_API ExportPreset {
public: public:
ExportPreset (std::string filename, Session & s); ExportPreset (std::string filename, Session & s);
~ExportPreset (); ~ExportPreset ();

View file

@ -35,6 +35,7 @@
#include "ardour/filesystem_paths.h" #include "ardour/filesystem_paths.h"
#include "ardour/location.h" #include "ardour/location.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/export_handler.h" #include "ardour/export_handler.h"
@ -46,7 +47,7 @@ class Location;
class Session; class Session;
/// Manages (de)serialization of export profiles and related classes /// Manages (de)serialization of export profiles and related classes
class ExportProfileManager class LIBARDOUR_API ExportProfileManager
{ {
public: public:

View file

@ -23,6 +23,7 @@
#include <stdint.h> #include <stdint.h>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "pbd/signals.h" #include "pbd/signals.h"
@ -30,7 +31,7 @@
namespace ARDOUR namespace ARDOUR
{ {
class ExportStatus { class LIBARDOUR_API ExportStatus {
public: public:
ExportStatus (); ExportStatus ();
void init (); void init ();

View file

@ -25,6 +25,7 @@
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR namespace ARDOUR
@ -34,7 +35,7 @@ class ExportStatus;
class ExportChannel; class ExportChannel;
class ExportTempFile; class ExportTempFile;
class ExportTimespan class LIBARDOUR_API ExportTimespan
{ {
private: private:
typedef boost::shared_ptr<ExportStatus> ExportStatusPtr; typedef boost::shared_ptr<ExportStatus> ExportStatusPtr;

View file

@ -28,7 +28,7 @@
namespace ARDOUR { namespace ARDOUR {
class MissingSource : public std::exception class LIBARDOUR_API MissingSource : public std::exception
{ {
public: public:
MissingSource (const std::string& p, DataType t) throw () MissingSource (const std::string& p, DataType t) throw ()
@ -42,7 +42,7 @@ class MissingSource : public std::exception
}; };
/** A source associated with a file on disk somewhere */ /** A source associated with a file on disk somewhere */
class FileSource : virtual public Source { class LIBARDOUR_API FileSource : virtual public Source {
public: public:
virtual ~FileSource () {} virtual ~FileSource () {}

View file

@ -21,17 +21,19 @@
#ifndef __ardour_filename_extensions_h__ #ifndef __ardour_filename_extensions_h__
#define __ardour_filename_extensions_h__ #define __ardour_filename_extensions_h__
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
extern const char* const template_suffix; LIBARDOUR_API extern const char* const template_suffix;
extern const char* const statefile_suffix; LIBARDOUR_API extern const char* const statefile_suffix;
extern const char* const pending_suffix; LIBARDOUR_API extern const char* const pending_suffix;
extern const char* const peakfile_suffix; LIBARDOUR_API extern const char* const peakfile_suffix;
extern const char* const backup_suffix; LIBARDOUR_API extern const char* const backup_suffix;
extern const char* const temp_suffix; LIBARDOUR_API extern const char* const temp_suffix;
extern const char* const history_suffix; LIBARDOUR_API extern const char* const history_suffix;
extern const char* const export_preset_suffix; LIBARDOUR_API extern const char* const export_preset_suffix;
extern const char* const export_format_suffix; LIBARDOUR_API extern const char* const export_format_suffix;
} }

View file

@ -22,6 +22,8 @@
#include "pbd/search_path.h" #include "pbd/search_path.h"
#include "ardour/libardour_visibility.h"
namespace ARDOUR { namespace ARDOUR {
/** /**
@ -29,26 +31,26 @@ namespace ARDOUR {
* configuration files. * configuration files.
* @post user_config_directory() exists * @post user_config_directory() exists
*/ */
std::string user_config_directory (); LIBARDOUR_API std::string user_config_directory ();
/** /**
* @return the path to the directory that contains the system wide ardour * @return the path to the directory that contains the system wide ardour
* modules. * modules.
*/ */
std::string ardour_dll_directory (); LIBARDOUR_API std::string ardour_dll_directory ();
/** /**
* @return the search path to be used when looking for per-system * @return the search path to be used when looking for per-system
* configuration files. This may include user configuration files. * configuration files. This may include user configuration files.
*/ */
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 * @return the search path to be used when looking for data files
* that could be shared by systems (h/w and configuration independent * that could be shared by systems (h/w and configuration independent
* files, such as icons, XML files, etc) * files, such as icons, XML files, etc)
*/ */
PBD::SearchPath ardour_data_search_path (); LIBARDOUR_API PBD::SearchPath ardour_data_search_path ();
} // namespace ARDOUR } // namespace ARDOUR

View file

@ -23,6 +23,7 @@
#include <vector> #include <vector>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR { namespace ARDOUR {
@ -31,7 +32,7 @@ class Region;
class Session; class Session;
class Progress; class Progress;
class Filter { class LIBARDOUR_API Filter {
public: public:
virtual ~Filter() {} virtual ~Filter() {}

View file

@ -33,6 +33,7 @@
#include "pbd/semutils.h" #include "pbd/semutils.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/audio_backend.h" #include "ardour/audio_backend.h"
#include "ardour/session_handle.h" #include "ardour/session_handle.h"
@ -52,7 +53,7 @@ typedef boost::shared_ptr<GraphNode> node_ptr_t;
typedef std::list< node_ptr_t > node_list_t; typedef std::list< node_ptr_t > node_list_t;
typedef std::set< node_ptr_t > node_set_t; typedef std::set< node_ptr_t > node_set_t;
class Graph : public SessionHandleRef class LIBARDOUR_API Graph : public SessionHandleRef
{ {
public: public:
Graph (Session & session); Graph (Session & session);

View file

@ -38,7 +38,7 @@ typedef std::set< node_ptr_t > node_set_t;
typedef std::list< node_ptr_t > node_list_t; typedef std::list< node_ptr_t > node_list_t;
/** A node on our processing graph, ie a Route */ /** A node on our processing graph, ie a Route */
class GraphNode class LIBARDOUR_API GraphNode
{ {
public: public:
GraphNode( boost::shared_ptr<Graph> Graph ); GraphNode( boost::shared_ptr<Graph> Graph );

View file

@ -20,8 +20,9 @@
#ifndef __IEC1PPMDSP_H #ifndef __IEC1PPMDSP_H
#define __IEC1PPMDSP_H #define __IEC1PPMDSP_H
#include "ardour/libardour_visibility.h"
class Iec1ppmdsp class LIBARDOUR_API Iec1ppmdsp
{ {
public: public:

View file

@ -20,8 +20,9 @@
#ifndef __IEC2PPMDSP_H #ifndef __IEC2PPMDSP_H
#define __IEC2PPMDSP_H #define __IEC2PPMDSP_H
#include "ardour/libardour_visibility.h"
class Iec2ppmdsp class LIBARDOUR_API Iec2ppmdsp
{ {
public: public:

View file

@ -26,11 +26,12 @@
#include <stdint.h> #include <stdint.h>
#include "ardour/interthread_info.h" #include "ardour/interthread_info.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR { namespace ARDOUR {
class ImportStatus : public InterThreadInfo { class LIBARDOUR_API ImportStatus : public InterThreadInfo {
public: public:
std::string doing_what; std::string doing_what;

View file

@ -21,11 +21,12 @@
#define __ardour_importable_source_h__ #define __ardour_importable_source_h__
#include "pbd/failed_constructor.h" #include "pbd/failed_constructor.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR { namespace ARDOUR {
class ImportableSource { class LIBARDOUR_API ImportableSource {
public: public:
ImportableSource () {} ImportableSource () {}
virtual ~ImportableSource() {} virtual ~ImportableSource() {}

View file

@ -28,19 +28,22 @@
#include "evoral/Parameter.hpp" #include "evoral/Parameter.hpp"
#include "midi++/libmidi_visibility.h"
#include "ardour/libardour_visibility.h"
namespace MIDI { namespace MIDI {
namespace Name { namespace Name {
class ChannelNameSet; class ChannelNameSet;
class Patch; class Patch;
typedef std::list<boost::shared_ptr<Patch> > PatchNameList; typedef std::list<boost::shared_ptr<Patch> > PatchNameList;
} }
} }
namespace ARDOUR { namespace ARDOUR {
class Processor; class Processor;
class InstrumentInfo { class LIBARDOUR_API InstrumentInfo {
public: public:
InstrumentInfo(); InstrumentInfo();
~InstrumentInfo (); ~InstrumentInfo ();

View file

@ -29,7 +29,7 @@ namespace ARDOUR {
class InternalSend; class InternalSend;
class InternalReturn : public Return class LIBARDOUR_API InternalReturn : public Return
{ {
public: public:
InternalReturn (Session&); InternalReturn (Session&);

View file

@ -25,7 +25,7 @@
namespace ARDOUR { namespace ARDOUR {
class InternalSend : public Send class LIBARDOUR_API InternalSend : public Send
{ {
public: public:
InternalSend (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster>, boost::shared_ptr<Route> send_to, Delivery::Role role); InternalSend (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster>, boost::shared_ptr<Route> send_to, Delivery::Role role);

View file

@ -20,6 +20,7 @@
#include <math.h> #include <math.h>
#include <samplerate.h> #include <samplerate.h>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#ifndef __interpolation_h__ #ifndef __interpolation_h__
@ -27,7 +28,7 @@
namespace ARDOUR { namespace ARDOUR {
class Interpolation { class LIBARDOUR_API Interpolation {
protected: protected:
double _speed; double _speed;
double _target_speed; double _target_speed;
@ -57,12 +58,12 @@ public:
} }
}; };
class LinearInterpolation : public Interpolation { class LIBARDOUR_API LinearInterpolation : public Interpolation {
public: public:
framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output); framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output);
}; };
class CubicInterpolation : public Interpolation { class LIBARDOUR_API CubicInterpolation : public Interpolation {
public: public:
framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output); framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output);
}; };

View file

@ -22,6 +22,7 @@
#include <pthread.h> #include <pthread.h>
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/process_thread.h" #include "ardour/process_thread.h"

View file

@ -40,6 +40,7 @@
#include "ardour/latent.h" #include "ardour/latent.h"
#include "ardour/port_set.h" #include "ardour/port_set.h"
#include "ardour/session_object.h" #include "ardour/session_object.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
#include "ardour/utils.h" #include "ardour/utils.h"
#include "ardour/buffer_set.h" #include "ardour/buffer_set.h"
@ -64,7 +65,7 @@ class UserBundle;
* An IO can contain ports of varying types, making routes/inserts/etc with * An IO can contain ports of varying types, making routes/inserts/etc with
* varied combinations of types (eg MIDI and audio) possible. * varied combinations of types (eg MIDI and audio) possible.
*/ */
class IO : public SessionObject, public Latent class LIBARDOUR_API IO : public SessionObject, public Latent
{ {
public: public:
static const std::string state_node_name; static const std::string state_node_name;

View file

@ -40,7 +40,7 @@ class Route;
/** A mixer strip element (Processor) with 1 or 2 IO elements. /** A mixer strip element (Processor) with 1 or 2 IO elements.
*/ */
class IOProcessor : public Processor class LIBARDOUR_API IOProcessor : public Processor
{ {
public: public:
IOProcessor (Session&, bool with_input, bool with_output, IOProcessor (Session&, bool with_input, bool with_output,

View file

@ -20,7 +20,9 @@
#ifndef __KMETERDSP_H #ifndef __KMETERDSP_H
#define __KMETERDSP_H #define __KMETERDSP_H
class Kmeterdsp #include "ardour/libardour_visibility.h"
class LIBARDOUR_API Kmeterdsp
{ {
public: public:

View file

@ -36,7 +36,7 @@ namespace ARDOUR {
class AudioEngine; class AudioEngine;
class Session; class Session;
class LadspaPlugin : public ARDOUR::Plugin class LIBARDOUR_API LadspaPlugin : public ARDOUR::Plugin
{ {
public: public:
LadspaPlugin (void *module, ARDOUR::AudioEngine&, ARDOUR::Session&, uint32_t index, framecnt_t sample_rate); LadspaPlugin (void *module, ARDOUR::AudioEngine&, ARDOUR::Session&, uint32_t index, framecnt_t sample_rate);
@ -146,7 +146,7 @@ class LadspaPlugin : public ARDOUR::Plugin
void add_state (XMLNode *) const; void add_state (XMLNode *) const;
}; };
class LadspaPluginInfo : public PluginInfo { class LIBARDOUR_API LadspaPluginInfo : public PluginInfo {
public: public:
LadspaPluginInfo (); LadspaPluginInfo ();
~LadspaPluginInfo () { }; ~LadspaPluginInfo () { };

View file

@ -20,11 +20,12 @@
#ifndef __ardour_latent_h__ #ifndef __ardour_latent_h__
#define __ardour_latent_h__ #define __ardour_latent_h__
#include "ardour/libardour_visibility.h"
#include "ardour/types.h" #include "ardour/types.h"
namespace ARDOUR { namespace ARDOUR {
class Latent { class LIBARDOUR_API Latent {
public: public:
Latent() : _user_latency (0) {} Latent() : _user_latency (0) {}
virtual ~Latent() {} virtual ~Latent() {}

View file

@ -0,0 +1,45 @@
/*
Copyright (C) 2013 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __libardour_libardour_visibility_h__
#define __libardour_libardour_visibility_h__
#if defined(COMPILER_MSVC)
#define LIBARDOUR_DLL_IMPORT __declspec(dllimport)
#define LIBARDOUR_DLL_EXPORT __declspec(dllexport)
#define LIBARDOUR_DLL_LOCAL
#else
#define LIBARDOUR_DLL_IMPORT __attribute__ ((visibility ("default")))
#define LIBARDOUR_DLL_EXPORT __attribute__ ((visibility ("default")))
#define LIBARDOUR_DLL_LOCAL __attribute__ ((visibility ("hidden")))
#endif
#ifdef LIBARDOUR_STATIC // libardour is not a DLL
#define LIBARDOUR_API
#define LIBARDOUR_LOCAL
#else
#ifdef LIBARDOUR_DLL_EXPORTS // defined if we are building the libardour DLL (instead of using it)
#define LIBARDOUR_API LIBARDOUR_DLL_EXPORT
#else
#define LIBARDOUR_API LIBARDOUR_DLL_IMPORT
#endif
#define LIBARDOUR_LOCAL LIBARDOUR_DLL_LOCAL
#endif
#endif /* __libardour_libardour_visibility_h__ */

View file

@ -25,44 +25,46 @@
#include <pthread.h> #include <pthread.h>
#include <stdio.h> #include <stdio.h>
#include "ardour/libardour_visibility.h"
#include "ardour/vst_types.h" #include "ardour/vst_types.h"
/******************************************************************************************/ /******************************************************************************************/
/*VSTFX - an engine to manage native linux VST plugins - derived from FST for Windows VSTs*/ /*VSTFX - an engine to manage native linux VST plugins - derived from FST for Windows VSTs*/
/******************************************************************************************/ /******************************************************************************************/
extern void (*vstfx_error_callback)(const char *msg); LIBARDOUR_API extern void (*vstfx_error_callback)(const char *msg);
void vstfx_set_error_function (void (*func)(const char *)); LIBARDOUR_API void vstfx_set_error_function (void (*func)(const char *));
void vstfx_error (const char *fmt, ...); LIBARDOUR_API void vstfx_error (const char *fmt, ...);
/*API to vstfx*/ /*API to vstfx*/
extern int vstfx_launch_editor (VSTState *); LIBARDOUR_API extern int vstfx_launch_editor (VSTState *);
extern int vstfx_init (void *); LIBARDOUR_API extern int vstfx_init (void *);
extern void vstfx_exit (); LIBARDOUR_API extern void vstfx_exit ();
extern VSTHandle * vstfx_load (const char*); LIBARDOUR_API extern VSTHandle * vstfx_load (const char*);
extern int vstfx_unload (VSTHandle *); LIBARDOUR_API extern int vstfx_unload (VSTHandle *);
extern VSTState * vstfx_instantiate (VSTHandle *, audioMasterCallback, void *);
extern void vstfx_close (VSTState*);
extern int vstfx_create_editor (VSTState *); LIBARDOUR_API extern VSTState * vstfx_instantiate (VSTHandle *, audioMasterCallback, void *);
extern int vstfx_run_editor (VSTState *); LIBARDOUR_API extern void vstfx_close (VSTState*);
extern void vstfx_destroy_editor (VSTState *);
extern VSTInfo * vstfx_get_info (char *); LIBARDOUR_API extern int vstfx_create_editor (VSTState *);
extern void vstfx_free_info (VSTInfo *); LIBARDOUR_API extern int vstfx_run_editor (VSTState *);
extern void vstfx_event_loop_remove_plugin (VSTState *); LIBARDOUR_API extern void vstfx_destroy_editor (VSTState *);
extern int vstfx_call_dispatcher (VSTState *, int, int, int, void *, float);
LIBARDOUR_API extern VSTInfo * vstfx_get_info (char *);
LIBARDOUR_API extern void vstfx_free_info (VSTInfo *);
LIBARDOUR_API extern void vstfx_event_loop_remove_plugin (VSTState *);
LIBARDOUR_API extern int vstfx_call_dispatcher (VSTState *, int, int, int, void *, float);
/** Load a plugin state from a file.**/ /** Load a plugin state from a file.**/
extern int vstfx_load_state (VSTState* vstfx, char * filename); LIBARDOUR_API extern int vstfx_load_state (VSTState* vstfx, char * filename);
/** Save a plugin state to a file.**/ /** Save a plugin state to a file.**/
extern bool vstfx_save_state (VSTState* vstfx, char * filename); LIBARDOUR_API extern bool vstfx_save_state (VSTState* vstfx, char * filename);
#endif /* __vstfx_h__ */ #endif /* __vstfx_h__ */

View file

@ -38,7 +38,7 @@
namespace ARDOUR { namespace ARDOUR {
class Location : public SessionHandleRef, public PBD::StatefulDestructible class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDestructible
{ {
public: public:
enum Flags { enum Flags {
@ -131,7 +131,7 @@ class Location : public SessionHandleRef, public PBD::StatefulDestructible
void recompute_bbt_from_frames (); void recompute_bbt_from_frames ();
}; };
class Locations : public SessionHandleRef, public PBD::StatefulDestructible class LIBARDOUR_API Locations : public SessionHandleRef, public PBD::StatefulDestructible
{ {
public: public:
typedef std::list<Location *> LocationList; typedef std::list<Location *> LocationList;

View file

@ -33,14 +33,14 @@ namespace ARDOUR {
class Location; class Location;
class Session; class Session;
class LocationImportHandler : public ElementImportHandler class LIBARDOUR_API LocationImportHandler : public ElementImportHandler
{ {
public: public:
LocationImportHandler (XMLTree const & source, Session & session); LocationImportHandler (XMLTree const & source, Session & session);
std::string get_info () const; std::string get_info () const;
}; };
class LocationImporter : public ElementImporter class LIBARDOUR_API LocationImporter : public ElementImporter
{ {
public: public:
LocationImporter (XMLTree const & source, Session & session, LocationImportHandler & handler, XMLNode const & node); LocationImporter (XMLTree const & source, Session & session, LocationImportHandler & handler, XMLNode const & node);

View file

@ -25,7 +25,7 @@
namespace ARDOUR { namespace ARDOUR {
class LogCurve { class LIBARDOUR_API LogCurve {
public: public:
LogCurve (float steepness = 0.2, uint32_t len = 0) { LogCurve (float steepness = 0.2, uint32_t len = 0) {
l = len; l = len;
@ -102,7 +102,7 @@ class LogCurve {
uint32_t l; uint32_t l;
}; };
class LogCurveIn : public LogCurve class LIBARDOUR_API LogCurveIn : public LogCurve
{ {
public: public:
LogCurveIn (float steepness = 0.2, uint32_t len = 0) LogCurveIn (float steepness = 0.2, uint32_t len = 0)
@ -117,7 +117,7 @@ class LogCurveIn : public LogCurve
} }
}; };
class LogCurveOut : public LogCurve class LIBARDOUR_API LogCurveOut : public LogCurve
{ {
public: public:
LogCurveOut (float steepness = 0.2, uint32_t len = 0) LogCurveOut (float steepness = 0.2, uint32_t len = 0)

View file

@ -41,7 +41,7 @@ const void* lv2plugin_get_port_value(const char* port_symbol,
class AudioEngine; class AudioEngine;
class Session; class Session;
class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
{ {
public: public:
LV2Plugin (ARDOUR::AudioEngine& engine, LV2Plugin (ARDOUR::AudioEngine& engine,
@ -270,7 +270,7 @@ class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
}; };
class LV2PluginInfo : public PluginInfo { class LIBARDOUR_API LV2PluginInfo : public PluginInfo {
public: public:
LV2PluginInfo (const void* c_plugin); LV2PluginInfo (const void* c_plugin);
~LV2PluginInfo (); ~LV2PluginInfo ();

View file

@ -30,7 +30,7 @@ namespace ARDOUR {
class AudioEngine; class AudioEngine;
class Session; class Session;
class LXVSTPlugin : public VSTPlugin class LIBARDOUR_API LXVSTPlugin : public VSTPlugin
{ {
public: public:
LXVSTPlugin (AudioEngine &, Session &, VSTHandle *); LXVSTPlugin (AudioEngine &, Session &, VSTHandle *);
@ -40,7 +40,7 @@ class LXVSTPlugin : public VSTPlugin
std::string state_node_name () const { return "lxvst"; } std::string state_node_name () const { return "lxvst"; }
}; };
class LXVSTPluginInfo : public PluginInfo class LIBARDOUR_API LXVSTPluginInfo : public PluginInfo
{ {
public: public:
LXVSTPluginInfo (); LXVSTPluginInfo ();

Some files were not shown because too many files have changed in this diff Show more