Move generic dpi_bytes_to_string() to rd_mouse

This commit is contained in:
dokutan 2021-01-20 18:39:39 +01:00
parent ce9a30f3d1
commit f4c415887b
16 changed files with 23 additions and 221 deletions

View file

@ -157,17 +157,3 @@ int mouse_generic::print_settings( std::ostream& output ){
return 0;
}
int mouse_generic::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -235,12 +235,7 @@ class mouse_generic : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)
/// Read the settings and print the raw data to output

View file

@ -157,17 +157,3 @@ int mouse_m709::print_settings( std::ostream& output ){
return 0;
}
int mouse_m709::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -228,11 +228,6 @@ class mouse_m709 : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)

View file

@ -156,17 +156,3 @@ int mouse_m711::print_settings( std::ostream& output ){
return 0;
}
int mouse_m711::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -235,11 +235,6 @@ class mouse_m711 : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)

View file

@ -156,17 +156,3 @@ int mouse_m715::print_settings( std::ostream& output ){
return 0;
}
int mouse_m715::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -235,11 +235,6 @@ class mouse_m715 : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)

View file

@ -229,6 +229,7 @@ class mouse_m908 : public rd_mouse{
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* This function overloads the implementation from rd_mouse and supports actual DPI values.
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );

View file

@ -56,102 +56,9 @@ std::map< int, std::string > mouse_m990::_c_button_names = {
{ 25, "scroll_down" } };
// Mapping of real DPI values to bytecode TODO!
// Take a look the M908 implementation for details.
// Min. 50, Max. 16400
std::map< unsigned int, std::array<uint8_t, 2> > mouse_m990::_c_dpi_codes = {
/*
{ 200, {0x4, 0x00} },
{ 300, {0x6, 0x00} },
{ 400, {0x9, 0x00} },
{ 500, {0xb, 0x00} },
{ 600, {0xd, 0x00} },
{ 700, {0xf, 0x00} },
{ 800, {0x12, 0x00} },
{ 900, {0x14, 0x00} },
{ 1000, {0x16, 0x00} },
{ 1100, {0x18, 0x00} },
{ 1200, {0x1b, 0x00} },
{ 1300, {0x1d, 0x00} },
{ 1400, {0x1f, 0x00} },
{ 1500, {0x21, 0x00} },
{ 1600, {0x24, 0x00} },
{ 1700, {0x26, 0x00} },
{ 1800, {0x28, 0x00} },
{ 1900, {0x2b, 0x00} },
{ 2000, {0x2d, 0x00} },
{ 2100, {0x2f, 0x00} },
{ 2200, {0x31, 0x00} },
{ 2300, {0x34, 0x00} },
{ 2400, {0x36, 0x00} },
{ 2500, {0x38, 0x00} },
{ 2600, {0x3a, 0x00} },
{ 2700, {0x3d, 0x00} },
{ 2800, {0x3f, 0x00} },
{ 2900, {0x41, 0x00} },
{ 3000, {0x43, 0x00} },
{ 3100, {0x46, 0x00} },
{ 3200, {0x48, 0x00} },
{ 3300, {0x4a, 0x00} },
{ 3400, {0x4d, 0x00} },
{ 3500, {0x4f, 0x00} },
{ 3600, {0x51, 0x00} },
{ 3700, {0x53, 0x00} },
{ 3800, {0x56, 0x00} },
{ 3900, {0x58, 0x00} },
{ 4000, {0x5a, 0x00} },
{ 4100, {0x5c, 0x00} },
{ 4200, {0x5f, 0x00} },
{ 4300, {0x61, 0x00} },
{ 4400, {0x63, 0x00} },
{ 4500, {0x66, 0x00} },
{ 4600, {0x68, 0x00} },
{ 4700, {0x6a, 0x00} },
{ 4800, {0x6c, 0x00} },
{ 4900, {0x6f, 0x00} },
{ 5000, {0x71, 0x00} },
{ 5100, {0x73, 0x00} },
{ 5200, {0x75, 0x00} },
{ 5300, {0x78, 0x00} },
{ 5400, {0x7a, 0x00} },
{ 5500, {0x7c, 0x00} },
{ 5600, {0x7f, 0x00} },
{ 5700, {0x81, 0x00} },
{ 5800, {0x83, 0x00} },
{ 5900, {0x85, 0x00} },
{ 6000, {0x87, 0x00} },
{ 6100, {0x8a, 0x00} },
{ 6200, {0x8c, 0x00} },
{ 6400, {0x48, 0x01} },
{ 6600, {0x4a, 0x01} },
{ 6800, {0x4d, 0x01} },
{ 7000, {0x4f, 0x01} },
{ 7200, {0x51, 0x01} },
{ 7400, {0x53, 0x01} },
{ 7600, {0x56, 0x01} },
{ 7800, {0x58, 0x01} },
{ 8000, {0x5a, 0x01} },
{ 8200, {0x5c, 0x01} },
{ 8400, {0x5f, 0x01} },
{ 8600, {0x61, 0x01} },
{ 8800, {0x63, 0x01} },
{ 9000, {0x66, 0x01} },
{ 9200, {0x68, 0x01} },
{ 9400, {0x6a, 0x01} },
{ 9600, {0x6c, 0x01} },
{ 9800, {0x6f, 0x01} },
{ 10000, {0x71, 0x01} },
{ 10200, {0x73, 0x01} },
{ 10400, {0x75, 0x01} },
{ 10600, {0x78, 0x01} },
{ 10800, {0x7a, 0x01} },
{ 11000, {0x7c, 0x01} },
{ 11200, {0x7f, 0x01} },
{ 11400, {0x81, 0x01} },
{ 11600, {0x83, 0x01} },
{ 11800, {0x85, 0x01} },
{ 12000, {0x87, 0x01} },
{ 12200, {0x8a, 0x01} },
{ 12400, {0x8c, 0x01} }
*/
};
//usb data packets

View file

@ -157,28 +157,3 @@ int mouse_m990::print_settings( std::ostream& output ){
return 0;
}
int mouse_m990::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
// is dpi value known?
for( auto dpi_value : _c_dpi_codes ){
if( dpi_value.second[0] == dpi_bytes[0] && dpi_value.second[1] == dpi_bytes[1] ){
dpi_string = std::to_string( dpi_value.first );
return 0;
}
}
// unknown dpi value
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -230,11 +230,6 @@ class mouse_m990 : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)

View file

@ -157,17 +157,3 @@ int mouse_m990chroma::print_settings( std::ostream& output ){
return 0;
}
int mouse_m990chroma::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -228,11 +228,6 @@ class mouse_m990chroma : public rd_mouse{
/// Print the current configuration in .ini format to output
int print_settings( std::ostream& output );
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* \return 0 if no error
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
//reader functions (get settings from the mouse)

View file

@ -884,3 +884,17 @@ int rd_mouse::_i_encode_button_mapping( std::string& mapping, std::array<uint8_t
return 0;
}
int rd_mouse::dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string ){
std::stringstream conversion_stream;
conversion_stream << std::setfill('0') << std::hex;
conversion_stream << "0x";
conversion_stream << std::setw(2) << (int)dpi_bytes[0] << std::setw(2) << (int)dpi_bytes[1];
conversion_stream << std::setfill(' ') << std::setw(0) << std::dec;
dpi_string = conversion_stream.str();
return 0;
}

View file

@ -92,7 +92,12 @@ class rd_mouse{
/// Get _i_detach_kernel_driver
bool get_detach_kernel_driver(){ return _i_detach_kernel_driver; }
/** Convert raw dpi bytes to a string representation (doesn't validate dpi value)
* This implementation always outputs the raw bytes as a hexdump,
* to support actual DPI values this function needs to be overloaded in the model specific classes.
* \return 0 if no error occured
*/
int dpi_bytes_to_string( std::array<uint8_t, 2>& dpi_bytes, std::string& dpi_string );
protected: