diff options
Diffstat (limited to 'src/sequencer.c')
-rw-r--r-- | src/sequencer.c | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/src/sequencer.c b/src/sequencer.c index b689bf5..a560bcb 100644 --- a/src/sequencer.c +++ b/src/sequencer.c | |||
@@ -9,14 +9,14 @@ | |||
9 | 9 | ||
10 | void set_time(int bpm); | 10 | void set_time(int bpm); |
11 | 11 | ||
12 | bool redraw_pattern_buttons = false; | 12 | bool redraw_pattern_buttons = true; |
13 | bool redraw_play_pause = false; | 13 | bool redraw_play_pause = true; |
14 | bool redraw_trigs = false; | 14 | bool redraw_trigs = true; |
15 | bool redraw_channels = false; | 15 | bool redraw_channels = true; |
16 | bool redraw_bank_buttons = false; | 16 | bool redraw_bank_buttons = true; |
17 | bool redraw_params = false; | 17 | bool redraw_params = true; |
18 | bool redraw_bpm = false; | 18 | bool redraw_bpm = true; |
19 | bool redraw_piano_note = false; | 19 | bool redraw_piano_note = true; |
20 | 20 | ||
21 | void | 21 | void |
22 | irq_timer(void) { | 22 | irq_timer(void) { |
@@ -198,39 +198,30 @@ handle_channel_selection(void) { | |||
198 | patterns[pattern_selection_loc].ch4.active ^= 1; | 198 | patterns[pattern_selection_loc].ch4.active ^= 1; |
199 | } break; | 199 | } break; |
200 | } | 200 | } |
201 | draw_channels(); | 201 | redraw_channels = true; |
202 | } | 202 | } |
203 | if (key_tap(KEY_RIGHT)) { | 203 | if (key_tap(KEY_RIGHT)) { |
204 | trig_selection_loc = 0; | 204 | trig_selection_loc = 0; |
205 | param_selection_loc = 0; | 205 | param_selection_loc = 0; |
206 | input_handler = handle_trigger_selection; | 206 | input_handler = handle_trigger_selection; |
207 | draw_channel_cursor(channel_selection_loc, COL_GREY); | 207 | redraw_piano_note = true; |
208 | draw_trig_cursor(trig_selection_loc, COL_CURSOR); | 208 | redraw_params = true; |
209 | TriggerNote *trig = get_current_trig(); | ||
210 | draw_note(trig->note, COL_NOTE_PRESSED); | ||
211 | draw_parameters(); | ||
212 | } else if (key_tap(KEY_LEFT)) { | 209 | } else if (key_tap(KEY_LEFT)) { |
213 | input_handler = handle_pattern_selection; | 210 | input_handler = handle_pattern_selection; |
214 | draw_channel_cursor(channel_selection_loc, COL_GREY); | ||
215 | draw_pattern_cursor(pattern_selection_loc, COL_CURSOR); | ||
216 | } else if (key_tap(KEY_UP)) { | 211 | } else if (key_tap(KEY_UP)) { |
217 | draw_channel_cursor(channel_selection_loc, COL_BG); | ||
218 | if (channel_selection_loc == 0) { | 212 | if (channel_selection_loc == 0) { |
219 | channel_selection_loc = SEQ_N_CHANNELS - 1; | 213 | channel_selection_loc = SEQ_N_CHANNELS - 1; |
220 | } else { | 214 | } else { |
221 | channel_selection_loc = MAX(channel_selection_loc - 1, 0); | 215 | channel_selection_loc = MAX(channel_selection_loc - 1, 0); |
222 | } | 216 | } |
223 | draw_channel_cursor(channel_selection_loc, COL_CURSOR); | 217 | redraw_trigs = true; |
224 | draw_triggers(); | ||
225 | } else if (key_tap(KEY_DOWN)) { | 218 | } else if (key_tap(KEY_DOWN)) { |
226 | draw_channel_cursor(channel_selection_loc, COL_BG); | ||
227 | if (channel_selection_loc == SEQ_N_CHANNELS - 1) { | 219 | if (channel_selection_loc == SEQ_N_CHANNELS - 1) { |
228 | channel_selection_loc = 0; | 220 | channel_selection_loc = 0; |
229 | } else { | 221 | } else { |
230 | channel_selection_loc = MIN(channel_selection_loc + 1, SEQ_N_CHANNELS); | 222 | channel_selection_loc = MIN(channel_selection_loc + 1, SEQ_N_CHANNELS); |
231 | } | 223 | } |
232 | draw_channel_cursor(channel_selection_loc, COL_CURSOR); | 224 | redraw_trigs = true; |
233 | draw_triggers(); | ||
234 | } | 225 | } |
235 | } | 226 | } |
236 | 227 | ||
@@ -384,7 +375,6 @@ handle_pattern_selection(void) { | |||
384 | } | 375 | } |
385 | } else if (key_tap(KEY_DOWN)) { | 376 | } else if (key_tap(KEY_DOWN)) { |
386 | if (pattern_selection_loc < 7) { | 377 | if (pattern_selection_loc < 7) { |
387 | draw_pattern_cursor(pattern_selection_loc, COL_BG); | ||
388 | pattern_selection_loc = pattern_selection_loc + 1; | 378 | pattern_selection_loc = pattern_selection_loc + 1; |
389 | redraw_channels = true; | 379 | redraw_channels = true; |
390 | redraw_trigs = true; | 380 | redraw_trigs = true; |