X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_ops.cc;h=d79f1df47b7410d770d2a54b0f759933b5a0e96f;hb=7b155267505af3fedffc7972b08cb784c97b7e74;hp=bcae625c9d72b388061305b6e4fc0d4419bda3ee;hpb=fd252ba19c84710f892d1fb8ca90e738956c4f97;p=ardour.git diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index bcae625c9d..d79f1df47b 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -1207,68 +1207,6 @@ Editor::scroll_playhead (bool forward) _session->request_locate (pos); } -void -Editor::playhead_backward () -{ - framepos_t pos; - framepos_t cnt; - float prefix; - bool was_floating; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate ()); - } else { - cnt = (framepos_t) prefix; - } - } - - pos = playhead_cursor->current_frame; - - if ((framepos_t) pos < cnt) { - pos = 0; - } else { - pos -= cnt; - } - - /* XXX this is completely insane. with the current buffering - design, we'll force a complete track buffer flush and - reload, just to move 1 sample !!! - */ - - _session->request_locate (pos); -} - -void -Editor::playhead_forward () -{ - framepos_t pos; - framepos_t cnt; - bool was_floating; - float prefix; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate ()); - } else { - cnt = (framepos_t) floor (prefix); - } - } - - pos = playhead_cursor->current_frame; - - /* XXX this is completely insane. with the current buffering - design, we'll force a complete track buffer flush and - reload, just to move 1 sample !!! - */ - - _session->request_locate (pos+cnt); -} - void Editor::cursor_align (bool playhead_to_edit) { @@ -1302,98 +1240,13 @@ Editor::cursor_align (bool playhead_to_edit) } } -void -Editor::edit_cursor_backward () -{ - framepos_t pos; - framepos_t cnt; - float prefix; - bool was_floating; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate ()); - } else { - cnt = (framepos_t) prefix; - } - } - - if ((pos = get_preferred_edit_position()) < 0) { - return; - } - - if (pos < cnt) { - pos = 0; - } else { - pos -= cnt; - } - - // EDIT CURSOR edit_cursor->set_position (pos); -} - -void -Editor::edit_cursor_forward () -{ - //framepos_t pos; - framepos_t cnt; - bool was_floating; - float prefix; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate ()); - } else { - cnt = (framepos_t) floor (prefix); - } - } - - // pos = edit_cursor->current_frame; - // EDIT CURSOR edit_cursor->set_position (pos+cnt); -} - -void -Editor::goto_frame () -{ - float prefix; - bool was_floating; - framepos_t frame; - - if (get_prefix (prefix, was_floating)) { - return; - } - - if (was_floating) { - frame = (framepos_t) floor (prefix * _session->frame_rate()); - } else { - frame = (framepos_t) floor (prefix); - } - - _session->request_locate (frame); -} - void Editor::scroll_backward (float pages) { - framepos_t frame; - framepos_t one_page = (framepos_t) rint (_canvas_width * frames_per_unit); - bool was_floating; - float prefix; - framepos_t cnt; - - if (get_prefix (prefix, was_floating)) { - cnt = (framepos_t) floor (pages * one_page); - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate()); - } else { - cnt = (framepos_t) floor (prefix * one_page); - } - } + framepos_t const one_page = (framepos_t) rint (_canvas_width * frames_per_unit); + framepos_t const cnt = (framepos_t) floor (pages * one_page); + framepos_t frame; if (leftmost_frame < cnt) { frame = 0; } else { @@ -1406,22 +1259,10 @@ Editor::scroll_backward (float pages) void Editor::scroll_forward (float pages) { - framepos_t frame; - framepos_t one_page = (framepos_t) rint (_canvas_width * frames_per_unit); - bool was_floating; - float prefix; - framepos_t cnt; - - if (get_prefix (prefix, was_floating)) { - cnt = (framepos_t) floor (pages * one_page); - } else { - if (was_floating) { - cnt = (framepos_t) floor (prefix * _session->frame_rate()); - } else { - cnt = (framepos_t) floor (prefix * one_page); - } - } + framepos_t const one_page = (framepos_t) rint (_canvas_width * frames_per_unit); + framepos_t const cnt = (framepos_t) floor (pages * one_page); + framepos_t frame; if (max_framepos - cnt < leftmost_frame) { frame = max_framepos - cnt; } else { @@ -1434,38 +1275,18 @@ Editor::scroll_forward (float pages) void Editor::scroll_tracks_down () { - float prefix; - bool was_floating; - int cnt; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - cnt = (int) floor (prefix); - } - - double vert_value = vertical_adjustment.get_value() + (cnt * - vertical_adjustment.get_page_size()); + double vert_value = vertical_adjustment.get_value() + vertical_adjustment.get_page_size(); if (vert_value > vertical_adjustment.get_upper() - _canvas_height) { vert_value = vertical_adjustment.get_upper() - _canvas_height; } + vertical_adjustment.set_value (vert_value); } void Editor::scroll_tracks_up () { - float prefix; - bool was_floating; - int cnt; - - if (get_prefix (prefix, was_floating)) { - cnt = 1; - } else { - cnt = (int) floor (prefix); - } - - vertical_adjustment.set_value (vertical_adjustment.get_value() - (cnt * vertical_adjustment.get_page_size())); + vertical_adjustment.set_value (vertical_adjustment.get_value() - vertical_adjustment.get_page_size()); } void @@ -1987,59 +1808,6 @@ Editor::add_location_from_region () _session->commit_reversible_command (); } -void -Editor::amplitude_zoom_step (bool in) -{ - gdouble zoom = 1.0; - - if (in) { - zoom *= 2.0; - } else { - if (zoom > 2.0) { - zoom /= 2.0; - } else { - zoom = 1.0; - } - } - -#ifdef FIX_FOR_CANVAS - /* XXX DO SOMETHING */ -#endif -} - - -/* DELETION */ - - -void -Editor::delete_sample_forward () -{ -} - -void -Editor::delete_sample_backward () -{ -} - -void -Editor::delete_screen () -{ -} - -/* SEARCH */ - -void -Editor::search_backwards () -{ - /* what ? */ -} - -void -Editor::search_forwards () -{ - /* what ? */ -} - /* MARKS */ void @@ -2077,25 +1845,15 @@ Editor::jump_backward_to_mark () void Editor::set_mark () { - framepos_t pos; - float prefix; - bool was_floating; - string markername; - - if (get_prefix (prefix, was_floating)) { - pos = _session->audible_frame (); - } else { - if (was_floating) { - pos = (framepos_t) floor (prefix * _session->frame_rate ()); - } else { - pos = (framepos_t) floor (prefix); - } - } + framepos_t const pos = _session->audible_frame (); - _session->locations()->next_available_name(markername,"mark"); - if (!choose_new_marker_name(markername)) { + string markername; + _session->locations()->next_available_name (markername, "mark"); + + if (!choose_new_marker_name (markername)) { return; } + _session->locations()->add (new Location (*_session, pos, 0, markername, Location::IsMark), true); } @@ -4153,8 +3911,6 @@ Editor::mouse_paste () void Editor::paste_internal (framepos_t position, float times) { - bool commit = false; - DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("apparent paste position is %1\n", position)); if (internal_editing()) { @@ -4172,8 +3928,6 @@ Editor::paste_internal (framepos_t position, float times) DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("preferred edit position is %1\n", position)); } - begin_reversible_command (Operations::paste); - TrackViewList ts; TrackViewList::iterator i; size_t nth; @@ -4191,18 +3945,18 @@ Editor::paste_internal (framepos_t position, float times) ts.push_back (_last_cut_copy_source_track); } - for (nth = 0, i = ts.begin(); i != ts.end(); ++i, ++nth) { + if (internal_editing ()) { /* undo/redo is handled by individual tracks/regions */ - - if (internal_editing()) { - + + for (nth = 0, i = ts.begin(); i != ts.end(); ++i, ++nth) { + RegionSelection rs; RegionSelection::iterator r; MidiNoteSelection::iterator cb; - + get_regions_at (rs, position, ts); - + for (cb = cut_buffer->midi_notes.begin(), r = rs.begin(); cb != cut_buffer->midi_notes.end() && r != rs.end(); ++r) { MidiRegionView* mrv = dynamic_cast (*r); @@ -4211,16 +3965,18 @@ Editor::paste_internal (framepos_t position, float times) ++cb; } } + } + + } else { - } else { + /* we do redo (do you do voodoo?) */ - if ((*i)->paste (position, times, *cut_buffer, nth)) { - commit = true; - } + begin_reversible_command (Operations::paste); + + for (nth = 0, i = ts.begin(); i != ts.end(); ++i, ++nth) { + (*i)->paste (position, times, *cut_buffer, nth); } - } - - if (commit) { + commit_reversible_command (); } } @@ -4829,22 +4585,6 @@ Editor::external_edit_region () /* more to come */ } -void -Editor::brush (framepos_t pos) -{ - snap_to (pos); - - RegionSelection rs = get_regions_from_selection_and_entered (); - - if (rs.empty()) { - return; - } - - for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - mouse_brush_insert_region ((*i), pos); - } -} - void Editor::reset_region_gain_envelopes () { @@ -6456,7 +6196,31 @@ Editor::insert_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt, void Editor::fit_selected_tracks () { - fit_tracks (selection->tracks); + if (!selection->tracks.empty()) { + fit_tracks (selection->tracks); + } else { + TrackViewList tvl; + + /* no selected tracks - use tracks with selected regions */ + + if (!selection->regions.empty()) { + for (RegionSelection::iterator r = selection->regions.begin(); r != selection->regions.end(); ++r) { + tvl.push_back (&(*r)->get_time_axis_view ()); + } + + if (!tvl.empty()) { + fit_tracks (tvl); + } + } else if (internal_editing()) { + /* no selected tracks, or regions, but in internal edit mode, so follow the mouse and use + the entered track + */ + if (entered_track) { + tvl.push_back (entered_track); + fit_tracks (tvl); + } + } + } } void