Refactor getAnalogInputName
This commit is contained in:
committed by
Raphael Coeffic
parent
cd7585091c
commit
f5dd81627d
@@ -510,102 +510,107 @@ QString Boards::getAxisName(int index)
|
||||
return CPN_STR_UNKNOWN_ITEM;
|
||||
}
|
||||
|
||||
QString Boards::getAnalogInputName(Board::Type board, int index)
|
||||
#define ANALOGINDEXNAMEENTRY(name) tbl.push_back( { cnt++, name } );
|
||||
|
||||
AnalogIndexNamesLookupTable Boards::getAnalogNamesLookupTable(Board::Type board)
|
||||
{
|
||||
if (index < 0)
|
||||
return CPN_STR_UNKNOWN_ITEM;
|
||||
AnalogIndexNamesLookupTable tbl;
|
||||
int cnt = 0;
|
||||
|
||||
if (index < getBoardCapability(board, Board::Sticks)) {
|
||||
const QString sticks[] = {
|
||||
tr("Rud"),
|
||||
tr("Ele"),
|
||||
tr("Thr"),
|
||||
tr("Ail")
|
||||
};
|
||||
return sticks[index];
|
||||
if (getBoardCapability(board, Board::Sticks)) {
|
||||
ANALOGINDEXNAMEENTRY("Rud")
|
||||
ANALOGINDEXNAMEENTRY("Ele")
|
||||
ANALOGINDEXNAMEENTRY("Thr")
|
||||
ANALOGINDEXNAMEENTRY("Ail")
|
||||
}
|
||||
|
||||
index -= getCapability(board, Board::Sticks);
|
||||
|
||||
if (IS_SKY9X(board)) {
|
||||
const QString pots[] = {
|
||||
"P1",
|
||||
"P2",
|
||||
"P3"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("P1")
|
||||
ANALOGINDEXNAMEENTRY("P2")
|
||||
ANALOGINDEXNAMEENTRY("P3")
|
||||
}
|
||||
else if (IS_TARANIS_X9E(board)) {
|
||||
const QString pots[] = {
|
||||
"F1",
|
||||
"F2",
|
||||
"F3",
|
||||
"F4",
|
||||
"S1",
|
||||
"S2",
|
||||
"LS",
|
||||
"RS"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("F1")
|
||||
ANALOGINDEXNAMEENTRY("F2")
|
||||
ANALOGINDEXNAMEENTRY("F3")
|
||||
ANALOGINDEXNAMEENTRY("F4")
|
||||
ANALOGINDEXNAMEENTRY("S1")
|
||||
ANALOGINDEXNAMEENTRY("S2")
|
||||
ANALOGINDEXNAMEENTRY("LS")
|
||||
ANALOGINDEXNAMEENTRY("RS")
|
||||
}
|
||||
else if (IS_TARANIS_XLITE(board)) {
|
||||
const QString pots[] = {
|
||||
"S1",
|
||||
"S2",
|
||||
"GyrX",
|
||||
"GyrY"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("S1")
|
||||
ANALOGINDEXNAMEENTRY("S2")
|
||||
ANALOGINDEXNAMEENTRY("GyrX")
|
||||
ANALOGINDEXNAMEENTRY("GyrY")
|
||||
}
|
||||
else if (IS_TARANIS(board)) {
|
||||
const QString pots[] = {
|
||||
"S1",
|
||||
"S2",
|
||||
"S3",
|
||||
"LS",
|
||||
"RS"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("S1")
|
||||
ANALOGINDEXNAMEENTRY("S2")
|
||||
ANALOGINDEXNAMEENTRY("S3")
|
||||
ANALOGINDEXNAMEENTRY("LS")
|
||||
ANALOGINDEXNAMEENTRY("RS")
|
||||
}
|
||||
else if (IS_HORUS_X12S(board)) {
|
||||
const QString pots[] = {
|
||||
"S1",
|
||||
"6P",
|
||||
"S2",
|
||||
"L1",
|
||||
"L2",
|
||||
"LS",
|
||||
"RS",
|
||||
"JSx",
|
||||
"JSy"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("S1")
|
||||
ANALOGINDEXNAMEENTRY("6P")
|
||||
ANALOGINDEXNAMEENTRY("S2")
|
||||
ANALOGINDEXNAMEENTRY("L1")
|
||||
ANALOGINDEXNAMEENTRY("L2")
|
||||
ANALOGINDEXNAMEENTRY("LS")
|
||||
ANALOGINDEXNAMEENTRY("RS")
|
||||
ANALOGINDEXNAMEENTRY("JSx")
|
||||
ANALOGINDEXNAMEENTRY("JSy")
|
||||
}
|
||||
else if (IS_FLYSKY_NV14(board)) {
|
||||
const QString pots[] = {
|
||||
"VRA",
|
||||
"VRB",
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("VRA")
|
||||
ANALOGINDEXNAMEENTRY("VRB")
|
||||
}
|
||||
else if (IS_HORUS_X10(board) || IS_FAMILY_T16(board)) {
|
||||
const QString pots[] = {
|
||||
"S1",
|
||||
"6P",
|
||||
"S2",
|
||||
"EX1",
|
||||
"EX2",
|
||||
"LS",
|
||||
"RS"
|
||||
};
|
||||
if (index < DIM(pots))
|
||||
return pots[index];
|
||||
ANALOGINDEXNAMEENTRY("S1")
|
||||
ANALOGINDEXNAMEENTRY("6P")
|
||||
ANALOGINDEXNAMEENTRY("S2")
|
||||
ANALOGINDEXNAMEENTRY("EX1")
|
||||
ANALOGINDEXNAMEENTRY("EX2" )
|
||||
//ANALOGINDEXNAMEENTRY("EX3") // not yet implemented
|
||||
//ANALOGINDEXNAMEENTRY("EX4") // not yet implemented
|
||||
ANALOGINDEXNAMEENTRY("LS")
|
||||
ANALOGINDEXNAMEENTRY("RS")
|
||||
}
|
||||
|
||||
return tbl;
|
||||
}
|
||||
|
||||
int Boards::getAnalogInputIndex(Board::Type board, char * name)
|
||||
{
|
||||
AnalogIndexNamesLookupTable lut = getAnalogNamesLookupTable(board);
|
||||
|
||||
const auto& it =
|
||||
find_if(lut.begin(), lut.end(), [=](const AnalogIndexNamesLookupElmt& elmt) {
|
||||
if (elmt.second == name) return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
if (it != lut.end()) {
|
||||
return it->first;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
QString Boards::getAnalogInputName(Board::Type board, int index)
|
||||
{
|
||||
AnalogIndexNamesLookupTable lut = getAnalogNamesLookupTable(board);
|
||||
|
||||
const auto& it =
|
||||
find_if(lut.begin(), lut.end(), [=](const AnalogIndexNamesLookupElmt& elmt) {
|
||||
if (elmt.first == index) return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
if (it != lut.end()) {
|
||||
return QString::fromUtf8(it->second.data(), it->second.size());
|
||||
}
|
||||
|
||||
return CPN_STR_UNKNOWN_ITEM;
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class AbstractStaticItemModel;
|
||||
|
||||
// identiying names of static abstract item models
|
||||
@@ -174,6 +177,9 @@ namespace Board {
|
||||
|
||||
}
|
||||
|
||||
typedef std::pair<int, std::string> AnalogIndexNamesLookupElmt;
|
||||
typedef std::vector<AnalogIndexNamesLookupElmt> AnalogIndexNamesLookupTable;
|
||||
|
||||
class Boards
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(Boards)
|
||||
@@ -202,6 +208,8 @@ class Boards
|
||||
static Board::SwitchInfo getSwitchInfo(Board::Type board, int index);
|
||||
static int getCapability(Board::Type board, Board::Capability capability);
|
||||
static QString getAxisName(int index);
|
||||
static AnalogIndexNamesLookupTable getAnalogNamesLookupTable(Board::Type board);
|
||||
static int getAnalogInputIndex(Board::Type board, char * name);
|
||||
static QString getAnalogInputName(Board::Type board, int index);
|
||||
static bool isBoardCompatible(Board::Type board1, Board::Type board2);
|
||||
static QString getBoardName(Board::Type board);
|
||||
|
||||
Reference in New Issue
Block a user