X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_format_base.h;h=093913e294b9f8b1302d3d4115e5addb1710b3e6;hb=91ab5e31751105d59386aab6a6e16ac5582904dc;hp=ceb11a2cc9cecd5ea3ac7d0b9637dfd655f64bc3;hpb=f6fdd8dcbf41f864e9f0cc32dabe81fe3533ddfe;p=ardour.git diff --git a/libs/ardour/ardour/export_format_base.h b/libs/ardour/ardour/export_format_base.h index ceb11a2cc9..093913e294 100644 --- a/libs/ardour/ardour/export_format_base.h +++ b/libs/ardour/ardour/export_format_base.h @@ -22,21 +22,23 @@ #define __ardour_export_format_base_h__ #include -#include +#include + #include -#include #include #include -#include "ardour/gdither_types.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 { @@ -48,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, @@ -76,10 +79,10 @@ class ExportFormatBase { }; enum DitherType { - D_None = GDitherNone, - D_Rect = GDitherRect, - D_Tri = GDitherTri, - D_Shaped = GDitherShaped + D_None = AudioGrapher::D_None, + D_Rect = AudioGrapher::D_Rect, + D_Tri = AudioGrapher::D_Tri, + D_Shaped = AudioGrapher::D_Shaped }; enum Quality { @@ -92,11 +95,14 @@ class ExportFormatBase { 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 }; @@ -109,30 +115,30 @@ class ExportFormatBase { }; /// Class for managing selection and compatibility states - class SelectableCompatible { + class LIBARDOUR_API SelectableCompatible { public: SelectableCompatible () : _selected (false), _compatible (true) { } ~SelectableCompatible () {} - boost::signals2::signal SelectChanged; - boost::signals2::signal CompatibleChanged; + PBD::Signal1 SelectChanged; + PBD::Signal1 CompatibleChanged; 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: @@ -143,7 +149,6 @@ class ExportFormatBase { virtual ~ExportFormatBase (); boost::shared_ptr get_intersection (ExportFormatBase const & other) const; - boost::shared_ptr get_difference (ExportFormatBase const & other) const; boost::shared_ptr get_union (ExportFormatBase const & other) const; bool endiannesses_empty () const { return endiannesses.empty (); } @@ -158,8 +163,10 @@ class ExportFormatBase { 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 (framecnt_t sample_rate); protected: @@ -180,11 +187,10 @@ class ExportFormatBase { private: - Glib::ustring _extension; + std::string _extension; enum SetOperation { SetUnion, - SetDifference, SetIntersection };