add export visibility macros across libardour
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 14:02:11 +0000 (10:02 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 14:02:11 +0000 (10:02 -0400)
203 files changed:
libs/ardour/ardour/amp.h
libs/ardour/ardour/analyser.h
libs/ardour/ardour/ardour.h
libs/ardour/ardour/audio_backend.h
libs/ardour/ardour/audio_buffer.h
libs/ardour/ardour/audio_diskstream.h
libs/ardour/ardour/audio_library.h
libs/ardour/ardour/audio_playlist_importer.h
libs/ardour/ardour/audio_playlist_source.h
libs/ardour/ardour/audio_port.h
libs/ardour/ardour/audio_region_importer.h
libs/ardour/ardour/audio_track.h
libs/ardour/ardour/audio_track_importer.h
libs/ardour/ardour/audio_unit.h
libs/ardour/ardour/audioanalyser.h
libs/ardour/ardour/audioengine.h
libs/ardour/ardour/audiofile_tagger.h
libs/ardour/ardour/audiofilesource.h
libs/ardour/ardour/audioplaylist.h
libs/ardour/ardour/audioregion.h
libs/ardour/ardour/audiosource.h
libs/ardour/ardour/auditioner.h
libs/ardour/ardour/auto_bundle.h
libs/ardour/ardour/automatable.h
libs/ardour/ardour/automatable_sequence.h
libs/ardour/ardour/automation_control.h
libs/ardour/ardour/automation_list.h
libs/ardour/ardour/automation_watch.h
libs/ardour/ardour/beats_frames_converter.h
libs/ardour/ardour/broadcast_info.h
libs/ardour/ardour/buffer.h
libs/ardour/ardour/buffer_manager.h
libs/ardour/ardour/buffer_set.h
libs/ardour/ardour/bundle.h
libs/ardour/ardour/butler.h
libs/ardour/ardour/caimportable.h
libs/ardour/ardour/capturing_processor.h
libs/ardour/ardour/chan_count.h
libs/ardour/ardour/chan_mapping.h
libs/ardour/ardour/click.h
libs/ardour/ardour/comparable_shared_ptr.h
libs/ardour/ardour/configuration.h
libs/ardour/ardour/configuration_variable.h
libs/ardour/ardour/control_protocol_manager.h
libs/ardour/ardour/coreaudiosource.h
libs/ardour/ardour/cycle_timer.h
libs/ardour/ardour/data_type.h
libs/ardour/ardour/delivery.h
libs/ardour/ardour/diskstream.h
libs/ardour/ardour/element_import_handler.h
libs/ardour/ardour/element_importer.h
libs/ardour/ardour/event_type_map.h
libs/ardour/ardour/export_channel.h
libs/ardour/ardour/export_channel_configuration.h
libs/ardour/ardour/export_failed.h
libs/ardour/ardour/export_filename.h
libs/ardour/ardour/export_format_base.h
libs/ardour/ardour/export_format_compatibility.h
libs/ardour/ardour/export_format_manager.h
libs/ardour/ardour/export_format_specification.h
libs/ardour/ardour/export_formats.h
libs/ardour/ardour/export_graph_builder.h
libs/ardour/ardour/export_handler.h
libs/ardour/ardour/export_pointers.h
libs/ardour/ardour/export_preset.h
libs/ardour/ardour/export_profile_manager.h
libs/ardour/ardour/export_status.h
libs/ardour/ardour/export_timespan.h
libs/ardour/ardour/file_source.h
libs/ardour/ardour/filter.h
libs/ardour/ardour/graph.h
libs/ardour/ardour/graphnode.h
libs/ardour/ardour/iec1ppmdsp.h
libs/ardour/ardour/iec2ppmdsp.h
libs/ardour/ardour/import_status.h
libs/ardour/ardour/importable_source.h
libs/ardour/ardour/instrument_info.h
libs/ardour/ardour/internal_return.h
libs/ardour/ardour/internal_send.h
libs/ardour/ardour/interpolation.h
libs/ardour/ardour/interthread_info.h
libs/ardour/ardour/io.h
libs/ardour/ardour/io_processor.h
libs/ardour/ardour/kmeterdsp.h
libs/ardour/ardour/ladspa_plugin.h
libs/ardour/ardour/latent.h
libs/ardour/ardour/libardour_visibility.h
libs/ardour/ardour/location.h
libs/ardour/ardour/location_importer.h
libs/ardour/ardour/logcurve.h
libs/ardour/ardour/lv2_plugin.h
libs/ardour/ardour/lxvst_plugin.h
libs/ardour/ardour/meter.h
libs/ardour/ardour/midi_automation_list_binder.h
libs/ardour/ardour/midi_buffer.h
libs/ardour/ardour/midi_diskstream.h
libs/ardour/ardour/midi_model.h
libs/ardour/ardour/midi_operator.h
libs/ardour/ardour/midi_patch_manager.h
libs/ardour/ardour/midi_playlist.h
libs/ardour/ardour/midi_playlist_source.h
libs/ardour/ardour/midi_port.h
libs/ardour/ardour/midi_region.h
libs/ardour/ardour/midi_ring_buffer.h
libs/ardour/ardour/midi_source.h
libs/ardour/ardour/midi_state_tracker.h
libs/ardour/ardour/midi_stretch.h
libs/ardour/ardour/midi_track.h
libs/ardour/ardour/midi_ui.h
libs/ardour/ardour/midiport_manager.h
libs/ardour/ardour/mix.h
libs/ardour/ardour/monitor_processor.h
libs/ardour/ardour/movable.h
libs/ardour/ardour/mtdm.h
libs/ardour/ardour/mute_master.h
libs/ardour/ardour/onset_detector.h
libs/ardour/ardour/pan_controllable.h
libs/ardour/ardour/pannable.h
libs/ardour/ardour/panner.h
libs/ardour/ardour/panner_manager.h
libs/ardour/ardour/panner_shell.h
libs/ardour/ardour/peak.h
libs/ardour/ardour/pi_controller.h
libs/ardour/ardour/pitch.h
libs/ardour/ardour/playlist.h
libs/ardour/ardour/playlist_factory.h
libs/ardour/ardour/playlist_source.h
libs/ardour/ardour/plugin.h
libs/ardour/ardour/plugin_insert.h
libs/ardour/ardour/plugin_manager.h
libs/ardour/ardour/port.h
libs/ardour/ardour/port_engine.h
libs/ardour/ardour/port_insert.h
libs/ardour/ardour/port_manager.h
libs/ardour/ardour/port_set.h
libs/ardour/ardour/process_thread.h
libs/ardour/ardour/processor.h
libs/ardour/ardour/profile.h
libs/ardour/ardour/progress.h
libs/ardour/ardour/proxy_controllable.h
libs/ardour/ardour/public_diskstream.h
libs/ardour/ardour/quantize.h
libs/ardour/ardour/rb_effect.h
libs/ardour/ardour/rc_configuration.h
libs/ardour/ardour/readable.h
libs/ardour/ardour/region.h
libs/ardour/ardour/region_factory.h
libs/ardour/ardour/region_sorters.h
libs/ardour/ardour/resampled_source.h
libs/ardour/ardour/return.h
libs/ardour/ardour/reverse.h
libs/ardour/ardour/route.h
libs/ardour/ardour/route_graph.h
libs/ardour/ardour/route_group.h
libs/ardour/ardour/route_group_member.h
libs/ardour/ardour/runtime_functions.h
libs/ardour/ardour/send.h
libs/ardour/ardour/session.h
libs/ardour/ardour/session_configuration.h
libs/ardour/ardour/session_directory.h
libs/ardour/ardour/session_event.h
libs/ardour/ardour/session_handle.h
libs/ardour/ardour/session_metadata.h
libs/ardour/ardour/session_object.h
libs/ardour/ardour/session_playlists.h
libs/ardour/ardour/silentfilesource.h
libs/ardour/ardour/slave.h
libs/ardour/ardour/smf_source.h
libs/ardour/ardour/sndfileimportable.h
libs/ardour/ardour/sndfilesource.h
libs/ardour/ardour/soundseq.h
libs/ardour/ardour/source.h
libs/ardour/ardour/source_factory.h
libs/ardour/ardour/speaker.h
libs/ardour/ardour/speakers.h
libs/ardour/ardour/spline.h
libs/ardour/ardour/stretch.h
libs/ardour/ardour/strip_silence.h
libs/ardour/ardour/tape_file_matcher.h
libs/ardour/ardour/tempo.h
libs/ardour/ardour/tempo_map_importer.h
libs/ardour/ardour/thread_buffers.h
libs/ardour/ardour/ticker.h
libs/ardour/ardour/track.h
libs/ardour/ardour/transient_detector.h
libs/ardour/ardour/trimmable.h
libs/ardour/ardour/unknown_processor.h
libs/ardour/ardour/uri_map.h
libs/ardour/ardour/user_bundle.h
libs/ardour/ardour/utils.h
libs/ardour/ardour/vst_plugin.h
libs/ardour/ardour/vst_types.h
libs/ardour/ardour/vumeterdsp.h
libs/ardour/ardour/windows_vst_plugin.h
libs/ardour/ardour/worker.h
libs/ardour/cycle_timer.cc
libs/ardour/element_import_handler.cc
libs/ardour/export_filename.cc
libs/ardour/route_group_member.cc
libs/pbd/pbd/fastlog.h
libs/pbd/pbd/floating.h
libs/pbd/pbd/memento_command.h
libs/pbd/pbd/stateful_diff_command.h

index e21cf62d625f3dc9e035c2f577b29c03d591abdd..f6a15666e9deab4b13cb34afca64318f73b1937f 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef __ardour_amp_h__
 #define __ardour_amp_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/chan_count.h"
 #include "ardour/processor.h"
@@ -32,7 +33,7 @@ class IO;
 /** Applies a declick operation to all audio inputs, passing the same number of
  * audio outputs, and passing through any other types unchanged.
  */
-class Amp : public Processor {
+class LIBARDOUR_API Amp : public Processor {
 public:
        Amp(Session& s);
 
index 51adea67b913a2c93c7dd075865769dd7db125e0..cef71186cc4d12c02ece7f84bd26508e6eb6c069 100644 (file)
 #include <glibmm/threads.h>
 #include <boost/shared_ptr.hpp>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 class AudioFileSource;
 class Source;
 class TransientDetector;
 
-class Analyser {
+class LIBARDOUR_API Analyser {
 
   public:
        Analyser();
index f65725d209fbe7f9d49e1340b563a074bff8969d..fa525ed2d82e2b26285dec059baf692ac29dfc2d 100644 (file)
@@ -34,6 +34,7 @@
 #include "pbd/locale_guard.h"
 #include "pbd/stateful.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/libardour_visibility.h"
 
index cbe0bfce509d8a2891ee80794f0f1093a98ac814..175fc5bbf3477d2f9760861747efc0b213f3f096 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <boost/function.hpp>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/audioengine.h"
 #include "ardour/port_engine.h"
@@ -42,7 +43,7 @@
 
 namespace ARDOUR {
 
-class AudioBackend : public PortEngine {
+class LIBARDOUR_API AudioBackend : public PortEngine {
   public:
 
     AudioBackend (AudioEngine& e) : PortEngine (e), engine (e) {}
@@ -461,7 +462,7 @@ class AudioBackend : public PortEngine {
     AudioEngine&          engine;
 };
 
-struct AudioBackendInfo {
+struct LIBARDOUR_API AudioBackendInfo {
     const char* name;
 
     /** Using arg1 and arg2, initialize this audiobackend.
index 42aba607f94b42d7029747fa61bcd43be08cae58..58157a791998501d6c4e24d71187d58ebb118abd 100644 (file)
@@ -27,7 +27,7 @@
 namespace ARDOUR {
 
 /** Buffer containing audio data. */
-class AudioBuffer : public Buffer
+class LIBARDOUR_API AudioBuffer : public Buffer
 {
 public:
        AudioBuffer(size_t capacity);
index 5a856e9b364615b4b6a76ce041c682d1258f49de..cb0b5a129f9fb5fd980605b594bef91df687bd1c 100644 (file)
@@ -42,7 +42,7 @@
 #include "ardour/port.h"
 #include "ardour/interpolation.h"
 
-struct tm;
+struct LIBARDOUR_API tm;
 
 namespace ARDOUR {
 
@@ -53,7 +53,7 @@ class AudioPlaylist;
 class AudioFileSource;
 class IO;
 
-class AudioDiskstream : public Diskstream
+class LIBARDOUR_API AudioDiskstream : public Diskstream
 {
   public:
        AudioDiskstream (Session &, const std::string& name, Diskstream::Flag f = Recordable);
index 2009ec39a7a5d104987c6b958b157c6231ef911a..cd9b38e9dc7202eb88bacb01e54bb4a4d95defbd 100644 (file)
 #include <map>
 #include <vector>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-class AudioLibrary
+class LIBARDOUR_API AudioLibrary
 {
   public:
        AudioLibrary ();
index 011bfe39b82d76392e84731bba04640466077624..a6d68b9c731032024ab2909d0b56288782a62ade 100644 (file)
@@ -38,7 +38,7 @@ class AudioRegionImporter;
 class AudioPlaylistImporter;
 class Session;
 
-class AudioPlaylistImportHandler : public ElementImportHandler
+class LIBARDOUR_API AudioPlaylistImportHandler : public ElementImportHandler
 {
   public:
        typedef boost::shared_ptr<AudioPlaylistImporter> PlaylistPtr;
@@ -57,7 +57,7 @@ class AudioPlaylistImportHandler : public ElementImportHandler
        AudioRegionImportHandler & region_handler;
 };
 
-class UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
+class LIBARDOUR_API UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
 {
   public:
        UnusedAudioPlaylistImportHandler (XMLTree const & source, Session & session, AudioRegionImportHandler & region_handler) :
@@ -65,7 +65,7 @@ class UnusedAudioPlaylistImportHandler : public AudioPlaylistImportHandler
        std::string get_info () const;
 };
 
-class AudioPlaylistImporter : public ElementImporter
+class LIBARDOUR_API AudioPlaylistImporter : public ElementImporter
 {
   public:
        AudioPlaylistImporter (XMLTree const & source, Session & session, AudioPlaylistImportHandler & handler, XMLNode const & node);
index c2e1e87f7583ce00febc203718c591271fb5e83f..6a586fc30df35be835d5796d1591bc51c1adc4a5 100644 (file)
@@ -32,7 +32,7 @@ namespace ARDOUR {
 
 class AudioPlaylist;
 
-class AudioPlaylistSource : public PlaylistSource, public AudioSource  {
+class LIBARDOUR_API AudioPlaylistSource : public PlaylistSource, public AudioSource  {
 public:
        virtual ~AudioPlaylistSource ();
 
index f87b134e9e4644019a319803be75c7bf56072411..ca5f183a1317174968b90a196c40b58f2a778bd5 100644 (file)
@@ -26,7 +26,7 @@
 
 namespace ARDOUR {
 
-class AudioPort : public Port
+class LIBARDOUR_API AudioPort : public Port
 {
    public:
        ~AudioPort ();
index b3bcb05668e3ea2fcad3b7c2632f9a70247a84fb..d1a965a5eebdbd28eb5c91a6291936a6df52793e 100644 (file)
@@ -39,7 +39,7 @@ class Region;
 class Session;
 class Source;
 
-class AudioRegionImportHandler : public ElementImportHandler
+class LIBARDOUR_API AudioRegionImportHandler : public ElementImportHandler
 {
   public:
        // Inerface implementation
@@ -69,7 +69,7 @@ class AudioRegionImportHandler : public ElementImportHandler
        IdMap id_map;
 };
 
-class AudioRegionImporter : public ElementImporter
+class LIBARDOUR_API AudioRegionImporter : public ElementImporter
 {
   public:
        AudioRegionImporter (XMLTree const & source, Session & session, AudioRegionImportHandler & handler, XMLNode const & node);
index ada58e8ebe6c9b3834140d20d48056855063140e..1ecec88f8986f3d8431f567978bbfb96ddff45a9 100644 (file)
@@ -31,7 +31,7 @@ class AudioPlaylist;
 class RouteGroup;
 class AudioFileSource;
 
-class AudioTrack : public Track
+class LIBARDOUR_API AudioTrack : public Track
 {
   public:
        AudioTrack (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal);
index 683417de24d22f46baae6b5390fb4202100588b0..58789177e3750fb63f99a324b426e97399e45bc8 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR {
 class AudioPlaylistImportHandler;
 class AudioPlaylistImporter;
 
-class AudioTrackImportHandler : public ElementImportHandler
+class LIBARDOUR_API AudioTrackImportHandler : public ElementImportHandler
 {
   public:
        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:
        AudioTrackImporter (XMLTree const & source,
index 007390b34a378bc79d593c6a9f4bf6d32ad27aa9..07f41f55261b0d304673918e9497966e84623339 100644 (file)
 class CAComponent;
 class CAAudioUnit;
 class CAComponentDescription;
-struct AudioBufferList;
+struct LIBARDOUR_API AudioBufferList;
 
 namespace ARDOUR {
 
 class AudioEngine;
 class Session;
 
-struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
+struct LIBARDOUR_API AUParameterDescriptor : public Plugin::ParameterDescriptor {
        // additional fields to make operations more efficient
        AudioUnitParameterID id;
        AudioUnitScope scope;
@@ -58,7 +58,7 @@ struct AUParameterDescriptor : public Plugin::ParameterDescriptor {
        AudioUnitParameterUnit unit;
 };
 
-class AUPlugin : public ARDOUR::Plugin
+class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin
 {
   public:
        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;
 
-struct AUPluginCachedInfo {
+struct LIBARDOUR_API AUPluginCachedInfo {
        std::vector<std::pair<int,int> > io_configs;
 };
 
-class AUPluginInfo : public PluginInfo {
+class LIBARDOUR_API AUPluginInfo : public PluginInfo {
   public:
         AUPluginInfo (boost::shared_ptr<CAComponentDescription>);
        ~AUPluginInfo ();
index 035390e99f9014cd842caa0cd756105834eaa0e1..6a9738eb5ab202d323cf3ad83d3540b89b59ce1a 100644 (file)
@@ -26,6 +26,7 @@
 #include <fstream>
 #include <boost/utility.hpp>
 #include "vamp-sdk/Plugin.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -33,7 +34,7 @@ namespace ARDOUR {
 class Readable;
 class Session;
 
-class AudioAnalyser : public boost::noncopyable {
+class LIBARDOUR_API AudioAnalyser : public boost::noncopyable {
 
   public:
        typedef Vamp::Plugin AnalysisPlugin;
index d5dcbffe2b92fba84627ca73eb7d892216f5c271..e769b9eec1e78bfadd54cf8a9f4c4c1a24aa33c1 100644 (file)
@@ -39,6 +39,7 @@
 #include "ardour/ardour.h"
 #include "ardour/data_type.h"
 #include "ardour/session_handle.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/chan_count.h"
 #include "ardour/port_manager.h"
@@ -59,7 +60,7 @@ class ProcessThread;
 class AudioBackend;
 class AudioBackendInfo;
 
-class AudioEngine : public SessionHandlePtr, public PortManager
+class LIBARDOUR_API AudioEngine : public SessionHandlePtr, public PortManager
 {
 public:
 
index 0519e2233c70f5f1dba69b4387d61a2308907410..9b24ffade345bc44fe1e5510cfa5bb0306677faa 100644 (file)
 #include "taglib/taglib.h"
 #include "taglib/xiphcomment.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR
 {
 
 class SessionMetadata;
 
 /// Class with static functions for tagging audiofiles
-class AudiofileTagger
+class LIBARDOUR_API AudiofileTagger
 {
   public:
 
index c5fd7b3af2ab3a25ad6087a81592ec3a147d05fc..723c734a49ffd831f537db7ef819808874f58aad 100644 (file)
@@ -27,7 +27,7 @@
 
 namespace ARDOUR {
 
-struct SoundFileInfo {
+struct LIBARDOUR_API SoundFileInfo {
        float       samplerate;
        uint16_t    channels;
        int64_t     length;
@@ -35,7 +35,7 @@ struct SoundFileInfo {
        int64_t     timecode;
 };
 
-class AudioFileSource : public AudioSource, public FileSource {
+class LIBARDOUR_API AudioFileSource : public AudioSource, public FileSource {
 public:
        virtual ~AudioFileSource ();
 
index 478d4872cdfe02afdd56503e3babc7a83b6a1871..c3d10b603073beb57a40ad8824ff523bb5882e6f 100644 (file)
@@ -32,10 +32,9 @@ class Session;
 class Region;
 class AudioRegion;
 class Source;
-
 class AudioPlaylist;
 
-class AudioPlaylist : public ARDOUR::Playlist
+class LIBARDOUR_API AudioPlaylist : public ARDOUR::Playlist
 {
 public:
        AudioPlaylist (Session&, const XMLNode&, bool hidden = false);
index 83cd227bce0136d2179b217aedd4cb56b472d7b6..a6cd22895c97c852d334c79323d92443ab8c5dec 100644 (file)
@@ -40,17 +40,17 @@ class PlaylistReadTest;
 namespace ARDOUR {
 
 namespace Properties {
-       extern PBD::PropertyDescriptor<bool> envelope_active;
-       extern PBD::PropertyDescriptor<bool> default_fade_in;
-       extern PBD::PropertyDescriptor<bool> default_fade_out;
-       extern PBD::PropertyDescriptor<bool> fade_in_active;
-       extern PBD::PropertyDescriptor<bool> fade_out_active;
-       extern PBD::PropertyDescriptor<float> scale_amplitude;
-       extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_in;
-       extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_in;
-       extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_out;
-       extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_out;
-       extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > envelope;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> envelope_active;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> default_fade_in;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> default_fade_out;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> fade_in_active;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> fade_out_active;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<float> scale_amplitude;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_in;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_in;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > fade_out;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > inverse_fade_out;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > envelope;
 }
 
 class Playlist;
@@ -59,7 +59,7 @@ class Filter;
 class AudioSource;
 
 
-class AudioRegion : public Region
+class LIBARDOUR_API AudioRegion : public Region
 {
   public:
        static void make_property_quarks ();
index d5c85a6bf8068cce50a312cd6ad0ef2e4fc5e07f..910e03170d37832b5550d8e75de39f5238c52bc3 100644 (file)
@@ -38,7 +38,7 @@
 
 namespace ARDOUR {
 
-class AudioSource : virtual public Source,
+class LIBARDOUR_API AudioSource : virtual public Source,
                public ARDOUR::Readable,
                public boost::enable_shared_from_this<ARDOUR::AudioSource>
 {
index bdd04fcc66d72f02bb4df3f62d038af00a797968..0b04ab711d1bfd3c06d8e0ca7fc0dbd5f160f38a 100644 (file)
@@ -33,7 +33,7 @@ class Session;
 class AudioRegion;
 class AudioPlaylist;
 
-class Auditioner : public AudioTrack
+class LIBARDOUR_API Auditioner : public AudioTrack
 {
   public:
        Auditioner (Session&);
index d97080c0897e584d9919778e2b3c5aa960104dc5..703aa8e73d6ce702cbac9c159a674283ef5ad1ff 100644 (file)
@@ -26,7 +26,7 @@
 
 namespace ARDOUR {
 
-class AutoBundle : public Bundle {
+class LIBARDOUR_API AutoBundle : public Bundle {
 
   public:
        AutoBundle (bool i = true);
index b10b8eb2bc3152c2f4deccca1feae4fb993dc036..11fb48904c808e03115ca4cb77bc91424a39e4cc 100644 (file)
@@ -26,6 +26,7 @@
 #include <boost/shared_ptr.hpp>
 #include "pbd/signals.h"
 #include "evoral/ControlSet.hpp"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 class XMLNode;
@@ -38,7 +39,7 @@ class AutomationControl;
 /* The inherited ControlSet is virtual because AutomatableSequence inherits
  * from this AND EvoralSequence, which is also a ControlSet
  */
-class Automatable : virtual public Evoral::ControlSet
+class LIBARDOUR_API Automatable : virtual public Evoral::ControlSet
 {
 public:
        Automatable(Session&);
index 730ea33a7cf5f600e22e548ecf6180faac48968f..82a1d367e8c75e2d1d1047f690afe4334e539014 100644 (file)
@@ -27,7 +27,7 @@ namespace ARDOUR {
 
 /** Contains notes and controllers */
 template<typename T>
-class AutomatableSequence : public Automatable, public Evoral::Sequence<T> {
+class LIBARDOUR_API AutomatableSequence : public Automatable, public Evoral::Sequence<T> {
 public:
        AutomatableSequence(Session& s)
                : Evoral::ControlSet()
index 10194b3f9be6bf25175d4b1184648e9b91e468c4..aeee9dab30cdcf9be4ef88bafdd843fdf873767a 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "pbd/controllable.h"
 #include "evoral/Control.hpp"
+
+#include "ardour/libardour_visibility.h"
 #include "ardour/automation_list.h"
 
 namespace ARDOUR {
@@ -36,7 +38,7 @@ class Automatable;
 
 /** 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:
        AutomationControl(ARDOUR::Session&,
index 71eddda6dd24fe59ee5596f07a96ed5620f5bbcf..6e7b0007cd6fe78de4033e76c73a201c2b8fe75b 100644 (file)
@@ -40,7 +40,7 @@ namespace ARDOUR {
 class AutomationList;
 
 /** A SharedStatefulProperty for AutomationLists */
-class AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
+class LIBARDOUR_API AutomationListProperty : public PBD::SharedStatefulProperty<AutomationList>
 {
 public:
        AutomationListProperty (PBD::PropertyDescriptor<boost::shared_ptr<AutomationList> > d, Ptr p)
@@ -59,7 +59,7 @@ private:
        AutomationListProperty& operator= (AutomationListProperty const &);
 };
 
-class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
+class LIBARDOUR_API AutomationList : public PBD::StatefulDestructible, public Evoral::ControlList
 {
   public:
        AutomationList (Evoral::Parameter id);
index f3e343468d9df1431ea5d0a557bc2d0296c58b9b..db6474c062b1bb7e5d9bb55bd1701495fa032ae6 100644 (file)
@@ -30,7 +30,7 @@ namespace ARDOUR {
 
 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:
     static AutomationWatch& instance();
 
index e331b8411d825285c9400f157afbb7cfe39e0e0b..2e170d278a74c350ec45aaecdce04d5e5b05399d 100644 (file)
@@ -20,6 +20,7 @@
 */
 
 #include "evoral/TimeConverter.hpp"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 #ifndef __ardour_beats_frames_converter_h__
@@ -33,7 +34,7 @@ class TempoMap;
  *  from some origin (supplied to the constructor in frames), and converts
  *  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:
        BeatsFramesConverter (TempoMap& tempo_map, framepos_t origin)
                : Evoral::TimeConverter<double, framepos_t> (origin)
index 0e87d6e6dfeef075a4228ec6e835a0f1e5fc9f56..97f86dd13349c48a477330d3557f2697d5772620 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <string>
 
+#include "ardour/libardour_visibility.h"
 #include "audiographer/broadcast_info.h"
 
 namespace ARDOUR
@@ -30,7 +31,7 @@ namespace ARDOUR
 
 class Session;
 
-class BroadcastInfo : public AudioGrapher::BroadcastInfo
+class LIBARDOUR_API BroadcastInfo : public AudioGrapher::BroadcastInfo
 {
   public:
        BroadcastInfo ();
index cbb92e7c4ab988b5f8ba5d2c5825cac36d0b99b3..479d739be085b4905a5235bc5cf6e4da096a32a4 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <boost/utility.hpp>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/data_type.h"
 
@@ -38,7 +39,7 @@ namespace ARDOUR {
  *
  * To actually read/write buffer contents, use the appropriate derived class.
  */
-class Buffer : public boost::noncopyable
+class LIBARDOUR_API Buffer : public boost::noncopyable
 {
 public:
        virtual ~Buffer() {}
index fccd981fba4c16a4c40dfb6ab709a0f7e861df6d..f5a3935ead6dffe18392f35b54dd3f5a1af618c0 100644 (file)
@@ -32,7 +32,7 @@ namespace ARDOUR {
 
 class ThreadBuffers;
 
-class BufferManager
+class LIBARDOUR_API BufferManager
 {
 public:
        static void init (uint32_t);
index 26d47682af6e69a511e6277445948c8f24e18147..f04e380ed3adf4975c4cb08f471d5df7ffb8d767 100644 (file)
 #include <vector>
 #include "ardour/chan_count.h"
 #include "ardour/data_type.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 #if defined VST_SUPPORT || defined LXVST_SUPPORT
 #include "evoral/MIDIEvent.hpp"
-struct _VstEvents;
+struct LIBARDOUR_API _VstEvents;
 typedef struct _VstEvents VstEvents;
-struct _VstMidiEvent;
+struct LIBARDOUR_API _VstMidiEvent;
 typedef struct _VstMidiEvent VstMidiEvent;
 #endif
 
@@ -61,7 +62,7 @@ class PortSet;
  * others the form of their output (eg what they did to the BufferSet).
  * Setting the use counts is realtime safe.
  */
-class BufferSet
+class LIBARDOUR_API BufferSet
 {
 public:
        BufferSet();
index 02845481b61a4c67a5282cfffbfa8290281368e7..ef2247f12b84338e609fa594f44e605853fac933 100644 (file)
@@ -40,7 +40,7 @@ class AudioEngine;
  *  `Channel' is a rather overloaded term but I can't think of a better
  *  one right now.
  */
-class Bundle : public PBD::ScopedConnectionList
+class LIBARDOUR_API Bundle : public PBD::ScopedConnectionList
 {
   public:
 
@@ -149,7 +149,7 @@ class Bundle : public PBD::ScopedConnectionList
        Change _pending_change;
 };
 
-class BundleChannel
+class LIBARDOUR_API BundleChannel
 {
 public:
        BundleChannel () : channel (-1) {}
index cdd48c3e3a2c655a89718b5320e65ff675eeb8ab..21af5fb69158a217354b9fd4307a8db93b277010 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "pbd/ringbuffer.h"
 #include "pbd/pool.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/session_handle.h"
 
@@ -36,7 +37,7 @@ namespace ARDOUR {
  *  are empty they are deleted.
  */
 
-class Butler : public SessionHandleRef
+class LIBARDOUR_API Butler : public SessionHandleRef
 {
   public:
        Butler (Session& session);
index 1ed8676ee63fd5e4473472d9beda459e11d04496..211329b8c649921615c64759f8b417118f6b5f71 100644 (file)
@@ -21,6 +21,7 @@
 #define __ardour_ca_importable_source_h__
 
 #include "pbd/failed_constructor.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/importable_source.h"
 
@@ -28,7 +29,7 @@
 
 namespace ARDOUR {
 
-class CAImportableSource : public ImportableSource {
+class LIBARDOUR_API CAImportableSource : public ImportableSource {
     public:
        CAImportableSource (const std::string& path);
        virtual ~CAImportableSource();
index 5b9ea515577104ce84a552b1762bc74b53bb0c2d..9a91e6d02fba0e8f7de67bde7b2e5bc2d6050801 100644 (file)
@@ -24,7 +24,7 @@
 
 namespace ARDOUR {
 
-class CapturingProcessor : public Processor
+class LIBARDOUR_API CapturingProcessor : public Processor
 {
   public:
        CapturingProcessor (Session & session);
index c4f3caef6b3fbeb256ebc79dd3211bbda28b4617..11fb6fea9dd32a6f35b34bc3d9ec6824ee9d3f08 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR {
  * Operators are defined so this may safely be used as if it were a simple
  * (single-typed) integer count of channels.
  */
-class ChanCount {
+class LIBARDOUR_API ChanCount {
 public:
        ChanCount(const XMLNode& node);
        ChanCount() { reset(); }
index 5b63844f66903efdef578ae1703cb7a9e25ed510..ebb7be402a2801d9bebe6259e160c8187df9155b 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR {
 /** A mapping from one set of channels to another
  * (e.g. how to 'connect' two BufferSets).
  */
-class ChanMapping {
+class LIBARDOUR_API ChanMapping {
 public:
        ChanMapping() {}
        ChanMapping(ARDOUR::ChanCount identity);
index 1047540a74c230be1e8f1b160a30d97737034e03..7fc6d21f7396d19926efc9a096cafbd87484cee1 100644 (file)
 #include <list>
 
 #include "pbd/pool.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/io.h"
 
 namespace ARDOUR {
 
-class Click {
+class LIBARDOUR_API Click {
 public:
        framepos_t start;
        framecnt_t duration;
@@ -49,7 +50,7 @@ private:
        static Pool pool;
 };
 
-class ClickIO : public IO
+class LIBARDOUR_API ClickIO : public IO
 {
 public:
        ClickIO (Session& s, const std::string& name) : IO (s, name, IO::Output) {}
index 5ff19af419f0ec82f29164096f445add4f7c7f57..0aaacd665976f14cfb4e3d26daf528e5b3a52a7e 100644 (file)
 #ifndef __ardour_comparable_shared_ptr_h__
 #define __ardour_comparable_shared_ptr_h__
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 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:
index 14a43e160c947c0f694a9c3ccd3b7c74c1ba4ad6..f8e512e458df1474189cbdc597427332d57b45e9 100644 (file)
@@ -29,7 +29,7 @@ class XMLNode;
 
 namespace ARDOUR {
 
-class Configuration : public PBD::Stateful
+class LIBARDOUR_API Configuration : public PBD::Stateful
 {
   public:
        Configuration();
index a7fe8def48169c17c508ca714ffc135a1ea9bfb9..a1262649294a1a314e05ce75daa475539e50d409 100644 (file)
 
 #include "pbd/xml++.h"
 #include "pbd/convert.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.h"
 
 namespace ARDOUR {
 
-class ConfigVariableBase {
+class LIBARDOUR_API ConfigVariableBase {
   public:
 
        ConfigVariableBase (std::string str) : _name (str) {}
@@ -51,7 +52,7 @@ class ConfigVariableBase {
 };
 
 template<class T>
-class ConfigVariable : public ConfigVariableBase
+class LIBARDOUR_API ConfigVariable : public ConfigVariableBase
 {
   public:
 
@@ -91,7 +92,7 @@ class ConfigVariable : public ConfigVariableBase
 
 /** Specialisation of ConfigVariable for std::string to cope with whitespace properly */
 template<>
-class ConfigVariable<std::string> : public ConfigVariableBase
+class LIBARDOUR_API ConfigVariable<std::string> : public ConfigVariableBase
 {
   public:
 
@@ -126,7 +127,7 @@ class ConfigVariable<std::string> : public ConfigVariableBase
 };
 
 template<>
-class ConfigVariable<bool> : public ConfigVariableBase
+class LIBARDOUR_API ConfigVariable<bool> : public ConfigVariableBase
 {
   public:
 
@@ -163,7 +164,7 @@ class ConfigVariable<bool> : public ConfigVariableBase
 };
 
 template<class T>
-class ConfigVariableWithMutation : public ConfigVariable<T>
+class LIBARDOUR_API ConfigVariableWithMutation : public ConfigVariable<T>
 {
   public:
        ConfigVariableWithMutation (std::string name, T val, T (*m)(T))
@@ -192,7 +193,7 @@ class ConfigVariableWithMutation : public ConfigVariable<T>
 };
 
 template<>
-class ConfigVariableWithMutation<std::string> : public ConfigVariable<std::string>
+class LIBARDOUR_API ConfigVariableWithMutation<std::string> : public ConfigVariable<std::string>
 {
   public:
        ConfigVariableWithMutation (std::string name, std::string val, std::string (*m)(std::string))
index 519c762eee906c34c1dadf98b5d55c1f5cefbee6..98494476f914d669dd52963291bc36899ad1c749 100644 (file)
@@ -35,7 +35,7 @@ class ControlProtocol;
 class ControlProtocolDescriptor;
 class Session;
 
-class ControlProtocolInfo {
+class LIBARDOUR_API ControlProtocolInfo {
 public:
     ControlProtocolDescriptor* descriptor;
     ControlProtocol* protocol;
@@ -52,7 +52,7 @@ public:
     ~ControlProtocolInfo() { delete state; }
 };
 
-class ControlProtocolManager : public PBD::Stateful, public ARDOUR::SessionHandlePtr
+class LIBARDOUR_API ControlProtocolManager : public PBD::Stateful, public ARDOUR::SessionHandlePtr
 {
   public:
        ~ControlProtocolManager ();
index 820fa0b9d84c61e63ffd6ff9d69395552112f6cf..84ad4348093ea3d0a2f05fa37a5825171ad59e99 100644 (file)
@@ -28,7 +28,7 @@ using namespace std;
 
 namespace ARDOUR {
 
-class CoreAudioSource : public AudioFileSource {
+class LIBARDOUR_API CoreAudioSource : public AudioFileSource {
   public:
        CoreAudioSource (ARDOUR::Session&, const XMLNode&);
        CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag);
index 35cc2a4c735238a59c043f1c68a9bc6b881b3e96..0335375c8aeed7ff878c2e477aca56c6df217913 100644 (file)
 #include <iostream>
 #include <cstdlib>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/cycles.h"
 #include "ardour/debug.h"
 
 float get_mhz ();
 
-class CycleTimer {
+class LIBARDOUR_API CycleTimer {
   private:
        static float cycles_per_usec;
 #ifndef NDEBUG
@@ -61,7 +62,7 @@ class CycleTimer {
        }
 };
 
-class StoringTimer
+class LIBARDOUR_API StoringTimer
 {
 public:
        StoringTimer (int);
index b4129e26296f4b61a2a721f3c4ad1ee765d71d8a..2a4514a5cf2110dd066b257937ffd2704cd4ad13 100644 (file)
@@ -24,6 +24,8 @@
 #include <stdint.h>
 #include <glib.h>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** 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
  * is deliberately 'ugly' so other code doesn't have to be.
  */
-class DataType
+class LIBARDOUR_API DataType
 {
 public:
        /** Numeric symbol for this DataType.
index 4a6d4368a6d4f52306a43a9d7452cfd60f425eda..e19eef719fca280f7e2b0d5d75306ce244eee7b8 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <string>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/chan_count.h"
 #include "ardour/io_processor.h"
@@ -34,7 +35,7 @@ class PannerShell;
 class Panner;
 class Pannable;
 
-class Delivery : public IOProcessor
+class LIBARDOUR_API Delivery : public IOProcessor
 {
 public:
        enum Role {
index 7a4bccbb46b416989a8ab479b5b6ec1f275208fe..5bd18663b82878e352af993454fe5005ee78ecac 100644 (file)
@@ -34,6 +34,7 @@
 #include "ardour/ardour.h"
 #include "ardour/chan_count.h"
 #include "ardour/session_object.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.h"
 #include "ardour/public_diskstream.h"
@@ -54,7 +55,7 @@ class BufferSet;
 /** Parent class for classes which can stream data to and from disk.
  *  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:
        enum Flag {
index be2e3fafb0effdf68be74197e2c3696054b373a3..167bc1c7b19bcd2751e7e93ee86d5b0f03b4467d 100644 (file)
 
 #include <boost/shared_ptr.hpp>
 
-class XMLTree;
+#include "ardour/libardour_visibility.h"
+#include "pbd/libpbd_visibility.h"
+
+class LIBPBD_API XMLTree;
 
 namespace ARDOUR {
 
@@ -35,7 +38,7 @@ class Session;
 class ElementImporter;
 
 /// Virtual interface class for element import handlers
-class ElementImportHandler
+class LIBARDOUR_API ElementImportHandler
 {
   public:
        typedef boost::shared_ptr<ElementImporter> ElementPtr;
index 8c25fd380d8f0654d3abc547b75ea2cf6eb02e88..b6d6ff71669aeaeb7edebcb3a11893d6d196ca7d 100644 (file)
@@ -25,6 +25,7 @@
 #include <utility>
 
 #include "pbd/signals.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 class XMLTree;
@@ -34,7 +35,7 @@ class Session;
 class ImportStatus;
 
 /// Virtual interface class for element importers
-class ElementImporter
+class LIBARDOUR_API ElementImporter
 {
   public:
 
index 02852e9711f627e22d97f7f9742b284af9cbf79d..fbfd9ec73c5be8cc192ec0f35c6e4e61462d84b0 100644 (file)
 #include "evoral/TypeMap.hpp"
 #include "evoral/ControlList.hpp"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** This is the interface Ardour provides to Evoral about what
  * parameter and event types/ranges/names etc. to use.
  */
-class EventTypeMap : public Evoral::TypeMap {
+class LIBARDOUR_API EventTypeMap : public Evoral::TypeMap {
 public:
        bool     type_is_midi(uint32_t type) const;
        uint8_t  parameter_midi_type(const Evoral::Parameter& param) const;
index f3244095a3125cdb55b0aaee78bb54ee5d6aada1..894406874e40ec8b1e249be71c4e7ba80ba26718 100644 (file)
@@ -40,7 +40,7 @@ class AudioRegion;
 class CapturingProcessor;
 
 /// 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:
 
@@ -62,7 +62,7 @@ class ExportChannel : public boost::less_than_comparable<ExportChannel>
 };
 
 /// Basic export channel that reads from AudioPorts
-class PortExportChannel : public ExportChannel
+class LIBARDOUR_API PortExportChannel : public ExportChannel
 {
   public:
        typedef std::set<boost::weak_ptr<AudioPort> > PortSet;
@@ -89,7 +89,7 @@ class PortExportChannel : public ExportChannel
 
 
 /// Handles RegionExportChannels and does actual reading from region
-class RegionExportChannelFactory
+class LIBARDOUR_API RegionExportChannelFactory
 {
   public:
        enum Type {
@@ -128,7 +128,7 @@ class RegionExportChannelFactory
 };
 
 /// Export channel that reads from region channel
-class RegionExportChannel : public ExportChannel
+class LIBARDOUR_API RegionExportChannel : public ExportChannel
 {
        friend class RegionExportChannelFactory;
 
@@ -152,7 +152,7 @@ class RegionExportChannel : public ExportChannel
 };
 
 /// Export channel for exporting from different positions in a route
-class RouteExportChannel : public ExportChannel
+class LIBARDOUR_API RouteExportChannel : public ExportChannel
 {
        class ProcessorRemover; // fwd declaration
 
index b625be9dc3417d4bf626d6a2a760b1d2e13936a6..4cab886c88d78811343a599ab97b4463f7c58f9a 100644 (file)
@@ -37,7 +37,7 @@ namespace ARDOUR
 
 class Session;
 
-class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration>
+class LIBARDOUR_API ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration>
 {
 
   private:
index 16687826b169689317f6fd8a69342156f7876dcb..f1fd57ab4b600735b4fa8e41bb969abac4178e7e 100644 (file)
 #include <exception>
 #include <string>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR
 {
 
-class ExportFailed : public std::exception
+class LIBARDOUR_API ExportFailed : public std::exception
 {
   public:
        ExportFailed (std::string const &);
index 994f584e8d62d3b2abf7237b97a30a0de6c299d4..7eacc11b908dad8fc56342ea060cbbea933a2865 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR
 
 class Session;
 
-class ExportFilename {
+class LIBARDOUR_API ExportFilename {
   public:
 
        enum DateFormat {
index a21c977833130313eadddd340e74ca83259d7f31..7ffb433e1af3a65c8a031e42cb7574974a836b39 100644 (file)
@@ -30,6 +30,7 @@
 #include <samplerate.h>
 
 #include "pbd/signals.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 #include "audiographer/general/sample_format_converter.h"
@@ -37,7 +38,7 @@
 namespace ARDOUR
 {
 
-class ExportFormatBase {
+class LIBARDOUR_API ExportFormatBase {
   public:
 
        enum Type {
index a220e4e4a234481a8271d71def57faa943d8787c..6f6e367ae09b6e3feefd78235616b2270b3a7b75 100644 (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
-class ExportFormatCompatibility : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
+class LIBARDOUR_API ExportFormatCompatibility : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
   private:
 
   public:
index 2b5d0ad804181e25d96f4f02edea0182951691b0..9a95111509b888b6f148bf3460dc58598ef7d41c 100644 (file)
@@ -39,7 +39,7 @@ class ExportFormatCompatibility;
 class ExportFormatSpecification;
 class AnyTime;
 
-class ExportFormatManager : public PBD::ScopedConnectionList
+class LIBARDOUR_API ExportFormatManager : public PBD::ScopedConnectionList
 {
   public:
 
index fc03eb94b073ba2f729d2ee35025745d3222ebb9..1593990d3592c43e9732b3b3fec5c21941a41397 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "pbd/uuid.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/export_format_base.h"
 
@@ -37,7 +38,7 @@ class ExportFormat;
 class ExportFormatCompatibility;
 class Session;
 
-class ExportFormatSpecification : public ExportFormatBase {
+class LIBARDOUR_API ExportFormatSpecification : public ExportFormatBase {
 
   private:
 
index 0e9a93ff9656c5a5b5009645fbace3ef3f3c7511..076bb90d3dfec027532e626b97d374b1d74bb9fe 100644 (file)
 namespace ARDOUR
 {
 
-class ExportFormatIncompatible : public failed_constructor {
+class LIBARDOUR_API ExportFormatIncompatible : public failed_constructor {
   public:
        virtual const char *what() const throw() { return "Export format constructor failed: Format incompatible with system"; }
 };
 
 /// Base class for formats
-class ExportFormat : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
+class LIBARDOUR_API ExportFormat : public ExportFormatBase, public ExportFormatBase::SelectableCompatible {
 
   public:
        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 HasSampleFormat : public PBD::ScopedConnectionList {
+class LIBARDOUR_API HasSampleFormat : public PBD::ScopedConnectionList {
   public:
 
        class SampleFormatState : public ExportFormatBase::SelectableCompatible {
@@ -156,7 +156,7 @@ class HasSampleFormat : public PBD::ScopedConnectionList {
        ExportFormatBase::SampleFormatSet & _sample_formats;
 };
 
-class ExportFormatLinear : public ExportFormat, public HasSampleFormat {
+class LIBARDOUR_API ExportFormatLinear : public ExportFormat, public HasSampleFormat {
   public:
 
        ExportFormatLinear (std::string name, FormatId format_id);
@@ -174,7 +174,7 @@ class ExportFormatLinear : public ExportFormat, public HasSampleFormat {
        SampleFormat _default_sample_format;
 };
 
-class ExportFormatOggVorbis : public ExportFormat {
+class LIBARDOUR_API ExportFormatOggVorbis : public ExportFormat {
   public:
        ExportFormatOggVorbis ();
        ~ExportFormatOggVorbis () {};
@@ -185,7 +185,7 @@ class ExportFormatOggVorbis : public ExportFormat {
        virtual bool supports_tagging () const { return true; }
 };
 
-class ExportFormatFLAC : public ExportFormat, public HasSampleFormat {
+class LIBARDOUR_API ExportFormatFLAC : public ExportFormat, public HasSampleFormat {
   public:
        ExportFormatFLAC ();
        ~ExportFormatFLAC () {};
@@ -198,7 +198,7 @@ class ExportFormatFLAC : public ExportFormat, public HasSampleFormat {
        virtual bool supports_tagging () const { return true; }
 };
 
-class ExportFormatBWF : public ExportFormat, public HasSampleFormat {
+class LIBARDOUR_API ExportFormatBWF : public ExportFormat, public HasSampleFormat {
   public:
        ExportFormatBWF ();
        ~ExportFormatBWF () {};
index 07e866475aa9513fa472b46e5290a508e56b8cf2..40960b2b389300f0a199a75dbee055202856337e 100644 (file)
@@ -48,7 +48,7 @@ namespace ARDOUR
 class ExportTimespan;
 class Session;
 
-class ExportGraphBuilder
+class LIBARDOUR_API ExportGraphBuilder
 {
   private:
        typedef ExportHandler::FileSpec FileSpec;
index d4dd5627f71e453e060766ec3963213ff201b2b9..1bc80a80e976693c7e194ca7c2fcfaf23634680e 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "ardour/export_pointers.h"
 #include "ardour/session.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace AudioGrapher {
@@ -45,7 +46,7 @@ class ExportFilename;
 class ExportGraphBuilder;
 class Location;
 
-class ExportElementFactory
+class LIBARDOUR_API ExportElementFactory
 {
   public:
 
@@ -67,7 +68,7 @@ class ExportElementFactory
        Session & session;
 };
 
-class ExportHandler : public ExportElementFactory
+class LIBARDOUR_API ExportHandler : public ExportElementFactory
 {
   public:
        struct FileSpec {
index edd7f9132505932ca5949d2c436892467feca092..ee29f0ee4c4a3655764b68fa9a9fe9d28cfd7aa6 100644 (file)
@@ -25,6 +25,7 @@
 #include <boost/shared_ptr.hpp>
 #include <boost/weak_ptr.hpp>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/comparable_shared_ptr.h"
 
 namespace AudioGrapher {
index b24cc70dcf0c9d129ab92a5e6b201c1e155f06a8..b11ab75babcc985f63421bbf268359b133285c60 100644 (file)
 #include "pbd/uuid.h"
 #include "pbd/xml++.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR
 {
 
 class Session;
 
-class ExportPreset {
+class LIBARDOUR_API ExportPreset {
   public:
        ExportPreset (std::string filename, Session & s);
        ~ExportPreset ();
index 424e0fe163c7b0f552b5bd3aee520f5ecbfa6f12..935df2552848117c7567671dc5eaf187b11c4493 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "ardour/filesystem_paths.h"
 #include "ardour/location.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/export_handler.h"
 
@@ -46,7 +47,7 @@ class Location;
 class Session;
 
 /// Manages (de)serialization of export profiles and related classes
-class ExportProfileManager
+class LIBARDOUR_API ExportProfileManager
 {
   public:
 
index 31027269f8ca376e9ccb9a886469f35ae7488b3a..6a5be177e42f7b300b5e6c300746b45916057682 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <stdint.h>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 #include "pbd/signals.h"
@@ -30,7 +31,7 @@
 namespace ARDOUR
 {
 
-class ExportStatus {
+class LIBARDOUR_API ExportStatus {
   public:
        ExportStatus ();
        void init ();
index 5cb32dbb1a0d0d433ef3117b3fb5441a86334927..754335ba48f0a552971a5c2f8ba0a143060ab159 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <boost/shared_ptr.hpp>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR
@@ -34,7 +35,7 @@ class ExportStatus;
 class ExportChannel;
 class ExportTempFile;
 
-class ExportTimespan
+class LIBARDOUR_API ExportTimespan
 {
   private:
        typedef boost::shared_ptr<ExportStatus> ExportStatusPtr;
index 5898d04f0abaff68ab1d4dbf23c1032b8e267913..568bc3204b7529b419cdbbb53867b1c5beb191ad 100644 (file)
@@ -28,7 +28,7 @@
 
 namespace ARDOUR {
 
-class MissingSource : public std::exception
+class LIBARDOUR_API MissingSource : public std::exception
 {
   public:
        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 */
-class FileSource : virtual public Source {
+class LIBARDOUR_API FileSource : virtual public Source {
 public:
        virtual ~FileSource () {}
 
index a9cdc893a6d68e94cc7defe614589da6c384aec0..2b6476c49f0b2eafa6e6a1fe5f37dd4f3c7b2df2 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <vector>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -31,7 +32,7 @@ class Region;
 class Session;
 class Progress;
 
-class Filter {
+class LIBARDOUR_API Filter {
 
   public:
        virtual ~Filter() {}
index 763723c792eb4e0dda2653c7b86fec5f45bec71a..b433580a54a9dec7aa32709ad56031f8d0206583 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "pbd/semutils.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/audio_backend.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::set< node_ptr_t > node_set_t;
 
-class Graph : public SessionHandleRef
+class LIBARDOUR_API Graph : public SessionHandleRef
 {
 public:
        Graph (Session & session);
index 9e0182300f3ea662ae3874ff4eea96da1714f07d..55867eac4c7e03893ebfe3c2af2a2da1a9529365 100644 (file)
@@ -38,7 +38,7 @@ typedef std::set< node_ptr_t > node_set_t;
 typedef std::list< node_ptr_t > node_list_t;
 
 /** A node on our processing graph, ie a Route */      
-class GraphNode
+class LIBARDOUR_API GraphNode
 {
     public:
        GraphNode( boost::shared_ptr<Graph> Graph );
index 58dea9755536192c747ea4c83b2a72a840942383..3e0637716d277d7098fc491a0387a802f888e502 100644 (file)
@@ -20,8 +20,9 @@
 #ifndef __IEC1PPMDSP_H
 #define        __IEC1PPMDSP_H
 
+#include "ardour/libardour_visibility.h"
 
-class Iec1ppmdsp
+class LIBARDOUR_API Iec1ppmdsp
 {
 public:
 
index 3574a8bd3f806e206e45e4c7112d82420f9d7ef2..aa5a90cdb9dadb68dca5aa27e6cb1c39a5430c5d 100644 (file)
@@ -20,8 +20,9 @@
 #ifndef __IEC2PPMDSP_H
 #define        __IEC2PPMDSP_H
 
+#include "ardour/libardour_visibility.h"
 
-class Iec2ppmdsp
+class LIBARDOUR_API Iec2ppmdsp
 {
 public:
 
index c261b7a960ca52ffa4aa70765df649b2c08b8b28..4dbf8f8456505056050ee7f287a27c58336b94d5 100644 (file)
 #include <stdint.h>
 
 #include "ardour/interthread_info.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
 
-class ImportStatus : public InterThreadInfo {
+class LIBARDOUR_API ImportStatus : public InterThreadInfo {
 public:
        std::string doing_what;
 
index fc695d88c11a0e0a7face985ecb3989a2dc8dd90..9463f0b28b772b009d6ecc7b0c5ae9318dcfee11 100644 (file)
 #define __ardour_importable_source_h__
 
 #include "pbd/failed_constructor.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
 
-class ImportableSource {
+class LIBARDOUR_API ImportableSource {
 public:
        ImportableSource () {}
        virtual ~ImportableSource() {}
index 8691db24e5932676f5f386c46d1c7f5abbbf082f..5cbcbd53bc32166aeeef052ed9171d17d7bcfd39 100644 (file)
 
 #include "evoral/Parameter.hpp"
 
+#include "midi++/libmidi_visibility.h"
+#include "ardour/libardour_visibility.h"
+
 namespace MIDI {
-namespace Name {
-class ChannelNameSet;
-class Patch;
-typedef std::list<boost::shared_ptr<Patch> > PatchNameList;
-}
+       namespace Name {
+               class LIBMIDIPP_API ChannelNameSet;
+               class LIBMIDIPP_API Patch;
+               typedef std::list<boost::shared_ptr<Patch> > PatchNameList;
+       }
 }
 
 namespace ARDOUR {
 
 class Processor;
 
-class InstrumentInfo {
+class LIBARDOUR_API InstrumentInfo {
   public:
     InstrumentInfo();
     ~InstrumentInfo ();
index 4d2b32f0310a2ca788fdba38f4b0f5956db1de06..d12b330e37d9a6bc5c3bd2037ba968f8bc03138d 100644 (file)
@@ -29,7 +29,7 @@ namespace ARDOUR {
 
 class InternalSend;
 
-class InternalReturn : public Return
+class LIBARDOUR_API InternalReturn : public Return
 {
   public:
        InternalReturn (Session&);
index a7f0f73e6e0bfdc07047baaa537e22b1c0a03d4a..8636a805db5cc661f8965ce4b08dbb5a753cbf35 100644 (file)
@@ -25,7 +25,7 @@
 
 namespace ARDOUR {
 
-class InternalSend : public Send
+class LIBARDOUR_API InternalSend : public Send
 {
   public:
        InternalSend (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster>, boost::shared_ptr<Route> send_to, Delivery::Role role);
index a4a332c8a2781c541dc4485dc05ceb4e5e8facb0..64b0431e0f73d53c309f7d05d672372d713f46c5 100644 (file)
@@ -20,6 +20,7 @@
 #include <math.h>
 #include <samplerate.h>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 #ifndef __interpolation_h__
@@ -27,7 +28,7 @@
 
 namespace ARDOUR {
 
-class Interpolation {
+class LIBARDOUR_API Interpolation {
 protected:
        double _speed;
        double _target_speed;
@@ -57,12 +58,12 @@ public:
        }
 };
 
-class LinearInterpolation : public Interpolation {
+class LIBARDOUR_API LinearInterpolation : public Interpolation {
 public:
        framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output);
 };
 
-class CubicInterpolation : public Interpolation {
+class LIBARDOUR_API CubicInterpolation : public Interpolation {
 public:
        framecnt_t interpolate (int channel, framecnt_t nframes, Sample* input, Sample* output);
 };
index 01cacf437ca3694c50c8364db8d175b20d4ca957..2cc786c6e265a1b607b3c0168aa7695f1a64abb2 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <pthread.h>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/process_thread.h"
 
index adad0c753fa1036f1a2e8474530e8b5a2e9d040b..1688a2a36d2176dfc876fc3cd2ca3af38f66d06e 100644 (file)
@@ -40,6 +40,7 @@
 #include "ardour/latent.h"
 #include "ardour/port_set.h"
 #include "ardour/session_object.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.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
  * varied combinations of types (eg MIDI and audio) possible.
  */
-class IO : public SessionObject, public Latent
+class LIBARDOUR_API IO : public SessionObject, public Latent
 {
   public:
        static const std::string state_node_name;
index 7adfab2225ebe6c0972dc4514b913af41ccc6732..a2735453a76db1154a6f4dc74c2df54a5a0f0adf 100644 (file)
@@ -40,7 +40,7 @@ class Route;
 
 /** A mixer strip element (Processor) with 1 or 2 IO elements.
  */
-class IOProcessor : public Processor
+class LIBARDOUR_API IOProcessor : public Processor
 {
   public:
        IOProcessor (Session&, bool with_input, bool with_output,
index eca3c76695300d9a95b8d980ed6b9487d034dbb4..374afff50eee8150ff623096f1fbdac89833612b 100644 (file)
@@ -20,7 +20,9 @@
 #ifndef __KMETERDSP_H
 #define        __KMETERDSP_H
 
-class Kmeterdsp
+#include "ardour/libardour_visibility.h"
+
+class LIBARDOUR_API Kmeterdsp
 {
 public:
 
index 6853a1dc367f38c31c6749f1c1035cd96064bf8e..4444686dcb6b24dada4f40c92c46ede315804b4b 100644 (file)
@@ -36,7 +36,7 @@ namespace ARDOUR {
 class AudioEngine;
 class Session;
 
-class LadspaPlugin : public ARDOUR::Plugin
+class LIBARDOUR_API LadspaPlugin : public ARDOUR::Plugin
 {
   public:
        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;
 };
 
-class LadspaPluginInfo : public PluginInfo {
+class LIBARDOUR_API LadspaPluginInfo : public PluginInfo {
   public:
        LadspaPluginInfo ();
        ~LadspaPluginInfo () { };
index c6e81c17a2a678707039c601093937eab0b891fa..bd639a865135c1e05fabe91f7c0f6cc21749dbcf 100644 (file)
 #ifndef __ardour_latent_h__
 #define __ardour_latent_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
 
-class Latent {
+class LIBARDOUR_API Latent {
   public:
        Latent() : _user_latency (0) {}
        virtual ~Latent() {}
index ae07961ef36454d549a0f6bbef2e83cb019f9895..ed5cacf26160b5300716ff767616d7922291c966 100644 (file)
@@ -38,8 +38,6 @@
     #define LIBARDOUR_DLL_IMPORT
     #define LIBARDOUR_DLL_EXPORT
     #define LIBARDOUR_DLL_LOCAL
-    #define LIBARDOUR_DLL_IMPORT_CLASS
-    #define LIBARDOUR_DLL_EXPORT_CLASS
   #endif
 #endif
 
index bb42df1b5840f4c9e6a186459ac5f169c873f8ee..b0956eea36d2e32e1c257509c29d13b5cee33c26 100644 (file)
@@ -38,7 +38,7 @@
 
 namespace ARDOUR {
 
-class Location : public SessionHandleRef, public PBD::StatefulDestructible
+class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDestructible
 {
   public:
        enum Flags {
@@ -131,7 +131,7 @@ class Location : public SessionHandleRef, public PBD::StatefulDestructible
        void recompute_bbt_from_frames ();
 };
 
-class Locations : public SessionHandleRef, public PBD::StatefulDestructible
+class LIBARDOUR_API Locations : public SessionHandleRef, public PBD::StatefulDestructible
 {
   public:
        typedef std::list<Location *> LocationList;
index 332c5ae685f839a796c42682adef71205f2615bf..574b9480622c23b823b9a2b27f742d960da385e8 100644 (file)
@@ -33,14 +33,14 @@ namespace ARDOUR {
 class Location;
 class Session;
 
-class LocationImportHandler : public ElementImportHandler
+class LIBARDOUR_API LocationImportHandler : public ElementImportHandler
 {
   public:
        LocationImportHandler (XMLTree const & source, Session & session);
        std::string get_info () const;
 };
 
-class LocationImporter : public ElementImporter
+class LIBARDOUR_API LocationImporter : public ElementImporter
 {
   public:
        LocationImporter (XMLTree const & source, Session & session, LocationImportHandler & handler, XMLNode const & node);
index 4c91ad9a792952fbbe3a7ce0083ea87276f93a62..2585da66c8d79814f11f7f99fd67f218bd70cab3 100644 (file)
@@ -25,7 +25,7 @@
 
 namespace ARDOUR {
 
-class LogCurve {
+class LIBARDOUR_API LogCurve {
   public:
        LogCurve (float steepness = 0.2, uint32_t len = 0) {
                l = len;
@@ -102,7 +102,7 @@ class LogCurve {
        uint32_t l;
 };
 
-class LogCurveIn : public LogCurve
+class LIBARDOUR_API LogCurveIn : public LogCurve
 {
   public:
        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:
        LogCurveOut (float steepness = 0.2, uint32_t len = 0)
index 56aa9dc7cfb6d16e1d1e6d600376d8b1b127d3c4..a9cb2cb260043aba1d96dab58f686e586033d8ae 100644 (file)
@@ -41,7 +41,7 @@ const void* lv2plugin_get_port_value(const char* port_symbol,
 class AudioEngine;
 class Session;
 
-class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
+class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
 {
   public:
        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:
        LV2PluginInfo (const void* c_plugin);
        ~LV2PluginInfo ();
index 58bc626d324de5d2eb0d5c8d4ec22b3a059a5b54..1eba007790525c3daf2d06eb14ccd2cd8eebad43 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "ardour/vst_plugin.h"
 
-struct _VSTHandle;
+struct LIBARDOUR_API _VSTHandle;
 typedef struct _VSTHandle VSTHandle;
 
 namespace ARDOUR {
@@ -30,7 +30,7 @@ namespace ARDOUR {
 class AudioEngine;
 class Session;
 
-class LXVSTPlugin : public VSTPlugin
+class LIBARDOUR_API LXVSTPlugin : public VSTPlugin
 {
   public:
        LXVSTPlugin (AudioEngine &, Session &, VSTHandle *);
@@ -40,7 +40,7 @@ class LXVSTPlugin : public VSTPlugin
        std::string state_node_name () const { return "lxvst"; }
 };
 
-class LXVSTPluginInfo : public PluginInfo
+class LIBARDOUR_API LXVSTPluginInfo : public PluginInfo
 {
   public:
        LXVSTPluginInfo ();
index df1e381bb45c89b59a892d5872e43fa89204dc51..8ed1ade50d4c3e4f418e181d646f040e245940ad 100644 (file)
@@ -20,6 +20,7 @@
 #define __ardour_meter_h__
 
 #include <vector>
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/processor.h"
 #include "pbd/fastlog.h"
@@ -35,7 +36,7 @@ class BufferSet;
 class ChanCount;
 class Session;
 
-class Metering {
+class LIBARDOUR_API Metering {
   public:
        static void               update_meters ();
        static PBD::Signal0<void> Meter;
@@ -47,7 +48,7 @@ class Metering {
 
 /** Meters peaks on the input and stores them for access.
  */
-class PeakMeter : public Processor {
+class LIBARDOUR_API PeakMeter : public Processor {
 public:
         PeakMeter(Session& s, const std::string& name);
         ~PeakMeter();
index 89c6cdb90bb6d43af2892ee2575c032fa7ef08a0..241c4e73207a40991b97f3cea15c8924dc43b4ee 100644 (file)
@@ -27,7 +27,7 @@ class MidiSource;
 class AutomationList;
 
 /** A class for late-binding a MidiSource and a Parameter to an AutomationList */
-class MidiAutomationListBinder : public MementoCommandBinder<ARDOUR::AutomationList>
+class LIBARDOUR_API MidiAutomationListBinder : public MementoCommandBinder<ARDOUR::AutomationList>
 {
 public:
        MidiAutomationListBinder (boost::shared_ptr<ARDOUR::MidiSource>, Evoral::Parameter);
index 781396a598778fc6977e97c005e1840e4f2c17e5..0a799c41ab7d79e9166772d8e25b99a5a5defc84 100644 (file)
@@ -29,7 +29,7 @@ namespace ARDOUR {
 
 
 /** Buffer containing 8-bit unsigned char (MIDI) data. */
-class MidiBuffer : public Buffer
+class LIBARDOUR_API MidiBuffer : public Buffer
 {
 public:
        typedef framepos_t TimeType;
index b1c126b339ff8ba0c10af87c1514215eb15854d9..1ee54e5995f5abd3c7f7e0a3b49efbd16abb50ba 100644 (file)
@@ -40,7 +40,7 @@
 #include "ardour/midi_ring_buffer.h"
 #include "ardour/utils.h"
 
-struct tm;
+struct LIBARDOUR_API tm;
 
 namespace ARDOUR {
 
@@ -52,7 +52,7 @@ class SMFSource;
 class Send;
 class Session;
 
-class MidiDiskstream : public Diskstream
+class LIBARDOUR_API MidiDiskstream : public Diskstream
 {
   public:
        MidiDiskstream (Session &, const string& name, Diskstream::Flag f = Recordable);
index 3ecfca7d1c94d59a257b72998d07da1e9213cbd9..98743969f7a88bf9cde605c37b2e7767f3476ef0 100644 (file)
 #include <boost/utility.hpp>
 #include <glibmm/threads.h>
 #include "pbd/command.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_buffer.h"
 #include "ardour/midi_ring_buffer.h"
 #include "ardour/automatable_sequence.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "evoral/Note.hpp"
 #include "evoral/Sequence.hpp"
@@ -47,7 +49,7 @@ class MidiSource;
  * Because of this MIDI controllers and automatable controllers/widgets/etc
  * are easily interchangeable.
  */
-class MidiModel : public AutomatableSequence<Evoral::MusicalTime> {
+class LIBARDOUR_API MidiModel : public AutomatableSequence<Evoral::MusicalTime> {
 public:
        typedef Evoral::MusicalTime TimeType;
 
index c5def76384d9e88df1a3920c53438941c49c1be1..00678a283167fec88d343329f8762f624c9b2eb2 100644 (file)
@@ -32,7 +32,7 @@ namespace ARDOUR {
 
 class MidiModel;
 
-class MidiOperator {
+class LIBARDOUR_API MidiOperator {
   public:
        MidiOperator () {}
        virtual ~MidiOperator() {}
index 32b3ebc61de6edf885a85f6b4186f98347e4126a..e9751c695608b8d56ebe552a55b1d53458d13c32 100644 (file)
@@ -35,7 +35,7 @@ namespace MIDI
 namespace Name
 {
 
-class MidiPatchManager : public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
+class LIBARDOUR_API MidiPatchManager : public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
 {
        /// Singleton
 private:
index 543e1b353f4b44e2bde000f457f83da22c3402cc..e53b4a4ee013ea9dc365f9395956bc30ea9e07e4 100644 (file)
@@ -37,7 +37,7 @@ class MidiRegion;
 class Source;
 template<typename T> class MidiRingBuffer;
 
-class MidiPlaylist : public ARDOUR::Playlist
+class LIBARDOUR_API MidiPlaylist : public ARDOUR::Playlist
 {
 public:
        MidiPlaylist (Session&, const XMLNode&, bool hidden = false);
index 5e3bb0de6764bd280e517d758ec102f07ba5a3e5..7a61f5aa02ddc5083d02bc6d128f5e55989153fe 100644 (file)
@@ -32,7 +32,7 @@ namespace ARDOUR {
 
 class MidiPlaylist;
 
-class MidiPlaylistSource : public MidiSource, public PlaylistSource {
+class LIBARDOUR_API MidiPlaylistSource : public MidiSource, public PlaylistSource {
 public:
        virtual ~MidiPlaylistSource ();
 
index 00617d90ecb5d5d146b6d98a00b31284a3d0cdd1..cc9fee1b15cc1ed07a0690196ade6906501e8490 100644 (file)
@@ -31,7 +31,7 @@ namespace ARDOUR {
 
 class MidiEngine;
 
-class MidiPort : public Port {
+class LIBARDOUR_API MidiPort : public Port {
    public:
        ~MidiPort();
 
index daca7a243d16d7be6f2bbfc9f607af54e52ad099..519643892603f811ab4a1aa30eae9ed9e4d1059d 100644 (file)
@@ -53,9 +53,10 @@ class MidiFilter;
 class MidiModel;
 class MidiSource;
 class MidiStateTracker;
+
 template<typename T> class MidiRingBuffer;
 
-class MidiRegion : public Region
+class LIBARDOUR_API MidiRegion : public Region
 {
   public:
        static void make_property_quarks ();
index d5c9947b9ae8d028b83f402cd28c5d18ab4596f3..2d35be679f6b5d97ed3b9a23f60add6126366de8 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "evoral/EventRingBuffer.hpp"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_state_tracker.h"
 
@@ -40,7 +41,7 @@ class MidiBuffer;
  * [timestamp][type][size][size bytes of raw MIDI][timestamp][type][size](etc...)
  */
 template<typename T>
-class MidiRingBuffer : public Evoral::EventRingBuffer<T> {
+class LIBARDOUR_API MidiRingBuffer : public Evoral::EventRingBuffer<T> {
 public:
        /** @param size Size in bytes.
         */
index a5aac8859b914795c7ddcedbc3900a1daec35d9f..ba50102ec915b7ed89ee8c2aeda1be73db05317b 100644 (file)
@@ -36,10 +36,11 @@ namespace ARDOUR {
 
 class MidiStateTracker;
 class MidiModel;
+
 template<typename T> class MidiRingBuffer;
 
 /** Source for MIDI data */
-class MidiSource : virtual public Source, public boost::enable_shared_from_this<MidiSource>
+class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_shared_from_this<MidiSource>
 {
   public:
        typedef double TimeType;
index 24d3ab73a192614a27b9f1623e4dbc323f57a24e..046e77f38c83bbd9973a92d0924fb7dba26c0ff9 100644 (file)
@@ -27,12 +27,13 @@ template <typename T> class EventSink;
 }
 
 namespace ARDOUR {
+
 class MidiSource;
 
 /** Tracks played notes, so they can be resolved in potential stuck note
  * situations (e.g. looping, transport stop, etc).
  */
-class MidiStateTracker
+class LIBARDOUR_API MidiStateTracker
 {
 public:
        MidiStateTracker();
index 42b201b55aa2db7d299e785a8e7b29f0094cc221..b6f6ac5073b12ad7891b6b6776dd058e0db18c03 100644 (file)
@@ -25,7 +25,7 @@
 
 namespace ARDOUR {
 
-class MidiStretch : public Filter {
+class LIBARDOUR_API MidiStretch : public Filter {
   public:
        MidiStretch (ARDOUR::Session&, const TimeFXRequest&);
        ~MidiStretch ();
index 3b75c0a51b9c18d232aa15fc5305a2b0c548ee81..7e53c5a292f662791279115126969be61bf16e74 100644 (file)
@@ -33,7 +33,7 @@ class RouteGroup;
 class SMFSource;
 class Session;
 
-class MidiTrack : public Track
+class LIBARDOUR_API MidiTrack : public Track
 {
 public:
        MidiTrack (Session&, string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal);
index c15a53005796b431aea06e6d2cb4e868236732a3..469f29377062ca6f6e7eb3b7e67327bd05433e59 100644 (file)
@@ -37,13 +37,13 @@ class AsyncMIDIPort;
    certain types of requests to the MIDI UI
 */
 
-struct MidiUIRequest : public BaseUI::BaseRequestObject {
+struct LIBARDOUR_API MidiUIRequest : public BaseUI::BaseRequestObject {
   public:
        MidiUIRequest () { }
        ~MidiUIRequest() { }
 };
 
-class MidiControlUI : public AbstractUI<MidiUIRequest>
+class LIBARDOUR_API MidiControlUI : public AbstractUI<MidiUIRequest>
 {
   public:
        MidiControlUI (Session& s);
index 9f93c43d5a006f15c3f5e2d57ade33ad1d412bc7..b5b46e85101df22d4859ba422632a3f32370dadd 100644 (file)
@@ -29,6 +29,7 @@
 #include "midi++/types.h"
 #include "midi++/port.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -36,7 +37,7 @@ namespace ARDOUR {
 class MidiPort;
 class Port;
 
-class MidiPortManager {
+class LIBARDOUR_API MidiPortManager {
   public:
     MidiPortManager();
     virtual ~MidiPortManager ();
index 1c3fb6e5c44a6309bd857d87eb7ea792cc0729d7..ebee0561fb32f9a1ece3d804875ac1e3260cf731 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef __ardour_mix_h__
 #define __ardour_mix_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.h"
 
index 64d3b86bfb3bcb2d962e473366feafc2cec1e612..41e911f57c2a399c3f172406565f4c05e277378b 100644 (file)
@@ -28,6 +28,7 @@
 #include "pbd/compose.h"
 #include "pbd/controllable.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/processor.h"
 
@@ -38,7 +39,7 @@ namespace ARDOUR {
 class Session;
 
 template<typename T>
-class MPControl : public PBD::Controllable {
+class LIBARDOUR_API MPControl : public PBD::Controllable {
 public:
        MPControl (T initial, const std::string& name, PBD::Controllable::Flag flag,
                   float lower = 0.0f, float upper = 1.0f)
@@ -104,7 +105,7 @@ protected:
        T _upper;
 };
 
-class MonitorProcessor : public Processor
+class LIBARDOUR_API MonitorProcessor : public Processor
 {
 public:
        MonitorProcessor (Session&);
index d68d7620ba093939683707b008ccf93f709e718f..df63987f4f3c8fd59de36527ae1789a8734cd3b8 100644 (file)
@@ -22,7 +22,7 @@
 
 namespace ARDOUR {
 
-class Movable {
+class LIBARDOUR_API Movable {
   public:
        Movable() {}
 
index b46e53c0a2380e227e5f365c3713d8ade1d0164d..b57df7254a4c5e1a3d27ad2c3cdd104f72f6f4f8 100644 (file)
@@ -21,7 +21,9 @@
 
 #include <stddef.h>
 
-class MTDM
+#include "ardour/libardour_visibility.h"
+
+class LIBARDOUR_API MTDM
 {
 public:
 
index 460c7bf48ba6e65ac688b6fafdd0aff4d3c4ed3b..8a83352a5bbd04f682db376a545057139ec418d6 100644 (file)
@@ -31,7 +31,7 @@ namespace ARDOUR {
 
 class Session;
 
-class MuteMaster : public SessionHandleRef, public PBD::Stateful
+class LIBARDOUR_API MuteMaster : public SessionHandleRef, public PBD::Stateful
 {
   public:
        /** deliveries to mute when the channel is "muted" */
index 6604a3a3623d5a3147059a522fbf9fcf4a1647ea..40eac9b4653f2a9bffdc48bf8af18540732f47bf 100644 (file)
@@ -27,7 +27,7 @@ namespace ARDOUR {
 class AudioSource;
 class Session;
 
-class OnsetDetector : public AudioAnalyser
+class LIBARDOUR_API OnsetDetector : public AudioAnalyser
 {
 public:
        OnsetDetector (float sample_rate);
index be0c9260c07f642f58cb7a4bc74edcd3021e0a49..9abbec42ab82277fe9af408549410d514390a245 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR {
 class Session;
 class Pannable;
 
-class PanControllable : public AutomationControl
+class LIBARDOUR_API PanControllable : public AutomationControl
 {
 public:
        PanControllable (Session& s, std::string name, Pannable* o, Evoral::Parameter param)
index 0d5200b685dcfaa5facfd67b77e51f15d376b30f..62c9cd123b4d6f1a99a334d7adb40fb43369f68e 100644 (file)
@@ -36,7 +36,7 @@ class Session;
 class AutomationControl;
 class Panner;
 
-class Pannable : public PBD::Stateful, public Automatable, public SessionHandleRef
+class LIBARDOUR_API Pannable : public PBD::Stateful, public Automatable, public SessionHandleRef
 {
   public:
        Pannable (Session& s);
index b30b1859a3ec2e7dca916d386657c4f9951895bc..cee59923ef79feb6728d5d62865d2a9f21a8d126 100644 (file)
@@ -30,6 +30,7 @@
 #include "pbd/signals.h"
 #include "pbd/stateful.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/automation_control.h"
 #include "ardour/automatable.h"
@@ -42,7 +43,7 @@ class BufferSet;
 class AudioBuffer;
 class Speakers;
 
-class Panner : public PBD::Stateful, public PBD::ScopedConnectionList
+class LIBARDOUR_API Panner : public PBD::Stateful, public PBD::ScopedConnectionList
 {
 public:
        Panner (boost::shared_ptr<Pannable>);
@@ -172,7 +173,7 @@ protected:
 } // namespace
 
 extern "C" {
-struct PanPluginDescriptor {
+struct LIBARDOUR_API PanPluginDescriptor {
        std::string name;
        int32_t in;
        int32_t out;
index 016ba56ce3c4efbcc3d76c4d6e88f687beab4442..e47ed36ec38225b80313e258ca84f5fd28e41d62 100644 (file)
@@ -26,7 +26,7 @@
 
 namespace ARDOUR {
 
-struct PannerInfo {
+struct LIBARDOUR_API PannerInfo {
        PanPluginDescriptor descriptor;
        void* module;
 
@@ -40,7 +40,7 @@ struct PannerInfo {
        }
 };
 
-class PannerManager : public ARDOUR::SessionHandlePtr
+class LIBARDOUR_API PannerManager : public ARDOUR::SessionHandlePtr
 {
 public:
        ~PannerManager ();
index dba5826370dbd65fe3a6a3c9bea6ff4c4e492dae..b78573212a06fb30d694fecda6418411d7a5855b 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "pbd/cartesian.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/session_object.h"
 
@@ -45,7 +46,7 @@ class Pannable;
 /** Class to manage panning by instantiating and controlling
  *  an appropriate Panner object for a given in/out configuration.
  */
-class PannerShell : public SessionObject
+class LIBARDOUR_API PannerShell : public SessionObject
 {
 public:
        PannerShell (std::string name, Session&, boost::shared_ptr<Pannable>);
index ab99889dd3dd0c4cf43fc5de1ec6c88de3c64d27..9c871a9e35f417bd573bd77a9d6191299e31d4a8 100644 (file)
@@ -21,6 +21,7 @@
 #define __ardour_peak_h__
 
 #include <cmath>
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.h"
 
index bcbc81701a75e0bf8e5bcd7125e09bc3a595cc1a..8daf7a70680c0a59090125fdace12520d98fb7fb 100644 (file)
 #ifndef __libardour_pi_controller__
 #define __libardour_pi_controller__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
-class PIController {
+class LIBARDOUR_API PIController {
 public:
        PIController (double resample_factor, int fir_size);
        ~PIController();
@@ -54,7 +55,7 @@ public:
 
 #define ESTIMATOR_SIZE 16
 
-class PIChaser {
+class LIBARDOUR_API PIChaser {
 public:
        PIChaser();
        ~PIChaser();
index 961609938cee029a702eca9f3d817e74c81b990b..4c8db5fb80e05ec630176942fbe3ce57b3344c9e 100644 (file)
@@ -37,7 +37,7 @@ namespace ARDOUR {
 
 namespace ARDOUR {
 
-class Pitch : public RBEffect {
+class LIBARDOUR_API Pitch : public RBEffect {
   public:
        Pitch (ARDOUR::Session&, TimeFXRequest&);
        ~Pitch () {}
@@ -49,7 +49,7 @@ class Pitch : public RBEffect {
 
 namespace ARDOUR {
 
-class Pitch : public Filter {
+class LIBARDOUR_API Pitch : public Filter {
   public:
        Pitch (ARDOUR::Session&, TimeFXRequest&);
        ~Pitch () {}
index 754e48cc25d1fbf71a2956c9e1250295b62bd71b..95c9e739c6724a078463bc3ccd203a0c80b4e6ef 100644 (file)
@@ -58,7 +58,7 @@ namespace Properties {
        extern PBD::PropertyDescriptor<bool> regions;
 }
 
-class RegionListProperty : public PBD::SequenceProperty<std::list<boost::shared_ptr<Region> > >
+class LIBARDOUR_API RegionListProperty : public PBD::SequenceProperty<std::list<boost::shared_ptr<Region> > >
 {
   public:
        RegionListProperty (Playlist&);
@@ -78,7 +78,7 @@ class RegionListProperty : public PBD::SequenceProperty<std::list<boost::shared_
        Playlist& _playlist;
 };
 
-class Playlist : public SessionObject , public boost::enable_shared_from_this<Playlist>
+class LIBARDOUR_API Playlist : public SessionObject , public boost::enable_shared_from_this<Playlist>
 {
 public:
        static void make_property_quarks ();
index 8b5d9d6a23f4943a77d187750444778d11552b41..505836234b8e85de0b75a3670bc067f43adf42db 100644 (file)
@@ -28,7 +28,7 @@ namespace ARDOUR {
 
 class Session;
 
-class PlaylistFactory {
+class LIBARDOUR_API PlaylistFactory {
 
   public:
        static PBD::Signal2<void,boost::shared_ptr<Playlist>, bool> PlaylistCreated;
index 71802fddb64f9362255ed5d8f0f32eb93ed9d3af..55cc1f6b594089bec425af911df181746d28b9d8 100644 (file)
@@ -31,7 +31,7 @@ namespace ARDOUR {
 
 class Playlist;
 
-class PlaylistSource : virtual public Source {
+class LIBARDOUR_API PlaylistSource : virtual public Source {
 public:
        virtual ~PlaylistSource ();
 
index 55b76fbb08f98ec7cba191c5a173b9fb7019e676..7043460d52b2d8c69bb0d5771ebc57165c1d078a 100644 (file)
@@ -32,6 +32,7 @@
 #include "ardour/cycles.h"
 #include "ardour/latent.h"
 #include "ardour/plugin_insert.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_state_tracker.h"
 
@@ -49,7 +50,7 @@ class Plugin;
 
 typedef boost::shared_ptr<Plugin> PluginPtr;
 
-class PluginInfo {
+class LIBARDOUR_API PluginInfo {
   public:
        PluginInfo () { }
        virtual ~PluginInfo () { }
@@ -87,7 +88,7 @@ class PluginInfo {
 typedef boost::shared_ptr<PluginInfo> PluginInfoPtr;
 typedef std::list<PluginInfoPtr> PluginInfoList;
 
-class Plugin : public PBD::StatefulDestructible, public Latent
+class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent
 {
   public:
        Plugin (ARDOUR::AudioEngine&, ARDOUR::Session&);
index a1b9c5a68564e53994d25fe22da3dcf432063393..51e1356d123c31434151c13716d2c08091eef84e 100644 (file)
@@ -26,6 +26,7 @@
 #include <boost/weak_ptr.hpp>
 
 #include "ardour/ardour.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/processor.h"
 #include "ardour/automation_control.h"
@@ -40,7 +41,7 @@ class Plugin;
 
 /** Plugin inserts: send data through a plugin
  */
-class PluginInsert : public Processor
+class LIBARDOUR_API PluginInsert : public Processor
 {
   public:
        PluginInsert (Session&, boost::shared_ptr<Plugin> = boost::shared_ptr<Plugin>());
index a7a57036905a110d722cea3ee8c4359a8e652843..73de0eb704b3c37dbb95b9832d80e2ec446f926e 100644 (file)
@@ -30,6 +30,7 @@
 #include <set>
 #include <boost/utility.hpp>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/plugin.h"
 
@@ -37,7 +38,7 @@ namespace ARDOUR {
 
 class Plugin;
 
-class PluginManager : public boost::noncopyable {
+class LIBARDOUR_API PluginManager : public boost::noncopyable {
   public:
        static PluginManager& instance();
 
index 77bf2b6f71c6fbbf6d964ad62d02050cf4ed81fa..5fb9a7efc3bd321213eb112914611fcc28dda76e 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "ardour/data_type.h"
 #include "ardour/port_engine.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -38,7 +39,7 @@ namespace ARDOUR {
 class AudioEngine;
 class Buffer;
 
-class Port : public boost::noncopyable
+class LIBARDOUR_API Port : public boost::noncopyable
 {
 public:
        virtual ~Port ();
index 8c0ec9e75453ee0b9bc1655f8052a12d343061d5..16d3da357630ae47653287b18772c7a17fb1dca8 100644 (file)
@@ -26,6 +26,7 @@
 #include <stdint.h>
 
 #include "ardour/data_type.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -74,7 +75,7 @@ class PortManager;
  * documentation, on which this entire object is based.
  */
 
-class PortEngine {
+class LIBARDOUR_API PortEngine {
   public:
     PortEngine (PortManager& pm) : manager (pm) {}
     virtual ~PortEngine() {}
index abd9fb73cc12dac6c8b612b6c68896c7948395aa..327080984ab5c7646201670074522994d2312b0e 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "ardour/ardour.h"
 #include "ardour/io_processor.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 class XMLNode;
@@ -41,7 +42,7 @@ class Pannable;
 
 /** Port inserts: send output to a Jack port, pick up input at a Jack port
  */
-class PortInsert : public IOProcessor
+class LIBARDOUR_API PortInsert : public IOProcessor
 {
   public:
        PortInsert (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster> mm);
index ba15142d83550365f329263de2c82931e86bd96e..b36e98fe64504526426a5ef8aa179a668a257a5e 100644 (file)
@@ -40,7 +40,7 @@ namespace ARDOUR {
 class PortEngine;
 class AudioBackend;
 
-class PortManager 
+class LIBARDOUR_API PortManager 
 {
   public:
     typedef std::map<std::string,boost::shared_ptr<Port> > Ports;
index 690875cd8624179e02b8cf4c9ce8cfda21a410c2..cd76f75ee3be691ecbf700db33515e8a9f8aebbb 100644 (file)
@@ -39,7 +39,7 @@ class MidiPort;
  * and once in a vector of all port (_all_ports).  This is to speed up the
  * fairly common case of iterating over all ports.
  */
-class PortSet : public boost::noncopyable {
+class LIBARDOUR_API PortSet : public boost::noncopyable {
 public:
        PortSet();
 
index f96595fbbf9a558919dbc15e1b217498c39c3997..779fdaea2d50384f8660745b87bf1ef5170cbff8 100644 (file)
@@ -23,6 +23,7 @@
 #include <glibmm/threads.h>
 
 #include "ardour/chan_count.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -30,7 +31,7 @@ namespace ARDOUR {
 class ThreadBuffers;
 class BufferSet;
 
-class ProcessThread
+class LIBARDOUR_API ProcessThread
 {
 public:
        ProcessThread ();
index 18f13dbc7806188fa8e8acc4b9bfdeaa51ed5e85..85d466a169265434d859ba44da3aa4a7343d727e 100644 (file)
@@ -30,6 +30,7 @@
 #include "ardour/buffer_set.h"
 #include "ardour/latent.h"
 #include "ardour/session_object.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/automatable.h"
 
@@ -41,7 +42,7 @@ class Session;
 class Route;
 
 /** A mixer strip element - plugin, send, meter, etc */
-class Processor : public SessionObject, public Automatable, public Latent
+class LIBARDOUR_API Processor : public SessionObject, public Automatable, public Latent
 {
   public:
        static const std::string state_node_name;
index 5d4e61183330a462ace20d981c17555ba92e8981..b315748630574f0f3bf724ed249720a01f3b3ad6 100644 (file)
 #include <boost/dynamic_bitset.hpp>
 #include <stdint.h>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-class RuntimeProfile {
+class LIBARDOUR_API RuntimeProfile {
 public:
        enum Element {
                SmallScreen,
index 10b7d759600e1624aa9eb37e9bc01fd4bfbac8bf..79043a31eef3549c963deffe9735f0204cc6ebca 100644 (file)
 
 #include <list>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** A class to handle reporting of progress of something */
-class Progress
+class LIBARDOUR_API Progress
 {
 public:
        Progress ();
index 169f60f9f5beeb88a01a09fe0735fd976f162a40..066f2aac81f9266552f0871cd6c69f44b98e71f9 100644 (file)
@@ -30,7 +30,7 @@ namespace ARDOUR {
     so that it can be used like a regular Controllable, bound to MIDI, OSC etc.
 */
 
-class ProxyControllable : public PBD::Controllable {
+class LIBARDOUR_API ProxyControllable : public PBD::Controllable {
 public:
        ProxyControllable (const std::string& name, PBD::Controllable::Flag flags,
                           boost::function1<bool,double> setter,
index 125e1a21ced2ba525b4fb599ffdeded158f499a1..5b5cd48231ce881535da5b92d61a9bd72bf683fa 100644 (file)
@@ -27,7 +27,7 @@ class Source;
 class Location;
 
 /** Public interface to a Diskstream */
-class PublicDiskstream
+class LIBARDOUR_API PublicDiskstream
 {
 public:
        virtual ~PublicDiskstream() {}
index e56927767eda121cbeea18341dee8b1ceb5d3763..c41d172177e3b3e7ebaaf99c30ca872d50a15250 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef __ardour_quantize_h__
 #define __ardour_quantize_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_operator.h"
 
@@ -28,7 +29,7 @@ namespace ARDOUR {
 
 class Session;
 
-class Quantize : public MidiOperator {
+class LIBARDOUR_API Quantize : public MidiOperator {
 public:
        Quantize (ARDOUR::Session&, bool snap_start, bool snap_end,
                        double start_grid, double end_grid,
index 1d36f31332fb602e74f0e02443412e43996fd441..6c10278fb3a794ba391ebc991d990107782f4b26 100644 (file)
@@ -27,7 +27,7 @@ namespace ARDOUR {
 
 class AudioRegion;
 
-class RBEffect : public Filter {
+class LIBARDOUR_API RBEffect : public Filter {
   public:
        RBEffect (ARDOUR::Session&, TimeFXRequest&);
        ~RBEffect ();
index e2f68477a1323085af59fb24896fb02672ac233e..b525a8269efa0ffe40c3ca2cb6f8d956cc3c201d 100644 (file)
@@ -23,6 +23,7 @@
 #include <map>
 #include <string>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/utils.h"
 #include "ardour/configuration.h"
@@ -31,7 +32,7 @@ class XMLNode;
 
 namespace ARDOUR {
 
-class RCConfiguration : public Configuration
+class LIBARDOUR_API RCConfiguration : public Configuration
 {
   public:
        RCConfiguration();
index d184902deb77ec5a796e899cbc7721c9a8325688..18190436df98d098dedfea6ff3a0cc1bff10a1ed 100644 (file)
 #ifndef __ardour_readable_h__
 #define __ardour_readable_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
 
-class Readable {
+class LIBARDOUR_API Readable {
   public:
        Readable () {}
        virtual ~Readable() {}
index 3ee829ed122dee2860e456cfa6b7c58b848e4210..fac89bb4ff1d230358fa759360038eb7eaa26ced 100644 (file)
@@ -38,7 +38,6 @@
 
 class XMLNode;
 
-
 namespace ARDOUR {
 
 namespace Properties {
@@ -74,14 +73,14 @@ class Filter;
 class ExportSpecification;
 class Progress;
 
-enum RegionEditState {
+enum LIBARDOUR_API RegionEditState {
        EditChangesNothing = 0,
        EditChangesName    = 1,
        EditChangesID      = 2
 };
 
 
-class Region
+class LIBARDOUR_API Region
        : public SessionObject
        , public boost::enable_shared_from_this<Region>
        , public Readable
index ed0c962d879a7adae199e410b830a56d574e6984..a9b73dc46260c27d1c47daa531a27a1b27a26f03 100644 (file)
@@ -28,6 +28,7 @@
 #include "pbd/property_list.h"
 #include "pbd/signals.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 class XMLNode;
@@ -38,7 +39,7 @@ namespace ARDOUR {
 class Session;
 class AudioRegion;
 
-class RegionFactory {
+class LIBARDOUR_API RegionFactory {
 public:
        typedef std::map<PBD::ID,boost::shared_ptr<Region> > RegionMap;
 
index baa3a3417d7b4811a09f04188bbf71a0ccd11566..9fd739a4da725c66588f82e64da0602f4cb239ab 100644 (file)
 
 namespace ARDOUR {
 
-struct RegionSortByPosition {
+struct LIBARDOUR_API RegionSortByPosition {
        bool operator() (boost::shared_ptr<Region> a, boost::shared_ptr<Region> b) {
                return a->position() < b->position();
        }
 };
 
-struct RegionSortByLayer {
+struct LIBARDOUR_API RegionSortByLayer {
        bool operator() (boost::shared_ptr<Region> a, boost::shared_ptr<Region> b) {
                return a->layer() < b->layer();
        }
index a36ad4331f5c9344dc5c9bd4ceafdc261cf9e2c9..bb088f36fb9a7d9f8ca911ae460aee9fbf1811c7 100644 (file)
 
 #include <samplerate.h>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/importable_source.h"
 
 namespace ARDOUR {
 
-class ResampledImportableSource : public ImportableSource
+class LIBARDOUR_API ResampledImportableSource : public ImportableSource
 {
   public:
        ResampledImportableSource (boost::shared_ptr<ImportableSource>, framecnt_t rate, SrcQuality);
index 6dcd6ac2fccde200b839a1dddece8f30d603b700..45bb5573b264c943bc490345573a4b82c174d666 100644 (file)
@@ -34,7 +34,7 @@ class Amp;
 class PeakMeter;
 
 
-class Return : public IOProcessor
+class LIBARDOUR_API Return : public IOProcessor
 {
 public:
        Return (Session&, bool internal = false);
index edc72ce707f53828ac1e863c188e5c9b0c3e4295..4c24a7c1cb07e23edce669115ba7935b65d0ea0f 100644 (file)
@@ -24,7 +24,7 @@
 
 namespace ARDOUR {
 
-class Reverse : public Filter {
+class LIBARDOUR_API Reverse : public Filter {
   public:
        Reverse (ARDOUR::Session&);
        ~Reverse ();
index 23f24cb2750cff78ea471ae1e569b7415aa52c93..a7eeace7b45f4c9cdc3354d53f14eb9b8136fa83 100644 (file)
@@ -43,6 +43,7 @@
 #include "ardour/ardour.h"
 #include "ardour/instrument_info.h"
 #include "ardour/io.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/mute_master.h"
 #include "ardour/route_group_member.h"
@@ -67,7 +68,7 @@ class Pannable;
 class CapturingProcessor;
 class InternalSend;
 
-class Route : public SessionObject, public Automatable, public RouteGroupMember, public GraphNode, public boost::enable_shared_from_this<Route>
+class LIBARDOUR_API Route : public SessionObject, public Automatable, public RouteGroupMember, public GraphNode, public boost::enable_shared_from_this<Route>
 {
   public:
 
index 0b0af6c7dd2e74feca371ca5190813df044d4837..77e74ceafd848f5fe145ceabe470b87330a1219a 100644 (file)
@@ -37,7 +37,7 @@ typedef boost::shared_ptr<Route> GraphVertex;
  *
  *  This may be a premature optimisation...
  */
-class GraphEdges
+class LIBARDOUR_API GraphEdges
 {
 public:
        typedef std::map<GraphVertex, std::set<GraphVertex> > EdgeMap;
index 2f62193d83843cbdd79a500b91310b434dee20c4..fd4be69c6466b33c6fdf079d894ecec1c3e7806a 100644 (file)
@@ -29,6 +29,7 @@
 #include "pbd/stateful.h"
 #include "pbd/signals.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/session_object.h"
 
@@ -54,7 +55,7 @@ class Track;
 class AudioTrack;
 class Session;
 
-class RouteGroup : public SessionObject
+class LIBARDOUR_API RouteGroup : public SessionObject
 {
   public:
        static void make_property_quarks();
index 2665c719e6df42af6b3fbd77a9f20e16da8564b8..b0368cb2409d2fb725fb7c40d277fad4423b0816 100644 (file)
@@ -26,7 +26,7 @@ namespace ARDOUR  {
 
 class RouteGroup;
 
-class RouteGroupMember
+class LIBARDOUR_API RouteGroupMember
 {
   public:
        RouteGroupMember () : _route_group (0) {}
index 8882d721d74301ff9e47ae4b2f791557cf3121ab..f55d6ba55d6470972f1b3e866a70fabd5c91d078 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef __ardour_runtime_functions_h__
 #define __ardour_runtime_functions_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
index 1a21d1d05057605a09f646781d930b30ff0d4e70..5c15a17228941956531404b9219aa7eea434d56f 100644 (file)
@@ -32,7 +32,7 @@ namespace ARDOUR {
 class PeakMeter;
 class Amp;
 
-class Send : public Delivery
+class LIBARDOUR_API Send : public Delivery
 {
   public:
        Send (Session&, boost::shared_ptr<Pannable> pannable, boost::shared_ptr<MuteMaster>, Delivery::Role r = Delivery::Send);
index 0f4e04715ac31e28922170190868cc520d632a5c..5b0cf755a72597a5a4563b3f03c583b8ad5f2819 100644 (file)
@@ -140,7 +140,7 @@ class WindowsVSTPlugin;
 
 extern void setup_enum_writer ();
 
-class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
+class LIBARDOUR_API LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
 {
   public:
        enum RecordState {
index 46d6defa7d1fa5d2ba2fab30d113c0a6725217be..e72d19f32208708179e349ef31397f08543d8eb7 100644 (file)
@@ -24,7 +24,7 @@
 
 namespace ARDOUR {
 
-class SessionConfiguration : public Configuration
+class LIBARDOUR_API SessionConfiguration : public Configuration
 {
 public:
        SessionConfiguration ();
index a4c372d6ed81c2c6a7998fb2135722adc93e0c10..685f0870dd4e43c9881eb6323938730d1d07912c 100644 (file)
 #include <string>
 #include <vector>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-class SessionDirectory
+class LIBARDOUR_API SessionDirectory
 {
 public:
 
index ccec43d909fc9790ca6895d43c3c194a95686b33..d4102a62eff2b779043e2ea548e092a02a8b7ab1 100644 (file)
@@ -28,6 +28,7 @@
 #include "pbd/ringbuffer.h"
 #include "pbd/event_loop.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -35,7 +36,7 @@ namespace ARDOUR {
 class Slave;
 class Region;
 
-class SessionEvent {
+class LIBARDOUR_API SessionEvent {
 public:
        enum Type {
                SetTransportSpeed,
@@ -150,7 +151,7 @@ private:
        friend class Butler;
 };
 
-class SessionEventManager {
+class LIBARDOUR_API SessionEventManager {
 public:
        SessionEventManager () : pending_events (2048),
                                 auto_loop_event(0), punch_out_event(0), punch_in_event(0) {}
index 0331970e5c9fda889539f21ce25dc9084f46190a..330f1805cd4c4c4152f0c05a55470f2096c3e8b9 100644 (file)
 
 #include "pbd/signals.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
        class Session;
 
-class SessionHandleRef : public PBD::ScopedConnectionList
+class LIBARDOUR_API SessionHandleRef : public PBD::ScopedConnectionList
 {
   public:
        SessionHandleRef (ARDOUR::Session& s);
@@ -37,7 +39,7 @@ class SessionHandleRef : public PBD::ScopedConnectionList
        virtual void insanity_check ();
 };
 
-class SessionHandlePtr
+class LIBARDOUR_API SessionHandlePtr
 {
   public:
        SessionHandlePtr (ARDOUR::Session* s);
index c4341dbc61a30c6fd0f315661a680066c785e213..b163e98f6506a3f62c022948676afea3409c067f 100644 (file)
 #include "pbd/statefuldestructible.h"
 #include "pbd/xml++.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** Represents metadata associated to a Session
  * Metadata can be accessed and edited via this class.
  * Exported files can also be tagged with this data.
  */
-class SessionMetadata : public PBD::StatefulDestructible
+class LIBARDOUR_API SessionMetadata : public PBD::StatefulDestructible
 {
   public:
        //singleton instance:
index eacb0c49e92e2433d0f77caa5ef006346b859ff7..21bb10f225efbee29b1de3aa54670cb56c5c894a 100644 (file)
@@ -40,7 +40,7 @@ class Session;
     expected to be destroyed before the session calls drop_references().
  */
 
-class SessionObject : public SessionHandleRef, public PBD::StatefulDestructible
+class LIBARDOUR_API SessionObject : public SessionHandleRef, public PBD::StatefulDestructible
 {
   public:
        static void make_property_quarks ();
index 83dc8ee58c7cd12921876e93bd6d486dc36f92a8..e7ad1624dd9af7d71ee9d6f8d55c072434b4e7c3 100644 (file)
@@ -44,7 +44,7 @@ class Session;
 class Crossfade;
 class Track;
 
-class SessionPlaylists : public PBD::ScopedConnectionList
+class LIBARDOUR_API SessionPlaylists : public PBD::ScopedConnectionList
 {
 public:
        ~SessionPlaylists ();
index 5cdade3751da049a803136976f81e6b81676e488..27d0efd9943a26fb57b6e03406f3cce17bfcbbde 100644 (file)
@@ -25,7 +25,7 @@
 
 namespace ARDOUR {
 
-class SilentFileSource : public AudioFileSource {
+class LIBARDOUR_API SilentFileSource : public AudioFileSource {
 public:
        int update_header (framepos_t /*when*/, struct tm&, time_t) { return 0; }
        int flush_header () { return 0; }
index a0b7b878e49f405f312a34771d0c0cd7dbdc2381..faeb3be357c51dd7285451521f9d6fa03154db99 100644 (file)
@@ -31,6 +31,7 @@
 #include "timecode/time.h"
 #include "ltc/ltc.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "midi++/parser.h"
 #include "midi++/types.h"
@@ -59,7 +60,7 @@ class MidiPort;
  * Therefore it is rather that class, that makes ARDOUR a slave by connecting it
  * to its external time master.
  */
-class Slave {
+class LIBARDOUR_API Slave {
   public:
        Slave() { }
        virtual ~Slave() {}
@@ -180,7 +181,7 @@ class Slave {
 };
 
 /// We need this wrapper for testability, it's just too hard to mock up a session class
-class ISlaveSessionProxy {
+class LIBARDOUR_API ISlaveSessionProxy {
   public:
        virtual ~ISlaveSessionProxy() {}
        virtual TempoMap&  tempo_map()                 const   { return *((TempoMap *) 0); }
@@ -198,7 +199,7 @@ class ISlaveSessionProxy {
 
 
 /// The Session Proxy for use in real Ardour
-class SlaveSessionProxy : public ISlaveSessionProxy {
+class LIBARDOUR_API SlaveSessionProxy : public ISlaveSessionProxy {
        Session&    session;
 
   public:
@@ -215,7 +216,7 @@ class SlaveSessionProxy : public ISlaveSessionProxy {
        void request_transport_speed (double speed);
 };
 
-struct SafeTime {
+struct LIBARDOUR_API SafeTime {
        volatile int guard1;
        framepos_t   position;
        framepos_t   timestamp;
@@ -231,7 +232,7 @@ struct SafeTime {
        }
 };
 
-class TimecodeSlave : public Slave {
+class LIBARDOUR_API TimecodeSlave : public Slave {
   public:
     TimecodeSlave () {}
 
@@ -248,7 +249,7 @@ class TimecodeSlave : public Slave {
     bool              timecode_negative_offset;
 };
 
-class MTC_Slave : public TimecodeSlave {
+class LIBARDOUR_API MTC_Slave : public TimecodeSlave {
   public:
        MTC_Slave (Session&, MidiPort&);
        ~MTC_Slave ();
@@ -332,7 +333,7 @@ class MTC_Slave : public TimecodeSlave {
        void parameter_changed(std::string const & p);
 };
 
-class LTC_Slave : public TimecodeSlave {
+class LIBARDOUR_API LTC_Slave : public TimecodeSlave {
 public:
        LTC_Slave (Session&);
        ~LTC_Slave ();
@@ -400,7 +401,7 @@ public:
        double b, c; ///< DLL filter coefficients
 };
 
-class MIDIClock_Slave : public Slave {
+class LIBARDOUR_API MIDIClock_Slave : public Slave {
   public:
        MIDIClock_Slave (Session&, MidiPort&, int ppqn = 24);
 
@@ -486,7 +487,7 @@ class MIDIClock_Slave : public Slave {
        bool _starting;
 };
 
-class Engine_Slave : public Slave
+class LIBARDOUR_API Engine_Slave : public Slave
 {
   public:
        Engine_Slave (AudioEngine&);
index ca337a62c2aaf893e177e977dde988b0ac24baa6..82e6252b4507748e6b4da3e58536ec8dd05b64b1 100644 (file)
@@ -34,7 +34,7 @@ namespace ARDOUR {
 template<typename T> class MidiRingBuffer;
 
 /** Standard Midi File (Type 0) Source */
-class SMFSource : public MidiSource, public FileSource, public Evoral::SMF {
+class LIBARDOUR_API SMFSource : public MidiSource, public FileSource, public Evoral::SMF {
 public:
        /** Constructor for existing external-to-session files */
        SMFSource (Session& session, const std::string& path,
index 8612e264c440a0582a6f1351b40c457b9bfddc3a..10c429c5459cdb25e8f2e3b8247813c04b65cf4c 100644 (file)
 
 #include <boost/shared_ptr.hpp>
 #include <sndfile.h>
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/importable_source.h"
 
 namespace ARDOUR {
 
-class SndFileImportableSource : public ImportableSource {
+class LIBARDOUR_API SndFileImportableSource : public ImportableSource {
     public:
        SndFileImportableSource (const std::string& path);
        virtual ~SndFileImportableSource();
index 3f63f1c59898b5f4c568a824938db1eef01f057d..9b3da1701d43bac11d71d0b9b5568baca1cb7c12 100644 (file)
@@ -28,7 +28,7 @@
 
 namespace ARDOUR {
 
-class SndFileSource : public AudioFileSource {
+class LIBARDOUR_API SndFileSource : public AudioFileSource {
   public:
        /** Constructor to be called for existing external-to-session files */
        SndFileSource (Session&, const std::string& path, int chn, Flag flags);
index ff8e96ad8f59cec8b5aa79b8adf27809c8683ded..02425a71cf93d43fac1656c7283254a5d0eb9892 100644 (file)
@@ -26,21 +26,21 @@ namespace ARDOUR {
 
 typedef gint16 peak_datum;
 
-struct peak_data_t {
+struct LIBARDOUR_API peak_data_t {
     peak_datum min;
     peak_datum max;
 };
 
 const uint32_t frames_per_peak = 2048;
 
-class Sound : public EDL::Piece {
+class LIBARDOUR_API Sound : public EDL::Piece {
   public:
        int peak (peak_data_t& pk, uint32_t start, uint32_t cnt);
        int read_peaks (peak_data_t *, uint32_t npeaks, uint32_t start, uint32_t cnt);
        int build_peak (uint32_t first_frame, uint32_t cnt);
 };
 
-class SoundPlaylist : public EDL::Playlist {
+class LIBARDOUR_API SoundPlaylist : public EDL::Playlist {
   public:
        int read_peaks (peak_data_t *, uint32_t npeaks, uint32_t start, uint32_t cnt);
 };
index 5e851702d4114944e6a1ee40b80c873933575eeb..78b3cfaa2110f369f80fc2b336fe996e55f7e30a 100644 (file)
@@ -36,7 +36,7 @@ namespace ARDOUR {
 
 class Session;
 
-class Source : public SessionObject
+class LIBARDOUR_API Source : public SessionObject
 {
   public:
        enum Flag {
index c94f783b445f51fba4b9fa1505459e3e42bb1f9b..4ef2cd60ee6506534518d5fb0e0c3a76b542a951 100644 (file)
@@ -36,7 +36,7 @@ class Session;
 class AudioSource;
 class Playlist;
 
-class SourceFactory {
+class LIBARDOUR_API SourceFactory {
   public:
        static void init ();
 
index 3deeb8b0d937bf7a063212302ab15c4f139cca5c..c643eb5d02db0594e5bf7e3046473baed09605b4 100644 (file)
 #include "pbd/cartesian.h"
 #include "pbd/signals.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-class Speaker {
+class LIBARDOUR_API Speaker {
 public:
        Speaker (int, const PBD::AngularVector& position);
        Speaker (const Speaker &);
index dbe4ef180ee58712633b131eb0bd94078f1a3f1c..cde2c40dbbf37ca4b540b72854a667ee2ecf9762 100644 (file)
@@ -31,7 +31,7 @@ class XMLNode;
 
 namespace ARDOUR  {
 
-class Speakers : public PBD::Stateful {
+class LIBARDOUR_API Speakers : public PBD::Stateful {
 public:
        Speakers ();
        Speakers (const Speakers&);
index 6a12e96d522a905a6606d2346eb7364242b43a12..475441fd44cd4d688def0a13ddc6673cef553bed 100644 (file)
@@ -28,7 +28,7 @@ extern "C" {
 typedef struct _spline Spline;
 typedef struct _spline_point SplinePoint;
 
-struct _spline_point
+struct LIBARDOUR_API _spline_point
 {
        float x;
        float y;
@@ -45,7 +45,7 @@ void    spline_fill (Spline *, float x0, float x1, float *vec, uint32_t veclen);
 float   spline_get_max_x (Spline *);
 float   spline_get_min_x (Spline *);
 
-struct _spline
+struct LIBARDOUR_API _spline
 {
        float        *deriv2;
        float        *x;
index 066ed7861a406b7ced9e21541c0cb069c2b52103..edca5fc44b4edac87dce1f37a1a73fbb8ba1c5cf 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace ARDOUR {
 
-class RBStretch : public RBEffect {
+class LIBARDOUR_API RBStretch : public RBEffect {
   public:
        RBStretch (ARDOUR::Session&, TimeFXRequest&);
        ~RBStretch() {}
@@ -47,7 +47,7 @@ class RBStretch : public RBEffect {
 
 namespace ARDOUR {
 
-class STStretch : public Filter {
+class LIBARDOUR_API STStretch : public Filter {
   public:
        STStretch (ARDOUR::Session&, TimeFXRequest&);
        ~STStretch ();
index eed43201739756a56e42e15da07a222e3f6749db..59f4ea0a572ce9bfc74efd7677ed199b4dc21592 100644 (file)
@@ -22,7 +22,7 @@
 namespace ARDOUR {
 
 /// A filter to strip silence from regions
-class StripSilence : public Filter
+class LIBARDOUR_API StripSilence : public Filter
 {
   public:
        StripSilence (Session &, const AudioIntervalMap&, framecnt_t fade_length);
index 6c8392f46fa96ab13b500ae31f5b9ff6f064a38b..623bd406a813442c9a97bec64b0afc3825dcc502 100644 (file)
 
 #include <regex.h>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-class TapeFileMatcher
+class LIBARDOUR_API TapeFileMatcher
 {
 public:
 
index bedc825288ce6215194917354047fdde06525574..8fa5ed45a0242104f51d9fe78bafee09ae3d687f 100644 (file)
@@ -45,7 +45,7 @@ class Meter;
 class TempoMap;
 
 /** Tempo, the speed at which musical time progresses (BPM). */
-class Tempo {
+class LIBARDOUR_API Tempo {
   public:
        Tempo (double bpm, double type=4.0) // defaulting to quarter note
                : _beats_per_minute (bpm), _note_type(type) {}
@@ -62,7 +62,7 @@ class Tempo {
 };
 
 /** Meter, or time signature (beats per bar, and which note type is a beat). */
-class Meter {
+class LIBARDOUR_API Meter {
   public:
        Meter (double dpb, double bt)
                : _divisions_per_bar (dpb), _note_type (bt) {}
@@ -87,7 +87,7 @@ class Meter {
 };
 
 /** A section of timeline with a certain Tempo or Meter. */
-class MetricSection {
+class LIBARDOUR_API MetricSection {
   public:
        MetricSection (const Timecode::BBT_Time& start)
                : _start (start), _frame (0), _movable (true) {}
@@ -123,7 +123,7 @@ class MetricSection {
 };
 
 /** A section of timeline with a certain Meter. */
-class MeterSection : public MetricSection, public Meter {
+class LIBARDOUR_API MeterSection : public MetricSection, public Meter {
   public:
        MeterSection (const Timecode::BBT_Time& start, double bpb, double note_type)
                : MetricSection (start), Meter (bpb, note_type) {}
@@ -137,7 +137,7 @@ class MeterSection : public MetricSection, public Meter {
 };
 
 /** A section of timeline with a certain Tempo. */
-class TempoSection : public MetricSection, public Tempo {
+class LIBARDOUR_API TempoSection : public MetricSection, public Tempo {
   public:
        TempoSection (const Timecode::BBT_Time& start, double qpm, double note_type)
                : MetricSection (start), Tempo (qpm, note_type), _bar_offset (-1.0)  {}
@@ -170,7 +170,7 @@ typedef std::list<MetricSection*> Metrics;
 /** Helper class to keep track of the Meter *AND* Tempo in effect
     at a given point in time.
 */
-class TempoMetric {
+class LIBARDOUR_API TempoMetric {
   public:
        TempoMetric (const Meter& m, const Tempo& t)
                : _meter (&m), _tempo (&t), _frame (0) {}
@@ -205,7 +205,7 @@ class TempoMetric {
        Timecode::BBT_Time _start;
 };
 
-class TempoMap : public PBD::StatefulDestructible
+class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
 {
   public:
        TempoMap (framecnt_t frame_rate);
index 57c7402781ac425120b5873007ee1e7a8fa29a3b..28a65218c708185dad29673f5c78daf663a06235 100644 (file)
@@ -32,14 +32,14 @@ namespace ARDOUR {
 
 class Session;
 
-class TempoMapImportHandler : public ElementImportHandler
+class LIBARDOUR_API TempoMapImportHandler : public ElementImportHandler
 {
   public:
        TempoMapImportHandler (XMLTree const & source, Session & session);
        std::string get_info () const;
 };
 
-class TempoMapImporter : public ElementImporter
+class LIBARDOUR_API TempoMapImporter : public ElementImporter
 {
   private:
        typedef boost::shared_ptr<XMLNode> XMLNodePtr;
index 9d92454887f5f29e82c81ba38e64eff4f279ca44..f30476a4747ea662959269014a45b6545d7a8360 100644 (file)
 #include <glibmm/threads.h>
 
 #include "ardour/chan_count.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
 
 class BufferSet;
 
-class ThreadBuffers {
+class LIBARDOUR_API ThreadBuffers {
 public:
        ThreadBuffers ();
        ~ThreadBuffers ();
index 7f0d1987fc775cad40416b0866a2ea6b3fedd4d8..0e5c3c80f4d0d1aada415252f3bedd99be761291 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "pbd/signals.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/session_handle.h"
 
@@ -35,7 +36,7 @@ namespace ARDOUR {
 class Session;
 class MidiPort;
 
-class MidiClockTicker : public SessionHandlePtr, boost::noncopyable
+class LIBARDOUR_API MidiClockTicker : public SessionHandlePtr, boost::noncopyable
 {
 public:
        MidiClockTicker ();
index bdf420763bed6d1dcb73bd5a056116cf6dc70703..2a6d3f7ad4f391c7c07cacb11a532eecb341f25d 100644 (file)
@@ -35,7 +35,7 @@ class Region;
 class Diskstream;
 class IO;
 
-class Track : public Route, public PublicDiskstream
+class LIBARDOUR_API Track : public Route, public PublicDiskstream
 {
   public:
        Track (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal, DataType default_type = DataType::AUDIO);
index 322e4cbc7583f69929c7b30a5d300a50cef35bf9..0e07c5851aa3ab9de7286f524fa7b13c1ccf201c 100644 (file)
@@ -28,7 +28,7 @@ class AudioSource;
 class Readable;
 class Session;
 
-class TransientDetector : public AudioAnalyser
+class LIBARDOUR_API TransientDetector : public AudioAnalyser
 {
 public:
        TransientDetector (float sample_rate);
index 071e3d151a24568356d43b8cfc4be83f496a08a8..07e2c809a33575c185085dc9167ebfcd405d3927 100644 (file)
@@ -22,7 +22,7 @@
 
 namespace ARDOUR {
 
-class Trimmable {
+class LIBARDOUR_API Trimmable {
   public:
        Trimmable() {}
        virtual ~Trimmable() {}
index 61a5734df22a65cef054d46c29e5058c472a4c0d..50234e8294a24b770e2e3535a040748cdddacac2 100644 (file)
@@ -39,7 +39,7 @@ namespace ARDOUR {
  *  session on a machine without a particular plugin will not corrupt
  *  the session.
  */
-class UnknownProcessor : public Processor
+class LIBARDOUR_API UnknownProcessor : public Processor
 {
 public:
        UnknownProcessor (Session &, XMLNode const &);
index 18008f0df204a7ecd6f92b0b90cf889c4260e206..a948ea40022d26e3d453338e5c66377ef0f6d85f 100644 (file)
@@ -28,6 +28,8 @@
 #include "lv2/lv2plug.in/ns/ext/uri-map/uri-map.h"
 #include "lv2/lv2plug.in/ns/ext/urid/urid.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /** Implementation of the LV2 uri-map and urid extensions.
@@ -35,7 +37,7 @@ namespace ARDOUR {
  * This just uses a pair of std::map and is not so great in the space overhead
  * department, but it's fast enough and not really performance critical anyway.
  */
-class URIMap : public boost::noncopyable {
+class LIBARDOUR_API URIMap : public boost::noncopyable {
 public:
        URIMap();
 
index 5ecfe521f53a0bc05ec68cdaf2fdc5adec8b1d49..4ff435ef35922ac1304b952f390d959105c07c46 100644 (file)
@@ -29,7 +29,7 @@ namespace ARDOUR {
 
 class Session;
 
-class UserBundle : public Bundle, public PBD::Stateful {
+class LIBARDOUR_API UserBundle : public Bundle, public PBD::Stateful {
 
   public:
        UserBundle (std::string const &);
index bf91d4d57e03dda76fe629d210d7233bc2160b36..f0030557e92c7f85975521fa4824ab6f5e355a0f 100644 (file)
 #include <CoreFoundation/CoreFoundation.h>
 #endif /* __APPLE__ */
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/ardour.h"
 #include "ardour/data_type.h"
 #include "ardour/dB.h"
 
 class XMLNode;
 
-std::string legalize_for_path (const std::string& str);
-std::string legalize_for_universal_path (const std::string& str);
-std::string legalize_for_uri (const std::string& str);
-std::string legalize_for_path_2X (const std::string& str);
-XMLNode* find_named_node (const XMLNode& node, std::string name);
-std::string bool_as_string (bool);
+LIBARDOUR_API std::string legalize_for_path (const std::string& str);
+LIBARDOUR_API std::string legalize_for_universal_path (const std::string& str);
+LIBARDOUR_API std::string legalize_for_uri (const std::string& str);
+LIBARDOUR_API std::string legalize_for_path_2X (const std::string& str);
+LIBARDOUR_API XMLNode* find_named_node (const XMLNode& node, std::string name);
+LIBARDOUR_API std::string bool_as_string (bool);
 
 static inline float f_max(float x, float a) {
        x -= a;
@@ -54,22 +55,22 @@ static inline float f_max(float x, float a) {
        return (x);
 }
 
-std::string bump_name_once(const std::string& s, char delimiter);
+LIBARDOUR_API std::string bump_name_once(const std::string& s, char delimiter);
 
-int cmp_nocase (const std::string& s, const std::string& s2);
+LIBARDOUR_API int cmp_nocase (const std::string& s, const std::string& s2);
 
-int touch_file(std::string path);
+LIBARDOUR_API int touch_file(std::string path);
 
-std::string region_name_from_path (std::string path, bool strip_channels, bool add_channel_suffix = false, uint32_t total = 0, uint32_t this_one = 0);
-bool path_is_paired (std::string path, std::string& pair_base);
+LIBARDOUR_API std::string region_name_from_path (std::string path, bool strip_channels, bool add_channel_suffix = false, uint32_t total = 0, uint32_t this_one = 0);
+LIBARDOUR_API bool path_is_paired (std::string path, std::string& pair_base);
 
-void compute_equal_power_fades (ARDOUR::framecnt_t nframes, float* in, float* out);
+LIBARDOUR_API void compute_equal_power_fades (ARDOUR::framecnt_t nframes, float* in, float* out);
 
-const char* sync_source_to_string (ARDOUR::SyncSource src, bool sh = false);
-ARDOUR::SyncSource string_to_sync_source (std::string str);
+LIBARDOUR_API const char* sync_source_to_string (ARDOUR::SyncSource src, bool sh = false);
+LIBARDOUR_API ARDOUR::SyncSource string_to_sync_source (std::string str);
 
-const char* edit_mode_to_string (ARDOUR::EditMode);
-ARDOUR::EditMode string_to_edit_mode (std::string);
+LIBARDOUR_API const char* edit_mode_to_string (ARDOUR::EditMode);
+LIBARDOUR_API ARDOUR::EditMode string_to_edit_mode (std::string);
 
 #undef  OLD_GAIN_MATH
 #define OLD_GAIN_MATH
@@ -141,8 +142,8 @@ slider_position_to_gain (double pos)
 }
 #undef OLD_GAIN_MATH
 
-double gain_to_slider_position_with_max (double g, double max_gain = 2.0);
-double slider_position_to_gain_with_max (double g, double max_gain = 2.0);
+LIBARDOUR_API double gain_to_slider_position_with_max (double g, double max_gain = 2.0);
+LIBARDOUR_API double slider_position_to_gain_with_max (double g, double max_gain = 2.0);
 
 /* I don't really like hard-coding these falloff rates here
  * Probably should use a map of some kind that could be configured
@@ -159,17 +160,17 @@ double slider_position_to_gain_with_max (double g, double max_gain = 2.0);
 #define METER_FALLOFF_FASTER    46.0f
 #define METER_FALLOFF_FASTEST   70.0f
 
-float meter_falloff_to_float (ARDOUR::MeterFalloff);
-ARDOUR::MeterFalloff meter_falloff_from_float (float);
-float meter_falloff_to_db_per_sec (float);
+LIBARDOUR_API float meter_falloff_to_float (ARDOUR::MeterFalloff);
+LIBARDOUR_API ARDOUR::MeterFalloff meter_falloff_from_float (float);
+LIBARDOUR_API float meter_falloff_to_db_per_sec (float);
 
-const char* native_header_format_extension (ARDOUR::HeaderFormat, const ARDOUR::DataType& type);
-bool matching_unsuffixed_filename_exists_in (const std::string& dir, const std::string& name);
+LIBARDOUR_API const char* native_header_format_extension (ARDOUR::HeaderFormat, const ARDOUR::DataType& type);
+LIBARDOUR_API bool matching_unsuffixed_filename_exists_in (const std::string& dir, const std::string& name);
 
-uint32_t how_many_dsp_threads ();
+LIBARDOUR_API uint32_t how_many_dsp_threads ();
 
 #if __APPLE__
-std::string CFStringRefToStdString(CFStringRef stringRef);
+LIBARDOUR_API std::string CFStringRefToStdString(CFStringRef stringRef);
 #endif // __APPLE__
 
 #endif /* __ardour_utils_h__ */
index 7ca973cbb70d896fc729cff010ea877f2af9f8ee..c6db001dd1b84904c5bc09746a99e6c7f6d4ecbe 100644 (file)
 
 #include "ardour/plugin.h"
 
-struct _AEffect;
+struct LIBARDOUR_API _AEffect;
 typedef struct _AEffect AEffect;
-struct _VSTHandle;
+struct LIBARDOUR_API _VSTHandle;
 typedef struct _VSTHandle VSTHandle;
-struct _VSTState;
+struct LIBARDOUR_API _VSTState;
 typedef struct _VSTState VSTState;
 
 namespace ARDOUR {
 
 /** Parent class for VST plugins of both Windows and Linux varieties */
-class VSTPlugin : public Plugin
+class LIBARDOUR_API VSTPlugin : public Plugin
 {
 public:
        VSTPlugin (AudioEngine &, Session &, VSTHandle *);
index d185d6260634c68e702f2def967e3b17ed2054f6..47308aff735d56c8d7bfcc7be43ae32bce58d03b 100644 (file)
 #ifndef __ardour_vst_types_h__
 #define __ardour_vst_types_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/vestige/aeffectx.h"
 
-struct _VSTKey
+struct LIBARDOUR_API _VSTKey
 {
        /** virtual-key code, or 0 if this _VSTFXKey is a `character' key */
        int special;
@@ -32,7 +33,7 @@ struct _VSTKey
 
 typedef struct _VSTKey VSTKey;
 
-struct _VSTInfo 
+struct LIBARDOUR_API _VSTInfo 
 {
        char  *name;
        char  *creator;
@@ -56,7 +57,7 @@ typedef struct _VSTInfo VSTInfo;
 
 typedef AEffect * (* main_entry_t) (audioMasterCallback);
 
-struct _VSTHandle
+struct LIBARDOUR_API _VSTHandle
 {
        void*        dll;
        char*        name;
@@ -69,7 +70,7 @@ struct _VSTHandle
 
 typedef struct _VSTHandle VSTHandle;
 
-struct _VSTState
+struct LIBARDOUR_API _VSTState
 {
        AEffect* plugin;
 
index 86487e8e8e6a90331de32451a1db2b96c8216c53..f8abc7fa93cbbe318979836898b14b80a167810b 100644 (file)
@@ -20,8 +20,9 @@
 #ifndef __VUMETERDSP_H
 #define        __VUMETERDSP_H
 
+#include "ardour/libardour_visibility.h"
 
-class Vumeterdsp
+class LIBARDOUR_API Vumeterdsp
 {
 public:
 
index 83bc113a004cbbbbea58599921a36d6c4b0853eb..ee4850dc050b1d723135fdc5a24c8078fdff6fb9 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "ardour/vst_plugin.h"
 
-struct _VSTHandle;
+struct LIBARDOUR_API _VSTHandle;
 typedef struct _VSTHandle VSTHandle;
 
 namespace ARDOUR {
@@ -30,7 +30,7 @@ namespace ARDOUR {
 class AudioEngine;
 class Session;
 
-class WindowsVSTPlugin : public VSTPlugin
+class LIBARDOUR_API WindowsVSTPlugin : public VSTPlugin
 {
 public:
        WindowsVSTPlugin (AudioEngine &, Session &, VSTHandle *);
@@ -40,7 +40,7 @@ public:
        std::string state_node_name () const { return "windows-vst"; }
 };
 
-class WindowsVSTPluginInfo : public PluginInfo
+class LIBARDOUR_API WindowsVSTPluginInfo : public PluginInfo
 {
 public:
        WindowsVSTPluginInfo ();
index 4f3ff54bc10782898d32a711e7826f246732cc29..c9ff2f2d7f3c8efc41f3507d5d63059e9be22d47 100644 (file)
 #include "pbd/ringbuffer.h"
 #include "pbd/semaphore.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /**
    An object that needs to schedule non-RT work in the audio thread.
 */
-class Workee {
+class LIBARDOUR_API Workee {
 public:
        virtual ~Workee() {}
 
@@ -50,7 +52,7 @@ public:
 /**
    A worker thread for non-realtime tasks scheduled in the audio thread.
 */
-class Worker
+class LIBARDOUR_API Worker
 {
 public:
        Worker(Workee* workee, uint32_t ring_size);
index 02d1abb9307b0fde2c29db8b2c6b3aa8511454a6..bb4f3181e040feb25f0234549a52cb7d9695cf70 100644 (file)
@@ -22,6 +22,8 @@
 #include "pbd/error.h"
 #include "ardour/cycle_timer.h"
 
+#include "ardour/libardour_visibility.h"
+
 #include "i18n.h"
 
 using namespace std;
index c360e8220677910845fb67a896674b08623bebc4..8f6483b145b2a32b4b8dcec7ac1a0dc5b6adadba 100644 (file)
@@ -18,6 +18,7 @@
 
 */
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/element_import_handler.h"
 
 #include <algorithm>
index 9e126ed08786e7dbd01c305be9c17c5e80159f80..f7fe22c3b48c5a37b72435f55f2f6ad5305033bf 100644 (file)
@@ -19,7 +19,6 @@
 */
 
 #include <string>
-#include "ardour/export_filename.h"
 
 #include <glibmm/miscutils.h>
 #include <glibmm/fileutils.h>
 #include "pbd/convert.h"
 #include "pbd/enumwriter.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/session.h"
 #include "ardour/session_directory.h"
-#include "ardour/export_timespan.h"
+#include "ardour/export_filename.h"
 #include "ardour/export_format_specification.h"
 #include "ardour/export_channel_configuration.h"
+#include "ardour/export_timespan.h"
 #include "ardour/utils.h"
 
 #include "i18n.h"
index 85d2f981d7a8c37c42575064ab70092ff2d622b2..3caa7cd1d0e8fc1db39639769ae4ddc8d4506e46 100644 (file)
@@ -16,6 +16,7 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/route_group_member.h"
 
 using namespace ARDOUR;
index e8aef4119dca8675680c3c28cdc321ba66e85c00..21cbfbdce22579524cf45670eba168f69fa0b2a6 100644 (file)
@@ -12,7 +12,7 @@ as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.
 
 #include "pbd/libpbd_visibility.h"
 
-LIBPBD_API static inline float fast_log2 (float val)
+static inline float fast_log2 (float val)
 {
        /* don't use reinterpret_cast<> because that prevents this
           from being used by pure C code (for example, GnomeCanvasItems)
@@ -31,16 +31,16 @@ LIBPBD_API static inline float fast_log2 (float val)
        return (val + log_2);
 }
 
-LIBPBD_API static inline float fast_log (const float val)
+static inline float fast_log (const float val)
 {
        return (fast_log2 (val) * 0.69314718f);
 }
 
-LIBPBD_API static inline float fast_log10 (const float val)
+static inline float fast_log10 (const float val)
 {
        return fast_log2(val) / 3.312500f;
 }
 
-LIBPBD_API static inline float minus_infinity(void) { return -HUGE_VAL; }
+static inline float minus_infinity(void) { return -HUGE_VAL; }
 
 #endif /* __pbd_fastlog_h__ */
index b03158c2776bed5038c5b3ae842590d8c4eed592..e5d582625a8b32e18ebdb8bdf71422af302bb3d5 100644 (file)
@@ -47,7 +47,7 @@ union LIBPBD_API Float_t
  
 /* Note: ULPS = Units in the Last Place */
 
-LIBPBD_API static inline bool floateq (float a, float b, int max_ulps_diff)
+static inline bool floateq (float a, float b, int max_ulps_diff)
 {
     Float_t ua (a);
     Float_t ub (b);
index ba0922560854b3f2b2f43ba898ff4389f705047c..6560780f3c6df6e02133a04b5a6e35aabb670a2e 100644 (file)
@@ -50,8 +50,8 @@
  *  references to non-existant crossfades.  To get around this, CrossfadeBinder
  *  can do `just-in-time' binding from the crossfade ID.
  */
-template <class obj_T> LIBPBD_API 
-class MementoCommandBinder : public PBD::Destructible
+template <class obj_T>
+class LIBPBD_API MementoCommandBinder : public PBD::Destructible
 {
 public:
        /** @return Stateful object to operate on */
@@ -67,8 +67,8 @@ public:
 };
 
 /** A simple MementoCommandBinder which binds directly to an object */
-template <class obj_T> LIBPBD_API 
-class SimpleMementoCommandBinder : public MementoCommandBinder<obj_T>
+template <class obj_T>
+class LIBPBD_API SimpleMementoCommandBinder : public MementoCommandBinder<obj_T>
 {
 public:
        SimpleMementoCommandBinder (obj_T& o)
@@ -99,8 +99,8 @@ private:
  * (from Stateful::get_state()), so undo becomes restoring the before
  * memento, and redo is restoring the after memento.
  */
-template <class obj_T> LIBPBD_API 
-class MementoCommand : public Command
+template <class obj_T>
+class LIBPBD_API MementoCommand : public Command
 {
 public:
        MementoCommand (obj_T& a_object, XMLNode* a_before, XMLNode* a_after) 
index f075a997466740e259e1cc3d2e5b671dfe0f6140..2187c727edfaac8b971708268c9bcd12a4a3d180 100644 (file)
@@ -29,8 +29,8 @@
 namespace PBD
 {
 
-class LIBPBD_API StatefulDestructible; 
-class LIBPBD_API PropertyList;
+class StatefulDestructible;    
+class PropertyList;
 
 /** A Command which stores its action as the differences between the before and after
  *  state of a Stateful object.