Implement RGBController_Network packet sending for current set of RGBController commands
This commit is contained in:
parent
e2dfcd5b0f
commit
0270c745ce
6 changed files with 148 additions and 22 deletions
|
|
@ -1,5 +1,5 @@
|
|||
#include "NetworkClient.h"
|
||||
#include "RGBController_Dummy.h"
|
||||
#include "RGBController_Network.h"
|
||||
#include <cstring>
|
||||
|
||||
#ifdef WIN32
|
||||
|
|
@ -211,7 +211,7 @@ void NetworkClient::ListenThread()
|
|||
case NET_PACKET_ID_REQUEST_CONTROLLER_DATA:
|
||||
printf( "Client: NET_PACKET_ID_REQUEST_CONTROLLER_DATA\r\n");
|
||||
|
||||
ProcessReply_ControllerData(header.pkt_size, data);
|
||||
ProcessReply_ControllerData(header.pkt_size, data, header.pkt_dev_idx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -225,9 +225,9 @@ void NetworkClient::ProcessReply_ControllerCount(unsigned int data_size, char *
|
|||
}
|
||||
}
|
||||
|
||||
void NetworkClient::ProcessReply_ControllerData(unsigned int data_size, char * data)
|
||||
void NetworkClient::ProcessReply_ControllerData(unsigned int data_size, char * data, unsigned int dev_idx)
|
||||
{
|
||||
RGBController_Dummy * new_controller = new RGBController_Dummy();
|
||||
RGBController_Network * new_controller = new RGBController_Network(this, dev_idx);
|
||||
|
||||
new_controller->ReadDeviceDescription((unsigned char *)data);
|
||||
|
||||
|
|
@ -252,19 +252,127 @@ void NetworkClient::SendRequest_ControllerCount()
|
|||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_ControllerData(unsigned int idx)
|
||||
void NetworkClient::SendRequest_ControllerData(unsigned int dev_idx)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
unsigned int reply_data;
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = idx;
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_REQUEST_CONTROLLER_DATA;
|
||||
reply_hdr.pkt_size = 0;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_ResizeZone(unsigned int dev_idx, int zone, int new_size)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
int reply_data[2];
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_RESIZEZONE;
|
||||
reply_hdr.pkt_size = sizeof(reply_data);
|
||||
|
||||
reply_data[0] = zone;
|
||||
reply_data[1] = new_size;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
port.tcp_client_write((char *)&reply_data, sizeof(reply_data));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_UpdateLEDs(unsigned int dev_idx)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_UPDATELEDS;
|
||||
reply_hdr.pkt_size = 0;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_UpdateZoneLEDs(unsigned int dev_idx, int zone)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
int reply_data[1];
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_UPDATEZONELEDS;
|
||||
reply_hdr.pkt_size = sizeof(reply_data);
|
||||
|
||||
reply_data[0] = zone;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
port.tcp_client_write((char *)&reply_data, sizeof(reply_data));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_UpdateSingleLED(unsigned int dev_idx, int led)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
int reply_data[1];
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_UPDATESINGLELED;
|
||||
reply_hdr.pkt_size = sizeof(reply_data);
|
||||
|
||||
reply_data[0] = led;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
port.tcp_client_write((char *)&reply_data, sizeof(reply_data));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_SetCustomMode(unsigned int dev_idx)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_SETCUSTOMMODE;
|
||||
reply_hdr.pkt_size = 0;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
}
|
||||
|
||||
void NetworkClient::SendRequest_RGBController_UpdateMode(unsigned int dev_idx)
|
||||
{
|
||||
NetPacketHeader reply_hdr;
|
||||
|
||||
reply_hdr.pkt_magic[0] = 'O';
|
||||
reply_hdr.pkt_magic[1] = 'R';
|
||||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_RGBCONTROLLER_UPDATEMODE;
|
||||
reply_hdr.pkt_size = 0;
|
||||
|
||||
port.tcp_client_write((char *)&reply_hdr, sizeof(NetPacketHeader));
|
||||
}
|
||||
|
|
@ -13,10 +13,20 @@ public:
|
|||
void ListenThread();
|
||||
|
||||
void ProcessReply_ControllerCount(unsigned int data_size, char * data);
|
||||
void ProcessReply_ControllerData(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 idx);
|
||||
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);
|
||||
void SendRequest_RGBController_UpdateZoneLEDs(unsigned int dev_idx, int zone);
|
||||
void SendRequest_RGBController_UpdateSingleLED(unsigned int dev_idx, int led);
|
||||
|
||||
void SendRequest_RGBController_SetCustomMode(unsigned int dev_idx);
|
||||
|
||||
void SendRequest_RGBController_UpdateMode(unsigned int dev_idx);
|
||||
|
||||
protected:
|
||||
std::vector<RGBController *>& controllers;
|
||||
|
|
|
|||
|
|
@ -288,7 +288,7 @@ void NetworkServer::SendReply_ControllerData(SOCKET * client_sock, unsigned int
|
|||
reply_hdr.pkt_magic[2] = 'G';
|
||||
reply_hdr.pkt_magic[3] = 'B';
|
||||
|
||||
reply_hdr.pkt_dev_idx = 0;
|
||||
reply_hdr.pkt_dev_idx = dev_idx;
|
||||
reply_hdr.pkt_id = NET_PACKET_ID_REQUEST_CONTROLLER_DATA;
|
||||
reply_hdr.pkt_size = reply_size;
|
||||
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ SOURCES += \
|
|||
RGBController/RGBController_MSI3Zone.cpp \
|
||||
RGBController/RGBController_MSIMysticLight.cpp \
|
||||
RGBController/RGBController_MSIRGB.cpp \
|
||||
RGBController/RGBController_Network.cpp \
|
||||
RGBController/RGBController_NZXTKraken.cpp \
|
||||
RGBController/RGBController_PatriotViper.cpp \
|
||||
RGBController/RGBController_Polychrome.cpp \
|
||||
|
|
@ -247,6 +248,7 @@ HEADERS += \
|
|||
RGBController/RGBController_MSI3Zone.h \
|
||||
RGBController/RGBController_MSIMysticLight.h \
|
||||
RGBController/RGBController_MSIRGB.h \
|
||||
RGBController/RGBController_Network.h \
|
||||
RGBController/RGBController_PatriotViper.h \
|
||||
RGBController/RGBController_Polychrome.h \
|
||||
RGBController/RGBController_PoseidonZRGB.h \
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@
|
|||
|
||||
#include "RGBController_Network.h"
|
||||
|
||||
RGBController_Network::RGBController_Network()
|
||||
RGBController_Network::RGBController_Network(NetworkClient * client_ptr, unsigned int dev_idx_val)
|
||||
{
|
||||
//Don't need to set up anything, this class should be initialized by network manager
|
||||
client = client_ptr;
|
||||
dev_idx = dev_idx_val;
|
||||
}
|
||||
|
||||
void RGBController_Network::SetupZones()
|
||||
|
|
@ -18,32 +19,32 @@ void RGBController_Network::SetupZones()
|
|||
//Don't send anything, this function should only process on host
|
||||
}
|
||||
|
||||
void RGBController_Network::ResizeZone(int /*zone*/, int /*new_size*/)
|
||||
void RGBController_Network::ResizeZone(int zone, int new_size)
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_RESIZEZONE
|
||||
client->SendRequest_RGBController_ResizeZone(dev_idx, zone, new_size);
|
||||
}
|
||||
|
||||
void RGBController_Network::UpdateLEDs()
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_UPDATELEDS
|
||||
client->SendRequest_RGBController_UpdateLEDs(dev_idx);
|
||||
}
|
||||
|
||||
void RGBController_Network::UpdateZoneLEDs(int /*zone*/)
|
||||
void RGBController_Network::UpdateZoneLEDs(int zone)
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_UPDATEZONELEDS
|
||||
client->SendRequest_RGBController_UpdateZoneLEDs(dev_idx, zone);
|
||||
}
|
||||
|
||||
void RGBController_Network::UpdateSingleLED(int /*led*/)
|
||||
void RGBController_Network::UpdateSingleLED(int led)
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_UPDATESINGLELED
|
||||
client->SendRequest_RGBController_UpdateSingleLED(dev_idx, led);
|
||||
}
|
||||
|
||||
void RGBController_Network::SetCustomMode()
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_SETCUSTOMMODE
|
||||
client->SendRequest_RGBController_SetCustomMode(dev_idx);
|
||||
}
|
||||
|
||||
void RGBController_Network::UpdateMode()
|
||||
{
|
||||
//Send NET_PACKET_ID_RGBCONTROLLER_UPDATEMODE
|
||||
client->SendRequest_RGBController_UpdateMode(dev_idx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@
|
|||
#pragma once
|
||||
|
||||
#include "RGBController.h"
|
||||
#include "NetworkClient.h"
|
||||
|
||||
class RGBController_Network : public RGBController
|
||||
{
|
||||
public:
|
||||
RGBController_Network();
|
||||
RGBController_Network(NetworkClient * client_ptr, unsigned int dev_idx_val);
|
||||
|
||||
void SetupZones();
|
||||
|
||||
|
|
@ -25,4 +26,8 @@ public:
|
|||
|
||||
void SetCustomMode();
|
||||
void UpdateMode();
|
||||
|
||||
private:
|
||||
NetworkClient * client;
|
||||
unsigned int dev_idx;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue