1
0
mirror of https://github.com/preble/libpinproc synced 2026-02-24 18:25:23 +01:00

Added private Shutdown() method to PRDevice to disable all drivers and switch rules before Close().

This commit is contained in:
gstellenberg
2009-05-26 21:05:55 -05:00
parent c5ca833732
commit 8fd8939ee8
2 changed files with 27 additions and 0 deletions

View File

@@ -37,6 +37,7 @@ PRDevice::PRDevice(PRMachineType machineType) : machineType(machineType)
PRDevice::~PRDevice()
{
Shutdown();
Close();
}
@@ -99,6 +100,31 @@ void PRDevice::Reset()
// TODO: Assign defaults based on machineType. Some may have already been done above.
}
void PRDevice::Shutdown()
{
int i;
PRDriverState driverState;
PRSwitchRule switchRule;
// Deactivate all drivers
for (i = 0; i < maxDrivers; i++)
{
// Get each driver's current state just in case polarity was changed from the default.
DriverGetState(i, &driverState);
driverState.state = false;
DriverUpdateState(&driverState);
}
// Deactivate all switch rules
switchRule.notifyHost = false;
for (i = kPRSwitchPhysicalFirst; i < kPRSwitchPhysicalLast; i++)
{
SwitchUpdateRule(i, kPREventTypeSwitchOpenDebounced, &switchRule, NULL, 0);
SwitchUpdateRule(i, kPREventTypeSwitchClosedDebounced, &switchRule, NULL, 0);
SwitchUpdateRule(i, kPREventTypeSwitchOpenNondebounced, &switchRule, NULL, 0);
SwitchUpdateRule(i, kPREventTypeSwitchClosedNondebounced, &switchRule, NULL, 0);
}
}
int PRDevice::GetEvents(PREvent *events, int maxEvents)
{

View File

@@ -121,6 +121,7 @@ protected:
// Local Device State
void Shutdown();
void Reset();
PRMachineType machineType;
PRDriverGlobalConfig driverGlobalConfig;