Update Archive GUI: expose audio-encoding, set progress text
This commit is contained in:
parent
c80e8727df
commit
a957d058e4
|
@ -41,15 +41,20 @@ SessionArchiveDialog::SessionArchiveDialog ()
|
|||
HBox* hbox;
|
||||
Label* label;
|
||||
|
||||
zip_ext.append_text (".tar.xz");
|
||||
zip_ext.set_active_text (".tar.xz");
|
||||
format_selector.append_text (".tar.xz");
|
||||
format_selector.set_active_text (".tar.xz");
|
||||
|
||||
encode_selector.append_text (_("None"));
|
||||
encode_selector.append_text (_("FLAC 16bit"));
|
||||
encode_selector.append_text (_("FLAC 24bit"));
|
||||
encode_selector.set_active_text ("FLAC 16bit"); // TODO remember
|
||||
|
||||
hbox = manage (new HBox);
|
||||
hbox->set_spacing (6);
|
||||
label = manage (new Label (_("Archive Name")));
|
||||
hbox->pack_start (*label, false, false);
|
||||
hbox->pack_start (name_entry, true, true);
|
||||
hbox->pack_start (zip_ext, false, false);
|
||||
hbox->pack_start (format_selector, false, false);
|
||||
vbox->pack_start (*hbox, false, false);
|
||||
|
||||
hbox = manage (new HBox);
|
||||
|
@ -59,8 +64,14 @@ SessionArchiveDialog::SessionArchiveDialog ()
|
|||
hbox->pack_start (target_folder_selector, true, true);
|
||||
vbox->pack_start (*hbox, false, false);
|
||||
|
||||
hbox = manage (new HBox);
|
||||
hbox->set_spacing (6);
|
||||
label = manage (new Label (_("Audio Compression")));
|
||||
hbox->pack_start (*label, false, false);
|
||||
hbox->pack_start (encode_selector, true, true);
|
||||
vbox->pack_start (*hbox, false, false);
|
||||
|
||||
vbox->pack_start (progress_bar, true, true, 12);
|
||||
progress_bar.set_text (_("Archiving"));
|
||||
|
||||
vbox->show_all ();
|
||||
progress_bar.hide ();
|
||||
|
@ -85,7 +96,7 @@ SessionArchiveDialog::name_entry_changed ()
|
|||
return;
|
||||
}
|
||||
|
||||
std::string dir = Glib::build_filename (target_folder(), name_entry.get_text());
|
||||
std::string dir = Glib::build_filename (target_folder(), name_entry.get_text() + format_selector.get_active_text ());
|
||||
|
||||
if (Glib::file_test (dir, Glib::FILE_TEST_EXISTS)) {
|
||||
set_response_sensitive (RESPONSE_OK, false);
|
||||
|
@ -101,6 +112,13 @@ SessionArchiveDialog::target_folder () const
|
|||
return target_folder_selector.get_filename ();
|
||||
}
|
||||
|
||||
void
|
||||
SessionArchiveDialog::set_target_folder (const std::string& name)
|
||||
{
|
||||
target_folder_selector.set_current_folder (name);
|
||||
name_entry_changed ();
|
||||
}
|
||||
|
||||
string
|
||||
SessionArchiveDialog::name () const
|
||||
{
|
||||
|
@ -108,17 +126,54 @@ SessionArchiveDialog::name () const
|
|||
}
|
||||
|
||||
void
|
||||
SessionArchiveDialog::set_name (std::string name)
|
||||
SessionArchiveDialog::set_name (const std::string& name)
|
||||
{
|
||||
name_entry.set_text (name);
|
||||
name_entry_changed ();
|
||||
}
|
||||
|
||||
ARDOUR::Session::ArchiveEncode
|
||||
SessionArchiveDialog::encode_option () const
|
||||
{
|
||||
string codec = encode_selector.get_active_text ();
|
||||
if (codec == _("FLAC 16bit")) {
|
||||
return ARDOUR::Session::FLAC_16BIT;
|
||||
}
|
||||
if (codec == _("FLAC 24bit")) {
|
||||
return ARDOUR::Session::FLAC_24BIT;
|
||||
}
|
||||
return ARDOUR::Session::NO_ENCODE;
|
||||
}
|
||||
|
||||
void
|
||||
SessionArchiveDialog::set_encode_option (ARDOUR::Session::ArchiveEncode e)
|
||||
{
|
||||
switch (e) {
|
||||
case ARDOUR::Session::FLAC_16BIT:
|
||||
encode_selector.set_active_text (_("FLAC 16bit"));
|
||||
break;
|
||||
case ARDOUR::Session::FLAC_24BIT:
|
||||
encode_selector.set_active_text (_("FLAC 24bit"));
|
||||
break;
|
||||
default:
|
||||
encode_selector.set_active_text (_("None"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SessionArchiveDialog::update_progress_gui (float p)
|
||||
{
|
||||
set_response_sensitive (RESPONSE_OK, false);
|
||||
set_response_sensitive (RESPONSE_CANCEL, false);
|
||||
progress_bar.show ();
|
||||
if (p < 0) {
|
||||
progress_bar.set_text (_("Archiving Session"));
|
||||
return;
|
||||
}
|
||||
if (p > 1.0) {
|
||||
progress_bar.set_text (_("Encoding Audio"));
|
||||
return;
|
||||
}
|
||||
progress_bar.set_fraction (p);
|
||||
}
|
||||
|
|
|
@ -37,18 +37,18 @@ public:
|
|||
|
||||
std::string target_folder () const;
|
||||
std::string name () const;
|
||||
ARDOUR::Session::ArchiveEncode encode_option () const;
|
||||
|
||||
ARDOUR::Session::ArchiveEncode encode_option () const {
|
||||
return ARDOUR::Session::FLAC_16BIT;
|
||||
}
|
||||
|
||||
void set_name (std::string);
|
||||
|
||||
void set_name (const std::string&);
|
||||
void set_target_folder (const std::string&);
|
||||
void set_encode_option (ARDOUR::Session::ArchiveEncode);
|
||||
|
||||
private:
|
||||
Gtk::FileChooserButton target_folder_selector;
|
||||
Gtk::Entry name_entry;
|
||||
Gtk::ComboBoxText zip_ext;
|
||||
Gtk::Entry name_entry;
|
||||
Gtk::ComboBoxText format_selector;
|
||||
Gtk::ComboBoxText encode_selector;
|
||||
|
||||
Gtk::ProgressBar progress_bar;
|
||||
|
||||
void name_entry_changed ();
|
||||
|
|
Loading…
Reference in New Issue