diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 0ecf0a23c..813f61bc3 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -64,8 +64,7 @@ RazerController::RazerController(hid_device* dev_handle, const char* path, unsig case RAZER_CHARGING_PAD_CHROMA_PID: { - razer_report report = razer_create_device_mode_report(0x03, 0x00); - razer_usb_send(&report); + razer_set_device_mode(RAZER_DEVICE_MODE_SOFTWARE); dev_transaction_id = 0x1F; } break; @@ -768,6 +767,12 @@ void RazerController::razer_set_custom_frame(unsigned char row_index, unsigned c razer_usb_send(&report); } +void RazerController::razer_set_device_mode(unsigned char device_mode) +{ + razer_report report = razer_create_device_mode_report(device_mode, 0x00); + razer_usb_send(&report); +} + void RazerController::razer_set_mode_custom() { razer_report report; diff --git a/Controllers/RazerController/RazerController.h b/Controllers/RazerController/RazerController.h index 07a77e4d2..7bf91786d 100644 --- a/Controllers/RazerController/RazerController.h +++ b/Controllers/RazerController/RazerController.h @@ -24,6 +24,15 @@ #define PACK( __Declaration__ ) __pragma( pack(push, 1) ) __Declaration__ __pragma( pack(pop)) #endif +/*---------------------------------------------------------*\ +| Razer Device Mode IDs | +\*---------------------------------------------------------*/ +enum +{ + RAZER_DEVICE_MODE_HARDWARE = 0x00, + RAZER_DEVICE_MODE_SOFTWARE = 0x03, +}; + /*---------------------------------------------------------*\ | Razer Command IDs | \*---------------------------------------------------------*/ @@ -196,6 +205,8 @@ private: void razer_set_brightness(unsigned char brightness); void razer_set_custom_frame(unsigned char row_index, unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data); + void razer_set_device_mode(unsigned char device_mode); + void razer_set_mode_breathing(); void razer_set_mode_custom(); void razer_set_mode_none();