#undef interface
#endif
-#include <gtkmm.h>
-
-class ExportFormatDialog : public ArdourDialog, public PBD::ScopedConnectionList {
- private:
+#include <gtkmm/adjustment.h>
+#include <gtkmm/box.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/entry.h>
+#include <gtkmm/label.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/radiobutton.h>
+#include <gtkmm/spinbutton.h>
+#include <gtkmm/table.h>
+#include <gtkmm/treeview.h>
+
+class ExportFormatDialog : public ArdourDialog, public PBD::ScopedConnectionList
+{
+private:
typedef ARDOUR::WeakExportFormatCompatibilityPtr WeakCompatPtr;
typedef ARDOUR::WeakExportFormatPtr WeakFormatPtr;
typedef boost::shared_ptr<ARDOUR::ExportFormatSpecification> FormatPtr;
- public:
+public:
explicit ExportFormatDialog (FormatPtr format, bool new_dialog = false);
~ExportFormatDialog ();
void set_session (ARDOUR::Session* s);
- private:
+private:
FormatPtr format;
ARDOUR::ExportFormatManager manager;
void update_trim_end_selection ();
void update_normalize_selection ();
+ void update_normalize_sensitivity ();
void update_silence_start_selection ();
void update_silence_end_selection ();
void update_time (ARDOUR::AnyTime & time, AudioClock const & clock);
void update_src_quality_selection ();
+ void update_codec_quality_selection ();
void update_tagging_selection ();
+ void set_codec_quality_selection ();
/*** Encoding options */
void show_ogg_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatOggVorbis> ptr);
void show_flac_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatFLAC> ptr);
void show_bwf_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatBWF> ptr);
+ void show_ffmpeg_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatFFMPEG> ptr);
void fill_sample_format_lists (boost::shared_ptr<ARDOUR::HasSampleFormat> ptr);
+ void fill_codec_quality_lists (boost::shared_ptr<ARDOUR::HasCodecQuality> ptr);
/*** GUI components ***/
Gtk::HBox normalize_hbox;
Gtk::CheckButton normalize_checkbox;
- Gtk::SpinButton normalize_spinbutton;
- Gtk::Adjustment normalize_adjustment;
- Gtk::Label normalize_db_label;
+ Gtk::RadioButton normalize_peak_rb;
+ Gtk::RadioButton normalize_loudness_rb;
+ Gtk::SpinButton normalize_dbfs_spinbutton;
+ Gtk::Adjustment normalize_dbfs_adjustment;
+ Gtk::SpinButton normalize_lufs_spinbutton;
+ Gtk::Adjustment normalize_lufs_adjustment;
+ Gtk::SpinButton normalize_dbtp_spinbutton;
+ Gtk::Adjustment normalize_dbtp_adjustment;
+ Gtk::Label normalize_dbfs_label;
+ Gtk::Label normalize_lufs_label;
+ Gtk::Label normalize_dbtp_label;
/* Silence */
Gtk::CheckButton silence_end_checkbox;
AudioClock silence_end_clock;
+ /* Post-export hook */
+
+ Gtk::Label command_label;
+ Gtk::Entry command_entry;
+
/* Format table */
struct CompatibilityCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::ExportFormatCompatibilityPtr> ptr;
Gtk::TreeModelColumn<bool> selected;
Gtk::TreeModelColumn<std::string> label;
struct QualityCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::ExportFormatManager::QualityPtr> ptr;
Gtk::TreeModelColumn<std::string> color;
Gtk::TreeModelColumn<std::string> label;
struct FormatCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::ExportFormatPtr> ptr;
Gtk::TreeModelColumn<std::string> color;
Gtk::TreeModelColumn<std::string> label;
struct SampleRateCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::ExportFormatManager::SampleRatePtr> ptr;
Gtk::TreeModelColumn<std::string> color;
Gtk::TreeModelColumn<std::string> label;
struct SRCQualityCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::ExportFormatBase::SRCQuality> id;
Gtk::TreeModelColumn<std::string> label;
struct SampleFormatCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::HasSampleFormat::SampleFormatPtr> ptr;
Gtk::TreeModelColumn<std::string> color;
Gtk::TreeModelColumn<std::string> label;
struct DitherTypeCols : public Gtk::TreeModelColumnRecord
{
- public:
+ public:
Gtk::TreeModelColumn<ARDOUR::HasSampleFormat::DitherTypePtr> ptr;
Gtk::TreeModelColumn<std::string> color;
Gtk::TreeModelColumn<std::string> label;
Gtk::CheckButton with_cue;
Gtk::CheckButton with_toc;
+ Gtk::CheckButton with_mp4chaps;
Gtk::VBox cue_toc_vbox;
void update_with_toc ();
void update_with_cue ();
+ void update_with_mp4chaps();
+ void update_command ();
Gtk::TreeView sample_format_view;
Gtk::TreeView dither_type_view;
+
+ /* codec quality combo */
+
+ struct CodecQualityCols : public Gtk::TreeModelColumnRecord
+ {
+ public:
+ Gtk::TreeModelColumn<int> quality;
+ Gtk::TreeModelColumn<std::string> label;
+
+ CodecQualityCols () { add(quality); add(label); }
+ };
+ CodecQualityCols codec_quality_cols;
+ Glib::RefPtr<Gtk::ListStore> codec_quality_list;
+
+ Gtk::ComboBox codec_quality_combo;
+
/* Tagging */
Gtk::CheckButton tag_checkbox;