Replace C-style clock() with std::chrono::steady_clock to fix timing on Linux

This commit is contained in:
Adam Honse 2020-07-02 16:59:30 -05:00
parent 5aad79135f
commit ad4e198aea
4 changed files with 8 additions and 7 deletions

View file

@ -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 |

View file

@ -5,6 +5,7 @@
\*---------------------------------------------------------*/
#include "RGBController.h"
#include <chrono>
#include <vector>
#include <hidapi/hidapi.h>
@ -109,7 +110,7 @@ public:
private:
hid_device* dev;
std::string firmware_version;
clock_t last_commit_time;
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;
void SendFirmwareRequest();

View file

@ -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();
}

View file

@ -8,7 +8,7 @@
\*-----------------------------------------*/
#pragma once
#include <time.h>
#include <chrono>
#include "RGBController.h"
#include "HyperXKeyboardController.h"
@ -35,5 +35,5 @@ public:
private:
HyperXKeyboardController* hyperx;
clock_t last_update_time;
std::chrono::time_point<std::chrono::steady_clock> last_update_time;
};