Apply clang-format rules
This commit is contained in:
parent
ce369221e7
commit
11643631f5
2 changed files with 92 additions and 74 deletions
|
@ -12,51 +12,63 @@
|
|||
#include "programs.h"
|
||||
#include "program_autotype.h"
|
||||
|
||||
void AUTOTYPE::PrintUsage() {
|
||||
WriteOut_NoParsing(
|
||||
"\033[32;1mAUTOTYPE\033[0m [-list] [-w WAIT] [-p PACE] button_1 [button_2 [...]] \n\n"
|
||||
"Where:\n"
|
||||
" -list: prints all available button names.\n"
|
||||
" -w WAIT: seconds before typing begins. Two second default; max of 30.\n"
|
||||
" -p PACE: seconds between each keystroke. Half-second default; max of 10.\n"
|
||||
"\n"
|
||||
" The sequence is comprised of one or more space-separated buttons.\n"
|
||||
" Autotyping begins after WAIT seconds, and each button is entered \n"
|
||||
" every PACE seconds. The , character inserts an extra PACE delay.\n"
|
||||
"\n"
|
||||
"Some examples:\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -w 1 -p 0.3 up enter , right enter\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -p 0.2 1 3 , , enter\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -w 1.3 esc esc esc enter p l a y e r enter\n");
|
||||
void AUTOTYPE::PrintUsage()
|
||||
{
|
||||
constexpr const char *msg =
|
||||
"\033[32;1mAUTOTYPE\033[0m [-list] [-w WAIT] [-p PACE] "
|
||||
"button_1 [button_2 [...]] \n\n"
|
||||
"Where:\n"
|
||||
" -list: prints all available button names.\n"
|
||||
" -w WAIT: seconds before typing begins. Two second default; "
|
||||
"max of 30.\n"
|
||||
" -p PACE: seconds between each keystroke. Half-second "
|
||||
"default; max of 10.\n"
|
||||
"\n"
|
||||
" The sequence is comprised of one or more space-separated "
|
||||
"buttons.\n"
|
||||
" Autotyping begins after WAIT seconds, and each button is "
|
||||
"entered \n"
|
||||
" every PACE seconds. The , character inserts an extra PACE "
|
||||
"delay.\n"
|
||||
"\n"
|
||||
"Some examples:\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -w 1 -p 0.3 up enter , right "
|
||||
"enter\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -p 0.2 f1 kp_8 , , enter\n"
|
||||
" \033[32;1mAUTOTYPE\033[0m -w 1.3 esc enter , p l a y e r "
|
||||
"enter\n";
|
||||
WriteOut_NoParsing(msg);
|
||||
}
|
||||
|
||||
// Prints the key-names for the mapper's currently-bound events.
|
||||
void AUTOTYPE::PrintKeys() {
|
||||
const std::vector<std::string> names = MAPPER_GetEventNames("key_");
|
||||
void AUTOTYPE::PrintKeys()
|
||||
{
|
||||
const std::vector<std::string> names = MAPPER_GetEventNames("key_");
|
||||
|
||||
// Keep track of the longest key name
|
||||
size_t max_length = 0;
|
||||
for (const auto &name : names)
|
||||
max_length = (std::max)(name.length(), max_length);
|
||||
// Keep track of the longest key name
|
||||
size_t max_length = 0;
|
||||
for (const auto &name : names)
|
||||
max_length = (std::max)(name.length(), max_length);
|
||||
|
||||
// Sanity check to avoid dividing by 0
|
||||
if (!max_length) {
|
||||
WriteOut_NoParsing("AUTOTYPE: The mapper has no key bindings\n");
|
||||
return;
|
||||
}
|
||||
// Sanity check to avoid dividing by 0
|
||||
if (!max_length) {
|
||||
WriteOut_NoParsing(
|
||||
"AUTOTYPE: The mapper has no key bindings\n");
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup our rows and columns
|
||||
const size_t wrap_width = 72; // confortable columns not pushed to the edge
|
||||
const size_t columns = wrap_width / max_length;
|
||||
const size_t rows = ceil_udivide(names.size(), columns);
|
||||
// Setup our rows and columns
|
||||
const size_t wrap_width = 72; // confortable columns not pushed to the edge
|
||||
const size_t columns = wrap_width / max_length;
|
||||
const size_t rows = ceil_udivide(names.size(), columns);
|
||||
|
||||
// Build the string output by rows and columns
|
||||
auto name = names.begin();
|
||||
for (size_t row = 0; row < rows; ++row) {
|
||||
for (size_t i = row; i < names.size(); i += rows)
|
||||
WriteOut(" %-*s", max_length, name[i].c_str());
|
||||
WriteOut_NoParsing("\n");
|
||||
}
|
||||
// Build the string output by rows and columns
|
||||
auto name = names.begin();
|
||||
for (size_t row = 0; row < rows; ++row) {
|
||||
for (size_t i = row; i < names.size(); i += rows)
|
||||
WriteOut(" %-*s", max_length, name[i].c_str());
|
||||
WriteOut_NoParsing("\n");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -65,49 +77,53 @@ void AUTOTYPE::PrintKeys() {
|
|||
* - flag is the command-line flag, ie: -d or -delay
|
||||
* - default is the default value if the flag doesn't exist
|
||||
* - value will be populated with the default or provided value
|
||||
*
|
||||
*
|
||||
* Returns:
|
||||
* true if 'value' is set to the default or read from the arg.
|
||||
* false if the argument was used but could not be parsed.
|
||||
*/
|
||||
bool AUTOTYPE::ReadDoubleArg(const std::string &name,
|
||||
const char *flag,
|
||||
const double &def_value,
|
||||
const double &min_value,
|
||||
const double &max_value,
|
||||
double &value) {
|
||||
bool AUTOTYPE::ReadDoubleArg(const std::string &name,
|
||||
const char *flag,
|
||||
const double &def_value,
|
||||
const double &min_value,
|
||||
const double &max_value,
|
||||
double &value)
|
||||
{
|
||||
bool result = false;
|
||||
std::string str_value;
|
||||
|
||||
// Is the user trying to set this flag?
|
||||
if (cmd->FindString(flag, str_value, true)) {
|
||||
|
||||
// Can the user's value be parsed?
|
||||
const double user_value = to_finite<double>(str_value);
|
||||
if (std::isfinite(user_value)) {
|
||||
result = true;
|
||||
|
||||
// Clamp the user's value if needed
|
||||
value = clamp(user_value, min_value, max_value);
|
||||
|
||||
// Inform them if we had to clamp their value
|
||||
if (std::fabs(user_value - value) > std::numeric_limits<double>::epsilon())
|
||||
WriteOut("AUTOTYPE: bounding %s value of %.2f to %.2f\n",
|
||||
// Inform them if we had to clamp their value
|
||||
if (std::fabs(user_value - value) >
|
||||
std::numeric_limits<double>::epsilon())
|
||||
WriteOut("AUTOTYPE: bounding %s value of %.2f "
|
||||
"to %.2f\n",
|
||||
name.c_str(), user_value, value);
|
||||
// Otherwise inform them we couldn't parse their value
|
||||
} else {
|
||||
WriteOut("AUTOTYPE: %s value '%s' is not a valid floating point number\n",
|
||||
|
||||
} else { // Otherwise we couldn't parse their value
|
||||
WriteOut("AUTOTYPE: %s value '%s' is not a valid "
|
||||
"floating point number\n",
|
||||
name.c_str(), str_value.c_str());
|
||||
}
|
||||
// Otherwise the user hasn't set this flag, so use the default
|
||||
} else {
|
||||
} else { // Otherwise thay haven't passed this flag
|
||||
value = def_value;
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void AUTOTYPE::Run() {
|
||||
|
||||
//Hack To allow long commandlines
|
||||
void AUTOTYPE::Run()
|
||||
{
|
||||
// Hack To allow long commandlines
|
||||
ChangeToLongCmd();
|
||||
|
||||
// Usage
|
||||
|
@ -121,13 +137,13 @@ void AUTOTYPE::Run() {
|
|||
PrintKeys();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Get the wait delay in milliseconds
|
||||
double wait_s;
|
||||
constexpr double def_wait_s = 2.0;
|
||||
constexpr double min_wait_s = 0.0;
|
||||
constexpr double max_wait_s = 30.0;
|
||||
if (!ReadDoubleArg("WAIT", "-w", def_wait_s, min_wait_s,max_wait_s, wait_s))
|
||||
if (!ReadDoubleArg("WAIT", "-w", def_wait_s, min_wait_s, max_wait_s, wait_s))
|
||||
return;
|
||||
const auto wait_ms = static_cast<uint32_t>(wait_s * 1000);
|
||||
|
||||
|
@ -150,6 +166,7 @@ void AUTOTYPE::Run() {
|
|||
MAPPER_AutoType(sequence, wait_ms, pace_ms);
|
||||
}
|
||||
|
||||
void AUTOTYPE_ProgramStart(Program * *make) {
|
||||
*make = new AUTOTYPE;
|
||||
}
|
||||
void AUTOTYPE_ProgramStart(Program **make)
|
||||
{
|
||||
*make = new AUTOTYPE;
|
||||
}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
#include "programs.h"
|
||||
|
||||
class AUTOTYPE : public Program {
|
||||
public:
|
||||
void Run();
|
||||
private:
|
||||
void PrintUsage();
|
||||
void PrintKeys();
|
||||
bool ReadDoubleArg(const std::string &name,
|
||||
const char *flag,
|
||||
const double &def_value,
|
||||
const double &min_value,
|
||||
const double &max_value,
|
||||
double &value);
|
||||
public:
|
||||
void Run();
|
||||
|
||||
private:
|
||||
void PrintUsage();
|
||||
void PrintKeys();
|
||||
bool ReadDoubleArg(const std::string &name,
|
||||
const char *flag,
|
||||
const double &def_value,
|
||||
const double &min_value,
|
||||
const double &max_value,
|
||||
double &value);
|
||||
};
|
||||
|
||||
void AUTOTYPE_ProgramStart(Program * *make);
|
||||
void AUTOTYPE_ProgramStart(Program **make);
|
Loading…
Add table
Reference in a new issue