diff --git a/Controllers/NollieController/NollieController.cpp b/Controllers/NollieController/NollieController.cpp index f4dc0862..05097f7e 100644 --- a/Controllers/NollieController/NollieController.cpp +++ b/Controllers/NollieController/NollieController.cpp @@ -15,11 +15,12 @@ using namespace std::chrono_literals; -NollieController::NollieController(hid_device* dev_handle, const char* path, unsigned short pid) +NollieController::NollieController(hid_device* dev_handle, const char* path, unsigned short pid, std::string dev_name) { - dev = dev_handle; - location = path; - usb_pid = pid; + dev = dev_handle; + location = path; + name = dev_name; + usb_pid = pid; } std::string NollieController::GetLocationString() @@ -27,6 +28,11 @@ std::string NollieController::GetLocationString() return("HID: " + location); } +std::string NollieController::GetNameString() +{ + return(name); +} + std::string NollieController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/NollieController/NollieController.h b/Controllers/NollieController/NollieController.h index 22c85dda..86ed420e 100644 --- a/Controllers/NollieController/NollieController.h +++ b/Controllers/NollieController/NollieController.h @@ -52,18 +52,24 @@ class NollieController { public: - NollieController(hid_device* dev_handle, const char* path, unsigned short pid); + NollieController(hid_device* dev_handle, const char* path, unsigned short pid, std::string dev_name); + std::string GetLocationString(); + std::string GetNameString(); std::string GetSerialString(); unsigned short GetUSBPID(); + void SetMos(bool mos); void InitChLEDs(int *led_num_list,int ch_num); void SendUpdate(); void SetChannelLEDs(unsigned char channel, RGBColor * colors, unsigned int num_colors); + private: hid_device* dev; std::string location; + std::string name; unsigned short usb_pid; + void SendPacket(unsigned char channel,RGBColor * colors,unsigned int num_colors); void SendPacketFS(unsigned char channel,unsigned char packet_id,RGBColor * colors,unsigned int num_colors); }; diff --git a/Controllers/NollieController/NollieControllerDetect.cpp b/Controllers/NollieController/NollieControllerDetect.cpp index 0659527b..cec260d4 100644 --- a/Controllers/NollieController/NollieControllerDetect.cpp +++ b/Controllers/NollieController/NollieControllerDetect.cpp @@ -25,9 +25,8 @@ void DetectNollieControllers(hid_device_info* info, const std::string& name) std::wstring product_str(product); - NollieController* controller = new NollieController(dev, info->path,info->product_id); + NollieController* controller = new NollieController(dev, info->path,info->product_id, name); RGBController_Nollie* rgb_controller = new RGBController_Nollie(controller); - rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); diff --git a/Controllers/NollieController/RGBController_Nollie.cpp b/Controllers/NollieController/RGBController_Nollie.cpp index 8be88170..fc697249 100644 --- a/Controllers/NollieController/RGBController_Nollie.cpp +++ b/Controllers/NollieController/RGBController_Nollie.cpp @@ -26,20 +26,20 @@ RGBController_Nollie::RGBController_Nollie(NollieController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Nollie Device"; - vendor = "Nollie"; - description = "Nollie Controller Device"; - type = DEVICE_TYPE_LEDSTRIP; - location = controller->GetLocationString(); - serial = controller->GetSerialString(); + name = controller->GetNameString(); + vendor = "Nollie"; + description = "Nollie Controller Device"; + type = DEVICE_TYPE_LEDSTRIP; + location = controller->GetLocationString(); + serial = controller->GetSerialString(); mode Direct; - Direct.name = "Direct"; - Direct.value = 0xFFFF; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = 0xFFFF; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); SetupZones(); @@ -170,7 +170,7 @@ void RGBController_Nollie::ResizeZone(int zone, int new_size) { controller->InitChLEDs(&new_size,NOLLIE1_CHANNELS_NUM); } - + if((size_t) zone >= zones.size()) { return;