void CExpressivePixelsApp::ProcessPowerStateChange()

in Firmware/ExpressivePixelsCore/EPXApp.cpp [639:675]


void CExpressivePixelsApp::ProcessPowerStateChange()
{
	// Process a change in power state
	switch(m_pendingPowerStateChange)
	{		
	case EPXAPP_PENDINGPOWERSTATE_BLE_ON:
	case EPXAPP_PENDINGPOWERSTATE_USB_ON:
		DEBUGLOGLN("POWERSTATECHANGED %s", m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_BLE_ON ? "BLE ON" : "USB ON");		
		if (m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_BLE_ON)		
			m_powerState |= EPXAPP_POWERSTATE_ON_BLE;
		else if (m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_USB_ON)
		{
			// If plugged into USB and the 'autoplay on USB' is on then start playing all animations on the device
			if (m_bAutoPlayOnUSBPower && m_connectedChannel == EPXAPP_CONNECTIONCHANNEL_NONE)
				ToggleInvokedAutoPlay(true);
			m_powerState |= EPXAPP_POWERSTATE_ON_USB;
		}
		break;		
		
	case EPXAPP_PENDINGPOWERSTATE_BLE_OFF:
	case EPXAPP_PENDINGPOWERSTATE_USB_OFF:
		{
			DEBUGLOGLN("POWERSTATECHANGED %s", m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_BLE_OFF ? "BLE OFF" : "USB OFF");
			if (m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_BLE_OFF)		
				m_powerState &= ~EPXAPP_POWERSTATE_ON_BLE;
			else if (m_pendingPowerStateChange == EPXAPP_PENDINGPOWERSTATE_USB_OFF && m_connectedChannel != EPXAPP_CONNECTIONCHANNEL_BLE)
			{
				// If losing USB power then turn off auto-play animations
				if (m_bAutoPlayOnUSBPower)	
					ToggleInvokedAutoPlay(false);
				m_powerState &= ~EPXAPP_POWERSTATE_ON_USB;
			}
			break;
		}
	}
	m_pendingPowerStateChange = EPXAPP_PENDINGPOWERSTATE_NONE;		
}