summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-09-17 08:44:51 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-09-17 08:44:51 +0000
commit1c299d5a5c493986ca4a19bd55a69281dabada86 (patch)
treedae18913a2261a157ba32308ef804050e1232542 /gtk2_ardour
parent8e9a83dfdc233898e7c470667c7c9b797c83fe8b (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/SConscript12
-rw-r--r--gtk2_ardour/about.cc4
-rw-r--r--gtk2_ardour/ardour.menus8
-rw-r--r--gtk2_ardour/ardour_dialog.cc15
-rw-r--r--gtk2_ardour/ardour_dialog.h3
-rw-r--r--gtk2_ardour/ardour_ui.cc19
-rw-r--r--gtk2_ardour/ardour_ui.h3
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc11
-rw-r--r--gtk2_ardour/editor.cc4
-rw-r--r--gtk2_ardour/editor.h19
-rw-r--r--gtk2_ardour/editor_actions.cc4
-rw-r--r--gtk2_ardour/editor_export_audio.cc96
-rw-r--r--gtk2_ardour/editor_markers.cc22
-rw-r--r--gtk2_ardour/location_ui.cc1
-rw-r--r--gtk2_ardour/main.cc4
-rw-r--r--gtk2_ardour/public_editor.h16
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;