- const XMLProperty *prop;
-
- TimeAxisView::set_state (node);
-
- if ((prop = node.property ("shown_editor")) != 0) {
- if (prop->value() == "no") {
- _marked_for_display = false;
- } else {
- _marked_for_display = true;
- }
- } else {
- _marked_for_display = true;
- }
-
- XMLNodeList nlist = node.children();
- XMLNodeConstIterator niter;
- XMLNode *child_node;
-
-
- show_gain_automation = false;
- show_pan_automation = false;
-
- for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
- child_node = *niter;
-
- if (child_node->name() == "gain") {
- XMLProperty *prop=child_node->property ("shown");
-
- if (prop != 0) {
- if (prop->value() == "yes") {
- show_gain_automation = true;
- }
- }
- continue;
- }
-
- if (child_node->name() == "pan") {
- XMLProperty *prop=child_node->property ("shown");
-
- if (prop != 0) {
- if (prop->value() == "yes") {
- show_pan_automation = true;
- }
- }
- continue;
- }
- }
-}
-
-void
-AudioTimeAxisView::build_automation_action_menu ()
-{
- using namespace Menu_Helpers;
-
- RouteTimeAxisView::build_automation_action_menu ();
-
- MenuList& automation_items = automation_action_menu->items();
-
- automation_items.push_back (SeparatorElem());
-
- automation_items.push_back (CheckMenuElem (_("Fader"),
- mem_fun(*this, &AudioTimeAxisView::toggle_gain_track)));
- gain_automation_item = static_cast<CheckMenuItem*> (&automation_items.back());
- gain_automation_item->set_active(show_gain_automation);
-
- automation_items.push_back (CheckMenuElem (_("Pan"),
- mem_fun(*this, &AudioTimeAxisView::toggle_pan_track)));
- pan_automation_item = static_cast<CheckMenuItem*> (&automation_items.back());
- pan_automation_item->set_active(show_pan_automation);
-
-}
-
-void
-AudioTimeAxisView::append_extra_display_menu_items ()
-{
- using namespace Menu_Helpers;
-
- MenuList& items = display_menu->items();
-
- // crossfade stuff
- items.push_back (MenuElem (_("Hide all crossfades"), mem_fun(*this, &AudioTimeAxisView::hide_all_xfades)));
- items.push_back (MenuElem (_("Show all crossfades"), mem_fun(*this, &AudioTimeAxisView::show_all_xfades)));
-
- // waveform menu
- Menu *waveform_menu = manage(new Menu);
- 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());
-
- waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified)));
- rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- waveform_items.push_back (SeparatorElem());
-
- RadioMenuItem::Group group2;
-
- waveform_items.push_back (RadioMenuElem (group2, _("Linear"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LinearWaveform)));
- linearscale_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- waveform_items.push_back (RadioMenuElem (group2, _("Logarithmic"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LogWaveform)));
- logscale_item = static_cast<RadioMenuItem *> (&waveform_items.back());
-
- // setting initial item state
- AudioStreamView* asv = audio_view();
- if (asv) {
- ignore_toggle = true;
- if (asv->get_waveform_shape() == Rectified)
- 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);
- ignore_toggle = false;
- }
-
- items.push_back (MenuElem (_("Waveform"), *waveform_menu));
-}
-
-void
-AudioTimeAxisView::toggle_waveforms ()
-{
- AudioStreamView* asv = audio_view();
- assert(asv);
-
- if (asv && waveform_item && !ignore_toggle) {
- asv->set_show_waveforms (waveform_item->get_active());
- }
-}
-
-void
-AudioTimeAxisView::set_show_waveforms (bool yn)
-{
- AudioStreamView* asv = audio_view();
- assert(asv);
-
- if (waveform_item) {
- waveform_item->set_active (yn);
- } else {
- asv->set_show_waveforms (yn);
- }
-}
-
-void
-AudioTimeAxisView::set_show_waveforms_recording (bool yn)
-{
- AudioStreamView* asv = audio_view();
-
- if (asv) {
- asv->set_show_waveforms_recording (yn);
- }
-}
-
-void
-AudioTimeAxisView::set_waveform_shape (WaveformShape shape)
-{
- AudioStreamView* asv = audio_view();
-
- if (asv && !ignore_toggle) {
- asv->set_waveform_shape (shape);