Subversion Repositories svn.mios32

Rev

Rev 2618 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
134 tk 1
// $Id: seq_ui.h 2628 2018-12-30 21:14:09Z tk $
2
/*
3
 * Header file for user interface routines
4
 *
5
 * ==========================================================================
6
 *
7
 *  Copyright (C) 2008 Thorsten Klose (tk@midibox.org)
8
 *  Licensed for personal non-commercial use only.
9
 *  All other rights reserved.
10
 *
11
 * ==========================================================================
12
 */
13
 
14
#ifndef _SEQ_UI_H
15
#define _SEQ_UI_H
16
 
2039 tk 17
#include "seq_ui_pages.h"
134 tk 18
 
19
/////////////////////////////////////////////////////////////////////////////
20
// Global definitions
21
/////////////////////////////////////////////////////////////////////////////
22
 
168 tk 23
// cursor flash with following waveform:
1319 tk 24
// 0..449 mS: cursor on
25
// 450..499 mS: cursor off
168 tk 26
#define SEQ_UI_CURSOR_FLASH_CTR_MAX     500  // mS
1319 tk 27
#define SEQ_UI_CURSOR_FLASH_CTR_LED_OFF 450  // mS
2166 tk 28
#define SEQ_UI_CURSOR_FLASH_CTR_LED_OFF_EDIT_PAGE 300  // mS in edit page
134 tk 29
 
1203 tk 30
#define SEQ_UI_BOOKMARKS_NUM 16
168 tk 31
 
1146 tk 32
#define UI_QUICKSEL_NUM_PRESETS 8
33
 
1203 tk 34
 
134 tk 35
/////////////////////////////////////////////////////////////////////////////
36
// Global Types
37
/////////////////////////////////////////////////////////////////////////////
38
 
167 tk 39
typedef union {
40
  struct {
848 tk 41
    u32 ALL;
167 tk 42
  };
43
  struct {
1203 tk 44
    u8 PAGE_CHANGE_BUTTON_FLAGS:7;
678 tk 45
  };
46
  struct {
47
    // these button functions will change a page (special "radio button" handling required)
1203 tk 48
    u32 MENU_PRESSED:1;
49
    u32 STEP_VIEW:1;
50
    u32 PAR_LAYER_SEL:1;
51
    u32 TRG_LAYER_SEL:1;
2532 tk 52
    u32 INS_SEL:1;
1203 tk 53
    u32 TRACK_SEL:1;
54
    u32 TEMPO_PRESET:1;
55
    u32 BOOKMARK:1;
678 tk 56
 
57
    // remaining functions
1203 tk 58
    u32 MENU_FIRST_PAGE_SELECTED:1;
59
    u32 CHANGE_ALL_STEPS:1;
60
    u32 CHANGE_ALL_STEPS_SAME_VALUE:1;
61
    u32 SELECT_PRESSED:1;
62
    u32 EDIT_PRESSED:1;
63
    u32 MUTE_PRESSED:1;
64
    u32 PATTERN_PRESSED:1;
65
    u32 SONG_PRESSED:1;
2532 tk 66
    u32 PHRASE_PRESSED:1;
1203 tk 67
    u32 FAST_ENCODERS:1;
68
    u32 FAST2_ENCODERS:1;
69
    u32 SOLO:1;
70
    u32 SCRUB:1;
71
    u32 REW:1;
72
    u32 FWD:1;
73
    u32 COPY:1;
74
    u32 PASTE:1;
75
    u32 CLEAR:1;
76
    u32 UNDO:1;
2308 tk 77
    u32 MOVE:1;
78
    u32 SCROLL:1;
1203 tk 79
    u32 TAP_TEMPO:1;
80
    u32 UP:1;
81
    u32 DOWN:1;
2502 tk 82
    u32 ENC_BTN_FWD_PRESSED:1;
2628 tk 83
    u32 TAKE_OVER_SEL_VIEW:1;
167 tk 84
  };
85
} seq_ui_button_state_t;
134 tk 86
 
167 tk 87
 
168 tk 88
typedef enum {
89
  SEQ_UI_BUTTON_GP1,
90
  SEQ_UI_BUTTON_GP2,
91
  SEQ_UI_BUTTON_GP3,
92
  SEQ_UI_BUTTON_GP4,
93
  SEQ_UI_BUTTON_GP5,
94
  SEQ_UI_BUTTON_GP6,
95
  SEQ_UI_BUTTON_GP7,
96
  SEQ_UI_BUTTON_GP8,
97
  SEQ_UI_BUTTON_GP9,
98
  SEQ_UI_BUTTON_GP10,
99
  SEQ_UI_BUTTON_GP11,
100
  SEQ_UI_BUTTON_GP12,
101
  SEQ_UI_BUTTON_GP13,
102
  SEQ_UI_BUTTON_GP14,
103
  SEQ_UI_BUTTON_GP15,
104
  SEQ_UI_BUTTON_GP16,
105
  SEQ_UI_BUTTON_Exit,
106
  SEQ_UI_BUTTON_Select,
107
  SEQ_UI_BUTTON_Left,
108
  SEQ_UI_BUTTON_Right,
109
  SEQ_UI_BUTTON_Up,
1350 tk 110
  SEQ_UI_BUTTON_Down,
111
  SEQ_UI_BUTTON_Edit  // only used in seq_ui_edit.c
168 tk 112
} seq_ui_button_t;
167 tk 113
 
168 tk 114
 
115
typedef enum {
116
  SEQ_UI_ENCODER_GP1,
117
  SEQ_UI_ENCODER_GP2,
118
  SEQ_UI_ENCODER_GP3,
119
  SEQ_UI_ENCODER_GP4,
120
  SEQ_UI_ENCODER_GP5,
121
  SEQ_UI_ENCODER_GP6,
122
  SEQ_UI_ENCODER_GP7,
123
  SEQ_UI_ENCODER_GP8,
124
  SEQ_UI_ENCODER_GP9,
125
  SEQ_UI_ENCODER_GP10,
126
  SEQ_UI_ENCODER_GP11,
127
  SEQ_UI_ENCODER_GP12,
128
  SEQ_UI_ENCODER_GP13,
129
  SEQ_UI_ENCODER_GP14,
130
  SEQ_UI_ENCODER_GP15,
131
  SEQ_UI_ENCODER_GP16,
132
  SEQ_UI_ENCODER_Datawheel
133
} seq_ui_encoder_t;
134
 
135
 
240 tk 136
typedef enum {
137
  SEQ_UI_EDIT_MODE_NORMAL,
138
  SEQ_UI_EDIT_MODE_COPY,
139
  SEQ_UI_EDIT_MODE_PASTE,
140
  SEQ_UI_EDIT_MODE_CLEAR,
141
  SEQ_UI_EDIT_MODE_MOVE,
142
  SEQ_UI_EDIT_MODE_SCROLL,
143
  SEQ_UI_EDIT_MODE_RANDOM,
600 tk 144
  SEQ_UI_EDIT_MODE_RECORD,
145
  SEQ_UI_EDIT_MODE_MANUAL
240 tk 146
} seq_ui_edit_mode_t;
168 tk 147
 
596 tk 148
typedef enum {
149
  SEQ_UI_MSG_USER,
741 tk 150
  SEQ_UI_MSG_USER_R,
740 tk 151
  SEQ_UI_MSG_SDCARD,
756 tk 152
  SEQ_UI_MSG_DELAYED_ACTION,
153
  SEQ_UI_MSG_DELAYED_ACTION_R
596 tk 154
} seq_ui_msg_type_t;
155
 
156
 
625 tk 157
typedef enum {
626 tk 158
  SEQ_UI_REMOTE_MODE_AUTO=0,
625 tk 159
  SEQ_UI_REMOTE_MODE_SERVER,
160
  SEQ_UI_REMOTE_MODE_CLIENT
161
} seq_ui_remote_mode_t;
162
 
1203 tk 163
// numbers should not be changed, as it's also used by the bookmark function
164
typedef enum {
165
  SEQ_UI_EDIT_VIEW_STEPS = 0,
166
  SEQ_UI_EDIT_VIEW_TRG = 1,
167
  SEQ_UI_EDIT_VIEW_LAYERS = 2,
168
  SEQ_UI_EDIT_VIEW_303 = 3,
169
  SEQ_UI_EDIT_VIEW_STEPSEL = 8,
170
} seq_ui_edit_view_t;
625 tk 171
 
2101 tk 172
typedef enum {
173
  SEQ_UI_EDIT_DATAWHEEL_MODE_SCROLL_CURSOR = 0,
174
  SEQ_UI_EDIT_DATAWHEEL_MODE_SCROLL_VIEW,
175
  SEQ_UI_EDIT_DATAWHEEL_MODE_CHANGE_VALUE,
176
  SEQ_UI_EDIT_DATAWHEEL_MODE_CHANGE_PARLAYER,
177
  SEQ_UI_EDIT_DATAWHEEL_MODE_CHANGE_TRGLAYER
178
} seq_ui_edit_datawheel_mode_t;
179
#define SEQ_UI_EDIT_DATAWHEEL_MODE_NUM 5
180
 
2532 tk 181
typedef enum {
182
  SEQ_UI_SEL_VIEW_NONE = 0,
183
  SEQ_UI_SEL_VIEW_BOOKMARKS,
184
  SEQ_UI_SEL_VIEW_STEPS,
185
  SEQ_UI_SEL_VIEW_TRACKS,
186
  SEQ_UI_SEL_VIEW_PAR,
187
  SEQ_UI_SEL_VIEW_TRG,
188
  SEQ_UI_SEL_VIEW_INS,
189
  SEQ_UI_SEL_VIEW_MUTE,
190
  SEQ_UI_SEL_VIEW_PHRASE
191
} seq_ui_sel_view_t;
192
 
193
 
1203 tk 194
typedef union {
2618 tk 195
  u16 ALL;
1203 tk 196
 
197
  struct {
2618 tk 198
    u16 RESTORE_TRACK_SELECTIONS:1;
199
    u16 MODIFY_PATTERN_BANKS:1;
200
    u16 PRINT_AND_MODIFY_WITHOUT_GATES:1;
201
    u16 PRINT_TRANSPOSED_NOTES:1;
202
    u16 SELECT_UNMUTED_TRACK:1;
203
    u16 SWAP_GP_LED_COLOURS:1;
204
    u16 SWAP_SELECT_LED_COLOURS:1;
205
    u16 GP_LED_DONT_XOR_POS:1;
206
    u16 INVERT_MUTE_LEDS:1;
2628 tk 207
    u16 ALL_FOR_STEP_VIEW_ONLY:1;
2250 tk 208
  };
209
} seq_ui_options_t;
210
 
211
typedef union {
212
  u8 ALL;
213
 
214
  struct {
1203 tk 215
    u8 LOCKED:1;
216
    u8 SOLO:1;
217
    u8 CHANGE_ALL_STEPS:1;
218
    u8 FAST:1;
219
    u8 METRONOME:1;
220
    u8 LOOP:1;
221
    u8 FOLLOW:1;
222
  };
223
} seq_ui_bookmark_flags_t;
224
 
225
typedef union {
226
  u32 ALL;
227
 
228
  struct {
229
    u32 SOLO:1;
230
    u32 CHANGE_ALL_STEPS:1;
231
    u32 FAST:1;
232
    u32 METRONOME:1;
233
    u32 LOOP:1;
234
    u32 FOLLOW:1;
235
 
236
    u32 PAGE:1;
237
    u32 GROUP:1;
238
    u32 PAR_LAYER:1;
239
    u32 TRG_LAYER:1;
240
    u32 INSTRUMENT:1;
241
    u32 STEP_VIEW:1;
242
    u32 STEP:1;
243
    u32 EDIT_VIEW:1;
244
    u32 MUTES:1;
245
    u32 TRACKS:1;
246
  };
247
} seq_ui_bookmark_enable_t;
248
 
249
typedef struct seq_ui_bookmark_t {
250
  seq_ui_bookmark_enable_t enable;
251
  seq_ui_bookmark_flags_t flags;
252
  char name[6]; // 5 chars used
253
  u8  page;
254
  u8  group;
255
  u8  par_layer;
256
  u8  trg_layer;
257
  u8  instrument;
258
  u8  step_view;
259
  u8  step;
260
  u8  edit_view;
261
  u16 tracks;
262
  u16 mutes;
263
 
264
  // note: pattern and song number shouldn't be stored via bookmark
265
  // since the "song phrases" feature is intended for such a purpose.
266
  // storing mutes is already an exception, because they can be controlled via phrases as well.
267
} seq_ui_bookmark_t;
268
 
2542 tk 269
typedef struct {
270
  u8 mode;
271
  mios32_midi_port_t port;
272
  u8 chn;
273
  u8 cc;
274
} seq_ui_track_cc_t;
1203 tk 275
 
2542 tk 276
 
134 tk 277
/////////////////////////////////////////////////////////////////////////////
278
// Prototypes
279
/////////////////////////////////////////////////////////////////////////////
280
 
281
extern s32 SEQ_UI_Init(u32 mode);
282
 
178 tk 283
extern s32 SEQ_UI_InitEncSpeed(u32 auto_config);
284
 
134 tk 285
extern s32 SEQ_UI_Button_Handler(u32 pin, u32 pin_value);
524 tk 286
extern s32 SEQ_UI_BLM_Button_Handler(u32 row, u32 pin, u32 pin_value);
134 tk 287
extern s32 SEQ_UI_Encoder_Handler(u32 encoder, s32 incrementer);
626 tk 288
extern s32 SEQ_UI_REMOTE_MIDI_Receive(mios32_midi_port_t port, mios32_midi_package_t midi_package);
742 tk 289
extern s32 SEQ_UI_REMOTE_MIDI_Keyboard(u8 key, u8 depressed);
741 tk 290
 
1068 tk 291
extern s32 SEQ_UI_Button_Play(s32 depressed);
292
extern s32 SEQ_UI_Button_Stop(s32 depressed);
2448 tk 293
extern s32 SEQ_UI_Button_Record(s32 depressed);
1068 tk 294
 
134 tk 295
extern s32 SEQ_UI_LED_Handler(void);
296
extern s32 SEQ_UI_LED_Handler_Periodic();
184 tk 297
extern s32 SEQ_UI_LCD_Handler(void);
168 tk 298
extern s32 SEQ_UI_MENU_Handler_Periodic();
134 tk 299
 
167 tk 300
extern s32 SEQ_UI_PageSet(seq_ui_page_t page);
301
 
302
extern s32 SEQ_UI_InstallInitCallback(void *callback);
168 tk 303
extern s32 SEQ_UI_InstallButtonCallback(void *callback);
304
extern s32 SEQ_UI_InstallEncoderCallback(void *callback);
305
extern s32 SEQ_UI_InstallLEDCallback(void *callback);
306
extern s32 SEQ_UI_InstallLCDCallback(void *callback);
690 tk 307
extern s32 SEQ_UI_InstallExitCallback(void *callback);
2041 tk 308
 
752 tk 309
extern s32 SEQ_UI_InstallDelayedActionCallback(void *callback, u16 delay_mS, u32 parameter);
740 tk 310
extern s32 SEQ_UI_UnInstallDelayedActionCallback(void *callback);
167 tk 311
 
2041 tk 312
extern s32 SEQ_UI_InstallMIDIINCallback(void *callback);
313
extern s32 SEQ_UI_NotifyMIDIINCallback(mios32_midi_port_t port, mios32_midi_package_t p);
314
 
353 tk 315
extern s32 SEQ_UI_LCD_Update(void);
316
 
328 tk 317
extern s32 SEQ_UI_CheckSelections(void);
318
 
168 tk 319
extern u8  SEQ_UI_VisibleTrackGet(void);
178 tk 320
extern s32 SEQ_UI_IsSelectedTrack(u8 track);
321
 
240 tk 322
extern s32 SEQ_UI_SelectedStepSet(u8 step);
323
 
168 tk 324
extern s32 SEQ_UI_GxTyInc(s32 incrementer);
240 tk 325
extern s32 SEQ_UI_Var16_Inc(u16 *value, u16 min, u16 max, s32 incrementer);
326
extern s32 SEQ_UI_Var8_Inc(u8 *value, u16 min, u16 max, s32 incrementer);
1794 tk 327
extern s32 SEQ_UI_CC_SendParameter(u8 track, u8 cc);
248 tk 328
extern s32 SEQ_UI_CC_Inc(u8 cc, u8 min, u8 max, s32 incrementer);
329
extern s32 SEQ_UI_CC_Set(u8 cc, u8 value);
330
extern s32 SEQ_UI_CC_SetFlags(u8 cc, u8 flag_mask, u8 value);
134 tk 331
 
744 tk 332
extern s32 SEQ_UI_SelectListItem(s32 incrementer, u8 num_items, u8 max_items_on_screen, u8 *selected_item_on_screen, u8 *view_offset);
134 tk 333
 
752 tk 334
extern s32 SEQ_UI_KeyPad_Init(void);
335
extern s32 SEQ_UI_KeyPad_Handler(seq_ui_encoder_t encoder, s32 incrementer, char *edit_str, u8 len);
336
extern s32 SEQ_UI_KeyPad_LCD_Msg(void);
744 tk 337
 
752 tk 338
 
134 tk 339
/////////////////////////////////////////////////////////////////////////////
240 tk 340
// Prototypes for functions implemented in seq_ui_*.c
341
/////////////////////////////////////////////////////////////////////////////
342
 
2039 tk 343
extern s32 SEQ_UI_TODO_Init(u32 mode);
344
extern s32 SEQ_UI_MENU_Init(u32 mode);
345
extern s32 SEQ_UI_PMUTE_Init(u32 mode);
346
extern s32 SEQ_UI_FX_Init(u32 mode);
347
extern s32 SEQ_UI_STEPSEL_Init(u32 mode);
348
extern s32 SEQ_UI_TRGSEL_Init(u32 mode);
349
extern s32 SEQ_UI_PARSEL_Init(u32 mode);
2532 tk 350
extern s32 SEQ_UI_INSSEL_Init(u32 mode);
2039 tk 351
extern s32 SEQ_UI_TRACKSEL_Init(u32 mode);
352
extern s32 SEQ_UI_BPM_PRESETS_Init(u32 mode);
353
extern s32 SEQ_UI_EDIT_Init(u32 mode);
354
extern s32 SEQ_UI_MUTE_Init(u32 mode);
355
extern s32 SEQ_UI_PATTERN_Init(u32 mode);
356
extern s32 SEQ_UI_SONG_Init(u32 mode);
357
extern s32 SEQ_UI_MIXER_Init(u32 mode);
358
extern s32 SEQ_UI_TRKEVNT_Init(u32 mode);
2092 tk 359
extern s32 SEQ_UI_TRKINST_Init(u32 mode);
2039 tk 360
extern s32 SEQ_UI_TRKMODE_Init(u32 mode);
361
extern s32 SEQ_UI_TRKDIR_Init(u32 mode);
362
extern s32 SEQ_UI_TRKDIV_Init(u32 mode);
363
extern s32 SEQ_UI_TRKLEN_Init(u32 mode);
364
extern s32 SEQ_UI_TRKTRAN_Init(u32 mode);
365
extern s32 SEQ_UI_TRKGRV_Init(u32 mode);
366
extern s32 SEQ_UI_TRGASG_Init(u32 mode);
367
extern s32 SEQ_UI_TRKMORPH_Init(u32 mode);
368
extern s32 SEQ_UI_TRKRND_Init(u32 mode);
2164 tk 369
extern s32 SEQ_UI_TRKJAM_Init(u32 mode);
2039 tk 370
extern s32 SEQ_UI_MANUAL_Init(u32 mode);
371
extern s32 SEQ_UI_GROOVE_Init(u32 mode);
372
extern s32 SEQ_UI_FX_ECHO_Init(u32 mode);
373
extern s32 SEQ_UI_FX_HUMANIZE_Init(u32 mode);
2118 tk 374
extern s32 SEQ_UI_FX_ROBOTIZE_Init(u32 mode);
2039 tk 375
extern s32 SEQ_UI_FX_LIMIT_Init(u32 mode);
376
extern s32 SEQ_UI_FX_DUPL_Init(u32 mode);
377
extern s32 SEQ_UI_FX_LFO_Init(u32 mode);
378
extern s32 SEQ_UI_FX_LOOP_Init(u32 mode);
379
extern s32 SEQ_UI_FX_SCALE_Init(u32 mode);
380
extern s32 SEQ_UI_UTIL_Init(u32 mode);
381
extern s32 SEQ_UI_BPM_Init(u32 mode);
382
extern s32 SEQ_UI_OPT_Init(u32 mode);
383
extern s32 SEQ_UI_SAVE_Init(u32 mode);
384
extern s32 SEQ_UI_MIDI_Init(u32 mode);
385
extern s32 SEQ_UI_MIDPLY_Init(u32 mode);
386
extern s32 SEQ_UI_MIDIMON_Init(u32 mode);
387
extern s32 SEQ_UI_SYSEX_Init(u32 mode);
388
extern s32 SEQ_UI_CV_Init(u32 mode);
389
extern s32 SEQ_UI_DISK_Init(u32 mode);
390
extern s32 SEQ_UI_ETH_Init(u32 mode);
391
extern s32 SEQ_UI_BOOKMARKS_Init(u32 mode);
392
extern s32 SEQ_UI_INFO_Init(u32 mode);
393
extern s32 SEQ_UI_TRKLIVE_Init(u32 mode);
2145 tk 394
extern s32 SEQ_UI_TRKREPEAT_Init(u32 mode);
2039 tk 395
extern s32 SEQ_UI_PATTERN_RMX_Init(u32 mode);
396
extern s32 SEQ_UI_TRKEUCLID_Init(u32 mode);
397
 
398
 
758 tk 399
extern s32 SEQ_UI_EDIT_LED_Handler(u16 *gp_leds);
400
extern s32 SEQ_UI_EDIT_Button_Handler(seq_ui_button_t button, s32 depressed);
240 tk 401
extern s32 SEQ_UI_EDIT_LCD_Handler(u8 high_prio, seq_ui_edit_mode_t edit_mode);
402
 
2524 tk 403
extern s32 SEQ_UI_PATTERN_MultiCopy(u8 only_selected);
404
extern s32 SEQ_UI_PATTERN_MultiPaste(u8 only_selected);
2525 tk 405
extern s32 SEQ_UI_PATTERN_MultiClear(u8 only_selected);
2524 tk 406
 
240 tk 407
extern s32 SEQ_UI_UTIL_CopyButton(s32 depressed);
408
extern s32 SEQ_UI_UTIL_PasteButton(s32 depressed);
409
extern s32 SEQ_UI_UTIL_ClearButton(s32 depressed);
410
extern s32 SEQ_UI_UTIL_UndoButton(s32 depressed);
2308 tk 411
extern s32 SEQ_UI_UTIL_MoveButton(s32 depressed);
412
extern s32 SEQ_UI_UTIL_ScrollButton(s32 depressed);
240 tk 413
 
2197 tk 414
extern s32 SEQ_UI_UTIL_PasteDuplicateSteps(u8 track);
2448 tk 415
extern s32 SEQ_UI_UTIL_ClearStep(u8 track, u8 step, u8 instrument);
2197 tk 416
 
2544 tk 417
extern s32 SEQ_UI_UTIL_CopyParLayer(void);
418
extern s32 SEQ_UI_UTIL_PasteParLayer(void);
419
extern s32 SEQ_UI_UTIL_ClearParLayer(void);
420
 
421
extern s32 SEQ_UI_UTIL_CopyTrgLayer(void);
422
extern s32 SEQ_UI_UTIL_PasteTrgLayer(void);
423
extern s32 SEQ_UI_UTIL_ClearTrgLayer(void);
424
 
425
extern s32 SEQ_UI_UTIL_CopyInsLayer(void);
426
extern s32 SEQ_UI_UTIL_PasteInsLayer(void);
427
extern s32 SEQ_UI_UTIL_ClearInsLayer(void);
428
 
2148 tk 429
extern s32 SEQ_UI_UTIL_CopyLivePattern(void);
430
extern s32 SEQ_UI_UTIL_PasteLivePattern(void);
431
extern s32 SEQ_UI_UTIL_ClearLivePattern(void);
432
 
280 tk 433
extern s32 SEQ_UI_MIXER_Copy(void);
434
extern s32 SEQ_UI_MIXER_Paste(void);
435
extern s32 SEQ_UI_MIXER_Clear(void);
1014 tk 436
extern s32 SEQ_UI_MIXER_Undo(void);
280 tk 437
extern s32 SEQ_UI_MIXER_UndoUpdate(void);
438
 
729 tk 439
extern s32 SEQ_UI_SONG_Copy(void);
440
extern s32 SEQ_UI_SONG_Paste(void);
441
extern s32 SEQ_UI_SONG_Clear(void);
442
extern s32 SEQ_UI_SONG_Insert(void);
443
extern s32 SEQ_UI_SONG_Delete(void);
752 tk 444
extern s32 SEQ_UI_SONG_EditPosSet(u8 new_edit_pos);
729 tk 445
 
1090 tk 446
extern s32 SEQ_UI_BPM_TapTempo(void);
447
 
240 tk 448
extern s32 SEQ_UI_UTIL_UndoUpdate(u8 track);
449
 
450
extern u8 SEQ_UI_UTIL_CopyPasteBeginGet(void);
451
extern u8 SEQ_UI_UTIL_CopyPasteEndGet(void);
452
 
2164 tk 453
extern s32 SEQ_UI_TRKJAM_PatternRecordSelected(void);
2324 tk 454
extern s32 SEQ_UI_TRKJAM_RecordModeSet(u8 step_record);
2150 tk 455
 
596 tk 456
extern s32 SEQ_UI_Msg(seq_ui_msg_type_t msg_type, u16 delay, char *line1, char *line2);
457
extern s32 SEQ_UI_MsgStop(void);
299 tk 458
extern s32 SEQ_UI_SDCardErrMsg(u16 delay, s32 status);
2041 tk 459
extern s32 SEQ_UI_MIDILearnMessage(seq_ui_msg_type_t msg_type, u8 on_off);
240 tk 460
 
2217 tk 461
extern void SEQ_UI_Msg_Track(char *line2);
462
extern void SEQ_UI_Msg_Layer(char *line2);
463
extern void SEQ_UI_Msg_MixerMap(char *line2);
464
extern void SEQ_UI_Msg_SongPos(char *line2);
465
extern void SEQ_UI_Msg_LivePattern(char *line2);
466
 
1203 tk 467
extern s32 SEQ_UI_Bookmark_Store(u8 bookmark);
468
extern s32 SEQ_UI_Bookmark_Restore(u8 bookmark);
299 tk 469
 
1205 tk 470
extern s32 SEQ_UI_BOOKMARKS_Button_Handler(seq_ui_button_t button, s32 depressed);
2532 tk 471
extern s32 SEQ_UI_STEPSEL_Button_Handler(seq_ui_button_t button, s32 depressed);
472
extern s32 SEQ_UI_PARSEL_Button_Handler(seq_ui_button_t button, s32 depressed);
473
extern s32 SEQ_UI_TRGSEL_Button_Handler(seq_ui_button_t button, s32 depressed);
474
extern s32 SEQ_UI_INSSEL_Button_Handler(seq_ui_button_t button, s32 depressed);
2533 tk 475
extern s32 SEQ_UI_SONG_Button_Handler(seq_ui_button_t button, s32 depressed);
1203 tk 476
 
1205 tk 477
 
240 tk 478
/////////////////////////////////////////////////////////////////////////////
134 tk 479
// Export global variables
480
/////////////////////////////////////////////////////////////////////////////
481
 
159 tk 482
extern u8 seq_ui_display_update_req;
483
extern u8 seq_ui_display_init_req;
134 tk 484
 
167 tk 485
extern seq_ui_button_state_t seq_ui_button_state;
486
 
134 tk 487
extern u8 ui_selected_group;
484 tk 488
extern u16 ui_selected_tracks;
134 tk 489
extern u8 ui_selected_par_layer;
490
extern u8 ui_selected_trg_layer;
328 tk 491
extern u8 ui_selected_instrument;
134 tk 492
extern u8 ui_selected_step_view;
493
extern u8 ui_selected_step;
168 tk 494
extern u8 ui_selected_item;
2532 tk 495
extern u8 ui_selected_bookmark;
496
extern u8 ui_selected_phrase;
1319 tk 497
extern u16 ui_selected_gp_buttons;
134 tk 498
 
240 tk 499
extern u16 ui_hold_msg_ctr;
2324 tk 500
extern u8  ui_hold_msg_ctr_drum_edit;
240 tk 501
 
206 tk 502
extern seq_ui_page_t ui_page;
272 tk 503
extern seq_ui_page_t ui_selected_page;
303 tk 504
extern seq_ui_page_t ui_stepview_prev_page;
326 tk 505
extern seq_ui_page_t ui_trglayer_prev_page;
506
extern seq_ui_page_t ui_parlayer_prev_page;
2532 tk 507
extern seq_ui_page_t ui_inssel_prev_page;
508
extern seq_ui_page_t ui_tracksel_prev_page;
509
extern seq_ui_page_t ui_bookmarks_prev_page;
510
extern seq_ui_page_t ui_mute_prev_page;
206 tk 511
 
173 tk 512
extern volatile u8 ui_cursor_flash;
740 tk 513
extern volatile u8 ui_cursor_flash_overrun_ctr;
1020 tk 514
extern u16 ui_cursor_flash_ctr;
168 tk 515
 
316 tk 516
extern u8 ui_edit_name_cursor;
517
extern u8 ui_edit_preset_num_category;
518
extern u8 ui_edit_preset_num_label;
729 tk 519
extern u8 ui_edit_preset_num_drum;
316 tk 520
 
193 tk 521
extern u8 ui_seq_pause;
522
 
1421 tk 523
extern u8 ui_song_edit_pos;
524
 
2102 tk 525
extern u8 ui_store_file_required;
526
 
1146 tk 527
extern u8 ui_quicksel_length[UI_QUICKSEL_NUM_PRESETS];
528
extern u8 ui_quicksel_loop_length[UI_QUICKSEL_NUM_PRESETS];
529
extern u8 ui_quicksel_loop_loop[UI_QUICKSEL_NUM_PRESETS];
530
 
634 tk 531
extern u8 seq_ui_backup_req;
740 tk 532
extern u8 seq_ui_format_req;
974 tk 533
extern u8 seq_ui_saveall_req;
634 tk 534
 
746 tk 535
extern char ui_global_dir_list[80];
744 tk 536
 
1203 tk 537
extern seq_ui_edit_view_t seq_ui_edit_view;
2101 tk 538
extern seq_ui_edit_datawheel_mode_t seq_ui_edit_datawheel_mode;
1203 tk 539
 
2532 tk 540
extern seq_ui_sel_view_t seq_ui_sel_view;
541
 
2250 tk 542
extern seq_ui_options_t seq_ui_options;
543
 
1203 tk 544
extern seq_ui_bookmark_t seq_ui_bookmarks[SEQ_UI_BOOKMARKS_NUM];
545
 
1454 midilab 546
extern mios32_sys_time_t seq_play_timer;
547
 
2542 tk 548
extern seq_ui_track_cc_t seq_ui_track_cc;
549
 
134 tk 550
#endif /* _SEQ_UI_H */