Browse Source

add extended help info and update README

master
Brad Parker 9 years ago
parent
commit
7e8cf24ce4
  1. 3
      README
  2. 85
      main.cpp
  3. 2
      msi-keyboard.pro

3
README

@ -2,7 +2,8 @@ This program can change the colors on your MSI steelseries keyboard. The keyboar
Prerequisites (tested on Ubuntu 14.04 only):
Qt 5
Qt 5.2 or later (Ubuntu includes Qt 5.2.1)
libhidapi-dev
libhidapi-libusb0
To build:

85
main.cpp

@ -8,10 +8,95 @@
*/
#include <QCoreApplication>
#include <QCommandLineParser>
#include <iostream>
#include "keyboard.h"
enum CommandLineParseResult
{
CommandLineOk,
CommandLineError,
CommandLineVersionRequested,
CommandLineHelpRequested
};
CommandLineParseResult parseCommandLine(QCommandLineParser &parser, QString *errorMessage) {
QCommandLineOption helpOption = parser.addHelpOption();
QCommandLineOption versionOption = parser.addVersionOption();
QCommandLineOption mode(QStringList() << "m" << "mode", "set color mode: normal, gaming, breathe, demo, wave");
QCommandLineOption color(QStringList() << "c" << "color", "set a color using the format: region,color,intensity");
parser.addOption(mode);
parser.addOption(color);
if(!parser.parse(QCoreApplication::arguments())) {
*errorMessage = parser.errorText();
return CommandLineError;
}
if(parser.isSet(versionOption))
return CommandLineVersionRequested;
if(parser.isSet(helpOption))
return CommandLineHelpRequested;
return CommandLineOk;
}
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
app.setApplicationName("msi-keyboard");
app.setApplicationVersion("1.0");
QCommandLineParser parser;
parser.setApplicationDescription("Keyboard color changer for MSI steelseries keyboards");
QString errorMessage;
switch(parseCommandLine(parser, &errorMessage)) {
case CommandLineOk:
break;
case CommandLineError:
fputs(qPrintable(errorMessage), stderr);
fputs("\n\n", stderr);
fputs(qPrintable(parser.helpText()), stderr);
return 1;
case CommandLineVersionRequested:
printf("%s %s\n", qPrintable(QCoreApplication::applicationName()),
qPrintable(QCoreApplication::applicationVersion()));
return 0;
case CommandLineHelpRequested:
{
std::cout << qPrintable(parser.helpText()) << std::endl;
QStringList regions = QStringList() << "left" << "middle" << "right";
QStringList colors = QStringList() << "off" << "red" << "orange" << "yellow" << "green" << "sky" << "blue" << "purple" << "white";
QStringList intensities = QStringList() << "high" << "medium" << "low" << "light";
QString colorHelp = QString(R"(Available regions:
%1
Available colors:
%2
Available intensities:
%3
Example:
%4
)").arg(regions.join('\n')).arg(colors.join('\n')).arg(intensities.join('\n')).arg(QString(argv[0]) + " -m normal -c left,red,high -c middle,purple,high -c right,sky,high");
std::cout << qPrintable(colorHelp) << std::endl;
return 0;
}
}
Keyboard k;
k.setMode(MODE_NORMAL);

2
msi-keyboard.pro

@ -9,4 +9,6 @@ QT -= gui
SOURCES += main.cpp keyboard.cpp
HEADERS += keyboard.h
QMAKE_CXXFLAGS += -std=c++11
unix:LIBS += -lhidapi-libusb

Loading…
Cancel
Save