diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-17 08:44:51 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-09-17 08:44:51 +0000 |
commit | 1c299d5a5c493986ca4a19bd55a69281dabada86 (patch) | |
tree | dae18913a2261a157ba32308ef804050e1232542 /gtk2_ardour | |
parent | 8e9a83dfdc233898e7c470667c7c9b797c83fe8b (diff) |
merge Sakari's (sbergen) branch back into 3.0, removing libsndfile and adding taglib
git-svn-id: svn://localhost/ardour2/branches/3.0@3736 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/SConscript | 12 | ||||
-rw-r--r-- | gtk2_ardour/about.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/ardour.menus | 8 | ||||
-rw-r--r-- | gtk2_ardour/ardour_dialog.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/ardour_dialog.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 19 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 19 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor_export_audio.cc | 96 | ||||
-rw-r--r-- | gtk2_ardour/editor_markers.cc | 22 | ||||
-rw-r--r-- | gtk2_ardour/location_ui.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/main.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/public_editor.h | 16 |
16 files changed, 109 insertions, 132 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 136fe6a3db..1a832b12ae 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -53,6 +53,7 @@ gtkardour.Merge ([ libraries['samplerate'], libraries['sigc2'], libraries['sndfile-ardour'], + libraries['taglib'], libraries['sysmidi'], libraries['vamp'], libraries['vamphost'], @@ -170,10 +171,12 @@ editor_tempodisplay.cc editor_timefx.cc engine_dialog.cc enums.cc -export_dialog.cc -export_range_markers_dialog.cc -export_region_dialog.cc -export_session_dialog.cc +export_format_dialog.cc +export_main_dialog.cc +export_channel_selector.cc +export_filename_selector.cc +export_format_selector.cc +export_timespan_selector.cc gain_meter.cc generic_pluginui.cc ghostregion.cc @@ -220,6 +223,7 @@ route_time_axis.cc route_ui.cc selection.cc send_ui.cc +session_metadata_dialog.cc sfdb_ui.cc simpleline.cc simplerect.cc diff --git a/gtk2_ardour/about.cc b/gtk2_ardour/about.cc index 416e9925d2..ae8c7f503b 100644 --- a/gtk2_ardour/about.cc +++ b/gtk2_ardour/about.cc @@ -27,6 +27,7 @@ #include <pbd/file_utils.h> +#include <ardour/svn_revision.h> #include <ardour/ardour.h> #include <ardour/version.h> #include <ardour/filesystem_paths.h> @@ -34,7 +35,6 @@ #include "utils.h" #include "version.h" -#include "svn_revision.h" #include "about.h" #include "rgb_macros.h" #include "ardour_ui.h" @@ -215,7 +215,7 @@ About::About () set_website_label (_("visit http://www.ardour.org/")); set_version ((string_compose(_("%1\n(built from revision %2)"), VERSIONSTRING, - ardour_svn_revision))); + svn_revision))); #ifdef WITH_PAYMENT_OPTIONS diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus index 0fed527367..a37645dca8 100644 --- a/gtk2_ardour/ardour.menus +++ b/gtk2_ardour/ardour.menus @@ -10,15 +10,17 @@ <menuitem action='Save'/> <menuitem action='Snapshot'/> <menuitem action='SaveTemplate'/> + <menu name='Metadata' action='Metadata'> + <menuitem action='EditMetadata'/> + <menuitem action='ImportMetadata'/> + </menu> <separator/> <menuitem action='AddTrackBus'/> <separator/> <menuitem action='addExistingAudioFiles'/> <separator/> <menu name='Export' action='Export'> - <menuitem action='ExportSession'/> - <menuitem action='ExportSelection'/> - <menuitem action='ExportRangeMarkers'/> + <menuitem action='ExportAudio'/> </menu> <separator/> <menu name='Cleanup' action='Cleanup'> diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index bc24389948..43fdf85c94 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -29,17 +29,13 @@ ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator) : Dialog (title, modal, use_seperator) { - session = 0; - - set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); + init (); } ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool use_seperator) : Dialog (title, parent, modal, use_seperator) { - session = 0; - - set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); + init (); set_position (Gtk::WIN_POS_CENTER_ON_PARENT); } @@ -80,3 +76,10 @@ ArdourDialog::on_show () Dialog::on_show (); } + +void ArdourDialog::init () +{ + session = 0; + set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); + set_border_width (10); +} diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 264dcfcd58..b2c531b0d0 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -54,6 +54,9 @@ class ArdourDialog : public Gtk::Dialog virtual void session_gone () { set_session (0); } + + private: + void init (); }; #endif // __ardour_dialog_h__ diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 9ed6d0e599..6c59837abc 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -91,6 +91,7 @@ typedef uint64_t microseconds_t; #include "gui_thread.h" #include "theme_manager.h" #include "bundle_manager.h" +#include "session_metadata_dialog.h" #include "gain_meter.h" #include "route_time_axis.h" @@ -2009,6 +2010,24 @@ ARDOUR_UI::save_template () } void +ARDOUR_UI::edit_metadata () +{ + SessionMetadataEditor dialog; + dialog.set_session (session); + editor->ensure_float (dialog); + dialog.run (); +} + +void +ARDOUR_UI::import_metadata () +{ + SessionMetadataImporter dialog; + dialog.set_session (session); + editor->ensure_float (dialog); + dialog.run (); +} + +void ARDOUR_UI::fontconfig_dialog () { #ifdef GTKOSX diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 6be85f6a80..86c9799cb8 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -570,6 +570,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI void open_session (); void open_recent_session (); void save_template (); + + void edit_metadata (); + void import_metadata (); void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, uint32_t how_many); void session_add_midi_route (bool disk, uint32_t how_many); diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 504205dbf4..9f9ac269f1 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -136,16 +136,17 @@ ARDOUR_UI::install_actions () act = ActionManager::register_action (main_actions, X_("SaveTemplate"), _("Save Template..."), mem_fun(*this, &ARDOUR_UI::save_template)); ActionManager::session_sensitive_actions.push_back (act); - act = ActionManager::register_action (main_actions, X_("ExportSession"), _("Export session to audiofile..."), mem_fun (*editor, &PublicEditor::export_session)); + act = ActionManager::register_action (main_actions, X_("Metadata"), _("Metadata")); ActionManager::session_sensitive_actions.push_back (act); - act = ActionManager::register_action (main_actions, X_("ExportSelection"), _("Export selection to audiofile..."), mem_fun (*editor, &PublicEditor::export_selection)); + act = ActionManager::register_action (main_actions, X_("EditMetadata"), _("Edit Metadata"), mem_fun(*this, &ARDOUR_UI::edit_metadata)); ActionManager::session_sensitive_actions.push_back (act); - ActionManager::time_selection_sensitive_actions.push_back (act); - act = ActionManager::register_action (main_actions, X_("ExportRangeMarkers"), _("Export range markers to audiofile..."), mem_fun (*editor, &PublicEditor::export_range_markers)); + act = ActionManager::register_action (main_actions, X_("ImportMetadata"), _("Import Metadata"), mem_fun(*this, &ARDOUR_UI::import_metadata)); + ActionManager::session_sensitive_actions.push_back (act); + + act = ActionManager::register_action (main_actions, X_("ExportAudio"), _("Export to audiofile(s)..."), mem_fun (*editor, &PublicEditor::export_audio)); ActionManager::session_sensitive_actions.push_back (act); - ActionManager::range_sensitive_actions.push_back (act); act = ActionManager::register_action (main_actions, X_("Export"), _("Export")); ActionManager::session_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 3151b6d5c7..170e9b57e2 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -295,8 +295,6 @@ Editor::Editor () _show_waveforms = true; _show_waveforms_recording = true; first_action_message = 0; - export_dialog = 0; - export_range_markers_dialog = 0; show_gain_after_trim = false; ignore_route_list_reorder = false; no_route_list_redisplay = false; @@ -2117,7 +2115,7 @@ Editor::add_selection_context_items (Menu_Helpers::MenuList& edit_items) items.push_back (SeparatorElem()); items.push_back (MenuElem (_("Consolidate range"), bind (mem_fun(*this, &Editor::bounce_range_selection), true))); items.push_back (MenuElem (_("Bounce range to region list"), bind (mem_fun(*this, &Editor::bounce_range_selection), false))); - items.push_back (MenuElem (_("Export range"), mem_fun(*this, &Editor::export_selection))); + items.push_back (MenuElem (_("Export range"), mem_fun(*this, &Editor::export_range))); } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index b957c995a0..6385b37ef8 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -98,8 +98,6 @@ class PlaylistSelector; class Marker; class GroupedButtons; class AutomationLine; -class UIExportSpecification; -class ExportDialog; class Selection; class TimeSelection; class TrackSelection; @@ -272,12 +270,11 @@ class Editor : public PublicEditor #endif /* export */ - - /* these initiate export ... */ - void export_session(); - void export_selection(); - + void export_audio (); + void export_selection (); + void export_range (); + void export_region (); void add_toplevel_controls (Gtk::Container&); Gtk::HBox& get_status_bar_packer() { return status_bar_hpacker; } @@ -1566,7 +1563,6 @@ public: void marker_menu_set_from_playhead (); void marker_menu_set_from_selection (); void marker_menu_range_to_next (); - void marker_menu_export_range (); void new_transport_marker_menu_set_loop (); void new_transport_marker_menu_set_punch (); void update_loop_range_view (bool visibility=false); @@ -1994,15 +1990,8 @@ public: /* audio export */ - ExportDialog *export_dialog; - ExportDialog *export_range_markers_dialog; - - void export_range (nframes64_t start, nframes64_t end); - void export_range_markers (); - int write_region_selection(RegionSelection&); bool write_region (string path, boost::shared_ptr<ARDOUR::AudioRegion>); - void export_region (); void bounce_region_selection (); void bounce_range_selection (bool replace); void external_edit_region (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index a1a7092eb0..80b76369d0 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -492,9 +492,9 @@ Editor::register_actions () redo_action = act = ActionManager::register_action (editor_actions, "redo", _("Redo"), bind (mem_fun(*this, &Editor::redo), 1U)); ActionManager::session_sensitive_actions.push_back (act); - act = ActionManager::register_action (editor_actions, "export-session", _("Export Session"), mem_fun(*this, &Editor::export_session)); + act = ActionManager::register_action (editor_actions, "export-audio", _("Export Audio"), mem_fun(*this, &Editor::export_audio)); ActionManager::session_sensitive_actions.push_back (act); - act = ActionManager::register_action (editor_actions, "export-range", _("Export Range"), mem_fun(*this, &Editor::export_selection)); + act = ActionManager::register_action (editor_actions, "export-range", _("Export Range"), mem_fun(*this, &Editor::export_range)); ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (editor_actions, "editor-separate", _("Separate"), mem_fun(*this, &Editor::separate_region_from_selection)); diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index c1d0c56833..ac68f6d907 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -24,9 +24,7 @@ #include <gtkmm/messagedialog.h> -#include "export_session_dialog.h" -#include "export_region_dialog.h" -#include "export_range_markers_dialog.h" +#include "export_main_dialog.h" #include "editor.h" #include "public_editor.h" #include "selection.h" @@ -36,7 +34,6 @@ #include <pbd/pthread_utils.h> #include <ardour/types.h> -#include <ardour/export.h> #include <ardour/audio_track.h> #include <ardour/audiofilesource.h> #include <ardour/audio_diskstream.h> @@ -55,78 +52,59 @@ using namespace PBD; using namespace Gtk; void -Editor::export_session() +Editor::export_audio () { - if (session) { - export_range (session->current_start_frame(), session->current_end_frame()); - } + ExportMainDialog dialog (*this); + dialog.set_session (session); + dialog.run(); } void Editor::export_selection () { - if (session) { - if (selection->time.empty()) { - MessageDialog message (*this, _("There is no selection to export.\n\nSelect a selection using the range mouse mode")); - message.run (); - return; - } - - export_range (selection->time.front().start, selection->time.front().end); - } + ExportMainDialog dialog (*this); + dialog.set_session (session); + dialog.select_timespan (X_("selection")); + dialog.run(); } void -Editor::export_range (nframes64_t start, nframes64_t end) +Editor::export_range () { - if (session) { - if (export_dialog == 0) { - export_dialog = new ExportSessionDialog (*this); - export_dialog->connect_to_session (session); - } - - export_dialog->set_range (start, end); - export_dialog->start_export(); - } -} + Marker* marker; -/** Export the first selected region */ -void -Editor::export_region () -{ - if (selection->regions.empty()) { - return; + if ((marker = reinterpret_cast<Marker *> (marker_menu_item->get_data ("marker"))) == 0) { + fatal << _("programming error: marker canvas item has no marker object pointer!") << endmsg; + /*NOTREACHED*/ } - boost::shared_ptr<Region> r = selection->regions.front()->region(); - - ExportDialog* dialog = new ExportRegionDialog (*this, r); - - dialog->connect_to_session (session); - dialog->set_range (clicked_regionview->region()->first_frame(), clicked_regionview->region()->last_frame()); - dialog->start_export(); + Location* l; + bool is_start; + + if (((l = find_location_from_marker (marker, is_start)) != 0) && (l->end() > l->start())) { + ExportMainDialog dialog (*this); + dialog.set_session (session); + dialog.select_timespan (l->id().to_s()); + dialog.run(); + } } +/** Export the first selected region */ void -Editor::export_range_markers () +Editor::export_region () { - if (session) { - - if (session->locations()->num_range_markers() == 0) { - MessageDialog message (*this, _("There are no ranges to export.\n\nCreate 1 or more ranges by dragging the mouse in the range bar")); - message.run (); - return; - } - - - if (export_range_markers_dialog == 0) { - export_range_markers_dialog = new ExportRangeMarkersDialog(*this); - export_range_markers_dialog->connect_to_session (session); - } - - export_range_markers_dialog->start_export(); - } -} +// if (selection->regions.empty()) { +// return; +// } +// +// boost::shared_ptr<Region> r = selection->regions.front()->region(); +// +// ExportDialog* dialog = new ExportRegionDialog (*this, r); +// +// dialog->connect_to_session (session); +// dialog->set_range (clicked_regionview->region()->first_frame(), clicked_regionview->region()->last_frame()); +// dialog->start_export(); +} int Editor::write_region_selection (RegionSelection& regions) diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index 8d86a0fbb2..508d73a01a 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -636,7 +636,7 @@ Editor::build_range_marker_menu (bool loop_or_punch) } items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("Export Range"), mem_fun(*this, &Editor::marker_menu_export_range))); + items.push_back (MenuElem (_("Export Range"), mem_fun(*this, &Editor::export_range))); items.push_back (SeparatorElem()); if (!loop_or_punch) { @@ -815,26 +815,6 @@ Editor::marker_menu_set_playhead () } void -Editor::marker_menu_export_range () -{ - Marker* marker; - - if ((marker = reinterpret_cast<Marker *> (marker_menu_item->get_data ("marker"))) == 0) { - fatal << _("programming error: marker canvas item has no marker object pointer!") << endmsg; - /*NOTREACHED*/ - } - - Location* l; - bool is_start; - - if ((l = find_location_from_marker (marker, is_start)) != 0) { - if (l->is_range_marker()) { - export_range (l->start(), l->end()); - } - } -} - -void Editor::marker_menu_range_to_next () { Marker* marker; diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc index 451a85efd7..31ef2b7cc5 100644 --- a/gtk2_ardour/location_ui.cc +++ b/gtk2_ardour/location_ui.cc @@ -636,7 +636,6 @@ LocationUI::LocationUI () get_vbox()->pack_start (location_hpacker); - location_vpacker.set_border_width (10); location_vpacker.set_spacing (5); location_vpacker.pack_start (loop_edit_row, false, false); diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index 0edf450cd1..edbdcd58cb 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -31,6 +31,7 @@ #include <jack/jack.h> +#include <ardour/svn_revision.h> #include <ardour/version.h> #include <ardour/ardour.h> #include <ardour/audioengine.h> @@ -41,7 +42,6 @@ #include <gtkmm2ext/popup.h> #include <gtkmm2ext/utils.h> -#include "../svn_revision.h" #include "version.h" #include "utils.h" #include "ardour_ui.h" @@ -324,7 +324,7 @@ int main (int argc, char *argv[]) cout << _("Ardour/GTK ") << VERSIONSTRING << _("\n (built using ") - << ardour_svn_revision + << svn_revision #ifdef __GNUC__ << _(" and GCC version ") << __VERSION__ #endif diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 937399e94f..253c033eb8 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -38,7 +38,6 @@ namespace ARDOUR { class Session; - class ExportSpecification; class Region; class Playlist; class RouteGroup; @@ -206,16 +205,15 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway virtual bool show_measures () const = 0; virtual bool redraw_measures () = 0; - /** Open an export dialogue for the whole session */ - virtual void export_session () = 0; - - /** Open an export dialogue for currently selected time range, if there - * is one; if not an error is displayed to the user. - */ + /** Open main export dialog */ + virtual void export_audio () = 0; + + /** Open export dialog with current selection pre-selected */ virtual void export_selection () = 0; + + /** Open export dialog with current range pre-selected */ + virtual void export_range () = 0; - /** Open an export dialogue for marked ranges */ - virtual void export_range_markers () = 0; virtual void register_actions () = 0; virtual void add_toplevel_controls (Gtk::Container&) = 0; virtual void set_zoom_focus (Editing::ZoomFocus) = 0; |