Skip to content

Commit

Permalink
Merge pull request #3834 from willmmiles/ddp-no-push
Browse files Browse the repository at this point in the history
Support DDP sources that don't PUSH
  • Loading branch information
blazoncek authored Mar 19, 2024
2 parents 92dc63e + 62f845a commit 6d03c3a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion wled00/e131.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
//DDP protocol support, called by handleE131Packet
//handles RGB data only
void handleDDPPacket(e131_packet_t* p) {
static bool ddpSeenPush = false; // have we seen a push yet?
int lastPushSeq = e131LastSequenceNumber[0];

//reject late packets belonging to previous frame (assuming 4 packets max. before push)
Expand All @@ -34,6 +35,7 @@ void handleDDPPacket(e131_packet_t* p) {
uint16_t c = 0;
if (p->flags & DDP_TIMECODE_FLAG) c = 4; //packet has timecode flag, we do not support it, but data starts 4 bytes later

if (realtimeMode != REALTIME_MODE_DDP) ddpSeenPush = false; // just starting, no push yet
realtimeLock(realtimeTimeoutMs, REALTIME_MODE_DDP);

if (!realtimeOverride || (realtimeMode && useMainSegmentOnly)) {
Expand All @@ -44,7 +46,8 @@ void handleDDPPacket(e131_packet_t* p) {
}

bool push = p->flags & DDP_PUSH_FLAG;
if (push) {
ddpSeenPush |= push;
if (!ddpSeenPush || push) { // if we've never seen a push, or this is one, render display
e131NewData = true;
byte sn = p->sequenceNum & 0xF;
if (sn) e131LastSequenceNumber[0] = sn;
Expand Down

0 comments on commit 6d03c3a

Please sign in to comment.