X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fexport_formats.cc;h=642f05a2280a2f20e63ad75ab8d9d500b97ed069;hb=6946bdc0830c9f0971d2cd0d54b27e343c54d96a;hp=a3fa389e8c5e8886be60c24f78223d335260e716;hpb=3b89d9eaa03406a5e03648f47734211f09b89d62;p=ardour.git diff --git a/libs/ardour/export_formats.cc b/libs/ardour/export_formats.cc index a3fa389e8c..642f05a228 100644 --- a/libs/ardour/export_formats.cc +++ b/libs/ardour/export_formats.cc @@ -20,7 +20,7 @@ #include "ardour/export_formats.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; @@ -45,7 +45,7 @@ HasSampleFormat::HasSampleFormat (ExportFormatBase::SampleFormatSet & sample_for _sample_formats (sample_formats) { /* Dither Types */ - + add_dither_type (ExportFormatBase::D_Shaped, _("Shaped Noise")); add_dither_type (ExportFormatBase::D_Tri, _("Triangular")); add_dither_type (ExportFormatBase::D_Rect, _("Rectangular")); @@ -56,22 +56,28 @@ void HasSampleFormat::add_sample_format (ExportFormatBase::SampleFormat format) { _sample_formats.insert (format); - + SampleFormatPtr ptr (new SampleFormatState (format, get_sample_format_name (format))); sample_format_states.push_back (ptr); - ptr->SelectChanged.connect (sigc::bind (SampleFormatSelectChanged.make_slot(), WeakSampleFormatPtr (ptr))); - ptr->SelectChanged.connect (sigc::mem_fun (*this, &HasSampleFormat::update_sample_format_selection)); - ptr->CompatibleChanged.connect (sigc::bind (SampleFormatCompatibleChanged.make_slot(), WeakSampleFormatPtr (ptr))); + ptr->SelectChanged.connect_same_thread (*this, boost::bind (&HasSampleFormat::update_sample_format_selection, this, _1)); + // BOOST SIGNALS Could this be made any uglier? + ptr->SelectChanged.connect_same_thread (*this, + boost::bind (boost::type (), boost::ref (SampleFormatSelectChanged), _1, WeakSampleFormatPtr (ptr))); + ptr->CompatibleChanged.connect_same_thread (*this, + boost::bind (boost::type (), boost::ref (SampleFormatCompatibleChanged), _1, WeakSampleFormatPtr (ptr))); } void -HasSampleFormat::add_dither_type (ExportFormatBase::DitherType type, Glib::ustring name) +HasSampleFormat::add_dither_type (ExportFormatBase::DitherType type, string name) { DitherTypePtr ptr (new DitherTypeState (type, name)); dither_type_states.push_back (ptr); - ptr->SelectChanged.connect (sigc::bind (DitherTypeSelectChanged.make_slot(), WeakDitherTypePtr (ptr))); - ptr->SelectChanged.connect (sigc::mem_fun (*this, &HasSampleFormat::update_dither_type_selection)); - ptr->CompatibleChanged.connect (sigc::bind (DitherTypeCompatibleChanged.make_slot(), WeakDitherTypePtr (ptr))); + ptr->SelectChanged.connect_same_thread (*this, boost::bind (&HasSampleFormat::update_dither_type_selection, this, _1)); + // BOOST SIGNALS Could this be made any uglier? + ptr->SelectChanged.connect_same_thread (*this, + boost::bind (boost::type (), boost::ref (DitherTypeSelectChanged), _1, WeakDitherTypePtr (ptr))); + ptr->CompatibleChanged.connect_same_thread (*this, + boost::bind (boost::type (),boost::ref ( DitherTypeCompatibleChanged), _1, WeakDitherTypePtr (ptr))); } HasSampleFormat::SampleFormatPtr @@ -82,7 +88,7 @@ HasSampleFormat::get_selected_sample_format () return *it; } } - + return SampleFormatPtr(); } @@ -94,7 +100,7 @@ HasSampleFormat::get_selected_dither_type () return *it; } } - + return DitherTypePtr(); } @@ -105,7 +111,7 @@ HasSampleFormat::update_sample_format_selection (bool) if (!format) { return; } - + if (format->format == ExportFormatBase::SF_24 || format->format == ExportFormatBase::SF_32 || format->format == ExportFormatBase::SF_Float || @@ -132,13 +138,13 @@ HasSampleFormat::update_dither_type_selection (bool) if (!type) { return; } - + if (!type->compatible()) { SampleFormatPtr format = get_selected_sample_format(); if (format) { format->set_selected (false); } - + for (DitherTypeList::iterator it = dither_type_states.begin(); it != dither_type_states.end(); ++it) { (*it)->set_compatible (true); } @@ -150,19 +156,19 @@ HasSampleFormat::get_sample_format_name (ExportFormatBase::SampleFormat format) { switch (format) { case ExportFormatBase::SF_8: - return _("8bit"); + return _("8-bit"); case ExportFormatBase::SF_16: - return _("16bit"); + return _("16-bit"); case ExportFormatBase::SF_24: - return _("24bit"); + return _("24-bit"); case ExportFormatBase::SF_32: - return _("32bit"); + return _("32-bit"); case ExportFormatBase::SF_Float: return _("float"); case ExportFormatBase::SF_Double: return _("double"); case ExportFormatBase::SF_U8: - return _("8bit unsigned"); + return _("8-bit unsigned"); case ExportFormatBase::SF_Vorbis: return _("Vorbis sample format"); case ExportFormatBase::SF_None: @@ -173,22 +179,24 @@ HasSampleFormat::get_sample_format_name (ExportFormatBase::SampleFormat format) /*** Linear ***/ -ExportFormatLinear::ExportFormatLinear (Glib::ustring name, FormatId format_id) : +ExportFormatLinear::ExportFormatLinear (string name, FormatId format_id) : HasSampleFormat (sample_formats), _default_sample_format (SF_None) { set_name (name); set_format_id (format_id); - + + add_sample_rate (SR_8); add_sample_rate (SR_22_05); add_sample_rate (SR_44_1); add_sample_rate (SR_48); add_sample_rate (SR_88_2); add_sample_rate (SR_96); add_sample_rate (SR_192); - + add_sample_rate (SR_Session); + add_endianness (E_FileDefault); - + set_quality (Q_LosslessLinear); } @@ -202,29 +210,29 @@ ExportFormatLinear::set_compatibility_state (ExportFormatCompatibility const & c if (!compatibility.has_quality (Q_LosslessLinear)) { compatible = false; } - + if (!compatibility.has_format (get_format_id())) { compatible = false; } boost::shared_ptr intersection = get_intersection (compatibility); - + if (intersection->endiannesses_empty()) { compatible = false; } - + if (intersection->sample_rates_empty()) { compatible = false; } - + if (intersection->sample_formats_empty()) { compatible = false; } - + set_compatible (compatible); /* Sample Formats */ - + for (SampleFormatList::iterator it = sample_format_states.begin(); it != sample_format_states.end(); ++it) { (*it)->set_compatible (compatibility.has_sample_format ((*it)->format)); } @@ -237,7 +245,7 @@ ExportFormatLinear::set_compatibility_state (ExportFormatCompatibility const & c ExportFormatOggVorbis::ExportFormatOggVorbis () { /* Check system compatibility */ - + SF_INFO sf_info; sf_info.channels = 2; sf_info.samplerate = SR_44_1; @@ -245,20 +253,21 @@ ExportFormatOggVorbis::ExportFormatOggVorbis () if (sf_format_check (&sf_info) != SF_TRUE) { throw ExportFormatIncompatible(); } - + set_name ("Ogg Vorbis"); set_format_id (F_Ogg); sample_formats.insert (SF_Vorbis); - + add_sample_rate (SR_22_05); add_sample_rate (SR_44_1); add_sample_rate (SR_48); add_sample_rate (SR_88_2); add_sample_rate (SR_96); add_sample_rate (SR_192); - + add_sample_rate (SR_Session); + add_endianness (E_FileDefault); - + set_extension ("ogg"); set_quality (Q_LossyCompression); } @@ -277,7 +286,7 @@ ExportFormatFLAC::ExportFormatFLAC () : HasSampleFormat (sample_formats) { /* Check system compatibility */ - + SF_INFO sf_info; sf_info.channels = 2; sf_info.samplerate = SR_44_1; @@ -285,23 +294,24 @@ ExportFormatFLAC::ExportFormatFLAC () : if (sf_format_check (&sf_info) != SF_TRUE) { throw ExportFormatIncompatible(); } - + set_name ("FLAC"); set_format_id (F_FLAC); - + add_sample_rate (SR_22_05); add_sample_rate (SR_44_1); add_sample_rate (SR_48); add_sample_rate (SR_88_2); add_sample_rate (SR_96); add_sample_rate (SR_192); - + add_sample_rate (SR_Session); + add_sample_format (SF_8); add_sample_format (SF_16); add_sample_format (SF_24); - + add_endianness (E_FileDefault); - + set_extension ("flac"); set_quality (Q_LosslessCompression); } @@ -321,13 +331,14 @@ ExportFormatBWF::ExportFormatBWF () : { set_name ("BWF"); set_format_id (F_WAV); - + add_sample_rate (SR_22_05); add_sample_rate (SR_44_1); add_sample_rate (SR_48); add_sample_rate (SR_88_2); add_sample_rate (SR_96); add_sample_rate (SR_192); + add_sample_rate (SR_Session); add_sample_format (SF_U8); add_sample_format (SF_16); @@ -335,9 +346,9 @@ ExportFormatBWF::ExportFormatBWF () : add_sample_format (SF_32); add_sample_format (SF_Float); add_sample_format (SF_Double); - + add_endianness (E_FileDefault); - + set_extension ("wav"); set_quality (Q_LosslessLinear); }