summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-note-event.cc
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-12-24 10:52:19 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-12-24 10:52:19 +0000
commit821683acf2c9b6913a552d7bb7014f1bcbfad462 (patch)
tree3974662dec7cd0291f06de2177badc0b4d76c272 /gtk2_ardour/canvas-note-event.cc
parente2147fbc5bf0546fcafa32fe1d87f6e6d1b652c4 (diff)
* fixed velocity text event handling
* fixed track note colors * fixed color on ChannelMode git-svn-id: svn://localhost/ardour2/branches/3.0@4345 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-note-event.cc')
-rw-r--r--gtk2_ardour/canvas-note-event.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/gtk2_ardour/canvas-note-event.cc b/gtk2_ardour/canvas-note-event.cc
index e5ff6abf46..d89e68786d 100644
--- a/gtk2_ardour/canvas-note-event.cc
+++ b/gtk2_ardour/canvas-note-event.cc
@@ -32,10 +32,10 @@ namespace Canvas {
/// dividing the hue circle in 16 parts, hand adjusted for equal look, courtesy Thorsten Wilms
const uint32_t CanvasNoteEvent::midi_channel_colors[16] = {
- 0xd32d2d00, 0xd36b2d00, 0xd3972d00, 0xd3d12d00,
- 0xa0d32d00, 0x7dd32d00, 0x2dd45e00, 0x2dd3c400,
- 0x2da5d300, 0x2d6fd300, 0x432dd300, 0x662dd300,
- 0x832dd300, 0xa92dd300, 0xd32dbf00, 0xd32d6700
+ 0xd32d2dff, 0xd36b2dff, 0xd3972dff, 0xd3d12dff,
+ 0xa0d32dff, 0x7dd32dff, 0x2dd45eff, 0x2dd3c4ff,
+ 0x2da5d3ff, 0x2d6fd3ff, 0x432dd3ff, 0x662dd3ff,
+ 0x832dd3ff, 0xa92dd3ff, 0xd32dbfff, 0xd32d67ff
};
CanvasNoteEvent::CanvasNoteEvent(MidiRegionView& region, Item* item,
@@ -75,7 +75,7 @@ void
CanvasNoteEvent::show_velocity()
{
hide_velocity();
- _text = new InteractiveText(*(_item->property_parent()));
+ _text = new InteractiveText(*(_item->property_parent()), this);
_text->property_x() = (x1() + x2()) /2;
_text->property_y() = (y1() + y2()) /2;
ostringstream velo(ios::ate);
@@ -176,6 +176,8 @@ CanvasNoteEvent::selected(bool selected)
_selected = selected;
}
+#define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257)
+
uint32_t
CanvasNoteEvent::base_color()
{
@@ -183,15 +185,22 @@ CanvasNoteEvent::base_color()
ColorMode mode = _region.color_mode();
+ const uint8_t minimal_opaqueness = 15;
+
switch (mode) {
case TrackColor:
{
Gdk::Color color = _region.midi_stream_view()->get_region_color();
- return RGBA_TO_UINT(color.get_red(), color.get_green(), color.get_blue(), 0xff);
+ return RGBA_TO_UINT(
+ SCALE_USHORT_TO_UINT8_T(color.get_red()),
+ SCALE_USHORT_TO_UINT8_T(color.get_green()),
+ SCALE_USHORT_TO_UINT8_T(color.get_blue()),
+ minimal_opaqueness + _note->velocity());
}
case ChannelColors:
- return CanvasNoteEvent::midi_channel_colors[_note->channel()];
+ return UINT_RGBA_CHANGE_A(CanvasNoteEvent::midi_channel_colors[_note->channel()],
+ minimal_opaqueness + _note->velocity());
default:
return meter_style_fill_color(_note->velocity());
@@ -210,8 +219,6 @@ CanvasNoteEvent::on_event(GdkEvent* ev)
double event_x, event_y, dx, dy;
bool select_mod;
uint8_t d_velocity = 10;
-
- cerr << "CanvasNoteEvent::on_event(GdkEvent* ev)" << endl;
if (_region.get_time_axis_view().editor.current_mouse_mode() != Editing::MouseNote)
return false;