1111\*---------------------------------------------------------*/
1212
1313#include " GigabyteRGBFusion2USBController.h"
14- #include " ResourceManager.h"
15- #include " SettingsManager.h"
1614
1715/* -------------------------------------------------------------------------*\
1816| Low level RGB value conversion table |
@@ -85,7 +83,7 @@ RGBFusion2USBController::~RGBFusion2USBController()
8583\*---------------------------------------------------------*/
8684bool RGBFusion2USBController::RefreshHardwareInfo ()
8785{
88- unsigned char buffer[64 ] = {0 };
86+ unsigned char buffer[FUSION2_USB_BUFFER_SIZE ] = {0 };
8987
9088 SendPacket (0x60 , 0x00 );
9189 buffer[0 ] = report_id;
@@ -140,7 +138,7 @@ bool RGBFusion2USBController::RefreshHardwareInfo()
140138 cali_loaded = false ;
141139 if (product_id == 0x5711 )
142140 {
143- unsigned char buffer2[64 ] = {0 };
141+ unsigned char buffer2[FUSION2_USB_BUFFER_SIZE ] = {0 };
144142 SendPacket (0x61 , 0x00 );
145143 buffer2[0 ] = report_id;
146144 int res2 = hid_get_feature_report (dev, buffer2, sizeof (buffer2));
@@ -364,7 +362,7 @@ void RGBFusion2USBController::SetLedCount(unsigned int c0, unsigned int c1, unsi
364362 D_LED3_count = new_d3;
365363 D_LED4_count = new_d4;
366364
367- unsigned char buffer[64 ] = { 0 };
365+ unsigned char buffer[FUSION2_USB_BUFFER_SIZE ] = { 0 };
368366 buffer[0 ] = report_id;
369367 buffer[1 ] = 0x34 ;
370368 buffer[2 ] = (new_d2 << 4 ) | new_d1;
@@ -550,14 +548,12 @@ void RGBFusion2USBController::SetStripColors(unsigned int hdr, RGBColor* colors,
550548
551549 for (int i = 0 ; i < leds_in_pkt; i++)
552550 {
553- RGBColor color = colors[k];
554- unsigned char red = RGBGetRValue (color);
555- unsigned char grn = RGBGetGValue (color);
556- unsigned char blu = RGBGetBValue (color);
557-
558- pkt.buffer [5 + i * 3 + bo_r] = red;
559- pkt.buffer [5 + i * 3 + bo_g] = grn;
560- pkt.buffer [5 + i * 3 + bo_b] = blu;
551+ RGBColor color = colors[k];
552+ uint8_t offset = (i * 3 ) + 5 ;
553+
554+ pkt.buffer [offset + bo_r] = RGBGetRValue (color);
555+ pkt.buffer [offset + bo_g] = RGBGetGValue (color);
556+ pkt.buffer [offset + bo_b] = RGBGetBValue (color);
561557 k++;
562558 }
563559
@@ -585,7 +581,7 @@ void RGBFusion2USBController::SetStripColors(unsigned int hdr, RGBColor* colors,
585581| -(15)Gigabyte dflash ranges are 800-2600ms in 200ms steps |
586582| -(3)(15)flash and dflash parameters were combined. |
587583\*---------------------------------------------------------*/
588- void RGBFusion2USBController::SetLEDEffect (int led, int mode, unsigned int speed, unsigned char brightness, bool random, unsigned char r, unsigned char g, unsigned char b )
584+ void RGBFusion2USBController::SetLEDEffect (int led, int mode, unsigned int speed, unsigned char brightness, bool random, uint32_t * color )
589585{
590586 PktEffect pkt;
591587 pkt.Init (led, report_id, product_id);
@@ -599,66 +595,57 @@ void RGBFusion2USBController::SetLEDEffect(int led, int mode, unsigned int speed
599595 }
600596 pkt.e .max_brightness = brightness;
601597 pkt.e .effect_type = mode;
602- pkt.e .color0 = r << 16 | g << 8 | b;
598+ pkt.e .effect_param0 = random ? 7 : 0 ;
599+ pkt.e .color0 = RGBToBGRColor (*color);
603600
604601 switch (mode)
605602 {
606- case 2 :
607- pkt.e .period0 = pkt.e .period1 = (speed <= 6 ) ? (400 + speed * 100 ) : (1000 + (speed - 6 ) * 200 );
603+ case EFFECT_PULSE:
604+ pkt.e .period0 = (speed <= 6 ) ? (400 + speed * 100 ) : (1000 + (speed - 6 ) * 200 );
605+ pkt.e .period1 = pkt.e .period0 ;
608606 pkt.e .period2 = 200 ;
609- if (random)
610- {
611- pkt.e .effect_param0 = 7 ;
612- }
613607 break ;
614- case 15 :
608+ case EFFECT_DFLASH :
615609 pkt.e .effect_type = 3 ;
616610 pkt.e .effect_param1 = 1 ;
617611 pkt.e .effect_param2 = 2 ;
618- case 3 :
612+ case EFFECT_BLINKING :
619613 pkt.e .period0 = 100 ;
620614 pkt.e .period1 = 100 ;
621615 pkt.e .period2 = (speed * 200 ) + 700 ;
622- if (random)
623- {
624- pkt.e .effect_param0 = 7 ;
625- }
626616 break ;
627- case 4 :
617+ case EFFECT_COLORCYCLE :
628618 pkt.e .period0 = (speed * 100 + 300 ) + (speed > 8 ? 1300 * (speed - 8 ) : 0 );
629619 pkt.e .period1 = pkt.e .period0 -200 ;
630620 pkt.e .effect_param0 = 7 ;
631621 break ;
632- case 6 :
633- pkt.e .period0 = ((speed + 1 )^2 + (speed + 1 ) + 10 ) * 5 / 2 ;
622+ case EFFECT_WAVE :
623+ pkt.e .period0 = ((( speed + 1 )^2 ) + (speed + 1 ) + 10 ) * 5 / 2 ;
634624 pkt.e .effect_param0 = 7 ;
635625 pkt.e .effect_param1 = 1 ;
636626 break ;
637- case 8 :
627+ case EFFECT_RANDOM :
638628 pkt.e .period0 = 100 ;
639629 pkt.e .effect_param0 = 1 ;
640630 pkt.e .effect_param1 = 5 ;
641631 break ;
642- case 9 :
632+ case EFFECT_WAVE1 :
643633 pkt.e .period0 = 1200 ;
644634 pkt.e .period1 = 100 ;
645635 pkt.e .period2 = 360 ;
646636 pkt.e .period3 = 1200 ;
647637 break ;
648- case 10 :
638+ case EFFECT_WAVE2:
639+ case EFFECT_WAVE4:
649640 pkt.e .period0 = 200 ;
650641 pkt.e .effect_param0 = 7 ;
651642 break ;
652- case 11 :
643+ case EFFECT_WAVE3 :
653644 pkt.e .period0 = 840 ;
654645 pkt.e .period1 = 20 ;
655646 pkt.e .period2 = 200 ;
656647 pkt.e .period3 = 840 ;
657648 break ;
658- case 12 :
659- pkt.e .period0 = 200 ;
660- pkt.e .effect_param0 = 7 ;
661- break ;
662649 }
663650 SendPacket (pkt.buffer );
664651}
@@ -684,24 +671,24 @@ bool RGBFusion2USBController::ApplyEffect(bool fast_apply)
684671 pkt.a .zone_sel0 = effect_zone_mask;
685672
686673 effect_zone_mask = 0 ;
687- return SendPacket (pkt.buffer () );
674+ return SendPacket (pkt.buffer );
688675}
689676
690677bool RGBFusion2USBController::SendPacket (uint8_t a, uint8_t b, uint8_t c)
691678{
692- unsigned char buffer[64 ] {};
679+ unsigned char buffer[FUSION2_USB_BUFFER_SIZE ] {};
693680
694681 buffer[0 ] = report_id;
695682 buffer[1 ] = a;
696683 buffer[2 ] = b;
697684 buffer[3 ] = c;
698685
699- return (SendPacket (buffer) == 64 );
686+ return (SendPacket (buffer) == FUSION2_USB_BUFFER_SIZE );
700687}
701688
702689int RGBFusion2USBController::SendPacket (unsigned char * packet)
703690{
704- return hid_send_feature_report (dev, packet, 64 );
691+ return hid_send_feature_report (dev, packet, FUSION2_USB_BUFFER_SIZE );
705692}
706693
707694/* ---------------------------------------------------------*\
@@ -722,4 +709,4 @@ void RGBFusion2USBController::ResetController()
722709 }
723710 }
724711 ApplyEffect (true );
725- }
712+ }
0 commit comments