mirror of
https://github.com/MatMoul/g810-led.git
synced 2024-12-23 01:06:11 +00:00
Add MKeys led control
This commit is contained in:
parent
619e6af72c
commit
be7d367079
@ -446,6 +446,53 @@ bool LedKeyboard::setAllKeys(LedKeyboard::Color color) {
|
||||
}
|
||||
|
||||
|
||||
bool LedKeyboard::setMRKey(uint8_t value) {
|
||||
LedKeyboard::byte_buffer_t data;
|
||||
switch (m_keyboardModel) {
|
||||
case KeyboardModel::g910:
|
||||
switch (value) {
|
||||
case 0x00:
|
||||
case 0x01:
|
||||
data = { 0x11, 0xff, 0x0a, 0x0e, value };
|
||||
data.resize(20, 0x00);
|
||||
return sendDataInternal(data);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LedKeyboard::setMNKey(uint8_t value) {
|
||||
LedKeyboard::byte_buffer_t data;
|
||||
switch (m_keyboardModel) {
|
||||
case KeyboardModel::g910:
|
||||
switch (value) {
|
||||
case 0x00:
|
||||
case 0x01:
|
||||
case 0x02:
|
||||
case 0x03:
|
||||
case 0x04:
|
||||
case 0x05:
|
||||
case 0x06:
|
||||
case 0x07:
|
||||
data = { 0x11, 0xff, 0x09, 0x1e, value };
|
||||
data.resize(20, 0x00);
|
||||
return sendDataInternal(data);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool LedKeyboard::setStartupMode(StartupMode startupMode) {
|
||||
byte_buffer_t data;
|
||||
switch (m_keyboardModel) {
|
||||
|
@ -140,6 +140,9 @@ class LedKeyboard {
|
||||
bool setGroupKeys(KeyGroup keyGroup, Color color);
|
||||
bool setAllKeys(Color color);
|
||||
|
||||
bool setMRKey(uint8_t value);
|
||||
bool setMNKey(uint8_t value);
|
||||
|
||||
bool setStartupMode(StartupMode startupMode);
|
||||
|
||||
bool setNativeEffect(NativeEffect effect, NativeEffectPart part, uint8_t speed, Color color);
|
||||
|
@ -8,7 +8,7 @@ using namespace std;
|
||||
|
||||
namespace help {
|
||||
|
||||
string version = "0.1.0";
|
||||
string version = "0.1.1";
|
||||
|
||||
void usage(char *arg0) {
|
||||
string cmdName = utils::getCmdName(arg0);
|
||||
@ -19,10 +19,18 @@ namespace help {
|
||||
cout<<" -a {color}\t\t\t\tSet all keys color"<<endl;
|
||||
cout<<" -g {keygroup} {color}\t\t\tSet key group color"<<endl;
|
||||
cout<<" -k {key} {color}\t\t\tSet key color"<<endl;
|
||||
if (cmdName == "g910-led") {
|
||||
cout<<" -mr {value}\t\t\t\tSet MR key (0-1)"<<endl;
|
||||
cout<<" -mn {value}\t\t\t\tSet MN key (0-7) (M1=1, M2=2, M3=4) (M1+M2=3, M1+M3=5, ...)"<<endl;
|
||||
}
|
||||
cout<<endl;
|
||||
cout<<" -an {color}\t\t\t\tSet all keys color without commit"<<endl;
|
||||
cout<<" -gn {keygroup} {color}\t\tSet key group color without commit"<<endl;
|
||||
cout<<" -kn {key} {color}\t\t\tSet key color without commit"<<endl;
|
||||
if (cmdName == "g910-led") {
|
||||
cout<<" -mrn {value}\t\t\t\tSet MR key without commit"<<endl;
|
||||
cout<<" -mnn {value}\t\t\t\tSet MN key without commit"<<endl;
|
||||
}
|
||||
cout<<" -c\t\t\t\t\tCommit change"<<endl;
|
||||
cout<<endl;
|
||||
cout<<" -fx ...\t\t\t\tUse --help-effects for more detail"<<endl;
|
||||
|
@ -209,4 +209,11 @@ namespace utils {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parseUInt8(std::string val, uint8_t &uint8) {
|
||||
if (val.length() == 1) val = "0" + val;
|
||||
if (val.length() != 2) return false;
|
||||
uint8 = std::stoul("0x" + val, nullptr, 16);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ namespace utils {
|
||||
bool parseKeyGroup(std::string val, LedKeyboard::KeyGroup &keyGroup);
|
||||
bool parseColor(std::string val, LedKeyboard::Color &color);
|
||||
bool parseSpeed(std::string val, uint8_t &speed);
|
||||
bool parseUInt8(std::string val, uint8_t &uint8);
|
||||
|
||||
}
|
||||
|
||||
|
22
src/main.cpp
22
src/main.cpp
@ -46,6 +46,24 @@ int setKey(LedKeyboard &kbd, std::string arg2, std::string arg3, bool commit = t
|
||||
return 0;
|
||||
}
|
||||
|
||||
int setMRKey(LedKeyboard &kbd, std::string arg2, bool commit = true) {
|
||||
uint8_t value;
|
||||
if (! utils::parseUInt8(arg2, value)) return 1;
|
||||
if (! kbd.open()) return 1;
|
||||
if (! kbd.setMRKey(value)) return 1;
|
||||
if (commit) if(! kbd.commit()) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int setMNKey(LedKeyboard &kbd, std::string arg2, bool commit = true) {
|
||||
uint8_t value;
|
||||
if (! utils::parseUInt8(arg2, value)) return 1;
|
||||
if (! kbd.open()) return 1;
|
||||
if (! kbd.setMNKey(value)) return 1;
|
||||
if (commit) if(! kbd.commit()) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int setFX(LedKeyboard &kbd, std::string arg2, std::string arg3, std::string arg4, std::string arg5 = "") {
|
||||
LedKeyboard::NativeEffect effect;
|
||||
@ -203,9 +221,13 @@ int main(int argc, char **argv) {
|
||||
else if (argc > 2 && arg == "-a") return setAllKeys(kbd, argv[2]);
|
||||
else if (argc > 3 && arg == "-g") return setGroupKeys(kbd, argv[2], argv[3]);
|
||||
else if (argc > 3 && arg == "-k") return setKey(kbd, argv[2], argv[3]);
|
||||
else if (argc > 2 && arg == "-mr") return setMRKey(kbd, argv[2]);
|
||||
else if (argc > 2 && arg == "-mn") return setMNKey(kbd, argv[2]);
|
||||
else if (argc > 2 && arg == "-an") return setAllKeys(kbd, argv[2], false);
|
||||
else if (argc > 3 && arg == "-gn") return setGroupKeys(kbd, argv[2], argv[3], false);
|
||||
else if (argc > 3 && arg == "-kn") return setKey(kbd, argv[2], argv[3], false);
|
||||
else if (argc > 2 && arg == "-mrn") return setMRKey(kbd, argv[2], false);
|
||||
else if (argc > 2 && arg == "-mnn") return setMNKey(kbd, argv[2], false);
|
||||
|
||||
else if (argc > 2 && arg == "-p") return loadProfile(kbd, argv[2]);
|
||||
else if (argc > 1 && arg == "-pp") return pipeProfile(kbd);
|
||||
|
Loading…
Reference in New Issue
Block a user