Convert usermods from header to library

This commit is contained in:
Will Tatam 2025-01-11 21:14:20 +00:00
parent 71b0e8e937
commit 90b18158fc
75 changed files with 490 additions and 14 deletions

View File

@ -254,3 +254,7 @@ public:
return USERMOD_ID_ANALOG_CLOCK;
}
};
static AnalogClockUsermod analog_clock;
REGISTER_USERMOD(analog_clock);

View File

@ -0,0 +1,9 @@
{
"name:": "Analog_Clock",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -562,3 +562,7 @@ const char Animated_Staircase::_bottomEcho_pin[] PROGMEM = "bottomEch
const char Animated_Staircase::_topEchoCm[] PROGMEM = "top-dist-cm";
const char Animated_Staircase::_bottomEchoCm[] PROGMEM = "bottom-dist-cm";
const char Animated_Staircase::_togglePower[] PROGMEM = "toggle-on-off";
static Animated_Staircase animated_staircase;
REGISTER_USERMOD(animated_staircase);

View File

@ -0,0 +1,9 @@
{
"name:": "Animated_Staircase",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -857,3 +857,7 @@ const char UsermodBattery::_preset[] PROGMEM = "preset";
const char UsermodBattery::_duration[] PROGMEM = "duration";
const char UsermodBattery::_init[] PROGMEM = "init";
const char UsermodBattery::_haDiscovery[] PROGMEM = "HA-discovery";
static UsermodBattery battery;
REGISTER_USERMOD(battery);

View File

@ -0,0 +1,9 @@
{
"name:": "Battery",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -299,4 +299,7 @@ class UsermodCronixie : public Usermod {
{
return USERMOD_ID_CRONIXIE;
}
};
};
static UsermodCronixie cronixie;
REGISTER_USERMOD(cronixie);

View File

@ -0,0 +1,9 @@
{
"name:": "Cronixie",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -245,3 +245,7 @@ class UsermodDHT : public Usermod {
}
};
static UsermodDHT dht;
REGISTER_USERMOD(dht);

View File

@ -0,0 +1,9 @@
{
"name:": "DHT",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -156,3 +156,7 @@ class ElekstubeIPSUsermod : public Usermod {
const char ElekstubeIPSUsermod::_name[] PROGMEM = "EleksTubeIPS";
const char ElekstubeIPSUsermod::_tubeSeg[] PROGMEM = "tubeSegment";
const char ElekstubeIPSUsermod::_digitOffset[] PROGMEM = "digitOffset";
static ElekstubeIPSUsermod elekstube_ips;
REGISTER_USERMOD(elekstube_ips);

View File

@ -0,0 +1,9 @@
{
"name:": "EleksTube_IPS",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -151,3 +151,7 @@ class LDR_Dusk_Dawn_v2 : public Usermod {
};
const char LDR_Dusk_Dawn_v2::_name[] PROGMEM = "LDR_Dusk_Dawn_v2";
static LDR_Dusk_Dawn_v2 ldr_dusk_dawn_v2;
REGISTER_USERMOD(ldr_dusk_dawn_v2);

View File

@ -0,0 +1,9 @@
{
"name:": "LDR_Dusk_Dawn_v2",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -571,3 +571,7 @@ bool PIRsensorSwitch::readFromConfig(JsonObject &root)
// use "return !top["newestParameter"].isNull();" when updating Usermod with new features
return !(pins.isNull() || pins.size() != PIR_SENSOR_MAX_SENSORS);
}
static PIRsensorSwitch pir_sensor_switch;
REGISTER_USERMOD(pir_sensor_switch);

View File

@ -0,0 +1,9 @@
{
"name:": "PIR_sensor_switch",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -397,3 +397,7 @@ const char PWMFanUsermod::_maxPWMValuePct[] PROGMEM = "max-PWM-percent";
const char PWMFanUsermod::_IRQperRotation[] PROGMEM = "IRQs-per-rotation";
const char PWMFanUsermod::_speed[] PROGMEM = "speed";
const char PWMFanUsermod::_lock[] PROGMEM = "lock";
static PWMFanUsermod pwm_fan;
REGISTER_USERMOD(pwm_fan);

View File

@ -0,0 +1,9 @@
{
"name:": "PWM_fan",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -48,4 +48,7 @@ class RTCUsermod : public Usermod {
{
return USERMOD_ID_RTC;
}
};
};
static RTCUsermod rtc;
REGISTER_USERMOD(rtc);

View File

@ -0,0 +1,9 @@
{
"name:": "RTC",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -210,3 +210,7 @@ const char Usermod_SN_Photoresistor::_referenceVoltage[] PROGMEM = "supplied-vol
const char Usermod_SN_Photoresistor::_resistorValue[] PROGMEM = "resistor-value";
const char Usermod_SN_Photoresistor::_adcPrecision[] PROGMEM = "adc-precision";
const char Usermod_SN_Photoresistor::_offset[] PROGMEM = "offset";
static Usermod_SN_Photoresistor sn_photoresistor;
REGISTER_USERMOD(sn_photoresistor);

View File

@ -0,0 +1,9 @@
{
"name:": "SN_Photoresistor",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -410,4 +410,7 @@ class St7789DisplayUsermod : public Usermod {
//More methods can be added in the future, this example will then be extended.
//Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class!
};
};
static name. st7789_display;
REGISTER_USERMOD(st7789_display);

View File

@ -0,0 +1,9 @@
{
"name:": "ST7789_display",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -229,3 +229,7 @@ const char Si7021_MQTT_HA::_name[] PROGMEM = "Si7021 MQTT (Hom
const char Si7021_MQTT_HA::_enabled[] PROGMEM = "enabled";
const char Si7021_MQTT_HA::_sendAdditionalSensors[] PROGMEM = "Send Dew Point, Abs. Humidity and Heat Index";
const char Si7021_MQTT_HA::_haAutoDiscovery[] PROGMEM = "Home Assistant MQTT Auto-Discovery";
static Si7021_MQTT_HA si7021_mqtt_ha;
REGISTER_USERMOD(si7021_mqtt_ha);

View File

@ -0,0 +1,9 @@
{
"name:": "Si7021_MQTT_HA",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -471,3 +471,7 @@ static uint16_t mode_temperature() {
SEGMENT.fill(SEGMENT.color_from_palette(i, false, false, 255));
return FRAMETIME;
}
static UsermodTemperature temperature;
REGISTER_USERMOD(temperature);

View File

@ -0,0 +1,9 @@
{
"name:": "Temperature",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -126,4 +126,7 @@ class UsermodVL53L0XGestures : public Usermod {
{
return USERMOD_ID_VL53L0X;
}
};
};
static UsermodVL53L0XGestures vl53l0x_gestures;
REGISTER_USERMOD(vl53l0x_gestures);

View File

@ -0,0 +1,9 @@
{
"name:": "VL53L0X_gestures",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -457,3 +457,7 @@ void BobLightUsermod::pollBob() {
}
}
}
static BobLightUsermod boblight;
REGISTER_USERMOD(boblight);

View File

@ -0,0 +1,9 @@
{
"name:": "boblight",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -78,4 +78,7 @@ class BuzzerUsermod : public Usermod {
{
return USERMOD_ID_BUZZER;
}
};
};
static BuzzerUsermod buzzer;
REGISTER_USERMOD(buzzer);

View File

@ -0,0 +1,9 @@
{
"name:": "buzzer",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -224,4 +224,7 @@ void addToConfig(JsonObject& root) override
// add more strings here to reduce flash memory usage
const char DeepSleepUsermod::_name[] PROGMEM = "DeepSleep";
const char DeepSleepUsermod::_enabled[] PROGMEM = "enabled";
const char DeepSleepUsermod::_enabled[] PROGMEM = "enabled";
static DeepSleepUsermod deep_sleep;
REGISTER_USERMOD(deep_sleep);

View File

@ -0,0 +1,9 @@
{
"name:": "deep_sleep",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -0,0 +1,9 @@
{
"name:": "mpu6050_imu",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -446,3 +446,7 @@ const char MPU6050Driver::_z_acc_bias[] PROGMEM = "z_acc_bias";
const char MPU6050Driver::_x_gyro_bias[] PROGMEM = "x_gyro_bias";
const char MPU6050Driver::_y_gyro_bias[] PROGMEM = "y_gyro_bias";
const char MPU6050Driver::_z_gyro_bias[] PROGMEM = "z_gyro_bias";
static MPU6050Driver mpu6050_imu;
REGISTER_USERMOD(mpu6050_imu);

View File

@ -0,0 +1,9 @@
{
"name:": "multi_relay",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -842,3 +842,7 @@ const char MultiRelay::_pcfAddress[] PROGMEM = "PCF8574-address";
const char MultiRelay::_switch[] PROGMEM = "switch";
const char MultiRelay::_toggle[] PROGMEM = "toggle";
const char MultiRelay::_Command[] PROGMEM = "/command";
static MultiRelay multi_relay;
REGISTER_USERMOD(multi_relay);

View File

@ -0,0 +1,9 @@
{
"name:": "pixels_dice_tray",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -533,3 +533,7 @@ class PixelsDiceTrayUsermod : public Usermod {
// extended. Your usermod will remain compatible as it does not need to
// implement all methods from the Usermod base class!
};
static PixelsDiceTrayUsermod pixels_dice_tray;
REGISTER_USERMOD(pixels_dice_tray);

View File

@ -0,0 +1,9 @@
{
"name:": "pov_display",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -83,3 +83,7 @@ class PovDisplayUsermod : public Usermod
void connected() {}
};
static PovDisplayUsermod pov_display;
REGISTER_USERMOD(pov_display);

View File

@ -0,0 +1,9 @@
{
"name:": "pwm_outputs",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -219,3 +219,7 @@ class PwmOutputsUsermod : public Usermod {
const char PwmOutputsUsermod::USERMOD_NAME[] PROGMEM = "PwmOutputs";
const char PwmOutputsUsermod::PWM_STATE_NAME[] PROGMEM = "pwm";
static PwmOutputsUsermod pwm_outputs;
REGISTER_USERMOD(pwm_outputs);

View File

@ -0,0 +1,9 @@
{
"name:": "quinled-an-penta",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -752,4 +752,7 @@ const unsigned char QuinLEDAnPentaUsermod::quinLedLogo[] PROGMEM = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
};
static QuinLEDAnPentaUsermod quinled-an-penta;
REGISTER_USERMOD(quinled-an-penta);

View File

@ -0,0 +1,9 @@
{
"name:": "rgb-rotary-encoder",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -340,4 +340,7 @@ const char RgbRotaryEncoderUsermod::_ebIo[] PROGMEM = "eb-pin";
const char RgbRotaryEncoderUsermod::_ledMode[] PROGMEM = "LED-Mode";
const char RgbRotaryEncoderUsermod::_ledBrightness[] PROGMEM = "LED-Brightness";
const char RgbRotaryEncoderUsermod::_stepsPerClick[] PROGMEM = "Steps-per-Click";
const char RgbRotaryEncoderUsermod::_incrementPerClick[] PROGMEM = "Increment-per-Click";
const char RgbRotaryEncoderUsermod::_incrementPerClick[] PROGMEM = "Increment-per-Click";
static RgbRotaryEncoderUsermod rgb-rotary-encoder;
REGISTER_USERMOD(rgb-rotary-encoder);

View File

@ -0,0 +1,9 @@
{
"name:": "sd_card",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -240,4 +240,7 @@ void listDir( const char * dirname, uint8_t levels){
}
}
#endif
#endif
static UsermodSdCard sd_card;
REGISTER_USERMOD(sd_card);

View File

@ -0,0 +1,9 @@
{
"name:": "seven_segment_display",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -498,4 +498,7 @@ const char SevenSegmentDisplay::_str_timeEnabled[] PROGMEM = "timeEnabled";
const char SevenSegmentDisplay::_str_scrollSpd[] PROGMEM = "scrollSpd";
const char SevenSegmentDisplay::_str_displayMask[] PROGMEM = "displayMask";
const char SevenSegmentDisplay::_str_displayMsg[] PROGMEM = "displayMsg";
const char SevenSegmentDisplay::_str_sevenSeg[] PROGMEM = "sevenSeg";
const char SevenSegmentDisplay::_str_sevenSeg[] PROGMEM = "sevenSeg";
static SevenSegmentDisplay seven_segment_display;
REGISTER_USERMOD(seven_segment_display);

View File

@ -0,0 +1,9 @@
{
"name:": "sht",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -477,4 +477,7 @@ float ShtUsermod::getTemperature() {
*/
const char* ShtUsermod::getUnitString() {
return unitOfTemp ? "°F" : "°C";
}
}
static ShtUsermod sht;
REGISTER_USERMOD(sht);

View File

@ -0,0 +1,9 @@
{
"name:": "smartnest",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -203,3 +203,7 @@ public:
}
}
};
static Smartnest smartnest;
REGISTER_USERMOD(smartnest);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_rotary_brightness_color",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -187,3 +187,7 @@ public:
return configComplete;
}
};
static RotaryEncoderBrightnessColor usermod_rotary_brightness_color;
REGISTER_USERMOD(usermod_rotary_brightness_color);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_HttpPullLightControl",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_four_line_display_ALT",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -1386,3 +1386,7 @@ bool FourLineDisplayUsermod::readFromConfig(JsonObject& root) {
// use "return !top["newestParameter"].isNull();" when updating Usermod with new features
return !top[FPSTR(_contrastFix)].isNull();
}
static FourLineDisplayUsermod usermod_v2_four_line_display_alt;
REGISTER_USERMOD(usermod_v2_four_line_display_alt);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_klipper_percentage",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -219,4 +219,7 @@ public:
}
};
const char klipper_percentage::_name[] PROGMEM = "Klipper_Percentage";
const char klipper_percentage::_enabled[] PROGMEM = "enabled";
const char klipper_percentage::_enabled[] PROGMEM = "enabled";
static klipper_percentage usermod_v2_klipper_percentage;
REGISTER_USERMOD(usermod_v2_klipper_percentage);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_ping_pong_clock",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -117,3 +117,7 @@ public:
}
};
static PingPongClockUsermod usermod_v2_ping_pong_clock;
REGISTER_USERMOD(usermod_v2_ping_pong_clock);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_rotary_encoder_ui_ALT",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -1175,3 +1175,7 @@ const char RotaryEncoderUIUsermod::_applyToAll[] PROGMEM = "apply-2-all-seg";
const char RotaryEncoderUIUsermod::_pcf8574[] PROGMEM = "use-PCF8574";
const char RotaryEncoderUIUsermod::_pcfAddress[] PROGMEM = "PCF8574-address";
const char RotaryEncoderUIUsermod::_pcfINTpin[] PROGMEM = "PCF8574-INT-pin";
static RotaryEncoderUIUsermod usermod_v2_rotary_encoder_ui_alt;
REGISTER_USERMOD(usermod_v2_rotary_encoder_ui_alt);

View File

@ -0,0 +1,9 @@
{
"name:": "usermod_v2_word_clock",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -504,4 +504,7 @@ class WordClockUsermod : public Usermod
//More methods can be added in the future, this example will then be extended.
//Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class!
};
};
static WordClockUsermod usermod_v2_word_clock;
REGISTER_USERMOD(usermod_v2_word_clock);

View File

@ -0,0 +1,9 @@
{
"name:": "wireguard",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -124,4 +124,7 @@ class WireguardUsermod : public Usermod {
int endpoint_port = 0;
bool is_enabled = false;
unsigned long lastTime = 0;
};
};
static WireguardUsermod wireguard;
REGISTER_USERMOD(wireguard);

View File

@ -0,0 +1,9 @@
{
"name:": "wizlights",
"build": {
"srcDir": ".",
"includeDir": "../../wled00",
"libLDFMode": "chain+",
"libArchive": false
}
}

View File

@ -156,3 +156,7 @@ class WizLightsUsermod : public Usermod {
uint16_t getId(){return USERMOD_ID_WIZLIGHTS;}
};
static WizLightsUsermod wizlights;
REGISTER_USERMOD(wizlights);