Table of Contents
Summary
This page is for describing the functions found in the file seq_buttons.inc in the MBSEQ v2.4a application.
seq_buttons.inc contains the handler functions for button presses. USER_DIN_NotifyToggle calls SEQ_Button_Handler which first checks to see if the button press came from one of the two shift registers which are assigned in main.asm to be the 16 general purpose buttons.
Functions
SEQ_BUTTON_Handler |
SEQ_BUTTON_Handler_ChkGP1 |
SEQ_BUTTON_Handler_ChkGP2 |
CS_MENU_BUTTON_Handler_NoGP |
SEQ_BUTTON_Handler_Loop |
SEQ_BUTTON_Handler_End |
SEQ_BUTTON_GP |
SEQ_BUTTON_GP1 |
SEQ_BUTTON_GP2 |
SEQ_BUTTON_GP3 |
SEQ_BUTTON_GP4 |
SEQ_BUTTON_GP5 |
SEQ_BUTTON_GP6 |
SEQ_BUTTON_GP7 |
SEQ_BUTTON_GP8 |
SEQ_BUTTON_GP9 |
SEQ_BUTTON_GP10 |
SEQ_BUTTON_GP11 |
SEQ_BUTTON_GP12 |
SEQ_BUTTON_GP13 |
SEQ_BUTTON_GP14 |
SEQ_BUTTON_GP15 |
SEQ_BUTTON_GP16 |
SEQ_BUTTON_GP_Cont |
SEQ_BUTTON_Select |
SEQ_BUTTON_Exit |
SEQ_BUTTON_Left |
SEQ_BUTTON_LeftRemote |
SEQ_BUTTON_Right |
SEQ_BUTTON_RightRemote |
SEQ_BUTTON_StartStop |
BUTTON_Control4SetStart |
SEQ_BUTTON_StartStop_Stop |
SEQ_BUTTON_Pause |
SEQ_BUTTON_Rew |
SEQ_BUTTON_Fwd |
SEQ_BUTTON_Play |
SEQ_BUTTON_Stop |
SEQ_BUTTON_Continue |
SEQ_BUTTON_Edit |
SEQ_BUTTON_Mute |
SEQ_BUTTON_Pattern |
SEQ_BUTTON_Song |
SEQ_BUTTON_Song_Toggle |
SEQ_BUTTON_Song_Toggle_1 |
SEQ_BUTTON_Song_Toggle_0 |
SEQ_BUTTON_Song_Toggle_Cont |
SEQ_BUTTON_Song_NoToggle |
SEQ_BUTTON_Menu |
SEQ_BUTTON_Metronome |
SEQ_BUTTON_Scrub |
SEQ_BUTTON_Solo |
SEQ_BUTTON_All |
SEQ_BUTTON_Fast |
SEQ_BUTTON_Fast_Loop |
SEQ_BUTTON_LayerA |
SEQ_BUTTON_LayerB |
SEQ_BUTTON_LayerC |
SEQ_BUTTON_Layerx |
SEQ_BUTTON_Layerx_MPS |
SEQ_BUTTON_Layerx_Edit |
SEQ_BUTTON_Layer_Depr |
SEQ_BUTTON_Track1 |
SEQ_BUTTON_Track2 |
SEQ_BUTTON_Track3 |
SEQ_BUTTON_Track4 |
SEQ_BUTTON_Trackx_Cont |
SEQ_BUTTON_Trackx_MPS |
SEQ_BUTTON_Trackx_Edit |
SEQ_BUTTON_Trackx_Toggle |
SEQ_BUTTON_Trackx_Radio |
SEQ_BUTTON_Trackx_End |
SEQ_BUTTON_Trackx_Hlp_Sav |
SEQ_BUTTON_F1 |
SEQ_BUTTON_F2 |
SEQ_BUTTON_F3 |
SEQ_BUTTON_F4 |
Function Descriptions
SEQ_BUTTON_Handler_ChkGP1 first moves MIOS_PARAMETER1 into W, AND's W with 0xf8 and then xorlw's against “(DEFAULT_GP_DIN_SR0 - 1) « 3” which, presumably results in zero if the registers match. Perhaps the AND statement converts the button number in MIOS_PARAMETER1 into a value representing which SR it belongs to.
SEQ_BUTTON_Handler searches through mios_tables.inc for a DIN pin that matches MIOS_PARAMETER1 and then calls the appr. function
From the comments:
GP button number is stored in MIOS_PARAMETER1, button value in MIOS_PARAMETER2 (1 for released, 0 for pressed)
If the button press did come from one of the GP's then the program branches to SEQ_GP_Button in seq_gp.inc, not to be confused with SEQ_Button_GP in seq_button.inc.