diff --git a/HyperionRGB/HyperionRGB.ino b/HyperionRGB/HyperionRGB.ino index 5a72d2d..6f5d9e9 100644 --- a/HyperionRGB/HyperionRGB.ino +++ b/HyperionRGB/HyperionRGB.ino @@ -61,7 +61,7 @@ void animationStep() { } } -void changeMode(Mode newMode, double interval = 0.0d) { +void changeMode(Mode newMode, int interval = 0) { if (newMode != activeMode) { Log.info("Mode changed to %i", newMode); activeMode = newMode; @@ -76,19 +76,21 @@ void changeMode(Mode newMode, double interval = 0.0d) { case STATIC_COLOR: break; case RAINBOW: - if (interval == 0.0d) - interval = 0.5d; - animationThread.setInterval(interval / 1000); + if (interval == 0) + interval = 500; + animationThread.setInterval(interval); break; case FIRE2012: - if (interval == 0.0d) - interval = 0.016d; - animationThread.setInterval(interval / 1000); + if (interval == 0) + interval = 16; + animationThread.setInterval(interval); break; case HYPERION_UDP: if (!autoswitch) udpLed.begin(); } + if (interval > 0) + Log.debug("Interval set to %ims", interval); } } diff --git a/HyperionRGB/WrapperJsonServer.cpp b/HyperionRGB/WrapperJsonServer.cpp index 9211268..bec2a47 100644 --- a/HyperionRGB/WrapperJsonServer.cpp +++ b/HyperionRGB/WrapperJsonServer.cpp @@ -65,9 +65,11 @@ void WrapperJsonServer::readData(void) { _tcpClient.println("{\"success\":true}"); } else if (command.equals("effect")) { String effect = root["effect"]["name"].asString(); - double speed = root["effect"]["speed"]; - double interval = 1 / speed; - int duration = root["duration"]; + double effectSpeed = root["effect"]["args"]["speed"]; + int interval = 0; + if (effectSpeed > 0) { + interval = (int)(1000.0 / effectSpeed); + } if (effect.equals("Hyperion UDP")) { effectChange(HYPERION_UDP); @@ -103,10 +105,10 @@ void WrapperJsonServer::clearCmd(void) { } } -void WrapperJsonServer::onEffectChange(void(* function) (Mode, double)) { +void WrapperJsonServer::onEffectChange(void(* function) (Mode, int)) { effectChangePointer = function; } -void WrapperJsonServer::effectChange(Mode effect, double interval/* = 1.0d*/) { +void WrapperJsonServer::effectChange(Mode effect, int interval/* = 0*/) { if (effectChangePointer) { effectChangePointer(effect, interval); } diff --git a/HyperionRGB/WrapperJsonServer.h b/HyperionRGB/WrapperJsonServer.h index af17be5..62c808d 100644 --- a/HyperionRGB/WrapperJsonServer.h +++ b/HyperionRGB/WrapperJsonServer.h @@ -20,7 +20,7 @@ class WrapperJsonServer { void onLedColorWipe(void(* function) (byte, byte, byte)), onClearCmd(void(* function) (void)), - onEffectChange(void(* function) (Mode, double)); + onEffectChange(void(* function) (Mode, int)); private: void handleConnection(boolean newClient), @@ -33,8 +33,8 @@ class WrapperJsonServer { clearCmd(void), (* clearCmdPointer) (void); void - effectChange(Mode effect, double interval = 1.0d), - (* effectChangePointer) (Mode, double); + effectChange(Mode effect, int interval = 0), + (* effectChangePointer) (Mode, int); WiFiServer _tcpServer; WiFiClient _tcpClient;