mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2026-08-23 17:04:03 -05:00
ddrio: Add hdxs output functions
Also fixes IDS_DDR_P1_BOTTOM_LIGHT schema being incorrectly mapped (on SD)
This commit is contained in:
@@ -41,7 +41,27 @@ enum p3io_light_bit {
|
||||
LIGHT_P2_LOWER_LAMP = 0x04,
|
||||
LIGHT_P2_UPPER_LAMP = 0x05,
|
||||
LIGHT_P1_LOWER_LAMP = 0x06,
|
||||
LIGHT_P1_UPPER_LAMP = 0x07
|
||||
LIGHT_P1_UPPER_LAMP = 0x07,
|
||||
|
||||
LIGHT_HD_P1_START = 0x08,
|
||||
LIGHT_HD_P1_UP_DOWN = 0x09,
|
||||
LIGHT_HD_P1_LEFT_RIGHT = 0x0A,
|
||||
LIGHT_HD_P2_START = 0x0B,
|
||||
LIGHT_HD_P2_UP_DOWN = 0x0C,
|
||||
LIGHT_HD_P2_LEFT_RIGHT = 0x0D,
|
||||
|
||||
LIGHT_HD_P1_SPEAKER_F_R = 0x20,
|
||||
LIGHT_HD_P1_SPEAKER_F_G = 0x21,
|
||||
LIGHT_HD_P1_SPEAKER_F_B = 0x22,
|
||||
LIGHT_HD_P2_SPEAKER_F_R = 0x23,
|
||||
LIGHT_HD_P2_SPEAKER_F_G = 0x24,
|
||||
LIGHT_HD_P2_SPEAKER_F_B = 0x25,
|
||||
LIGHT_HD_P1_SPEAKER_W_R = 0x26,
|
||||
LIGHT_HD_P1_SPEAKER_W_G = 0x27,
|
||||
LIGHT_HD_P1_SPEAKER_W_B = 0x28,
|
||||
LIGHT_HD_P2_SPEAKER_W_R = 0x29,
|
||||
LIGHT_HD_P2_SPEAKER_W_G = 0x2A,
|
||||
LIGHT_HD_P2_SPEAKER_W_B = 0x2B,
|
||||
};
|
||||
|
||||
enum extio_light_bit {
|
||||
@@ -84,6 +104,8 @@ bool ddr_io_init(
|
||||
uint32_t ddr_io_read_pad(void);
|
||||
void ddr_io_set_lights_extio(uint32_t extio_lights);
|
||||
void ddr_io_set_lights_p3io(uint32_t p3io_lights);
|
||||
void ddr_io_set_lights_hdxs_panel(uint32_t hdxs_lights);
|
||||
void ddr_io_set_lights_hdxs_rgb(uint8_t idx, uint8_t r, uint8_t g, uint8_t b);
|
||||
void ddr_io_fini(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -256,13 +256,33 @@ STRINGTABLE
|
||||
IDS_DDR_P2_DOWN "P2 Down"
|
||||
IDS_DDR_P2_LEFT "P2 Left"
|
||||
IDS_DDR_P2_RIGHT "P2 Right"
|
||||
IDS_DDR_P1_MENU_LIGHT "P1 Menu Lights"
|
||||
IDS_DDR_P1_MENU_LIGHT "P1 Menu Lights / HD Spot Red Satellite"
|
||||
IDS_DDR_P1_TOP_LIGHT "P1 Marquee Top Light"
|
||||
IDS_DDR_P1_BOTTOM_LIGHT "P1 Marquee Bottom Light"
|
||||
IDS_DDR_P2_MENU_LIGHT "P2 Menu Lights"
|
||||
IDS_DDR_P2_MENU_LIGHT "P2 Menu Lights / HD Spot Blue Satellite"
|
||||
IDS_DDR_P2_TOP_LIGHT "P2 Marquee Top Light"
|
||||
IDS_DDR_P2_BOTTOM_LIGHT "P2 Marquee Bottom Light"
|
||||
IDS_DDR_BASS_LIGHT "Bass Neons"
|
||||
IDS_DDR_HD_P1_START "P1 HD Start"
|
||||
IDS_DDR_HD_P1_UP_DOWN "P1 HD Up/Down"
|
||||
IDS_DDR_HD_P1_LEFT_RIGHT "P1 HD Left/Right"
|
||||
IDS_DDR_HD_P2_START "P2 HD Start"
|
||||
IDS_DDR_HD_P2_UP_DOWN "P2 HD Up/Down"
|
||||
IDS_DDR_HD_P2_LEFT_RIGHT "P2 HD Left/Right"
|
||||
IDS_DDR_HD_P1_SPEAKER_F_R "P1 HD Speaker F R"
|
||||
IDS_DDR_HD_P1_SPEAKER_F_G "P1 HD Speaker F G"
|
||||
IDS_DDR_HD_P1_SPEAKER_F_B "P1 HD Speaker F B"
|
||||
IDS_DDR_HD_P2_SPEAKER_F_R "P2 HD Speaker F R"
|
||||
IDS_DDR_HD_P2_SPEAKER_F_G "P2 HD Speaker F G"
|
||||
IDS_DDR_HD_P2_SPEAKER_F_B "P2 HD Speaker F B"
|
||||
IDS_DDR_HD_P1_SPEAKER_W_R "P1 HD Speaker W R"
|
||||
IDS_DDR_HD_P1_SPEAKER_W_G "P1 HD Speaker W G"
|
||||
IDS_DDR_HD_P1_SPEAKER_W_B "P1 HD Speaker W B"
|
||||
IDS_DDR_HD_P2_SPEAKER_W_R "P2 HD Speaker W R"
|
||||
IDS_DDR_HD_P2_SPEAKER_W_G "P2 HD Speaker W G"
|
||||
IDS_DDR_HD_P2_SPEAKER_W_B "P2 HD Speaker W B"
|
||||
IDS_DDR_HD_SPOT_RED_TOP "HD Spot Red Top"
|
||||
IDS_DDR_HD_SPOT_BLUE_TOP "HD Spot Blue Top"
|
||||
IDS_PNM_SCHEMA "pop'n music"
|
||||
IDS_PNM_BTN1 "Button 1"
|
||||
IDS_PNM_BTN2 "Button 2"
|
||||
|
||||
@@ -248,7 +248,27 @@
|
||||
#define IDS_PNM_TOP3 40205
|
||||
#define IDS_PNM_TOP4 40206
|
||||
#define IDS_PNM_TOP5 40207
|
||||
#define IDS_PNM_LB 40208
|
||||
#define IDS_PNM_LR 40209
|
||||
#define IDS_PNM_RB 40210
|
||||
#define IDS_PNM_RR 40211
|
||||
#define IDS_PNM_LB 40208
|
||||
#define IDS_PNM_LR 40209
|
||||
#define IDS_PNM_RB 40210
|
||||
#define IDS_PNM_RR 40211
|
||||
#define IDS_DDR_HD_P1_START 40212
|
||||
#define IDS_DDR_HD_P1_UP_DOWN 40213
|
||||
#define IDS_DDR_HD_P1_LEFT_RIGHT 40214
|
||||
#define IDS_DDR_HD_P2_START 40215
|
||||
#define IDS_DDR_HD_P2_UP_DOWN 40216
|
||||
#define IDS_DDR_HD_P2_LEFT_RIGHT 40217
|
||||
#define IDS_DDR_HD_P1_SPEAKER_F_R 40218
|
||||
#define IDS_DDR_HD_P1_SPEAKER_F_G 40219
|
||||
#define IDS_DDR_HD_P1_SPEAKER_F_B 40220
|
||||
#define IDS_DDR_HD_P2_SPEAKER_F_R 40221
|
||||
#define IDS_DDR_HD_P2_SPEAKER_F_G 40222
|
||||
#define IDS_DDR_HD_P2_SPEAKER_F_B 40223
|
||||
#define IDS_DDR_HD_P1_SPEAKER_W_R 40224
|
||||
#define IDS_DDR_HD_P1_SPEAKER_W_G 40225
|
||||
#define IDS_DDR_HD_P1_SPEAKER_W_B 40226
|
||||
#define IDS_DDR_HD_P2_SPEAKER_W_R 40227
|
||||
#define IDS_DDR_HD_P2_SPEAKER_W_G 40228
|
||||
#define IDS_DDR_HD_P2_SPEAKER_W_B 40229
|
||||
#define IDS_DDR_HD_SPOT_RED_TOP 40230
|
||||
#define IDS_DDR_HD_SPOT_BLUE_TOP 40231
|
||||
|
||||
@@ -3,30 +3,32 @@
|
||||
|
||||
#include "util/defs.h"
|
||||
|
||||
static const struct action_def dm_actions[] = {{0x01, IDS_GENERIC_TEST},
|
||||
{0x00, IDS_GENERIC_SERVICE},
|
||||
static const struct action_def dm_actions[] = {
|
||||
{0x01, IDS_GENERIC_TEST},
|
||||
{0x00, IDS_GENERIC_SERVICE},
|
||||
|
||||
{0x08, IDS_DM_START},
|
||||
{0x0F, IDS_DM_MENU_LEFT},
|
||||
{0x11, IDS_DM_MENU_RIGHT},
|
||||
{0x08, IDS_DM_START},
|
||||
{0x0F, IDS_DM_MENU_LEFT},
|
||||
{0x11, IDS_DM_MENU_RIGHT},
|
||||
|
||||
{0x0A, IDS_DM_HI_HAT},
|
||||
{0x0C, IDS_DM_SNARE},
|
||||
{0x0E, IDS_DM_HIGH_TOM},
|
||||
{0x10, IDS_DM_LOW_TOM},
|
||||
{0x12, IDS_DM_CYMBAL},
|
||||
{0x16, IDS_DM_BASS}};
|
||||
{0x0A, IDS_DM_HI_HAT},
|
||||
{0x0C, IDS_DM_SNARE},
|
||||
{0x0E, IDS_DM_HIGH_TOM},
|
||||
{0x10, IDS_DM_LOW_TOM},
|
||||
{0x12, IDS_DM_CYMBAL},
|
||||
{0x16, IDS_DM_BASS}};
|
||||
|
||||
static const struct light_def dm_lights[] = {{0x00, IDS_DM_HI_HAT},
|
||||
{0x01, IDS_DM_SNARE},
|
||||
{0x02, IDS_DM_HIGH_TOM},
|
||||
{0x03, IDS_DM_LOW_TOM},
|
||||
{0x04, IDS_DM_CYMBAL},
|
||||
{0x09, IDS_DM_BASS},
|
||||
{0x0A, IDS_DM_SPEAKER_LIGHT},
|
||||
{0x08, IDS_DM_SPOT_LIGHT},
|
||||
{0x06, IDS_DM_START_LIGHT},
|
||||
{0x07, IDS_DM_MENU_LIGHT}};
|
||||
static const struct light_def dm_lights[] = {
|
||||
{0x00, IDS_DM_HI_HAT},
|
||||
{0x01, IDS_DM_SNARE},
|
||||
{0x02, IDS_DM_HIGH_TOM},
|
||||
{0x03, IDS_DM_LOW_TOM},
|
||||
{0x04, IDS_DM_CYMBAL},
|
||||
{0x09, IDS_DM_BASS},
|
||||
{0x0A, IDS_DM_SPEAKER_LIGHT},
|
||||
{0x08, IDS_DM_SPOT_LIGHT},
|
||||
{0x06, IDS_DM_START_LIGHT},
|
||||
{0x07, IDS_DM_MENU_LIGHT}};
|
||||
|
||||
static const struct action_def gf_actions[] = {
|
||||
{0x01, IDS_GENERIC_TEST}, {0x00, IDS_GENERIC_SERVICE},
|
||||
@@ -43,10 +45,11 @@ static const struct action_def gf_actions[] = {
|
||||
{0x13, IDS_GF_P2_RED}, {0x15, IDS_GF_P2_GREEN},
|
||||
{0x17, IDS_GF_P2_BLUE}};
|
||||
|
||||
static const struct light_def gf_lights[] = {{0x08, IDS_GF_P1_SPOT_LIGHT},
|
||||
{0x09, IDS_GF_P2_SPOT_LIGHT},
|
||||
{0x0A, IDS_GF_P1_START},
|
||||
{0x0B, IDS_GF_P2_START}};
|
||||
static const struct light_def gf_lights[] = {
|
||||
{0x08, IDS_GF_P1_SPOT_LIGHT},
|
||||
{0x09, IDS_GF_P2_SPOT_LIGHT},
|
||||
{0x0A, IDS_GF_P1_START},
|
||||
{0x0B, IDS_GF_P2_START}};
|
||||
|
||||
static const struct action_def iidx_actions[] = {
|
||||
{0x1C, IDS_GENERIC_TEST}, {0x1D, IDS_GENERIC_SERVICE},
|
||||
@@ -101,8 +104,8 @@ static const struct light_def iidx_lights[] = {
|
||||
|
||||
{0x1F, IDS_IIDX_NEON_LIGHT}};
|
||||
|
||||
static const struct analog_def iidx_analogs[] = {{0, IDS_IIDX_P1_TT},
|
||||
{1, IDS_IIDX_P2_TT}};
|
||||
static const struct analog_def iidx_analogs[] = {
|
||||
{0, IDS_IIDX_P1_TT}, {1, IDS_IIDX_P2_TT}};
|
||||
|
||||
static const struct action_def ddr_actions[] = {
|
||||
{0x04, IDS_GENERIC_TEST}, {0x06, IDS_GENERIC_SERVICE},
|
||||
@@ -122,19 +125,48 @@ static const struct action_def ddr_actions[] = {
|
||||
static const struct light_def ddr_lights[] = {
|
||||
/* These are split between non-overlapping P3IO and EXTIO state words */
|
||||
|
||||
// P3IO: SD
|
||||
{0x00, IDS_DDR_P1_MENU_LIGHT},
|
||||
{0x07, IDS_DDR_P1_TOP_LIGHT},
|
||||
{0x07, IDS_DDR_P1_BOTTOM_LIGHT},
|
||||
|
||||
{0x1E, IDS_DDR_P1_UP},
|
||||
{0x1D, IDS_DDR_P1_DOWN},
|
||||
{0x1C, IDS_DDR_P1_LEFT},
|
||||
{0x1B, IDS_DDR_P1_RIGHT},
|
||||
{0x06, IDS_DDR_P1_BOTTOM_LIGHT},
|
||||
|
||||
{0x01, IDS_DDR_P2_MENU_LIGHT},
|
||||
{0x05, IDS_DDR_P2_TOP_LIGHT},
|
||||
{0x04, IDS_DDR_P2_BOTTOM_LIGHT},
|
||||
|
||||
// P3IO: HD
|
||||
{0x02, IDS_DDR_HD_SPOT_RED_TOP},
|
||||
{0x03, IDS_DDR_HD_SPOT_BLUE_TOP},
|
||||
|
||||
// P3IO: HDXS
|
||||
{0x08, IDS_DDR_HD_P1_START},
|
||||
{0x09, IDS_DDR_HD_P1_UP_DOWN},
|
||||
{0x0A, IDS_DDR_HD_P1_LEFT_RIGHT},
|
||||
|
||||
{0x0B, IDS_DDR_HD_P2_START},
|
||||
{0x0C, IDS_DDR_HD_P2_UP_DOWN},
|
||||
{0x0D, IDS_DDR_HD_P2_LEFT_RIGHT},
|
||||
|
||||
{0x20, IDS_DDR_HD_P1_SPEAKER_F_R},
|
||||
{0x21, IDS_DDR_HD_P1_SPEAKER_F_G},
|
||||
{0x22, IDS_DDR_HD_P1_SPEAKER_F_B},
|
||||
{0x23, IDS_DDR_HD_P2_SPEAKER_F_R},
|
||||
{0x24, IDS_DDR_HD_P2_SPEAKER_F_G},
|
||||
{0x25, IDS_DDR_HD_P2_SPEAKER_F_B},
|
||||
{0x26, IDS_DDR_HD_P1_SPEAKER_W_R},
|
||||
{0x27, IDS_DDR_HD_P1_SPEAKER_W_G},
|
||||
{0x28, IDS_DDR_HD_P1_SPEAKER_W_B},
|
||||
{0x29, IDS_DDR_HD_P2_SPEAKER_W_R},
|
||||
{0x2A, IDS_DDR_HD_P2_SPEAKER_W_G},
|
||||
{0x2B, IDS_DDR_HD_P2_SPEAKER_W_B},
|
||||
|
||||
|
||||
// EXTIO
|
||||
{0x1E, IDS_DDR_P1_UP},
|
||||
{0x1D, IDS_DDR_P1_DOWN},
|
||||
{0x1C, IDS_DDR_P1_LEFT},
|
||||
{0x1B, IDS_DDR_P1_RIGHT},
|
||||
|
||||
{0x16, IDS_DDR_P2_UP},
|
||||
{0x15, IDS_DDR_P2_DOWN},
|
||||
{0x14, IDS_DDR_P2_LEFT},
|
||||
@@ -142,18 +174,19 @@ static const struct light_def ddr_lights[] = {
|
||||
|
||||
{0x0E, IDS_DDR_BASS_LIGHT}};
|
||||
|
||||
static const struct action_def pnm_actions[] = {{0x07, IDS_GENERIC_TEST},
|
||||
{0x06, IDS_GENERIC_SERVICE},
|
||||
static const struct action_def pnm_actions[] = {
|
||||
{0x07, IDS_GENERIC_TEST},
|
||||
{0x06, IDS_GENERIC_SERVICE},
|
||||
|
||||
{0x08, IDS_PNM_BTN1},
|
||||
{0x09, IDS_PNM_BTN2},
|
||||
{0x0A, IDS_PNM_BTN3},
|
||||
{0x0B, IDS_PNM_BTN4},
|
||||
{0x0C, IDS_PNM_BTN5},
|
||||
{0x0D, IDS_PNM_BTN6},
|
||||
{0x0E, IDS_PNM_BTN7},
|
||||
{0x0F, IDS_PNM_BTN8},
|
||||
{0x10, IDS_PNM_BTN9}};
|
||||
{0x08, IDS_PNM_BTN1},
|
||||
{0x09, IDS_PNM_BTN2},
|
||||
{0x0A, IDS_PNM_BTN3},
|
||||
{0x0B, IDS_PNM_BTN4},
|
||||
{0x0C, IDS_PNM_BTN5},
|
||||
{0x0D, IDS_PNM_BTN6},
|
||||
{0x0E, IDS_PNM_BTN7},
|
||||
{0x0F, IDS_PNM_BTN8},
|
||||
{0x10, IDS_PNM_BTN9}};
|
||||
|
||||
static const struct light_def pnm_lights[] = {
|
||||
{0x17, IDS_PNM_BTN1},
|
||||
@@ -176,25 +209,26 @@ static const struct light_def pnm_lights[] = {
|
||||
{0x28, IDS_PNM_RR},
|
||||
};
|
||||
|
||||
static const struct action_def jb_actions[] = {{0x10, IDS_GENERIC_TEST},
|
||||
{0x11, IDS_GENERIC_SERVICE},
|
||||
static const struct action_def jb_actions[] = {
|
||||
{0x10, IDS_GENERIC_TEST},
|
||||
{0x11, IDS_GENERIC_SERVICE},
|
||||
|
||||
{0x00, IDS_JB_PANEL1},
|
||||
{0x01, IDS_JB_PANEL2},
|
||||
{0x02, IDS_JB_PANEL3},
|
||||
{0x03, IDS_JB_PANEL4},
|
||||
{0x04, IDS_JB_PANEL5},
|
||||
{0x05, IDS_JB_PANEL6},
|
||||
{0x06, IDS_JB_PANEL7},
|
||||
{0x07, IDS_JB_PANEL8},
|
||||
{0x08, IDS_JB_PANEL9},
|
||||
{0x09, IDS_JB_PANEL10},
|
||||
{0x0A, IDS_JB_PANEL11},
|
||||
{0x0B, IDS_JB_PANEL12},
|
||||
{0x0C, IDS_JB_PANEL13},
|
||||
{0x0D, IDS_JB_PANEL14},
|
||||
{0x0E, IDS_JB_PANEL15},
|
||||
{0x0F, IDS_JB_PANEL16}};
|
||||
{0x00, IDS_JB_PANEL1},
|
||||
{0x01, IDS_JB_PANEL2},
|
||||
{0x02, IDS_JB_PANEL3},
|
||||
{0x03, IDS_JB_PANEL4},
|
||||
{0x04, IDS_JB_PANEL5},
|
||||
{0x05, IDS_JB_PANEL6},
|
||||
{0x06, IDS_JB_PANEL7},
|
||||
{0x07, IDS_JB_PANEL8},
|
||||
{0x08, IDS_JB_PANEL9},
|
||||
{0x09, IDS_JB_PANEL10},
|
||||
{0x0A, IDS_JB_PANEL11},
|
||||
{0x0B, IDS_JB_PANEL12},
|
||||
{0x0C, IDS_JB_PANEL13},
|
||||
{0x0D, IDS_JB_PANEL14},
|
||||
{0x0E, IDS_JB_PANEL15},
|
||||
{0x0F, IDS_JB_PANEL16}};
|
||||
|
||||
static const struct light_def jb_lights[] = {
|
||||
{0x00, IDS_JB_RGB_FRONT_R},
|
||||
@@ -217,15 +251,16 @@ static const struct light_def jb_lights[] = {
|
||||
{0x11, IDS_JB_RGB_WOOFER_B},
|
||||
};
|
||||
|
||||
static const struct action_def sdvx_actions[] = {{0x05, IDS_GENERIC_TEST},
|
||||
{0x04, IDS_GENERIC_SERVICE},
|
||||
{0x0B, IDS_SDVX_START},
|
||||
{0x0A, IDS_SDVX_BTN_A},
|
||||
{0x09, IDS_SDVX_BTN_B},
|
||||
{0x08, IDS_SDVX_BTN_C},
|
||||
{0x15, IDS_SDVX_BTN_D},
|
||||
{0x14, IDS_SDVX_FX_L},
|
||||
{0x13, IDS_SDVX_FX_R}};
|
||||
static const struct action_def sdvx_actions[] = {
|
||||
{0x05, IDS_GENERIC_TEST},
|
||||
{0x04, IDS_GENERIC_SERVICE},
|
||||
{0x0B, IDS_SDVX_START},
|
||||
{0x0A, IDS_SDVX_BTN_A},
|
||||
{0x09, IDS_SDVX_BTN_B},
|
||||
{0x08, IDS_SDVX_BTN_C},
|
||||
{0x15, IDS_SDVX_BTN_D},
|
||||
{0x14, IDS_SDVX_FX_L},
|
||||
{0x13, IDS_SDVX_FX_R}};
|
||||
|
||||
static const struct light_def sdvx_lights[] = {
|
||||
{0x0D, IDS_SDVX_BTN_A}, {0x0E, IDS_SDVX_BTN_B}, {0x0F, IDS_SDVX_BTN_C},
|
||||
@@ -238,19 +273,19 @@ static const struct light_def sdvx_lights[] = {
|
||||
{0x1E, IDS_SDVX_RGB5_B}, {0x1F, IDS_SDVX_RGB6_R}, {0x20, IDS_SDVX_RGB6_G},
|
||||
{0x21, IDS_SDVX_RGB6_B}};
|
||||
|
||||
static const struct analog_def sdvx_analogs[] = {{0, IDS_SDVX_VOL_L},
|
||||
{1, IDS_SDVX_VOL_R}};
|
||||
static const struct analog_def sdvx_analogs[] = {
|
||||
{0, IDS_SDVX_VOL_L}, {1, IDS_SDVX_VOL_R}};
|
||||
|
||||
static const struct action_def rb_actions[] = {{0x00, IDS_GENERIC_TEST},
|
||||
{0x01, IDS_GENERIC_SERVICE}};
|
||||
static const struct action_def rb_actions[] = {
|
||||
{0x00, IDS_GENERIC_TEST}, {0x01, IDS_GENERIC_SERVICE}};
|
||||
|
||||
static const struct action_def bst_actions[] = {
|
||||
{0x05, IDS_GENERIC_TEST},
|
||||
{0x04, IDS_GENERIC_SERVICE},
|
||||
};
|
||||
|
||||
static const struct eam_unit_def schema_eam_unit_defs[] = {{IDS_READER_P1, 0},
|
||||
{IDS_READER_P2, 1}};
|
||||
static const struct eam_unit_def schema_eam_unit_defs[] = {
|
||||
{IDS_READER_P1, 0}, {IDS_READER_P2, 1}};
|
||||
|
||||
const struct schema schemas[] = {
|
||||
{"iidx",
|
||||
|
||||
@@ -7,3 +7,5 @@ EXPORTS
|
||||
ddr_io_read_pad
|
||||
ddr_io_set_lights_extio
|
||||
ddr_io_set_lights_p3io
|
||||
ddr_io_set_lights_hdxs_panel
|
||||
ddr_io_set_lights_hdxs_rgb
|
||||
|
||||
@@ -207,6 +207,22 @@ void ddr_io_set_lights_p3io(uint32_t p3io_lights)
|
||||
atomic_fetch_and(&out.lights, ~clr);
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_panel(uint32_t lights)
|
||||
{
|
||||
(void) lights;
|
||||
// stubbed
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_rgb(uint8_t idx, uint8_t r, uint8_t g, uint8_t b)
|
||||
{
|
||||
|
||||
(void) idx;
|
||||
(void) r;
|
||||
(void) g;
|
||||
(void) b;
|
||||
// stubbed
|
||||
}
|
||||
|
||||
void ddr_io_fini(void)
|
||||
{
|
||||
if (initted) {
|
||||
|
||||
@@ -7,3 +7,5 @@ EXPORTS
|
||||
ddr_io_read_pad
|
||||
ddr_io_set_lights_extio
|
||||
ddr_io_set_lights_p3io
|
||||
ddr_io_set_lights_hdxs_panel
|
||||
ddr_io_set_lights_hdxs_rgb
|
||||
|
||||
@@ -173,6 +173,25 @@ void ddr_io_set_lights_p3io(uint32_t lights)
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_panel(uint32_t lights)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0x08; i <= 0x0D; i++) {
|
||||
mapper_write_light(i, lights & (1 << i) ? 255 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_rgb(uint8_t idx, uint8_t r, uint8_t g, uint8_t b)
|
||||
{
|
||||
if (idx < 4) {
|
||||
uint8_t base = 0x20 + idx * 3;
|
||||
mapper_write_light(base + 0, r);
|
||||
mapper_write_light(base + 1, g);
|
||||
mapper_write_light(base + 2, b);
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_fini(void)
|
||||
{
|
||||
log_info("Stopping SMX.DLL");
|
||||
|
||||
@@ -57,6 +57,25 @@ void ddr_io_set_lights_p3io(uint32_t lights)
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_panel(uint32_t lights)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0x08; i <= 0x0D; i++) {
|
||||
mapper_write_light(i, lights & (1 << i) ? 255 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_set_lights_hdxs_rgb(uint8_t idx, uint8_t r, uint8_t g, uint8_t b)
|
||||
{
|
||||
if (idx < 4) {
|
||||
uint8_t base = 0x20 + idx * 3;
|
||||
mapper_write_light(base + 0, r);
|
||||
mapper_write_light(base + 1, g);
|
||||
mapper_write_light(base + 2, b);
|
||||
}
|
||||
}
|
||||
|
||||
void ddr_io_fini(void)
|
||||
{
|
||||
input_fini();
|
||||
|
||||
@@ -7,3 +7,5 @@ EXPORTS
|
||||
ddr_io_read_pad
|
||||
ddr_io_set_lights_extio
|
||||
ddr_io_set_lights_p3io
|
||||
ddr_io_set_lights_hdxs_panel
|
||||
ddr_io_set_lights_hdxs_rgb
|
||||
|
||||
Reference in New Issue
Block a user