// load_bindings ();
setup_toolbar ();
- setup_midi_toolbar ();
_snap_type = SnapToBeat;
set_snap_to (_snap_type);
ARDOUR_UI::instance()->set_tip (snap_type_selector, _("Snap/Grid Units"));
ARDOUR_UI::instance()->set_tip (snap_mode_selector, _("Snap/Grid Mode"));
ARDOUR_UI::instance()->set_tip (edit_point_selector, _("Edit point"));
- ARDOUR_UI::instance()->set_tip (midi_sound_notes, _("Sound Notes"));
ARDOUR_UI::instance()->set_tip (edit_mode_selector, _("Edit Mode"));
}
-
-void
-Editor::setup_midi_toolbar ()
-{
- RefPtr<Action> act;
-
- /* Midi sound notes */
- midi_sound_notes.add (*(manage (new Image (::get_icon("midi_sound_notes")))));
- midi_sound_notes.unset_flags (CAN_FOCUS);
- midi_sound_notes.set_name (X_("MidiSoundNotesButton"));
-
- /* Panic */
-
- panic_box.pack_start (midi_sound_notes , true, true);
- // panic_box.pack_start (midi_panic_button, true, true);
-}
-
int
Editor::convert_drop_to_paths (
vector<string>& paths,
/* midi toolbar */
Gtk::HBox panic_box;
- Gtkmm2ext::StatefulToggleButton midi_sound_notes;
- bool sound_notes () const { return midi_sound_notes.get_active(); }
void setup_midi_toolbar ();
void
MidiRegionView::play_midi_note(boost::shared_ptr<NoteType> note)
{
- if (_no_sound_notes || !trackview.editor().sound_notes()) {
+ if (_no_sound_notes || !Config->get_sound_midi_notes()) {
return;
}
void
MidiRegionView::play_midi_chord (vector<boost::shared_ptr<NoteType> > notes)
{
- if (_no_sound_notes || !trackview.editor().sound_notes()) {
+ if (_no_sound_notes || !Config->get_sound_midi_notes()) {
return;
}
(*i)->move_event(dx, dy);
}
- if (dy && !_selection.empty() && !_no_sound_notes && trackview.editor().sound_notes()) {
+ if (dy && !_selection.empty() && !_no_sound_notes && Config->get_sound_midi_notes()) {
if (to_play.size() > 1) {
virtual bool internal_editing() const = 0;
- /** @return Sound edited notes in MIDI regions while editing
- */
- virtual bool sound_notes () const = 0;
-
/** Possibly start the audition of a region. If @param r is 0, or not an AudioRegion
* any current audition is cancelled. If we are currently auditioning @param r,
* the audition will be cancelled. Otherwise an audition of @param r will start.
sigc::mem_fun (*_rc_config, &RCConfiguration::set_never_display_periodic_midi)
));
+ add_option (_("MIDI"),
+ new BoolOption (
+ "sound-midi-notes",
+ _("Sound MIDI notes as they are selected"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_sound_midi_notes),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_sound_midi_notes)
+ ));
+
/* USER INTERACTION */
add_option (_("User interaction"), new OptionEditorHeading (_("Keyboard")));
CONFIG_VARIABLE (gain_t, max_gain, "max-gain", 2.0) /* +6.0dB */
CONFIG_VARIABLE (bool, update_editor_during_summary_drag, "update-editor-during-summary-drag", true)
CONFIG_VARIABLE (bool, never_display_periodic_midi, "never-display-periodic-midi", true)
+CONFIG_VARIABLE (bool, sound_midi_notes, "sound-midi-notes", false)
/* denormal management */
#include <algorithm>
#include "pbd/xml++.h"
+#include "pbd/boost_debug.h"
#include "ardour/amp.h"
#include "ardour/send.h"
: Delivery (s, p, mm, string_compose (_("send %1"), (_bitslot = s.next_send_id()) + 1), r)
, _metering (false)
{
+ boost_debug_shared_ptr_mark_interesting (this, "send");
+
_amp.reset (new Amp (_session));
_meter.reset (new PeakMeter (_session));
}