#include "ardour/region_factory.h"
#include "ardour/source_factory.h"
#include "ardour/session.h"
+#include "ardour/operations.h"
#include <bitset>
c = _cursors->grabber_edit_point;
break;
default:
- boost::shared_ptr<Movable> m = _movable.lock();
- if (m && m->locked()) {
- c = _cursors->speaker;
- }
+ boost::shared_ptr<Movable> m = _movable.lock();
+ if (m && m->locked()) {
+ c = _cursors->speaker;
+ }
break;
}
}
void
Editor::set_current_trimmable (boost::shared_ptr<Trimmable> t)
{
- boost::shared_ptr<Trimmable> st = _trimmable.lock();
+ boost::shared_ptr<Trimmable> st = _trimmable.lock();
- if (!st || st == t) {
- _trimmable = t;
- set_canvas_cursor ();
- }
-
+ if (!st || st == t) {
+ _trimmable = t;
+ set_canvas_cursor ();
+ }
}
void
Editor::set_current_movable (boost::shared_ptr<Movable> m)
{
- boost::shared_ptr<Movable> sm = _movable.lock();
+ boost::shared_ptr<Movable> sm = _movable.lock();
- if (!sm || sm != m) {
- _movable = m;
- set_canvas_cursor ();
- }
+ if (!sm || sm != m) {
+ _movable = m;
+ set_canvas_cursor ();
+ }
}
void
}
}
- set_canvas_cursor (current_canvas_cursor, true);
+ set_canvas_cursor (current_canvas_cursor, true);
}
void
instant_save ();
- if (!internal_editing()) {
- if (mouse_mode != MouseRange && _join_object_range_state == JOIN_OBJECT_RANGE_NONE) {
+ if (!internal_editing()) {
+ if (mouse_mode != MouseRange && _join_object_range_state == JOIN_OBJECT_RANGE_NONE) {
- /* in all modes except range and joined object/range, hide the range selection,
- show the object (region) selection.
- */
+ /* in all modes except range and joined object/range, hide the range selection,
+ show the object (region) selection.
+ */
- for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
- (*i)->set_should_show_selection (true);
- }
- for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
- (*i)->hide_selection ();
- }
+ for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
+ (*i)->set_should_show_selection (true);
+ }
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ (*i)->hide_selection ();
+ }
- } else {
+ } else {
- /*
- in range or object/range mode, show the range selection.
- */
+ /*
+ in range or object/range mode, show the range selection.
+ */
- for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
- (*i)->show_selection (selection->time);
- }
- }
- }
+ for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
+ (*i)->show_selection (selection->time);
+ }
+ }
+ }
set_canvas_cursor ();
case RegionViewNameHighlight:
case RegionViewName:
- case LeftFrameHandle:
- case RightFrameHandle:
+ case LeftFrameHandle:
+ case RightFrameHandle:
if (mouse_mode != MouseRange || _join_object_range_state == JOIN_OBJECT_RANGE_OBJECT) {
set_selected_regionview_from_click (press, op, true);
} else if (event->type == GDK_BUTTON_PRESS) {
}
break;
- case NoteItem:
- if (internal_editing()) {
- /* trim notes if we're in internal edit mode and near the ends of the note */
- ArdourCanvas::CanvasNote* cn = dynamic_cast<ArdourCanvas::CanvasNote*> (item);
- cerr << "NoteItem button press, cursor = " << current_canvas_cursor << endl;
- if (cn->mouse_near_ends()) {
- _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor);
- } else {
- _drags->set (new NoteDrag (this, item), event);
- }
- }
+ case NoteItem:
+ if (internal_editing()) {
+ /* trim notes if we're in internal edit mode and near the ends of the note */
+ ArdourCanvas::CanvasNote* cn = dynamic_cast<ArdourCanvas::CanvasNote*> (item);
+ cerr << "NoteItem button press, cursor = " << current_canvas_cursor << endl;
+ if (cn->mouse_near_ends()) {
+ _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor);
+ } else {
+ _drags->set (new NoteDrag (this, item), event);
+ }
+ }
return true;
- case StreamItem:
- if (internal_editing()) {
+ case StreamItem:
+ if (internal_editing()) {
if (dynamic_cast<MidiTimeAxisView*> (clicked_axisview)) {
_drags->set (new RegionCreateDrag (this, item, clicked_axisview), event);
return true;
}
- } else {
+ } else {
_drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
return true;
}
- break;
+ break;
- case RegionViewNameHighlight:
- case LeftFrameHandle:
- case RightFrameHandle:
- if (!clicked_regionview->region()->locked()) {
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::edit.property_id);
- _drags->set (new TrimDrag (this, item, clicked_regionview, s.by_layer()), event);
- return true;
- }
- break;
+ case RegionViewNameHighlight:
+ case LeftFrameHandle:
+ case RightFrameHandle:
+ if (!clicked_regionview->region()->locked()) {
+ RegionSelection s = get_equivalent_regions (selection->regions, Properties::edit.property_id);
+ _drags->set (new TrimDrag (this, item, clicked_regionview, s.by_layer()), event);
+ return true;
+ }
+ break;
default:
- if (!internal_editing()) {
- _drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
- }
+ if (!internal_editing()) {
+ _drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
+ }
}
return true;
break;
switch (item_type) {
case NoteItem:
if (internal_editing()) {
- ArdourCanvas::CanvasNote* cn = dynamic_cast<ArdourCanvas::CanvasNote*> (item);
- if (cn->mouse_near_ends()) {
- _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor);
- } else {
- _drags->set (new NoteDrag (this, item), event);
- }
+ ArdourCanvas::CanvasNoteEvent* cn = dynamic_cast<ArdourCanvas::CanvasNoteEvent*> (item);
+ if (cn->mouse_near_ends()) {
+ _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor);
+ } else {
+ _drags->set (new NoteDrag (this, item), event);
+ }
return true;
}
break;
}
set_canvas_cursor (_cursors->fade_in);
}
- break;
+ break;
case FadeOutHandleItem:
if (mouse_mode == MouseObject && !internal_editing()) {
Location *loc;
RegionView* rv;
bool is_start;
- bool ret = true;
+ bool ret = true;
switch (item_type) {
case ControlPointItem:
}
if (is_drawable()) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
}
hide_verbose_canvas_cursor ();
_over_region_trim_target = false;
if (is_drawable()) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
}
break;
line->property_fill_color_rgba() = al->get_line_color();
}
if (is_drawable()) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
}
break;
if (!reinterpret_cast<RegionView *> (item->get_data ("regionview"))->name_active()) {
if (is_drawable() && mouse_mode == MouseObject) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
}
}
break;
case TempoBarItem:
case MarkerBarItem:
if (is_drawable()) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
}
break;
rect->property_outline_pixels() = 0;
}
}
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
break;
case AutomationTrackItem:
if (is_drawable()) {
- set_canvas_cursor (current_canvas_cursor);
+ set_canvas_cursor (current_canvas_cursor);
clear_entered_track = true;
Glib::signal_idle().connect (sigc::mem_fun(*this, &Editor::left_automation_track));
}
{
char buf[128];
Timecode::Time timecode;
- BBT_Time bbt;
+ Timecode::BBT_Time bbt;
int hours, mins;
framepos_t frame_rate;
float secs;
{
char buf[128];
Timecode::Time timecode;
- BBT_Time sbbt;
- BBT_Time ebbt;
+ Timecode::BBT_Time sbbt;
+ Timecode::BBT_Time ebbt;
int hours, mins;
framepos_t distance, frame_rate;
float secs;
ebbt.ticks -= sbbt.ticks;
} else {
ebbt.beats--;
- ebbt.ticks = int(Meter::ticks_per_beat) + ebbt.ticks - sbbt.ticks;
+ ebbt.ticks = int(Timecode::BBT_Time::ticks_per_beat) + ebbt.ticks - sbbt.ticks;
}
snprintf (buf, sizeof (buf), "%02" PRIu32 "|%02" PRIu32 "|%02" PRIu32, ebbt.bars, ebbt.beats, ebbt.ticks);
boost::shared_ptr<Playlist> playlist = rtv->playlist();
double speed = rtv->track()->speed();
- playlist->clear_changes ();
+ playlist->clear_changes ();
boost::shared_ptr<Region> new_region (RegionFactory::create (rv->region()));
- playlist->add_region (new_region, (framepos_t) (pos * speed));
+ playlist->add_region (new_region, (framepos_t) (pos * speed));
_session->add_command (new StatefulDiffCommand (playlist));
// playlist is frozen, so we have to update manually XXX this is disgusting
{
assert (region_view);
- if (!region_view->region()->playlist()) {
- return;
- }
+ if (!region_view->region()->playlist()) {
+ return;
+ }
_region_motion_group->raise_to_top ();
{
assert (region_view);
- if (!region_view->region()->playlist()) {
- return;
- }
+ if (!region_view->region()->playlist()) {
+ return;
+ }
_region_motion_group->raise_to_top ();
{
assert (region_view);
- if (!region_view->region()->playlist()) {
- return;
- }
+ if (!region_view->region()->playlist()) {
+ return;
+ }
if (Config->get_edit_mode() == Splice) {
return;
RegionSelection s = get_equivalent_regions (selection->regions, ARDOUR::Properties::edit.property_id);
_drags->add (new RegionMoveDrag (this, item, region_view, s.by_layer(), true, false));
- begin_reversible_command (_("Drag region brush"));
+ begin_reversible_command (Operations::drag_region_brush);
}
/** Start a grab where a time range is selected, track(s) are selected, and the
creating the new region and another for moving it.
*/
- begin_reversible_command (_("selection grab"));
+ begin_reversible_command (Operations::selection_grab);
boost::shared_ptr<Playlist> playlist = clicked_axisview->playlist();
- playlist->clear_changes ();
+ playlist->clear_changes ();
clicked_routeview->playlist()->add_region (region, selection->time[clicked_selection].start);
_session->add_command(new StatefulDiffCommand (playlist));
if (yn) {
mouse_select_button.set_image (*(manage (new Image (::get_icon("midi_tool_pencil")))));
mouse_select_button.get_image ()->show ();
- ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Draw/Edit MIDI Notes"));
+ ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Draw/Edit MIDI Notes"));
mouse_mode_toggled (mouse_mode);
- /* deselect everything to avoid confusion when e.g. we can't now cut a previously selected
- region because cut means "cut note" rather than "cut region".
- */
- selection->clear ();
-
} else {
mouse_select_button.set_image (*(manage (new Image (::get_icon("tool_range")))));
mouse_select_button.get_image ()->show ();
- ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Select/Move Ranges"));
- mouse_mode_toggled (mouse_mode); // sets cursor
+ ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Select/Move Ranges"));
+ mouse_mode_toggled (mouse_mode); // sets cursor
}
}