@ -90,9 +90,18 @@ unsigned char * RGBController::GetDeviceDescription(unsigned int protocol_versio
data_size + = sizeof ( modes [ mode_index ] . flags ) ;
data_size + = sizeof ( modes [ mode_index ] . speed_min ) ;
data_size + = sizeof ( modes [ mode_index ] . speed_max ) ;
if ( protocol_version > = 3 )
{
data_size + = sizeof ( modes [ mode_index ] . brightness_min ) ;
data_size + = sizeof ( modes [ mode_index ] . brightness_max ) ;
}
data_size + = sizeof ( modes [ mode_index ] . colors_min ) ;
data_size + = sizeof ( modes [ mode_index ] . colors_max ) ;
data_size + = sizeof ( modes [ mode_index ] . speed ) ;
if ( protocol_version > = 3 )
{
data_size + = sizeof ( modes [ mode_index ] . brightness ) ;
}
data_size + = sizeof ( modes [ mode_index ] . direction ) ;
data_size + = sizeof ( modes [ mode_index ] . color_mode ) ;
data_size + = sizeof ( mode_num_colors [ mode_index ] ) ;
@ -263,6 +272,19 @@ unsigned char * RGBController::GetDeviceDescription(unsigned int protocol_versio
data_ptr + = sizeof ( modes [ mode_index ] . speed_max ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness_min and brightness_max ( data ) if |
| protocol 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & data_buf [ data_ptr ] , & modes [ mode_index ] . brightness_min , sizeof ( modes [ mode_index ] . brightness_min ) ) ;
data_ptr + = sizeof ( modes [ mode_index ] . brightness_min ) ;
memcpy ( & data_buf [ data_ptr ] , & modes [ mode_index ] . brightness_max , sizeof ( modes [ mode_index ] . brightness_max ) ) ;
data_ptr + = sizeof ( modes [ mode_index ] . brightness_max ) ;
}
/*---------------------------------------------------------*\
| Copy in mode colors_min ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & data_buf [ data_ptr ] , & modes [ mode_index ] . colors_min , sizeof ( modes [ mode_index ] . colors_min ) ) ;
@ -281,6 +303,15 @@ unsigned char * RGBController::GetDeviceDescription(unsigned int protocol_versio
data_ptr + = sizeof ( modes [ mode_index ] . speed ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness ( data ) if protocol 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & data_buf [ data_ptr ] , & modes [ mode_index ] . brightness , sizeof ( modes [ mode_index ] . brightness ) ) ;
data_ptr + = sizeof ( modes [ mode_index ] . brightness ) ;
}
/*---------------------------------------------------------*\
| Copy in mode direction ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & data_buf [ data_ptr ] , & modes [ mode_index ] . direction , sizeof ( modes [ mode_index ] . direction ) ) ;
@ -468,7 +499,7 @@ void RGBController::ReadDeviceDescription(unsigned char* data_buf, unsigned int
data_ptr + = name_len ;
/*---------------------------------------------------------*\
| Copy in vendor if pro file version is 1 or higher |
| Copy in vendor if pro tocol version is 1 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 1 )
{
@ -575,6 +606,19 @@ void RGBController::ReadDeviceDescription(unsigned char* data_buf, unsigned int
data_ptr + = sizeof ( new_mode . speed_max ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness min and max if protocol version |
| is 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & new_mode . brightness_min , & data_buf [ data_ptr ] , sizeof ( new_mode . brightness_min ) ) ;
data_ptr + = sizeof ( new_mode . brightness_min ) ;
memcpy ( & new_mode . brightness_max , & data_buf [ data_ptr ] , sizeof ( new_mode . brightness_max ) ) ;
data_ptr + = sizeof ( new_mode . brightness_max ) ;
}
/*---------------------------------------------------------*\
| Copy in mode colors_min ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & new_mode . colors_min , & data_buf [ data_ptr ] , sizeof ( new_mode . colors_min ) ) ;
@ -593,6 +637,15 @@ void RGBController::ReadDeviceDescription(unsigned char* data_buf, unsigned int
data_ptr + = sizeof ( new_mode . speed ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness if protocol version is 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & new_mode . brightness , & data_buf [ data_ptr ] , sizeof ( new_mode . brightness ) ) ;
data_ptr + = sizeof ( new_mode . brightness ) ;
}
/*---------------------------------------------------------*\
| Copy in mode direction ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & new_mode . direction , & data_buf [ data_ptr ] , sizeof ( new_mode . direction ) ) ;
@ -790,7 +843,7 @@ void RGBController::ReadDeviceDescription(unsigned char* data_buf, unsigned int
SetupColors ( ) ;
}
unsigned char * RGBController : : GetModeDescription ( int mode )
unsigned char * RGBController : : GetModeDescription ( int mode , unsigned int protocol_version )
{
unsigned int data_ptr = 0 ;
unsigned int data_size = 0 ;
@ -812,9 +865,18 @@ unsigned char * RGBController::GetModeDescription(int mode)
data_size + = sizeof ( modes [ mode ] . flags ) ;
data_size + = sizeof ( modes [ mode ] . speed_min ) ;
data_size + = sizeof ( modes [ mode ] . speed_max ) ;
if ( protocol_version > = 3 )
{
data_size + = sizeof ( modes [ mode ] . brightness_min ) ;
data_size + = sizeof ( modes [ mode ] . brightness_max ) ;
}
data_size + = sizeof ( modes [ mode ] . colors_min ) ;
data_size + = sizeof ( modes [ mode ] . colors_max ) ;
data_size + = sizeof ( modes [ mode ] . speed ) ;
if ( protocol_version > = 3 )
{
data_size + = sizeof ( modes [ mode ] . brightness ) ;
}
data_size + = sizeof ( modes [ mode ] . direction ) ;
data_size + = sizeof ( modes [ mode ] . color_mode ) ;
data_size + = sizeof ( mode_num_colors ) ;
@ -871,6 +933,19 @@ unsigned char * RGBController::GetModeDescription(int mode)
data_ptr + = sizeof ( modes [ mode ] . speed_max ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness min and max if protocol version |
| is 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & data_buf [ data_ptr ] , & modes [ mode ] . brightness_min , sizeof ( modes [ mode ] . brightness_min ) ) ;
data_ptr + = sizeof ( modes [ mode ] . brightness_min ) ;
memcpy ( & data_buf [ data_ptr ] , & modes [ mode ] . brightness_max , sizeof ( modes [ mode ] . brightness_max ) ) ;
data_ptr + = sizeof ( modes [ mode ] . brightness_max ) ;
}
/*---------------------------------------------------------*\
| Copy in mode colors_min ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & data_buf [ data_ptr ] , & modes [ mode ] . colors_min , sizeof ( modes [ mode ] . colors_min ) ) ;
@ -889,6 +964,15 @@ unsigned char * RGBController::GetModeDescription(int mode)
data_ptr + = sizeof ( modes [ mode ] . speed ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness if protocol version is 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & data_buf [ data_ptr ] , & modes [ mode ] . brightness , sizeof ( modes [ mode ] . brightness ) ) ;
data_ptr + = sizeof ( modes [ mode ] . brightness ) ;
}
/*---------------------------------------------------------*\
| Copy in mode direction ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & data_buf [ data_ptr ] , & modes [ mode ] . direction , sizeof ( modes [ mode ] . direction ) ) ;
@ -921,7 +1005,7 @@ unsigned char * RGBController::GetModeDescription(int mode)
return ( data_buf ) ;
}
void RGBController : : SetModeDescription ( unsigned char * data_buf )
void RGBController : : SetModeDescription ( unsigned char * data_buf , unsigned int protocol_version )
{
int mode_idx ;
unsigned int data_ptr = sizeof ( unsigned int ) ;
@ -985,6 +1069,19 @@ void RGBController::SetModeDescription(unsigned char* data_buf)
data_ptr + = sizeof ( new_mode - > speed_max ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness_min and brightness_max ( data ) if |
| protocol 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & new_mode - > brightness_min , & data_buf [ data_ptr ] , sizeof ( new_mode - > brightness_min ) ) ;
data_ptr + = sizeof ( new_mode - > brightness_min ) ;
memcpy ( & new_mode - > brightness_max , & data_buf [ data_ptr ] , sizeof ( new_mode - > brightness_max ) ) ;
data_ptr + = sizeof ( new_mode - > brightness_max ) ;
}
/*---------------------------------------------------------*\
| Copy in mode colors_min ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & new_mode - > colors_min , & data_buf [ data_ptr ] , sizeof ( new_mode - > colors_min ) ) ;
@ -1003,6 +1100,15 @@ void RGBController::SetModeDescription(unsigned char* data_buf)
data_ptr + = sizeof ( new_mode - > speed ) ;
/*---------------------------------------------------------*\
| Copy in mode brightness ( data ) if protocol 3 or higher |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if ( protocol_version > = 3 )
{
memcpy ( & new_mode - > brightness , & data_buf [ data_ptr ] , sizeof ( new_mode - > brightness ) ) ;
data_ptr + = sizeof ( new_mode - > brightness ) ;
}
/*---------------------------------------------------------*\
| Copy in mode direction ( data ) |
\ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
memcpy ( & new_mode - > direction , & data_buf [ data_ptr ] , sizeof ( new_mode - > direction ) ) ;