summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2009-02-13 08:29:12 +0000
committerHans Baier <hansfbaier@googlemail.com>2009-02-13 08:29:12 +0000
commitf93ca1349ce3d56ecd9b90c1b6e88971d46d9952 (patch)
tree777a2eb2217b551a640f6f57ed1a4ae506861baa
parent0800b59f6179850b73bd9af0e09659c63e2ad0a5 (diff)
* Added CanvasSysEx class for displaying SysExes
git-svn-id: svn://localhost/ardour2/branches/3.0@4544 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/SConscript1
-rw-r--r--gtk2_ardour/ardour3_ui_default.conf2
-rw-r--r--gtk2_ardour/canvas-sysex.cc64
-rw-r--r--gtk2_ardour/canvas-sysex.h37
-rw-r--r--gtk2_ardour/canvas_vars.h2
5 files changed, 106 insertions, 0 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index 8b60460f41..a97b45dc54 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -130,6 +130,7 @@ canvas-note-event.cc
canvas-note.cc
canvas-flag.cc
canvas-program-change.cc
+canvas-sysex.cc
canvas-simpleline.c
canvas-simplerect.c
canvas-waveview.c
diff --git a/gtk2_ardour/ardour3_ui_default.conf b/gtk2_ardour/ardour3_ui_default.conf
index 79941e588d..3ed429e8a8 100644
--- a/gtk2_ardour/ardour3_ui_default.conf
+++ b/gtk2_ardour/ardour3_ui_default.conf
@@ -66,6 +66,8 @@
<Option name="midi note velocity text" value="000000ff"/>
<Option name="midi program change fill" value="0000ffa0"/>
<Option name="midi program change outline" value="a7a7d4ff"/>
+ <Option name="midi sysex fill" value="f1e139a0"/>
+ <Option name="midi sysex outline" value="a7a7d4ff"/>
<Option name="midi select rect fill" value="8888ff88"/>
<Option name="midi select rect outline" value="5555ffff"/>
<Option name="midi track base" value="b3cca35f"/>
diff --git a/gtk2_ardour/canvas-sysex.cc b/gtk2_ardour/canvas-sysex.cc
new file mode 100644
index 0000000000..f054379743
--- /dev/null
+++ b/gtk2_ardour/canvas-sysex.cc
@@ -0,0 +1,64 @@
+#include <iostream>
+
+#include "ardour_ui.h"
+
+#include "canvas-sysex.h"
+
+using namespace Gnome::Canvas;
+using namespace std;
+
+template<typename Time>
+CanvasSysEx<Time>::CanvasSysEx(
+ MidiRegionView& region,
+ Group& parent,
+ string& text,
+ double height,
+ double x,
+ double y,
+ boost::shared_ptr<Evoral::MIDIEvent<Time> > event
+ )
+ : CanvasFlag(
+ region,
+ parent,
+ height,
+ ARDOUR_UI::config()->canvasvar_MidiSysExOutline.get(),
+ ARDOUR_UI::config()->canvasvar_MidiSysExFill.get(),
+ x,
+ y
+ )
+{
+ set_text(text);
+}
+
+template<typename Time>
+CanvasSysEx<Time>::~CanvasSysEx()
+{
+}
+
+template<typename Time>
+bool
+CanvasSysEx<Time>::on_event(GdkEvent* ev)
+{
+ switch (ev->type) {
+ case GDK_BUTTON_PRESS:
+ if (ev->button.button == 3) {
+ return true;
+ }
+ break;
+
+ case GDK_SCROLL:
+ if (ev->scroll.direction == GDK_SCROLL_UP) {
+ return true;
+ } else if (ev->scroll.direction == GDK_SCROLL_DOWN) {
+ return true;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return false;
+}
+
+template class CanvasSysEx<nframes_t>;
diff --git a/gtk2_ardour/canvas-sysex.h b/gtk2_ardour/canvas-sysex.h
new file mode 100644
index 0000000000..8461a04c3c
--- /dev/null
+++ b/gtk2_ardour/canvas-sysex.h
@@ -0,0 +1,37 @@
+#ifndef CANVAS_SYSEX_H_
+#define CANVAS_SYSEX_H_
+
+#include "canvas-flag.h"
+#include <evoral/MIDIEvent.hpp>
+
+class MidiRegionView;
+
+namespace Gnome {
+namespace Canvas {
+
+template<typename Time>
+class CanvasSysEx : public CanvasFlag
+{
+public:
+ CanvasSysEx(
+ MidiRegionView& region,
+ Group& parent,
+ string& text,
+ double height,
+ double x,
+ double y,
+ boost::shared_ptr<Evoral::MIDIEvent<Time> > event
+ );
+
+ virtual ~CanvasSysEx();
+
+ virtual bool on_event(GdkEvent* ev);
+
+
+private:
+};
+
+} // namespace Canvas
+} // namespace Gnome
+
+#endif /*CANVAS_SYSEX_H_*/
diff --git a/gtk2_ardour/canvas_vars.h b/gtk2_ardour/canvas_vars.h
index 5dfd9392d1..2e91707834 100644
--- a/gtk2_ardour/canvas_vars.h
+++ b/gtk2_ardour/canvas_vars.h
@@ -64,6 +64,8 @@ CANVAS_VARIABLE(canvasvar_MidiNoteSelected, "midi note selected")
CANVAS_VARIABLE(canvasvar_MidiNoteVelocityText, "midi note velocity text")
CANVAS_VARIABLE(canvasvar_MidiProgramChangeFill, "midi program change fill")
CANVAS_VARIABLE(canvasvar_MidiProgramChangeOutline, "midi program change outline")
+CANVAS_VARIABLE(canvasvar_MidiSysExFill, "midi sysex fill")
+CANVAS_VARIABLE(canvasvar_MidiSysExOutline, "midi sysex outline")
CANVAS_VARIABLE(canvasvar_MidiSelectRectFill, "midi select rect fill")
CANVAS_VARIABLE(canvasvar_MidiSelectRectOutline, "midi select rect outline")
CANVAS_VARIABLE(canvasvar_MidiTrackBase, "midi track base")