///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // install MIDI Rx callback function MIOS32_MIDI_DirectRxCallback_Init(&NOTIFY_MIDI_Rx); // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("Measurement results will be displayed once a MIDI clock is received."); MIOS32_MIDI_SendDebugMessage("Type \"reset\" in MIOS terminal to reset the current measurements!"); // clear line buffer line_buffer[0] = 0; line_ix = 0; // install the callback function which is called on incoming characters // from MIOS Terminal MIOS32_MIDI_DebugCommandCallback_Init(CONSOLE_Parse); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // turn off gate LED MIOS32_BOARD_LED_Set(1, 0); // create semaphores xSDCardSemaphore = xSemaphoreCreateRecursiveMutex(); // initialize file functions FILE_Init(0); // initialize MIDI handler SEQ_MIDI_OUT_Init(0); // initialize sequencer SEQ_Init(0); // install MIDI Rx callback function MIOS32_MIDI_DirectRxCallback_Init(NOTIFY_MIDI_Rx); // install sequencer task xTaskCreate(TASK_SEQ, (signed portCHAR *)"SEQ", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_SEQ, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize rotary encoders of the same type (DETENTED2) int enc; for(enc=0; enc<NUM_ENCODERS; ++enc) { u8 pin_sr = enc >> 2; // each DIN SR has 4 encoders connected u8 pin_pos = (enc & 0x3) << 1; // Pin position of first ENC channel: either 0, 2, 4 or 6 mios32_enc_config_t enc_config = MIOS32_ENC_ConfigGet(enc); enc_config.cfg.type = DETENTED2; // see mios32_enc.h for available types enc_config.cfg.sr = pin_sr; enc_config.cfg.pos = pin_pos; #if 1 // normal speed, incrementer either 1 or -1 enc_config.cfg.speed = NORMAL; enc_config.cfg.speed_par = 0; #else // higher incrementer values on fast movements enc_config.cfg.speed = FAST; enc_config.cfg.speed_par = 2; #endif MIOS32_ENC_ConfigSet(enc, enc_config); // reset virtual positions enc_virtual_pos[enc] = 0; } }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // start uIP task UIP_TASK_Init(0); // initialize stopwatch for measuring delays MIOS32_STOPWATCH_Init(100); // initialize benchmark BENCHMARK_Init(0); // install MIDI Tx callback function MIOS32_MIDI_DirectTxCallback_Init(NOTIFY_MIDI_Tx); // init benchmark result benchmark_cycles = 0; tested_port = 0; // print first message print_msg = PRINT_MSG_INIT; // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("Play MIDI notes to start different benchmarks\n"); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize stopwatch for measuring delays MIOS32_STOPWATCH_Init(100); // initialize benchmark BENCHMARK_Init(0); // init benchmark result benchmark_cycles = 0; // print first message print_msg = PRINT_MSG_INIT; // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("Settings:\n"); MIOS32_MIDI_SendDebugMessage("#define SEQ_MIDI_OUT_MALLOC_METHOD %d\n", SEQ_MIDI_OUT_MALLOC_METHOD); MIOS32_MIDI_SendDebugMessage("#define SEQ_MIDI_OUT_MAX_EVENTS %d\n", SEQ_MIDI_OUT_MAX_EVENTS); MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("Play any MIDI note to start the benchmark\n"); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { s32 i; // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // MUST be initialized before the SPI functions xSPI0Semaphore = xSemaphoreCreateMutex(); xSDCardSemaphore = xSemaphoreCreateMutex(); // Init filesystem and start SD Card monitoring thread FS_Init(0); xTaskCreate(TASK_Period1S, (signed portCHAR *)"Period1S", configMINIMAL_STACK_SIZE, NULL, ( tskIDLE_PRIORITY + 4 ), NULL); // start uIP task UIP_TASK_Init(0); // print first message print_msg = PRINT_MSG_INIT; // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // create semaphores xSDCardSemaphore = xSemaphoreCreateRecursiveMutex(); // initialize the Notestack NOTESTACK_Init(¬estack, NOTESTACK_MODE_PUSH_TOP, ¬estack_items[0], NOTESTACK_SIZE); // init Synth SYNTH_Init(0); // initialize all J10 pins as inputs with internal Pull-Up int pin; for(pin=0; pin<8; ++pin) MIOS32_BOARD_J10_PinInit(pin, MIOS32_BOARD_PIN_MODE_INPUT_PU); // initialize Standard Control Surface SCS_Init(0); // initialize local SCS configuration SCS_CONFIG_Init(0); // initialize file system SYNTH_FILE_Init(0); // start task xTaskCreate(TASK_Periodic_1mS, (signed portCHAR *)"Periodic_1mS", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_PERIODIC_1MS, NULL); xTaskCreate(TASK_Period_1mS_LP, (signed portCHAR *)"1mS_LP", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_PERIOD_1mS_LP, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { s32 i; // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize encoders for(i=0; i<NUM_ENCODERS; ++i) MIOS32_ENC_ConfigSet(i, encoders[i]); // send welcome message to MIOS terminal #if DEBUG_VERBOSE_LEVEL >= 1 // print welcome message on MIOS terminal DEBUG_MSG("\n"); DEBUG_MSG("====================\n"); DEBUG_MSG("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); DEBUG_MSG("====================\n"); DEBUG_MSG("\n"); DEBUG_MSG("Play MIDI Notes over Channel #1 or press button\n"); DEBUG_MSG("to control the LEDs.\n"); DEBUG_MSG("\n"); #endif }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void){ // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); MIOS32_BOARD_LED_Set(0xffffffff,0); phase = BS_CHECK_PHASE_STARTWAIT; MIOS32_MIDI_SendDebugMessage("Bankstick r/w check"); // setup display task xTaskCreate(TASK_Display, (signed portCHAR *)"Display", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_DISPLAY, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { int i; // create semaphores xMIDIINSemaphore = xSemaphoreCreateRecursiveMutex(); xMIDIOUTSemaphore = xSemaphoreCreateRecursiveMutex(); // clear SysEx buffers for(i=0; i<NUM_SYSEX_BUFFERS; ++i) sysex_buffer_len[i] = 0; // install SysEx callback MIOS32_MIDI_SysExCallback_Init(APP_SYSEX_Parser); // read EEPROM content PRESETS_Init(0); // init terminal TERMINAL_Init(0); // init MIDImon MIDIMON_Init(0); // start uIP task UIP_TASK_Init(0); // initialize status LED MIOS32_BOARD_LED_Init(0xffffffff); MIOS32_BOARD_LED_Set(1, 0); led_pwm_counter[0] = LED_PWM_PERIOD; led_trigger[0] = LED_PWM_PERIOD; // trigger LED on startup for complete PWM cycle // initialize additional LEDs connected to J5A for(i=1; i<NUM_LED_TRIGGERS; ++i) { led_pwm_counter[i] = LED_PWM_PERIOD; led_trigger[i] = LED_PWM_PERIOD; // trigger LED on startup for complete PWM cycle MIOS32_BOARD_J5_PinInit(i-1, MIOS32_BOARD_PIN_MODE_OUTPUT_PP); MIOS32_BOARD_J5_PinSet(i-1, 0); } // initialize J5B/J5C pins as inputs with pull-up enabled // these pins control diagnostic options of the MIDI monitor for(i=4; i<12; ++i) MIOS32_BOARD_J5_PinInit(i, MIOS32_BOARD_PIN_MODE_INPUT_PU); // install timer function which is called each 100 uS MIOS32_TIMER_Init(0, 100, APP_Periodic_100uS, MIOS32_IRQ_PRIO_MID); // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("=====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("=====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize all pins of J5A, J5B and J5C as outputs in Push-Pull Mode int pin; for(pin=0; pin<12; ++pin) MIOS32_BOARD_J5_PinInit(pin, MIOS32_BOARD_PIN_MODE_OUTPUT_PP); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize the AINSER module(s) AINSER_Init(0); // start task xTaskCreate(TASK_AINSER_Scan, (signed portCHAR *)"AINSER_Scan", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_AINSER_SCAN, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize scan direction touchpanel_pressed = 0; scan_x = 0; // install callback function which is called before each AIN channel scan MIOS32_AIN_ServicePrepareCallback_Init(AIN_ServicePrepare); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize the Notestack NOTESTACK_Init(¬estack, NOTESTACK_MODE_PUSH_TOP, ¬estack_items[0], NOTESTACK_SIZE); // init Synth SYNTH_Init(0); // print first message print_msg = PRINT_MSG_INIT; }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); MIOS32_BOARD_LED_Set(0xffffffff, 0); // increase default verbose level (for this demo app...) MBNET_VerboseLevelSet(3); // start MBNet Task MBNET_TASK_Init(0); // start terminal TERMINAL_Init(0); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize SPI interface // ensure that fast pin drivers are activated MIOS32_SPI_IO_Init(SLAVE_SPI, MIOS32_SPI_PIN_SLAVE_DRIVER_STRONG); // init SPI port MIOS32_SPI_TransferModeInit(SLAVE_SPI, MIOS32_SPI_MODE_SLAVE_CLK1_PHASE1, MIOS32_SPI_PRESCALER_128); // start task xTaskCreate(TASK_SPI_Handler, (signed portCHAR *)"SPI_Handler", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_SPI_HANDLER, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { MIOS32_BOARD_LED_Init(0xffffffff); // initialize all LEDs // initialize console CONSOLE_Init(0); #if DEBUG_VERBOSE_LEVEL >= 1 // print welcome message on MIOS terminal DEBUG_MSG("\n"); DEBUG_MSG("====================\n"); DEBUG_MSG("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); DEBUG_MSG("====================\n"); DEBUG_MSG("\n"); DEBUG_MSG("Please send some characters to the console (e.g. via 'mios_terminal')!"); #endif }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // start uIP task UIP_TASK_Init(0); // print first message print_msg = PRINT_MSG_INIT; // print welcome message on MIOS terminal MIOS32_MIDI_SendDebugMessage("\n"); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("%s\n", MIOS32_LCD_BOOT_MSG_LINE1); MIOS32_MIDI_SendDebugMessage("====================\n"); MIOS32_MIDI_SendDebugMessage("\n"); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // init last played note array int i; for(i=0; i<128; ++i) last_played_note[i] = 0x80; // initial scale/root key SCALE_Init(0); selected_scale = 2; // Harmonic Minor selected_root = 0; // C // request initial LCD update display_update = 1; }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize rotary encoders of the same type (DETENTED2) int enc; for(enc=0; enc<NUM_ENCODERS; ++enc) { u8 pin_sr = enc >> 2; // each DIN SR has 4 encoders connected u8 pin_pos = (enc & 0x3) << 1; // Pin position of first ENC channel: either 0, 2, 4 or 6 mios32_enc_config_t enc_config = MIOS32_ENC_ConfigGet(enc); enc_config.cfg.type = DETENTED2; // see mios32_enc.h for available types enc_config.cfg.sr = pin_sr; enc_config.cfg.pos = pin_pos; enc_config.cfg.speed = NORMAL; enc_config.cfg.speed_par = 0; MIOS32_ENC_ConfigSet(enc, enc_config); } }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// extern "C" void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize AOUT driver AOUT_Init(0); // initialize SID module SID_Init(0); // start tasks (differs between MIOS32 and MacOS) TASKS_Init(0); // install MIDI Rx/Tx callback functions MIOS32_MIDI_DirectRxCallback_Init((void *)&NOTIFY_MIDI_Rx); MIOS32_MIDI_DirectTxCallback_Init((void *)&NOTIFY_MIDI_Tx); // install MIDI SysEx callback function MIOS32_MIDI_SysExCallback_Init((void *)&NOTIFY_MIDI_SysEx); // install timeout callback function MIOS32_MIDI_TimeOutCallback_Init((void *)&NOTIFY_MIDI_TimeOut); // init Stopwatch APP_StopwatchInit(); // init MBNet MBNET_Init(0); MBNET_NodeIDSet(0x10); // initialize MbSidEnvironment sid_se_speed_factor = 2; mbSidEnvironment.updateSpeedFactorSet(sid_se_speed_factor); // start timer // TODO: increase once performance has been evaluated MIOS32_TIMER_Init(2, 2000 / sid_se_speed_factor, (void *)&SID_TIMER_SE_Update, MIOS32_IRQ_PRIO_MID); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize all pins of J5A, J5B and J5C as inputs with internal Pull-Up int pin; for(pin=0; pin<12; ++pin) MIOS32_BOARD_J5_PinInit(pin, MIOS32_BOARD_PIN_MODE_INPUT_PU); // initialize rotary encoders of the same type (DETENTED2) int enc; for(enc=0; enc<NUM_ENCODERS; ++enc) { mios32_enc_config_t enc_config = MIOS32_ENC_ConfigGet(enc); enc_config.cfg.type = DETENTED2; // see mios32_enc.h for available types enc_config.cfg.sr = 0; // must be 0 if controlled from application enc_config.cfg.pos = 0; // doesn't matter if controlled from application enc_config.cfg.speed = NORMAL; enc_config.cfg.speed_par = 0; MIOS32_ENC_ConfigSet(enc, enc_config); } }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize DIN arrays int row; for(row=0; row<MATRIX_NUM_ROWS; ++row) { din_value[row] = 0xffff; // default state: buttons depressed } // initialize timestamps int i; for(i=0; i<KEYBOARD_NUM_PINS; ++i) { last_timestamp[i] = 0; } // initialize keyboard delay values keyboard_delay_fastest = INITIAL_KEYBOARD_DELAY_FASTEST; keyboard_delay_slowest = INITIAL_KEYBOARD_DELAY_SLOWEST; // start matrix scan task xTaskCreate(TASK_MatrixScan, (signed portCHAR *)"MatrixScan", configMINIMAL_STACK_SIZE, NULL, PRIORITY_TASK_MATRIX_SCAN, NULL); }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { MIOS32_BOARD_LED_Init(0xffffffff); // initialize all LEDs }
///////////////////////////////////////////////////////////////////////////// //! This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // initialize stopwatch for measuring delays MIOS32_STOPWATCH_Init(100); // hardware will be enabled once configuration has been loaded from SD Card // (resp. no SD Card is available) hw_enabled = 0; // only print error messages by default debug_verbose_level = DEBUG_VERBOSE_LEVEL_ERROR; // disable MSD by default (has to be enabled in SHIFT menu) msd_state = MSD_DISABLED; // hardware will be enabled once configuration has been loaded from SD Card // (resp. no SD Card is available) hw_enabled = 0; // initialize all J10 pins as inputs with internal Pull-Up int pin; for(pin=0; pin<8; ++pin) MIOS32_BOARD_J10_PinInit(pin, MIOS32_BOARD_PIN_MODE_INPUT_PU); // initialize LCDs MBNG_LCD_Init(0); // initialize the AINSER module(s) AINSER_Init(0); // initialize the AOUT module(s) AOUT_Init(0); // create semaphores xSDCardSemaphore = xSemaphoreCreateRecursiveMutex(); xMIDIINSemaphore = xSemaphoreCreateRecursiveMutex(); xMIDIOUTSemaphore = xSemaphoreCreateRecursiveMutex(); xLCDSemaphore = xSemaphoreCreateRecursiveMutex(); xJ16Semaphore = xSemaphoreCreateRecursiveMutex(); // install SysEx callback MIOS32_MIDI_SysExCallback_Init(APP_SYSEX_Parser); // install MIDI Rx/Tx callback functions MIOS32_MIDI_DirectRxCallback_Init(&NOTIFY_MIDI_Rx); MIOS32_MIDI_DirectTxCallback_Init(&NOTIFY_MIDI_Tx); // install timeout callback function MIOS32_MIDI_TimeOutCallback_Init(&NOTIFY_MIDI_TimeOut); // initialize code modules MIDI_PORT_Init(0); MBNG_SYSEX_Init(0); MIDI_ROUTER_Init(0); MBNG_EVENT_Init(0); MBNG_DIN_Init(0); MBNG_DOUT_Init(0); MBNG_ENC_Init(0); MBNG_MF_Init(0); MBNG_AIN_Init(0); MBNG_AINSER_Init(0); MBNG_CV_Init(0); MBNG_KB_Init(0); MBNG_MATRIX_Init(0); UIP_TASK_Init(0); SCS_Init(0); SCS_CONFIG_Init(0); TERMINAL_Init(0); MIDIMON_Init(0); MBNG_FILE_Init(0); MBNG_SEQ_Init(0); SEQ_MIDI_OUT_Init(0); MBNG_PATCH_Init(0); //KEYBOARD_Init(0); // done in MBNG_PATCH_Init() #if MIOS32_DONT_SERVICE_SRIO_SCAN //MIOS32_SRIO_ScanNumSet(4); // standard SRIO scan has been disabled in programming_models/traditional/main.c via MIOS32_DONT_SERVICE_SRIO_SCAN in mios32_config.h // start the scan here - and retrigger it whenever it's finished APP_SRIO_ServicePrepare(); MIOS32_SRIO_ScanStart(APP_SRIO_ServiceFinish); #endif }
///////////////////////////////////////////////////////////////////////////// // This hook is called after startup to initialize the application ///////////////////////////////////////////////////////////////////////////// void APP_Init(void) { // initialize all LEDs MIOS32_BOARD_LED_Init(0xffffffff); // disable DIN test mode by default app_din_testmode = 0; #ifdef MBSEQV4L // MBSEQV4L: set default port to 0xc0: multiple outputs MIOS32_MIDI_DefaultPortSet(0xc0); #endif // initialize hardware soft-config SEQ_HWCFG_Init(0); #ifndef MBSEQV4L // initialize CLCDs SEQ_LCD_Init(0); #endif // init BLMs #ifndef MBSEQV4L BLM_Init(0); #else BLM_CHEAPO_Init(0); #endif BLM_X_Init(); SEQ_TPD_Init(0); // initialize CV SEQ_CV_Init(0); // initialize MIDI handlers SEQ_MIDI_PORT_Init(0); SEQ_MIDI_IN_Init(0); SEQ_MIDI_SYSEX_Init(0); SEQ_BLM_Init(0); SEQ_MIDI_OUT_Init(0); SEQ_MIDI_ROUTER_Init(0); SEQ_TERMINAL_Init(0); // init mixer page SEQ_MIXER_Init(0); // init sequencer core SEQ_CORE_Init(0); // init user interface #ifndef MBSEQV4L SEQ_LABEL_Init(0); SEQ_CC_LABELS_Init(0); #endif SEQ_LED_Init(0); SEQ_UI_Init(0); // initial load of filesystem SEQ_FILE_Init(0); // start tasks (differs between MIOS32 and MacOS) TASKS_Init(0); // install MIDI Rx/Tx callback functions MIOS32_MIDI_DirectRxCallback_Init(&NOTIFY_MIDI_Rx); MIOS32_MIDI_DirectTxCallback_Init(&NOTIFY_MIDI_Tx); // install SysEx callback MIOS32_MIDI_SysExCallback_Init(APP_SYSEX_Parser); // install timeout callback function MIOS32_MIDI_TimeOutCallback_Init(&NOTIFY_MIDI_TimeOut); }