Updated light-setting code to use switch statements
I will say, the version of this that didn't have break statements had way, way more flashy light patterns than the boring, correctly functioning version of this. Also, the preference now defaults to "minimaid"
This commit is contained in:
committed by
quietly-turning
parent
ad2825ba3c
commit
2f97420f81
@@ -18,9 +18,10 @@ typedef void (WINAPI PacShutdown)(void);
|
||||
PacShutdown* m_pacdone = nullptr;
|
||||
typedef bool (WINAPI PacSetLEDStates)(int, short int);
|
||||
PacSetLEDStates* m_pacset = nullptr;
|
||||
int iLightingOrder = 0;
|
||||
|
||||
//Adds new preference to allow for different light wiring setups
|
||||
static Preference<RString> g_sPacDriveLightOrdering("PacDriveLightOrdering", "");
|
||||
static Preference<RString> g_sPacDriveLightOrdering("PacDriveLightOrdering", "minimaid");
|
||||
|
||||
|
||||
LightsDriver_PacDrive::LightsDriver_PacDrive()
|
||||
@@ -50,6 +51,10 @@ LightsDriver_PacDrive::LightsDriver_PacDrive()
|
||||
{
|
||||
PacDriveConnected = true; // set connected
|
||||
m_pacset(0, 0x0); // clear all lights for device i
|
||||
RString lightOrder = g_sPacDriveLightOrdering.Get();
|
||||
if (lightOrder.CompareNoCase("lumenar") == 0 || lightOrder.CompareNoCase("openitg") == 0) {
|
||||
iLightingOrder = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,9 +68,9 @@ LightsDriver_PacDrive::~LightsDriver_PacDrive()
|
||||
|
||||
void LightsDriver_PacDrive::Set(const LightsState *ls)
|
||||
{
|
||||
RString lightOrder = g_sPacDriveLightOrdering.Get();
|
||||
short int outb = 0;
|
||||
if (lightOrder.CompareNoCase("lumenar") == 0 || lightOrder.CompareNoCase("openitg") == 0) {
|
||||
switch (iLightingOrder) {
|
||||
case 1:
|
||||
//Sets the cabinet light values to follow LumenAR/OpenITG wiring standards
|
||||
|
||||
if (ls->m_bGameButtonLights[GameController_1][DANCE_BUTTON_LEFT]) outb |= BIT(0);
|
||||
@@ -83,8 +88,9 @@ void LightsDriver_PacDrive::Set(const LightsState *ls)
|
||||
if (ls->m_bGameButtonLights[GameController_1][GAME_BUTTON_START]) outb |= BIT(12);
|
||||
if (ls->m_bGameButtonLights[GameController_2][GAME_BUTTON_START]) outb |= BIT(13);
|
||||
if (ls->m_bCabinetLights[LIGHT_BASS_LEFT] || ls->m_bCabinetLights[LIGHT_BASS_RIGHT]) outb |= BIT(14);
|
||||
}
|
||||
else {
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
//If all else fails, falls back to Minimaid order
|
||||
|
||||
if (ls->m_bCabinetLights[LIGHT_MARQUEE_UP_LEFT]) outb |= BIT(0);
|
||||
@@ -102,6 +108,7 @@ void LightsDriver_PacDrive::Set(const LightsState *ls)
|
||||
if (ls->m_bGameButtonLights[GameController_2][DANCE_BUTTON_UP]) outb |= BIT(12);
|
||||
if (ls->m_bGameButtonLights[GameController_2][DANCE_BUTTON_DOWN]) outb |= BIT(13);
|
||||
if (ls->m_bGameButtonLights[GameController_2][GAME_BUTTON_START]) outb |= BIT(14);
|
||||
break;
|
||||
}
|
||||
m_pacset(0, outb);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user