From 7c6f09291d7cc96093d6dc6c5e4f63a4eba087c1 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Thu, 25 Jul 2013 01:16:29 +0100 Subject: [PATCH] -Updated UI, clipselector has popup menu --- src/avtk/avtk_clip_selector.h | 74 +++++++++++++++++++++++------------ src/gmastertrack.hxx | 58 ++++++++++++--------------- src/gtrack.hxx | 12 +++--- 3 files changed, 80 insertions(+), 64 deletions(-) diff --git a/src/avtk/avtk_clip_selector.h b/src/avtk/avtk_clip_selector.h index 7555eb8..1a089cf 100644 --- a/src/avtk/avtk_clip_selector.h +++ b/src/avtk/avtk_clip_selector.h @@ -44,7 +44,7 @@ class ClipState ClipState() { state = CLIP_EMPTY; - name = "Clip"; + name = ""; } ClipState(std::string n) { @@ -189,7 +189,7 @@ class ClipSelector : public Fl_Button cairo_move_to( cr, x+clipHeight-1+ 10, drawY + 15 ); cairo_set_source_rgba( cr, 255 / 255.f, 255 / 255.f , 255 / 255.f , 1 ); cairo_set_font_size( cr, 10 ); - cairo_show_text( cr, label ); + cairo_show_text( cr, clips[i].name.c_str() ); drawY += clipHeight; } @@ -236,32 +236,54 @@ class ClipSelector : public Fl_Button // handle right clicks: popup menu if ( Fl::event_state(FL_BUTTON3) ) { - + Fl_Menu_Item rclick_menu[] = + { + { "Load" }, + { "Duration" }, + { 0 } + }; + Fl_Menu_Item *m = (Fl_Menu_Item*) rclick_menu->popup(Fl::event_x(), Fl::event_y(), 0, 0, 0); + if ( !m ) + { + return 0; + } + else if ( strcmp(m->label(), "Load") == 0 ) + { + fl_choice("Loading...", "OK", NULL, NULL); + clips[clipNum].state = ClipState::CLIP_LOADED; + } + else if ( strcmp(m->label(), "Duration") == 0 ) + { + //clips[clipNum].name = "title"; + clips[clipNum].state = ClipState::CLIP_QUEUED; + } } - - switch( clips[clipNum].state ) + else { - case ClipState::CLIP_EMPTY: - clips[clipNum].state = ClipState::CLIP_RECORDING; - break; - case ClipState::CLIP_LOADED: - clips[clipNum].state = ClipState::CLIP_QUEUED; - break; - case ClipState::CLIP_QUEUED: - clips[clipNum].state = ClipState::CLIP_PLAYING; - break; - case ClipState::CLIP_PLAYING: - clips[clipNum].state = ClipState::CLIP_STOPPING; - break; - case ClipState::CLIP_RECORDING: - clips[clipNum].state = ClipState::CLIP_STOPPING; - break; - case ClipState::CLIP_STOPPING: - clips[clipNum].state = ClipState::CLIP_PLAYING; - break; - default: - printf("Avtk::ClipSelector, warning: unknown clip type\n"); - + switch( clips[clipNum].state ) + { + case ClipState::CLIP_EMPTY: + clips[clipNum].state = ClipState::CLIP_RECORDING; + break; + case ClipState::CLIP_LOADED: + clips[clipNum].state = ClipState::CLIP_QUEUED; + break; + case ClipState::CLIP_QUEUED: + clips[clipNum].state = ClipState::CLIP_PLAYING; + break; + case ClipState::CLIP_PLAYING: + clips[clipNum].state = ClipState::CLIP_STOPPING; + break; + case ClipState::CLIP_RECORDING: + clips[clipNum].state = ClipState::CLIP_STOPPING; + break; + case ClipState::CLIP_STOPPING: + clips[clipNum].state = ClipState::CLIP_PLAYING; + break; + default: + printf("Avtk::ClipSelector, warning: unknown clip type\n"); + + } } } redraw(); diff --git a/src/gmastertrack.hxx b/src/gmastertrack.hxx index aa5d6f9..41704ff 100644 --- a/src/gmastertrack.hxx +++ b/src/gmastertrack.hxx @@ -7,6 +7,7 @@ #include #include #include +#include #include "avtk/avtk_dial.h" #include "avtk/avtk_button.h" @@ -61,22 +62,16 @@ class GMasterTrack : public Fl_Group clipSel(x + 5, y + 26 + 102, 140, 294,"Testing"), + volBox(x+5, y+522+2, 140, 172, ""), - tapTempo(x + 25 + 22, y + 475 + 26, 44, 44,"Tap"), - /* - button2(x + 5, y + 44, 100, 18,"Play"), - button3(x + 5, y + 64, 100, 18,"Stop"), - button4(x + 5, y + 84, 48, 18,"-"), - button5(x +57, y + 84, 48, 18,"+"), - button6(x + 5, y +104, 18, 18,"6"), - */ - metronomeButton(x + 5,y + 424 + 26,140,30,"Metro"), + source(x+5, y+26, 140, 100, "Audio IN"), + fxBox(x+5, y+ 421, 140, 100, ""), + + tapTempo(x + 25 + 52, y + 450 + 26, 66, 30,"Tap"), + metronomeButton(x + 7,y + 450 + 26, 66, 30,"Metro"), + + dial1(x+54, y + 420, 44, 44, "BPM"), - dial1(x+25-22, y +465 + 26, 44, 44, "BPM"), - /* - dial2(x+45, y +155, 24, 24, "B"), - dial3(x+75, y +155, 24, 24, "C") - */ volume(x+108, y +530, 36, 150, "Vol") { ID = privateID++; @@ -85,13 +80,19 @@ class GMasterTrack : public Fl_Group volume.amplitude( 0.75, 0.8 ); - /* - button2.callback( gmastertrack_button_callback, &ID ); - button3.callback( gmastertrack_button_callback, &ID ); - button4.callback( gmastertrack_button_callback, &ID ); - button5.callback( gmastertrack_button_callback, &ID ); - button6.callback( gmastertrack_button_callback, &ID ); - */ + volBox.maximum(1.0f); + volBox.minimum(0.0f); + volBox.color( FL_BLACK ); + volBox.selection_color( FL_BLUE ); + fxBox.maximum(1.0f); + fxBox.minimum(0.0f); + fxBox.color( FL_BLACK ); + fxBox.selection_color( FL_BLUE ); + source.maximum(1.0f); + source.minimum(0.0f); + source.color( FL_BLACK ); + source.selection_color( FL_BLUE ); + metronomeButton.callback( gmastertrack_button_callback, 0 ); dial1.callback( gmastertrack_button_callback, 0 ); @@ -113,21 +114,14 @@ class GMasterTrack : public Fl_Group Avtk::ClipSelector clipSel; + Fl_Progress source; + Fl_Progress volBox; + Fl_Progress fxBox; + Avtk::Button tapTempo; - /* - Avtk::Button button2; - Avtk::Button button3; - Avtk::Button button4; - Avtk::Button button5; - Avtk::Button button6; - */ Avtk::LightButton metronomeButton; Avtk::Dial dial1; - /* - Avtk::Dial dial2; - Avtk::Dial dial3; - */ Avtk::Volume volume; diff --git a/src/gtrack.hxx b/src/gtrack.hxx index 5331ca9..aaa34d6 100644 --- a/src/gtrack.hxx +++ b/src/gtrack.hxx @@ -58,7 +58,7 @@ class GTrack : public Fl_Group clipSel(x + 5, y + 26 + 102, 100, 294,""), - volBox(x+5, y+522+2, 100, 250, ""), + volBox(x+5, y+522+2, 100, 172, ""), /* button1(x + 5, y + 324 + 102, 100, 18,"Rec"), @@ -69,17 +69,17 @@ class GTrack : public Fl_Group button6(x + 5, y + 404 + 102, 100, 18,"Load"), */ - volume(x+66, y +526, 36, 160, "Vol"), + volume(x+66, y +527, 36, 150, "Vol"), - dial1(x+25, y +452 + 102, 24, 24, "REV"), - dial2(x+25, y +452 + 152, 24, 24, "SC"), - dial3(x+25, y +452 + 202, 24, 24, "POST"), + dial1(x+22, y +440 + 100, 30, 30, "Rev"), + dial2(x+22, y +440 + 150, 30, 30, "S-C"), + dial3(x+22, y +440 + 200, 30, 30, "P-S"), progress(x+5, y+ 26, 100, 100, "Source UI"), //unit(x+5, y+200+26, 100, 100, "Unit"), - fx(x+5, y+ 422, 100, 100, "FX") + fx(x+5, y+ 421, 100, 100, "FX") { ID = privateID++; /*