mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-04-03 22:01:20 -04:00
Add Nollie controller OS2.1
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/*---------------------------------------------------------*\
|
||||
/*---------------------------------------------------------*\
|
||||
| NollieController.cpp |
|
||||
| |
|
||||
| Driver for Nollie |
|
||||
@@ -136,7 +136,8 @@ void NollieController::SetMos(bool mos)
|
||||
|
||||
void NollieController::SetChannelLEDs(unsigned char channel, RGBColor* colors, unsigned int num_colors)
|
||||
{
|
||||
if(usb_pid == NOLLIE32_PID || usb_pid == NOLLIE16_PID)
|
||||
if(usb_pid == NOLLIE32_PID || usb_pid == NOLLIE16_PID
|
||||
|| usb_pid == NOLLIE32_OS2_1_PID || usb_pid == NOLLIE16_OS2_1_PID)
|
||||
{
|
||||
SendPacket(channel,&colors[0], num_colors);
|
||||
}
|
||||
@@ -216,9 +217,12 @@ void NollieController::SendPacketFS(unsigned char channel,unsigned char packet_i
|
||||
packet_interval = 2;
|
||||
break;
|
||||
case NOLLIE8_PID:
|
||||
case NOLLIE8_OS2_1_PID:
|
||||
case PRISM8_OS2_1_PID:
|
||||
packet_interval = 6;
|
||||
break;
|
||||
case NOLLIE1_PID:
|
||||
case NOLLIE1_OS2_1_PID:
|
||||
packet_interval = 30;
|
||||
break;
|
||||
default:
|
||||
@@ -233,7 +237,8 @@ void NollieController::SendPacketFS(unsigned char channel,unsigned char packet_i
|
||||
usb_buf[0x02 + (color_idx * 3)] = RGBGetRValue(colors[color_idx]);
|
||||
usb_buf[0x03 + (color_idx * 3)] = RGBGetGValue(colors[color_idx]);
|
||||
usb_buf[0x04 + (color_idx * 3)] = RGBGetBValue(colors[color_idx]);
|
||||
if(dev_pid == NOLLIE8_PID || dev_pid == NOLLIE1_PID )
|
||||
if(dev_pid == NOLLIE8_PID || dev_pid == NOLLIE1_PID
|
||||
|| dev_pid == NOLLIE8_OS2_1_PID || dev_pid == NOLLIE1_OS2_1_PID || dev_pid == PRISM8_OS2_1_PID)
|
||||
{
|
||||
usb_buf[0x02 + (color_idx * 3)] = RGBGetGValue(colors[color_idx]);
|
||||
usb_buf[0x03 + (color_idx * 3)] = RGBGetRValue(colors[color_idx]);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*---------------------------------------------------------*\
|
||||
/*---------------------------------------------------------*\
|
||||
| NollieControllerDetect.cpp |
|
||||
| |
|
||||
| Detector for Nollie |
|
||||
@@ -44,3 +44,9 @@ REGISTER_HID_DETECTOR("Nollie 32_OS2", DetectNollieControllers, NOLLIERGBOS_2_VI
|
||||
REGISTER_HID_DETECTOR("Nollie 16_OS2", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE16_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 8_OS2", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE8_PID);
|
||||
REGISTER_HID_DETECTOR("Nollie 1_OS2", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE1_PID);
|
||||
/* OS2_1 composite device: RGB HID on interface 2 (1/8 CH) or 0 (16/32 CH) */
|
||||
REGISTER_HID_DETECTOR_I("Nollie 32_OS2_1", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE32_OS2_1_PID, 0);
|
||||
REGISTER_HID_DETECTOR_I("Nollie 16_OS2_1", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE16_OS2_1_PID, 0);
|
||||
REGISTER_HID_DETECTOR_I("Nollie 8_OS2_1", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE8_OS2_1_PID, 2);
|
||||
REGISTER_HID_DETECTOR_I("Prism8 8_OS2_1", DetectNollieControllers, NOLLIERGBOS_2_VID, PRISM8_OS2_1_PID, 2);
|
||||
REGISTER_HID_DETECTOR_I("Nollie 1_OS2_1", DetectNollieControllers, NOLLIERGBOS_2_VID, NOLLIE1_OS2_1_PID, 2);
|
||||
|
||||
@@ -121,6 +121,51 @@ static const nollie_device nollie1_os2 =
|
||||
dflt
|
||||
};
|
||||
|
||||
static const nollie_device nollie32_os2_1 =
|
||||
{
|
||||
NOLLIERGBOS_2_VID,
|
||||
NOLLIE32_OS2_1_PID,
|
||||
32,
|
||||
NOLLIE_HS_CH_LED_NUM,
|
||||
ch32
|
||||
};
|
||||
|
||||
static const nollie_device nollie16_os2_1 =
|
||||
{
|
||||
NOLLIERGBOS_2_VID,
|
||||
NOLLIE16_OS2_1_PID,
|
||||
16,
|
||||
NOLLIE_HS_CH_LED_NUM,
|
||||
n16
|
||||
};
|
||||
|
||||
static const nollie_device nollie8_os2_1 =
|
||||
{
|
||||
NOLLIERGBOS_2_VID,
|
||||
NOLLIE8_OS2_1_PID,
|
||||
8,
|
||||
126,
|
||||
dflt
|
||||
};
|
||||
|
||||
static const nollie_device prism8_os2_1 =
|
||||
{
|
||||
NOLLIERGBOS_2_VID,
|
||||
PRISM8_OS2_1_PID,
|
||||
8,
|
||||
126,
|
||||
dflt
|
||||
};
|
||||
|
||||
static const nollie_device nollie1_os2_1 =
|
||||
{
|
||||
NOLLIERGBOS_2_VID,
|
||||
NOLLIE1_OS2_1_PID,
|
||||
1,
|
||||
630,
|
||||
dflt
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Nollie Device List |
|
||||
\*---------------------------------------------------------*/
|
||||
@@ -137,6 +182,11 @@ static const nollie_device* device_list[] =
|
||||
&nollie16_os2,
|
||||
&nollie8_os2,
|
||||
&nollie1_os2,
|
||||
&nollie32_os2_1,
|
||||
&nollie16_os2_1,
|
||||
&nollie8_os2_1,
|
||||
&prism8_os2_1,
|
||||
&nollie1_os2_1,
|
||||
};
|
||||
|
||||
const unsigned int NOLLIE_NUM_DEVICES = (sizeof(device_list) / sizeof(device_list[ 0 ]));
|
||||
|
||||
@@ -34,6 +34,13 @@
|
||||
#define NOLLIE28_L1_PID 0x1617
|
||||
#define NOLLIE28_L2_PID 0x1618
|
||||
|
||||
/* OS2_1 USB layout (interface 2 for 1/8 CH, 0 for 16/32 CH); same HID protocol */
|
||||
#define NOLLIE1_OS2_1_PID 0x2A01
|
||||
#define NOLLIE8_OS2_1_PID 0x2A08
|
||||
#define PRISM8_OS2_1_PID 0x2C08
|
||||
#define NOLLIE16_OS2_1_PID 0x2A16
|
||||
#define NOLLIE32_OS2_1_PID 0x2A32
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Common Nollie LED counts |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*---------------------------------------------------------*\
|
||||
/*---------------------------------------------------------*\
|
||||
| RGBController_Nollie.cpp |
|
||||
| |
|
||||
| RGBController for Nollie |
|
||||
@@ -156,7 +156,8 @@ void RGBController_Nollie::DeviceConfigureZone(int zone_idx)
|
||||
void RGBController_Nollie::DeviceUpdateLEDs()
|
||||
{
|
||||
unsigned int DevPid = controller->GetUSBPID();
|
||||
if(DevPid == NOLLIE32_PID || DevPid == NOLLIE16_PID)
|
||||
if(DevPid == NOLLIE32_PID || DevPid == NOLLIE16_PID
|
||||
|| DevPid == NOLLIE32_OS2_1_PID || DevPid == NOLLIE16_OS2_1_PID)
|
||||
{
|
||||
const int* channel_index = controller->GetChannelIndex();
|
||||
std::vector<int> ChSort;
|
||||
|
||||
Reference in New Issue
Block a user