Subversion Repositories svn.mios32

Rev

Rev 2502 | Rev 2532 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
492 tk 1
// $Id: seq_hwcfg.c 2531 2017-10-11 22:55:38Z tk $
2
/*
3
 * Hardware Soft-Configuration
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
/////////////////////////////////////////////////////////////////////////////
15
// Include files
16
/////////////////////////////////////////////////////////////////////////////
17
 
18
// with this switch, seq_ui.h/seq_ui_pages.inc will create local variables
19
#define SEQ_UI_PAGES_INC_LOCAL_VARS 1
20
 
21
#include <mios32.h>
22
 
2531 tk 23
#include <seq_blm8x8.h>
492 tk 24
#include "seq_hwcfg.h"
25
 
26
 
27
/////////////////////////////////////////////////////////////////////////////
28
// Global variables
29
/////////////////////////////////////////////////////////////////////////////
30
 
31
// following predefenitions are matching with the standard layout (without Button/LED Matrix)
32
// They can be overwritten in the MBSEQ_HW.V4 file, which is loaded from SD Card during startup
33
 
34
seq_hwcfg_button_t seq_hwcfg_button = {
35
  //          SR   ignore    Pin
36
  .down  = ((( 1   -1)<<3)+    0),
37
  .up    = ((( 1   -1)<<3)+    1),
38
  .left  = 0xff, // disabled
39
  .right = 0xff, // disabled
40
 
41
  //              SR   ignore    Pin
42
  .scrub     = ((( 1   -1)<<3)+    2),
43
  .metronome = ((( 1   -1)<<3)+    3),
630 tk 44
  .record    = ((( 0   -1)<<3)+    0),
1219 tk 45
  .live      = ((( 0   -1)<<3)+    0),
2322 tk 46
  .jam_live  = ((( 0   -1)<<3)+    0),
47
  .jam_step  = ((( 0   -1)<<3)+    0),
492 tk 48
 
49
  //          SR   ignore    Pin
50
  .stop  = ((( 1   -1)<<3)+    4),
51
  .pause = ((( 1   -1)<<3)+    5),
52
  .play  = ((( 1   -1)<<3)+    6),
53
  .rew   = ((( 1   -1)<<3)+    7),
54
  .fwd   = ((( 2   -1)<<3)+    0),
55
 
56
  //           SR   ignore    Pin
1203 tk 57
  .menu     = ((( 2   -1)<<3)+    5),
58
  .bookmark = ((( 0   -1)<<3)+    0),
59
  .select   = ((( 2   -1)<<3)+    6),
60
  .exit     = ((( 2   -1)<<3)+    7),
492 tk 61
 
62
  //             SR   ignore    Pin
63
  .track[0] = ((( 3   -1)<<3)+    0),
64
  .track[1] = ((( 3   -1)<<3)+    1),
65
  .track[2] = ((( 3   -1)<<3)+    2),
66
  .track[3] = ((( 3   -1)<<3)+    3),
67
 
1146 tk 68
  //                     SR   ignore    Pin
69
  .direct_track[0]  = ((( 0   -1)<<3)+    0),
70
  .direct_track[1]  = ((( 0   -1)<<3)+    0),
71
  .direct_track[2]  = ((( 0   -1)<<3)+    0),
72
  .direct_track[3]  = ((( 0   -1)<<3)+    0),
73
  .direct_track[4]  = ((( 0   -1)<<3)+    0),
74
  .direct_track[5]  = ((( 0   -1)<<3)+    0),
75
  .direct_track[6]  = ((( 0   -1)<<3)+    0),
76
  .direct_track[7]  = ((( 0   -1)<<3)+    0),
77
  .direct_track[8]  = ((( 0   -1)<<3)+    0),
78
  .direct_track[9]  = ((( 0   -1)<<3)+    0),
79
  .direct_track[10] = ((( 0   -1)<<3)+    0),
80
  .direct_track[11] = ((( 0   -1)<<3)+    0),
81
  .direct_track[12] = ((( 0   -1)<<3)+    0),
82
  .direct_track[13] = ((( 0   -1)<<3)+    0),
83
  .direct_track[14] = ((( 0   -1)<<3)+    0),
84
  .direct_track[15] = ((( 0   -1)<<3)+    0),
85
 
1205 tk 86
  //                        SR   ignore    Pin
87
  .direct_bookmark[0]  = ((( 0   -1)<<3)+    0),
88
  .direct_bookmark[1]  = ((( 0   -1)<<3)+    0),
89
  .direct_bookmark[2]  = ((( 0   -1)<<3)+    0),
90
  .direct_bookmark[3]  = ((( 0   -1)<<3)+    0),
91
  .direct_bookmark[4]  = ((( 0   -1)<<3)+    0),
92
  .direct_bookmark[5]  = ((( 0   -1)<<3)+    0),
93
  .direct_bookmark[6]  = ((( 0   -1)<<3)+    0),
94
  .direct_bookmark[7]  = ((( 0   -1)<<3)+    0),
95
  .direct_bookmark[8]  = ((( 0   -1)<<3)+    0),
96
  .direct_bookmark[9]  = ((( 0   -1)<<3)+    0),
97
  .direct_bookmark[10] = ((( 0   -1)<<3)+    0),
98
  .direct_bookmark[11] = ((( 0   -1)<<3)+    0),
99
  .direct_bookmark[12] = ((( 0   -1)<<3)+    0),
100
  .direct_bookmark[13] = ((( 0   -1)<<3)+    0),
101
  .direct_bookmark[14] = ((( 0   -1)<<3)+    0),
102
  .direct_bookmark[15] = ((( 0   -1)<<3)+    0),
103
 
492 tk 104
  //                 SR   ignore    Pin
105
  .par_layer[0] = ((( 3   -1)<<3)+    4),
106
  .par_layer[1] = ((( 3   -1)<<3)+    5),
107
  .par_layer[2] = ((( 3   -1)<<3)+    6),
108
 
109
  //            SR   ignore    Pin
110
  .edit    = ((( 4  -1)<<3)+    0),
111
  .mute    = ((( 4  -1)<<3)+    1),
112
  .pattern = ((( 4  -1)<<3)+    2),
113
  .song    = ((( 4  -1)<<3)+    3),
114
 
115
  //         SR   ignore    Pin
1121 tk 116
  .solo  = ((( 4   -1)<<3)+    4),
117
  .fast  = ((( 4   -1)<<3)+    5),
118
  .fast2 = ((( 0   -1)<<3)+    0),
119
  .all   = ((( 4   -1)<<3)+    6),
492 tk 120
 
121
  //           SR   ignore    Pin
122
  .gp[ 0] = ((( 7   -1)<<3)+    0),
123
  .gp[ 1] = ((( 7   -1)<<3)+    1),
124
  .gp[ 2] = ((( 7   -1)<<3)+    2),
125
  .gp[ 3] = ((( 7   -1)<<3)+    3),
126
  .gp[ 4] = ((( 7   -1)<<3)+    4),
127
  .gp[ 5] = ((( 7   -1)<<3)+    5),
128
  .gp[ 6] = ((( 7   -1)<<3)+    6),
129
  .gp[ 7] = ((( 7   -1)<<3)+    7),
130
  .gp[ 8] = (((10   -1)<<3)+    0),
131
  .gp[ 9] = (((10   -1)<<3)+    1),
132
  .gp[10] = (((10   -1)<<3)+    2),
133
  .gp[11] = (((10   -1)<<3)+    3),
134
  .gp[12] = (((10   -1)<<3)+    4),
135
  .gp[13] = (((10   -1)<<3)+    5),
136
  .gp[14] = (((10   -1)<<3)+    6),
137
  .gp[15] = (((10   -1)<<3)+    7),
138
 
139
  //             SR   ignore    Pin
140
  .group[0] = (((13   -1)<<3)+    0),
141
  .group[1] = (((13   -1)<<3)+    1),
142
  .group[2] = (((13   -1)<<3)+    2),
143
  .group[3] = (((13   -1)<<3)+    3),
144
 
145
  //                 SR   ignore    Pin
146
  .trg_layer[0] = (((13   -1)<<3)+    4),
147
  .trg_layer[1] = (((13   -1)<<3)+    5),
148
  .trg_layer[2] = (((13   -1)<<3)+    6),
149
 
513 tk 150
#ifdef MIOS32_FAMILY_EMULATION
596 tk 151
  //                  SR   ignore    Pin
513 tk 152
  .utility       = (((14   -1)<<3)+    1),
153
  .step_view     = (((13   -1)<<3)+    7),
154
  .par_layer_sel = ((( 2   -1)<<3)+    2),
155
  .trg_layer_sel = ((( 2   -1)<<3)+    3),
156
  .track_sel     = ((( 2   -1)<<3)+    4),
492 tk 157
 
513 tk 158
  //                 SR   ignore    Pin
159
  .tap_tempo    = ((( 0   -1)<<3)+    0),
160
  .tempo_preset = ((( 2   -1)<<3)+    1),
524 tk 161
  .ext_restart  = ((( 0   -1)<<3)+    0),
513 tk 162
 
492 tk 163
  //            SR   ignore    Pin
164
  .copy    = (((14   -1)<<3)+    2),
165
  .paste   = (((14   -1)<<3)+    3),
166
  .clear   = (((14   -1)<<3)+    4),
1014 tk 167
  .undo    = ((( 0   -1)<<3)+    0),
2308 tk 168
  .move    = ((( 0   -1)<<3)+    0),
169
  .scroll  = ((( 0   -1)<<3)+    0),
513 tk 170
#else
596 tk 171
  //                  SR   ignore    Pin
513 tk 172
  .utility       = ((( 2   -1)<<3)+    1),
173
  .step_view     = ((( 2   -1)<<3)+    2),
2329 tk 174
  .par_layer_sel = ((( 0   -1)<<3)+    0),
513 tk 175
  .trg_layer_sel = ((( 2   -1)<<3)+    3),
176
  .track_sel     = ((( 2   -1)<<3)+    4),
177
 
178
  //                 SR   ignore    Pin
179
  .tap_tempo    = ((( 0   -1)<<3)+    0),
180
  .tempo_preset = ((( 0   -1)<<3)+    0),
524 tk 181
  .ext_restart  = ((( 0   -1)<<3)+    0),
513 tk 182
 
183
  //            SR   ignore    Pin
184
  .copy    = ((( 0   -1)<<3)+    0),
185
  .paste   = ((( 0   -1)<<3)+    0),
186
  .clear   = ((( 0   -1)<<3)+    0),
1014 tk 187
  .undo    = ((( 0   -1)<<3)+    0),
2308 tk 188
  .move    = ((( 0   -1)<<3)+    0),
189
  .scroll  = ((( 0   -1)<<3)+    0),
596 tk 190
#endif
544 tk 191
 
596 tk 192
  //            SR   ignore    Pin
193
  .loop    = ((( 0   -1)<<3)+    0),
951 tk 194
  .follow  = ((( 0   -1)<<3)+    0),
596 tk 195
 
544 tk 196
  //              SR   ignore    Pin
197
  .mixer     = ((( 0   -1)<<3)+    0),
1119 tk 198
 
1787 tk 199
  //              SR   ignore    Pin
200
  .save      = ((( 0   -1)<<3)+    0),
201
  .save_all  = ((( 0   -1)<<3)+    0),
202
 
1811 tk 203
  //                     SR   ignore    Pin
1119 tk 204
  .track_mode      = ((( 0   -1)<<3)+    0),
205
  .track_groove    = ((( 0   -1)<<3)+    0),
206
  .track_length    = ((( 0   -1)<<3)+    0),
207
  .track_direction = ((( 0   -1)<<3)+    0),
208
  .track_morph     = ((( 0   -1)<<3)+    0),
209
  .track_transpose = ((( 0   -1)<<3)+    0),
2294 tk 210
  .fx              = ((( 0   -1)<<3)+    0),
1349 tk 211
 
1811 tk 212
  //                                   SR   ignore    Pin
213
  .mute_all_tracks               = ((( 0   -1)<<3)+    0),
214
  .mute_track_layers             = ((( 0   -1)<<3)+    0),
215
  .mute_all_tracks_and_layers    = ((( 0   -1)<<3)+    0),
216
  .unmute_all_tracks             = ((( 0   -1)<<3)+    0),
217
  .unmute_track_layers           = ((( 0   -1)<<3)+    0),
218
  .unmute_all_tracks_and_layers  = ((( 0   -1)<<3)+    0),
219
 
1349 tk 220
  .footswitch      = ((( 0   -1)<<3)+    0),
2502 tk 221
  .enc_btn_fwd     = ((( 0   -1)<<3)+    0),
1454 midilab 222
  .pattern_remix   = ((( 0   -1)<<3)+    0),
492 tk 223
};
224
 
225
 
513 tk 226
seq_hwcfg_button_beh_t seq_hwcfg_button_beh = {
227
  .fast = 1,
1121 tk 228
  .fast2 = 0,
513 tk 229
  .all = 1,
600 tk 230
  .all_with_triggers = 0,
513 tk 231
  .solo = 1,
232
  .metronome = 1,
596 tk 233
  .loop = 1,
951 tk 234
  .follow = 1,
1203 tk 235
  .bookmark = 1,
997 tk 236
#if defined(MIOS32_FAMILY_EMULATION) && !defined(MIOS32_BOARD_IPAD)
513 tk 237
  .scrub = 1,
238
  .menu = 1,
239
  .step_view = 1,
240
  .trg_layer = 1,
241
  .par_layer = 1,
242
  .track_sel = 1,
243
  .tempo_preset = 1,
244
#else
245
  .scrub = 0,
246
  .menu = 0,
247
  .step_view = 0,
248
  .trg_layer = 0,
249
  .par_layer = 0,
250
  .track_sel = 0,
251
  .tempo_preset = 0,
252
#endif
253
};
254
 
255
 
492 tk 256
seq_hwcfg_led_t seq_hwcfg_led = {
496 tk 257
  // GP LEDs DOUT shiftregister assignments
514 tk 258
  .gp_dout_l_sr = 3,
259
  .gp_dout_r_sr = 4,
496 tk 260
 
514 tk 261
#ifdef MIOS32_FAMILY_EMULATION
262
  .gp_dout_l2_sr = 15,
263
  .gp_dout_r2_sr = 16,
264
#else
265
  .gp_dout_l2_sr = 0,
266
  .gp_dout_r2_sr = 0,
267
#endif
268
 
1146 tk 269
  .tracks_dout_l_sr = 0,
270
  .tracks_dout_r_sr = 0,
271
 
496 tk 272
  // DOUT pin assignments
273
 
492 tk 274
  //             SR    ignore    Pin
275
  .track[0] = ((( 1   -1)<<3)+    0),
276
  .track[1] = ((( 1   -1)<<3)+    1),
277
  .track[2] = ((( 1   -1)<<3)+    2),
278
  .track[3] = ((( 1   -1)<<3)+    3),
279
 
280
  //                 SR    ignore    Pin
281
  .par_layer[0] = ((( 1   -1)<<3)+    4),
282
  .par_layer[1] = ((( 1   -1)<<3)+    5),
283
  .par_layer[2] = ((( 1   -1)<<3)+    6),
284
 
2301 tk 285
  //            SR    ignore    Pin
286
  .beat    = ((( 1   -1)<<3)+    7),
287
  .measure = ((( 0   -1)<<3)+    0),
492 tk 288
 
1336 tk 289
  //                     SR    ignore    Pin
290
  .midi_in_combined =  ((( 0   -1)<<3)+    0),
291
  .midi_out_combined = ((( 0   -1)<<3)+    0),
292
 
492 tk 293
  //            SR    ignore    Pin
294
  .edit    = ((( 2   -1)<<3)+    0),
295
  .mute    = ((( 2   -1)<<3)+    1),
296
  .pattern = ((( 2   -1)<<3)+    2),
297
  .song    = ((( 2   -1)<<3)+    3),
298
 
299
  //         SR    ignore    Pin
1121 tk 300
  .solo  = ((( 2   -1)<<3)+    4),
301
  .fast  = ((( 2   -1)<<3)+    5),
302
  .fast2 = ((( 0   -1)<<3)+    0),
303
  .all   = ((( 2   -1)<<3)+    6),
492 tk 304
 
305
  //             SR    ignore    Pin
306
  .group[0] = (((11   -1)<<3)+    0),
307
  .group[1] = (((11   -1)<<3)+    2),
308
  .group[2] = (((11   -1)<<3)+    4),
309
  .group[3] = (((11   -1)<<3)+    6),
310
 
311
  //                 SR    ignore    Pin
312
  .trg_layer[0] = (((12   -1)<<3)+    0),
313
  .trg_layer[1] = (((12   -1)<<3)+    1),
314
  .trg_layer[2] = (((12   -1)<<3)+    2),
315
 
513 tk 316
#ifdef MIOS32_FAMILY_EMULATION
492 tk 317
  //          SR    ignore    Pin
318
  .play  = (((12   -1)<<3)+    3),
319
  .stop  = (((12   -1)<<3)+    4),
320
  .pause = (((12   -1)<<3)+    5),
321
  .rew   = (((12   -1)<<3)+    6),
322
  .fwd   = (((12   -1)<<3)+    7),
596 tk 323
  .loop  = ((( 0   -1)<<3)+    0),
951 tk 324
  .follow = ((( 0   -1)<<3)+    0),
492 tk 325
 
326
  //              SR    ignore    Pin
591 tk 327
  .exit      = ((( 0   -1)<<3)+    0),
328
  .select    = ((( 0   -1)<<3)+    0),
492 tk 329
  .menu      = (((13   -1)<<3)+    0),
1203 tk 330
  .bookmark  = ((( 0   -1)<<3)+    0),
492 tk 331
  .scrub     = (((13   -1)<<3)+    1),
332
  .metronome = (((13   -1)<<3)+    2),
333
  .utility   = (((13   -1)<<3)+    3),
334
  .copy      = (((13   -1)<<3)+    4),
335
  .paste     = (((13   -1)<<3)+    5),
336
  .clear     = (((13   -1)<<3)+    6),
1014 tk 337
  .undo      = ((( 0   -1)<<3)+    0),
2308 tk 338
  .move      = ((( 0   -1)<<3)+    0),
339
  .scroll    = ((( 0   -1)<<3)+    0),
630 tk 340
  .record    = ((( 0   -1)<<3)+    0),
1219 tk 341
  .live      = ((( 0   -1)<<3)+    0),
2322 tk 342
  .jam_live  = ((( 0   -1)<<3)+    0),
343
  .jam_step  = ((( 0   -1)<<3)+    0),
492 tk 344
 
345
  //               SR    ignore    Pin
513 tk 346
  .step_view     = (((14   -1)<<3)+    5),
347
  .par_layer_sel = (((14   -1)<<3)+    1),
348
  .trg_layer_sel = (((14   -1)<<3)+    2),
349
  .track_sel     = (((14   -1)<<3)+    3),
492 tk 350
 
513 tk 351
  //                 SR    ignore    Pin
352
  .tap_tempo    = ((( 0   -1)<<3)+    0),
353
  .tempo_preset = (((14   -1)<<3)+    0),
524 tk 354
  .ext_restart  = ((( 0   -1)<<3)+    0),
513 tk 355
 
492 tk 356
  //         SR    ignore    Pin
357
  .down = (((14   -1)<<3)+    6),
358
  .up   = (((14   -1)<<3)+    7),
513 tk 359
#else
360
  //          SR    ignore    Pin
361
  .play  = ((( 0   -1)<<3)+    0),
362
  .stop  = ((( 0   -1)<<3)+    0),
363
  .pause = ((( 0   -1)<<3)+    0),
364
  .rew   = ((( 0   -1)<<3)+    0),
365
  .fwd   = ((( 0   -1)<<3)+    0),
596 tk 366
  .loop  = ((( 0   -1)<<3)+    0),
951 tk 367
  .follow = ((( 0   -1)<<3)+    0),
513 tk 368
 
369
  //              SR    ignore    Pin
2329 tk 370
  .exit      = ((( 0   -1)<<3)+    0),
371
  .select    = ((( 0   -1)<<3)+    0),
513 tk 372
  .menu      = ((( 0   -1)<<3)+    0),
1203 tk 373
  .bookmark  = ((( 0   -1)<<3)+    0),
513 tk 374
  .scrub     = ((( 0   -1)<<3)+    0),
375
  .metronome = ((( 0   -1)<<3)+    0),
376
  .utility   = ((( 0   -1)<<3)+    0),
377
  .copy      = ((( 0   -1)<<3)+    0),
378
  .paste     = ((( 0   -1)<<3)+    0),
379
  .clear     = ((( 0   -1)<<3)+    0),
1014 tk 380
  .undo      = ((( 0   -1)<<3)+    0),
2308 tk 381
  .move      = ((( 0   -1)<<3)+    0),
382
  .scroll    = ((( 0   -1)<<3)+    0),
2329 tk 383
  .record    = ((( 0   -1)<<3)+    0),
384
  .live      = ((( 0   -1)<<3)+    0),
385
  .jam_live  = ((( 0   -1)<<3)+    0),
386
  .jam_step  = ((( 0   -1)<<3)+    0),
513 tk 387
 
388
  //               SR    ignore    Pin
389
  .step_view     = ((( 0   -1)<<3)+    0),
390
  .par_layer_sel = ((( 0   -1)<<3)+    0),
391
  .trg_layer_sel = ((( 0   -1)<<3)+    0),
392
  .track_sel     = ((( 0   -1)<<3)+    0),
393
 
394
  //                 SR    ignore    Pin
395
  .tap_tempo    = ((( 0   -1)<<3)+    0),
396
  .tempo_preset = ((( 0   -1)<<3)+    0),
524 tk 397
  .ext_restart  = ((( 0   -1)<<3)+    0),
513 tk 398
 
399
  //         SR    ignore    Pin
400
  .down = ((( 0   -1)<<3)+    0),
401
  .up   = ((( 0   -1)<<3)+    0),
2329 tk 402
#endif
743 tk 403
 
404
  //         SR    ignore    Pin
405
  .mixer =     ((( 0   -1)<<3)+    0),
1119 tk 406
 
407
  //         SR    ignore    Pin
408
  .track_mode      = ((( 0   -1)<<3)+    0),
409
  .track_groove    = ((( 0   -1)<<3)+    0),
410
  .track_length    = ((( 0   -1)<<3)+    0),
411
  .track_direction = ((( 0   -1)<<3)+    0),
412
  .track_morph     = ((( 0   -1)<<3)+    0),
413
  .track_transpose = ((( 0   -1)<<3)+    0),
2294 tk 414
  .fx              = ((( 0   -1)<<3)+    0),
1811 tk 415
 
416
  //                                   SR   ignore    Pin
417
  .mute_all_tracks               = ((( 0   -1)<<3)+    0),
418
  .mute_track_layers             = ((( 0   -1)<<3)+    0),
419
  .mute_all_tracks_and_layers    = ((( 0   -1)<<3)+    0),
420
  .unmute_all_tracks             = ((( 0   -1)<<3)+    0),
421
  .unmute_track_layers           = ((( 0   -1)<<3)+    0),
422
  .unmute_all_tracks_and_layers  = ((( 0   -1)<<3)+    0),
492 tk 423
};
424
 
425
 
513 tk 426
seq_hwcfg_enc_t seq_hwcfg_enc = {
427
  .datawheel_fast_speed = 3,
1345 tk 428
  .bpm_fast_speed = 3,
513 tk 429
  .gp_fast_speed = 3,
430
  .auto_fast = 1,
431
};
432
 
433
 
514 tk 434
seq_hwcfg_blm_t seq_hwcfg_blm = {
496 tk 435
  .enabled = 0,
436
  .dout_duocolour = 1,
514 tk 437
  .buttons_enabled = 1,
496 tk 438
  .buttons_no_ui = 1,
1675 tk 439
  .gp_always_select_menu_page = 0,
514 tk 440
};
496 tk 441
 
514 tk 442
seq_hwcfg_blm8x8_t seq_hwcfg_blm8x8 = {
443
  .enabled = 0,
444
  .dout_gp_mapping = 1,
496 tk 445
};
446
 
447
 
1336 tk 448
seq_hwcfg_bpm_digits_t seq_hwcfg_bpm_digits = {
449
  .enabled = 0,
450
  .segments_sr = 0,
451
  .common1_pin = ((( 0   -1)<<3)+    0),
452
  .common2_pin = ((( 0   -1)<<3)+    0),
453
  .common3_pin = ((( 0   -1)<<3)+    0),
1341 tk 454
  .common4_pin = ((( 0   -1)<<3)+    0),
1336 tk 455
};
456
 
457
 
1341 tk 458
seq_hwcfg_step_digits_t seq_hwcfg_step_digits = {
459
  .enabled = 0,
460
  .segments_sr = 0,
461
  .common1_pin = ((( 0   -1)<<3)+    0),
462
  .common2_pin = ((( 0   -1)<<3)+    0),
463
  .common3_pin = ((( 0   -1)<<3)+    0),
464
};
465
 
466
 
1345 tk 467
seq_hwcfg_tpd_t seq_hwcfg_tpd = {
468
  .enabled = 0,
1864 tk 469
  .columns_sr = {0, 0},
470
  .rows_sr_green = {0, 0},
471
  .rows_sr_red = {0, 0},
1345 tk 472
};
473
 
474
 
741 tk 475
seq_hwcfg_midi_remote_t seq_hwcfg_midi_remote = {
476
  .key = 96, // C-7, on some MIDI monitors displayed as C-6
477
  .cc = 0, // disabled
478
};
479
 
1713 tk 480
seq_hwcfg_track_cc_t seq_hwcfg_track_cc = {
481
  .mode = 0,
482
  .port = USB1,
483
  .chn = 0,
484
  .cc = 100,
485
};
741 tk 486
 
1713 tk 487
 
507 tk 488
u8 seq_hwcfg_dout_gate_sr[SEQ_HWCFG_NUM_SR_DOUT_GATES];
784 tk 489
u8 seq_hwcfg_dout_gate_1ms = 0;
2088 tk 490
u8 seq_hwcfg_cv_gate_sr[SEQ_HWCFG_NUM_SR_CV_GATES];
491
u8 seq_hwcfg_clk_sr = 0;
2268 tk 492
u8 seq_hwcfg_j5_enabled = 0;
507 tk 493
 
494
 
492 tk 495
/////////////////////////////////////////////////////////////////////////////
496
// Local constant arrays
497
/////////////////////////////////////////////////////////////////////////////
498
 
499
static const mios32_enc_config_t enc_config[SEQ_HWCFG_NUM_ENCODERS] = {
500
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 1, .cfg.pos=0 }, // Data Wheel
501
 
502
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 5, .cfg.pos=0 }, // GP1
503
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 5, .cfg.pos=2 }, // GP2
504
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 5, .cfg.pos=4 }, // GP3
505
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 5, .cfg.pos=6 }, // GP4
506
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 6, .cfg.pos=0 }, // GP5
507
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 6, .cfg.pos=2 }, // GP6
508
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 6, .cfg.pos=4 }, // GP7
509
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 6, .cfg.pos=6 }, // GP8
510
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 8, .cfg.pos=0 }, // GP9
511
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 8, .cfg.pos=2 }, // GP10
512
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 8, .cfg.pos=4 }, // GP11
513
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 8, .cfg.pos=6 }, // GP12
514
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 9, .cfg.pos=0 }, // GP13
515
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 9, .cfg.pos=2 }, // GP14
516
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 9, .cfg.pos=4 }, // GP15
517
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 9, .cfg.pos=6 }, // GP16
1341 tk 518
 
519
  { .cfg.type=DETENTED2, .cfg.speed=NORMAL, .cfg.speed_par=0, .cfg.sr= 0, .cfg.pos=0 }, // BPM
492 tk 520
};
521
 
522
 
523
/////////////////////////////////////////////////////////////////////////////
524
// Initialisation
525
/////////////////////////////////////////////////////////////////////////////
526
s32 SEQ_HWCFG_Init(u32 mode)
527
{
528
  int i;
529
 
1864 tk 530
  // using 16 SRs by default, can be increased to up to 23 SRs
531
  MIOS32_SRIO_ScanNumSet(16);
532
 
492 tk 533
  // initialize encoders
534
  for(i=0; i<SEQ_HWCFG_NUM_ENCODERS; ++i)
535
    MIOS32_ENC_ConfigSet(i, enc_config[i]);
536
 
507 tk 537
  // disable gate SRs
538
  for(i=0; i<SEQ_HWCFG_NUM_SR_DOUT_GATES; ++i)
539
    seq_hwcfg_dout_gate_sr[i] = 0;
2088 tk 540
  for(i=0; i<SEQ_HWCFG_NUM_SR_CV_GATES; ++i)
541
    seq_hwcfg_cv_gate_sr[i] = 0;
507 tk 542
 
2531 tk 543
  // initial debounce delay for BLM8x8
544
  {
545
    int blm;
1281 tk 546
 
2531 tk 547
    for(blm=0; blm<SEQ_BLM8X8_NUM; ++blm) {
548
      seq_blm8x8_config_t config = SEQ_BLM8X8_ConfigGet(blm);
549
      config.debounce_delay = 20; // mS
550
      SEQ_BLM8X8_ConfigSet(blm, config);
551
    }
552
  }
553
 
492 tk 554
  return 0; // no error
555
}