summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Loftis <ben@glw.com>2009-08-20 16:49:06 +0000
committerBen Loftis <ben@glw.com>2009-08-20 16:49:06 +0000
commit02b4b169f8d8fa6b0b966766b3bb2433d391314e (patch)
treeb11a0d0cf8acbdcf096980af25362b0d49a8d4a8
parenteecc8d4c204f56c0822052620f4933f3a05c7a61 (diff)
simplify waveform menu items
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5555 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/ardour.menus.in6
-rw-r--r--gtk2_ardour/audio_time_axis.cc38
-rw-r--r--gtk2_ardour/audio_time_axis.h1
-rw-r--r--gtk2_ardour/editor.h17
-rw-r--r--gtk2_ardour/editor_actions.cc48
-rw-r--r--gtk2_ardour/editor_audiotrack.cc15
6 files changed, 58 insertions, 67 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index 25958a3023..d0f1f524da 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -297,7 +297,6 @@
<menuitem action='track-height-small'/>
</menu>
<menu action='WaveformMenu'>
- <menuitem action='toggle-waveform-visible'/>
<menuitem action='linear-waveforms'/>
<menuitem action='logarithmic-waveforms'/>
</menu>
@@ -381,9 +380,12 @@
<menuitem action='ToggleMaximalEditor'/>
<menuitem action='show-editor-mixer'/>
- <menuitem action='ToggleMeasureVisibility'/>
+ <menuitem action='ToggleMeasureVisibility'/>
+ <menu action="Waveforms">
<menuitem action='toggle-waveform-visible'/>
+ <menuitem action='toggle-waveform-rectified'/>
<menuitem action='ToggleWaveformsWhileRecording'/>
+ </menu>
<menuitem action='SyncEditorAndMixerTrackOrder'/>
<menuitem action='toggle-region-fades-visible'/>
</menu>
diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc
index 591de5e04c..0266ff7a0b 100644
--- a/gtk2_ardour/audio_time_axis.cc
+++ b/gtk2_ardour/audio_time_axis.cc
@@ -264,28 +264,6 @@ AudioTimeAxisView::append_extra_display_menu_items ()
MenuList& waveform_items = waveform_menu->items();
waveform_menu->set_name ("ArdourContextMenu");
- waveform_items.push_back (CheckMenuElem (_("Show waveforms"), mem_fun(*this, &AudioTimeAxisView::toggle_waveforms)));
- waveform_item = static_cast<CheckMenuItem *> (&waveform_items.back());
- ignore_toggle = true;
- waveform_item->set_active (editor.show_waveforms());
- ignore_toggle = false;
-
- waveform_items.push_back (SeparatorElem());
-
- RadioMenuItem::Group group;
-
- waveform_items.push_back (RadioMenuElem (group, _("Traditional"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Traditional)));
- traditional_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- if (!Profile->get_sae()) {
- waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified)));
- rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back());
- } else {
- rectified_item = 0;
- }
-
- waveform_items.push_back (SeparatorElem());
-
RadioMenuItem::Group group2;
waveform_items.push_back (RadioMenuElem (group2, _("Linear"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LinearWaveform)));
@@ -298,12 +276,6 @@ AudioTimeAxisView::append_extra_display_menu_items ()
AudioStreamView* asv = audio_view();
if (asv) {
ignore_toggle = true;
- if (asv->get_waveform_shape() == Rectified && rectified_item) {
- rectified_item->set_active(true);
- } else {
- traditional_item->set_active(true);
- }
-
if (asv->get_waveform_scale() == LogWaveform)
logscale_item->set_active(true);
else linearscale_item->set_active(true);
@@ -348,6 +320,16 @@ AudioTimeAxisView::set_show_waveforms_recording (bool yn)
}
void
+AudioTimeAxisView::set_show_waveforms_rectified (bool yn)
+{
+ AudioStreamView* asv = audio_view();
+
+ if (asv) {
+ asv->set_waveform_shape ( yn ? Rectified : Traditional );
+ }
+}
+
+void
AudioTimeAxisView::set_waveform_shape (WaveformShape shape)
{
AudioStreamView* asv = audio_view();
diff --git a/gtk2_ardour/audio_time_axis.h b/gtk2_ardour/audio_time_axis.h
index d0fe2b9868..3d25770130 100644
--- a/gtk2_ardour/audio_time_axis.h
+++ b/gtk2_ardour/audio_time_axis.h
@@ -72,6 +72,7 @@ class AudioTimeAxisView : public RouteTimeAxisView
AudioStreamView* audio_view();
void set_show_waveforms (bool yn);
+ void set_show_waveforms_rectified (bool yn);
void set_show_waveforms_recording (bool yn);
void show_all_xfades ();
void hide_all_xfades ();
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index f3ed303fc2..caad69d532 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -171,16 +171,21 @@ class Editor : public PublicEditor
std::vector<std::string> rb_opt_strings;
#endif
- /* option editor-access */
+ //global waveform options
void set_show_waveforms (bool yn);
bool show_waveforms() const { return _show_waveforms; }
- void set_waveform_scale (Editing::WaveformScale);
+ void set_show_waveforms_rectified (bool yn);
+ bool show_waveforms_rectified() const { return _show_waveforms_rectified; }
void set_show_waveforms_recording (bool yn);
bool show_waveforms_recording() const { return _show_waveforms_recording; }
+ //per-track waveform options
+
+ void set_waveform_scale (Editing::WaveformScale);
+
/* things that need to be public to be used in the main menubar */
void new_region_from_selection ();
@@ -318,7 +323,9 @@ class Editor : public PublicEditor
bool dragging_playhead () const { return _dragging_playhead; }
void toggle_waveform_visibility ();
+ void toggle_waveform_rectified ();
void toggle_waveforms_while_recording ();
+
void toggle_measure_visibility ();
void toggle_logo_visibility ();
@@ -1473,10 +1480,13 @@ public:
/* display control */
bool _show_measures;
+
bool _show_waveforms;
+ bool _show_waveforms_rectified;
+ bool _show_waveforms_recording;
+
bool _stationary_playhead;
bool _follow_playhead;
- bool _show_waveforms_recording;
ARDOUR::TempoMap::BBTPointList *current_bbt_points;
@@ -2222,7 +2232,6 @@ public:
void remove_tracks ();
void toggle_tracks_active ();
- void waveform_scale_chosen (Editing::WaveformScale);
bool _have_idled;
int resize_idle_id;
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index 029bd10c26..ad4f60b45c 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -801,17 +801,16 @@ Editor::register_actions ()
act = ActionManager::register_action (editor_actions, X_("addExternalAudioToRegionList"), _("Import to Region List"), bind (mem_fun(*this, &Editor::add_external_audio_action), ImportAsRegion));
ActionManager::session_sensitive_actions.push_back (act);
+ ActionManager::register_action (editor_actions, X_("Waveforms"), _("Waveforms"));
act = ActionManager::register_toggle_action (editor_actions, X_("toggle-waveform-visible"), _("Show Waveforms"), mem_fun (*this, &Editor::toggle_waveform_visibility));
- ActionManager::track_selection_sensitive_actions.push_back (act);
-
+ act = ActionManager::register_toggle_action (editor_actions, X_("toggle-waveform-rectified"), _("Show Waveforms Rectified"), mem_fun (*this, &Editor::toggle_waveform_rectified));
ActionManager::register_toggle_action (editor_actions, X_("ToggleWaveformsWhileRecording"), _("Show Waveforms while Recording"), mem_fun (*this, &Editor::toggle_waveforms_while_recording));
- ActionManager::register_toggle_action (editor_actions, X_("ToggleMeasureVisibility"), _("Show Measures"), mem_fun (*this, &Editor::toggle_measure_visibility));
+ ActionManager::register_toggle_action (editor_actions, X_("ToggleMeasureVisibility"), _("Show Measures"), mem_fun (*this, &Editor::toggle_measure_visibility));
- RadioAction::Group waveform_scale_group;
- act = ActionManager::register_radio_action (editor_actions, waveform_scale_group, X_("linear-waveforms"), _("Linear"), bind (mem_fun (*this, &Editor::waveform_scale_chosen), Editing::LinearWaveform));
+ act = ActionManager::register_action (editor_actions, X_("linear-waveforms"), _("Set Selected Tracks to Linear Waveforms"), bind (mem_fun (*this, &Editor::set_waveform_scale), Editing::LinearWaveform));
ActionManager::track_selection_sensitive_actions.push_back (act);
- act = ActionManager::register_radio_action (editor_actions, waveform_scale_group, X_("logarithmic-waveforms"), _("Logarithmic"), bind (mem_fun (*this, &Editor::waveform_scale_chosen), Editing::LogWaveform));
+ act = ActionManager::register_action (editor_actions, X_("logarithmic-waveforms"), _("Set Selected Tracks to Logarithmic Waveforms"), bind (mem_fun (*this, &Editor::set_waveform_scale), Editing::LogWaveform));
ActionManager::track_selection_sensitive_actions.push_back (act);
/* if there is a logo in the editor canvas, its always visible at startup */
@@ -927,6 +926,16 @@ Editor::toggle_waveform_visibility ()
}
void
+Editor::toggle_waveform_rectified ()
+{
+ Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-waveform-rectified"));
+ if (act) {
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
+ set_show_waveforms_rectified (tact->get_active());
+ }
+}
+
+void
Editor::toggle_waveforms_while_recording ()
{
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("ToggleWaveformsWhileRecording"));
@@ -964,33 +973,6 @@ Editor::toggle_logo_visibility ()
}
void
-Editor::waveform_scale_chosen (Editing::WaveformScale ws)
-{
- RefPtr<Action> act;
-
- /* this is driven by a toggle on a radio group, and so is invoked twice,
- once for the item that became inactive and once for the one that became
- active.
- */
-
- switch (ws) {
- case LinearWaveform:
- act = ActionManager::get_action (X_("Editor"), X_("linear-waveforms"));
- break;
- case LogWaveform:
- act = ActionManager::get_action (X_("Editor"), X_("logarithmic-waveforms"));
- break;
- }
-
- if (act) {
- RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
- if (ract && ract->get_active()) {
- set_waveform_scale (ws);
- }
- }
-}
-
-void
Editor::set_crossfade_model (CrossfadeModel model)
{
RefPtr<Action> act;
diff --git a/gtk2_ardour/editor_audiotrack.cc b/gtk2_ardour/editor_audiotrack.cc
index 7ecbf843b5..7e1c13dae0 100644
--- a/gtk2_ardour/editor_audiotrack.cc
+++ b/gtk2_ardour/editor_audiotrack.cc
@@ -62,6 +62,21 @@ Editor::set_show_waveforms_recording (bool yn)
}
}
+void
+Editor::set_show_waveforms_rectified (bool yn)
+{
+ AudioTimeAxisView* atv;
+
+ if (_show_waveforms_rectified != yn) {
+ _show_waveforms_rectified = yn;
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ if ((atv = dynamic_cast<AudioTimeAxisView*>(*i)) != 0) {
+ atv->set_show_waveforms_rectified (yn);
+ }
+ }
+ }
+}
+
gint
Editor::start_updating ()
{