add LuaTableRef to DSP API as alternative to shared-mem
[ardour.git] / libs / ardour / ardour / export_format_base.h
index 00da1c75c88e1b158e429ad3f7cc36dd866ae7ed..093913e294b9f8b1302d3d4115e5addb1710b3e6 100644 (file)
 #define __ardour_export_format_base_h__
 
 #include <set>
-#include <algorithm>
-#include <boost/shared_ptr.hpp>
 #include <string>
 
+#include <boost/shared_ptr.hpp>
+
 #include <sndfile.h>
 #include <samplerate.h>
 
-#include "ardour/ardour.h"
+#include "pbd/signals.h"
+#include "ardour/libardour_visibility.h"
+#include "ardour/types.h"
 
 #include "audiographer/general/sample_format_converter.h"
 
 namespace ARDOUR
 {
 
-class HasSampleFormat;
-
-class ExportFormatBase {
+class LIBARDOUR_API ExportFormatBase {
   public:
 
        enum Type {
@@ -50,6 +50,7 @@ class ExportFormatBase {
                F_None = 0,
                F_WAV = SF_FORMAT_WAV,
                F_W64 = SF_FORMAT_W64,
+               F_CAF = SF_FORMAT_CAF,
                F_AIFF = SF_FORMAT_AIFF,
                F_AU = SF_FORMAT_AU,
                F_IRCAM = SF_FORMAT_IRCAM,
@@ -95,11 +96,13 @@ class ExportFormatBase {
        enum SampleRate {
                SR_None = 0,
                SR_Session = 1,
-               SR_22_05 = 220500,
+               SR_8 = 8000,
+               SR_22_05 = 22050,
                SR_44_1 = 44100,
                SR_48 = 48000,
                SR_88_2 = 88200,
                SR_96 = 96000,
+               SR_176_4 = 176400,
                SR_192 = 192000
        };
 
@@ -112,7 +115,7 @@ class ExportFormatBase {
        };
 
        /// Class for managing selection and compatibility states
-       class SelectableCompatible {
+       class LIBARDOUR_API SelectableCompatible {
          public:
                SelectableCompatible ()
                        : _selected (false), _compatible (true) { }
@@ -146,7 +149,6 @@ class ExportFormatBase {
        virtual ~ExportFormatBase ();
 
        boost::shared_ptr<ExportFormatBase> get_intersection (ExportFormatBase const & other) const;
-       boost::shared_ptr<ExportFormatBase> get_difference (ExportFormatBase const & other) const;
        boost::shared_ptr<ExportFormatBase> get_union (ExportFormatBase const & other) const;
 
        bool endiannesses_empty () const { return endiannesses.empty (); }
@@ -163,7 +165,7 @@ class ExportFormatBase {
 
        void set_extension (std::string const & extension) { _extension = extension; }
        std::string const & extension () const { return _extension; }
-       
+
        static SampleRate nearest_sample_rate (framecnt_t sample_rate);
 
   protected:
@@ -189,7 +191,6 @@ class ExportFormatBase {
 
        enum SetOperation {
                SetUnion,
-               SetDifference,
                SetIntersection
        };