/*
- Copyright (C) 2000-2006 Paul Davis
+ Copyright (C) 2000-2006 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
assert(!is_track() || is_audio_track());
subplugin_menu.set_name ("ArdourContextMenu");
- waveform_item = 0;
_view = new AudioStreamView (*this);
mute_button->set_active (false);
solo_button->set_active (false);
-
+
if (is_audio_track()) {
controls_ebox.set_name ("AudioTrackControlsBaseUnselected");
} else { // bus
ensure_xml_node ();
- set_state (*xml_node);
+ set_state (*xml_node, Stateful::loading_state_version);
/* if set_state above didn't create a gain automation child, we need to make one */
if (automation_track (GainAutomation) == 0) {
create_automation_child (GainAutomation, false);
}
-
+
if (_route->panner()) {
_route->panner()->Changed.connect (bind (
mem_fun(*this, &AudioTimeAxisView::ensure_pan_views),
/* first idle will do what we need */
} else {
first_idle ();
- }
+ }
} else {
post_construct ();
{
ensure_xml_node ();
xml_node->add_property ("shown-editor", "yes");
-
+
return TimeAxisView::show_at (y, nth, parent);
}
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());
-
- 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)));
- 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) {
- 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));
-
}
-
+
Gtk::Menu*
AudioTimeAxisView::build_mode_menu()
{
return mode_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)
{
}
}
-void
-AudioTimeAxisView::set_waveform_shape (WaveformShape shape)
-{
- AudioStreamView* asv = audio_view();
-
- if (asv && !ignore_toggle) {
- asv->set_waveform_shape (shape);
- }
-
- map_frozen ();
-}
-
-void
-AudioTimeAxisView::set_waveform_scale (WaveformScale scale)
-{
- AudioStreamView* asv = audio_view();
-
- if (asv && !ignore_toggle) {
- asv->set_waveform_scale (scale);
- }
-
- map_frozen ();
-}
-
void
AudioTimeAxisView::create_automation_child (const Evoral::Parameter& param, bool show)
{
return;
}
- boost::shared_ptr<AutomationTimeAxisView>
+ boost::shared_ptr<AutomationTimeAxisView>
gain_track(new AutomationTimeAxisView (_session,
_route, _route->amp(), c,
_editor,
boost::shared_ptr<ARDOUR::AutomationControl> pan_control
= boost::dynamic_pointer_cast<ARDOUR::AutomationControl>(
_route->panner()->data().control(*p));
-
+
if (pan_control->parameter().type() == NullAutomation) {
error << "Pan control has NULL automation type!" << endmsg;
continue;
boost::shared_ptr<AutomationTimeAxisView> pan_track (
new AutomationTimeAxisView (_session,
- _route, _route->panner(), pan_control,
+ _route, _route->panner(), pan_control,
_editor,
*this,
false,
parent_canvas,
name));
-
+
add_automation_child (*p, pan_track, show);
}
}
}
/* now trigger a redisplay */
-
+
if (!no_redraw) {
_route->gui_changed (X_("visible_tracks"), (void *) 0); /* EMIT_SIGNAL */
}
}
}
#endif
-
+
void
AudioTimeAxisView::show_all_automation ()
{
AudioTimeAxisView::hide_all_xfades ()
{
AudioStreamView* asv = audio_view();
-
+
if (asv) {
asv->hide_all_xfades ();
}
controls_ebox.set_name (controls_base_unselected_name);
}
}
-