+ /* mode menu */
+
+ if (EventTypeMap::instance().is_midi_parameter(_control->parameter())) {
+
+ Menu* auto_mode_menu = manage (new Menu);
+ auto_mode_menu->set_name ("ArdourContextMenu");
+ MenuList& am_items = auto_mode_menu->items();
+
+ RadioMenuItem::Group group;
+
+ am_items.push_back (RadioMenuElem (group, _("Discrete"), sigc::bind (
+ sigc::mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
+ AutomationList::Discrete)));
+ mode_discrete_item = dynamic_cast<CheckMenuItem*>(&am_items.back());
+ mode_discrete_item->set_active(_control->list()->interpolation() == AutomationList::Discrete);
+
+ am_items.push_back (RadioMenuElem (group, _("Linear"), sigc::bind (
+ sigc::mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
+ AutomationList::Linear)));
+ mode_line_item = dynamic_cast<CheckMenuItem*>(&am_items.back());
+
+ // Set default interpolation type to linear if this isn't a (usually) discrete controller
+ if (EventTypeMap::instance().interpolation_of(_control->parameter()) == Evoral::ControlList::Linear) {
+ mode_line_item->set_active(_control->list()->interpolation() == AutomationList::Linear);
+ }
+
+ items.push_back (MenuElem (_("Mode"), *auto_mode_menu));
+ }
+