Files
OpenRGB/Controllers/DDPController/RGBController_DDP.h
Wolfieee Wolf 2a9cce70e1 Add DDP controller with unified manual device support
- Added DDPController with Push flag fix (0x41 instead of 0x40) for WLED compatibility
- Implemented keepalive functionality with configurable timeout (default 1 second)
- Created DDPSettingsEntry that integrates with new unified ManualDevicesSettingsPage
- Supports RGB data type with proper DDP protocol implementation
- Thread-safe keepalive system prevents devices from timing out
- Compatible with WLED and other DDP protocol devices

Key fixes based on feedback:
* Push flag now correctly set to 0x41 (DDP_FLAG_VER_1 | DDP_FLAG_PUSH)
* Keepalive thread prevents devices from reverting to hardware effects
* Proper DDP packet structure with correct data types and addressing
2025-07-01 15:58:06 +10:00

35 lines
1.1 KiB
C++

/*---------------------------------------------------------*\
| RGBController_DDP.h |
| |
| RGBController for DDP devices |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <vector>
#include "RGBController.h"
#include "DDPController.h"
class RGBController_DDP : public RGBController
{
public:
RGBController_DDP(std::vector<DDPDevice> device_list);
~RGBController_DDP();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
void SetCustomMode();
void SetKeepaliveTime(unsigned int time_ms);
private:
std::vector<DDPDevice> devices;
DDPController* controller;
};