mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
substantive change to try to provide some rationality for region gain line visibility (and automation line visibility in general
git-svn-id: svn://localhost/ardour2/branches/3.0@12478 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
7198894473
commit
f1505b631d
10 changed files with 92 additions and 91 deletions
|
|
@ -199,13 +199,8 @@ AudioRegionView::init (Gdk::Color const & basic_color, bool wfd)
|
||||||
if (!Profile->get_sae()) {
|
if (!Profile->get_sae()) {
|
||||||
gain_line.reset (new AudioRegionGainLine (line_name, *this, *group, audio_region()->envelope()));
|
gain_line.reset (new AudioRegionGainLine (line_name, *this, *group, audio_region()->envelope()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Config->get_show_region_gain()) {
|
gain_line->set_visibility (automation_line_visibility());
|
||||||
gain_line->show ();
|
|
||||||
} else {
|
|
||||||
gain_line->hide ();
|
|
||||||
}
|
|
||||||
|
|
||||||
gain_line->reset ();
|
gain_line->reset ();
|
||||||
|
|
||||||
set_height (trackview.current_height());
|
set_height (trackview.current_height());
|
||||||
|
|
@ -499,9 +494,7 @@ AudioRegionView::set_height (gdouble height)
|
||||||
if ((height/wcnt) < NAME_HIGHLIGHT_THRESH) {
|
if ((height/wcnt) < NAME_HIGHLIGHT_THRESH) {
|
||||||
gain_line->hide ();
|
gain_line->hide ();
|
||||||
} else {
|
} else {
|
||||||
if (Config->get_show_region_gain ()) {
|
gain_line->set_visibility (automation_line_visibility());
|
||||||
gain_line->show ();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gain_line->set_height ((uint32_t) rint (height - NAME_HIGHLIGHT_SIZE) - 2);
|
gain_line->set_height ((uint32_t) rint (height - NAME_HIGHLIGHT_SIZE) - 2);
|
||||||
|
|
@ -858,19 +851,15 @@ void
|
||||||
AudioRegionView::unhide_envelope ()
|
AudioRegionView::unhide_envelope ()
|
||||||
{
|
{
|
||||||
if (gain_line) {
|
if (gain_line) {
|
||||||
gain_line->show ();
|
gain_line->set_visibility (automation_line_visibility());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AudioRegionView::set_envelope_visible (bool yn)
|
AudioRegionView::update_envelope_visible ()
|
||||||
{
|
{
|
||||||
if (gain_line) {
|
if (gain_line) {
|
||||||
if (yn) {
|
gain_line->set_visibility (automation_line_visibility());
|
||||||
gain_line->show ();
|
|
||||||
} else {
|
|
||||||
gain_line->hide ();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1035,7 +1024,7 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev)
|
||||||
|
|
||||||
/* don't create points that can't be seen */
|
/* don't create points that can't be seen */
|
||||||
|
|
||||||
set_envelope_visible (true);
|
gain_line->set_visibility (automation_line_visibility());
|
||||||
|
|
||||||
x = ev->button.x;
|
x = ev->button.x;
|
||||||
y = ev->button.y;
|
y = ev->button.y;
|
||||||
|
|
@ -1222,9 +1211,9 @@ AudioRegionView::entered (bool internal_editing)
|
||||||
{
|
{
|
||||||
trackview.editor().set_current_trimmable (_region);
|
trackview.editor().set_current_trimmable (_region);
|
||||||
trackview.editor().set_current_movable (_region);
|
trackview.editor().set_current_movable (_region);
|
||||||
|
|
||||||
if (gain_line && Config->get_show_region_gain ()) {
|
if (gain_line && trackview.editor().current_mouse_mode() == Editing::MouseGain) {
|
||||||
gain_line->show_all_control_points ();
|
gain_line->add_visibility (AutomationLine::ControlPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fade_in_handle && !internal_editing) {
|
if (fade_in_handle && !internal_editing) {
|
||||||
|
|
@ -1239,8 +1228,8 @@ AudioRegionView::exited ()
|
||||||
trackview.editor().set_current_trimmable (boost::shared_ptr<Trimmable>());
|
trackview.editor().set_current_trimmable (boost::shared_ptr<Trimmable>());
|
||||||
trackview.editor().set_current_movable (boost::shared_ptr<Movable>());
|
trackview.editor().set_current_movable (boost::shared_ptr<Movable>());
|
||||||
|
|
||||||
if (gain_line) {
|
if (gain_line && trackview.editor().current_mouse_mode() == Editing::MouseGain) {
|
||||||
gain_line->hide_all_but_selected_control_points ();
|
gain_line->remove_visibility (AutomationLine::ControlPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fade_in_handle) {
|
if (fade_in_handle) {
|
||||||
|
|
@ -1812,3 +1801,12 @@ AudioRegionView::drag_end ()
|
||||||
/* fades will be redrawn if they changed */
|
/* fades will be redrawn if they changed */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AutomationLine::VisibleAspects
|
||||||
|
AudioRegionView::automation_line_visibility () const
|
||||||
|
{
|
||||||
|
if (Config->get_show_region_gain() || trackview.editor().current_mouse_mode() == Editing::MouseGain) {
|
||||||
|
return AutomationLine::Line;
|
||||||
|
} else {
|
||||||
|
return AutomationLine::VisibleAspects (0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ class AudioRegionView : public RegionView
|
||||||
void temporarily_hide_envelope (); ///< Dangerous!
|
void temporarily_hide_envelope (); ///< Dangerous!
|
||||||
void unhide_envelope (); ///< Dangerous!
|
void unhide_envelope (); ///< Dangerous!
|
||||||
|
|
||||||
void set_envelope_visible (bool);
|
void update_envelope_visible ();
|
||||||
void set_waveform_visible (bool yn);
|
void set_waveform_visible (bool yn);
|
||||||
void set_waveform_shape (ARDOUR::WaveformShape);
|
void set_waveform_shape (ARDOUR::WaveformShape);
|
||||||
void set_waveform_scale (ARDOUR::WaveformScale);
|
void set_waveform_scale (ARDOUR::WaveformScale);
|
||||||
|
|
@ -198,6 +198,8 @@ class AudioRegionView : public RegionView
|
||||||
|
|
||||||
void transients_changed();
|
void transients_changed();
|
||||||
|
|
||||||
|
AutomationLine::VisibleAspects automation_line_visibility () const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setup_fade_handle_positions ();
|
void setup_fade_handle_positions ();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -76,11 +76,11 @@ AutomationLine::AutomationLine (const string& name, TimeAxisView& tv, ArdourCanv
|
||||||
_our_time_converter = true;
|
_our_time_converter = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
points_visible = false;
|
_visible = Line;
|
||||||
|
|
||||||
update_pending = false;
|
update_pending = false;
|
||||||
_uses_gain_mapping = false;
|
_uses_gain_mapping = false;
|
||||||
no_draw = false;
|
no_draw = false;
|
||||||
_visible = true;
|
|
||||||
_is_boolean = false;
|
_is_boolean = false;
|
||||||
terminal_points_can_slide = true;
|
terminal_points_can_slide = true;
|
||||||
_height = 0;
|
_height = 0;
|
||||||
|
|
@ -135,27 +135,36 @@ AutomationLine::queue_reset ()
|
||||||
void
|
void
|
||||||
AutomationLine::show ()
|
AutomationLine::show ()
|
||||||
{
|
{
|
||||||
if (alist->interpolation() != AutomationList::Discrete) {
|
if (_visible & Line) {
|
||||||
line->show();
|
if (alist->interpolation() != AutomationList::Discrete) {
|
||||||
|
line->show();
|
||||||
|
} else {
|
||||||
|
line->hide ();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
line->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (points_visible) {
|
if (_visible & ControlPoints) {
|
||||||
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
||||||
|
(*i)->set_visible (true);
|
||||||
(*i)->show ();
|
(*i)->show ();
|
||||||
}
|
}
|
||||||
|
} else if (_visible & SelectedControlPoints) {
|
||||||
|
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
||||||
|
(*i)->set_visible ((*i)->get_selected());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
||||||
|
(*i)->set_visible (false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_visible = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::hide ()
|
AutomationLine::hide ()
|
||||||
{
|
{
|
||||||
line->hide();
|
set_visibility (VisibleAspects (0));
|
||||||
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
|
||||||
(*i)->hide();
|
|
||||||
}
|
|
||||||
_visible = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double
|
double
|
||||||
|
|
@ -895,44 +904,31 @@ AutomationLine::set_list (boost::shared_ptr<ARDOUR::AutomationList> list)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::show_all_control_points ()
|
AutomationLine::add_visibility (VisibleAspects va)
|
||||||
{
|
{
|
||||||
if (_is_boolean) {
|
_visible = VisibleAspects (_visible | va);
|
||||||
// show the line but don't allow any control points
|
show ();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
points_visible = true;
|
|
||||||
|
|
||||||
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
|
||||||
if (!(*i)->visible()) {
|
|
||||||
(*i)->show ();
|
|
||||||
(*i)->set_visible (true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::hide_all_but_selected_control_points ()
|
AutomationLine::set_visibility (VisibleAspects va)
|
||||||
{
|
{
|
||||||
if (alist->interpolation() == AutomationList::Discrete) {
|
_visible = va;
|
||||||
return;
|
show ();
|
||||||
}
|
}
|
||||||
|
|
||||||
points_visible = false;
|
void
|
||||||
|
AutomationLine::remove_visibility (VisibleAspects va)
|
||||||
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
|
{
|
||||||
if (!(*i)->get_selected()) {
|
_visible = VisibleAspects (_visible & ~va);
|
||||||
(*i)->set_visible (false);
|
show ();
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AutomationLine::track_entered()
|
AutomationLine::track_entered()
|
||||||
{
|
{
|
||||||
if (alist->interpolation() != AutomationList::Discrete) {
|
if (alist->interpolation() != AutomationList::Discrete) {
|
||||||
show_all_control_points();
|
add_visibility (ControlPoints);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -940,7 +936,7 @@ void
|
||||||
AutomationLine::track_exited()
|
AutomationLine::track_exited()
|
||||||
{
|
{
|
||||||
if (alist->interpolation() != AutomationList::Discrete) {
|
if (alist->interpolation() != AutomationList::Discrete) {
|
||||||
hide_all_but_selected_control_points();
|
remove_visibility (ControlPoints);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1011,11 +1007,10 @@ void
|
||||||
AutomationLine::interpolation_changed (AutomationList::InterpolationStyle style)
|
AutomationLine::interpolation_changed (AutomationList::InterpolationStyle style)
|
||||||
{
|
{
|
||||||
if (style == AutomationList::Discrete) {
|
if (style == AutomationList::Discrete) {
|
||||||
show_all_control_points();
|
set_visibility (ControlPoints);
|
||||||
line->hide();
|
line->hide();
|
||||||
} else {
|
} else {
|
||||||
hide_all_but_selected_control_points();
|
set_visibility (Line);
|
||||||
line->show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1059,13 +1054,11 @@ AutomationLine::add_visible_control_point (uint32_t view_index, uint32_t pi, dou
|
||||||
|
|
||||||
/* finally, control visibility */
|
/* finally, control visibility */
|
||||||
|
|
||||||
if (_visible && points_visible) {
|
if (_visible & ControlPoints) {
|
||||||
control_points[view_index]->show ();
|
control_points[view_index]->show ();
|
||||||
control_points[view_index]->set_visible (true);
|
control_points[view_index]->set_visible (true);
|
||||||
} else {
|
} else {
|
||||||
if (!points_visible) {
|
control_points[view_index]->set_visible (false);
|
||||||
control_points[view_index]->set_visible (false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,12 @@ namespace Gnome {
|
||||||
class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum VisibleAspects {
|
||||||
|
Line = 0x1,
|
||||||
|
ControlPoints = 0x2,
|
||||||
|
SelectedControlPoints = 0x4
|
||||||
|
};
|
||||||
|
|
||||||
AutomationLine (const std::string& name, TimeAxisView&, ArdourCanvas::Group&,
|
AutomationLine (const std::string& name, TimeAxisView&, ArdourCanvas::Group&,
|
||||||
boost::shared_ptr<ARDOUR::AutomationList>,
|
boost::shared_ptr<ARDOUR::AutomationList>,
|
||||||
Evoral::TimeConverter<double, ARDOUR::framepos_t>* converter = 0);
|
Evoral::TimeConverter<double, ARDOUR::framepos_t>* converter = 0);
|
||||||
|
|
@ -85,17 +91,20 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
uint32_t npoints() const { return control_points.size(); }
|
uint32_t npoints() const { return control_points.size(); }
|
||||||
|
|
||||||
std::string name() const { return _name; }
|
std::string name() const { return _name; }
|
||||||
bool visible() const { return _visible; }
|
bool visible() const { return _visible != VisibleAspects(0); }
|
||||||
guint32 height() const { return _height; }
|
guint32 height() const { return _height; }
|
||||||
|
|
||||||
void set_line_color (uint32_t);
|
void set_line_color (uint32_t);
|
||||||
uint32_t get_line_color() const { return _line_color; }
|
uint32_t get_line_color() const { return _line_color; }
|
||||||
|
|
||||||
void show ();
|
void set_visibility (VisibleAspects);
|
||||||
void hide ();
|
void add_visibility (VisibleAspects);
|
||||||
void set_height (guint32);
|
void remove_visibility (VisibleAspects);
|
||||||
void set_uses_gain_mapping (bool yn);
|
|
||||||
bool get_uses_gain_mapping () const { return _uses_gain_mapping; }
|
void hide ();
|
||||||
|
void set_height (guint32);
|
||||||
|
void set_uses_gain_mapping (bool yn);
|
||||||
|
bool get_uses_gain_mapping () const { return _uses_gain_mapping; }
|
||||||
|
|
||||||
TimeAxisView& trackview;
|
TimeAxisView& trackview;
|
||||||
|
|
||||||
|
|
@ -113,9 +122,6 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
void set_list(boost::shared_ptr<ARDOUR::AutomationList> list);
|
void set_list(boost::shared_ptr<ARDOUR::AutomationList> list);
|
||||||
boost::shared_ptr<ARDOUR::AutomationList> the_list() const { return alist; }
|
boost::shared_ptr<ARDOUR::AutomationList> the_list() const { return alist; }
|
||||||
|
|
||||||
void show_all_control_points ();
|
|
||||||
void hide_all_but_selected_control_points ();
|
|
||||||
|
|
||||||
void track_entered();
|
void track_entered();
|
||||||
void track_exited();
|
void track_exited();
|
||||||
|
|
||||||
|
|
@ -157,13 +163,13 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
/** true if _time_converter belongs to us (ie we should delete it on destruction) */
|
/** true if _time_converter belongs to us (ie we should delete it on destruction) */
|
||||||
bool _our_time_converter;
|
bool _our_time_converter;
|
||||||
|
|
||||||
bool _visible : 1;
|
VisibleAspects _visible;
|
||||||
|
|
||||||
bool _uses_gain_mapping : 1;
|
bool _uses_gain_mapping : 1;
|
||||||
bool terminal_points_can_slide : 1;
|
bool terminal_points_can_slide : 1;
|
||||||
bool update_pending : 1;
|
bool update_pending : 1;
|
||||||
bool no_draw : 1;
|
bool no_draw : 1;
|
||||||
bool _is_boolean : 1;
|
bool _is_boolean : 1;
|
||||||
bool points_visible : 1;
|
|
||||||
bool did_push;
|
bool did_push;
|
||||||
|
|
||||||
ArdourCanvas::Group& _parent_group;
|
ArdourCanvas::Group& _parent_group;
|
||||||
|
|
@ -195,6 +201,7 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
*/
|
*/
|
||||||
ARDOUR::framecnt_t _offset;
|
ARDOUR::framecnt_t _offset;
|
||||||
|
|
||||||
|
void show ();
|
||||||
void reset_line_coords (ControlPoint&);
|
void reset_line_coords (ControlPoint&);
|
||||||
void add_visible_control_point (uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t);
|
void add_visible_control_point (uint32_t, uint32_t, double, double, ARDOUR::AutomationList::iterator, uint32_t);
|
||||||
double control_point_box_size ();
|
double control_point_box_size ();
|
||||||
|
|
|
||||||
|
|
@ -89,8 +89,7 @@ AutomationRegionView::create_line (boost::shared_ptr<ARDOUR::AutomationList> lis
|
||||||
&_source_relative_time_converter));
|
&_source_relative_time_converter));
|
||||||
_line->set_colors();
|
_line->set_colors();
|
||||||
_line->set_height ((uint32_t)rint(trackview.current_height() - NAME_HIGHLIGHT_SIZE));
|
_line->set_height ((uint32_t)rint(trackview.current_height() - NAME_HIGHLIGHT_SIZE));
|
||||||
_line->show();
|
_line->set_visibility (AutomationLine::VisibleAspects (AutomationLine::Line|AutomationLine::ControlPoints));
|
||||||
_line->show_all_control_points();
|
|
||||||
_line->set_maximum_time (_region->length());
|
_line->set_maximum_time (_region->length());
|
||||||
_line->set_offset (_region->start ());
|
_line->set_offset (_region->start ());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -730,7 +730,7 @@ AutomationTimeAxisView::add_line (boost::shared_ptr<AutomationLine> line)
|
||||||
/* pick up the current state */
|
/* pick up the current state */
|
||||||
automation_state_changed ();
|
automation_state_changed ();
|
||||||
|
|
||||||
line->show();
|
line->add_visibility (AutomationLine::Line);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -1951,8 +1951,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
gint left_automation_track ();
|
gint left_automation_track ();
|
||||||
|
|
||||||
void reset_canvas_action_sensitivity (bool);
|
void reset_canvas_action_sensitivity (bool);
|
||||||
void set_gain_envelope_visibility (bool);
|
void set_gain_envelope_visibility ();
|
||||||
void set_region_gain_visibility (RegionView*, bool);
|
void set_region_gain_visibility (RegionView*);
|
||||||
void toggle_gain_envelope_active ();
|
void toggle_gain_envelope_active ();
|
||||||
void reset_region_gain_envelopes ();
|
void reset_region_gain_envelopes ();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1483,7 +1483,7 @@ Editor::parameter_changed (std::string p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (p == "show-region-gain") {
|
} else if (p == "show-region-gain") {
|
||||||
set_gain_envelope_visibility (Config->get_show_region_gain ());
|
set_gain_envelope_visibility ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -473,6 +473,8 @@ Editor::mouse_mode_toggled (MouseMode m)
|
||||||
}
|
}
|
||||||
|
|
||||||
set_canvas_cursor ();
|
set_canvas_cursor ();
|
||||||
|
cerr << "mouse-driven sgev\n";
|
||||||
|
set_gain_envelope_visibility ();
|
||||||
|
|
||||||
MouseModeChanged (); /* EMIT SIGNAL */
|
MouseModeChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4851,16 +4851,16 @@ Editor::reset_region_gain_envelopes ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::set_region_gain_visibility (RegionView* rv, bool yn)
|
Editor::set_region_gain_visibility (RegionView* rv)
|
||||||
{
|
{
|
||||||
AudioRegionView* arv = dynamic_cast<AudioRegionView*> (rv);
|
AudioRegionView* arv = dynamic_cast<AudioRegionView*> (rv);
|
||||||
if (arv) {
|
if (arv) {
|
||||||
arv->set_envelope_visible (yn);
|
arv->update_envelope_visible ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::set_gain_envelope_visibility (bool yn)
|
Editor::set_gain_envelope_visibility ()
|
||||||
{
|
{
|
||||||
if (!_session) {
|
if (!_session) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -4869,7 +4869,7 @@ Editor::set_gain_envelope_visibility (bool yn)
|
||||||
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||||
AudioTimeAxisView* v = dynamic_cast<AudioTimeAxisView*>(*i);
|
AudioTimeAxisView* v = dynamic_cast<AudioTimeAxisView*>(*i);
|
||||||
if (v) {
|
if (v) {
|
||||||
v->audio_view()->foreach_regionview (sigc::bind (sigc::mem_fun (this, &Editor::set_region_gain_visibility), yn));
|
v->audio_view()->foreach_regionview (sigc::mem_fun (this, &Editor::set_region_gain_visibility));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue