Skip to content

Fedora libusb-devel dependency #63

@NostalgiaRealm

Description

@NostalgiaRealm

Before I used Ubuntu based Pop!_Os and was able to install the dependencies and compile this program normally. Now I use Fedora 41 and tried installing the dependencies before compiling. However, trying so yields the following:

rick@MAIN-PC:~$ sudo dnf install libusb-devel hidapi-devel
[sudo] password for rick: 
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
No match for argument: libusb-devel
Package "hidapi-devel-0.14.0-5.fc41.x86_64" is already installed.
You can try to add to command line:
  --skip-unavailable to skip unavailable packages

The libusb-devel package seems to be MIA, trying to compile the program using make yields a bunch of errors. I am guessing it is because of the missing dependency. I hope the readme can be changed to include the correct dependency.

rick@MAIN-PC:~/msigd$ make
Compiling src/msigd.cpp...
In file included from src/msigd.cpp:7:
src/phid.h: In static member function ‘static int usbdev_t::get_device_list(logger_t&, unsigned int, unsigned int, device_info_list&)’:
src/phid.h:63:46: warning: unused parameter ‘logger’ [-Wunused-parameter]
   63 |         static int get_device_list(logger_t &logger, unsigned idVendor, unsigned idProduct,
      |                                    ~~~~~~~~~~^~~~~~
src/phid.h: In member function ‘int usbdev_t::control_msg_write(int, int, int, int, void*, int, int)’:
src/phid.h:91:44: warning: unused parameter ‘timeout’ [-Wunused-parameter]
   91 |                 void *bytes, int size, int timeout)
      |                                        ~~~~^~~~~~~
src/phid.h: In member function ‘int usbdev_t::control_msg_read(int, int, int, int, void*, int, int, int&)’:
src/phid.h:111:44: warning: unused parameter ‘timeout’ [-Wunused-parameter]
  111 |                 void *bytes, int size, int timeout, int &ret_size)
      |                                        ~~~~^~~~~~~
In file included from src/msigd.cpp:12:
src/psteelseries.h: At global scope:
src/psteelseries.h:22:32: error: expected ‘)’ before ‘n’
   22 |         steel_rgb_entry(uint8_t n, uint8_t vr, uint8_t vg, uint8_t vb)
      |                        ~       ^~
      |                                )
src/psteelseries.h:29:22: error: ‘uint8_t’ has not been declared
   29 |         void set_rgb(uint8_t n, uint8_t vr, uint8_t vg, uint8_t vb)
      |                      ^~~~~~~
src/psteelseries.h:29:33: error: ‘uint8_t’ has not been declared
   29 |         void set_rgb(uint8_t n, uint8_t vr, uint8_t vg, uint8_t vb)
      |                                 ^~~~~~~
src/psteelseries.h:29:45: error: ‘uint8_t’ has not been declared
   29 |         void set_rgb(uint8_t n, uint8_t vr, uint8_t vg, uint8_t vb)
      |                                             ^~~~~~~
src/psteelseries.h:29:57: error: ‘uint8_t’ has not been declared
   29 |         void set_rgb(uint8_t n, uint8_t vr, uint8_t vg, uint8_t vb)
      |                                                         ^~~~~~~
src/psteelseries.h:36:23: error: ‘uint8_t’ has not been declared
   36 |         void set_mode(uint8_t n, uint8_t val)
      |                       ^~~~~~~
src/psteelseries.h:36:34: error: ‘uint8_t’ has not been declared
   36 |         void set_mode(uint8_t n, uint8_t val)
      |                                  ^~~~~~~
src/psteelseries.h:44:9: error: ‘uint8_t’ does not name a type
   44 |         uint8_t r       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:1:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
  +++ |+#include <cstdint>
    1 | /*
src/psteelseries.h:45:9: error: ‘uint8_t’ does not name a type
   45 |         uint8_t g       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:45:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:46:9: error: ‘uint8_t’ does not name a type
   46 |         uint8_t b       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:46:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:47:9: error: ‘uint8_t’ does not name a type
   47 |         uint8_t f03     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:47:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:48:9: error: ‘uint8_t’ does not name a type
   48 |         uint8_t f04     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:48:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:49:9: error: ‘uint8_t’ does not name a type
   49 |         uint8_t f05     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:49:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:50:9: error: ‘uint8_t’ does not name a type
   50 |         uint8_t f06     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:50:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:51:9: error: ‘uint8_t’ does not name a type
   51 |         uint8_t f07     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:51:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:52:9: error: ‘uint8_t’ does not name a type
   52 |         uint8_t mode    = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:52:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:53:9: error: ‘uint8_t’ does not name a type
   53 |         uint8_t set_col = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:53:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:54:9: error: ‘uint8_t’ does not name a type
   54 |         uint8_t f10     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:54:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:55:9: error: ‘uint8_t’ does not name a type
   55 |         uint8_t num     = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:55:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h: In member function ‘void steel_rgb_entry::set_rgb(int, int, int, int)’:
src/psteelseries.h:31:17: error: ‘num’ was not declared in this scope; did you mean ‘enum’?
   31 |                 num = n;
      |                 ^~~
      |                 enum
src/psteelseries.h:32:17: error: ‘set_col’ was not declared in this scope
   32 |                 set_col = 0x01;
      |                 ^~~~~~~
src/psteelseries.h:33:17: error: ‘r’ was not declared in this scope
   33 |                 r = vr; g = vg; b = vb;
      |                 ^
src/psteelseries.h:33:25: error: ‘g’ was not declared in this scope
   33 |                 r = vr; g = vg; b = vb;
      |                         ^
src/psteelseries.h:33:33: error: ‘b’ was not declared in this scope
   33 |                 r = vr; g = vg; b = vb;
      |                                 ^
src/psteelseries.h: In member function ‘void steel_rgb_entry::set_mode(int, int)’:
src/psteelseries.h:38:17: error: ‘num’ was not declared in this scope; did you mean ‘enum’?
   38 |                 num = n;
      |                 ^~~
      |                 enum
src/psteelseries.h:39:17: error: ‘set_col’ was not declared in this scope
   39 |                 set_col = 0x00;
      |                 ^~~~~~~
src/psteelseries.h:40:17: error: ‘mode’ was not declared in this scope; did you mean ‘mode_t’?
   40 |                 mode = val;
      |                 ^~~~
      |                 mode_t
src/psteelseries.h:41:17: error: ‘r’ was not declared in this scope
   41 |                 r = 0; g = 0; b = 0;
      |                 ^
src/psteelseries.h:41:24: error: ‘g’ was not declared in this scope
   41 |                 r = 0; g = 0; b = 0;
      |                        ^
src/psteelseries.h:41:31: error: ‘b’ was not declared in this scope
   41 |                 r = 0; g = 0; b = 0;
      |                               ^
src/psteelseries.h: At global scope:
src/psteelseries.h:62:30: error: expected ‘)’ before ‘start’
   62 |         steel_data_0e(uint8_t start, uint8_t end, uint8_t r, uint8_t g, uint8_t b)
      |                      ~       ^~~~~~
      |                              )
src/psteelseries.h:72:30: error: expected ‘)’ before ‘start’
   72 |         steel_data_0e(uint8_t start, uint8_t end, uint8_t mode)
      |                      ~       ^~~~~~
      |                              )
src/psteelseries.h:82:9: error: ‘uint8_t’ does not name a type
   82 |         uint8_t report_id = 0x00;
      |         ^~~~~~~
src/psteelseries.h:82:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:83:9: error: ‘uint8_t’ does not name a type
   83 |         uint8_t command   = 0x0e; // also seen 0x0b, 0x0c and 0x0d
      |         ^~~~~~~
src/psteelseries.h:83:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:84:9: error: ‘uint8_t’ does not name a type
   84 |         uint8_t f00       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:84:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:85:9: error: ‘uint8_t’ does not name a type
   85 |         uint8_t num_rec   = 0x08;
      |         ^~~~~~~
src/psteelseries.h:85:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:87:9: error: ‘uint8_t’ does not name a type
   87 |         uint8_t f01       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:87:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:89:9: error: ‘uint8_t’ does not name a type
   89 |         uint8_t f02       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:89:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:90:9: error: ‘uint8_t’ does not name a type
   90 |         uint8_t f03       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:90:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:91:9: error: ‘uint8_t’ does not name a type
   91 |         uint8_t f04       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:91:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:92:9: error: ‘uint8_t’ does not name a type
   92 |         uint8_t f05       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:92:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:97:39: error: expected ‘)’ before ‘com’
   97 |         explicit steel_command(uint8_t com, uint8_t val = 0x00)
      |                               ~       ^~~~
      |                                       )
src/psteelseries.h:104:9: error: ‘uint8_t’ does not name a type
  104 |         uint8_t report_id = 0x00;
      |         ^~~~~~~
src/psteelseries.h:104:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:105:9: error: ‘uint8_t’ does not name a type
  105 |         uint8_t command;          // 0x09, 0x0c and 0x0d
      |         ^~~~~~~
src/psteelseries.h:105:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:106:9: error: ‘uint8_t’ does not name a type
  106 |         uint8_t f00       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:106:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:107:9: error: ‘uint8_t’ does not name a type
  107 |         uint8_t subcmd;
      |         ^~~~~~~
src/psteelseries.h:107:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:108:9: error: ‘uint8_t’ does not name a type
  108 |         uint8_t f01       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:108:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:109:20: error: ‘uint8_t’ was not declared in this scope
  109 |         std::array<uint8_t, 60> f02;
      |                    ^~~~~~~
src/psteelseries.h:109:20: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:109:31: error: template argument 1 is invalid
  109 |         std::array<uint8_t, 60> f02;
      |                               ^
src/psteelseries.h:117:28: error: expected ‘)’ before ‘e0’
  117 |                 sub(uint8_t e0)
      |                    ~       ^~~
      |                            )
src/psteelseries.h:122:28: error: expected ‘)’ before ‘e0’
  122 |                 sub(uint8_t e0, uint8_t e1, uint8_t e2, uint8_t e3,
      |                    ~       ^~~
      |                            )
src/psteelseries.h:128:28: error: ‘uint8_t’ was not declared in this scope
  128 |                 std::array<uint8_t, 8> e;
      |                            ^~~~~~~
src/psteelseries.h:128:28: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:128:38: error: template argument 1 is invalid
  128 |                 std::array<uint8_t, 8> e;
      |                                      ^
src/psteelseries.h:269:9: error: ‘uint8_t’ does not name a type
  269 |         uint8_t report_id = 0x00;
      |         ^~~~~~~
src/psteelseries.h:269:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:270:9: error: ‘uint8_t’ does not name a type
  270 |         uint8_t command   = 0x0b; // also seen 0x0b, 0x0c and 0x0d
      |         ^~~~~~~
src/psteelseries.h:270:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:271:9: error: ‘uint8_t’ does not name a type
  271 |         uint8_t f00       = 0x00; // ??
      |         ^~~~~~~
src/psteelseries.h:271:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:275:9: error: ‘uint8_t’ does not name a type
  275 |         uint8_t e17_0 = 0xff;
      |         ^~~~~~~
src/psteelseries.h:275:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:276:9: error: ‘uint8_t’ does not name a type
  276 |         uint8_t e17_1 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:276:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:277:9: error: ‘uint8_t’ does not name a type
  277 |         uint8_t e17_2 = 0x00; // 0xeb;
      |         ^~~~~~~
src/psteelseries.h:277:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:278:9: error: ‘uint8_t’ does not name a type
  278 |         uint8_t e17_3 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:278:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:279:9: error: ‘uint8_t’ does not name a type
  279 |         uint8_t e17_4 = 0x00; // 0x37;
      |         ^~~~~~~
src/psteelseries.h:279:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:280:9: error: ‘uint8_t’ does not name a type
  280 |         uint8_t e17_5 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:280:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:281:9: error: ‘uint8_t’ does not name a type
  281 |         uint8_t wave_mode_0 = 0x00;  // 0x01 if enable
      |         ^~~~~~~
src/psteelseries.h:281:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:282:9: error: ‘uint8_t’ does not name a type
  282 |         uint8_t e17_7 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:282:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:283:9: error: ‘uint8_t’ does not name a type
  283 |         uint8_t wave_mode_1 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:283:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:284:9: error: ‘uint8_t’ does not name a type
  284 |         uint8_t e18_1 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:284:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:285:9: error: ‘uint8_t’ does not name a type
  285 |         uint8_t wave_speed_lo = 0x80; // min 0x1e, max 0xe9
      |         ^~~~~~~
src/psteelseries.h:285:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:286:9: error: ‘uint8_t’ does not name a type
  286 |         uint8_t wave_speed_hi = 0x00;      // changes to 0x03 on setting wave speed to max ?
      |         ^~~~~~~
src/psteelseries.h:286:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:287:9: error: ‘uint8_t’ does not name a type
  287 |         uint8_t numrec = 0x03;
      |         ^~~~~~~
src/psteelseries.h:287:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:288:9: error: ‘uint8_t’ does not name a type
  288 |         uint8_t e18_5 = 0x00;
      |         ^~~~~~~
src/psteelseries.h:288:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:289:9: error: ‘uint8_t’ does not name a type
  289 |         uint8_t speed_lo = 0x63;
      |         ^~~~~~~
src/psteelseries.h:289:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:290:9: error: ‘uint8_t’ does not name a type
  290 |         uint8_t speed_hi = 0x00;
      |         ^~~~~~~
src/psteelseries.h:290:9: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:292:20: error: ‘uint8_t’ was not declared in this scope
  292 |         std::array<uint8_t, 22*16 + 10> f02;
      |                    ^~~~~~~
src/psteelseries.h:292:20: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:292:39: error: template argument 1 is invalid
  292 |         std::array<uint8_t, 22*16 + 10> f02;
      |                                       ^
src/psteelseries.h: In constructor ‘steel_data_0b::sub::sub()’:
src/psteelseries.h:116:37: error: request for member ‘begin’ in ‘((steel_data_0b::sub*)this)->steel_data_0b::sub::e’, which is of non-class type ‘int’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                                     ^~~~~
src/psteelseries.h:116:48: error: request for member ‘end’ in ‘((steel_data_0b::sub*)this)->steel_data_0b::sub::e’, which is of non-class type ‘int’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                                                ^~~
src/psteelseries.h: In constructor ‘steel_data_0b::steel_data_0b()’:
src/psteelseries.h:132:11: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  132 |         : e16(0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00)  // 00 00 f0 0f 00 00 10 0e
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:133:11: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  133 |         , e19(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00) // 01 00 00 00 00 00 00 00 // 0x01 ????
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:135:31: error: request for member ‘begin’ in ‘((steel_data_0b*)this)->steel_data_0b::f02’, which is of non-class type ‘int’
  135 |                 std::fill(f02.begin(), f02.end(), 0);
      |                               ^~~~~
src/psteelseries.h:135:44: error: request for member ‘end’ in ‘((steel_data_0b*)this)->steel_data_0b::f02’, which is of non-class type ‘int’
  135 |                 std::fill(f02.begin(), f02.end(), 0);
      |                                            ^~~
src/psteelseries.h: In constructor ‘steel_data_0b::steel_data_0b(bool)’:
src/psteelseries.h:152:11: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  152 |         : e16(0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00)  // 00 00 f0 0f 00 00 10 0e
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:153:11: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  153 |         , e19(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:156:76: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  156 |                 col[0] = sub(0x01, 0x00, 0xc5, 0x00, 0x41, 0x00, 0x21, 0x00);
      |                                                                            ^
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:157:76: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  157 |                 col[1] = sub(0x01, 0x00, 0xc0, 0x00, 0xbf, 0x00, 0x21, 0x00);
      |                                                                            ^
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:158:76: error: no matching function for call to ‘steel_data_0b::sub::sub(int, int, int, int, int, int, int, int)’
  158 |                 col[2] = sub(0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x21, 0x00);
      |                                                                            ^
src/psteelseries.h:116:17: note: candidate: ‘steel_data_0b::sub::sub()’
  116 |                 sub() { std::fill(e.begin(), e.end(), 0); }
      |                 ^~~
src/psteelseries.h:116:17: note:   candidate expects 0 arguments, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(const steel_data_0b::sub&)’
  114 |         struct sub
      |                ^~~
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:114:16: note: candidate: ‘constexpr steel_data_0b::sub::sub(steel_data_0b::sub&&)’
src/psteelseries.h:114:16: note:   candidate expects 1 argument, 8 provided
src/psteelseries.h:159:31: error: request for member ‘begin’ in ‘((steel_data_0b*)this)->steel_data_0b::f02’, which is of non-class type ‘int’
  159 |                 std::fill(f02.begin(), f02.end(), 0);
      |                               ^~~~~
src/psteelseries.h:159:44: error: request for member ‘end’ in ‘((steel_data_0b*)this)->steel_data_0b::f02’, which is of non-class type ‘int’
  159 |                 std::fill(f02.begin(), f02.end(), 0);
      |                                            ^~~
src/psteelseries.h: In member function ‘void steel_data_0b::set_colors(C1&, C2&, int)’:
src/psteelseries.h:205:17: error: ‘numrec’ was not declared in this scope
  205 |                 numrec = colors.size();
      |                 ^~~~~~
src/psteelseries.h:206:22: error: ‘uint8_t’ was not declared in this scope
  206 |                 for (uint8_t i=0; i < colors.size(); i++)
      |                      ^~~~~~~
src/psteelseries.h:206:22: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:206:35: error: ‘i’ was not declared in this scope
  206 |                 for (uint8_t i=0; i < colors.size(); i++)
      |                                   ^
src/psteelseries.h:226:33: error: expected ‘;’ before ‘r8’
  226 |                         uint8_t r8 = (dr >= 0 ? dr : 256 + dr);
      |                                 ^~
src/psteelseries.h:227:33: error: expected ‘;’ before ‘g8’
  227 |                         uint8_t g8 = (dg >= 0 ? dg : 256 + dg);
      |                                 ^~
src/psteelseries.h:228:33: error: expected ‘;’ before ‘b8’
  228 |                         uint8_t b8 = (db >= 0 ? db : 256 + db);
      |                                 ^~
src/psteelseries.h:230:39: error: ‘r8’ was not declared in this scope; did you mean ‘r’?
  230 |                         col[i].e[2] = r8;
      |                                       ^~
      |                                       r
src/psteelseries.h:231:39: error: ‘g8’ was not declared in this scope; did you mean ‘g’?
  231 |                         col[i].e[3] = g8;
      |                                       ^~
      |                                       g
src/psteelseries.h:232:39: error: ‘b8’ was not declared in this scope; did you mean ‘b’?
  232 |                         col[i].e[4] = b8;
      |                                       ^~
      |                                       b
src/psteelseries.h:241:22: error: ‘uint8_t’ was not declared in this scope
  241 |                 for (uint8_t i=colors.size(); i < col.size(); i++)
      |                      ^~~~~~~
src/psteelseries.h:241:22: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
src/psteelseries.h:241:47: error: ‘i’ was not declared in this scope
  241 |                 for (uint8_t i=colors.size(); i < col.size(); i++)
      |                                               ^
src/psteelseries.h:243:17: error: ‘speed_lo’ was not declared in this scope; did you mean ‘speed’?
  243 |                 speed_lo = final_speed & 0xff;
      |                 ^~~~~~~~
      |                 speed
src/psteelseries.h:244:17: error: ‘speed_hi’ was not declared in this scope; did you mean ‘speed’?
  244 |                 speed_hi = final_speed >> 8;
      |                 ^~~~~~~~
      |                 speed
src/psteelseries.h: In member function ‘void steel_data_0b::set_wave_mode(int)’:
src/psteelseries.h:254:17: error: ‘wave_mode_0’ was not declared in this scope
  254 |                 wave_mode_0 = (x >> 2) & 1;
      |                 ^~~~~~~~~~~
src/psteelseries.h:255:17: error: ‘wave_mode_1’ was not declared in this scope
  255 |                 wave_mode_1 = (x >> 1) & 1;
      |                 ^~~~~~~~~~~
src/psteelseries.h:256:22: error: invalid types ‘int[int]’ for array subscript
  256 |                 e19.e[0] = (x >> 0) & 1;
      |                      ^
src/psteelseries.h: In member function ‘void steel_data_0b::set_wave_speed(int)’:
src/psteelseries.h:264:17: error: ‘wave_speed_lo’ was not declared in this scope
  264 |                 wave_speed_lo = speed & 0xFF;
      |                 ^~~~~~~~~~~~~
src/psteelseries.h:265:17: error: ‘wave_speed_hi’ was not declared in this scope
  265 |                 wave_speed_hi = speed >> 8;
      |                 ^~~~~~~~~~~~~
src/psteelseries.h: At global scope:
src/psteelseries.h:411:37: error: static assertion failed: steel_data size mismatch
  411 | static_assert(sizeof(steel_data_0e) == 525, "steel_data size mismatch");
      |               ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
src/psteelseries.h:411:37: note: the comparison reduces to ‘(43 == 525)’
src/psteelseries.h:412:37: error: static assertion failed: steel_data size mismatch
  412 | static_assert(sizeof(steel_command) == 65, "steel_data size mismatch");
      |               ~~~~~~~~~~~~~~~~~~~~~~^~~~~
src/psteelseries.h:412:37: note: the comparison reduces to ‘(4 == 65)’
src/psteelseries.h:413:37: error: static assertion failed: steel_data size mismatch
  413 | static_assert(sizeof(steel_data_0b) == 525, "steel_data size mismatch");
      |               ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
src/psteelseries.h:413:37: note: the comparison reduces to ‘(76 == 525)’
src/psteelseries.h:448:28: error: ‘uint8_t’ has not been declared
  448 |         int write_all_leds(uint8_t r, uint8_t g, uint8_t b)
      |                            ^~~~~~~
src/psteelseries.h:448:39: error: ‘uint8_t’ has not been declared
  448 |         int write_all_leds(uint8_t r, uint8_t g, uint8_t b)
      |                                       ^~~~~~~
src/psteelseries.h:448:50: error: ‘uint8_t’ has not been declared
  448 |         int write_all_leds(uint8_t r, uint8_t g, uint8_t b)
      |                                                  ^~~~~~~
src/psteelseries.h:472:23: error: ‘uint8_t’ has not been declared
  472 |         int write_led(uint8_t led, uint8_t r, uint8_t g, uint8_t b)
      |                       ^~~~~~~
src/psteelseries.h:472:36: error: ‘uint8_t’ has not been declared
  472 |         int write_led(uint8_t led, uint8_t r, uint8_t g, uint8_t b)
      |                                    ^~~~~~~
src/psteelseries.h:472:47: error: ‘uint8_t’ has not been declared
  472 |         int write_led(uint8_t led, uint8_t r, uint8_t g, uint8_t b)
      |                                               ^~~~~~~
src/psteelseries.h:472:58: error: ‘uint8_t’ has not been declared
  472 |         int write_led(uint8_t led, uint8_t r, uint8_t g, uint8_t b)
      |                                                          ^~~~~~~
src/psteelseries.h:477:29: error: ‘uint8_t’ has not been declared
  477 |         int write_led_range(uint8_t start, uint8_t end,  uint8_t r, uint8_t g, uint8_t b)
      |                             ^~~~~~~
src/psteelseries.h:477:44: error: ‘uint8_t’ has not been declared
  477 |         int write_led_range(uint8_t start, uint8_t end,  uint8_t r, uint8_t g, uint8_t b)
      |                                            ^~~~~~~
src/psteelseries.h:477:58: error: ‘uint8_t’ has not been declared
  477 |         int write_led_range(uint8_t start, uint8_t end,  uint8_t r, uint8_t g, uint8_t b)
      |                                                          ^~~~~~~
src/psteelseries.h:477:69: error: ‘uint8_t’ has not been declared
  477 |         int write_led_range(uint8_t start, uint8_t end,  uint8_t r, uint8_t g, uint8_t b)
      |                                                                     ^~~~~~~
src/psteelseries.h:477:80: error: ‘uint8_t’ has not been declared
  477 |         int write_led_range(uint8_t start, uint8_t end,  uint8_t r, uint8_t g, uint8_t b)
      |                                                                                ^~~~~~~
src/psteelseries.h:494:33: error: ‘uint8_t’ has not been declared
  494 |         int global_illumination(uint8_t val)
      |                                 ^~~~~~~
src/psteelseries.h:500:31: error: ‘uint8_t’ has not been declared
  500 |         int write_led_profile(uint8_t start, uint8_t end, uint8_t profile)
      |                               ^~~~~~~
src/psteelseries.h:500:46: error: ‘uint8_t’ has not been declared
  500 |         int write_led_profile(uint8_t start, uint8_t end, uint8_t profile)
      |                                              ^~~~~~~
src/psteelseries.h:500:59: error: ‘uint8_t’ has not been declared
  500 |         int write_led_profile(uint8_t start, uint8_t end, uint8_t profile)
      |                                                           ^~~~~~~
src/psteelseries.h:505:33: error: ‘uint8_t’ has not been declared
  505 |         int colorshift_all_leds(uint8_t v)
      |                                 ^~~~~~~
src/psteelseries.h: In member function ‘int steeldev_t::write_all_leds(int, int, int)’:
src/psteelseries.h:454:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  454 |                 write_led_rec(steel_data_0e(0x3f, 0x66, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:456:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  456 |                 write_led_rec(steel_data_0e(0x00, 0x07, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:457:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  457 |                 write_led_rec(steel_data_0e(0x10, 0x17, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:458:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  458 |                 write_led_rec(steel_data_0e(0x08, 0x0f, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:459:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  459 |                 write_led_rec(steel_data_0e(0x18, 0x1f, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:460:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  460 |                 write_led_rec(steel_data_0e(0x20, 0x27, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:462:64: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&, int&, int&)’
  462 |                 write_led_rec(steel_data_0e(0x28, 0x3e, r, g, b));
      |                                                                ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h: In member function ‘int steeldev_t::write_led(int, int, int, int)’:
src/psteelseries.h:474:69: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int&, int&, int&, int&, int&)’
  474 |                 return write_led_rec(steel_data_0e(led, led, r, g, b));
      |                                                                     ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h: In member function ‘int steeldev_t::write_led_range(int, int, int, int, int)’:
src/psteelseries.h:479:71: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int&, int&, int&, int&, int&)’
  479 |                 return write_led_rec(steel_data_0e(start, end, r, g, b));
      |                                                                       ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 5 provided
src/psteelseries.h: In member function ‘int steeldev_t::persist()’:
src/psteelseries.h:484:37: error: no matching function for call to ‘steel_command::steel_command(int)’
  484 |                 steel_command d(0x09);
      |                                     ^
src/psteelseries.h:95:8: note: candidate: ‘steel_command::steel_command()’
   95 | struct steel_command
      |        ^~~~~~~~~~~~~
src/psteelseries.h:95:8: note:   candidate expects 0 arguments, 1 provided
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(const steel_command&)’
src/psteelseries.h:95:8: note:   no known conversion for argument 1 from ‘int’ to ‘const steel_command&’
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(steel_command&&)’
src/psteelseries.h:95:8: note:   no known conversion for argument 1 from ‘int’ to ‘steel_command&&’
src/psteelseries.h: In member function ‘int steeldev_t::flush()’:
src/psteelseries.h:490:43: error: no matching function for call to ‘steel_command::steel_command(int, int)’
  490 |                 steel_command d(0x0d, 0x02);
      |                                           ^
src/psteelseries.h:95:8: note: candidate: ‘steel_command::steel_command()’
   95 | struct steel_command
      |        ^~~~~~~~~~~~~
src/psteelseries.h:95:8: note:   candidate expects 0 arguments, 2 provided
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(const steel_command&)’
src/psteelseries.h:95:8: note:   candidate expects 1 argument, 2 provided
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(steel_command&&)’
src/psteelseries.h:95:8: note:   candidate expects 1 argument, 2 provided
src/psteelseries.h: In member function ‘int steeldev_t::global_illumination(int)’:
src/psteelseries.h:496:42: error: no matching function for call to ‘steel_command::steel_command(int, int&)’
  496 |                 steel_command d(0x0c, val);
      |                                          ^
src/psteelseries.h:95:8: note: candidate: ‘steel_command::steel_command()’
   95 | struct steel_command
      |        ^~~~~~~~~~~~~
src/psteelseries.h:95:8: note:   candidate expects 0 arguments, 2 provided
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(const steel_command&)’
src/psteelseries.h:95:8: note:   candidate expects 1 argument, 2 provided
src/psteelseries.h:95:8: note: candidate: ‘constexpr steel_command::steel_command(steel_command&&)’
src/psteelseries.h:95:8: note:   candidate expects 1 argument, 2 provided
src/psteelseries.h: In member function ‘int steeldev_t::write_led_profile(int, int, int)’:
src/psteelseries.h:502:71: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int&, int&, int&)’
  502 |                 return write_led_rec(steel_data_0e(start, end, profile));
      |                                                                       ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h: In member function ‘int steeldev_t::colorshift_all_leds(int)’:
src/psteelseries.h:511:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  511 |                 write_led_rec(steel_data_0e(0x3f, 0x66, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:513:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  513 |                 write_led_rec(steel_data_0e(0x00, 0x07, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:514:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  514 |                 write_led_rec(steel_data_0e(0x10, 0x17, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:515:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  515 |                 write_led_rec(steel_data_0e(0x08, 0x0f, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:516:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  516 |                 write_led_rec(steel_data_0e(0x18, 0x1f, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:517:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  517 |                 write_led_rec(steel_data_0e(0x20, 0x27, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:519:58: error: no matching function for call to ‘steel_data_0e::steel_data_0e(int, int, int&)’
  519 |                 write_led_rec(steel_data_0e(0x28, 0x3e, v));
      |                                                          ^
src/psteelseries.h:59:8: note: candidate: ‘steel_data_0e::steel_data_0e()’
   59 | struct steel_data_0e
      |        ^~~~~~~~~~~~~
src/psteelseries.h:59:8: note:   candidate expects 0 arguments, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(const steel_data_0e&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/psteelseries.h:59:8: note: candidate: ‘constexpr steel_data_0e::steel_data_0e(steel_data_0e&&)’
src/psteelseries.h:59:8: note:   candidate expects 1 argument, 3 provided
src/msigd.cpp: In function ‘int steel_main(std_logger_t&, int, char**)’:
src/msigd.cpp:1371:41: error: invalid types ‘int[int]’ for array subscript
 1371 |                 profile_data[i].col[0].e[0] = i;
      |                                         ^
make: *** [makefile:120: src/msigd.o] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions