add sampo's synthesize_sources perl script to tools; add scroll-playhead-{forward...
[ardour.git] / gtk2_ardour / editor_imageframe.cc
index 4b1636fb4b3e043750462fee95b2c9fccd005df3..b65ce93178b58ec0abc0fd83aee1d3cc9974818f 100644 (file)
 #include "public_editor.h"
 
 using namespace Gtk;
+using namespace PBD;
 
 /* <CMT Additions file="editor.cc"> */
 
 void
-Editor::add_imageframe_time_axis(std::string track_name, void* src)
+Editor::add_imageframe_time_axis(const string & track_name, void* src)
 {
        // check for duplicate name
        if(get_named_time_axis(track_name))
@@ -75,9 +76,9 @@ Editor::connect_to_image_compositor()
        }
 
        // XXX should really put this somewhere safe
-       std::string host_ip = "127.0.0.1" ;
+       const char * host_ip = "127.0.0.1" ;
        
-       bool retcode = image_socket_listener->connect(host_ip,ardourvis::DEFAULT_PORT) ;
+       bool retcode = image_socket_listener->connect(host_ip, ardourvis::DEFAULT_PORT) ;
        
        if(retcode == false)
        {
@@ -94,23 +95,23 @@ Editor::connect_to_image_compositor()
 void
 Editor::scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item)
 {
-       jack_nframes_t offset = static_cast<jack_nframes_t>(frames_per_unit * (edit_hscroll_slider_width/2)) ;
-       
-       jack_nframes_t x_pos = 0 ;
-       if(item->get_position() < offset)
-       {
+       // GTK2FIX
+       //nframes_t offset = static_cast<nframes_t>(frames_per_unit * (edit_hscroll_slider_width/2)) ;
+       nframes_t offset = 0;
+
+       nframes_t x_pos = 0 ;
+
+       if (item->get_position() < offset) {
                x_pos = 0 ;
-       }
-       else
-       {
-               x_pos = item->get_position() - offset + (item->get_duration() / 2) ;
+       } else {
+               x_pos = item->get_position() - offset + (item->get_duration() / 2);
        }
        
-       reposition_x_origin(x_pos) ;
+       reset_x_origin (x_pos);
 }
 
 void
-Editor::add_imageframe_marker_time_axis(std::string track_name, TimeAxisView* marked_track, void* src)
+Editor::add_imageframe_marker_time_axis(const string & track_name, TimeAxisView* marked_track, void* src)
 {
        // Can we only bind 2 data Items?
        // @todo we really want to bind the src attribute too, for the moment tracks can only be added remotely,
@@ -119,7 +120,7 @@ Editor::add_imageframe_marker_time_axis(std::string track_name, TimeAxisView* ma
 }
 
 void
-Editor::popup_imageframe_edit_menu(int button, int32_t time, Gnome::Canvas::Item* ifv, bool with_item)
+Editor::popup_imageframe_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item)
 {
        ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_trackview) ;
        
@@ -136,7 +137,7 @@ Editor::popup_imageframe_edit_menu(int button, int32_t time, Gnome::Canvas::Item
 }
 
 void
-Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, Gnome::Canvas::Item* ifv, bool with_item)
+Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_item)
 {
        MarkerTimeAxis* mta = dynamic_cast<MarkerTimeAxis*>(clicked_trackview) ;
        
@@ -151,11 +152,11 @@ Editor::popup_marker_time_axis_edit_menu(int button, int32_t time, Gnome::Canvas
 }
 
 TimeAxisView*
-Editor::get_named_time_axis(std::string name)
+Editor::get_named_time_axis(const string & name)
 {
        TimeAxisView* tav = 0 ;
        
-       for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i)
+       for (TrackViewList::const_iterator i = track_views.begin(); i != track_views.end(); ++i)
        {
                if (((TimeAxisView*)*i)->name() == name)
                {
@@ -420,7 +421,7 @@ Editor::canvas_markerview_end_handle_event (GdkEvent* event, ArdourCanvas::Item*
 /* <CMT Additions file="editor_mouse.cc"> */
 
 void
-Editor::start_imageframe_grab(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::start_imageframe_grab(ArdourCanvas::Item* item, GdkEvent* event)
 {
        ImageFrameView* ifv = ((ImageFrameTimeAxis*)clicked_trackview)->get_view()->get_selected_imageframe_view() ;
        drag_info.copy = false ;
@@ -453,7 +454,7 @@ Editor::start_imageframe_grab(Gnome::Canvas::Item* item, GdkEvent* event)
 
 
 void
-Editor::start_markerview_grab(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::start_markerview_grab(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = ((MarkerTimeAxis*)clicked_trackview)->get_view()->get_selected_time_axis_item() ;
        drag_info.copy = false ;
@@ -486,19 +487,19 @@ Editor::start_markerview_grab(Gnome::Canvas::Item* item, GdkEvent* event)
 
 
 void
-Editor::markerview_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent* event)
+Editor::markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event)
 {
        double cx, cy ;
 
        MarkerView* mv = reinterpret_cast<MarkerView*>(drag_info.data) ;
-       jack_nframes_t pending_region_position ;
-       jack_nframes_t pointer_frame ;
+       nframes_t pending_region_position ;
+       nframes_t pointer_frame ;
 
        pointer_frame = event_frame(event, &cx, &cy) ;
 
        snap_to(pointer_frame) ;
 
-       if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset)
+       if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset)
        {
                pending_region_position = pointer_frame - drag_info.pointer_frame_offset ;
                snap_to(pending_region_position) ;
@@ -533,20 +534,20 @@ Editor::markerview_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent* event)
 }
 
 void
-Editor::imageframe_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent* event)
+Editor::imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event)
 {
        double cx, cy ;
        
        ImageFrameView* ifv = reinterpret_cast<ImageFrameView*>(drag_info.data) ;
        
-       jack_nframes_t pending_region_position;
-       jack_nframes_t pointer_frame;
+       nframes_t pending_region_position;
+       nframes_t pointer_frame;
 
        pointer_frame = event_frame(event, &cx, &cy) ;
 
        snap_to(pointer_frame) ;
 
-       if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset)
+       if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset)
        {
                pending_region_position = pointer_frame - drag_info.pointer_frame_offset ;
                snap_to(pending_region_position) ;
@@ -572,9 +573,9 @@ Editor::imageframe_drag_motion_callback(Gnome::Canvas::Item*, GdkEvent* event)
 }
 
 void
-Editor::timeaxis_item_drag_finished_callback(Gnome::Canvas::Item*, GdkEvent* event)
+Editor::timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent* event)
 {
-       jack_nframes_t where ;
+       nframes_t where ;
        TimeAxisViewItem* tavi = reinterpret_cast<TimeAxisViewItem*>(drag_info.data) ;
 
        bool item_x_movement = (drag_info.last_frame_position != tavi->get_position()) ;
@@ -610,7 +611,7 @@ Editor::timeaxis_item_drag_finished_callback(Gnome::Canvas::Item*, GdkEvent* eve
 
 
 void
-Editor::imageframe_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event)
 {
        // get the selected item from the parent time axis
        ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_trackview) ;
@@ -631,8 +632,6 @@ Editor::imageframe_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
                drag_info.motion_callback = &Editor::imageframe_start_handle_trim_motion ;
                drag_info.finished_callback = &Editor::imageframe_start_handle_end_trim ;
                
-               flush_track_canvas() ;
-               
                start_grab(event) ;
                
                show_verbose_time_cursor(ifv->get_position(), 10) ;
@@ -640,7 +639,7 @@ Editor::imageframe_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
 }
 
 void
-Editor::imageframe_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event)
 {
        // get the selected item from the parent time axis
        ImageFrameTimeAxis* ifta = dynamic_cast<ImageFrameTimeAxis*>(clicked_trackview) ;
@@ -663,8 +662,6 @@ Editor::imageframe_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
                drag_info.motion_callback = &Editor::imageframe_end_handle_trim_motion ;
                drag_info.finished_callback = &Editor::imageframe_end_handle_end_trim ;
 
-               flush_track_canvas() ;
-
                start_grab(event, trimmer_cursor) ;
 
                show_verbose_time_cursor(ifv->get_position() + ifv->get_duration(), 10) ;
@@ -672,13 +669,13 @@ Editor::imageframe_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
 }
 
 void
-Editor::imageframe_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event)
 {
        ImageFrameView* ifv = reinterpret_cast<ImageFrameView*> (drag_info.data) ;
        
-       jack_nframes_t start = 0 ;
-       jack_nframes_t end = 0 ;
-       jack_nframes_t pointer_frame = event_frame(event) ;
+       nframes_t start = 0 ;
+       nframes_t end = 0 ;
+       nframes_t pointer_frame = event_frame(event) ;
        
        // chekc th eposition of the item is not locked
        if(!ifv->get_position_locked()) {
@@ -695,7 +692,7 @@ Editor::imageframe_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent*
                        }
                        
                        // are we getting bigger or smaller?
-                       jack_nframes_t new_dur_val = end - start ;
+                       nframes_t new_dur_val = end - start ;
                        
                        // start handle, so a smaller pointer frame increases our component size
                        if(pointer_frame <= drag_info.grab_frame) 
@@ -743,7 +740,7 @@ Editor::imageframe_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent*
 }
 
 void
-Editor::imageframe_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event)
 {
        ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ;
        
@@ -753,24 +750,22 @@ Editor::imageframe_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* ev
        }
        else
        {
-               jack_nframes_t temp = ifv->get_position() + ifv->get_duration() ;
+               nframes_t temp = ifv->get_position() + ifv->get_duration() ;
                
-               ifv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
-               ifv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ;
+               ifv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
+               ifv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ;
        }
-
-       flush_track_canvas() ;
 }
 
 void
-Editor::imageframe_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event)
 {
        ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ;
        
-       jack_nframes_t start = 0 ;
-       jack_nframes_t end = 0 ;
-       jack_nframes_t pointer_frame = event_frame(event) ;
-       jack_nframes_t new_dur_val = 0 ;
+       nframes_t start = 0 ;
+       nframes_t end = 0 ;
+       nframes_t pointer_frame = event_frame(event) ;
+       nframes_t new_dur_val = 0 ;
 
        snap_to(pointer_frame) ;
        
@@ -822,7 +817,7 @@ Editor::imageframe_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* e
 
 
 void
-Editor::imageframe_end_handle_end_trim (Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::imageframe_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event)
 {
        ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ;
 
@@ -832,19 +827,17 @@ Editor::imageframe_end_handle_end_trim (Gnome::Canvas::Item* item, GdkEvent* eve
        }
        else
        {
-               jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ;
+               nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ;
                if((new_duration <= ifv->get_max_duration()) && (new_duration >= ifv->get_min_duration()))
                {
                        ifv->set_duration(new_duration, this) ;
                }
        }
-
-       flush_track_canvas ();
 }
 
 
 void
-Editor::markerview_item_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_item_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerTimeAxis*>(clicked_trackview)->get_view()->get_selected_time_axis_item() ;
 
@@ -863,13 +856,11 @@ Editor::markerview_item_start_handle_op(Gnome::Canvas::Item* item, GdkEvent* eve
        drag_info.motion_callback = &Editor::markerview_start_handle_trim_motion ;
        drag_info.finished_callback = &Editor::markerview_start_handle_end_trim ;
 
-       flush_track_canvas() ;
-
        start_grab(event, trimmer_cursor) ;
 }
 
 void
-Editor::markerview_item_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_item_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerTimeAxis*>(clicked_trackview)->get_view()->get_selected_time_axis_item() ;
        if (mv == 0)
@@ -887,20 +878,18 @@ Editor::markerview_item_end_handle_op(Gnome::Canvas::Item* item, GdkEvent* event
        drag_info.motion_callback = &Editor::markerview_end_handle_trim_motion ;
        drag_info.finished_callback = &Editor::markerview_end_handle_end_trim ;
        
-       flush_track_canvas () ;
-
        start_grab(event, trimmer_cursor) ;
 }
 
 
 void
-Editor::markerview_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
        
-       jack_nframes_t start = 0 ;
-       jack_nframes_t end = 0 ;
-       jack_nframes_t pointer_frame = event_frame(event) ;
+       nframes_t start = 0 ;
+       nframes_t end = 0 ;
+       nframes_t pointer_frame = event_frame(event) ;
        
        // chekc th eposition of the item is not locked
        if(!mv->get_position_locked())
@@ -921,7 +910,7 @@ Editor::markerview_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent*
                        }
                        
                        // are we getting bigger or smaller?
-                       jack_nframes_t new_dur_val = end - start ;
+                       nframes_t new_dur_val = end - start ;
                        
                        if(pointer_frame <= drag_info.grab_frame)
                        {
@@ -968,7 +957,7 @@ Editor::markerview_start_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent*
 }
 
 void
-Editor::markerview_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
        
@@ -978,24 +967,22 @@ Editor::markerview_start_handle_end_trim(Gnome::Canvas::Item* item, GdkEvent* ev
        }
        else
        {
-               jack_nframes_t temp = mv->get_position() + mv->get_duration() ;
+               nframes_t temp = mv->get_position() + mv->get_duration() ;
                
-               mv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
-               mv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ;
+               mv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
+               mv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ;
        }
-
-       flush_track_canvas() ;
 }
 
 void
-Editor::markerview_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
        
-       jack_nframes_t start = 0 ;
-       jack_nframes_t end = 0 ;
-       jack_nframes_t pointer_frame = event_frame(event) ;
-       jack_nframes_t new_dur_val = 0 ;
+       nframes_t start = 0 ;
+       nframes_t end = 0 ;
+       nframes_t pointer_frame = event_frame(event) ;
+       nframes_t new_dur_val = 0 ;
 
        snap_to(pointer_frame) ;
        
@@ -1020,7 +1007,7 @@ Editor::markerview_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* e
                {
                        // we cant extend beyond the item we are marking
                        ImageFrameView* marked_item = mv->get_marked_item() ;
-                       jack_nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ;
+                       nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ;
                        
                        if(mv->get_max_duration_active() && (new_dur_val > mv->get_max_duration()))
                        {
@@ -1064,7 +1051,7 @@ Editor::markerview_end_handle_trim_motion(Gnome::Canvas::Item* item, GdkEvent* e
 
 
 void
-Editor::markerview_end_handle_end_trim (Gnome::Canvas::Item* item, GdkEvent* event)
+Editor::markerview_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* event)
 {
        MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
 
@@ -1074,11 +1061,9 @@ Editor::markerview_end_handle_end_trim (Gnome::Canvas::Item* item, GdkEvent* eve
        }
        else
        {
-               jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ;
+               nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ;
                mv->set_duration(new_duration, this) ;
        }
-
-       flush_track_canvas() ;
 }
 
 
@@ -1093,7 +1078,7 @@ Editor::markerview_end_handle_end_trim (Gnome::Canvas::Item* item, GdkEvent* eve
 /* <CMT Additions file="editor_route_list.cc"> */
 
 void
-Editor::handle_new_imageframe_time_axis_view(std::string track_name, void* src)
+Editor::handle_new_imageframe_time_axis_view(const string & track_name, void* src)
 {
        ImageFrameTimeAxis* iftav ;
        iftav = new ImageFrameTimeAxis(track_name, *this, *session, track_canvas) ;
@@ -1104,14 +1089,14 @@ Editor::handle_new_imageframe_time_axis_view(std::string track_name, void* src)
 
        row[route_display_columns.text] = iftav->name();
        row[route_display_columns.tv] = iftav;
-       route_list.get_selection()->select (row);
+       route_list_display.get_selection()->select (row);
 
        iftav->GoingAway.connect(bind(mem_fun(*this, &Editor::remove_route), (TimeAxisView*)iftav)) ;
        iftav->gui_changed.connect(mem_fun(*this, &Editor::handle_gui_changes)) ;
 }
 
 void
-Editor::handle_new_imageframe_marker_time_axis_view(std::string track_name, TimeAxisView* marked_track)
+Editor::handle_new_imageframe_marker_time_axis_view(const string & track_name, TimeAxisView* marked_track)
 {
        MarkerTimeAxis* mta = new MarkerTimeAxis (*this, *this->current_session(), track_canvas, track_name, marked_track) ;
        ((ImageFrameTimeAxis*)marked_track)->add_marker_time_axis(mta, this) ;
@@ -1121,7 +1106,7 @@ Editor::handle_new_imageframe_marker_time_axis_view(std::string track_name, Time
 
        row[route_display_columns.text] = mta->name();
        row[route_display_columns.tv] = mta;
-       route_list.get_selection()->select (row);
+       route_list_display.get_selection()->select (row);
 
        mta->GoingAway.connect(bind(mem_fun(*this, &Editor::remove_route), (TimeAxisView*)mta)) ;
  }