View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0005648 | ardour | features | public | 2013-08-09 17:16 | 2013-08-15 16:00 |
| Reporter | tom_ | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | closed | Resolution | won't fix | ||
| Product Version | 3.0 | ||||
| Summary | 0005648: Add Actions to directly add one Mono or Stereo Track (normal) | ||||
| Description | add quickly one audio track, normal mode, without a dialog new menu items: -Track -> Add Audio Track (Mono) -Track -> Add Audio Track (Stereo) | ||||
| Tags | No tags attached. | ||||
|
2013-08-09 17:16
|
add_editor_action_add-mono-track_add-stereo-track.patch (3,747 bytes)
From 0059557c3acef6873af860fca79796cf22ef1b84 Mon Sep 17 00:00:00 2001
From: Thomas Brand <tom@trellis.ch>
Date: Fri, 9 Aug 2013 05:08:19 +0200
Subject: [PATCH] add actions to quickly add one normal mode mono and stereo
audio track
---
gtk2_ardour/ardour.menus.in | 4 +++-
gtk2_ardour/editor.h | 2 ++
gtk2_ardour/editor_actions.cc | 3 +++
gtk2_ardour/editor_ops.cc | 40 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index 15f1bde..e134490 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -325,7 +325,9 @@
</menu>
<menu action='TrackMenu'>
- <menuitem action='AddTrackBus'/>
+ <menuitem action='AddTrackBus'/>
+ <menuitem action='add-mono-track'/>
+ <menuitem action='add-stereo-track'/>
<menuitem action='insert-time'/>
<menuitem action="move-selected-tracks-up"/>
<menuitem action="move-selected-tracks-down"/>
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 033888c..4e18b39 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1180,6 +1180,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void do_insert_time ();
void insert_time (framepos_t, framecnt_t, Editing::InsertTimeOption, bool, bool, bool, bool, bool, bool);
+ void add_single_audio_track (int channels);
+
void tab_to_transient (bool forward);
void set_tempo_from_region ();
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index a5e2e8a..7152a6c 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -359,6 +359,9 @@ Editor::register_actions ()
ActionManager::register_toggle_action (editor_actions, "toggle-stationary-playhead", _("Stationary Playhead"), (mem_fun(*this, &Editor::toggle_stationary_playhead)));
+ reg_sens (editor_actions, "add-mono-track", _("Add Audio Track (Mono)"), sigc::bind (sigc::mem_fun(*this, &Editor::add_single_audio_track),1));
+ reg_sens (editor_actions, "add-stereo-track", _("Add Audio Track (Stereo)") ,sigc::bind (sigc::mem_fun(*this, &Editor::add_single_audio_track),2));
+
act = reg_sens (editor_actions, "insert-time", _("Insert Time"), (sigc::mem_fun(*this, &Editor::do_insert_time)));
ActionManager::track_selection_sensitive_actions.push_back (act);
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 93a53dd..f38b703 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -6535,6 +6535,46 @@ edit your ardour.rc file to set the\n\
}
void
+Editor::add_single_audio_track (int channels) //1=mono, 2=stereo
+{
+ if (!_session) {
+ return;
+ }
+
+ int track_count=1;
+
+ ChanCount input_chan;
+ input_chan.set (DataType::AUDIO, channels);
+ ChanCount output_chan;
+
+ AutoConnectOption oac = Config->get_output_auto_connect();
+
+ if (oac & AutoConnectMaster) {
+ output_chan.set (DataType::AUDIO, (_session->master_out() ? _session->master_out()->n_inputs().n_audio() : input_chan.n_audio()));
+ output_chan.set (DataType::MIDI, 0);
+ } else {
+ output_chan = input_chan;
+ }
+
+ string name_template="Audio";
+ RouteGroup* route_group=_session->route_group_by_name("No Group");
+
+ list<boost::shared_ptr<AudioTrack> > tracks;
+
+ try
+ {
+ tracks = _session->new_audio_track (input_chan.n_audio(), output_chan.n_audio(), ARDOUR::Normal, route_group, track_count, name_template);
+
+ if (tracks.size() != track_count) {
+ cerr << "COULD NOT CREATE AUDIO TRACK\n";
+ }
+ }
+ catch (...) {
+ cerr << "NOT ENOUGH PORTS\n";
+ }
+}
+
+void
Editor::do_insert_time ()
{
if (selection->tracks.empty()) {
--
1.7.9.5
|
|
|
handling via github / pull requests to keep current |