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;
}
}
}
}