Subversion Repositories svn.mios32

Rev

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