kopia lustrzana https://github.com/Aircoookie/WLED
				
				
				
			Fix for realtime drawing on main segment
							rodzic
							
								
									be64930ebb
								
							
						
					
					
						commit
						210191b251
					
				| 
						 | 
				
			
			@ -39,6 +39,7 @@ void handleDDPPacket(e131_packet_t* p) {
 | 
			
		|||
  realtimeLock(realtimeTimeoutMs, REALTIME_MODE_DDP);
 | 
			
		||||
 | 
			
		||||
  if (!realtimeOverride || (realtimeMode && useMainSegmentOnly)) {
 | 
			
		||||
    if (useMainSegmentOnly) strip.getMainSegment().beginDraw();
 | 
			
		||||
    for (unsigned i = start; i < stop; i++, c += ddpChannelsPerLed) {
 | 
			
		||||
      setRealtimePixel(i, data[c], data[c+1], data[c+2], ddpChannelsPerLed >3 ? data[c+3] : 0);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -147,6 +148,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
 | 
			
		|||
      if (realtimeOverride && !(realtimeMode && useMainSegmentOnly)) return;
 | 
			
		||||
 | 
			
		||||
      wChannel = (availDMXLen > 3) ? e131_data[dataOffset+3] : 0;
 | 
			
		||||
      if (useMainSegmentOnly) strip.getMainSegment().beginDraw();
 | 
			
		||||
      for (unsigned i = 0; i < totalLen; i++)
 | 
			
		||||
        setRealtimePixel(i, e131_data[dataOffset+0], e131_data[dataOffset+1], e131_data[dataOffset+2], wChannel);
 | 
			
		||||
      break;
 | 
			
		||||
| 
						 | 
				
			
			@ -164,6 +166,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
 | 
			
		|||
        strip.setBrightness(bri, true);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (useMainSegmentOnly) strip.getMainSegment().beginDraw();
 | 
			
		||||
      for (unsigned i = 0; i < totalLen; i++)
 | 
			
		||||
        setRealtimePixel(i, e131_data[dataOffset+1], e131_data[dataOffset+2], e131_data[dataOffset+3], wChannel);
 | 
			
		||||
      break;
 | 
			
		||||
| 
						 | 
				
			
			@ -308,6 +311,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
 | 
			
		|||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (useMainSegmentOnly) strip.getMainSegment().beginDraw();
 | 
			
		||||
        if (!is4Chan) {
 | 
			
		||||
          for (unsigned i = previousLeds; i < ledsTotal; i++) {
 | 
			
		||||
            setRealtimePixel(i, e131_data[dmxOffset], e131_data[dmxOffset+1], e131_data[dmxOffset+2], 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -687,10 +687,11 @@ void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w)
 | 
			
		|||
      b = gamma8(b);
 | 
			
		||||
      w = gamma8(w);
 | 
			
		||||
    }
 | 
			
		||||
    uint32_t col = RGBW32(r,g,b,w);
 | 
			
		||||
    if (useMainSegmentOnly) {
 | 
			
		||||
      strip.getMainSegment().setPixelColor(pix, r, g, b, w); // this expects that strip.getMainSegment().beginDraw() has been called in handleNotification()
 | 
			
		||||
      strip.getMainSegment().setPixelColor(pix, col); // this expects that strip.getMainSegment().beginDraw() has been called in handleNotification()
 | 
			
		||||
    } else {
 | 
			
		||||
      strip.setPixelColor(pix, r, g, b, w);
 | 
			
		||||
      strip.setPixelColor(pix, col);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue