feat: More rotary encoder options for B&W screens (see #2045)

* First build

* Fix X9

* Update api_general.cpp

* Update translations.h

* clean up translations

* fix: B&W option handling, remove magic numbers, cleanup
- Remove references to invertRotary, change to RotEncDir or similar
- Add compatabilty importing to companion, firmware
- Rename Lua API call
- Move magic numbers to enum
- Improve B&W option handling so it doesn't apply changes while in menu

* chore: yaml regen

* fix: Add missing guards for X9D/X9D+

* fix: Wrong enum name in simu

* fix(cpn): Use correct names for UI elements

* fix: Translations

* fix: Allow `rotEncMode` in all yaml due to x9d var
Of the three X9D variants, the X9D+2019 is the only one that
has a rotary encoder as standard. However, as the base config
file is for the X9D, this meant it wasn't reading or writing the
config value. Rather than add a seperate config file for it for
a single variable, simple to just allow it across all targets.

* fix: Companion string, change colorlcd to `Choice`

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
breadoven
2022-08-04 20:06:17 +10:00
committed by GitHub
co-authored by Peter Feerick
parent 5752cf4061
commit 62692dba6a
53 changed files with 435 additions and 131 deletions
@@ -202,7 +202,7 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
node["noJitterFilter"] = (int)rhs.noJitterFilter; node["noJitterFilter"] = (int)rhs.noJitterFilter;
node["disableRtcWarning"] = (int)rhs.rtcCheckDisable; // TODO: verify node["disableRtcWarning"] = (int)rhs.rtcCheckDisable; // TODO: verify
node["keysBacklight"] = (int)rhs.keysBacklight; node["keysBacklight"] = (int)rhs.keysBacklight;
node["rotEncDirection"] = (int)rhs.rotEncDirection; node["rotEncMode"] = (int)rhs.rotEncMode;
node["imperial"] = rhs.imperial; node["imperial"] = rhs.imperial;
node["ttsLanguage"] = rhs.ttsLanguage; node["ttsLanguage"] = rhs.ttsLanguage;
node["beepVolume"] = rhs.beepVolume + 2; node["beepVolume"] = rhs.beepVolume + 2;
@@ -396,7 +396,8 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
node["noJitterFilter"] >> rhs.noJitterFilter; // new, but don't write old node["noJitterFilter"] >> rhs.noJitterFilter; // new, but don't write old
node["disableRtcWarning"] >> rhs.rtcCheckDisable; // TODO: verify node["disableRtcWarning"] >> rhs.rtcCheckDisable; // TODO: verify
node["keysBacklight"] >> rhs.keysBacklight; node["keysBacklight"] >> rhs.keysBacklight;
node["rotEncDirection"] >> rhs.rotEncDirection; node["rotEncDirection"] >> rhs.rotEncMode; // PR2045: read old name and
node["rotEncMode"] >> rhs.rotEncMode; // new, but don't write old
node["imperial"] >> rhs.imperial; node["imperial"] >> rhs.imperial;
node["ttsLanguage"] >> rhs.ttsLanguage; node["ttsLanguage"] >> rhs.ttsLanguage;
node["beepVolume"] >> ioffset_int(rhs.beepVolume, 2); node["beepVolume"] >> ioffset_int(rhs.beepVolume, 2);
+1 -1
View File
@@ -238,7 +238,7 @@ class GeneralSettings {
bool noJitterFilter; bool noJitterFilter;
bool rtcCheckDisable; bool rtcCheckDisable;
bool keysBacklight; bool keysBacklight;
bool rotEncDirection; unsigned int rotEncMode;
unsigned int imperial; unsigned int imperial;
char ttsLanguage[TTS_LANGUAGE_LEN + 1]; char ttsLanguage[TTS_LANGUAGE_LEN + 1];
int beepVolume; int beepVolume;
@@ -3035,11 +3035,10 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
internalField.Append(new BoolField<1>(this, generalData.rtcCheckDisable)); internalField.Append(new BoolField<1>(this, generalData.rtcCheckDisable));
if (IS_JUMPER_T18(board)) { if (IS_JUMPER_T18(board)) {
internalField.Append(new BoolField<1>(this, generalData.keysBacklight)); internalField.Append(new BoolField<1>(this, generalData.keysBacklight));
internalField.Append(new BoolField<1>(this, generalData.rotEncDirection)); internalField.Append(new SpareBitsField<1>(this));
} }
else { else {
internalField.Append(new SpareBitsField<1>(this)); internalField.Append(new SpareBitsField<2>(this));
internalField.Append(new BoolField<1>(this, generalData.rotEncDirection));
} }
for (int i=0; i<4; i++) { for (int i=0; i<4; i++) {
@@ -3350,6 +3349,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
if (version >= 220) { if (version >= 220) {
internalField.Append(new SignedField<2>(this, generalData.uartSampleMode, "Uart Sample Mode")); internalField.Append(new SignedField<2>(this, generalData.uartSampleMode, "Uart Sample Mode"));
internalField.Append(new UnsignedField<2>(this, generalData.rotEncMode));
//internalField.Append(new SpareBitsField<6>(this)); // may need padding to end of 8 byte boundary //internalField.Append(new SpareBitsField<6>(this)); // may need padding to end of 8 byte boundary
} }
} }
+25 -6
View File
@@ -126,11 +126,11 @@ ui(new Ui::GeneralSetup)
} }
if (!firmware->getCapability(RotaryEncoderNavigation)) { if (!firmware->getCapability(RotaryEncoderNavigation)) {
ui->invertRotary_CB->hide(); ui->rotEncMode_CB->hide();
ui->invertRotary_label->hide(); ui->rotEncMode_label->hide();
} }
else { else {
ui->invertRotary_CB->setChecked(generalSettings.rotEncDirection); populateRotEncModeCB();
} }
if (!firmware->getCapability(HasPxxCountry)) { if (!firmware->getCapability(HasPxxCountry)) {
@@ -483,10 +483,29 @@ void GeneralSetupPanel::on_faimode_CB_stateChanged(int)
emit modified(); emit modified();
} }
void GeneralSetupPanel::on_invertRotary_CB_stateChanged(int) void GeneralSetupPanel::populateRotEncModeCB()
{ {
generalSettings.rotEncDirection = ui->invertRotary_CB->isChecked(); QComboBox * b = ui->rotEncMode_CB;
emit modified(); QString strings[] = { tr("Normal"), tr("Inverted"), tr("Vertical Inverted, Horizontal Normal"), tr("Vertical Inverted, Horizontal Alternate") };
int itemCount = 4;
if (Boards::getCapability(firmware->getBoard(), Board::HasColorLcd)) {
itemCount = 2;
}
b->clear();
for (uint8_t i=0; i < itemCount; i++) {
b->addItem(strings[i], 0);
}
b->setCurrentIndex(generalSettings.rotEncMode);
}
void GeneralSetupPanel::on_rotEncMode_CB_currentIndexChanged(int index)
{
if (!lock) {
generalSettings.rotEncMode = index;
emit modified();
}
} }
void GeneralSetupPanel::on_speakerPitchSB_editingFinished() void GeneralSetupPanel::on_speakerPitchSB_editingFinished()
+2 -1
View File
@@ -49,7 +49,7 @@ class GeneralSetupPanel : public GeneralPanel
void on_countrycode_CB_currentIndexChanged(int index); void on_countrycode_CB_currentIndexChanged(int index);
void on_units_CB_currentIndexChanged(int index); void on_units_CB_currentIndexChanged(int index);
void on_faimode_CB_stateChanged(int ); void on_faimode_CB_stateChanged(int );
void on_invertRotary_CB_stateChanged(int); void on_rotEncMode_CB_currentIndexChanged(int index);
void on_speakerPitchSB_editingFinished(); void on_speakerPitchSB_editingFinished();
void on_timezoneSB_editingFinished(); void on_timezoneSB_editingFinished();
void on_adjustRTC_stateChanged(int); void on_adjustRTC_stateChanged(int);
@@ -100,6 +100,7 @@ class GeneralSetupPanel : public GeneralPanel
void populateBacklightCB(); void populateBacklightCB();
void populateVoiceLangCB(); void populateVoiceLangCB();
void populateRotEncCB(int reCount); void populateRotEncCB(int reCount);
void populateRotEncModeCB();
void updateVarioPitchRange(); void updateVarioPitchRange();
}; };
+3 -10
View File
@@ -1146,21 +1146,14 @@ p, li { white-space: pre-wrap; }
<widget class="QComboBox" name="re_CB"/> <widget class="QComboBox" name="re_CB"/>
</item> </item>
<item row="21" column="0"> <item row="21" column="0">
<widget class="QLabel" name="invertRotary_label"> <widget class="QLabel" name="rotEncMode_label">
<property name="text"> <property name="text">
<string>Invert Rotary</string> <string>Rotary Encoder Mode</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="21" column="1"> <item row="21" column="1">
<widget class="QCheckBox" name="invertRotary_CB"> <widget class="QComboBox" name="rotEncMode_CB"/>
<property name="toolTip">
<string>Invert the direction of the rotary encoder</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
+8 -4
View File
@@ -812,7 +812,7 @@ PACK(struct TrainerData {
#if defined(BUZZER) #if defined(BUZZER)
#define BUZZER_FIELD int8_t buzzerMode:2 // -2=quiet, -1=only alarms, 0=no keys, 1=all (only used on AVR radios without audio hardware) #define BUZZER_FIELD int8_t buzzerMode:2 // -2=quiet, -1=only alarms, 0=no keys, 1=all (only used on AVR radios without audio hardware)
#else #else
#define BUZZER_FIELD int8_t spare1:2 SKIP #define BUZZER_FIELD int8_t spare2:2 SKIP
#endif #endif
PACK(struct RadioData { PACK(struct RadioData {
@@ -830,7 +830,7 @@ PACK(struct RadioData {
int8_t antennaMode:2 ENUM(AntennaModes); int8_t antennaMode:2 ENUM(AntennaModes);
uint8_t disableRtcWarning:1; uint8_t disableRtcWarning:1;
uint8_t keysBacklight:1; uint8_t keysBacklight:1;
int8_t rotEncDirection:1; NOBACKUP(uint8_t spare1:1 SKIP);
NOBACKUP(uint8_t internalModule ENUM(ModuleType)); NOBACKUP(uint8_t internalModule ENUM(ModuleType));
NOBACKUP(TrainerData trainer); NOBACKUP(TrainerData trainer);
NOBACKUP(uint8_t view); // index of view in main screen NOBACKUP(uint8_t view); // index of view in main screen
@@ -899,13 +899,17 @@ PACK(struct RadioData {
char ownerRegistrationID[PXX2_LEN_REGISTRATION_ID]; char ownerRegistrationID[PXX2_LEN_REGISTRATION_ID];
CUST_ATTR(rotEncDirection, r_rotEncDirection, nullptr);
NOBACKUP(uint8_t rotEncMode:2);
NOBACKUP(int8_t uartSampleMode:2); // See UartSampleModes NOBACKUP(int8_t uartSampleMode:2); // See UartSampleModes
#if defined(STICK_DEAD_ZONE) #if defined(STICK_DEAD_ZONE)
NOBACKUP(uint8_t stickDeadZone:3); NOBACKUP(uint8_t stickDeadZone:3);
NOBACKUP(uint8_t spare2:3 SKIP);
#else #else
NOBACKUP(uint8_t spare2:6 SKIP); NOBACKUP(uint8_t stickDeadZoneSpare:3 SKIP);
#endif #endif
NOBACKUP(uint8_t spare4:1 SKIP);
#if defined(IMU) #if defined(IMU)
NOBACKUP(int8_t imuMax); NOBACKUP(int8_t imuMax);
+19 -3
View File
@@ -102,7 +102,7 @@ enum {
ITEM_RADIO_SETUP_USB_MODE, ITEM_RADIO_SETUP_USB_MODE,
CASE_JACK_DETECT(ITEM_RADIO_SETUP_JACK_MODE) CASE_JACK_DETECT(ITEM_RADIO_SETUP_JACK_MODE)
ITEM_RADIO_SETUP_RX_CHANNEL_ORD, ITEM_RADIO_SETUP_RX_CHANNEL_ORD,
CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_INVERSE) CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_ENC_MODE)
ITEM_RADIO_SETUP_STICK_MODE_LABELS, ITEM_RADIO_SETUP_STICK_MODE_LABELS,
ITEM_RADIO_SETUP_STICK_MODE, ITEM_RADIO_SETUP_STICK_MODE,
ITEM_RADIO_SETUP_MAX ITEM_RADIO_SETUP_MAX
@@ -181,6 +181,9 @@ void menuRadioSetup(event_t event)
if (event == EVT_ENTRY) { if (event == EVT_ENTRY) {
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
#if defined(ROTARY_ENCODER_NAVIGATION)
reusableBuffer.generalSettings.rotaryEncoderMode = g_eeGeneral.rotEncMode;
#endif
} }
uint8_t sub = menuVerticalPosition - HEADER_LINE; uint8_t sub = menuVerticalPosition - HEADER_LINE;
@@ -661,8 +664,21 @@ void menuRadioSetup(event_t event)
break; break;
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
case ITEM_RADIO_SETUP_ROTARY_INVERSE: case ITEM_RADIO_SETUP_ROTARY_ENC_MODE:
g_eeGeneral.rotEncDirection = editCheckBox(g_eeGeneral.rotEncDirection, RADIO_SETUP_2ND_COLUMN, y, STR_INVERT_ROTARY, attr, event); lcdDrawTextAlignedLeft(y, STR_ROTARY_ENC_MODE);
lcdDrawTextAtIndex(RADIO_SETUP_2ND_COLUMN, y, STR_ROTARY_ENC_OPT,
reusableBuffer.generalSettings.rotaryEncoderMode,
attr);
if (attr && s_editMode > 0) {
CHECK_INCDEC_GENVAR(event,
reusableBuffer.generalSettings.rotaryEncoderMode,
ROTARY_ENCODER_MODE_NORMAL,
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT);
} else if (reusableBuffer.generalSettings.rotaryEncoderMode !=
g_eeGeneral.rotEncMode) {
g_eeGeneral.rotEncMode =
reusableBuffer.generalSettings.rotaryEncoderMode;
}
break; break;
#endif #endif
+19 -3
View File
@@ -95,7 +95,7 @@ enum MenuRadioSetupItems {
ITEM_RADIO_SETUP_SWITCHES_DELAY, ITEM_RADIO_SETUP_SWITCHES_DELAY,
ITEM_RADIO_SETUP_USB_MODE, ITEM_RADIO_SETUP_USB_MODE,
ITEM_RADIO_SETUP_RX_CHANNEL_ORD, ITEM_RADIO_SETUP_RX_CHANNEL_ORD,
CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_INVERSE) CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_ENC_MODE)
ITEM_RADIO_SETUP_STICK_MODE_LABELS, ITEM_RADIO_SETUP_STICK_MODE_LABELS,
ITEM_RADIO_SETUP_STICK_MODE, ITEM_RADIO_SETUP_STICK_MODE,
ITEM_RADIO_SETUP_MAX ITEM_RADIO_SETUP_MAX
@@ -183,6 +183,9 @@ void menuRadioSetup(event_t event)
if (event == EVT_ENTRY) { if (event == EVT_ENTRY) {
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode; reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
#if defined(ROTARY_ENCODER_NAVIGATION)
reusableBuffer.generalSettings.rotaryEncoderMode = g_eeGeneral.rotEncMode;
#endif
} }
int sub = menuVerticalPosition; int sub = menuVerticalPosition;
@@ -591,8 +594,21 @@ void menuRadioSetup(event_t event)
break; break;
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
case ITEM_RADIO_SETUP_ROTARY_INVERSE: case ITEM_RADIO_SETUP_ROTARY_ENC_MODE:
g_eeGeneral.rotEncDirection = editCheckBox(g_eeGeneral.rotEncDirection, RADIO_SETUP_2ND_COLUMN, y, STR_INVERT_ROTARY, attr, event); lcdDrawTextAlignedLeft(y, STR_ROTARY_ENC_MODE);
lcdDrawTextAtIndex(RADIO_SETUP_2ND_COLUMN, y, STR_ROTARY_ENC_OPT,
reusableBuffer.generalSettings.rotaryEncoderMode,
attr);
if (attr && s_editMode > 0) {
CHECK_INCDEC_GENVAR(event,
reusableBuffer.generalSettings.rotaryEncoderMode,
ROTARY_ENCODER_MODE_NORMAL,
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT);
} else if (reusableBuffer.generalSettings.rotaryEncoderMode !=
g_eeGeneral.rotEncMode) {
g_eeGeneral.rotEncMode =
reusableBuffer.generalSettings.rotaryEncoderMode;
}
break; break;
#endif #endif
+4 -2
View File
@@ -698,8 +698,10 @@ void RadioSetupPage::build(FormWindow * window)
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
line = window->newLine(&grid); line = window->newLine(&grid);
new StaticText(line, rect_t{}, STR_INVERT_ROTARY, 0, COLOR_THEME_PRIMARY1); new StaticText(line, rect_t{}, STR_ROTARY_ENC_MODE, 0, COLOR_THEME_PRIMARY1);
new CheckBox(line, rect_t{}, GET_SET_DEFAULT(g_eeGeneral.rotEncDirection)); new Choice(line, rect_t{}, STR_ROTARY_ENC_OPT, ROTARY_ENCODER_MODE_NORMAL,
ROTARY_ENCODER_MODE_INVERT_BOTH,
GET_SET_DEFAULT(g_eeGeneral.rotEncMode));
#endif #endif
// RX channel order // RX channel order
+13 -1
View File
@@ -94,7 +94,19 @@ const char * runPopupMenu(event_t event)
drawVerticalScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_DISPLAY_LINES * (FH+1), popupMenuOffset, popupMenuItemsCount, display_count); drawVerticalScrollbar(MENU_X+MENU_W-1, y+1, MENU_MAX_DISPLAY_LINES * (FH+1), popupMenuOffset, popupMenuItemsCount, display_count);
} }
switch (event) { event_t eventTemp = event;
#if defined(ROTARY_ENCODER_NAVIGATION) && !defined(COLORLCD)
if (g_eeGeneral.rotEncMode >= ROTARY_ENCODER_MODE_INVERT_BOTH) {
if (eventTemp == EVT_ROTARY_LEFT) {
eventTemp = EVT_ROTARY_RIGHT;
} else if (eventTemp == EVT_ROTARY_RIGHT) {
eventTemp = EVT_ROTARY_LEFT;
}
}
#endif
switch (eventTemp) {
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
CASE_EVT_ROTARY_LEFT CASE_EVT_ROTARY_LEFT
#endif #endif
+24 -5
View File
@@ -345,7 +345,16 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t
case EVT_KEY_FIRST(KEY_DOWN): case EVT_KEY_FIRST(KEY_DOWN):
if (s_editMode>0) break; if (s_editMode>0) break;
do { do {
#if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
DEC(l_posVert, 0, maxrow);
} else {
INC(l_posVert, 0, maxrow);
}
#else
INC(l_posVert, 0, maxrow); INC(l_posVert, 0, maxrow);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
@@ -368,12 +377,13 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t
if (l_posHorz > 0) { if (l_posHorz > 0) {
l_posHorz--; l_posHorz--;
break; break;
} } else if (IS_ROTARY_LEFT(event) && s_editMode == 0) {
else if (IS_ROTARY_LEFT(event) && s_editMode == 0) {
l_posHorz = 0xff; l_posHorz = 0xff;
} } else {
else { l_posHorz =
l_posHorz = maxcol; g_eeGeneral.rotEncMode == ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT
? 0
: maxcol;
break; break;
} }
#else #else
@@ -388,7 +398,16 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t
if (s_editMode>0) break; if (s_editMode>0) break;
do { do {
#if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
INC(l_posVert, 0, maxrow);
} else {
DEC(l_posVert, 0, maxrow);
}
#else
DEC(l_posVert, 0, maxrow); DEC(l_posVert, 0, maxrow);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
+27 -4
View File
@@ -344,7 +344,16 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t
} }
do { do {
#if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
} else {
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
}
#else
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1); INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
s_editMode = 0; // if we go down, we must be in this mode s_editMode = 0; // if we go down, we must be in this mode
@@ -365,17 +374,31 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t
DEC(l_posHorz, 0, maxcol); DEC(l_posHorz, 0, maxcol);
break; break;
} }
} } else if (l_posHorz > 0) {
else if (l_posHorz > 0) {
l_posHorz--; l_posHorz--;
break; break;
} } else {
else { #if defined(ROTARY_ENCODER_NAVIGATION)
l_posHorz =
g_eeGeneral.rotEncMode == ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT
? 0
: 0xff;
#else
l_posHorz = 0xff; l_posHorz = 0xff;
#endif
} }
do { do {
#if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
} else {
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
}
#else
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1); DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
s_editMode = 0; // if we go up, we must be in this mode s_editMode = 0; // if we go up, we must be in this mode
+29 -6
View File
@@ -439,7 +439,16 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t
} }
do { do {
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1); #if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
} else {
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
}
#else
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
s_editMode = 0; // if we go down, we must be in this mode s_editMode = 0; // if we go down, we must be in this mode
@@ -458,17 +467,31 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t
DEC(l_posHorz, 0, maxcol); DEC(l_posHorz, 0, maxcol);
break; break;
} }
} } else if (l_posHorz > 0) {
else if (l_posHorz > 0) {
l_posHorz--; l_posHorz--;
break; break;
} } else {
else { #if defined(ROTARY_ENCODER_NAVIGATION)
l_posHorz =
g_eeGeneral.rotEncMode == ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT
? 0
: 0xff;
#else
l_posHorz = 0xff; l_posHorz = 0xff;
#endif
} }
do { do {
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount-1); #if defined(ROTARY_ENCODER_NAVIGATION)
if (g_eeGeneral.rotEncMode >=
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM) {
INC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
} else {
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
}
#else
DEC(l_posVert, MENU_FIRST_LINE_EDIT(horTab, horTabMax), rowcount - 1);
#endif
} while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert)); } while (CURSOR_NOT_ALLOWED_IN_ROW(l_posVert));
s_editMode = 0; // if we go up, we must be in this mode s_editMode = 0; // if we go up, we must be in this mode
+21
View File
@@ -567,6 +567,26 @@ static int luaGetRotEncSpeed(lua_State * L)
return 1; return 1;
} }
/*luadoc
@function getRotEncMode()
Return rotary encoder mode
@retval number in list: Normal = 0, Both V and H inverted = 1, V-N = 2, V-A = 3
return 0 on radio without rotary encoder
@status current Introduced in 2.8.0
*/
static int luaGetRotEncMode(lua_State * L)
{
#if defined(ROTARY_ENCODER_NAVIGATION)
lua_pushunsigned(L, g_eeGeneral.rotEncMode);
#else
lua_pushunsigned(L, 0);
#endif
return 1;
}
/*luadoc /*luadoc
@function sportTelemetryPop() @function sportTelemetryPop()
@@ -2433,6 +2453,7 @@ const luaL_Reg opentxLib[] = {
{ "getGeneralSettings", luaGetGeneralSettings }, { "getGeneralSettings", luaGetGeneralSettings },
{ "getGlobalTimer", luaGetGlobalTimer }, { "getGlobalTimer", luaGetGlobalTimer },
{ "getRotEncSpeed", luaGetRotEncSpeed }, { "getRotEncSpeed", luaGetRotEncSpeed },
{ "getRotEncMode", luaGetRotEncMode },
{ "getValue", luaGetValue }, { "getValue", luaGetValue },
{ "getRAS", luaGetRAS }, { "getRAS", luaGetRAS },
{ "getTxGPS", luaGetTxGPS }, { "getTxGPS", luaGetTxGPS },
+12
View File
@@ -212,6 +212,15 @@
#define RADIO_TOOLS #define RADIO_TOOLS
#endif #endif
#if defined(ROTARY_ENCODER_NAVIGATION)
enum RotaryEncoderMode {
ROTARY_ENCODER_MODE_NORMAL,
ROTARY_ENCODER_MODE_INVERT_BOTH,
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_NORM,
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT
};
#endif
// RESX range is used for internal calculation; The menu says -100.0 to 100.0; internally it is -1024 to 1024 to allow some optimizations // RESX range is used for internal calculation; The menu says -100.0 to 100.0; internally it is -1024 to 1024 to allow some optimizations
#define RESX_SHIFT 10 #define RESX_SHIFT 10
#define RESX 1024 #define RESX 1024
@@ -986,6 +995,9 @@ union ReusableBuffer
struct { struct {
uint8_t stickMode; uint8_t stickMode;
#if defined(ROTARY_ENCODER_NAVIGATION)
uint8_t rotaryEncoderMode;
#endif
} generalSettings; } generalSettings;
struct { struct {
@@ -1807,6 +1807,13 @@ static void r_jitterFilter(void* user, uint8_t* data, uint32_t bitoffs,
yaml_put_bits(data, i, bitoffs, 1); yaml_put_bits(data, i, bitoffs, 1);
} }
static void r_rotEncDirection(void* user, uint8_t* data, uint32_t bitoffs,
const char* val, uint8_t val_len)
{
uint32_t i = yaml_str2uint(val, val_len);
yaml_put_bits(data, i, bitoffs, 2);
}
static void r_telemetryBaudrate(void* user, uint8_t* data, uint32_t bitoffs, static void r_telemetryBaudrate(void* user, uint8_t* data, uint32_t bitoffs,
const char* val, uint8_t val_len) const char* val, uint8_t val_len)
{ {
@@ -367,7 +367,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -437,9 +437,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_STRING("themeName", 8), YAML_STRING("themeName", 8),
YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_UNSIGNED( "stickDeadZone", 3 ), YAML_UNSIGNED( "stickDeadZone", 3 ),
YAML_PADDING( 3 ), YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -346,7 +346,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -412,8 +412,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 96 ), YAML_PADDING( 96 ),
YAML_PADDING( 144 ), YAML_PADDING( 144 ),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -390,7 +390,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -460,8 +460,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_STRING("themeName", 8), YAML_STRING("themeName", 8),
YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuMax", 8 ),
YAML_SIGNED( "imuOffset", 8 ), YAML_SIGNED( "imuOffset", 8 ),
YAML_END YAML_END
@@ -388,7 +388,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -458,8 +458,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_STRING("themeName", 8), YAML_STRING("themeName", 8),
YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuMax", 8 ),
YAML_SIGNED( "imuOffset", 8 ), YAML_SIGNED( "imuOffset", 8 ),
YAML_END YAML_END
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -345,7 +345,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -413,8 +413,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -384,7 +384,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -452,8 +452,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -325,7 +325,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -391,8 +391,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 120 ), YAML_PADDING( 120 ),
YAML_PADDING( 120 ), YAML_PADDING( 120 ),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -333,7 +333,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -401,8 +401,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -330,7 +330,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -398,8 +398,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -332,7 +332,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -400,8 +400,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_SIGNED( "imuMax", 8 ), YAML_SIGNED( "imuMax", 8 ),
YAML_SIGNED( "imuOffset", 8 ), YAML_SIGNED( "imuOffset", 8 ),
YAML_END YAML_END
@@ -338,7 +338,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_ENUM("antennaMode", 2, enum_AntennaModes),
YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "disableRtcWarning", 1 ),
YAML_UNSIGNED( "keysBacklight", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ),
YAML_SIGNED( "rotEncDirection", 1 ), YAML_PADDING( 1 ),
YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_ENUM("internalModule", 8, enum_ModuleType),
YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL),
YAML_UNSIGNED( "view", 8 ), YAML_UNSIGNED( "view", 8 ),
@@ -406,8 +406,11 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 8 ), YAML_PADDING( 8 ),
YAML_STRING("bluetoothName", 10), YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8), YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 2 ),
YAML_SIGNED( "uartSampleMode", 2 ), YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 6 ), YAML_PADDING( 3 ),
YAML_PADDING( 1 ),
YAML_END YAML_END
}; };
static const struct YamlNode struct_unsigned_8[] = { static const struct YamlNode struct_unsigned_8[] = {
@@ -82,8 +82,10 @@ void rotaryEncoderInit()
#define INC_ROT 1 #define INC_ROT 1
#define INC_ROT_2 2 #define INC_ROT_2 2
#else #else
#define INC_ROT (g_eeGeneral.rotEncDirection ? -1 : 1); #define INC_ROT \
#define INC_ROT_2 (g_eeGeneral.rotEncDirection ? -2 : 2); (g_eeGeneral.rotEncMode == ROTARY_ENCODER_MODE_INVERT_BOTH ? -1 : 1);
#define INC_ROT_2 \
(g_eeGeneral.rotEncMode == ROTARY_ENCODER_MODE_INVERT_BOTH ? -2 : 2);
#endif #endif
void rotaryEncoderCheck() void rotaryEncoderCheck()
+2 -2
View File
@@ -276,8 +276,8 @@ void OpenTxSimulator::setInputValue(int type, uint8_t index, int16_t value)
void OpenTxSimulator::rotaryEncoderEvent(int steps) void OpenTxSimulator::rotaryEncoderEvent(int steps)
{ {
#if defined(ROTARY_ENCODER_NAVIGATION) #if defined(ROTARY_ENCODER_NAVIGATION)
(g_eeGeneral.rotEncDirection ? steps *= -1 : steps); (g_eeGeneral.rotEncMode >= ROTARY_ENCODER_MODE_INVERT_BOTH ? steps *= -1
: steps);
ROTARY_ENCODER_NAVIGATION_VALUE += steps * ROTARY_ENCODER_GRANULARITY; ROTARY_ENCODER_NAVIGATION_VALUE += steps * ROTARY_ENCODER_GRANULARITY;
#else #else
// TODO : this should probably be handled in the GUI // TODO : this should probably be handled in the GUI
+2 -1
View File
@@ -53,6 +53,7 @@ ISTR(VTELEMSCREENTYPE);
ISTR(VKEYS); ISTR(VKEYS);
ISTR(VSWITCHES); ISTR(VSWITCHES);
ISTR(VSRCRAW); ISTR(VSRCRAW);
ISTR(ROTARY_ENC_OPT);
ISTR(VTMRMODES); ISTR(VTMRMODES);
ISTR(VPERSISTENT); ISTR(VPERSISTENT);
ISTR(VUNITSSYSTEM); ISTR(VUNITSSYSTEM);
@@ -477,7 +478,7 @@ const char STR_OWN[] = TR_OWN;
const char STR_DATE[] = TR_DATE; const char STR_DATE[] = TR_DATE;
const char STR_CHANNELS_MONITOR[] = TR_CHANNELS_MONITOR; const char STR_CHANNELS_MONITOR[] = TR_CHANNELS_MONITOR;
const char STR_ROTARY_ENCODER[] = TR_ROTARY_ENCODER; const char STR_ROTARY_ENCODER[] = TR_ROTARY_ENCODER;
const char STR_INVERT_ROTARY[] = TR_INVERT_ROTARY; const char STR_ROTARY_ENC_MODE[] = TR_ROTARY_ENC_MODE;
const char STR_MIXERS_MONITOR[] = TR_MIXERS_MONITOR; const char STR_MIXERS_MONITOR[] = TR_MIXERS_MONITOR;
const char STR_PATH_TOO_LONG[] = TR_PATH_TOO_LONG; const char STR_PATH_TOO_LONG[] = TR_PATH_TOO_LONG;
const char STR_VIEW_TEXT[] = TR_VIEW_TEXT; const char STR_VIEW_TEXT[] = TR_VIEW_TEXT;
+3 -1
View File
@@ -138,6 +138,8 @@ extern const char* STR_VKEYS[];
extern const char* STR_VSWITCHES[]; extern const char* STR_VSWITCHES[];
extern const char* STR_VSRCRAW[]; extern const char* STR_VSRCRAW[];
extern const char* STR_ROTARY_ENC_OPT[];
#if defined(TRANSLATIONS_CZ) #if defined(TRANSLATIONS_CZ)
extern const char* STR_INPUTNAMES[]; extern const char* STR_INPUTNAMES[];
#endif #endif
@@ -727,7 +729,7 @@ extern const char STR_GLOBAL_VAR[];
extern const char STR_OWN[]; extern const char STR_OWN[];
extern const char STR_DATE[]; extern const char STR_DATE[];
extern const char STR_ROTARY_ENCODER[]; extern const char STR_ROTARY_ENCODER[];
extern const char STR_INVERT_ROTARY[]; extern const char STR_ROTARY_ENC_MODE[];
extern const char STR_CHANNELS_MONITOR[]; extern const char STR_CHANNELS_MONITOR[];
extern const char STR_MIXERS_MONITOR[]; extern const char STR_MIXERS_MONITOR[];
extern const char STR_PATH_TOO_LONG[]; extern const char STR_PATH_TOO_LONG[];
+7 -1
View File
@@ -219,6 +219,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -748,7 +754,7 @@
#define TR_DATE "日期" #define TR_DATE "日期"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "滚轮" #define TR_ROTARY_ENCODER "滚轮"
#define TR_INVERT_ROTARY "滚轮反向" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "通道查看器" #define TR_CHANNELS_MONITOR "通道查看器"
#define TR_MIXERS_MONITOR "混控查看器" #define TR_MIXERS_MONITOR "混控查看器"
#define TR_PATH_TOO_LONG "路径太长" #define TR_PATH_TOO_LONG "路径太长"
+7 -1
View File
@@ -236,6 +236,12 @@
#define TR_ON_ONE_SWITCHES "ZAP","One" #define TR_ON_ONE_SWITCHES "ZAP","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -763,7 +769,7 @@
#define TR_DATE "Datum" #define TR_DATE "Datum"
#define TR_MONTHS { "Led", "Úno", "Bře", "Dub", "Kvě", "Čvn", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro" } #define TR_MONTHS { "Led", "Úno", "Bře", "Dub", "Kvě", "Čvn", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro" }
#define TR_ROTARY_ENCODER "R.Enko" #define TR_ROTARY_ENCODER "R.Enko"
#define TR_INVERT_ROTARY "Invertovat kolečko" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "MONITOR KANÁLU" #define TR_CHANNELS_MONITOR "MONITOR KANÁLU"
#define TR_MIXERS_MONITOR "MONITOR MIXU" #define TR_MIXERS_MONITOR "MONITOR MIXU"
#define TR_PATH_TOO_LONG "Cesta je moc dlouhá" #define TR_PATH_TOO_LONG "Cesta je moc dlouhá"
+1 -1
View File
@@ -748,7 +748,7 @@
#define TR_DATE "Dato" #define TR_DATE "Dato"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "KANAL MONITOR" #define TR_CHANNELS_MONITOR "KANAL MONITOR"
#define TR_MIXERS_MONITOR "MIX MONITOR" #define TR_MIXERS_MONITOR "MIX MONITOR"
#define TR_PATH_TOO_LONG "Sti for lang" #define TR_PATH_TOO_LONG "Sti for lang"
+7 -1
View File
@@ -221,6 +221,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -746,7 +752,7 @@
#define TR_DATE "Datum:" #define TR_DATE "Datum:"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" }
#define TR_ROTARY_ENCODER "Drehgeber" #define TR_ROTARY_ENCODER "Drehgeber"
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "Kanal-Monitor==>" #define TR_CHANNELS_MONITOR "Kanal-Monitor==>"
#define TR_MIXERS_MONITOR "==>Mischer Monitor" #define TR_MIXERS_MONITOR "==>Mischer Monitor"
#define TR_PATH_TOO_LONG "Pfad zu Lang" #define TR_PATH_TOO_LONG "Pfad zu Lang"
+7 -1
View File
@@ -219,6 +219,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -748,7 +754,7 @@
#define TR_DATE "Date" #define TR_DATE "Date"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
#define TR_MIXERS_MONITOR "MIXERS MONITOR" #define TR_MIXERS_MONITOR "MIXERS MONITOR"
#define TR_PATH_TOO_LONG "Path too long" #define TR_PATH_TOO_LONG "Path too long"
+7 -1
View File
@@ -218,6 +218,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -747,7 +753,7 @@
#define TR_DATE "Fecha" #define TR_DATE "Fecha"
#define TR_MONTHS { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" } #define TR_MONTHS { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "MONITOR CANALES" #define TR_CHANNELS_MONITOR "MONITOR CANALES"
#define TR_MIXERS_MONITOR "MONITOR MEZCLAS" #define TR_MIXERS_MONITOR "MONITOR MEZCLAS"
#define TR_PATH_TOO_LONG "Path muy largo" #define TR_PATH_TOO_LONG "Path muy largo"
+8
View File
@@ -233,8 +233,15 @@
#define TR_ROTARY_ENCODERS #define TR_ROTARY_ENCODERS
#define TR_ROTENC_SWITCHES #define TR_ROTENC_SWITCHES
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -748,6 +755,7 @@
#define TR_DATE "Päivämäärä" #define TR_DATE "Päivämäärä"
#define TR_MONTHS { "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou" } #define TR_MONTHS { "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
#define TR_MIXERS_MONITOR "MIXERS MONITOR" #define TR_MIXERS_MONITOR "MIXERS MONITOR"
#define TR_PATH_TOO_LONG "Polku liian pitkä" #define TR_PATH_TOO_LONG "Polku liian pitkä"
+7 -1
View File
@@ -239,6 +239,12 @@
#define TR_ON_ONE_SWITCHES "ON","Un" #define TR_ON_ONE_SWITCHES "ON","Un"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -766,7 +772,7 @@
#define TR_DATE "Date" #define TR_DATE "Date"
#define TR_MONTHS { "Jan", "Fév", "Mar", "Avr", "Mai", "Jun", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Fév", "Mar", "Avr", "Mai", "Jun", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "Enc.Rot." #define TR_ROTARY_ENCODER "Enc.Rot."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "MONITEUR CANAUX" #define TR_CHANNELS_MONITOR "MONITEUR CANAUX"
#define TR_MIXERS_MONITOR "MONITEUR MIXAGES " #define TR_MIXERS_MONITOR "MONITEUR MIXAGES "
#define TR_PATH_TOO_LONG "Chemin trop long" #define TR_PATH_TOO_LONG "Chemin trop long"
+7 -1
View File
@@ -223,6 +223,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -746,7 +752,7 @@
#define TR_DATE "Data" #define TR_DATE "Data"
#define TR_MONTHS { "Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic" } #define TR_MONTHS { "Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Inverti Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "MONITOR CANALI" #define TR_CHANNELS_MONITOR "MONITOR CANALI"
#define TR_MIXERS_MONITOR "MONITOR MIXER" #define TR_MIXERS_MONITOR "MONITOR MIXER"
#define TR_PATH_TOO_LONG "Path troppo lungo" #define TR_PATH_TOO_LONG "Path troppo lungo"
+7 -1
View File
@@ -222,6 +222,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -754,7 +760,7 @@
#define TR_DATE "Datum:" #define TR_DATE "Datum:"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "Draaischakelaar" #define TR_ROTARY_ENCODER "Draaischakelaar"
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "Kanaal-Monitor==>" #define TR_CHANNELS_MONITOR "Kanaal-Monitor==>"
#define TR_MIXERS_MONITOR "==>MIXERS MONitor" #define TR_MIXERS_MONITOR "==>MIXERS MONitor"
#define TR_PATH_TOO_LONG "Pad te Lang" #define TR_PATH_TOO_LONG "Pad te Lang"
+8 -2
View File
@@ -216,7 +216,13 @@
#define TR_ROTARY_ENCODERS #define TR_ROTARY_ENCODERS
#define TR_ROTENC_SWITCHES #define TR_ROTENC_SWITCHES
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
@@ -742,7 +748,7 @@
#define TR_DATE "Data" #define TR_DATE "Data"
#define TR_MONTHS { "Jan", "Fev", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Fev", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW" #define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW"
#define TR_MIXERS_MONITOR "MONITOR MIKSER" #define TR_MIXERS_MONITOR "MONITOR MIKSER"
#define TR_PATH_TOO_LONG "Ścieżka za długa" #define TR_PATH_TOO_LONG "Ścieżka za długa"
+7 -1
View File
@@ -215,6 +215,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -747,7 +753,7 @@
#define TR_DATE "Data" #define TR_DATE "Data"
#define TR_MONTHS { "Jan", "Fev", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Fev", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "R.E." #define TR_ROTARY_ENCODER "R.E."
#define TR_INVERT_ROTARY "Invert Rotary" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
#define TR_MIXERS_MONITOR "MIXERS MONITOR" #define TR_MIXERS_MONITOR "MIXERS MONITOR"
#define TR_PATH_TOO_LONG "Path too long" #define TR_PATH_TOO_LONG "Path too long"
+7 -1
View File
@@ -234,11 +234,16 @@
#endif #endif
#define TR_ROTARY_ENCODERS #define TR_ROTARY_ENCODERS
#define TR_INVERT_ROTARY "Invertera rullhjul"
#define TR_ROTENC_SWITCHES #define TR_ROTENC_SWITCHES
#define TR_ON_ONE_SWITCHES "PÅ","Ett" #define TR_ON_ONE_SWITCHES "PÅ","Ett"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -776,6 +781,7 @@
#define TR_DATE "Datum" #define TR_DATE "Datum"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" }
#define TR_ROTARY_ENCODER "R.H." #define TR_ROTARY_ENCODER "R.H."
#define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "Kanalöversikt" #define TR_CHANNELS_MONITOR "Kanalöversikt"
#define TR_MIXERS_MONITOR "MIXERSKÄRM" #define TR_MIXERS_MONITOR "MIXERSKÄRM"
#define TR_PATH_TOO_LONG "För lång sökväg" #define TR_PATH_TOO_LONG "För lång sökväg"
+7 -1
View File
@@ -219,6 +219,12 @@
#define TR_ON_ONE_SWITCHES "ON","One" #define TR_ON_ONE_SWITCHES "ON","One"
#if defined(COLORLCD)
#define TR_ROTARY_ENC_OPT "Normal","Inverted"
#else
#define TR_ROTARY_ENC_OPT "Normal","Inverted","V-I H-N","V-I H-A"
#endif
#if defined(IMU) #if defined(IMU)
#define TR_IMU_VSRCRAW "TltX","TltY", #define TR_IMU_VSRCRAW "TltX","TltY",
#else #else
@@ -748,7 +754,7 @@
#define TR_DATE "日期" #define TR_DATE "日期"
#define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec " } #define TR_MONTHS { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec " }
#define TR_ROTARY_ENCODER "滾輪" #define TR_ROTARY_ENCODER "滾輪"
#define TR_INVERT_ROTARY "滾輪反向" #define TR_ROTARY_ENC_MODE TR("RotEnc Mode","Rotary Encoder Mode")
#define TR_CHANNELS_MONITOR "通道查看器" #define TR_CHANNELS_MONITOR "通道查看器"
#define TR_MIXERS_MONITOR "混控查看器" #define TR_MIXERS_MONITOR "混控查看器"
#define TR_PATH_TOO_LONG "路徑太長" #define TR_PATH_TOO_LONG "路徑太長"