OpenRGB/NetworkClient.h
2020-05-09 15:48:14 -05:00

44 lines
1.5 KiB
C++

#include "RGBController.h"
#include "NetworkProtocol.h"
#include "net_port.h"
#include <thread>
#pragma once
class NetworkClient
{
public:
NetworkClient(std::vector<RGBController *>& control);
void ConnectionThreadFunction();
void ListenThreadFunction();
void ProcessReply_ControllerCount(unsigned int data_size, char * data);
void ProcessReply_ControllerData(unsigned int data_size, char * data, unsigned int dev_idx);
void SendRequest_ControllerCount();
void SendRequest_ControllerData(unsigned int dev_idx);
void SendRequest_RGBController_ResizeZone(unsigned int dev_idx, int zone, int new_size);
void SendRequest_RGBController_UpdateLEDs(unsigned int dev_idx, unsigned char * data, unsigned int size);
void SendRequest_RGBController_UpdateZoneLEDs(unsigned int dev_idx, unsigned char * data, unsigned int size);
void SendRequest_RGBController_UpdateSingleLED(unsigned int dev_idx, unsigned char * data, unsigned int size);
void SendRequest_RGBController_SetCustomMode(unsigned int dev_idx);
void SendRequest_RGBController_UpdateMode(unsigned int dev_idx, unsigned char * data, unsigned int size);
protected:
std::vector<RGBController *>& controllers;
std::vector<RGBController *> server_controllers;
private:
net_port port;
bool server_connected;
unsigned int server_controller_count;
std::thread * ConnectionThread;
std::thread * ListenThread;
};