#pragma once
#ifndef SPICE_SDK_IO_H
#define SPICE_SDK_IO_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

// Bishi Bashi Channel

typedef enum SPICE_SDK_BBC_BUTTONS {
    BBC_Button_Service,
    BBC_Button_Test,
    BBC_Button_P1_R,
    BBC_Button_P1_G,
    BBC_Button_P1_B,
    BBC_Button_P1_DiskMinus,
    BBC_Button_P1_DiskPlus,
    BBC_Button_P1_DiskSlowdown,
    BBC_Button_P2_R,
    BBC_Button_P2_G,
    BBC_Button_P2_B,
    BBC_Button_P2_DiskMinus,
    BBC_Button_P2_DiskPlus,
    BBC_Button_P2_DiskSlowdown,
    BBC_Button_P3_R,
    BBC_Button_P3_G,
    BBC_Button_P3_B,
    BBC_Button_P3_DiskMinus,
    BBC_Button_P3_DiskPlus,
    BBC_Button_P3_DiskSlowdown,
    BBC_Button_P4_R,
    BBC_Button_P4_G,
    BBC_Button_P4_B,
    BBC_Button_P4_DiskMinus,
    BBC_Button_P4_DiskPlus,
    BBC_Button_P4_DiskSlowdown,
} SPICE_SDK_BBC_BUTTONS;

typedef enum SPICE_SDK_BBC_ANALOGS {
    BBC_Analog_P1_Disk,
    BBC_Analog_P2_Disk,
    BBC_Analog_P3_Disk,
    BBC_Analog_P4_Disk,
} SPICE_SDK_BBC_ANALOGS;

typedef enum SPICE_SDK_BBC_LIGHTS {
    BBC_Light_P1_R,
    BBC_Light_P1_B,
    BBC_Light_P1_DISC_R,
    BBC_Light_P1_DISC_G,
    BBC_Light_P1_DISC_B,
    BBC_Light_P2_R,
    BBC_Light_P2_B,
    BBC_Light_P2_DISC_R,
    BBC_Light_P2_DISC_G,
    BBC_Light_P2_DISC_B,
    BBC_Light_P3_R,
    BBC_Light_P3_B,
    BBC_Light_P3_DISC_R,
    BBC_Light_P3_DISC_G,
    BBC_Light_P3_DISC_B,
    BBC_Light_P4_R,
    BBC_Light_P4_B,
    BBC_Light_P4_DISC_R,
    BBC_Light_P4_DISC_G,
    BBC_Light_P4_DISC_B,
    BBC_Light_IC_CARD_R,
    BBC_Light_IC_CARD_G,
    BBC_Light_IC_CARD_B,
    BBC_Light_UNDER_LED1_R,
    BBC_Light_UNDER_LED1_G,
    BBC_Light_UNDER_LED1_B,
    BBC_Light_UNDER_LED2_R,
    BBC_Light_UNDER_LED2_G,
    BBC_Light_UNDER_LED2_B,
    BBC_Light_UNDER_LED3_R,
    BBC_Light_UNDER_LED3_G,
    BBC_Light_UNDER_LED3_B,
} SPICE_SDK_BBC_LIGHTS;

// HELLO! Pop'n Music

typedef enum SPICE_SDK_HELLO_POPN_BUTTONS {
    HPM_Button_Service,
    HPM_Button_Test,
    HPM_Button_CoinMech,
    HPM_Button_P1_Start,
    HPM_Button_P1_1,
    HPM_Button_P1_2,
    HPM_Button_P1_3,
    HPM_Button_P1_4,
    HPM_Button_P2_Start,
    HPM_Button_P2_1,
    HPM_Button_P2_2,
    HPM_Button_P2_3,
    HPM_Button_P2_4,
} SPICE_SDK_HELLO_POPN_BUTTONS;

typedef enum SPICE_SDK_HELLO_POPN_LIGHTS {
    HPM_Light_SPEAKER_RED,
    HPM_Light_SPEAKER_ORANGE,
    HPM_Light_SPEAKER_BLUE,
    HPM_Light_P1_START,
    HPM_Light_P1_RED_P2_GREEN,
    HPM_Light_P1_BLUE,
    HPM_Light_P1_YELLOW,
    HPM_Light_P1_GREEN,
    HPM_Light_P2_START,
    HPM_Light_P2_RED,
    HPM_Light_P2_BLUE,
    HPM_Light_P2_YELLOW,
} SPICE_SDK_HELLO_POPN_LIGHTS;

// Beatstream

typedef enum SPICE_SDK_BEATSTREAM_BUTTONS {
    BS_Button_Service,
    BS_Button_Test,
    BS_Button_CoinMech,
} SPICE_SDK_BEATSTREAM_BUTTONS;

typedef enum SPICE_SDK_BEATSTREAM_LIGHTS {
    BS_Light_BottomR,
    BS_Light_BottomG,
    BS_Light_BottomB,
    BS_Light_LeftR,
    BS_Light_LeftG,
    BS_Light_LeftB,
    BS_Light_RightR,
    BS_Light_RightG,
    BS_Light_RightB,
} SPICE_SDK_BEATSTREAM_LIGHTS;

// Dance Dance Revolution

typedef enum SPICE_SDK_DDR_BUTTONS {
    DDR_Button_SERVICE,
    DDR_Button_TEST,
    DDR_Button_COIN_MECH,
    DDR_Button_P1_START,
    DDR_Button_P1_PANEL_UP,
    DDR_Button_P1_PANEL_DOWN,
    DDR_Button_P1_PANEL_LEFT,
    DDR_Button_P1_PANEL_RIGHT,
    DDR_Button_P1_MENU_UP,
    DDR_Button_P1_MENU_DOWN,
    DDR_Button_P1_MENU_LEFT,
    DDR_Button_P1_MENU_RIGHT,
    DDR_Button_P2_START,
    DDR_Button_P2_PANEL_UP,
    DDR_Button_P2_PANEL_DOWN,
    DDR_Button_P2_PANEL_LEFT,
    DDR_Button_P2_PANEL_RIGHT,
    DDR_Button_P2_MENU_UP,
    DDR_Button_P2_MENU_DOWN,
    DDR_Button_P2_MENU_LEFT,
    DDR_Button_P2_MENU_RIGHT,
} SPICE_SDK_DDR_BUTTONS;

typedef enum SPICE_SDK_DDR_ANALOGS {
    DDR_Analog_P1_LEFT_RIGHT,
    DDR_Analog_P1_UP_DOWN,
    DDR_Analog_P2_LEFT_RIGHT,
    DDR_Analog_P2_UP_DOWN
} SPICE_SDK_DDR_ANALOGS;

typedef enum SPICE_SDK_DDR_LIGHTS {
    DDR_Light_P1_FOOT_LEFT,
    DDR_Light_P1_FOOT_UP,
    DDR_Light_P1_FOOT_RIGHT,
    DDR_Light_P1_FOOT_DOWN,

    DDR_Light_P2_FOOT_LEFT,
    DDR_Light_P2_FOOT_UP,
    DDR_Light_P2_FOOT_RIGHT,
    DDR_Light_P2_FOOT_DOWN,

    DDR_Light_SPOT_RED,
    DDR_Light_SPOT_BLUE,
    DDR_Light_TOP_SPOT_RED,
    DDR_Light_TOP_SPOT_BLUE,

    DDR_Light_P1_HALOGEN_UPPER,
    DDR_Light_P1_HALOGEN_LOWER,
    DDR_Light_P2_HALOGEN_UPPER,
    DDR_Light_P2_HALOGEN_LOWER,

    DDR_Light_P1_BUTTON,
    DDR_Light_P2_BUTTON,
    DDR_Light_NEON,

    DDR_Light_HD_P1_START,
    DDR_Light_HD_P1_LEFT_RIGHT,
    DDR_Light_HD_P1_UP_DOWN,

    DDR_Light_HD_P2_START,
    DDR_Light_HD_P2_LEFT_RIGHT,
    DDR_Light_HD_P2_UP_DOWN,

    DDR_Light_HD_P1_SPEAKER_F_R,
    DDR_Light_HD_P1_SPEAKER_F_G,
    DDR_Light_HD_P1_SPEAKER_F_B,
    DDR_Light_HD_P1_SPEAKER_W_R,
    DDR_Light_HD_P1_SPEAKER_W_G,
    DDR_Light_HD_P1_SPEAKER_W_B,

    DDR_Light_HD_P2_SPEAKER_F_R,
    DDR_Light_HD_P2_SPEAKER_F_G,
    DDR_Light_HD_P2_SPEAKER_F_B,
    DDR_Light_HD_P2_SPEAKER_W_R,
    DDR_Light_HD_P2_SPEAKER_W_G,
    DDR_Light_HD_P2_SPEAKER_W_B,

    DDR_Light_WHITE_SPEAKER_TOP_R,
    DDR_Light_WHITE_SPEAKER_TOP_G,
    DDR_Light_WHITE_SPEAKER_TOP_B,
    DDR_Light_WHITE_SPEAKER_BOTTOM_R,
    DDR_Light_WHITE_SPEAKER_BOTTOM_G,
    DDR_Light_WHITE_SPEAKER_BOTTOM_B,
    DDR_Light_WHITE_WOOFER_R,
    DDR_Light_WHITE_WOOFER_G,
    DDR_Light_WHITE_WOOFER_B,

    DDR_Light_GOLD_P1_MENU_START,
    DDR_Light_GOLD_P1_MENU_UP,
    DDR_Light_GOLD_P1_MENU_DOWN,
    DDR_Light_GOLD_P1_MENU_LEFT,
    DDR_Light_GOLD_P1_MENU_RIGHT,

    DDR_Light_GOLD_P2_MENU_START,
    DDR_Light_GOLD_P2_MENU_UP,
    DDR_Light_GOLD_P2_MENU_DOWN,
    DDR_Light_GOLD_P2_MENU_LEFT,
    DDR_Light_GOLD_P2_MENU_RIGHT,

    DDR_Light_GOLD_TITLE_PANEL_LEFT,
    DDR_Light_GOLD_TITLE_PANEL_CENTER,
    DDR_Light_GOLD_TITLE_PANEL_RIGHT,

    DDR_Light_GOLD_P1_WOOFER_CORNER,
    DDR_Light_GOLD_P2_WOOFER_CORNER,

    DDR_Light_GOLD_P1_CARD_UNIT_R,
    DDR_Light_GOLD_P1_CARD_UNIT_G,
    DDR_Light_GOLD_P1_CARD_UNIT_B,

    DDR_Light_GOLD_P2_CARD_UNIT_R,
    DDR_Light_GOLD_P2_CARD_UNIT_G,
    DDR_Light_GOLD_P2_CARD_UNIT_B,

    DDR_Light_GOLD_TOP_PANEL_AVG_R,
    DDR_Light_GOLD_TOP_PANEL_AVG_G,
    DDR_Light_GOLD_TOP_PANEL_AVG_B,

    DDR_Light_GOLD_MONITOR_SIDE_LEFT_AVG_R,
    DDR_Light_GOLD_MONITOR_SIDE_LEFT_AVG_G,
    DDR_Light_GOLD_MONITOR_SIDE_LEFT_AVG_B,

    DDR_Light_GOLD_MONITOR_SIDE_RIGHT_AVG_R,
    DDR_Light_GOLD_MONITOR_SIDE_RIGHT_AVG_G,
    DDR_Light_GOLD_MONITOR_SIDE_RIGHT_AVG_B,

    DDR_Light_GOLD_P1_FOOT_UP_AVG_R,
    DDR_Light_GOLD_P1_FOOT_UP_AVG_G,
    DDR_Light_GOLD_P1_FOOT_UP_AVG_B,

    DDR_Light_GOLD_P1_FOOT_DOWN_AVG_R,
    DDR_Light_GOLD_P1_FOOT_DOWN_AVG_G,
    DDR_Light_GOLD_P1_FOOT_DOWN_AVG_B,

    DDR_Light_GOLD_P1_FOOT_LEFT_AVG_R,
    DDR_Light_GOLD_P1_FOOT_LEFT_AVG_G,
    DDR_Light_GOLD_P1_FOOT_LEFT_AVG_B,

    DDR_Light_GOLD_P1_FOOT_RIGHT_AVG_R,
    DDR_Light_GOLD_P1_FOOT_RIGHT_AVG_G,
    DDR_Light_GOLD_P1_FOOT_RIGHT_AVG_B,

    DDR_Light_GOLD_P2_FOOT_UP_AVG_R,
    DDR_Light_GOLD_P2_FOOT_UP_AVG_G,
    DDR_Light_GOLD_P2_FOOT_UP_AVG_B,

    DDR_Light_GOLD_P2_FOOT_DOWN_AVG_R,
    DDR_Light_GOLD_P2_FOOT_DOWN_AVG_G,
    DDR_Light_GOLD_P2_FOOT_DOWN_AVG_B,

    DDR_Light_GOLD_P2_FOOT_LEFT_AVG_R,
    DDR_Light_GOLD_P2_FOOT_LEFT_AVG_G,
    DDR_Light_GOLD_P2_FOOT_LEFT_AVG_B,

    DDR_Light_GOLD_P2_FOOT_RIGHT_AVG_R,
    DDR_Light_GOLD_P2_FOOT_RIGHT_AVG_G,
    DDR_Light_GOLD_P2_FOOT_RIGHT_AVG_B,

    DDR_Light_GOLD_P1_STAGE_UP_LEFT,
    DDR_Light_GOLD_P1_STAGE_UP_RIGHT,
    DDR_Light_GOLD_P1_STAGE_DOWN_LEFT,
    DDR_Light_GOLD_P1_STAGE_DOWN_RIGHT,

    DDR_Light_GOLD_P2_STAGE_UP_LEFT,
    DDR_Light_GOLD_P2_STAGE_UP_RIGHT,
    DDR_Light_GOLD_P2_STAGE_DOWN_LEFT,
    DDR_Light_GOLD_P2_STAGE_DOWN_RIGHT,
} SPICE_SDK_DDR_LIGHTS;

// Dance Evolution

typedef enum SPICE_SDK_DANEVO_BUTTONS {
    DANEVO_Button_Service,
    DANEVO_Button_Test,
    DANEVO_Button_P1Start,
    DANEVO_Button_P1Left,
    DANEVO_Button_P1Right,
    DANEVO_Button_P2Start,
    DANEVO_Button_P2Left,
    DANEVO_Button_P2Right
} SPICE_SDK_DANEVO_BUTTONS;

typedef enum SPICE_SDK_DANEVO_LIGHTS {
    DANEVO_Light_TitleR,
    DANEVO_Light_TitleG,
    DANEVO_Light_TitleB,
    DANEVO_Light_SideUpperLeftR,
    DANEVO_Light_SideUpperLeftG,
    DANEVO_Light_SideUpperLeftB,
    DANEVO_Light_SideUpperRightR,
    DANEVO_Light_SideUpperRightG,
    DANEVO_Light_SideUpperRightB,
    DANEVO_Light_P1Start,
    DANEVO_Light_P1LRButton,
    DANEVO_Light_P2Start,
    DANEVO_Light_P2LRButton,
    DANEVO_Light_SideLowerLeft1R,
    DANEVO_Light_SideLowerLeft1G,
    DANEVO_Light_SideLowerLeft1B,
    DANEVO_Light_SideLowerLeft2R,
    DANEVO_Light_SideLowerLeft2G,
    DANEVO_Light_SideLowerLeft2B,
    DANEVO_Light_SideLowerLeft3R,
    DANEVO_Light_SideLowerLeft3G,
    DANEVO_Light_SideLowerLeft3B,
    DANEVO_Light_SideLowerRight1R,
    DANEVO_Light_SideLowerRight1G,
    DANEVO_Light_SideLowerRight1B,
    DANEVO_Light_SideLowerRight2R,
    DANEVO_Light_SideLowerRight2G,
    DANEVO_Light_SideLowerRight2B,
    DANEVO_Light_SideLowerRight3R,
    DANEVO_Light_SideLowerRight3G,
    DANEVO_Light_SideLowerRight3B,
} SPICE_SDK_DANEVO_LIGHTS;

// GitaDora

typedef enum SPICE_SDK_GITADORA_BUTTONS {
    GITADORA_Button_Service,
    GITADORA_Button_Test,
    GITADORA_Button_Coin,
    GITADORA_Button_Headphone,
    GITADORA_Button_GuitarP1Start,
    GITADORA_Button_GuitarP1Up,
    GITADORA_Button_GuitarP1Down,
    GITADORA_Button_GuitarP1Left,
    GITADORA_Button_GuitarP1Right,
    GITADORA_Button_GuitarP1Help,
    GITADORA_Button_GuitarP1Effect1,
    GITADORA_Button_GuitarP1Effect2,
    GITADORA_Button_GuitarP1Effect3,
    GITADORA_Button_GuitarP1EffectPedal,
    GITADORA_Button_GuitarP1ButtonExtra1,
    GITADORA_Button_GuitarP1ButtonExtra2,
    GITADORA_Button_GuitarP1PickUp,
    GITADORA_Button_GuitarP1PickDown,
    GITADORA_Button_GuitarP1R,
    GITADORA_Button_GuitarP1G,
    GITADORA_Button_GuitarP1B,
    GITADORA_Button_GuitarP1Y,
    GITADORA_Button_GuitarP1P,
    GITADORA_Button_GuitarP1KnobUp,
    GITADORA_Button_GuitarP1KnobDown,
    GITADORA_Button_GuitarP1WailUp,
    GITADORA_Button_GuitarP1WailDown,
    GITADORA_Button_GuitarP2Start,
    GITADORA_Button_GuitarP2Up,
    GITADORA_Button_GuitarP2Down,
    GITADORA_Button_GuitarP2Left,
    GITADORA_Button_GuitarP2Right,
    GITADORA_Button_GuitarP2Help,
    GITADORA_Button_GuitarP2Effect1,
    GITADORA_Button_GuitarP2Effect2,
    GITADORA_Button_GuitarP2Effect3,
    GITADORA_Button_GuitarP2EffectPedal,
    GITADORA_Button_GuitarP2ButtonExtra1,
    GITADORA_Button_GuitarP2ButtonExtra2,
    GITADORA_Button_GuitarP2PickUp,
    GITADORA_Button_GuitarP2PickDown,
    GITADORA_Button_GuitarP2R,
    GITADORA_Button_GuitarP2G,
    GITADORA_Button_GuitarP2B,
    GITADORA_Button_GuitarP2Y,
    GITADORA_Button_GuitarP2P,
    GITADORA_Button_GuitarP2KnobUp,
    GITADORA_Button_GuitarP2KnobDown,
    GITADORA_Button_GuitarP2WailUp,
    GITADORA_Button_GuitarP2WailDown,
    GITADORA_Button_DrumStart,
    GITADORA_Button_DrumUp,
    GITADORA_Button_DrumDown,
    GITADORA_Button_DrumLeft,
    GITADORA_Button_DrumRight,
    GITADORA_Button_DrumHelp,
    GITADORA_Button_DrumButtonExtra1,
    GITADORA_Button_DrumButtonExtra2,
    GITADORA_Button_DrumLeftCymbal,
    GITADORA_Button_DrumHiHat,
    GITADORA_Button_DrumLeftPedal,
    GITADORA_Button_DrumSnare,
    GITADORA_Button_DrumHiTom,
    GITADORA_Button_DrumBassPedal,
    GITADORA_Button_DrumLowTom,
    GITADORA_Button_DrumFloorTom,
    GITADORA_Button_DrumRightCymbal,
    GITADORA_Button_DrumHiHatClosed,
    GITADORA_Button_DrumHiHatHalfOpen
} SPICE_SDK_GITADORA_BUTTONS;

typedef enum SPICE_SDK_GITADORA_ANALOGS {
    GITADORA_Analog_GuitarP1WailX,
    GITADORA_Analog_GuitarP1WailY,
    GITADORA_Analog_GuitarP1WailZ,
    GITADORA_Analog_GuitarP1Knob,
    GITADORA_Analog_GuitarP2WailX,
    GITADORA_Analog_GuitarP2WailY,
    GITADORA_Analog_GuitarP2WailZ,
    GITADORA_Analog_GuitarP2Knob
} SPICE_SDK_GITADORA_ANALOGS;

typedef enum SPICE_SDK_GITADORA_LIGHTS {
    GITADORA_LIGHT_GuitarP1Motor,
    GITADORA_LIGHT_GuitarP2Motor,

    // P1
    GITADORA_LIGHT_P1MenuStart,
    // DX only
    GITADORA_LIGHT_P1MenuUpDown,
    GITADORA_LIGHT_P1MenuLeftRight,
    GITADORA_LIGHT_P1MenuHelp,

    // P2
    GITADORA_LIGHT_P2MenuStart,
    // DX only
    GITADORA_LIGHT_P2MenuUpDown,
    GITADORA_LIGHT_P2MenuLeftRight,
    GITADORA_LIGHT_P2MenuHelp,

    // drums
    GITADORA_LIGHT_DrumLeftCymbal,
    GITADORA_LIGHT_DrumHiHat,
    GITADORA_LIGHT_DrumSnare,
    GITADORA_LIGHT_DrumHighTom,
    GITADORA_LIGHT_DrumLowTom,
    GITADORA_LIGHT_DrumFloorTom,
    GITADORA_LIGHT_DrumRightCymbal,

    // drum woofer
    GITADORA_LIGHT_DrumWooferR,
    GITADORA_LIGHT_DrumWooferG,
    GITADORA_LIGHT_DrumWooferB,

    // drum stage, DX only
    GITADORA_LIGHT_DrumStageR,
    GITADORA_LIGHT_DrumStageG,
    GITADORA_LIGHT_DrumStageB,

    // main spotlights, DX only
    GITADORA_LIGHT_SpotFrontLeft,
    GITADORA_LIGHT_SpotFrontRight,
    GITADORA_LIGHT_SpotCenterLeft,
    GITADORA_LIGHT_SpotCenterRight,

    // drum rear spotlights, DX only
    GITADORA_LIGHT_DrumSpotRearLeft,
    GITADORA_LIGHT_DrumSpotRearRight,

    // guitar center lower RGB, DX only
    GITADORA_LIGHT_GuitarLowerLeftR,
    GITADORA_LIGHT_GuitarLowerLeftG,
    GITADORA_LIGHT_GuitarLowerLeftB,
    GITADORA_LIGHT_GuitarLowerRightR,
    GITADORA_LIGHT_GuitarLowerRightG,
    GITADORA_LIGHT_GuitarLowerRightB,

    // guitar left speaker, DX only
    GITADORA_LIGHT_GuitarLeftSpeakerUpperR,
    GITADORA_LIGHT_GuitarLeftSpeakerUpperG,
    GITADORA_LIGHT_GuitarLeftSpeakerUpperB,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpLeftR,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpLeftG,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpLeftB,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpRightR,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpRightG,
    GITADORA_LIGHT_GuitarLeftSpeakerMidUpRightB,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowLeftR,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowLeftG,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowLeftB,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowRightR,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowRightG,
    GITADORA_LIGHT_GuitarLeftSpeakerMidLowRightB,
    GITADORA_LIGHT_GuitarLeftSpeakerLowerR,
    GITADORA_LIGHT_GuitarLeftSpeakerLowerG,
    GITADORA_LIGHT_GuitarLeftSpeakerLowerB,

    // guitar right speaker, DX only
    GITADORA_LIGHT_GuitarRightSpeakerUpperR,
    GITADORA_LIGHT_GuitarRightSpeakerUpperG,
    GITADORA_LIGHT_GuitarRightSpeakerUpperB,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpLeftR,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpLeftG,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpLeftB,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpRightR,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpRightG,
    GITADORA_LIGHT_GuitarRightSpeakerMidUpRightB,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowLeftR,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowLeftG,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowLeftB,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowRightR,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowRightG,
    GITADORA_LIGHT_GuitarRightSpeakerMidLowRightB,
    GITADORA_LIGHT_GuitarRightSpeakerLowerR,
    GITADORA_LIGHT_GuitarRightSpeakerLowerG,
    GITADORA_LIGHT_GuitarRightSpeakerLowerB,

    // arena model (common for both guitar and drum)
    GITADORA_LIGHT_ArenaTitleAvgR,
    GITADORA_LIGHT_ArenaTitleAvgG,
    GITADORA_LIGHT_ArenaTitleAvgB,
    GITADORA_LIGHT_ArenaWooferR,
    GITADORA_LIGHT_ArenaWooferG,
    GITADORA_LIGHT_ArenaWooferB,
    GITADORA_LIGHT_ArenaCardR,
    GITADORA_LIGHT_ArenaCardG,
    GITADORA_LIGHT_ArenaCardB,
} SPICE_SDK_GITADORA_LIGHTS;

typedef enum SPICE_SDK_IIDX_BUTTONS {
    IIDX_Button_Service,
    IIDX_Button_Test,
    IIDX_Button_CoinMech,
    IIDX_Button_P1_1,
    IIDX_Button_P1_2,
    IIDX_Button_P1_3,
    IIDX_Button_P1_4,
    IIDX_Button_P1_5,
    IIDX_Button_P1_6,
    IIDX_Button_P1_7,
    IIDX_Button_P1_TTPlus,
    IIDX_Button_P1_TTMinus,
    IIDX_Button_P1_TTPlusMinus,
    IIDX_Button_P1_TTPlusMinusAlt,
    IIDX_Button_P1_Start,
    IIDX_Button_P2_1,
    IIDX_Button_P2_2,
    IIDX_Button_P2_3,
    IIDX_Button_P2_4,
    IIDX_Button_P2_5,
    IIDX_Button_P2_6,
    IIDX_Button_P2_7,
    IIDX_Button_P2_TTPlus,
    IIDX_Button_P2_TTMinus,
    IIDX_Button_P2_TTPlusMinus,
    IIDX_Button_P2_TTPlusMinusAlt,
    IIDX_Button_P2_Start,
    IIDX_Button_Effect,
    IIDX_Button_VEFX,
    IIDX_Button_P1_Headphone,
    IIDX_Button_P2_Headphone,
} SPICE_SDK_IIDX_BUTTONS;

typedef enum SPICE_SDK_IIDX_ANALOGS {
    IIDX_Analog_TT_P1,
    IIDX_Analog_TT_P2,
    IIDX_Analog_VEFX,
    IIDX_Analog_LowEQ,
    IIDX_Analog_HiEQ,
    IIDX_Analog_Filter,
    IIDX_Analog_PlayVolume
} SPICE_SDK_IIDX_ANALOGS;

typedef enum SPICE_SDK_IIDX_LIGHTS {
    IIDX_Light_P1_1,
    IIDX_Light_P1_2,
    IIDX_Light_P1_3,
    IIDX_Light_P1_4,
    IIDX_Light_P1_5,
    IIDX_Light_P1_6,
    IIDX_Light_P1_7,
    IIDX_Light_P2_1,
    IIDX_Light_P2_2,
    IIDX_Light_P2_3,
    IIDX_Light_P2_4,
    IIDX_Light_P2_5,
    IIDX_Light_P2_6,
    IIDX_Light_P2_7,
    IIDX_Light_P1_Start,
    IIDX_Light_P2_Start,
    IIDX_Light_VEFX,
    IIDX_Light_Effect,
    IIDX_Light_SpotLight1,
    IIDX_Light_SpotLight2,
    IIDX_Light_SpotLight3,
    IIDX_Light_SpotLight4,
    IIDX_Light_SpotLight5,
    IIDX_Light_SpotLight6,
    IIDX_Light_SpotLight7,
    IIDX_Light_SpotLight8,
    IIDX_Light_NeonLamp,
    IIDX_Light_WooferR,
    IIDX_Light_WooferG,
    IIDX_Light_WooferB,
    IIDX_Light_ICCR_P1_R,
    IIDX_Light_ICCR_P1_G,
    IIDX_Light_ICCR_P1_B,
    IIDX_Light_ICCR_P2_R,
    IIDX_Light_ICCR_P2_G,
    IIDX_Light_ICCR_P2_B,
    IIDX_Light_TT_P1_R,
    IIDX_Light_TT_P1_G,
    IIDX_Light_TT_P1_B,
    IIDX_Light_TT_P2_R,
    IIDX_Light_TT_P2_G,
    IIDX_Light_TT_P2_B,
    IIDX_Light_TT_P1_Resistance,
    IIDX_Light_TT_P2_Resistance,
    IIDX_Light_StageLeftAvgR,
    IIDX_Light_StageLeftAvgG,
    IIDX_Light_StageLeftAvgB,
    IIDX_Light_StageRightAvgR,
    IIDX_Light_StageRightAvgG,
    IIDX_Light_StageRightAvgB,
    IIDX_Light_CabinetLeftAvgR,
    IIDX_Light_CabinetLeftAvgG,
    IIDX_Light_CabinetLeftAvgB,
    IIDX_Light_CabinetRightAvgR,
    IIDX_Light_CabinetRightAvgG,
    IIDX_Light_CabinetRightAvgB,
    IIDX_Light_ControlPanelUnderAvgR,
    IIDX_Light_ControlPanelUnderAvgG,
    IIDX_Light_ControlPanelUnderAvgB,
    IIDX_Light_CeilingLeftAvgR,
    IIDX_Light_CeilingLeftAvgG,
    IIDX_Light_CeilingLeftAvgB,
    IIDX_Light_TitleLeftAvgR,
    IIDX_Light_TitleLeftAvgG,
    IIDX_Light_TitleLeftAvgB,
    IIDX_Light_TitleRightAvgR,
    IIDX_Light_TitleRightAvgG,
    IIDX_Light_TitleRightAvgB,
    IIDX_Light_CeilingRightAvgR,
    IIDX_Light_CeilingRightAvgG,
    IIDX_Light_CeilingRightAvgB,
    IIDX_Light_TouchPanelLeftAvgR,
    IIDX_Light_TouchPanelLeftAvgG,
    IIDX_Light_TouchPanelLeftAvgB,
    IIDX_Light_TouchPanelRightAvgR,
    IIDX_Light_TouchPanelRightAvgG,
    IIDX_Light_TouchPanelRightAvgB,
    IIDX_Light_SidePanelLeftInnerAvgR,
    IIDX_Light_SidePanelLeftInnerAvgG,
    IIDX_Light_SidePanelLeftInnerAvgB,
    IIDX_Light_SidePanelLeftOuterAvgR,
    IIDX_Light_SidePanelLeftOuterAvgG,
    IIDX_Light_SidePanelLeftOuterAvgB,
    IIDX_Light_SidePanelLeftAvgR,
    IIDX_Light_SidePanelLeftAvgG,
    IIDX_Light_SidePanelLeftAvgB,
    IIDX_Light_SidePanelRightOuterAvgR,
    IIDX_Light_SidePanelRightOuterAvgG,
    IIDX_Light_SidePanelRightOuterAvgB,
    IIDX_Light_SidePanelRightInnerAvgR,
    IIDX_Light_SidePanelRightInnerAvgG,
    IIDX_Light_SidePanelRightInnerAvgB,
    IIDX_Light_SidePanelRightAvgR,
    IIDX_Light_SidePanelRightAvgG,
    IIDX_Light_SidePanelRightAvgB,
} SPICE_SDK_IIDX_LIGHTS;

typedef enum SPICE_SDK_JUBEAT_BUTTONS {
    JB_Button_Service,
    JB_Button_Test,
    JB_Button_CoinMech,
    JB_Button_Button1,
    JB_Button_Button2,
    JB_Button_Button3,
    JB_Button_Button4,
    JB_Button_Button5,
    JB_Button_Button6,
    JB_Button_Button7,
    JB_Button_Button8,
    JB_Button_Button9,
    JB_Button_Button10,
    JB_Button_Button11,
    JB_Button_Button12,
    JB_Button_Button13,
    JB_Button_Button14,
    JB_Button_Button15,
    JB_Button_Button16,
} SPICE_SDK_JUBEAT_BUTTONS;

typedef enum SPICE_SDK_JUBEAT_LIGHTS {
    JB_Light_PANEL_FRONT_R,
    JB_Light_PANEL_FRONT_G,
    JB_Light_PANEL_FRONT_B,
    JB_Light_PANEL_TITLE_R,
    JB_Light_PANEL_TITLE_G,
    JB_Light_PANEL_TITLE_B,
    JB_Light_PANEL_TOP_R,
    JB_Light_PANEL_TOP_G,
    JB_Light_PANEL_TOP_B,
    JB_Light_PANEL_LEFT_R,
    JB_Light_PANEL_LEFT_G,
    JB_Light_PANEL_LEFT_B,
    JB_Light_PANEL_RIGHT_R,
    JB_Light_PANEL_RIGHT_G,
    JB_Light_PANEL_RIGHT_B,
    JB_Light_PANEL_WOOFER_R,
    JB_Light_PANEL_WOOFER_G,
    JB_Light_PANEL_WOOFER_B,
} SPICE_SDK_JUBEAT_LIGHTS;


// Metal Gear

typedef enum SPICE_SDK_METAL_GEAR_BUTTONS {
    MGA_Button_Service,
    MGA_Button_Test,
    MGA_Button_CoinMech,
    MGA_Button_Start,
    MGA_Button_Top,
    MGA_Button_FrontTop,
    MGA_Button_FrontBottom,
    MGA_Button_SideLeft,
    MGA_Button_SideRight,
    MGA_Button_SideLever,
    MGA_Button_TriggerButton,
    MGA_Button_SwitchButton,
    MGA_Button_JoyForwards,
    MGA_Button_JoyBackwards,
    MGA_Button_JoyLeft,
    MGA_Button_JoyRight,
} SPICE_SDK_METAL_GEAR_BUTTONS;

typedef enum SPICE_SDK_METAL_GEAR_ANALOGS {
    MGA_Analog_JoyX,
    MGA_Analog_JoyY,
} SPICE_SDK_METAL_GEAR_ANALOGS;

typedef enum SPICE_SDK_METAL_GEAR_LIGHTS {
    MGA_Light_Start,
    MGA_Light_LeftR,
    MGA_Light_LeftG,
    MGA_Light_LeftB,
    MGA_Light_RightR,
    MGA_Light_RightG,
    MGA_Light_RightB,
    MGA_Light_GunR,
    MGA_Light_GunG,
    MGA_Light_GunB,
    MGA_Light_GunVibration,
} SPICE_SDK_METAL_GEAR_LIGHTS;

// Museca

typedef enum SPICE_SDK_MUSECA_BUTTONS {
    MUSECA_Button_Service,
    MUSECA_Button_Test,
    MUSECA_Button_Start,
    MUSECA_Button_Disk1Minus,
    MUSECA_Button_Disk1Plus,
    MUSECA_Button_Disk1Press,
    MUSECA_Button_Disk2Minus,
    MUSECA_Button_Disk2Plus,
    MUSECA_Button_Disk2Press,
    MUSECA_Button_Disk3Minus,
    MUSECA_Button_Disk3Plus,
    MUSECA_Button_Disk3Press,
    MUSECA_Button_Disk4Minus,
    MUSECA_Button_Disk4Plus,
    MUSECA_Button_Disk4Press,
    MUSECA_Button_Disk5Minus,
    MUSECA_Button_Disk5Plus,
    MUSECA_Button_Disk5Press,
    MUSECA_Button_FootPedal,
    MUSECA_Button_AnalogSlowdown,
} SPICE_SDK_MUSECA_BUTTONS;

typedef enum SPICE_SDK_MUSECA_ANALOGS {
    MUSECA_Analog_Disk1,
    MUSECA_Analog_Disk2,
    MUSECA_Analog_Disk3,
    MUSECA_Analog_Disk4,
    MUSECA_Analog_Disk5,
} SPICE_SDK_MUSECA_ANALOGS;

typedef enum SPICE_SDK_MUSECA_LIGHTS {
    MUSECA_Light_Start,
    MUSECA_Light_Keypad,
    MUSECA_Light_TitleR,
    MUSECA_Light_TitleG,
    MUSECA_Light_TitleB,
    MUSECA_Light_SideR,
    MUSECA_Light_SideG,
    MUSECA_Light_SideB,
    MUSECA_Light_Spinner1R,
    MUSECA_Light_Spinner1G,
    MUSECA_Light_Spinner1B,
    MUSECA_Light_Spinner2R,
    MUSECA_Light_Spinner2G,
    MUSECA_Light_Spinner2B,
    MUSECA_Light_Spinner3R,
    MUSECA_Light_Spinner3G,
    MUSECA_Light_Spinner3B,
    MUSECA_Light_Spinner4R,
    MUSECA_Light_Spinner4G,
    MUSECA_Light_Spinner4B,
    MUSECA_Light_Spinner5R,
    MUSECA_Light_Spinner5G,
    MUSECA_Light_Spinner5B,
    MUSECA_Light_UnderLED1R,
    MUSECA_Light_UnderLED1G,
    MUSECA_Light_UnderLED1B,
    MUSECA_Light_UnderLED2R,
    MUSECA_Light_UnderLED2G,
    MUSECA_Light_UnderLED2B,
    MUSECA_Light_UnderLED3R,
    MUSECA_Light_UnderLED3G,
    MUSECA_Light_UnderLED3B,
} SPICE_SDK_MUSECA_LIGHTS;

// Nostalgia

typedef enum SPICE_SDK_NOSTALGIA_BUTTONS {
    NOST_Button_Service,
    NOST_Button_Test,
    NOST_Button_CoinMech,
    NOST_Button_Key1,
    NOST_Button_Key2,
    NOST_Button_Key3,
    NOST_Button_Key4,
    NOST_Button_Key5,
    NOST_Button_Key6,
    NOST_Button_Key7,
    NOST_Button_Key8,
    NOST_Button_Key9,
    NOST_Button_Key10,
    NOST_Button_Key11,
    NOST_Button_Key12,
    NOST_Button_Key13,
    NOST_Button_Key14,
    NOST_Button_Key15,
    NOST_Button_Key16,
    NOST_Button_Key17,
    NOST_Button_Key18,
    NOST_Button_Key19,
    NOST_Button_Key20,
    NOST_Button_Key21,
    NOST_Button_Key22,
    NOST_Button_Key23,
    NOST_Button_Key24,
    NOST_Button_Key25,
    NOST_Button_Key26,
    NOST_Button_Key27,
    NOST_Button_Key28,
    NOST_Button_Key1Soft,
    NOST_Button_Key2Soft,
    NOST_Button_Key3Soft,
    NOST_Button_Key4Soft,
    NOST_Button_Key5Soft,
    NOST_Button_Key6Soft,
    NOST_Button_Key7Soft,
    NOST_Button_Key8Soft,
    NOST_Button_Key9Soft,
    NOST_Button_Key10Soft,
    NOST_Button_Key11Soft,
    NOST_Button_Key12Soft,
    NOST_Button_Key13Soft,
    NOST_Button_Key14Soft,
    NOST_Button_Key15Soft,
    NOST_Button_Key16Soft,
    NOST_Button_Key17Soft,
    NOST_Button_Key18Soft,
    NOST_Button_Key19Soft,
    NOST_Button_Key20Soft,
    NOST_Button_Key21Soft,
    NOST_Button_Key22Soft,
    NOST_Button_Key23Soft,
    NOST_Button_Key24Soft,
    NOST_Button_Key25Soft,
    NOST_Button_Key26Soft,
    NOST_Button_Key27Soft,
    NOST_Button_Key28Soft,
    NOST_Button_Key1Medium,
    NOST_Button_Key2Medium,
    NOST_Button_Key3Medium,
    NOST_Button_Key4Medium,
    NOST_Button_Key5Medium,
    NOST_Button_Key6Medium,
    NOST_Button_Key7Medium,
    NOST_Button_Key8Medium,
    NOST_Button_Key9Medium,
    NOST_Button_Key10Medium,
    NOST_Button_Key11Medium,
    NOST_Button_Key12Medium,
    NOST_Button_Key13Medium,
    NOST_Button_Key14Medium,
    NOST_Button_Key15Medium,
    NOST_Button_Key16Medium,
    NOST_Button_Key17Medium,
    NOST_Button_Key18Medium,
    NOST_Button_Key19Medium,
    NOST_Button_Key20Medium,
    NOST_Button_Key21Medium,
    NOST_Button_Key22Medium,
    NOST_Button_Key23Medium,
    NOST_Button_Key24Medium,
    NOST_Button_Key25Medium,
    NOST_Button_Key26Medium,
    NOST_Button_Key27Medium,
    NOST_Button_Key28Medium,
    NOST_Button_Key1Hard,
    NOST_Button_Key2Hard,
    NOST_Button_Key3Hard,
    NOST_Button_Key4Hard,
    NOST_Button_Key5Hard,
    NOST_Button_Key6Hard,
    NOST_Button_Key7Hard,
    NOST_Button_Key8Hard,
    NOST_Button_Key9Hard,
    NOST_Button_Key10Hard,
    NOST_Button_Key11Hard,
    NOST_Button_Key12Hard,
    NOST_Button_Key13Hard,
    NOST_Button_Key14Hard,
    NOST_Button_Key15Hard,
    NOST_Button_Key16Hard,
    NOST_Button_Key17Hard,
    NOST_Button_Key18Hard,
    NOST_Button_Key19Hard,
    NOST_Button_Key20Hard,
    NOST_Button_Key21Hard,
    NOST_Button_Key22Hard,
    NOST_Button_Key23Hard,
    NOST_Button_Key24Hard,
    NOST_Button_Key25Hard,
    NOST_Button_Key26Hard,
    NOST_Button_Key27Hard,
    NOST_Button_Key28Hard,
    NOST_Button_PokeNextPage,
    NOST_Button_PokePrevPage,
    NOST_Button_PokeConfirm,
    NOST_Button_PokeBack,
    NOST_Button_PokeSong1,
    NOST_Button_PokeSong2,
    NOST_Button_PokeSong3,
    NOST_Button_PokeSong4,
    NOST_Button_PokeSong5,
    NOST_Button_PokeSong6,
    NOST_Button_PokeDifficulty1,
    NOST_Button_PokeDifficulty2,
    NOST_Button_PokeDifficulty3,
    NOST_Button_PokeDifficulty4,
} SPICE_SDK_NOSTALGIA_BUTTONS;

typedef enum SPICE_SDK_NOSTALGIA_ANALOGS {
    NOST_Analog_Key1,
    NOST_Analog_Key2,
    NOST_Analog_Key3,
    NOST_Analog_Key4,
    NOST_Analog_Key5,
    NOST_Analog_Key6,
    NOST_Analog_Key7,
    NOST_Analog_Key8,
    NOST_Analog_Key9,
    NOST_Analog_Key10,
    NOST_Analog_Key11,
    NOST_Analog_Key12,
    NOST_Analog_Key13,
    NOST_Analog_Key14,
    NOST_Analog_Key15,
    NOST_Analog_Key16,
    NOST_Analog_Key17,
    NOST_Analog_Key18,
    NOST_Analog_Key19,
    NOST_Analog_Key20,
    NOST_Analog_Key21,
    NOST_Analog_Key22,
    NOST_Analog_Key23,
    NOST_Analog_Key24,
    NOST_Analog_Key25,
    NOST_Analog_Key26,
    NOST_Analog_Key27,
    NOST_Analog_Key28,
} SPICE_SDK_NOSTALGIA_ANALOGS;

typedef enum SPICE_SDK_NOSTALGIA_LIGHTS {
    NOST_Light_TitleR,
    NOST_Light_TitleG,
    NOST_Light_TitleB,
    NOST_Light_BottomR,
    NOST_Light_BottomG,
    NOST_Light_BottomB,
    NOST_Light_Key1R,
    NOST_Light_Key1G,
    NOST_Light_Key1B,
    NOST_Light_Key2R,
    NOST_Light_Key2G,
    NOST_Light_Key2B,
    NOST_Light_Key3R,
    NOST_Light_Key3G,
    NOST_Light_Key3B,
    NOST_Light_Key4R,
    NOST_Light_Key4G,
    NOST_Light_Key4B,
    NOST_Light_Key5R,
    NOST_Light_Key5G,
    NOST_Light_Key5B,
    NOST_Light_Key6R,
    NOST_Light_Key6G,
    NOST_Light_Key6B,
    NOST_Light_Key7R,
    NOST_Light_Key7G,
    NOST_Light_Key7B,
    NOST_Light_Key8R,
    NOST_Light_Key8G,
    NOST_Light_Key8B,
    NOST_Light_Key9R,
    NOST_Light_Key9G,
    NOST_Light_Key9B,
    NOST_Light_Key10R,
    NOST_Light_Key10G,
    NOST_Light_Key10B,
    NOST_Light_Key11R,
    NOST_Light_Key11G,
    NOST_Light_Key11B,
    NOST_Light_Key12R,
    NOST_Light_Key12G,
    NOST_Light_Key12B,
    NOST_Light_Key13R,
    NOST_Light_Key13G,
    NOST_Light_Key13B,
    NOST_Light_Key14R,
    NOST_Light_Key14G,
    NOST_Light_Key14B,
    NOST_Light_Key15R,
    NOST_Light_Key15G,
    NOST_Light_Key15B,
    NOST_Light_Key16R,
    NOST_Light_Key16G,
    NOST_Light_Key16B,
    NOST_Light_Key17R,
    NOST_Light_Key17G,
    NOST_Light_Key17B,
    NOST_Light_Key18R,
    NOST_Light_Key18G,
    NOST_Light_Key18B,
    NOST_Light_Key19R,
    NOST_Light_Key19G,
    NOST_Light_Key19B,
    NOST_Light_Key20R,
    NOST_Light_Key20G,
    NOST_Light_Key20B,
    NOST_Light_Key21R,
    NOST_Light_Key21G,
    NOST_Light_Key21B,
    NOST_Light_Key22R,
    NOST_Light_Key22G,
    NOST_Light_Key22B,
    NOST_Light_Key23R,
    NOST_Light_Key23G,
    NOST_Light_Key23B,
    NOST_Light_Key24R,
    NOST_Light_Key24G,
    NOST_Light_Key24B,
    NOST_Light_Key25R,
    NOST_Light_Key25G,
    NOST_Light_Key25B,
    NOST_Light_Key26R,
    NOST_Light_Key26G,
    NOST_Light_Key26B,
    NOST_Light_Key27R,
    NOST_Light_Key27G,
    NOST_Light_Key27B,
    NOST_Light_Key28R,
    NOST_Light_Key28G,
    NOST_Light_Key28B,
} SPICE_SDK_NOSTALGIA_LIGHTS;

// Pop'n Music

typedef enum SPICE_SDK_POPN_BUTTONS {
    POPN_Button_Service,
    POPN_Button_Test,
    POPN_Button_CoinMech,
    POPN_Button_Headphone,
    POPN_Button_Button1,
    POPN_Button_Button2,
    POPN_Button_Button3,
    POPN_Button_Button4,
    POPN_Button_Button5,
    POPN_Button_Button6,
    POPN_Button_Button7,
    POPN_Button_Button8,
    POPN_Button_Button9,
    POPN_Button_RedPop,
    POPN_Button_BluePop,
} SPICE_SDK_POPN_BUTTONS;

typedef enum SPICE_SDK_POPN_LIGHTS {
    POPN_Light_Button1,
    POPN_Light_Button2,
    POPN_Light_Button3,
    POPN_Light_Button4,
    POPN_Light_Button5,
    POPN_Light_Button6,
    POPN_Light_Button7,
    POPN_Light_Button8,
    POPN_Light_Button9,
    POPN_Light_HiLamp1,
    POPN_Light_HiLamp2,
    POPN_Light_HiLamp3,
    POPN_Light_HiLamp4,
    POPN_Light_HiLamp5,
    POPN_Light_LeftLamp1,
    POPN_Light_LeftLamp2,
    POPN_Light_RightLamp1,
    POPN_Light_RightLamp2,
    POPN_Light_TopLED1,
    POPN_Light_TopLED2,
    POPN_Light_TopLED3,
    POPN_Light_TopLED4,
    POPN_Light_TopLED5,
    POPN_Light_TopLED6,
    POPN_Light_TopLED7,
    POPN_Light_TopLED8,
    POPN_Light_TopLED9,
    POPN_Light_TopLED10,
    POPN_Light_TopLED11,
    POPN_Light_TopLED12,
    POPN_Light_TopLED13,
    POPN_Light_TopLED14,
    POPN_Light_TopLED15,
    POPN_Light_TopLED16,
    POPN_Light_TopLED17,
    POPN_Light_TopLED18,
    POPN_Light_TopLED19,
    POPN_Light_TopLED20,
    POPN_Light_TopLED21,
    POPN_Light_TopLED22,
    POPN_Light_TopLED23,
    POPN_Light_TopLED24,
    POPN_Light_TopLED25,
    POPN_Light_TopLED26,
    POPN_Light_TopLED27,
    POPN_Light_TopLED28,
    POPN_Light_TopLED29,
    POPN_Light_TopLED30,
    POPN_Light_TopLED31,
    POPN_Light_TopLED32,
    POPN_Light_TopLED_R,
    POPN_Light_TopLED_G,
    POPN_Light_TopLED_B,
    POPN_Light_WooferLED_R,
    POPN_Light_WooferLED_G,
    POPN_Light_WooferLED_B,
    POPN_Light_PikaButton1_R,
    POPN_Light_PikaButton1_G,
    POPN_Light_PikaButton1_B,
    POPN_Light_PikaButton2_R,
    POPN_Light_PikaButton2_G,
    POPN_Light_PikaButton2_B,
    POPN_Light_PikaButton3_R,
    POPN_Light_PikaButton3_G,
    POPN_Light_PikaButton3_B,
    POPN_Light_PikaButton4_R,
    POPN_Light_PikaButton4_G,
    POPN_Light_PikaButton4_B,
    POPN_Light_PikaButton5_R,
    POPN_Light_PikaButton5_G,
    POPN_Light_PikaButton5_B,
    POPN_Light_PikaButton6_R,
    POPN_Light_PikaButton6_G,
    POPN_Light_PikaButton6_B,
    POPN_Light_PikaButton7_R,
    POPN_Light_PikaButton7_G,
    POPN_Light_PikaButton7_B,
    POPN_Light_PikaButton8_R,
    POPN_Light_PikaButton8_G,
    POPN_Light_PikaButton8_B,
    POPN_Light_PikaButton9_R,
    POPN_Light_PikaButton9_G,
    POPN_Light_PikaButton9_B,
    POPN_Light_RedPopKun_R,
    POPN_Light_RedPopKun_G,
    POPN_Light_RedPopKun_B,
    POPN_Light_BluePopKun_R,
    POPN_Light_BluePopKun_G,
    POPN_Light_BluePopKun_B,
    POPN_Light_IC_Card_R,
    POPN_Light_IC_Card_G,
    POPN_Light_IC_Card_B,
    POPN_Light_Speaker_R,
    POPN_Light_Speaker_G,
    POPN_Light_Speaker_B,
    POPN_Light_Monitor_R,
    POPN_Light_Monitor_G,
    POPN_Light_Monitor_B,
    POPN_Light_ControlPanel_R,
    POPN_Light_ControlPanel_G,
    POPN_Light_ControlPanel_B,
    POPN_Light_Cabinet_R,
    POPN_Light_Cabinet_G,
    POPN_Light_Cabinet_B,
} SPICE_SDK_POPN_LIGHTS;

// Quiz Magic Academy

typedef enum SPICE_SDK_QMA_BUTTONS {
    QMA_Button_Service,
    QMA_Button_Test,
    QMA_Button_Select,
    QMA_Button_CoinMech,
    QMA_Button_Select1,
    QMA_Button_Select2,
    QMA_Button_Left,
    QMA_Button_Right,
    QMA_Button_OK,
    QMA_Button_TouchKey1,
    QMA_Button_TouchKey2,
    QMA_Button_TouchKey3,
    QMA_Button_TouchKey4,
    QMA_Button_TouchKey5,
    QMA_Button_TouchKey6,
    QMA_Button_TouchKey7,
    QMA_Button_TouchKey8,
    QMA_Button_TouchKey9,
    QMA_Button_TouchKey0,
    QMA_Button_TouchKeyDash,
    QMA_Button_TouchKeyQ,
    QMA_Button_TouchKeyW,
    QMA_Button_TouchKeyE,
    QMA_Button_TouchKeyR,
    QMA_Button_TouchKeyT,
    QMA_Button_TouchKeyY,
    QMA_Button_TouchKeyU,
    QMA_Button_TouchKeyI,
    QMA_Button_TouchKeyO,
    QMA_Button_TouchKeyP,
    QMA_Button_TouchKeyA,
    QMA_Button_TouchKeyS,
    QMA_Button_TouchKeyD,
    QMA_Button_TouchKeyF,
    QMA_Button_TouchKeyG,
    QMA_Button_TouchKeyH,
    QMA_Button_TouchKeyJ,
    QMA_Button_TouchKeyK,
    QMA_Button_TouchKeyL,
    QMA_Button_TouchKeyZ,
    QMA_Button_TouchKeyX,
    QMA_Button_TouchKeyC,
    QMA_Button_TouchKeyV,
    QMA_Button_TouchKeyB,
    QMA_Button_TouchKeyN,
    QMA_Button_TouchKeyM,
    QMA_Button_TouchKeyBackspace,
    QMA_Button_TouchKeyEnter,
} SPICE_SDK_QMA_BUTTONS;

typedef enum SPICE_SDK_QMA_LIGHTS {
    QMA_Light_LampRed,
    QMA_Light_LampGreen,
    QMA_Light_LampBlue,
    QMA_Light_ButtonLeft,
    QMA_Light_ButtonRight,
    QMA_Light_ButtonOK,
} SPICE_SDK_QMA_LIGHTS;

// Reflec Beat

typedef enum SPICE_SDK_RB_BUTTONS {
    RB_Button_Service,
    RB_Button_Test,
} SPICE_SDK_RB_BUTTONS;

typedef enum SPICE_SDK_RB_LIGHTS {
    RB_Light_PoleR,
    RB_Light_PoleG,
    RB_Light_PoleB,
    RB_Light_EscutcheonR,
    RB_Light_EscutcheonG,
    RB_Light_EscutcheonB,
    RB_Light_WooferR,
    RB_Light_WooferG,
    RB_Light_WooferB,
    RB_Light_TitleR,
    RB_Light_TitleG,
    RB_Light_TitleB,
    RB_Light_TitleUpR,
    RB_Light_TitleUpG,
    RB_Light_TitleUpB,
} SPICE_SDK_RB_LIGHTS;

// Tenkaichi Shogikai

typedef enum SPICE_SDK_SHOGIKAI_BUTTONS {
    SHOGIKAI_Button_Service,
    SHOGIKAI_Button_Test,
    SHOGIKAI_Button_CoinMech,
    SHOGIKAI_Button_Select,
} SPICE_SDK_SHOGIKAI_BUTTONS;

typedef enum SPICE_SDK_SHOGIKAI_LIGHTS {
    SHOGIKAI_Light_Left,
    SHOGIKAI_Light_Right,
} SPICE_SDK_SHOGIKAI_LIGHTS;

// Road Fighters 3D

typedef enum SPICE_SDK_RF3D_BUTTONS {
    RF3D_Button_Service,
    RF3D_Button_Test,
    RF3D_Button_CoinMech,
    RF3D_Button_View,
    RF3D_Button_Toggle2D3D,
    RF3D_Button_LeverUp,
    RF3D_Button_LeverDown,
    RF3D_Button_LeverLeft,
    RF3D_Button_LeverRight,
    RF3D_Button_WheelLeft,
    RF3D_Button_WheelRight,
    RF3D_Button_Accelerate,
    RF3D_Button_Brake,
    RF3D_Button_AutoLeverDown,
    RF3D_Button_AutoLeverUp,
} SPICE_SDK_RF3D_BUTTONS;

typedef enum SPICE_SDK_RF3D_ANALOGS {
    RF3D_Analog_Wheel,
    RF3D_Analog_Accelerate,
    RF3D_Analog_Brake,
} SPICE_SDK_RF3D_ANALOGS;

// Steel Chronicle

typedef enum SPICE_SDK_STEEL_CHRONICLE_BUTTONS {
    SC_Button_Service,
    SC_Button_Test,
    SC_Button_CoinMech,
    SC_Button_L1,
    SC_Button_L2,
    SC_Button_LButton,
    SC_Button_R1,
    SC_Button_R2,
    SC_Button_RButton,
    SC_Button_JogLeft,
    SC_Button_JogRight,
} SPICE_SDK_STEEL_CHRONICLE_BUTTONS;

typedef enum SPICE_SDK_STEEL_CHRONICLE_ANALOGS {
    SC_Analog_LEFT_X,
    SC_Analog_LEFT_Y,
    SC_Analog_RIGHT_X,
    SC_Analog_RIGHT_Y,
} SPICE_SDK_STEEL_CHRONICLE_ANALOGS;

typedef enum SPICE_SDK_STEEL_CHRONICLE_LIGHTS {
    SC_Light_CenterRed,
    SC_Light_CenterGreen,
    SC_Light_CenterBlue,
    SC_Light_SideRed,
    SC_Light_SideGreen,
    SC_Light_SideBlue,
    SC_Light_ControllerRed,
    SC_Light_ControllerBlue,
} SPICE_SDK_STEEL_CHRONICLE_LIGHTS;

// Sound Voltex

typedef enum SPICE_SDK_SDVX_BUTTONS {
    SDVX_Button_Service,
    SDVX_Button_Test,
    SDVX_Button_CoinMech,
    SDVX_Button_BT_A,
    SDVX_Button_BT_B,
    SDVX_Button_BT_C,
    SDVX_Button_BT_D,
    SDVX_Button_FX_L,
    SDVX_Button_FX_R,
    SDVX_Button_Start,
    SDVX_Button_VOL_L_Left,
    SDVX_Button_VOL_L_Right,
    SDVX_Button_VOL_R_Left,
    SDVX_Button_VOL_R_Right,
    SDVX_Button_Headphone,
} SPICE_SDK_SDVX_BUTTONS;

typedef enum SPICE_SDK_SDVX_ANALOGS {
    SDVX_Analog_VOL_L,
    SDVX_Analog_VOL_R,
} SPICE_SDK_SDVX_ANALOGS;

typedef enum SPICE_SDK_SDVX_LIGHTS {
    SDVX_Light_BT_A,
    SDVX_Light_BT_B,
    SDVX_Light_BT_C,
    SDVX_Light_BT_D,
    SDVX_Light_FX_L,
    SDVX_Light_FX_R,
    SDVX_Light_START,
    SDVX_Light_WING_LEFT_UP_R,
    SDVX_Light_WING_LEFT_UP_G,
    SDVX_Light_WING_LEFT_UP_B,
    SDVX_Light_WING_RIGHT_UP_R,
    SDVX_Light_WING_RIGHT_UP_G,
    SDVX_Light_WING_RIGHT_UP_B,
    SDVX_Light_WING_LEFT_LOW_R,
    SDVX_Light_WING_LEFT_LOW_G,
    SDVX_Light_WING_LEFT_LOW_B,
    SDVX_Light_WING_RIGHT_LOW_R,
    SDVX_Light_WING_RIGHT_LOW_G,
    SDVX_Light_WING_RIGHT_LOW_B,
    SDVX_Light_WOOFER_R,
    SDVX_Light_WOOFER_G,
    SDVX_Light_WOOFER_B,
    SDVX_Light_CONTROLLER_R,
    SDVX_Light_CONTROLLER_G,
    SDVX_Light_CONTROLLER_B,
    SDVX_Light_GENERATOR_R,
    SDVX_Light_GENERATOR_G,
    SDVX_Light_GENERATOR_B,
    SDVX_Light_POP,
    SDVX_Light_TITLE_LEFT,
    SDVX_Light_TITLE_RIGHT,
    SDVX_Light_VOLUME_SOUND,
    SDVX_Light_VOLUME_HEADPHONE,
    SDVX_Light_VOLUME_EXTERNAL,
    SDVX_Light_VOLUME_WOOFER,
    SDVX_Light_ICCR_R,
    SDVX_Light_ICCR_G,
    SDVX_Light_ICCR_B,
    SDVX_Light_TITLE_AVG_R,
    SDVX_Light_TITLE_AVG_G,
    SDVX_Light_TITLE_AVG_B,
    SDVX_Light_UPPER_LEFT_SPEAKER_AVG_R,
    SDVX_Light_UPPER_LEFT_SPEAKER_AVG_G,
    SDVX_Light_UPPER_LEFT_SPEAKER_AVG_B,
    SDVX_Light_UPPER_RIGHT_SPEAKER_AVG_R,
    SDVX_Light_UPPER_RIGHT_SPEAKER_AVG_G,
    SDVX_Light_UPPER_RIGHT_SPEAKER_AVG_B,
    SDVX_Light_LEFT_WING_AVG_R,
    SDVX_Light_LEFT_WING_AVG_G,
    SDVX_Light_LEFT_WING_AVG_B,
    SDVX_Light_RIGHT_WING_AVG_R,
    SDVX_Light_RIGHT_WING_AVG_G,
    SDVX_Light_RIGHT_WING_AVG_B,
    SDVX_Light_LOWER_LEFT_SPEAKER_AVG_R,
    SDVX_Light_LOWER_LEFT_SPEAKER_AVG_G,
    SDVX_Light_LOWER_LEFT_SPEAKER_AVG_B,
    SDVX_Light_LOWER_RIGHT_SPEAKER_AVG_R,
    SDVX_Light_LOWER_RIGHT_SPEAKER_AVG_G,
    SDVX_Light_LOWER_RIGHT_SPEAKER_AVG_B,
    SDVX_Light_CONTROL_PANEL_AVG_R,
    SDVX_Light_CONTROL_PANEL_AVG_G,
    SDVX_Light_CONTROL_PANEL_AVG_B,
    SDVX_Light_WOOFER_AVG_R,
    SDVX_Light_WOOFER_AVG_G,
    SDVX_Light_WOOFER_AVG_B,
    SDVX_Light_V_UNIT_AVG_R,
    SDVX_Light_V_UNIT_AVG_G,
    SDVX_Light_V_UNIT_AVG_B,
} SPICE_SDK_SDVX_LIGHTS;

// Mahjong Fight Club

typedef enum SPICE_SDK_MFC_BUTTONS {
    MFC_Button_Select,
    MFC_Button_Service,
    MFC_Button_Test,
    MFC_Button_Coin,
    MFC_Button_JoystickUp,
    MFC_Button_JoystickDown,
    MFC_Button_JoystickStart,
} SPICE_SDK_MFC_BUTTONS;

// FutureTomTom

typedef enum SPICE_SDK_FUTURETOMTOM_BUTTONS {
    FTT_Button_Service,
    FTT_Button_Test,
    FTT_Button_Pad1,
    FTT_Button_Pad2,
    FTT_Button_Pad3,
    FTT_Button_Pad4,
} SPICE_SDK_FUTURETOMTOM_BUTTONS;

typedef enum SPICE_SDK_FUTURETOMTOM_ANALOGS {
    FTT_Analog_Pad1,
    FTT_Analog_Pad2,
    FTT_Analog_Pad3,
    FTT_Analog_Pad4,
} SPICE_SDK_FUTURETOMTOM_ANALOGS;

typedef enum SPICE_SDK_FUTURETOMTOM_LIGHTS {
    FTT_Light_Pad1_R,
    FTT_Light_Pad1_G,
    FTT_Light_Pad1_B,
    FTT_Light_Pad2_R,
    FTT_Light_Pad2_G,
    FTT_Light_Pad2_B,
    FTT_Light_Pad3_R,
    FTT_Light_Pad3_G,
    FTT_Light_Pad3_B,
    FTT_Light_Pad4_R,
    FTT_Light_Pad4_G,
    FTT_Light_Pad4_B,
} SPICE_SDK_FUTURETOMTOM_LIGHTS;

// LovePlus

typedef enum SPICE_SDK_LOVEPLUS_BUTTONS {
    LOVEPLUS_Button_Service,
    LOVEPLUS_Button_Test,
    LOVEPLUS_Button_Left,
    LOVEPLUS_Button_Right,
} SPICE_SDK_LOVEPLUS_BUTTONS;

typedef enum SPICE_SDK_LOVEPLUS_LIGHTS {
    LOVEPLUS_Light_Red,
    LOVEPLUS_Light_Green,
    LOVEPLUS_Light_Blue,
    LOVEPLUS_Light_Left,
    LOVEPLUS_Light_Right,
} SPICE_SDK_LOVEPLUS_LIGHTS;

// Scotto

typedef enum SPICE_SDK_SCOTTO_BUTTONS {
    SCOTTO_Button_Service,
    SCOTTO_Button_Test,
    SCOTTO_Button_CoinMech,
    SCOTTO_Button_Start,
    SCOTTO_Button_Up,
    SCOTTO_Button_Down,
    SCOTTO_Button_Cup1,
    SCOTTO_Button_Cup2,
    SCOTTO_Button_FirstPad,
    SCOTTO_Button_PadA,
    SCOTTO_Button_PadB,
    SCOTTO_Button_PadC,
    SCOTTO_Button_PadD,
    SCOTTO_Button_PadE,
    SCOTTO_Button_PadF,
} SPICE_SDK_SCOTTO_BUTTONS;

typedef enum SPICE_SDK_SCOTTO_LIGHTS {
    SCOTTO_Light_FIRST_PAD_R,
    SCOTTO_Light_FIRST_PAD_G,
    SCOTTO_Light_FIRST_PAD_B,
    SCOTTO_Light_PAD_A_R,
    SCOTTO_Light_PAD_A_G,
    SCOTTO_Light_PAD_A_B,
    SCOTTO_Light_PAD_B_R,
    SCOTTO_Light_PAD_B_G,
    SCOTTO_Light_PAD_B_B,
    SCOTTO_Light_PAD_C_R,
    SCOTTO_Light_PAD_C_G,
    SCOTTO_Light_PAD_C_B,
    SCOTTO_Light_PAD_D_R,
    SCOTTO_Light_PAD_D_G,
    SCOTTO_Light_PAD_D_B,
    SCOTTO_Light_PAD_E_R,
    SCOTTO_Light_PAD_E_G,
    SCOTTO_Light_PAD_E_B,
    SCOTTO_Light_PAD_F_R,
    SCOTTO_Light_PAD_F_G,
    SCOTTO_Light_PAD_F_B,
    SCOTTO_Light_CUP_R,
    SCOTTO_Light_CUP_G,
    SCOTTO_Light_CUP_B,
    SCOTTO_Light_BUTTON,
} SPICE_SDK_SCOTTO_LIGHTS;

// DANCERUSH

typedef enum SPICE_SDK_DANCERUSH_BUTTONS {
    DRS_Button_Service,
    DRS_Button_Test,
    DRS_Button_CoinMech,
    DRS_Button_P1_Start,
    DRS_Button_P1_Up,
    DRS_Button_P1_Down,
    DRS_Button_P1_Left,
    DRS_Button_P1_Right,
    DRS_Button_P2_Start,
    DRS_Button_P2_Up,
    DRS_Button_P2_Down,
    DRS_Button_P2_Left,
    DRS_Button_P2_Right,
} SPICE_SDK_DANCERUSH_BUTTONS;

typedef enum SPICE_SDK_DANCERUSH_LIGHTS {
    DRS_Light_P1_START,
    DRS_Light_P1_MENU_UP,
    DRS_Light_P1_MENU_DOWN,
    DRS_Light_P1_MENU_LEFT,
    DRS_Light_P1_MENU_RIGHT,
    DRS_Light_P2_START,
    DRS_Light_P2_MENU_UP,
    DRS_Light_P2_MENU_DOWN,
    DRS_Light_P2_MENU_LEFT,
    DRS_Light_P2_MENU_RIGHT,
    DRS_Light_CARD_READER_R,
    DRS_Light_CARD_READER_G,
    DRS_Light_CARD_READER_B,
    DRS_Light_TITLE_PANEL_R,
    DRS_Light_TITLE_PANEL_G,
    DRS_Light_TITLE_PANEL_B,
} SPICE_SDK_DANCERUSH_LIGHTS;

// Otoca D'or

typedef enum SPICE_SDK_OTOCA_BUTTONS {
    OTOCA_Button_Service,
    OTOCA_Button_Test,
    OTOCA_Button_CoinMech,
    OTOCA_Button_ButtonLeft,
    OTOCA_Button_ButtonRight,
    OTOCA_Button_LeverUp,
    OTOCA_Button_LeverDown,
    OTOCA_Button_LeverLeft,
    OTOCA_Button_LeverRight,
} SPICE_SDK_OTOCA_BUTTONS;

typedef enum SPICE_SDK_OTOCA_LIGHTS {
    OTOCA_Light_LeftButton,
    OTOCA_Light_RightButton,
} SPICE_SDK_OTOCA_LIGHTS;

// Winning Eleven

typedef enum SPICE_SDK_WINNING_ELEVEN_BUTTONS {
    WE_Button_Service,
    WE_Button_Test,
    WE_Button_CoinMech,
    WE_Button_Start,
    WE_Button_Up,
    WE_Button_Down,
    WE_Button_Left,
    WE_Button_Right,
    WE_Button_ButtonA,
    WE_Button_ButtonB,
    WE_Button_ButtonC,
    WE_Button_ButtonD,
    WE_Button_ButtonE,
    WE_Button_ButtonF,
    WE_Button_PadStart,
    WE_Button_PadSelect,
    WE_Button_PadUp,
    WE_Button_PadDown,
    WE_Button_PadLeft,
    WE_Button_PadRight,
    WE_Button_PadTriangle,
    WE_Button_PadCross,
    WE_Button_PadSquare,
    WE_Button_PadCircle,
    WE_Button_PadL1,
    WE_Button_PadL2,
    WE_Button_PadL3,
    WE_Button_PadR1,
    WE_Button_PadR2,
    WE_Button_PadR3,
} SPICE_SDK_WINNING_ELEVEN_BUTTONS;

typedef enum SPICE_SDK_WINNING_ELEVEN_ANALOGS {
    WE_Analog_PadStickLeftX,
    WE_Analog_PadStickLeftY,
    WE_Analog_PadStickRightX,
    WE_Analog_PadStickRightY,
} SPICE_SDK_WINNING_ELEVEN_ANALOGS;

typedef enum SPICE_SDK_WINNING_ELEVEN_LIGHTS {
    WE_Light_LeftRed,
    WE_Light_LeftGreen,
    WE_Light_LeftBlue,
    WE_Light_RightRed,
    WE_Light_RightGreen,
    WE_Light_RightBlue,
} SPICE_SDK_WINNING_ELEVEN_LIGHTS;

// Silent Scope: Bone Eater

typedef enum SPICE_SDK_SILENT_SCOPE_BUTTONS {
    SILENTSCOPE_Button_SERVICE,
    SILENTSCOPE_Button_TEST,
    SILENTSCOPE_Button_COIN_MECH,
    SILENTSCOPE_Button_START,
    SILENTSCOPE_Button_UP,
    SILENTSCOPE_Button_DOWN,
    SILENTSCOPE_Button_LEFT,
    SILENTSCOPE_Button_RIGHT,
    SILENTSCOPE_Button_GUN_PRESSED,
    SILENTSCOPE_Button_SCOPE_RIGHT,
    SILENTSCOPE_Button_SCOPE_LEFT,
} SPICE_SDK_SILENT_SCOPE_BUTTONS;

typedef enum SPICE_SDK_SILENT_SCOPE_ANALOGS {
    SILENTSCOPE_Analog_GUN_X,
    SILENTSCOPE_Analog_GUN_Y,
} SPICE_SDK_SILENT_SCOPE_ANALOGS;

// Charge Machine

typedef enum SPICE_SDK_CHARGE_MACHINE_BUTTONS {
    PCM_Button_Service,
    PCM_Button_Test,
    PCM_Button_Insert1000YenBill,
    PCM_Button_Insert2000YenBill,
    PCM_Button_Insert5000YenBill,
    PCM_Button_Insert10000YenBill,
} SPICE_SDK_CHARGE_MACHINE_BUTTONS;

// Ongaku Paradise

typedef enum SPICE_SDK_ONGAKU_PARADISE_BUTTONS {
    ONPARA_Button_Service,
    ONPARA_Button_Test,
    ONPARA_Button_Start,
    ONPARA_Button_Headphone,
} SPICE_SDK_ONGAKU_PARADISE_BUTTONS;

// Busou Shinki: Armored Princess Battle Conductor

typedef enum SPICE_SDK_BUSOU_SHINKI_BUTTONS {
    BC_Button_Service,
    BC_Button_Test,
    BC_Button_Up,
    BC_Button_Down,
    BC_Button_Left,
    BC_Button_Right,
    BC_Button_JoystickButton,
    BC_Button_Trigger1,
    BC_Button_Trigger2,
    BC_Button_Button1,
    BC_Button_Button2,
    BC_Button_Button3,
    BC_Button_Button4,
} SPICE_SDK_BUSOU_SHINKI_BUTTONS;

typedef enum SPICE_SDK_BUSOU_SHINKI_ANALOGS {
    BC_Analog_StickX,
    BC_Analog_StickY,
} SPICE_SDK_BUSOU_SHINKI_ANALOGS;

// Chase Chase Jokers

typedef enum SPICE_SDK_CCJ_BUTTONS {
    CCJ_Button_Service,
    CCJ_Button_Test,
    CCJ_Button_CoinMech,
    CCJ_Button_Joystick_Up,
    CCJ_Button_Joystick_Down,
    CCJ_Button_Joystick_Left,
    CCJ_Button_Joystick_Right,
    CCJ_Button_Button_Dash,
    CCJ_Button_Button_Action,
    CCJ_Button_Button_Jump,
    CCJ_Button_Button_Slide,
    CCJ_Button_Button_Special,
    CCJ_Button_Headphones,
    CCJ_Button_Trackball_Up,
    CCJ_Button_Trackball_Down,
    CCJ_Button_Trackball_Left,
    CCJ_Button_Trackball_Right,
} SPICE_SDK_CCJ_BUTTONS;

typedef enum SPICE_SDK_CCJ_ANALOGS {
    CCJ_Analog_Joystick_X,
    CCJ_Analog_Joystick_Y,
    CCJ_Analog_Trackball_DX,
    CCJ_Analog_Trackball_DY,
} SPICE_SDK_CCJ_ANALOGS;

typedef enum SPICE_SDK_CCJ_LIGHTS {
    CCJ_Light_TitlePanel_R,
    CCJ_Light_TitlePanel_G,
    CCJ_Light_TitlePanel_B,
    CCJ_Light_SidePanel_R,
    CCJ_Light_SidePanel_G,
    CCJ_Light_SidePanel_B,
    CCJ_Light_CardReader_R,
    CCJ_Light_CardReader_G,
    CCJ_Light_CardReader_B,
    CCJ_Light_SpecialButton,
} SPICE_SDK_CCJ_LIGHTS;

// QuizKnock STADIUM

typedef enum SPICE_SDK_QUIZKNOCK_STADIUM_BUTTONS {
    QKS_Button_Test,
    QKS_Button_Service,
    QKS_Button_Coin,
    QKS_Button_QButton,
    QKS_Button_QButton1,
    QKS_Button_QButton2,
    QKS_Button_QButton3,
    QKS_Button_JackDetect,
    QKS_Button_MicDetect,
} SPICE_SDK_QUIZKNOCK_STADIUM_BUTTONS;

// Mahjong Fight Girl

typedef enum SPICE_SDK_MAHJONG_FIGHT_GIRL_BUTTONS {
    MFG_Button_Service,
    MFG_Button_Test,
    MFG_Button_CoinMech,
} SPICE_SDK_MAHJONG_FIGHT_GIRL_BUTTONS;

// Polaris Chord

typedef enum SPICE_SDK_POLARIS_CHORD_BUTTONS {
    PC_Button_Service,
    PC_Button_Test,
    PC_Button_CoinMech,
    PC_Button_Button1,
    PC_Button_Button2,
    PC_Button_Button3,
    PC_Button_Button4,
    PC_Button_Button5,
    PC_Button_Button6,
    PC_Button_Button7,
    PC_Button_Button8,
    PC_Button_Button9,
    PC_Button_Button10,
    PC_Button_Button11,
    PC_Button_Button12,
    PC_Button_FaderL_Left,
    PC_Button_FaderL_Right,
    PC_Button_FaderR_Left,
    PC_Button_FaderR_Right,
    PC_Button_Headphone,
} SPICE_SDK_POLARIS_CHORD_BUTTONS;

typedef enum SPICE_SDK_POLARIS_CHORD_ANALOGS {
    PC_Analog_FaderL,
    PC_Analog_FaderR,
} SPICE_SDK_POLARIS_CHORD_ANALOGS;

typedef enum SPICE_SDK_POLARIS_CHORD_LIGHTS {
    PC_Light_IC_READER_R,
    PC_Light_IC_READER_G,
    PC_Light_IC_READER_B,
    PC_Light_Button1_R,
    PC_Light_Button1_G,
    PC_Light_Button1_B,
    PC_Light_Button2_R,
    PC_Light_Button2_G,
    PC_Light_Button2_B,
    PC_Light_Button3_R,
    PC_Light_Button3_G,
    PC_Light_Button3_B,
    PC_Light_Button4_R,
    PC_Light_Button4_G,
    PC_Light_Button4_B,
    PC_Light_Button5_R,
    PC_Light_Button5_G,
    PC_Light_Button5_B,
    PC_Light_Button6_R,
    PC_Light_Button6_G,
    PC_Light_Button6_B,
    PC_Light_Button7_R,
    PC_Light_Button7_G,
    PC_Light_Button7_B,
    PC_Light_Button8_R,
    PC_Light_Button8_G,
    PC_Light_Button8_B,
    PC_Light_Button9_R,
    PC_Light_Button9_G,
    PC_Light_Button9_B,
    PC_Light_Button10_R,
    PC_Light_Button10_G,
    PC_Light_Button10_B,
    PC_Light_Button11_R,
    PC_Light_Button11_G,
    PC_Light_Button11_B,
    PC_Light_Button12_R,
    PC_Light_Button12_G,
    PC_Light_Button12_B,
} SPICE_SDK_POLARIS_CHORD_LIGHTS;

#ifdef __cplusplus
} // extern "C"
#endif

#endif // SPICE_SDK_IO_H
