#define __ardour_export_format_base_h__
#include <set>
-#include <algorithm>
+#include <string>
+
#include <boost/shared_ptr.hpp>
-#include <glibmm/ustring.h>
#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) { }
bool selected () const { return _selected; }
bool compatible () const { return _compatible; }
- Glib::ustring name () const { return _name; }
+ std::string name () const { return _name; }
void set_selected (bool value);
void set_compatible (bool value);
protected:
- void set_name (Glib::ustring name) { _name = name; }
+ void set_name (std::string name) { _name = name; }
private:
bool _selected;
bool _compatible;
- Glib::ustring _name;
+ std::string _name;
};
public:
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 (); }
bool has_format (FormatId format) const { return format_ids.find (format) != format_ids.end(); }
bool has_quality (Quality quality) const { return qualities.find (quality) != qualities.end(); }
- void set_extension (Glib::ustring const & extension) { _extension = extension; }
- Glib::ustring const & extension () const { return _extension; }
+ 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:
private:
- Glib::ustring _extension;
+ std::string _extension;
enum SetOperation {
SetUnion,
- SetDifference,
SetIntersection
};