#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 {
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,
enum SampleRate {
SR_None = 0,
- SR_22_05 = 220500,
+ SR_Session = 1,
+ 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
};
};
/// Class for managing selection and compatibility states
- class SelectableCompatible {
+ class LIBARDOUR_API SelectableCompatible {
public:
SelectableCompatible ()
: _selected (false), _compatible (true) { }
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 (); }
void set_extension (std::string const & extension) { _extension = extension; }
std::string const & extension () const { return _extension; }
+ static SampleRate nearest_sample_rate (samplecnt_t sample_rate);
+
protected:
friend class HasSampleFormat;
enum SetOperation {
SetUnion,
- SetDifference,
SetIntersection
};