From ad4e198aea2201b007630f6f25f6e4bb9833dbdc Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 2 Jul 2020 16:59:30 -0500 Subject: [PATCH] Replace C-style clock() with std::chrono::steady_clock to fix timing on Linux --- .../CorsairLightingNodeController.cpp | 4 ++-- .../CorsairLightingNodeController.h | 3 ++- RGBController/RGBController_HyperXKeyboard.cpp | 4 ++-- RGBController/RGBController_HyperXKeyboard.h | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp index fe7e1e12..6fadc8e7 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.cpp @@ -65,7 +65,7 @@ void CorsairLightingNodeController::KeepaliveThread() { while(1) { - if((clock() - last_commit_time) > 5000) + if((std::chrono::steady_clock::now() - last_commit_time) > std::chrono::seconds(5)) { SendCommit(); } @@ -271,7 +271,7 @@ void CorsairLightingNodeController::SendCommit() /*-----------------------------------------------------*\ | Update last commit time | \*-----------------------------------------------------*/ - last_commit_time = clock(); + last_commit_time = std::chrono::steady_clock::now(); /*-----------------------------------------------------*\ | Set up Commit packet | diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h index 1d0d993c..83510612 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeController.h @@ -5,6 +5,7 @@ \*---------------------------------------------------------*/ #include "RGBController.h" +#include #include #include @@ -109,7 +110,7 @@ public: private: hid_device* dev; std::string firmware_version; - clock_t last_commit_time; + std::chrono::time_point last_commit_time; void SendFirmwareRequest(); diff --git a/RGBController/RGBController_HyperXKeyboard.cpp b/RGBController/RGBController_HyperXKeyboard.cpp index 5030ba1e..a08b9582 100644 --- a/RGBController/RGBController_HyperXKeyboard.cpp +++ b/RGBController/RGBController_HyperXKeyboard.cpp @@ -317,7 +317,7 @@ void RGBController_HyperXKeyboard::ResizeZone(int /*zone*/, int /*new_size*/) void RGBController_HyperXKeyboard::DeviceUpdateLEDs() { - last_update_time = clock(); + last_update_time = std::chrono::steady_clock::now(); if(active_mode == 0) { @@ -363,7 +363,7 @@ void RGBController_HyperXKeyboard::KeepaliveThread() { if(active_mode == 0) { - if((clock() - last_update_time) > 50) + if((std::chrono::steady_clock::now() - last_update_time) > std::chrono::milliseconds(50)) { UpdateLEDs(); } diff --git a/RGBController/RGBController_HyperXKeyboard.h b/RGBController/RGBController_HyperXKeyboard.h index e94ab6c9..602a6759 100644 --- a/RGBController/RGBController_HyperXKeyboard.h +++ b/RGBController/RGBController_HyperXKeyboard.h @@ -8,7 +8,7 @@ \*-----------------------------------------*/ #pragma once -#include +#include #include "RGBController.h" #include "HyperXKeyboardController.h" @@ -35,5 +35,5 @@ public: private: HyperXKeyboardController* hyperx; - clock_t last_update_time; + std::chrono::time_point last_update_time; };