Attempt to implement !513 using shared mutex pointer for each detected mouse/mousemat combo

This commit is contained in:
Adam Honse 2021-05-24 17:30:50 -05:00
parent a2a93daaab
commit 4287128fb4
3 changed files with 73 additions and 14 deletions

View file

@ -406,10 +406,16 @@ void DetectLogitechMouseGLS(hid_device_info* info, const std::string& name)
if(dev)
{
/*---------------------------------------------*\
| Create mutex to prevent the two controllers |
| from interfering with each other |
\*---------------------------------------------*/
std::shared_ptr<std::mutex> logitech_mutex = std::make_shared<std::mutex>();
/*---------------------------------------------*\
| Add mouse |
\*---------------------------------------------*/
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, 0x01, 0x07, 0x3C);
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, 0x01, 0x07, 0x3C, logitech_mutex);
RGBController_LogitechGLightsync* rgb_controller = new RGBController_LogitechGLightsync(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
@ -417,7 +423,7 @@ void DetectLogitechMouseGLS(hid_device_info* info, const std::string& name)
/*---------------------------------------------*\
| Add Powerplay mousemat |
\*---------------------------------------------*/
LogitechGLightsyncController* mousemat_controller = new LogitechGLightsyncController(dev, dev, info->path, 0x07, 0x0B, 0x3C);
LogitechGLightsyncController* mousemat_controller = new LogitechGLightsyncController(dev, dev, info->path, 0x07, 0x0B, 0x3C, logitech_mutex);
RGBController_LogitechGPowerPlay* mousemat_rgb_controller = new RGBController_LogitechGPowerPlay(mousemat_controller);
mousemat_rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(mousemat_rgb_controller);