Remove internal edit mode and add "content" tool.
[ardour.git] / gtk2_ardour / note_base.h
index 5e52be0732e7577288e16838163147cde433e258..d426a7b59d3d278ef41175316a1c4323bf058c91 100644 (file)
@@ -21,8 +21,9 @@
 #define __gtk_ardour_note_base_h__
 
 #include <boost/shared_ptr.hpp>
+
 #include "canvas/types.h"
-#include "ardour/midi_model.h"
+#include "evoral/types.hpp"
 
 #include "rgb_macros.h"
 #include "ardour_ui.h"
@@ -54,7 +55,7 @@ namespace ArdourCanvas {
 class NoteBase : public sigc::trackable
 {
   public:
-       typedef Evoral::Note<ARDOUR::MidiModel::TimeType> NoteType;
+       typedef Evoral::Note<Evoral::MusicalTime> NoteType;
 
        NoteBase (MidiRegionView& region, bool, const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>());
        virtual ~NoteBase ();
@@ -102,36 +103,26 @@ class NoteBase : public sigc::trackable
        MidiRegionView& region_view() const { return _region; }
 
        inline static uint32_t meter_style_fill_color(uint8_t vel, bool selected) {
-                if (selected) {
-                        if (vel < 64) {
-                                return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorBase(),
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
-                                       (vel / (double)63.0));
-                        } else {
-                                return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorMid(),
-                                       ARDOUR_UI::config()->get_canvasvar_SelectedMidiNoteColorTop(),
-                                       ((vel-64) / (double)63.0));
-                        }
-                } else {
-                        if (vel < 64) {
-                                return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorBase(),
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
-                                       (vel / (double)63.0));
-                        } else {
-                                return UINT_INTERPOLATE(
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorMid(),
-                                       ARDOUR_UI::config()->get_canvasvar_MidiNoteColorTop(),
-                                       ((vel-64) / (double)63.0));
-                        }
-                }
+               if (vel < 64) {
+                       return UINT_INTERPOLATE(
+                               ARDOUR_UI::config()->color_mod ("midi note min", "midi note"),
+                               ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
+                               (vel / (double)63.0));
+               } else {
+                       return UINT_INTERPOLATE(
+                               ARDOUR_UI::config()->color_mod ("midi note mid", "midi note"),
+                               ARDOUR_UI::config()->color_mod ("midi note max", " midi note"),
+                               ((vel-64) / (double)63.0));
+               }
        }
 
        /// calculate outline colors from fill colors of notes
-       inline static uint32_t calculate_outline(uint32_t color) {
-               return UINT_INTERPOLATE(color, 0x000000ff, 0.5);
+       inline static uint32_t calculate_outline(uint32_t color, bool selected=false) {
+               if (selected) {
+                       return ARDOUR_UI::config()->color ("midi note selected outline");
+               } else {
+                       return UINT_INTERPOLATE(color, 0x000000ff, 0.5);
+               }
        }
 
        /// hue circle divided into 16 equal-looking parts, courtesy Thorsten Wilms