Subversion Repositories svn.mios32

Rev

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