void CExpressivePixelsApp::byteAsHexValue()

in Firmware/ExpressivePixelsCore/EPXApp_JSON.cpp [24:69]


void CExpressivePixelsApp::byteAsHexValue(char *value)
{
	if (m_PayloadActiveCommand == PAYLOADCOMMAND_UPLOAD_ANIMATION8 || m_PayloadActiveCommand == PAYLOADCOMMAND_STORE_ANIMATION8)
	{
		if (stricmp(m_PayloadJSONListnerTracking_Key.c_str(), (const char *)JSONKEY_FRAMESHEX) == 0)
		{
			uint8_t byteVal = HexToByte(value, 2);
			if (m_StagedAnimation.pFile != NULL)
				m_CAppStorage.SequenceWriteData(&m_StagedAnimation, &byteVal, sizeof(byteVal));
			else if (m_StagedAnimation.pRAMFrames != NULL && m_PayloadParseCommandSequenceFillPos < m_StagedAnimation.Meta.cbFrames)
				m_StagedAnimation.pRAMFrames[m_PayloadParseCommandSequenceFillPos++] = byteVal;
		}
		else if (stricmp(m_PayloadJSONListnerTracking_Key.c_str(), (const char *)JSONKEY_PALETTEHEX) == 0)
		{
			uint8_t byteVal = HexToByte(value, 2);
			m_PayloadParsePaletteRGB[m_PayloadParsePaletteBytePos] = byteVal;
			m_PayloadParsePaletteBytePos++;
			if (m_PayloadParsePaletteBytePos == 3)
			{
				PALETTE_ENTRY paletteEntry;
				
				paletteEntry.r = m_PayloadParsePaletteRGB[0];
				paletteEntry.g = m_PayloadParsePaletteRGB[1];
				paletteEntry.b = m_PayloadParsePaletteRGB[2];
				
				// uint32_t color = (uint32_t)(((uint32_t)m_PayloadParsePaletteRGB[0] << 16) | ((uint32_t)m_PayloadParsePaletteRGB[1] << 8) | ((uint32_t)m_PayloadParsePaletteRGB[2] << 0));							
				if (m_StagedAnimation.pFile != NULL)
					m_CAppStorage.SequenceWriteData(&m_StagedAnimation, &paletteEntry, sizeof(paletteEntry));
				else if(m_StagedAnimation.pPalette != NULL && m_PayloadParseCommandSequenceFillPos < m_StagedAnimation.Meta.cbPallete)
					m_StagedAnimation.pPalette[m_PayloadParseCommandSequenceFillPos++] = paletteEntry;
				m_PayloadParsePaletteBytePos = 0;
			}		
		}
	}
	else if (m_PayloadActiveCommand == PAYLOADCOMMAND_UPLOAD_FRAME8)
	{
		if (stricmp(m_PayloadJSONListnerTracking_Key.c_str(), (const char *)JSONKEY_PIXELSHEX) == 0)
		{
			if (m_StagedAnimation.pRAMFrames != NULL && m_PayloadParseCommandSequenceFillPos < m_StagedAnimation.Meta.cbFrames)
			{
				uint8_t byteVal = HexToByte(value, 2);
				m_StagedAnimation.pRAMFrames[m_PayloadParseCommandSequenceFillPos++] = byteVal;
			}
		}
	}
}