MIDI metering.
[ardour.git] / gtk2_ardour / editor_canvas.cc
index ac14d72a55d9b2361551f438a204bfb0867a913f..c3a5cb6e9b0a1d773159b390f0bdbc21b2eb3fe7 100644 (file)
 #include "waveview.h"
 #include "simplerect.h"
 #include "simpleline.h"
-#include "imageframe.h"
 #include "waveview_p.h"
 #include "simplerect_p.h"
 #include "simpleline_p.h"
-#include "imageframe_p.h"
 #include "canvas_impl.h"
 #include "editing.h"
 #include "rgb_macros.h"
 #include "time_axis_view.h"
 #include "audio_time_axis.h"
 
+#ifdef WITH_CMT
+#include "imageframe.h"
+#include "imageframe_p.h"
+#endif
+
 #include "i18n.h"
 
 using namespace std;
@@ -61,7 +64,10 @@ extern "C"
 GType gnome_canvas_simpleline_get_type(void);
 GType gnome_canvas_simplerect_get_type(void);
 GType gnome_canvas_waveview_get_type(void);
+
+#ifdef WITH_CMT
 GType gnome_canvas_imageframe_get_type(void);
+#endif
 
 }
 
@@ -72,14 +78,20 @@ static void ardour_canvas_type_init()
        Glib::wrap_register(gnome_canvas_simpleline_get_type(), &Gnome::Canvas::SimpleLine_Class::wrap_new);
        Glib::wrap_register(gnome_canvas_simplerect_get_type(), &Gnome::Canvas::SimpleRect_Class::wrap_new);
        Glib::wrap_register(gnome_canvas_waveview_get_type(), &Gnome::Canvas::WaveView_Class::wrap_new);
+
+#ifdef WITH_CMT
        Glib::wrap_register(gnome_canvas_imageframe_get_type(), &Gnome::Canvas::ImageFrame_Class::wrap_new);
+#endif
        
        // Register the gtkmm gtypes:
 
        (void) Gnome::Canvas::WaveView::get_type();
        (void) Gnome::Canvas::SimpleLine::get_type();
        (void) Gnome::Canvas::SimpleRect::get_type();
+       
+#ifdef WITH_CMT
        (void) Gnome::Canvas::ImageFrame::get_type();
+#endif
 } 
 
 void
@@ -149,24 +161,34 @@ Editor::initialize_canvas ()
        
        tempo_bar = new ArdourCanvas::SimpleRect (*tempo_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        tempo_bar->property_fill_color_rgba() = color_map[cTempoBar];
-       tempo_bar->property_outline_pixels() = 0;
+       tempo_bar->property_outline_what() = (0x1 | 0x8);
+       tempo_bar->property_outline_pixels() = 1;
+       tempo_bar->property_outline_color_rgba() = color_map[cTempoSeparator];
        
        meter_bar = new ArdourCanvas::SimpleRect (*meter_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        meter_bar->property_fill_color_rgba() = color_map[cMeterBar];
-       meter_bar->property_outline_pixels() = 0;
+       meter_bar->property_outline_what() = (0x1 | 0x8);
+       meter_bar->property_outline_pixels() = 1;
+       meter_bar->property_outline_color_rgba() = color_map[cMeterSeparator];
        
        marker_bar = new ArdourCanvas::SimpleRect (*marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        marker_bar->property_fill_color_rgba() = color_map[cMarkerBar];
-       marker_bar->property_outline_pixels() = 0;
+       marker_bar->property_outline_what() = (0x1 | 0x8);
+       marker_bar->property_outline_pixels() = 1;
+       marker_bar->property_outline_color_rgba() = color_map[cMarkerSeparator];
        
        range_marker_bar = new ArdourCanvas::SimpleRect (*range_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        range_marker_bar->property_fill_color_rgba() = color_map[cRangeMarkerBar];
-       range_marker_bar->property_outline_pixels() = 0;
+       range_marker_bar->property_outline_what() = (0x1 | 0x8);
+       range_marker_bar->property_outline_pixels() = 1;
+       range_marker_bar->property_outline_color_rgba() = color_map[cRangeMarkerSeparator];
        
        transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        transport_marker_bar->property_fill_color_rgba() = color_map[cTransportMarkerBar];
-       transport_marker_bar->property_outline_pixels() = 0;
-       
+       transport_marker_bar->property_outline_what() = (0x1 | 0x8);
+       transport_marker_bar->property_outline_pixels() = 1;
+       transport_marker_bar->property_outline_color_rgba() = color_map[cTransportMarkerSeparator];
+
        range_bar_drag_rect = new ArdourCanvas::SimpleRect (*range_marker_group, 0.0, 0.0, max_canvas_coordinate, timebar_height-1.0);
        range_bar_drag_rect->property_fill_color_rgba() = color_map[cRangeDragBarRectFill];
        range_bar_drag_rect->property_outline_color_rgba() = color_map[cRangeDragBarRect];
@@ -245,23 +267,6 @@ Editor::initialize_canvas ()
        range_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_range_marker_bar_event), range_marker_bar));
        transport_marker_bar->signal_event().connect (bind (mem_fun (*this, &Editor::canvas_transport_marker_bar_event), transport_marker_bar));
        
-       /* separator lines */
-       
-       tempo_line = new ArdourCanvas::SimpleLine (*tempo_group, 0, timebar_height, max_canvas_coordinate, timebar_height);
-       tempo_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255);
-
-       meter_line = new ArdourCanvas::SimpleLine (*meter_group, 0, timebar_height, max_canvas_coordinate, timebar_height);
-       meter_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255);
-
-       marker_line = new ArdourCanvas::SimpleLine (*marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height);
-       marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255);
-       
-       range_marker_line = new ArdourCanvas::SimpleLine (*range_marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height);
-       range_marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255);
-
-       transport_marker_line = new ArdourCanvas::SimpleLine (*transport_marker_group, 0, timebar_height, max_canvas_coordinate, timebar_height);
-       transport_marker_line->property_color_rgba() = RGBA_TO_UINT (0,0,0,255);
-
        ZoomChanged.connect (bind (mem_fun(*this, &Editor::update_loop_range_view), false));
        ZoomChanged.connect (bind (mem_fun(*this, &Editor::update_punch_range_view), false));
        
@@ -477,7 +482,7 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
                    guint info, guint time)
 {
        TimeAxisView* tvp;
-       AudioTimeAxisView* tv;
+       RouteTimeAxisView* tv;
        double cy;
        vector<ustring> paths;
        string spath;
@@ -513,7 +518,7 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
                nframes_t pos = 0;
                do_embed (paths, false, ImportAsTrack, 0, pos, false);
                
-       } else if ((tv = dynamic_cast<AudioTimeAxisView*>(tvp)) != 0) {
+       } else if ((tv = dynamic_cast<RouteTimeAxisView*>(tvp)) != 0) {
 
                /* check that its an audio track, not a bus */
                
@@ -538,11 +543,8 @@ Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
        for (uint32_t i = 0; i < sr->cnt; ++i) {
 
                boost::shared_ptr<Region> r = sr->data[i];
-               boost::shared_ptr<AudioRegion> ar;
-
-               if ((ar = boost::dynamic_pointer_cast<AudioRegion>(r)) != 0) {
-                       insert_region_list_drag (ar, x, y);
-               }
+               
+               insert_region_list_drag (r, x, y);
        }
 
        context->drag_finish (true, false, time);