Merge branch 'next' of https://github.com/opentx/opentx into bsongis/Side_back_in_expos_is_it_useful
|
@ -348,3 +348,5 @@ Martyn Coles
|
|||
Jose Sobral
|
||||
Heung Jin Choi
|
||||
Tomasz Janiak
|
||||
Fabien Gagné
|
||||
Joe Street
|
||||
|
|
|
@ -52,7 +52,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
|||
ui->BurnFlashButton->setDisabled(true);
|
||||
ui->FWFileName->clear();
|
||||
ui->DateField->clear();
|
||||
ui->SVNField->clear();
|
||||
ui->versionField->clear();
|
||||
ui->ModField->clear();
|
||||
ui->FramFWInfo->hide();
|
||||
ui->SplashFrame->hide();
|
||||
|
@ -132,7 +132,7 @@ void burnDialog::on_FlashLoadButton_clicked()
|
|||
ui->BurnFlashButton->setDisabled(true);
|
||||
ui->FWFileName->clear();
|
||||
ui->DateField->clear();
|
||||
ui->SVNField->clear();
|
||||
ui->versionField->clear();
|
||||
ui->ModField->clear();
|
||||
ui->FramFWInfo->hide();
|
||||
ui->SplashFrame->hide();
|
||||
|
@ -192,8 +192,8 @@ void burnDialog::checkFw(QString fileName)
|
|||
if (flash.isValid()) {
|
||||
ui->FramFWInfo->show();
|
||||
ui->DateField->setText(flash.getDate() + " " + flash.getTime());
|
||||
ui->SVNField->setText(flash.getSvn());
|
||||
ui->ModField->setText(flash.getBuild());
|
||||
ui->versionField->setText(flash.getVersion().isEmpty() ? flash.getSvn() : flash.getVersion());
|
||||
ui->ModField->setText(flash.getEEprom());
|
||||
|
||||
ui->SplashFrame->hide();
|
||||
if (flash.hasSplash()) {
|
||||
|
|
|
@ -113,8 +113,15 @@
|
|||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="dateLabel">
|
||||
<property name="text">
|
||||
<string>Date & Time</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="SVNField">
|
||||
<widget class="QLineEdit" name="versionField">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@ -135,20 +142,13 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="svnLabel">
|
||||
<widget class="QLabel" name="versionLabel">
|
||||
<property name="text">
|
||||
<string>SVN</string>
|
||||
<string>Version</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="dateLabel">
|
||||
<property name="text">
|
||||
<string>Date & Time</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="DateField">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
|
@ -360,8 +360,7 @@
|
|||
<tabstop>BurnFlashButton</tabstop>
|
||||
<tabstop>FWFileName</tabstop>
|
||||
<tabstop>FlashLoadButton</tabstop>
|
||||
<tabstop>DateField</tabstop>
|
||||
<tabstop>SVNField</tabstop>
|
||||
<tabstop>versionField</tabstop>
|
||||
<tabstop>ModField</tabstop>
|
||||
<tabstop>useProfileImageCB</tabstop>
|
||||
<tabstop>useFwImageCB</tabstop>
|
||||
|
|
|
@ -791,115 +791,122 @@ QString FuncSwData::repeatToString()
|
|||
GeneralSettings::GeneralSettings()
|
||||
{
|
||||
memset(this, 0, sizeof(GeneralSettings));
|
||||
|
||||
contrast = 25;
|
||||
vBatWarn = 90;
|
||||
for (int i=0; i<(NUM_STICKS+C9X_NUM_POTS ); ++i) {
|
||||
|
||||
for (int i=0; i<NUM_STICKS+C9X_NUM_POTS; ++i) {
|
||||
calibMid[i] = 0x200;
|
||||
calibSpanNeg[i] = 0x180;
|
||||
calibSpanPos[i] = 0x180;
|
||||
}
|
||||
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||
potsType[0] = 1;
|
||||
potsType[1] = 1;
|
||||
}
|
||||
|
||||
templateSetup = g.profile[g.id()].channelOrder();
|
||||
stickMode = g.profile[g.id()].defaultMode();
|
||||
|
||||
QString t_calib=g.profile[g.id()].stickPotCalib();
|
||||
int potsnum=GetEepromInterface()->getCapability(Pots);
|
||||
if (t_calib.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
QString t_trainercalib=g.profile[g.id()].trainerCalib();
|
||||
int8_t t_vBatCalib=(int8_t)g.profile[g.id()].vBatCalib();
|
||||
int8_t t_currentCalib=(int8_t)g.profile[g.id()].currentCalib();
|
||||
int8_t t_PPM_Multiplier=(int8_t)g.profile[g.id()].ppmMultiplier();
|
||||
uint8_t t_stickMode=(uint8_t)g.profile[g.id()].gsStickMode();
|
||||
uint8_t t_vBatWarn=(uint8_t)g.profile[g.id()].vBatWarn();
|
||||
QString t_DisplaySet=g.profile[g.id()].display();
|
||||
QString t_BeeperSet=g.profile[g.id()].beeper();
|
||||
QString t_HapticSet=g.profile[g.id()].haptic();
|
||||
QString t_SpeakerSet=g.profile[g.id()].speaker();
|
||||
QString t_CountrySet=g.profile[g.id()].countryCode();
|
||||
QString t_calib=g.profile[g.id()].stickPotCalib();
|
||||
int potsnum=GetEepromInterface()->getCapability(Pots);
|
||||
if (t_calib.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
QString t_trainercalib=g.profile[g.id()].trainerCalib();
|
||||
int8_t t_vBatCalib=(int8_t)g.profile[g.id()].vBatCalib();
|
||||
int8_t t_currentCalib=(int8_t)g.profile[g.id()].currentCalib();
|
||||
int8_t t_PPM_Multiplier=(int8_t)g.profile[g.id()].ppmMultiplier();
|
||||
uint8_t t_stickMode=(uint8_t)g.profile[g.id()].gsStickMode();
|
||||
uint8_t t_vBatWarn=(uint8_t)g.profile[g.id()].vBatWarn();
|
||||
QString t_DisplaySet=g.profile[g.id()].display();
|
||||
QString t_BeeperSet=g.profile[g.id()].beeper();
|
||||
QString t_HapticSet=g.profile[g.id()].haptic();
|
||||
QString t_SpeakerSet=g.profile[g.id()].speaker();
|
||||
QString t_CountrySet=g.profile[g.id()].countryCode();
|
||||
|
||||
if ((t_calib.length()==(NUM_STICKS+potsnum)*12) && (t_trainercalib.length()==16)) {
|
||||
QString Byte;
|
||||
int16_t byte16;
|
||||
bool ok;
|
||||
for (int i=0; i<(NUM_STICKS+potsnum); i++) {
|
||||
Byte=t_calib.mid(i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibMid[i]=byte16;
|
||||
Byte=t_calib.mid(4+i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibSpanNeg[i]=byte16;
|
||||
Byte=t_calib.mid(8+i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibSpanPos[i]=byte16;
|
||||
}
|
||||
for (int i=0; i<4; i++) {
|
||||
Byte=t_trainercalib.mid(i*4,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
trainer.calib[i]=byte16;
|
||||
}
|
||||
currentCalib=t_currentCalib;
|
||||
vBatCalib=t_vBatCalib;
|
||||
vBatWarn=t_vBatWarn;
|
||||
PPM_Multiplier=t_PPM_Multiplier;
|
||||
stickMode = t_stickMode;
|
||||
if ((t_calib.length()==(NUM_STICKS+potsnum)*12) && (t_trainercalib.length()==16)) {
|
||||
QString Byte;
|
||||
int16_t byte16;
|
||||
bool ok;
|
||||
for (int i=0; i<(NUM_STICKS+potsnum); i++) {
|
||||
Byte=t_calib.mid(i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibMid[i]=byte16;
|
||||
Byte=t_calib.mid(4+i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibSpanNeg[i]=byte16;
|
||||
Byte=t_calib.mid(8+i*12,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
calibSpanPos[i]=byte16;
|
||||
}
|
||||
if ((t_DisplaySet.length()==6) && (t_BeeperSet.length()==4) && (t_HapticSet.length()==6) && (t_SpeakerSet.length()==6)) {
|
||||
uint8_t byte8u;
|
||||
int8_t byte8;
|
||||
bool ok;
|
||||
byte8=(int8_t)t_DisplaySet.mid(0,2).toInt(&ok,16);
|
||||
for (int i=0; i<4; i++) {
|
||||
Byte=t_trainercalib.mid(i*4,4);
|
||||
byte16=(int16_t)Byte.toInt(&ok,16);
|
||||
if (ok)
|
||||
optrexDisplay=(byte8==1 ? true : false);
|
||||
byte8u=(uint8_t)t_DisplaySet.mid(2,2).toUInt(&ok,16);
|
||||
trainer.calib[i]=byte16;
|
||||
}
|
||||
currentCalib=t_currentCalib;
|
||||
vBatCalib=t_vBatCalib;
|
||||
vBatWarn=t_vBatWarn;
|
||||
PPM_Multiplier=t_PPM_Multiplier;
|
||||
stickMode = t_stickMode;
|
||||
}
|
||||
if ((t_DisplaySet.length()==6) && (t_BeeperSet.length()==4) && (t_HapticSet.length()==6) && (t_SpeakerSet.length()==6)) {
|
||||
uint8_t byte8u;
|
||||
int8_t byte8;
|
||||
bool ok;
|
||||
byte8=(int8_t)t_DisplaySet.mid(0,2).toInt(&ok,16);
|
||||
if (ok)
|
||||
optrexDisplay=(byte8==1 ? true : false);
|
||||
byte8u=(uint8_t)t_DisplaySet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
contrast=byte8u;
|
||||
byte8u=(uint8_t)t_DisplaySet.mid(4,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
backlightBright=byte8u;
|
||||
byte8=(int8_t)t_BeeperSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
beeperMode=(BeeperMode)byte8;
|
||||
byte8=(int8_t)t_BeeperSet.mid(2,2).toInt(&ok,16);
|
||||
if (ok)
|
||||
beeperLength=byte8;
|
||||
byte8=(int8_t)t_HapticSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
hapticMode=(BeeperMode)byte8;
|
||||
byte8u=(uint8_t)t_HapticSet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
hapticStrength=byte8u;
|
||||
byte8=(int8_t)t_HapticSet.mid(4,2).toInt(&ok,16);
|
||||
if (ok)
|
||||
hapticLength=byte8;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerMode=byte8u;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerPitch=byte8u;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(4,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerVolume=byte8u;
|
||||
if (t_CountrySet.length()==6) {
|
||||
byte8u=(uint8_t)t_CountrySet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
contrast=byte8u;
|
||||
byte8u=(uint8_t)t_DisplaySet.mid(4,2).toUInt(&ok,16);
|
||||
countryCode=byte8u;
|
||||
byte8u=(uint8_t)t_CountrySet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
backlightBright=byte8u;
|
||||
byte8=(int8_t)t_BeeperSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
beeperMode=(BeeperMode)byte8;
|
||||
byte8=(int8_t)t_BeeperSet.mid(2,2).toInt(&ok,16);
|
||||
if (ok)
|
||||
beeperLength=byte8;
|
||||
byte8=(int8_t)t_HapticSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
hapticMode=(BeeperMode)byte8;
|
||||
byte8u=(uint8_t)t_HapticSet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
hapticStrength=byte8u;
|
||||
byte8=(int8_t)t_HapticSet.mid(4,2).toInt(&ok,16);
|
||||
if (ok)
|
||||
hapticLength=byte8;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerMode=byte8u;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerPitch=byte8u;
|
||||
byte8u=(uint8_t)t_SpeakerSet.mid(4,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
speakerVolume=byte8u;
|
||||
if (t_CountrySet.length()==6) {
|
||||
byte8u=(uint8_t)t_CountrySet.mid(0,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
countryCode=byte8u;
|
||||
byte8u=(uint8_t)t_CountrySet.mid(2,2).toUInt(&ok,16);
|
||||
if (ok)
|
||||
imperial=byte8u;
|
||||
QString chars=t_CountrySet.mid(4,2);
|
||||
ttsLanguage[0]=chars[0].toAscii();
|
||||
ttsLanguage[1]=chars[1].toAscii();
|
||||
}
|
||||
imperial=byte8u;
|
||||
QString chars=t_CountrySet.mid(4,2);
|
||||
ttsLanguage[0]=chars[0].toAscii();
|
||||
ttsLanguage[1]=chars[1].toAscii();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
RawSource GeneralSettings::getDefaultSource(unsigned int channel)
|
||||
|
|
|
@ -170,6 +170,19 @@ enum HeliSwashTypes {
|
|||
extern const char * switches9X[];
|
||||
extern const char * switchesX9D[];
|
||||
|
||||
enum ThrottleSource {
|
||||
THROTTLE_SOURCE_THR,
|
||||
THROTTLE_SOURCE_P1,
|
||||
THROTTLE_SOURCE_P2,
|
||||
THROTTLE_SOURCE_P3,
|
||||
THROTTLE_SOURCE_S1 = THROTTLE_SOURCE_P1,
|
||||
THROTTLE_SOURCE_S2,
|
||||
THROTTLE_SOURCE_S3,
|
||||
THROTTLE_SOURCE_LS,
|
||||
THROTTLE_SOURCE_RS,
|
||||
THROTTLE_SOURCE_FIRST_CHANNEL,
|
||||
};
|
||||
|
||||
enum TelemetrySource {
|
||||
TELEMETRY_SOURCE_TX_BATT,
|
||||
TELEMETRY_SOURCE_TIMER1,
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#define PCBTARANIS
|
||||
#define CPUARM
|
||||
#define HELI
|
||||
#define TEMPLATES
|
||||
#define SPLASH
|
||||
#define FLIGHT_MODES
|
||||
#define FRSKY
|
||||
|
@ -103,7 +102,6 @@ inline int geteepromsize() {
|
|||
#undef SDCARD
|
||||
#include "radio/src/simpgmspace.cpp"
|
||||
#define SDCARD
|
||||
#include "radio/src/templates.cpp"
|
||||
#include "radio/src/translations.cpp"
|
||||
#include "radio/src/fonts.cpp"
|
||||
#include "radio/src/telemetry/frsky_sport.cpp"
|
||||
|
|
|
@ -294,6 +294,32 @@ class SourcesConversionTable: public ConversionTable {
|
|||
}
|
||||
};
|
||||
|
||||
ThrottleSourceConversionTable::ThrottleSourceConversionTable(BoardEnum board, unsigned int version)
|
||||
{
|
||||
int val=0;
|
||||
|
||||
addConversion(THROTTLE_SOURCE_THR, val++);
|
||||
|
||||
if (IS_TARANIS(board)) {
|
||||
addConversion(THROTTLE_SOURCE_S1, val++);
|
||||
addConversion(THROTTLE_SOURCE_S2, val++);
|
||||
if (version >= 216)
|
||||
addConversion(THROTTLE_SOURCE_S3, val++);
|
||||
addConversion(THROTTLE_SOURCE_LS, val++);
|
||||
addConversion(THROTTLE_SOURCE_RS, val++);
|
||||
}
|
||||
else {
|
||||
addConversion(THROTTLE_SOURCE_P1, val++);
|
||||
addConversion(THROTTLE_SOURCE_P2, val++);
|
||||
addConversion(THROTTLE_SOURCE_P3, val++);
|
||||
}
|
||||
|
||||
for (int i=0; i<MAX_CHANNELS(board, version); i++) {
|
||||
addConversion(THROTTLE_SOURCE_FIRST_CHANNEL+i, val++);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template <int N>
|
||||
class SwitchField: public ConversionField< SignedField<N> > {
|
||||
public:
|
||||
|
@ -2175,7 +2201,8 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
|
|||
board(board),
|
||||
version(version),
|
||||
variant(variant),
|
||||
protocolsConversionTable(board)
|
||||
protocolsConversionTable(board),
|
||||
throttleSourceConversionTable(board, version)
|
||||
{
|
||||
sprintf(name, "Model %s", modelData.name);
|
||||
|
||||
|
@ -2285,7 +2312,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne
|
|||
internalField.Append(new SignedField<8>(modelData.moduleData[0].ppmFrameLength));
|
||||
}
|
||||
|
||||
internalField.Append(new UnsignedField<8>(modelData.thrTraceSrc));
|
||||
internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source"));
|
||||
|
||||
if (!afterrelease21March2013) {
|
||||
internalField.Append(new UnsignedField<8>(modelData.modelId));
|
||||
|
@ -2565,8 +2592,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo
|
|||
}
|
||||
if (IS_TARANIS(board) && version >= 216) {
|
||||
internalField.Append(new UnsignedField<8>(generalData.hw_uartMode));
|
||||
for (int i=0; i<8; i++) {
|
||||
internalField.Append(new UnsignedField<1>(generalData.potsType[i]));
|
||||
for (int i=0; i<4; i++) {
|
||||
internalField.Append(new UnsignedField<2>(potsType[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2585,6 +2612,11 @@ void OpenTxGeneralData::beforeExport()
|
|||
sum += generalData.calibSpanPos[i];
|
||||
if (++count == 12) break;
|
||||
}
|
||||
for (int i=0; i<4; i++) {
|
||||
potsType[i] = generalData.potsType[i];
|
||||
if (i<2 && potsType[i] == 1)
|
||||
potsType[i] = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (int i=0; i<inputsCount; i++)
|
||||
|
@ -2597,4 +2629,8 @@ void OpenTxGeneralData::beforeExport()
|
|||
|
||||
void OpenTxGeneralData::afterImport()
|
||||
{
|
||||
for (int i=0; i<4; i++) {
|
||||
if (i<2 && generalData.potsType[i] == 0)
|
||||
generalData.potsType[i] = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ class OpenTxGeneralData: public TransformedField {
|
|||
unsigned int version;
|
||||
int inputsCount;
|
||||
unsigned int chkSum;
|
||||
unsigned int potsType[4];
|
||||
};
|
||||
|
||||
class ProtocolsConversionTable: public ConversionTable
|
||||
|
@ -102,6 +103,12 @@ class ProtocolsConversionTable: public ConversionTable
|
|||
}
|
||||
};
|
||||
|
||||
class ThrottleSourceConversionTable: public ConversionTable {
|
||||
|
||||
public:
|
||||
ThrottleSourceConversionTable(BoardEnum board, unsigned int version);
|
||||
};
|
||||
|
||||
class ChannelsConversionTable: public ConversionTable
|
||||
{
|
||||
public:
|
||||
|
@ -133,6 +140,7 @@ class OpenTxModelData: public TransformedField {
|
|||
char name[256];
|
||||
int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
|
||||
ProtocolsConversionTable protocolsConversionTable;
|
||||
ThrottleSourceConversionTable throttleSourceConversionTable;
|
||||
ChannelsConversionTable channelsConversionTable;
|
||||
};
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <QtGui>
|
||||
#include "hexinterface.h"
|
||||
#include "splash.h"
|
||||
|
@ -20,192 +21,77 @@
|
|||
|
||||
int getFileType(const QString &fullFileName)
|
||||
{
|
||||
if(QFileInfo(fullFileName).suffix().toUpper()=="HEX") return FILE_TYPE_HEX;
|
||||
if(QFileInfo(fullFileName).suffix().toUpper()=="BIN") return FILE_TYPE_BIN;
|
||||
if(QFileInfo(fullFileName).suffix().toUpper()=="EEPM") return FILE_TYPE_EEPM;
|
||||
if(QFileInfo(fullFileName).suffix().toUpper()=="EEPE") return FILE_TYPE_EEPE;
|
||||
if(QFileInfo(fullFileName).suffix().toUpper()=="XML") return FILE_TYPE_XML;
|
||||
return 0;
|
||||
QString suffix = QFileInfo(fullFileName).suffix().toUpper();
|
||||
if (suffix == "HEX")
|
||||
return FILE_TYPE_HEX;
|
||||
else if (suffix == "BIN")
|
||||
return FILE_TYPE_BIN;
|
||||
else if (suffix == "EEPM")
|
||||
return FILE_TYPE_EEPM;
|
||||
else if (suffix == "EEPE")
|
||||
return FILE_TYPE_EEPE;
|
||||
else if (suffix == "XML")
|
||||
return FILE_TYPE_XML;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
FlashInterface::FlashInterface(QString fileName)
|
||||
FlashInterface::FlashInterface(QString fileName):
|
||||
flash(MAX_FSIZE, 0),
|
||||
flash_size(0),
|
||||
isValidFlag(false)
|
||||
{
|
||||
char * temp = (char *)malloc(MAX_FSIZE);
|
||||
date = "";
|
||||
time = "";
|
||||
svn = "";
|
||||
build = "";
|
||||
isValidFlag = true;
|
||||
QFile file(fileName);
|
||||
flash_size=0;
|
||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
|
||||
isValidFlag = false;
|
||||
}
|
||||
else {
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
|
||||
QTextStream inputStream(&file);
|
||||
flash_size = HexInterface(inputStream).load((uint8_t *)temp, MAX_FSIZE);
|
||||
flash_size = HexInterface(inputStream).load((uint8_t *)flash.data(), MAX_FSIZE);
|
||||
file.close();
|
||||
inputStream.reset();
|
||||
if (flash_size == 0) {
|
||||
QFile file(fileName);
|
||||
file.open(QIODevice::ReadOnly);
|
||||
char * bin_flash = (char *)malloc(MAX_FSIZE);
|
||||
flash_size = file.read(bin_flash, MAX_FSIZE);
|
||||
flash = QByteArray(bin_flash, flash_size);
|
||||
free(bin_flash);
|
||||
}
|
||||
else {
|
||||
flash = QByteArray(temp, flash_size);
|
||||
flash_size = file.read((char *)flash.data(), MAX_FSIZE);
|
||||
}
|
||||
if (flash_size > 0) {
|
||||
SeekSvn();
|
||||
SeekDate();
|
||||
SeekTime();
|
||||
SeekBuild();
|
||||
svn = seekLabel(SVN_MARK);
|
||||
version = seekLabel(VERS_MARK);
|
||||
date = seekLabel(DATE_MARK);
|
||||
time = seekLabel(TIME_MARK);
|
||||
eeprom = seekLabel(EEPR_MARK);
|
||||
SeekSplash();
|
||||
}
|
||||
else {
|
||||
isValidFlag = false;
|
||||
isValidFlag = true;
|
||||
}
|
||||
}
|
||||
free(temp);
|
||||
}
|
||||
|
||||
QString FlashInterface::getDate(void)
|
||||
QString FlashInterface::seekString(const QString & string)
|
||||
{
|
||||
return date;
|
||||
}
|
||||
QString result = "";
|
||||
|
||||
QString FlashInterface::getTime(void)
|
||||
{
|
||||
return time;
|
||||
}
|
||||
|
||||
QString FlashInterface::getSvn(void)
|
||||
{
|
||||
return svn;
|
||||
}
|
||||
|
||||
QString FlashInterface::getBuild(void)
|
||||
{
|
||||
return build;
|
||||
}
|
||||
|
||||
int FlashInterface::getSize()
|
||||
{
|
||||
return flash_size;
|
||||
}
|
||||
|
||||
void FlashInterface::SeekSvn(void)
|
||||
{
|
||||
int i, start = -1, end = -1;
|
||||
start = flash.indexOf(QString(SVN_MARK));
|
||||
int start = flash.indexOf(string);
|
||||
if (start > 0) {
|
||||
start += QString(SVN_MARK).length();
|
||||
for (i = start; i < (start + 20); i++) {
|
||||
if (flash.at(i) == 0) {
|
||||
start += string.length();
|
||||
int end = -1;
|
||||
for (int i=start; i<start+20; i++) {
|
||||
char c = flash.at(i);
|
||||
if (c == '\0' || c == '\036') {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end > 0) {
|
||||
svn = QString(flash.mid(start, (end - start))).trimmed();
|
||||
}
|
||||
else {
|
||||
svn = QString("");
|
||||
result = flash.mid(start, (end - start)).trimmed();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void FlashInterface::SeekDate(void)
|
||||
QString FlashInterface::seekLabel(const QString & label)
|
||||
{
|
||||
int i, start = -1, end = -1, startsvn=0;
|
||||
startsvn = flash.indexOf(QString(SVN_MARK));
|
||||
if (startsvn>0) {
|
||||
start = flash.indexOf(QString(DATE_MARK),startsvn);
|
||||
} else {
|
||||
start = flash.indexOf(QString(DATE_MARK));
|
||||
}
|
||||
if (start > 0) {
|
||||
start += QString(DATE_MARK).length();
|
||||
for (i = start; i < (start + 20); i++) {
|
||||
if (flash.at(i) == 0) {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end > 0) {
|
||||
date = QString(flash.mid(start, (end - start))).trimmed();
|
||||
}
|
||||
else {
|
||||
date = QString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
QString result = seekString(label + "\037\033:");
|
||||
if (!result.isEmpty())
|
||||
return result;
|
||||
|
||||
void FlashInterface::SeekTime(void)
|
||||
{
|
||||
int i, start = -1, end = -1, startsvn=0;
|
||||
startsvn = flash.indexOf(QString(SVN_MARK));
|
||||
if (startsvn>0) {
|
||||
start = flash.indexOf(QString(TIME_MARK),startsvn);
|
||||
} else {
|
||||
start = flash.indexOf(QString(TIME_MARK));
|
||||
}
|
||||
if (start > 0) {
|
||||
start += QString(TIME_MARK).length();
|
||||
for (i = start; i < (start + 20); i++) {
|
||||
if (flash.at(i) == 0) {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end > 0) {
|
||||
time = QString(flash.mid(start, (end - start))).trimmed();
|
||||
}
|
||||
else {
|
||||
time = QString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FlashInterface::SeekBuild(void)
|
||||
{
|
||||
int i, start = -1, end = -1;
|
||||
start = flash.indexOf(QString(BLD_MARK));
|
||||
if (start > 0) {
|
||||
start += QString(BLD_MARK).length();
|
||||
for (i = start; i < (start + 20); i++) {
|
||||
if (flash.at(i) == 0) {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end > 0) {
|
||||
build = QString(flash.mid(start, (end - start))).trimmed();
|
||||
}
|
||||
else {
|
||||
build = QString("");
|
||||
}
|
||||
}
|
||||
else {
|
||||
start = flash.indexOf(QString(VAR_MARK));
|
||||
if (start > 0) {
|
||||
start += QString(VAR_MARK).length();
|
||||
for (i = start; i < (start + 20); i++) {
|
||||
if (flash.at(i) == 0) {
|
||||
end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end > 0) {
|
||||
build = QString(flash.mid(start, (end - start))).trimmed();
|
||||
}
|
||||
else {
|
||||
build = QString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
return seekString(label + ":");
|
||||
}
|
||||
|
||||
void FlashInterface::SeekSplash(void)
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#ifndef FLASHINTERFACE_H
|
||||
#define FLASHINTERFACE_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QtGui>
|
||||
#include <inttypes.h>
|
||||
|
@ -32,12 +33,12 @@
|
|||
#define ERSKY9X_SPS "SPS"
|
||||
#define ERSKY9X_SPE "SPE"
|
||||
#define ERSKY9X_OFFSET (7)
|
||||
#define VERS_MARK "VERS:"
|
||||
#define SVN_MARK "SVN:"
|
||||
#define DATE_MARK "DATE:"
|
||||
#define TIME_MARK "TIME:"
|
||||
#define BLD_MARK "BLD:"
|
||||
#define VAR_MARK "EEPR:"
|
||||
#define VERS_MARK "VERS"
|
||||
#define SVN_MARK "SVN"
|
||||
#define DATE_MARK "DATE"
|
||||
#define TIME_MARK "TIME"
|
||||
#define BLD_MARK "BLD"
|
||||
#define EEPR_MARK "EEPR"
|
||||
|
||||
#define FILE_TYPE_BIN 1
|
||||
#define FILE_TYPE_HEX 2
|
||||
|
@ -49,48 +50,46 @@ int getFileType(const QString &fullFileName);
|
|||
|
||||
class FlashInterface
|
||||
{
|
||||
public:
|
||||
FlashInterface(QString filename);
|
||||
QString getDate();
|
||||
QString getTime();
|
||||
QString getSvn();
|
||||
int getSize();
|
||||
QString getBuild();
|
||||
QImage getSplash();
|
||||
bool setSplash(const QImage & newsplash);
|
||||
bool hasSplash();
|
||||
int getSplashWidth();
|
||||
uint getSplashHeight();
|
||||
uint getSplashColors();
|
||||
QImage::Format getSplashFormat();
|
||||
uint saveFlash(QString fileName);
|
||||
bool isValid();
|
||||
public:
|
||||
FlashInterface(QString filename);
|
||||
inline QString getDate() { return date; }
|
||||
inline QString getTime() { return time; }
|
||||
inline QString getSvn() { return svn; }
|
||||
int getSize() { return flash_size; }
|
||||
inline QString getVersion() { return version; }
|
||||
inline QString getEEprom() { return eeprom; }
|
||||
QImage getSplash();
|
||||
bool setSplash(const QImage & newsplash);
|
||||
bool hasSplash();
|
||||
int getSplashWidth();
|
||||
uint getSplashHeight();
|
||||
uint getSplashColors();
|
||||
QImage::Format getSplashFormat();
|
||||
uint saveFlash(QString fileName);
|
||||
bool isValid();
|
||||
|
||||
private:
|
||||
QByteArray flash;
|
||||
void SeekVer();
|
||||
void SeekSvn();
|
||||
void SeekDate();
|
||||
void SeekTime();
|
||||
void SeekBuild();
|
||||
void SeekSplash();
|
||||
QString filename;
|
||||
QString date;
|
||||
QString time;
|
||||
QString svn;
|
||||
QString build;
|
||||
QByteArray splash;
|
||||
uint splash_offset;
|
||||
uint splash_type;
|
||||
uint splash_size;
|
||||
uint splash_width;
|
||||
uint splash_height;
|
||||
uint splash_colors;
|
||||
QImage::Format splash_format;
|
||||
uint flash_size;
|
||||
|
||||
protected:
|
||||
bool isValidFlag;
|
||||
private:
|
||||
QByteArray flash;
|
||||
QString seekString(const QString & string);
|
||||
QString seekLabel(const QString & label);
|
||||
void SeekSplash();
|
||||
QString filename;
|
||||
QString date;
|
||||
QString time;
|
||||
QString svn;
|
||||
QString version;
|
||||
QString eeprom;
|
||||
QByteArray splash;
|
||||
uint splash_offset;
|
||||
uint splash_type;
|
||||
uint splash_size;
|
||||
uint splash_width;
|
||||
uint splash_height;
|
||||
uint splash_colors;
|
||||
QImage::Format splash_format;
|
||||
uint flash_size;
|
||||
bool isValidFlag;
|
||||
};
|
||||
|
||||
#endif /* FLASHINTERFACE_H */
|
||||
|
||||
|
|
|
@ -369,6 +369,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
|
|||
if (GetEepromInterface()->getCapability(MultiposPots)) {
|
||||
ui->pot1Type->setCurrentIndex(g_eeGeneral.potsType[0]);
|
||||
ui->pot2Type->setCurrentIndex(g_eeGeneral.potsType[1]);
|
||||
ui->pot3Type->setCurrentIndex(g_eeGeneral.potsType[2]);
|
||||
}
|
||||
else {
|
||||
ui->potsTypeSeparator->hide();
|
||||
|
@ -376,6 +377,8 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
|
|||
ui->pot1TypeLabel->hide();
|
||||
ui->pot2Type->hide();
|
||||
ui->pot2TypeLabel->hide();
|
||||
ui->pot3Type->hide();
|
||||
ui->pot3TypeLabel->hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -396,6 +399,12 @@ void GeneralEdit::on_pot2Type_currentIndexChanged(int index)
|
|||
updateSettings();
|
||||
}
|
||||
|
||||
void GeneralEdit::on_pot3Type_currentIndexChanged(int index)
|
||||
{
|
||||
g_eeGeneral.potsType[2] = index;
|
||||
updateSettings();
|
||||
}
|
||||
|
||||
void GeneralEdit::unlockSwitchEdited()
|
||||
{
|
||||
int i=0;
|
||||
|
|
|
@ -121,6 +121,7 @@ private slots:
|
|||
|
||||
void on_pot1Type_currentIndexChanged(int index);
|
||||
void on_pot2Type_currentIndexChanged(int index);
|
||||
void on_pot3Type_currentIndexChanged(int index);
|
||||
|
||||
void on_stickmodeCB_currentIndexChanged(int index);
|
||||
void on_channelorderCB_currentIndexChanged(int index);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>795</width>
|
||||
<width>804</width>
|
||||
<height>912</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -1555,10 +1555,10 @@ Acceptable values are 5v..10v</string>
|
|||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="2">
|
||||
|
@ -3520,6 +3520,11 @@ p, li { white-space: pre-wrap; }
|
|||
3 - Loud.
|
||||
4 - Extra loud.</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Pot (normal)</string>
|
||||
|
@ -3556,6 +3561,11 @@ p, li { white-space: pre-wrap; }
|
|||
3 - Loud.
|
||||
4 - Extra loud.</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Pot (normal)</string>
|
||||
|
@ -3575,6 +3585,47 @@ p, li { white-space: pre-wrap; }
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="pot3TypeLabel">
|
||||
<property name="text">
|
||||
<string>S3 Type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QComboBox" name="pot3Type">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>Beeper volume
|
||||
|
||||
0 - Quiet. No beeps at all.
|
||||
1 - No Keys. Normal beeps but menu keys do not beep.
|
||||
2 - Normal.
|
||||
3 - Loud.
|
||||
4 - Extra loud.</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Pot (normal)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Multipos Switch</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
@ -63,27 +63,6 @@ void populateVoiceLangCB(QComboBox *b, QString language)
|
|||
}
|
||||
}
|
||||
|
||||
void populateTTraceCB(QComboBox *b, int value)
|
||||
{
|
||||
const QString strings9x[] = { QObject::tr("THR"), QObject::tr("P1"), QObject::tr("P2"), QObject::tr("P3")};
|
||||
const QString stringstaranis[] = { QObject::tr("THR"), QObject::tr("S1"), QObject::tr("S2"), QObject::tr("LS"), QObject::tr("RS")};
|
||||
b->clear();
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||
for (int i=0; i< 5; i++) {
|
||||
b->addItem(stringstaranis[i]);
|
||||
}
|
||||
} else {
|
||||
for (int i=0; i< 4; i++) {
|
||||
b->addItem(strings9x[i]);
|
||||
}
|
||||
}
|
||||
int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16);
|
||||
for (int i=1; i<= channels; i++) {
|
||||
b->addItem(QObject::tr("CH%1").arg(i, 2, 10, QChar('0')));
|
||||
}
|
||||
b->setCurrentIndex(value);
|
||||
}
|
||||
|
||||
void populateRotEncCB(QComboBox *b, int value, int renumber)
|
||||
{
|
||||
QString strings[] = { QObject::tr("No"), QObject::tr("RotEnc A"), QObject::tr("Rot Enc B"), QObject::tr("Rot Enc C"), QObject::tr("Rot Enc D"), QObject::tr("Rot Enc E")};
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
void populateGvSourceCB(QComboBox *b, int value);
|
||||
void populateVoiceLangCB(QComboBox *b, QString language);
|
||||
void populateTTraceCB(QComboBox *b, int value);
|
||||
void populateRotEncCB(QComboBox *b, int value, int renumber);
|
||||
void populateBacklightCB(QComboBox *b, const uint8_t value);
|
||||
|
||||
|
|
|
@ -1251,15 +1251,16 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString
|
|||
|
||||
if ((svnTags.at(0) == "open9x")||(svnTags.at(0) == "opentx")) {
|
||||
if (revision > 1464) {
|
||||
QString fwBuild = flash.getBuild();
|
||||
if (fwBuild.contains("-")) {
|
||||
QStringList buildTags = fwBuild.split("-", QString::SkipEmptyParts);
|
||||
QString fwEEprom = flash.getEEprom();
|
||||
if (fwEEprom.contains("-")) {
|
||||
QStringList buildTags = fwEEprom.split("-", QString::SkipEmptyParts);
|
||||
if (buildTags.size() >= 1)
|
||||
version = buildTags.at(0).toInt();
|
||||
if (buildTags.size() >= 2)
|
||||
variant = buildTags.at(1).toInt();
|
||||
} else {
|
||||
version = fwBuild.toInt(); // TODO changer le nom de la variable
|
||||
}
|
||||
else {
|
||||
version = fwEEprom.toInt();
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -68,6 +68,7 @@ MdiChild::MdiChild():
|
|||
fileChanged(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
this->setWindowIcon(CompanionIcon("open.png"));
|
||||
ui->SimulateTxButton->setIcon(CompanionIcon("simulate.png"));
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
@ -166,7 +167,8 @@ void MdiChild::OpenEditWindow(bool wizard=false)
|
|||
ret = QMessageBox::question(this, tr("Companion"), tr("Do you want to use model wizard? "), QMessageBox::Yes | QMessageBox::No);
|
||||
if (ret == QMessageBox::Yes) {
|
||||
wizard=true;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
qSleep(500);
|
||||
ret = QMessageBox::question(this, tr("Companion"), tr("Ask this question again ? "), QMessageBox::Yes | QMessageBox::No);
|
||||
if (ret == QMessageBox::No) {
|
||||
|
@ -496,7 +498,8 @@ void MdiChild::writeEeprom() // write to Tx
|
|||
}
|
||||
backupEnable=false;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
backupEnable=false;
|
||||
}
|
||||
QString stickCal=g.profile[g.id()].stickPotCalib();
|
||||
|
@ -632,7 +635,8 @@ void MdiChild::print(int model, QString filename)
|
|||
|
||||
printDialog *pd = new printDialog(this, &radioData.generalSettings, &radioData.models[model], filename);
|
||||
pd->show();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if(ui->modelsList->currentRow()<1) return;
|
||||
printDialog *pd = new printDialog(this, &radioData.generalSettings, &radioData.models[ui->modelsList->currentRow()-1]);
|
||||
pd->show();
|
||||
|
@ -671,9 +675,8 @@ bool MdiChild::loadBackup()
|
|||
.arg(file.errorString()));
|
||||
return false;
|
||||
}
|
||||
uint8_t *eeprom = (uint8_t *)malloc(eeprom_size);
|
||||
memset(eeprom, 0, eeprom_size);
|
||||
long result = file.read((char*)eeprom, eeprom_size);
|
||||
QByteArray eeprom(eeprom_size, 0);
|
||||
long result = file.read((char*)eeprom.data(), eeprom_size);
|
||||
file.close();
|
||||
|
||||
if (result != eeprom_size) {
|
||||
|
@ -685,7 +688,7 @@ bool MdiChild::loadBackup()
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!LoadBackup(radioData, eeprom, eeprom_size, index)) {
|
||||
if (!LoadBackup(radioData, (uint8_t *)eeprom.data(), eeprom_size, index)) {
|
||||
QMessageBox::critical(this, tr("Error"),
|
||||
tr("Invalid binary backup File %1")
|
||||
.arg(fileName));
|
||||
|
@ -693,6 +696,6 @@ bool MdiChild::loadBackup()
|
|||
}
|
||||
|
||||
ui->modelsList->refreshList();
|
||||
free(eeprom);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -500,8 +500,10 @@ void Setup::on_trimIncrement_currentIndexChanged(int index)
|
|||
|
||||
void Setup::on_throttleSource_currentIndexChanged(int index)
|
||||
{
|
||||
model.thrTraceSrc = index;
|
||||
emit modified();
|
||||
if (!lock) {
|
||||
model.thrTraceSrc = ui->throttleSource->itemData(index).toInt();
|
||||
emit modified();
|
||||
}
|
||||
}
|
||||
|
||||
void Setup::on_name_editingFinished()
|
||||
|
@ -543,12 +545,45 @@ void Setup::on_image_currentIndexChanged(int index)
|
|||
}
|
||||
}
|
||||
|
||||
void Setup::populateThrottleSourceCB()
|
||||
{
|
||||
const QString sources9x[] = { QObject::tr("THR"), QObject::tr("P1"), QObject::tr("P2"), QObject::tr("P3")};
|
||||
const QString sourcesTaranis[] = { QObject::tr("THR"), QObject::tr("S1"), QObject::tr("S2"), QObject::tr("S3"), QObject::tr("LS"), QObject::tr("RS")};
|
||||
|
||||
unsigned int i;
|
||||
|
||||
lock = true;
|
||||
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||
for (i=0; i<6; i++) {
|
||||
ui->throttleSource->addItem(sourcesTaranis[i], i);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i=0; i<4; i++) {
|
||||
ui->throttleSource->addItem(sources9x[i], i);
|
||||
}
|
||||
}
|
||||
|
||||
if (model.thrTraceSrc < i)
|
||||
ui->throttleSource->setCurrentIndex(model.thrTraceSrc);
|
||||
|
||||
int channels = (IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16);
|
||||
for (int i=0; i<channels; i++) {
|
||||
ui->throttleSource->addItem(QObject::tr("CH%1").arg(i+1, 2, 10, QChar('0')), THROTTLE_SOURCE_FIRST_CHANNEL+i);
|
||||
if (model.thrTraceSrc == unsigned(THROTTLE_SOURCE_FIRST_CHANNEL+i))
|
||||
ui->throttleSource->setCurrentIndex(ui->throttleSource->count()-1);
|
||||
}
|
||||
|
||||
lock = false;
|
||||
}
|
||||
|
||||
void Setup::update()
|
||||
{
|
||||
ui->name->setText(model.name);
|
||||
|
||||
ui->throttleReverse->setChecked(model.throttleReversed);
|
||||
populateTTraceCB(ui->throttleSource, model.thrTraceSrc);
|
||||
populateThrottleSourceCB();
|
||||
ui->throttleWarning->setChecked(!model.disableThrottleWarning);
|
||||
|
||||
//trim inc, thro trim, thro expo, instatrim
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <QCheckBox>
|
||||
#include <QSlider>
|
||||
#include <QSpinBox>
|
||||
#include <QComboBox>
|
||||
#include <QLabel>
|
||||
|
||||
namespace Ui {
|
||||
|
@ -104,6 +105,7 @@ class Setup : public ModelPanel
|
|||
void updateStartupSwitches();
|
||||
void updatePotWarnings();
|
||||
void updateBeepCenter();
|
||||
void populateThrottleSourceCB();
|
||||
};
|
||||
|
||||
#endif // SETUP_H
|
||||
|
|
1
radio/src/bootloader/.gitignore
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
/*.o
|
|
@ -427,7 +427,12 @@ void ConvertModel_215_to_216(ModelData &model)
|
|||
g_model.extendedLimits = oldModel.extendedLimits;
|
||||
g_model.extendedTrims = oldModel.extendedTrims;
|
||||
g_model.throttleReversed = oldModel.throttleReversed;
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
g_model.beepANACenter = (oldModel.beepANACenter & 0x3f) | ((oldModel.beepANACenter & 0xc0) << 1);
|
||||
#else
|
||||
g_model.beepANACenter = oldModel.beepANACenter;
|
||||
#endif
|
||||
|
||||
for (uint8_t i=0; i<64; i++) {
|
||||
MixData & mix = g_model.mixData[i];
|
||||
|
@ -723,6 +728,11 @@ void ConvertModel_215_to_216(ModelData &model)
|
|||
#endif
|
||||
}
|
||||
g_model.thrTraceSrc = oldModel.thrTraceSrc;
|
||||
#if defined(PCBTARANIS)
|
||||
// S3 added
|
||||
if (g_model.thrTraceSrc >= THROTTLE_SOURCE_S3)
|
||||
g_model.thrTraceSrc += 1;
|
||||
#endif
|
||||
g_model.switchWarningStates = oldModel.switchWarningStates >> 1;
|
||||
g_model.nSwToWarn = (oldModel.switchWarningStates & 0x01) ? 0xFF : 0;
|
||||
for (uint8_t i=0; i<5; i++) {
|
||||
|
@ -779,7 +789,7 @@ bool eeConvert()
|
|||
ALERT(STR_EEPROMWARN, msg, AU_BAD_EEPROM);
|
||||
|
||||
// Message
|
||||
MESSAGE(STR_EEPROMWARN, PSTR("EEPROM Converting"), NULL, AU_EEPROM_FORMATTING); // TODO translations
|
||||
MESSAGE(STR_EEPROMWARN, STR_EEPROM_CONVERTING, NULL, AU_EEPROM_FORMATTING); // TODO translations
|
||||
|
||||
// General Settings conversion
|
||||
#if defined(PCBTARANIS)
|
||||
|
|
|
@ -388,19 +388,19 @@ void menuGeneralSetup(uint8_t event)
|
|||
SLIDER_5POS(y, g_eeGeneral.varioVolume, TR_SPEAKER_VOLUME, event, attr);
|
||||
break;
|
||||
case ITEM_SETUP_VARIO_PITCH:
|
||||
lcd_putsLeft(y, "\001Pitch at Zero");
|
||||
lcd_putsLeft(y, STR_PITCH_AT_ZERO);
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10), attr|LEFT);
|
||||
lcd_putsAtt(lcdLastPos, y, "Hz", attr);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioPitch, -40, 40);
|
||||
break;
|
||||
case ITEM_SETUP_VARIO_RANGE:
|
||||
lcd_putsLeft(y, "\001Pitch at Max");
|
||||
lcd_putsLeft(y, STR_PITCH_AT_MAX);
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10)+VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10), attr|LEFT);
|
||||
lcd_putsAtt(lcdLastPos, y, "Hz", attr);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioRange, -80, 80);
|
||||
break;
|
||||
case ITEM_SETUP_VARIO_REPEAT:
|
||||
lcd_putsLeft(y, "\001Repeat at Zero");
|
||||
lcd_putsLeft(y, STR_REPEAT_AT_ZERO);
|
||||
lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_REPEAT_ZERO+(g_eeGeneral.varioRepeat*10), attr|LEFT);
|
||||
lcd_putsAtt(lcdLastPos, y, "ms", attr);
|
||||
if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioRepeat, -30, 50);
|
||||
|
@ -1041,7 +1041,7 @@ void menuGeneralTrainer(uint8_t event)
|
|||
}
|
||||
|
||||
if (attr) {
|
||||
if (event==EVT_KEY_FIRST(KEY_MENU)){
|
||||
if (event==EVT_KEY_FIRST(KEY_ENTER)){
|
||||
s_editMode = -1;
|
||||
memcpy(g_eeGeneral.trainer.calib, g_ppmIns, sizeof(g_eeGeneral.trainer.calib));
|
||||
eeDirty(EE_GENERAL);
|
||||
|
@ -1213,10 +1213,10 @@ void menuGeneralHardware(uint8_t event)
|
|||
putsMixerSource(sizeof(TR_TYPE)*FW, y, MIXSRC_FIRST_POT+idx);
|
||||
uint8_t potType = (g_eeGeneral.potsType & mask) >> shift;
|
||||
if (potType == POT_TYPE_NONE && i < 2)
|
||||
potType = 1;
|
||||
potType = POT_TYPE_POT;
|
||||
potType = selectMenuItem(HW_SETTINGS_COLUMN, y, STR_TYPE, STR_POTTYPES, potType, 0, POT_TYPE_MAX, attr, event);
|
||||
if (potType == POT_TYPE_POT && i < 2)
|
||||
potType = 0;
|
||||
potType = POT_TYPE_NONE;
|
||||
g_eeGeneral.potsType &= ~mask;
|
||||
g_eeGeneral.potsType |= (potType << shift);
|
||||
break;
|
||||
|
|
|
@ -1134,7 +1134,7 @@ void menuModelSetup(uint8_t event)
|
|||
case ITEM_MODEL_THROTTLE_TRACE:
|
||||
{
|
||||
lcd_putsLeft(y, STR_TTRACE);
|
||||
if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.thrTraceSrc, NUM_POTS+NUM_CHNOUT);
|
||||
if (attr) CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, g_model.thrTraceSrc, NUM_POTS+NUM_CHNOUT, isThrottleSourceAvailable);
|
||||
uint8_t idx = g_model.thrTraceSrc + MIXSRC_Thr;
|
||||
if (idx > MIXSRC_Thr)
|
||||
idx += 1;
|
||||
|
@ -1285,8 +1285,9 @@ void menuModelSetup(uint8_t event)
|
|||
|
||||
case ITEM_MODEL_BEEP_CENTER:
|
||||
lcd_putsLeft(y, STR_BEEPCTR);
|
||||
for (uint8_t i=0; i<NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS; i++)
|
||||
for (uint8_t i=0; i<NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS; i++) {
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+i*FW, y, STR_RETA123, i, ((m_posHorz==i) && attr) ? BLINK|INVERS : (((g_model.beepANACenter & ((BeepANACenter)1<<i)) || (attr && m_posHorz<0)) ? INVERS : 0 ) );
|
||||
}
|
||||
if (attr && CURSOR_ON_CELL) {
|
||||
if (event==EVT_KEY_BREAK(KEY_ENTER) || p1valdiff) {
|
||||
if (READ_ONLY_UNLOCKED()) {
|
||||
|
@ -1309,7 +1310,7 @@ void menuModelSetup(uint8_t event)
|
|||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_MODE:
|
||||
lcd_putsLeft(y, STR_MODE);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN, y, PSTR("\004""OFF\0""D16\0""D8\0 ""LR12"), 1+g_model.moduleData[0].rfProtocol, attr);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[0].rfProtocol, attr);
|
||||
if (attr) {
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[0].rfProtocol, RF_PROTO_OFF, RF_PROTO_LAST);
|
||||
if (checkIncDec_Ret) {
|
||||
|
@ -1321,11 +1322,11 @@ void menuModelSetup(uint8_t event)
|
|||
|
||||
case ITEM_MODEL_EXTERNAL_MODULE_MODE:
|
||||
lcd_putsLeft(y, STR_MODULE);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN, y, PSTR("\004""OFF\0""PPM\0""XJT\0""DSM2"), g_model.externalModule, m_posHorz==0 ? attr : 0);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN, y, STR_TARANIS_PROTOCOLS, g_model.externalModule, m_posHorz==0 ? attr : 0);
|
||||
if (g_model.externalModule == MODULE_TYPE_XJT)
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+5*FW, y, PSTR("\004""OFF\0""D16\0""D8\0 ""LR12"), 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, m_posHorz==1 ? attr : 0);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, m_posHorz==1 ? attr : 0);
|
||||
else if (IS_MODULE_DSM2(EXTERNAL_MODULE))
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+5*FW, y, PSTR("\004""LP45""DSM2""DSMX"), g_model.moduleData[EXTERNAL_MODULE].rfProtocol, m_posHorz==1 ? attr : 0);
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_DSM_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, m_posHorz==1 ? attr : 0);
|
||||
if (attr && (editMode>0 || p1valdiff)) {
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
|
@ -2418,7 +2419,7 @@ void menuModelCurveOne(uint8_t event)
|
|||
CurveInfo & crv = g_model.curves[s_curveChan];
|
||||
int8_t * points = curveAddress(s_curveChan);
|
||||
|
||||
lcd_puts(9*FW, 0, "pt\003X\006Y");
|
||||
lcd_puts(9*FW, 0, TR_PT "\003X\006Y");
|
||||
lcd_filled_rect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT);
|
||||
|
||||
SIMPLE_SUBMENU(STR_MENUCURVE, 4 + 5+crv.points + (crv.type==CURVE_TYPE_CUSTOM ? 5+crv.points-2 : 0));
|
||||
|
@ -2429,7 +2430,7 @@ void menuModelCurveOne(uint8_t event)
|
|||
|
||||
uint8_t attr = (m_posVert==1 ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0);
|
||||
lcd_putsLeft(3*FH+1, STR_TYPE);
|
||||
lcd_putsiAtt(INDENT_WIDTH, 4*FH+1, "\010StandardCustom\0", crv.type, attr);
|
||||
lcd_putsiAtt(INDENT_WIDTH, 4*FH+1, STR_CURVE_TYPES, crv.type, attr);
|
||||
if (attr) {
|
||||
uint8_t newType = checkIncDecModelZero(event, crv.type, CURVE_TYPE_LAST);
|
||||
if (newType != crv.type) {
|
||||
|
@ -2445,9 +2446,9 @@ void menuModelCurveOne(uint8_t event)
|
|||
}
|
||||
|
||||
attr = (m_posVert==2 ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0);
|
||||
lcd_putsLeft(5*FH+1, "Count");
|
||||
lcd_putsLeft(5*FH+1, STR_COUNT);
|
||||
lcd_outdezAtt(INDENT_WIDTH, 6*FH+1, 5+crv.points, LEFT|attr);
|
||||
lcd_putsAtt(lcdLastPos, 6*FH+1, PSTR("pts"), attr);
|
||||
lcd_putsAtt(lcdLastPos, 6*FH+1, STR_PTS, attr);
|
||||
if (attr) {
|
||||
int8_t count = checkIncDecModel(event, crv.points, -3, 12); // 2pts - 17pts
|
||||
if (checkIncDec_Ret) {
|
||||
|
@ -2466,7 +2467,7 @@ void menuModelCurveOne(uint8_t event)
|
|||
}
|
||||
}
|
||||
|
||||
lcd_putsLeft(7*FH+1, PSTR("Smooth"));
|
||||
lcd_putsLeft(7*FH+1, STR_SMOOTH);
|
||||
menu_lcd_onoff(7*FW, 7*FH+1, crv.smooth, m_posVert==3 ? INVERS : 0);
|
||||
if (m_posVert==3) crv.smooth = checkIncDecModel(event, crv.smooth, 0, 1);
|
||||
|
||||
|
@ -3809,7 +3810,7 @@ void onLimitsMenu(const char *result)
|
|||
ld->revert = false;
|
||||
ld->curve = 0;
|
||||
}
|
||||
else if (result == STR_COPY_TRIMS_TO_OFFSET) {
|
||||
else if (result == STR_COPY_TRIMS_TO_OFS) {
|
||||
copyTrimsToOffset(ch);
|
||||
}
|
||||
}
|
||||
|
@ -3888,7 +3889,7 @@ void menuModelLimits(uint8_t event)
|
|||
if (sub==k && m_posHorz < 0 && event==EVT_KEY_LONG(KEY_ENTER)) {
|
||||
killEvents(event);
|
||||
MENU_ADD_ITEM(STR_RESET);
|
||||
MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFFSET);
|
||||
MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS);
|
||||
menuHandler = onLimitsMenu;
|
||||
}
|
||||
#else
|
||||
|
@ -4057,7 +4058,7 @@ void menuModelCurvesAll(uint8_t event)
|
|||
editName(4*FW, y, g_model.curveNames[k], sizeof(g_model.curveNames[k]), 0, 0);
|
||||
CurveInfo & crv = g_model.curves[k];
|
||||
lcd_outdezAtt(11*FW, y, 5+crv.points, LEFT);
|
||||
lcd_putsAtt(lcdLastPos, y, PSTR("pts"), 0);
|
||||
lcd_putsAtt(lcdLastPos, y, STR_PTS, 0);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -4511,7 +4512,7 @@ void onLogicalSwitchesMenu(const char *result)
|
|||
*cs = clipboard.data.csw;
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
else if (result == STR_DELETE) {
|
||||
else if (result == STR_CLEAR) {
|
||||
memset(cs, 0, sizeof(LogicalSwitchData));
|
||||
eeDirty(EE_MODEL);
|
||||
}
|
||||
|
@ -4539,10 +4540,12 @@ void menuModelLogicalSwitches(uint8_t event)
|
|||
if (sub>=0 && horz<0 && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) {
|
||||
killEvents(event);
|
||||
LogicalSwitchData * cs = cswAddress(sub);
|
||||
if (cs->func) MENU_ADD_ITEM(STR_COPY);
|
||||
if (cs->func)
|
||||
MENU_ADD_ITEM(STR_COPY);
|
||||
if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH)
|
||||
MENU_ADD_ITEM(STR_PASTE);
|
||||
if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) MENU_ADD_ITEM(STR_DELETE);
|
||||
if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw)
|
||||
MENU_ADD_ITEM(STR_CLEAR);
|
||||
menuHandler = onLogicalSwitchesMenu;
|
||||
}
|
||||
#endif
|
||||
|
@ -4692,7 +4695,7 @@ void menuModelLogicalSwitches(uint8_t event)
|
|||
|
||||
// CSW delay
|
||||
if (cstate == LS_FAMILY_STAY) {
|
||||
lcd_puts(CSW_6TH_COLUMN, y, "N/A");
|
||||
lcd_puts(CSW_6TH_COLUMN, y, STR_NA);
|
||||
if (attr && horz == LS_FIELD_DELAY) {
|
||||
REPEAT_LAST_CURSOR_MOVE();
|
||||
}
|
||||
|
@ -4870,10 +4873,9 @@ void menuModelCustomFunctions(uint8_t event)
|
|||
MENU_ADD_ITEM(STR_PASTE);
|
||||
if (!CFN_EMPTY(sd) && CFN_EMPTY(&g_model.funcSw[NUM_CFN-1]))
|
||||
MENU_ADD_ITEM(STR_INSERT);
|
||||
if (CFN_EMPTY(sd))
|
||||
MENU_ADD_ITEM(STR_DELETE);
|
||||
else
|
||||
if (!CFN_EMPTY(sd))
|
||||
MENU_ADD_ITEM(STR_CLEAR);
|
||||
MENU_ADD_ITEM(STR_DELETE);
|
||||
menuHandler = onCustomFunctionsMenu;
|
||||
}
|
||||
#endif
|
||||
|
@ -5205,7 +5207,7 @@ void menuModelCustomScriptOne(uint8_t event)
|
|||
uint8_t attr = (sub==i ? (s_editMode>0 ? BLINK|INVERS : INVERS) : 0);
|
||||
|
||||
if (i == ITEM_MODEL_CUSTOMSCRIPT_FILE) {
|
||||
lcd_putsLeft(y, "Script");
|
||||
lcd_putsLeft(y, STR_SCRIPT);
|
||||
if (ZEXIST(sd.file))
|
||||
lcd_putsnAtt(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.file, sizeof(sd.file), attr);
|
||||
else
|
||||
|
@ -5222,11 +5224,11 @@ void menuModelCustomScriptOne(uint8_t event)
|
|||
}
|
||||
}
|
||||
else if (i == ITEM_MODEL_CUSTOMSCRIPT_NAME) {
|
||||
lcd_putsLeft(y, "Name");
|
||||
lcd_putsLeft(y, TR_NAME);
|
||||
editName(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.name, sizeof(sd.name), event, attr);
|
||||
}
|
||||
else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL) {
|
||||
lcd_putsLeft(y, "Inputs");
|
||||
lcd_putsLeft(y, STR_INPUTS);
|
||||
}
|
||||
else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInternalData[s_currIdx].inputsCount) {
|
||||
int inputIdx = i-ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL-1;
|
||||
|
@ -5249,7 +5251,7 @@ void menuModelCustomScriptOne(uint8_t event)
|
|||
|
||||
if (scriptInternalData[s_currIdx].outputsCount > 0) {
|
||||
lcd_vline(SCRIPT_ONE_3RD_COLUMN_POS-4, FH+1, LCD_H-FH-1);
|
||||
lcd_puts(SCRIPT_ONE_3RD_COLUMN_POS, FH+1, "Outputs");
|
||||
lcd_puts(SCRIPT_ONE_3RD_COLUMN_POS, FH+1, STR_OUTPUTS);
|
||||
|
||||
for (int i=0; i<scriptInternalData[s_currIdx].outputsCount; i++) {
|
||||
putsMixerSource(SCRIPT_ONE_3RD_COLUMN_POS+INDENT_WIDTH, FH+1+FH+i*FH, MIXSRC_FIRST_LUA+(s_currIdx*MAX_SCRIPT_OUTPUTS)+i, 0);
|
||||
|
|
|
@ -1473,6 +1473,15 @@ bool isSwitchAvailable(int swtch)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool isThrottleSourceAvailable(int source)
|
||||
{
|
||||
#if defined(PCBTARANIS)
|
||||
if (source == THROTTLE_SOURCE_S3 && !IS_POT_AVAILABLE(POT3))
|
||||
return false;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isLogicalSwitchFunctionAvailable(int function)
|
||||
{
|
||||
return function != LS_FUNC_RANGE;
|
||||
|
|
|
@ -138,6 +138,11 @@ void menuStatisticsView(uint8_t event);
|
|||
void menuStatisticsDebug(uint8_t event);
|
||||
void menuAboutView(uint8_t event);
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
void menuMainViewChannelsMonitor(uint8_t event);
|
||||
void menuChannelsView(uint8_t event);
|
||||
#endif
|
||||
|
||||
#if defined(NAVIGATION_POT1)
|
||||
extern int16_t p1valdiff;
|
||||
#else
|
||||
|
@ -202,6 +207,7 @@ int8_t checkIncDecGen(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max);
|
|||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool isThrottleSourceAvailable(int source);
|
||||
bool isLogicalSwitchFunctionAvailable(int function);
|
||||
bool isAssignableFunctionAvailable(int function);
|
||||
bool isSwitchAvailable(int swtch);
|
||||
|
|
|
@ -824,18 +824,18 @@ void luaInit()
|
|||
// Init lua
|
||||
luaL_openlibs(L);
|
||||
|
||||
// Push openTX libs
|
||||
// Push OpenTX libs
|
||||
lua_registerlib(L, "model", modelLib);
|
||||
lua_registerlib(L, "lcd", lcdLib);
|
||||
|
||||
// Push openTX functions
|
||||
// Push OpenTX functions
|
||||
lua_register(L, "getTime", luaGetTime);
|
||||
lua_register(L, "getVersion", luaGetVersion);
|
||||
lua_register(L, "getValue", luaGetValue);
|
||||
lua_register(L, "playFile", luaPlayFile);
|
||||
lua_register(L, "popupInput", luaPopupInput);
|
||||
|
||||
// Push openTX constants
|
||||
// Push OpenTX constants
|
||||
lua_registerint(L, "DBLSIZE", DBLSIZE);
|
||||
lua_registerint(L, "MIDSIZE", MIDSIZE);
|
||||
lua_registerint(L, "SMLSIZE", SMLSIZE);
|
||||
|
@ -844,11 +844,11 @@ void luaInit()
|
|||
lua_registerint(L, "VALUE", 0);
|
||||
lua_registerint(L, "SOURCE", 1);
|
||||
lua_registerint(L, "REPLACE", MLTPX_REP);
|
||||
lua_registerint(L, "MIX_Rud", MIXSRC_Rud);
|
||||
lua_registerint(L, "MIX_Ele", MIXSRC_Ele);
|
||||
lua_registerint(L, "MIX_Thr", MIXSRC_Thr);
|
||||
lua_registerint(L, "MIX_Ail", MIXSRC_Ail);
|
||||
lua_registerint(L, "SW_Last", SWSRC_LAST_CSW);
|
||||
lua_registerint(L, "STICK_RUDDER", MIXSRC_Rud);
|
||||
lua_registerint(L, "STICK_ELEVATOR", MIXSRC_Ele);
|
||||
lua_registerint(L, "STICK_THROTTLE", MIXSRC_Thr);
|
||||
lua_registerint(L, "STICK_AILERON", MIXSRC_Ail);
|
||||
lua_registerint(L, "SWITCH_LAST", SWSRC_LAST_CSW);
|
||||
lua_registerint(L, "EVT_MENU_BREAK", EVT_KEY_BREAK(KEY_MENU));
|
||||
lua_registerint(L, "EVT_PAGE_BREAK", EVT_KEY_BREAK(KEY_PAGE));
|
||||
lua_registerint(L, "EVT_ENTER_BREAK", EVT_KEY_BREAK(KEY_ENTER));
|
||||
|
|
|
@ -1606,6 +1606,22 @@ PACK(typedef struct {
|
|||
#define AVR_FIELD(x) x;
|
||||
#endif
|
||||
|
||||
enum ThrottleSources {
|
||||
THROTTLE_SOURCE_THR,
|
||||
#if defined(PCBTARANIS)
|
||||
THROTTLE_SOURCE_S1,
|
||||
THROTTLE_SOURCE_S2,
|
||||
THROTTLE_SOURCE_S3,
|
||||
THROTTLE_SOURCE_LS,
|
||||
THROTTLE_SOURCE_RS,
|
||||
#else
|
||||
THROTTLE_SOURCE_P1,
|
||||
THROTTLE_SOURCE_P2,
|
||||
THROTTLE_SOURCE_P3,
|
||||
#endif
|
||||
THROTTLE_SOURCE_CH1,
|
||||
};
|
||||
|
||||
PACK(typedef struct t_ModelData {
|
||||
ModelHeader header;
|
||||
TimerData timers[MAX_TIMERS];
|
||||
|
|
|
@ -3425,6 +3425,10 @@ void evalFunctions()
|
|||
if (g_menuStack[0] == menuMainView
|
||||
#if defined(FRSKY)
|
||||
|| g_menuStack[0] == menuTelemetryFrsky
|
||||
#endif
|
||||
#if defined(PCBTARANIS)
|
||||
|| g_menuStack[0] == menuMainViewChannelsMonitor
|
||||
|| g_menuStack[0] == menuChannelsView
|
||||
#endif
|
||||
)
|
||||
instantTrim();
|
||||
|
|
|
@ -41,7 +41,9 @@
|
|||
#define DEFNUMSTR(s) STR2(s)
|
||||
|
||||
#if defined(PCBSTD)
|
||||
const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT);
|
||||
#define EEPROM_STR DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT)
|
||||
#else
|
||||
const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " DEFNUMSTR(EEPROM_VER);
|
||||
#define EEPROM_STR DEFNUMSTR(EEPROM_VER);
|
||||
#endif
|
||||
|
||||
const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " EEPROM_STR;
|
||||
|
|
|
@ -112,6 +112,10 @@ const pm_char STR_OPEN9X[] PROGMEM =
|
|||
#endif
|
||||
#if defined(PCBTARANIS)
|
||||
ISTR(VTRAINERMODES)
|
||||
ISTR(TARANIS_PROTOCOLS)
|
||||
ISTR(XJT_PROTOCOLS)
|
||||
ISTR(DSM_PROTOCOLS)
|
||||
ISTR(CURVE_TYPES)
|
||||
#endif
|
||||
#if defined(MAVLINK)
|
||||
ISTR(MAVLINK_BAUDS)
|
||||
|
@ -230,6 +234,9 @@ const pm_char STR_SWITCHWARNING[] PROGMEM = TR_SWITCHWARNING;
|
|||
const pm_char STR_TIMEZONE[] PROGMEM = TR_TIMEZONE;
|
||||
const pm_char STR_GPSCOORD[] PROGMEM = TR_GPSCOORD;
|
||||
const pm_char STR_VARIO[] PROGMEM = TR_VARIO;
|
||||
const pm_char STR_PITCH_AT_ZERO[] PROGMEM = TR_PITCH_AT_ZERO;
|
||||
const pm_char STR_PITCH_AT_MAX[] PROGMEM = TR_PITCH_AT_MAX;
|
||||
const pm_char STR_REPEAT_AT_ZERO[] PROGMEM = TR_REPEAT_AT_ZERO;
|
||||
#endif
|
||||
const pm_char STR_RXCHANNELORD[] PROGMEM = TR_RXCHANNELORD;
|
||||
const pm_char STR_SLAVE[] PROGMEM = TR_SLAVE;
|
||||
|
@ -301,8 +308,8 @@ const pm_char STR_MENULOGICALSWITCHES[] PROGMEM = TR_MENULOGICALSWITCHES;
|
|||
const pm_char STR_MENUCUSTOMFUNC[] PROGMEM = TR_MENUCUSTOMFUNC;
|
||||
|
||||
#if defined(LUA)
|
||||
const pm_char STR_MENUCUSTOMSCRIPTS[] PROGMEM = "CUSTOM SCRIPTS";
|
||||
const pm_char STR_MENUCUSTOMSCRIPT[] PROGMEM = "CUSTOM SCRIPT";
|
||||
const pm_char STR_MENUCUSTOMSCRIPTS[] PROGMEM = TR_MENUCUSTOMSCRIPTS;
|
||||
const pm_char STR_MENUCUSTOMSCRIPT[] PROGMEM = TR_MENUCUSTOMSCRIPT;
|
||||
#endif
|
||||
|
||||
#if defined(FRSKY)
|
||||
|
@ -402,6 +409,7 @@ const pm_char STR_MODELS_EXT[] PROGMEM = MODELS_EXT;
|
|||
|
||||
const pm_char STR_WARNING[] PROGMEM = TR_WARNING;
|
||||
const pm_char STR_EEPROMWARN[] PROGMEM = TR_EEPROMWARN;
|
||||
const pm_char STR_EEPROM_CONVERTING[] PROGMEM = TR_EEPROM_CONVERTING;
|
||||
const pm_char STR_THROTTLEWARN[] PROGMEM = TR_THROTTLEWARN;
|
||||
const pm_char STR_ALARMSWARN[] PROGMEM = TR_ALARMSWARN;
|
||||
const pm_char STR_SWITCHWARN[] PROGMEM = TR_SWITCHWARN;
|
||||
|
@ -426,10 +434,10 @@ const pm_char STR_SDHC_CARD[] PROGMEM = TR_SDHC_CARD;
|
|||
const pm_char STR_NO_SOUNDS_ON_SD[] PROGMEM = TR_NO_SOUNDS_ON_SD;
|
||||
const pm_char STR_NO_MODELS_ON_SD[] PROGMEM = TR_NO_MODELS_ON_SD;
|
||||
const pm_char STR_NO_BITMAPS_ON_SD[] PROGMEM = TR_NO_BITMAPS_ON_SD;
|
||||
const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = "No Scripts on SD"; // TODO TR_NO_BITMAPS_ON_SD;
|
||||
const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = TR_NO_SCRIPTS_ON_SD;
|
||||
const pm_char STR_PLAY_FILE[] PROGMEM = TR_PLAY_FILE;
|
||||
const pm_char STR_ASSIGN_BITMAP[] PROGMEM = TR_ASSIGN_BITMAP;
|
||||
const pm_char STR_EXECUTE_FILE[] PROGMEM = "Execute";
|
||||
const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE;
|
||||
const pm_char STR_DELETE_FILE[] PROGMEM = TR_DELETE_FILE;
|
||||
const pm_char STR_COPY_FILE[] PROGMEM = TR_COPY_FILE;
|
||||
const pm_char STR_RENAME_FILE[] PROGMEM = TR_RENAME_FILE;
|
||||
|
@ -455,8 +463,8 @@ const pm_char STR_OWN[] PROGMEM = TR_OWN;
|
|||
const pm_char STR_ROTARY_ENCODER[] PROGMEM = TR_ROTARY_ENCODER;
|
||||
const pm_char STR_DATE[] PROGMEM = TR_DATE;
|
||||
const pm_char STR_CHANNELS_MONITOR[] PROGMEM = TR_CHANNELS_MONITOR;
|
||||
const pm_char STR_PATH_TOO_LONG[] PROGMEM = "Path too long";
|
||||
const pm_char STR_VIEW_TEXT[] PROGMEM = "View text";
|
||||
const pm_char STR_PATH_TOO_LONG[] PROGMEM = TR_PATH_TOO_LONG;
|
||||
const pm_char STR_VIEW_TEXT[] PROGMEM = TR_VIEW_TEXT;
|
||||
|
||||
#if LCD_W >= 212
|
||||
const pm_char STR_MODELNAME[] PROGMEM = TR_MODELNAME;
|
||||
|
@ -482,24 +490,31 @@ const pm_char STR_VIEW_TEXT[] PROGMEM = "View text";
|
|||
const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE;
|
||||
const pm_char STR_LOWALARM[] PROGMEM = TR_LOWALARM;
|
||||
const pm_char STR_CRITICALALARM[] PROGMEM = TR_CRITICALALARM;
|
||||
const pm_char STR_ENABLE_POPUP[] PROGMEM = "Enable Popup";
|
||||
const pm_char STR_DISABLE_POPUP[] PROGMEM = "Disable Popup";
|
||||
const pm_char STR_CURVE_PRESET[] PROGMEM = "Preset...";
|
||||
const pm_char STR_PRESET[] PROGMEM = "Preset";
|
||||
const pm_char STR_MIRROR[] PROGMEM = "Mirror";
|
||||
const pm_char STR_CLEAR[] PROGMEM = "Clear";
|
||||
const pm_char STR_RESET[] PROGMEM = "Reset";
|
||||
const pm_char STR_COPY_TRIMS_TO_OFFSET[] = "Copy Trims To Offset";
|
||||
const pm_char STR_ENABLE_POPUP[] PROGMEM = TR_ENABLE_POPUP;
|
||||
const pm_char STR_DISABLE_POPUP[] PROGMEM = TR_DISABLE_POPUP;
|
||||
const pm_char STR_CURVE_PRESET[] PROGMEM = TR_CURVE_PRESET;
|
||||
const pm_char STR_PRESET[] PROGMEM = TR_PRESET;
|
||||
const pm_char STR_MIRROR[] PROGMEM = TR_MIRROR;
|
||||
const pm_char STR_CLEAR[] PROGMEM = TR_CLEAR;
|
||||
const pm_char STR_RESET[] PROGMEM = TR_RESET;
|
||||
const pm_char STR_COUNT[] PROGMEM = TR_COUNT;
|
||||
const pm_char STR_PT[] PROGMEM = TR_PT;
|
||||
const pm_char STR_PTS[] PROGMEM = TR_PTS;
|
||||
const pm_char STR_SMOOTH[] PROGMEM = TR_SMOOTH;
|
||||
const pm_char STR_COPY_TRIMS_TO_OFS[] PROGMEM = TR_COPY_TRIMS_TO_OFS;
|
||||
const pm_char STR_TOP_BAR[] PROGMEM = TR_TOP_BAR;
|
||||
const pm_char STR_ALTITUDE[] PROGMEM = TR_ALTITUDE;
|
||||
const pm_char STR_SCALE[] PROGMEM = "Scale";
|
||||
const pm_char STR_VIEW_CHANNELS[] PROGMEM = "View Channels";
|
||||
const pm_char STR_VIEW_NOTES[] PROGMEM = "View Notes";
|
||||
const pm_char STR_SCALE[] PROGMEM = TR_SCALE;
|
||||
const pm_char STR_VIEW_CHANNELS[] PROGMEM = TR_VIEW_CHANNELS;
|
||||
const pm_char STR_VIEW_NOTES[] PROGMEM = TR_VIEW_NOTES;
|
||||
const pm_char STR_POTWARNING[] PROGMEM = TR_POTWARNING;
|
||||
const pm_char STR_PREFLIGHT[] PROGMEM = TR_PREFLIGHT;
|
||||
const pm_char STR_CHECKLIST[] PROGMEM = TR_CHECKLIST;
|
||||
const pm_char STR_UART3MODE[] PROGMEM = TR_UART3MODE;
|
||||
const pm_char STR_THROTTLE_LABEL[] PROGMEM = TR_THROTTLE_LABEL;
|
||||
const pm_char STR_SCRIPT[] PROGMEM = TR_SCRIPT;
|
||||
const pm_char STR_INPUTS[] PROGMEM = TR_INPUTS;
|
||||
const pm_char STR_OUTPUTS[] PROGMEM = TR_OUTPUTS;
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
|
|
@ -131,54 +131,58 @@ extern const pm_char STR_OPEN9X[];
|
|||
#define OFS_VTELEMUNIT (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS))
|
||||
#define OFS_VALARM (OFS_VTELEMUNIT + sizeof(TR_VTELEMUNIT))
|
||||
#endif
|
||||
#define OFS_VALARMFN (OFS_VALARM + sizeof(TR_VALARM))
|
||||
#define OFS_VTELPROTO (OFS_VALARMFN + sizeof(TR_VALARMFN))
|
||||
#define OFS_GPSFORMAT (OFS_VTELPROTO + sizeof(TR_VTELPROTO))
|
||||
#define OFS_VOLTSRC (OFS_GPSFORMAT + sizeof(TR_GPSFORMAT))
|
||||
#define OFS_VARIOSRC (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
|
||||
#define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC))
|
||||
#define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VSCREEN))
|
||||
#define OFS_VALARMFN (OFS_VALARM + sizeof(TR_VALARM))
|
||||
#define OFS_VTELPROTO (OFS_VALARMFN + sizeof(TR_VALARMFN))
|
||||
#define OFS_GPSFORMAT (OFS_VTELPROTO + sizeof(TR_VTELPROTO))
|
||||
#define OFS_VOLTSRC (OFS_GPSFORMAT + sizeof(TR_GPSFORMAT))
|
||||
#define OFS_VARIOSRC (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
|
||||
#define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC))
|
||||
#define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VSCREEN))
|
||||
#else
|
||||
#define OFS_VTEMPLATES (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS))
|
||||
#define OFS_VTEMPLATES (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS))
|
||||
#endif
|
||||
#if defined(TEMPLATES)
|
||||
#define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES))
|
||||
#define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES))
|
||||
#else
|
||||
#define OFS_VSWASHTYPE (OFS_VTEMPLATES)
|
||||
#define OFS_VSWASHTYPE (OFS_VTEMPLATES)
|
||||
#endif
|
||||
#if defined(HELI)
|
||||
#define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE))
|
||||
#define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE))
|
||||
#else
|
||||
#define OFS_VKEYS (OFS_VSWASHTYPE)
|
||||
#define OFS_VKEYS (OFS_VSWASHTYPE)
|
||||
#endif
|
||||
#define OFS_VSWITCHES (OFS_VKEYS + sizeof(TR_VKEYS))
|
||||
#define OFS_VSRCRAW (OFS_VSWITCHES + sizeof(TR_VSWITCHES))
|
||||
#define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW))
|
||||
#define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES))
|
||||
#define OFS_VSWITCHES (OFS_VKEYS + sizeof(TR_VKEYS))
|
||||
#define OFS_VSRCRAW (OFS_VSWITCHES + sizeof(TR_VSWITCHES))
|
||||
#define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW))
|
||||
#define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES))
|
||||
#if defined(CPUM2560) || defined(CPUARM)
|
||||
#define OFS_VLCD (OFS_DATETIME + sizeof(TR_DATETIME))
|
||||
#define OFS_VLCD (OFS_DATETIME + sizeof(TR_DATETIME))
|
||||
#else
|
||||
#define OFS_VLCD (OFS_DATETIME)
|
||||
#define OFS_VLCD (OFS_DATETIME)
|
||||
#endif
|
||||
#if defined(CPUARM)
|
||||
#define OFS_VUNITSSYSTEM (OFS_VLCD + sizeof(TR_VLCD))
|
||||
#define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM))
|
||||
#define OFS_COUNTRYCODES (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN))
|
||||
#define OFS_VUNITSSYSTEM (OFS_VLCD + sizeof(TR_VLCD))
|
||||
#define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM))
|
||||
#define OFS_COUNTRYCODES (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN))
|
||||
#else
|
||||
#define OFS_COUNTRYCODES (OFS_VLCD)
|
||||
#define OFS_COUNTRYCODES (OFS_VLCD)
|
||||
#endif
|
||||
#if defined(PXX)
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
|
||||
#else
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES)
|
||||
#define OFS_VFAILSAFE (OFS_COUNTRYCODES)
|
||||
#endif
|
||||
#if defined(PXX)
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE))
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE))
|
||||
#else
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE)
|
||||
#define OFS_VTRAINERMODES (OFS_VFAILSAFE)
|
||||
#endif
|
||||
#if defined(PCBTARANIS)
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES))
|
||||
#define OFS_TARANIS_PROTOCOLS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES))
|
||||
#define OFS_XJT_PROTOCOLS (OFS_TARANIS_PROTOCOLS + sizeof(TR_TARANIS_PROTOCOLS))
|
||||
#define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS))
|
||||
#define OFS_CURVE_TYPES (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
|
||||
#define OFS_MAVLINK_BAUDS (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
|
||||
#else
|
||||
#define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES)
|
||||
#endif
|
||||
|
@ -187,7 +191,7 @@ extern const pm_char STR_OPEN9X[];
|
|||
#define OFS_MAVLINK_AP_MODES (OFS_MAVLINK_AC_MODES + sizeof(TR_MAVLINK_AC_MODES))
|
||||
#define OFS_SPARE (OFS_MAVLINK_AP_MODES + sizeof(TR_MAVLINK_AP_MODES))
|
||||
#else
|
||||
#define OFS_SPARE (OFS_MAVLINK_BAUDS)
|
||||
#define OFS_SPARE (OFS_MAVLINK_BAUDS)
|
||||
#endif
|
||||
|
||||
#define STR_OFFON (STR_OPEN9X + OFS_OFFON)
|
||||
|
@ -271,11 +275,15 @@ extern const pm_char STR_OPEN9X[];
|
|||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES)
|
||||
#define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES)
|
||||
#define STR_TARANIS_PROTOCOLS (STR_OPEN9X + OFS_TARANIS_PROTOCOLS)
|
||||
#define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS)
|
||||
#define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS)
|
||||
#define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
|
||||
#endif
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS)
|
||||
#define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS)
|
||||
#define STR_MAVLINK_AC_MODES (STR_OPEN9X + OFS_MAVLINK_AC_MODES)
|
||||
#define STR_MAVLINK_AP_MODES (STR_OPEN9X + OFS_MAVLINK_AP_MODES)
|
||||
#endif
|
||||
|
@ -386,6 +394,9 @@ extern const pm_char STR_SWITCHWARNING[];
|
|||
extern const pm_char STR_TIMEZONE[];
|
||||
extern const pm_char STR_GPSCOORD[];
|
||||
extern const pm_char STR_VARIO[];
|
||||
extern const pm_char STR_PITCH_AT_ZERO[];
|
||||
extern const pm_char STR_PITCH_AT_MAX[];
|
||||
extern const pm_char STR_REPEAT_AT_ZERO[];
|
||||
extern const pm_char STR_RXCHANNELORD[];
|
||||
extern const pm_char STR_SLAVE[];
|
||||
extern const pm_char STR_MODESRC[];
|
||||
|
@ -549,6 +560,7 @@ extern const pm_char STR_RESET_BTN[];
|
|||
|
||||
extern const pm_char STR_WARNING[];
|
||||
extern const pm_char STR_EEPROMWARN[];
|
||||
extern const pm_char STR_EEPROM_CONVERTING[];
|
||||
extern const pm_char STR_THROTTLEWARN[];
|
||||
extern const pm_char STR_ALARMSWARN[];
|
||||
extern const pm_char STR_SWITCHWARN[];
|
||||
|
@ -665,7 +677,11 @@ extern const pm_char STR_VIEW_TEXT[];
|
|||
extern const pm_char STR_MIRROR[];
|
||||
extern const pm_char STR_CLEAR[];
|
||||
extern const pm_char STR_RESET[];
|
||||
extern const pm_char STR_COPY_TRIMS_TO_OFFSET[];
|
||||
extern const pm_char STR_COUNT[];
|
||||
extern const pm_char STR_PT[];
|
||||
extern const pm_char STR_PTS[];
|
||||
extern const pm_char STR_SMOOTH[];
|
||||
extern const pm_char STR_COPY_TRIMS_TO_OFS[];
|
||||
extern const pm_char STR_TOP_BAR[];
|
||||
extern const pm_char STR_ALTITUDE[];
|
||||
extern const pm_char STR_SCALE[];
|
||||
|
@ -676,6 +692,9 @@ extern const pm_char STR_VIEW_TEXT[];
|
|||
extern const pm_char STR_CHECKLIST[];
|
||||
extern const pm_char STR_UART3MODE[];
|
||||
extern const pm_char STR_THROTTLE_LABEL[];
|
||||
extern const pm_char STR_SCRIPT[];
|
||||
extern const pm_char STR_INPUTS[];
|
||||
extern const pm_char STR_OUTPUTS[];
|
||||
#endif
|
||||
|
||||
#if MENUS_LOCK == 1
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\010")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika\0""Japonsko""Evropa\0 ")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC "\007"
|
||||
#define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "Tichý\0""Zvuk\0 ""Hlas\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "SVPK123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "SVPK12LR"
|
||||
#define TR_RETA123 "SVPK123LR"
|
||||
#else
|
||||
#define TR_RETA123 "SVPK123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[rezerva]\0 "
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Hlasitost\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Hlasitost\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -307,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -436,18 +458,18 @@
|
|||
#define TR_MIXNAME "Jméno"
|
||||
#define TR_INPUTNAME "Jméno"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_EXPONAME "Jméno"
|
||||
#define TR_EXPONAME "Poznámka"
|
||||
#else
|
||||
#define TR_EXPONAME "Jméno"
|
||||
#endif
|
||||
#define TR_BITMAP "Obrázek"
|
||||
#define TR_TIMER "Stopky "
|
||||
#define TR_ELIMITS TR("Limit+25%", "Kanál +/- 125%")
|
||||
#define TR_ETRIMS TR("širšíTrim", "Široký trim")
|
||||
#define TR_TRIMINC TR("KrokTrimu", "Krok trimu")
|
||||
#define TR_TTRACE TR("StopaPlyn", INDENT "Stopař plynu")
|
||||
#define TR_TTRIM TR("TrimPlynu", INDENT "Trim-volnoběh")
|
||||
#define TR_BEEPCTR "\221\222 Středy"
|
||||
#define TR_ELIMITS TR("Limit +25%", "Kanál +/- 125%")
|
||||
#define TR_ETRIMS TR("širší Trim", "Široký trim")
|
||||
#define TR_TRIMINC TR("Krok Trimu", "Krok trimu")
|
||||
#define TR_TTRACE TR("TH stopek", INDENT "Stopa TH stopek")
|
||||
#define TR_TTRIM TR("TrimPlynVol.", INDENT "Trim jen volnoběh")
|
||||
#define TR_BEEPCTR "Středy \221\222"
|
||||
#define TR_PROTO INDENT"Protokol"
|
||||
#define TR_PPMFRAME "PPM frame"
|
||||
#define TR_MS "ms"
|
||||
|
@ -482,7 +504,7 @@
|
|||
#define TR_MIXWARNING "Varování"
|
||||
#define TR_OFF "VYP"
|
||||
#define TR_MULTPX TR("Mat.operace", "Operace")
|
||||
#define TR_DELAYDOWN TR("Zpoždění Vyp", "Zdržet(-)")
|
||||
#define TR_DELAYDOWN TR("Zpoždění Vyp", "Zdržet(x)")
|
||||
#define TR_DELAYUP TR("Zpoždění Zap", "Zdržet(\43)")
|
||||
#define TR_SLOWDOWN TR("Zpomalení(-)", "Zpomal(\177)")
|
||||
#define TR_SLOWUP TR("Zpomalení(+)", "Zpomal(\176)")
|
||||
|
@ -582,7 +604,7 @@
|
|||
#define TR_MENUHELISETUP "HELI"
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_MENUINPUTS "FILTRY VSTUPU"
|
||||
#define TR_MENUINPUTS "VSTUPY"
|
||||
#define TR_MENULIMITS "SERVA"
|
||||
#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ...
|
||||
#define TR_MENUINPUTS "DR/EXPO"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "LOG. SPÍNAč"
|
||||
#define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE"
|
||||
#define TR_MENUCUSTOMFUNC "FUNKCE"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIE"
|
||||
#define TR_MENUTEMPLATES "ŠABLONY"
|
||||
#define TR_MENUSTAT "STATISTIKA"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Zem. délka"
|
||||
#define TR_GPSCOORD "GPS souřadnice"
|
||||
#define TR_VARIO "Vario"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "VYPÍNÁNí.."
|
||||
#define TR_BATT_CALIB "Kalib:Baterie"
|
||||
#define TR_CURRENT_CALIB " +=\006Proud"
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Nekompatibilní"
|
||||
#define TR_WARNING "KONTROLA"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "PLYNU"
|
||||
#define TR_ALARMSWARN "ALARMU"
|
||||
#define TR_SWITCHWARN "POZICE"
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "žádný zvuk na SD"
|
||||
#define TR_NO_MODELS_ON_SD "žádný model na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "žádné obrázky na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Přehrát"
|
||||
#define TR_DELETE_FILE "Odstranit"
|
||||
#define TR_COPY_FILE "Kopírovat"
|
||||
#define TR_RENAME_FILE "Přejmenovat"
|
||||
#define TR_ASSIGN_BITMAP "Zvolit obrázek"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " odstraněn"
|
||||
#define TR_SD_INFO "Informace"
|
||||
#define TR_SD_FORMAT "Formát"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Datum"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR KANÁLU"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Vnitřní RF modul"
|
||||
#define TR_EXTERNALRF "Externí RF modul"
|
||||
#define TR_FAILSAFE "Mód Failsafe"
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Rozsah kanálů"
|
||||
#define TR_LOWALARM INDENT "Nízký Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritický Alarm"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Předletová kontrola"
|
||||
#define TR_CHECKLIST INDENT "Zobrazit poznámky"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Seriový port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -748,7 +795,7 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trimy ", " Přechod Zap ", " Přechod Vyp " }
|
||||
#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " }
|
||||
#define TR_LIMITS_HEADERS { " Jméno ", " Subtrim ", " Min ", " Max ", " Směr ", " Křivka ", " Střed PPM ", " Symetrické " }
|
||||
#define TR_CSW_HEADERS { " Funkce ", " Hodnota 1 ", " Hodnota 2 ", " Hodnota 2 ", " AND Spínač ", " Trvání ", " Zpoždění " }
|
||||
|
||||
|
@ -803,7 +850,7 @@
|
|||
#define TR_CHR_LONG 'l'
|
||||
#define TR_CHR_TOGGLE 't'
|
||||
#define TR_CHR_HOUR 'h'
|
||||
#define TR_CHR_INPUT 'F' // Values between A-I will work
|
||||
#define TR_CHR_INPUT 'I' // Values between A-I will work
|
||||
|
||||
#define TR_BEEP_VOLUME "Pípání"
|
||||
#define TR_WAV_VOLUME "Zvuky WAV"
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Horní lišta"
|
||||
#define TR_ALTITUDE INDENT "Výška"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Změny nejsou povoleny!"
|
||||
#define TR_UNLOCKED "Odemčeno"
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
#define LEN_OFFON "\003"
|
||||
#define TR_OFFON "AUS""EIN"
|
||||
|
@ -80,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006","\013")
|
||||
#define TR_VTRIMINC TR("Expo ""ExFein""Fein ""Mittel""Grob ","Exponential""Extra Fein ""Fein ""Mittel ""Grob ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "Kein\0 Pieps\0Stimme"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -95,7 +110,7 @@
|
|||
#define TR_RETA123 "SHGQ123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "SHGQ12LR"
|
||||
#define TR_RETA123 "SHGQ123LR"
|
||||
#else
|
||||
#define TR_RETA123 "SHGQ123"
|
||||
#endif
|
||||
|
@ -280,6 +295,11 @@
|
|||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
#define LENGTH_UNIT_METR "m\0 "
|
||||
#define SPEED_UNIT_METR "kmh"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
#define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ")
|
||||
|
@ -309,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "Kein\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "Kein\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -599,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "LOGIK SCHALTER"
|
||||
#define TR_MENULOGICALSWITCHES "LOGIK SCHALTER"
|
||||
#define TR_MENUCUSTOMFUNC "SPEZ. FUNKTIONEN"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIE"
|
||||
#define TR_MENUTEMPLATES "VORLAGEN"
|
||||
#define TR_MENUSTAT "STAT"
|
||||
|
@ -611,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Länge:"
|
||||
#define TR_GPSCOORD TR("Gps Koord.","GPS Koordinaten Format")
|
||||
#define TR_VARIO TR("Vario","----Variometer----")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "Herunterfahren"
|
||||
#define TR_BATT_CALIB "Akku. Kalib."
|
||||
#define TR_CURRENT_CALIB "Stromkalib."
|
||||
|
@ -628,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Nicht kompatibel"
|
||||
#define TR_WARNING "WARNUNG"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "GAS"
|
||||
#define TR_ALARMSWARN "ALARM"
|
||||
#define TR_SWITCHWARN "SCHALTER"
|
||||
|
@ -652,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "Keine Töne auf SD"
|
||||
#define TR_NO_MODELS_ON_SD "Keine Modelle auf SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "Keine Bitmaps auf SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Spielen"
|
||||
#define TR_DELETE_FILE "Löschen"
|
||||
#define TR_COPY_FILE "Kopieren"
|
||||
#define TR_RENAME_FILE "Umbenennen"
|
||||
#define TR_ASSIGN_BITMAP "Assign Bitmap"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " gelöscht"
|
||||
#define TR_SD_INFO "Information"
|
||||
#define TR_SD_FORMAT "Formattieren"
|
||||
|
@ -680,6 +708,8 @@
|
|||
#define TR_DATE "Datum:"
|
||||
#define TR_ROTARY_ENCODER "Drehgeber"
|
||||
#define TR_CHANNELS_MONITOR "Kanal Monitor"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "----Internes HF Modul----------"
|
||||
#define TR_EXTERNALRF "----Externes HF Modul----------"
|
||||
#define TR_FAILSAFE "Failsafe Mode"
|
||||
|
@ -717,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Ausgangs Kanäle"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritisch Alarm"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Speichern mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial Port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -814,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Info Zeile"
|
||||
#define TR_ALTITUDE INDENT "Höhe"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Veränderungen verboten!"
|
||||
#define TR_UNLOCKED "Entsperrt"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006", "\013")
|
||||
#define TR_VTRIMINC TR("Expo\0 ""ExFine""Fine\0 ""Medium""Coarse", "Exponential""Extra Fine\0""Fine\0 ""Medium\0 ""Coarse\0 ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "RETA12LR"
|
||||
#define TR_RETA123 "RETA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123"
|
||||
#endif
|
||||
|
@ -503,7 +515,7 @@
|
|||
#define TR_RANGE INDENT "Range"
|
||||
#define TR_BAR "Bar"
|
||||
#define TR_ALARM INDENT "Alarm"
|
||||
#define TR_USRDATA "UsrData"
|
||||
#define TR_USRDATA TR("UsrData","User Data")
|
||||
#define TR_BLADES INDENT "Blades"
|
||||
#define TR_SCREEN "Screen "
|
||||
#define TR_SOUND_LABEL "Sound"
|
||||
|
@ -584,7 +596,7 @@
|
|||
#define TR_MENUDIAG TR("SWITCHES","SWITCH TEST")
|
||||
#define TR_MENUANA TR("ANAS","ANALOG INPUTS")
|
||||
#define TR_MENUCALIBRATION "CALIBRATION"
|
||||
#define TR_TRIMS2OFFSETS "\006Trims => Offsets"
|
||||
#define TR_TRIMS2OFFSETS "\006Trims => Subtrims"
|
||||
#define TR_MENUMODELSEL TR("MODELSEL","MODEL SELECTION")
|
||||
#define TR_MENUSETUP TR("SETUP","MODEL SETUP")
|
||||
#define TR_MENUFLIGHTPHASE "FLIGHT MODE"
|
||||
|
@ -606,7 +618,9 @@
|
|||
#define TR_MENUCURVE "CURVE"
|
||||
#define TR_MENULOGICALSWITCH "LOGICAL SWITCH"
|
||||
#define TR_MENULOGICALSWITCHES "LOGICAL SWITCHES"
|
||||
#define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS"
|
||||
#define TR_MENUCUSTOMFUNC "SWITCH ASSIGNMENT"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRY"
|
||||
#define TR_MENUTEMPLATES "TEMPLATES"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
|
@ -619,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format")
|
||||
#define TR_VARIO TR("Vario", "Variometer")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
|
@ -636,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatible"
|
||||
#define TR_WARNING "WARNING"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "Converting EEPROM"
|
||||
#define TR_THROTTLEWARN "THROTTLE"
|
||||
#define TR_ALARMSWARN "ALARMS"
|
||||
#define TR_SWITCHWARN TR("SWITCH","CONTROL")
|
||||
|
@ -660,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "No Sounds on SD"
|
||||
#define TR_NO_MODELS_ON_SD "No Models on SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Play"
|
||||
#define TR_DELETE_FILE "Delete"
|
||||
#define TR_COPY_FILE "Copy"
|
||||
#define TR_RENAME_FILE "Rename"
|
||||
#define TR_ASSIGN_BITMAP "Assign Bitmap"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " removed"
|
||||
#define TR_SD_INFO "Information"
|
||||
#define TR_SD_FORMAT "Format"
|
||||
|
@ -688,6 +708,8 @@
|
|||
#define TR_DATE "Date"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNEL MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Internal RF"
|
||||
#define TR_EXTERNALRF "External RF"
|
||||
#define TR_FAILSAFE INDENT "Failsafe mode"
|
||||
|
@ -725,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Critical Alarm"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trim To Subtrim"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -822,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications forbidden!"
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006", "\013")
|
||||
#define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voz\0"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "RETA12LR"
|
||||
#define TR_RETA123 "RETA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Avs1""Avs2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Aviso1""Aviso2""Cheep ""Ratata""Tick ""Sirena""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Hora"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "AJTE.INTERUP."
|
||||
#define TR_MENULOGICALSWITCHES "AJTE.INTERUPTS."
|
||||
#define TR_MENUCUSTOMFUNC "AJTE. FUNCIONES"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "PLANTILLAS"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitud"
|
||||
#define TR_GPSCOORD TR("GPS Coords", "GPS formato coordenadas")
|
||||
#define TR_VARIO TR("Vario", "Variometro")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "APAGANDO"
|
||||
#define TR_BATT_CALIB "Calib.bateria"
|
||||
#define TR_CURRENT_CALIB "Calib. actual"
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatible"
|
||||
#define TR_WARNING "AVISO"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "ACELERADOR"
|
||||
#define TR_ALARMSWARN "ALARMAS"
|
||||
#define TR_SWITCHWARN "INTERPTOR"
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "Sin sonidos en SD"
|
||||
#define TR_NO_MODELS_ON_SD "Sin Modelos en SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Play"
|
||||
#define TR_DELETE_FILE "Borrar"
|
||||
#define TR_COPY_FILE "Copiar"
|
||||
#define TR_RENAME_FILE "Renombrar"
|
||||
#define TR_ASSIGN_BITMAP "Asignar Imagen"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED "Borrado"
|
||||
#define TR_SD_INFO "Informacion"
|
||||
#define TR_SD_FORMAT "Formatear"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Fecha"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR CANALES"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Interna RF"
|
||||
#define TR_EXTERNALRF "Externa RF"
|
||||
#define TR_FAILSAFE INDENT"Modo sgdad."
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Gama de canales"
|
||||
#define TR_LOWALARM INDENT "Alarma baja"
|
||||
#define TR_CRITICALALARM INDENT "Alarma Critica"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Valor mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -748,7 +795,7 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Trims ", " Aparecer ", " Desparecer " }
|
||||
#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Aparecer ", " Desparecer " }
|
||||
#define TR_LIMITS_HEADERS { " Nombre ", " Compensacion", " Min ", " Max ", " Direccion ", " Curve ", " Centrado PPM ", " Simetrica " }
|
||||
#define TR_CSW_HEADERS { " Funcion ", " V1 ", " V2 ", " V2 ", " AND Interrup. ", " Duracion ", " Retardo " }
|
||||
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications forbidden!"
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerikk""Japani\0""Euroopp")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006", "\013")
|
||||
#define TR_VTRIMINC TR("Expo\0 ""EriHie""Hieno\0""Keski\0""Karkea", "Exponential""Eri Hieno\0 ""Hieno\0 ""Keski\0 ""Karkea\0 ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "RETA12LR"
|
||||
#define TR_RETA123 "RETA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "CUSTOM SWITCH"
|
||||
#define TR_MENULOGICALSWITCHES "CUSTOM SWITCHES"
|
||||
#define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRY"
|
||||
#define TR_MENUTEMPLATES "TEMPLATES"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format")
|
||||
#define TR_VARIO TR("Vario", "Variometer")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "SHUTTING DOWN"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatible"
|
||||
#define TR_WARNING "WARNING"
|
||||
#define TR_EEPROMWARN "FINSKA"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "THROTTLE"
|
||||
#define TR_ALARMSWARN "ALARMS"
|
||||
#define TR_SWITCHWARN TR("SWITCH","CONTROL")
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "No Sounds on SD"
|
||||
#define TR_NO_MODELS_ON_SD "No Models on SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Play"
|
||||
#define TR_DELETE_FILE "Delete"
|
||||
#define TR_COPY_FILE "Copy"
|
||||
#define TR_RENAME_FILE "Rename"
|
||||
#define TR_ASSIGN_BITMAP "Assign Bitmap"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " removed"
|
||||
#define TR_SD_INFO "Information"
|
||||
#define TR_SD_FORMAT "Format"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Date"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNEL MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Internal RF"
|
||||
#define TR_EXTERNALRF "External RF"
|
||||
#define TR_FAILSAFE INDENT "Failsafe mode"
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Critical Alarm"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Ylä palkki"
|
||||
#define TR_ALTITUDE INDENT "Korkeus"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Muutokset kielletty!"
|
||||
#define TR_UNLOCKED "Avattu"
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
* \0 -ends actual string
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
// NON ZERO TERMINATED STRINGS
|
||||
#define LEN_OFFON "\003"
|
||||
#define TR_OFFON "OFF""ON\0"
|
||||
|
@ -80,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\006")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006","\013")
|
||||
#define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\007"
|
||||
#define TR_VBEEPCOUNTDOWN "Silence""Bips\0 ""Voix\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Libre\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -95,7 +110,7 @@
|
|||
#define TR_RETA123 "DPGA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "DPGA12LR"
|
||||
#define TR_RETA123 "DPGA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "DPGA123"
|
||||
#endif
|
||||
|
@ -314,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -581,7 +596,7 @@
|
|||
#define TR_MENUDIAG TR("INTERS","TEST INTERRUPTEURS")
|
||||
#define TR_MENUANA TR("ANAS","ENTREES ANALOGIQUES")
|
||||
#define TR_MENUCALIBRATION "CALIBRATION"
|
||||
#define TR_TRIMS2OFFSETS "\006Trims => Offsets"
|
||||
#define TR_TRIMS2OFFSETS "\005Trims => Subtrims"
|
||||
#define TR_MENUMODELSEL "MODELES"
|
||||
#define TR_MENUSETUP TR("CONF. MODELE","CONFIGURATION")
|
||||
#define TR_MENUFLIGHTPHASE "PHASE DE VOL"
|
||||
|
@ -604,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "INTER LOG."
|
||||
#define TR_MENULOGICALSWITCHES TR("INTERS LOG.","INTERS LOGIQUES")
|
||||
#define TR_MENUCUSTOMFUNC TR("FONCTIONS SPEC.","FONCTIONS SPECIALES")
|
||||
#define TR_MENUCUSTOMSCRIPTS "SCRIPTS PERSOS"
|
||||
#define TR_MENUCUSTOMSCRIPT "SCRIPT PERSO"
|
||||
#define TR_MENUTELEMETRY "TELEMESURE"
|
||||
#define TR_MENUTEMPLATES "GABARITS"
|
||||
#define TR_MENUSTAT TR("STATS","STATISTIQUES")
|
||||
|
@ -616,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD TR("Coordonnées","Coordonnées GPS")
|
||||
#define TR_VARIO TR("Vario","Variomètre")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Tonalité au zéro"
|
||||
#define TR_PITCH_AT_MAX INDENT "Tonalité au max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Tonalité au zéro"
|
||||
#define TR_SHUTDOWN "ARRET EN COURS"
|
||||
#define TR_BATT_CALIB "Calib. Batterie"
|
||||
#define TR_CURRENT_CALIB "Calib. Courant"
|
||||
|
@ -633,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatible"
|
||||
#define TR_WARNING "ALERTE"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "Conversion EEPROM"
|
||||
#define TR_THROTTLEWARN "GAZ"
|
||||
#define TR_ALARMSWARN "SON"
|
||||
#define TR_SWITCHWARN TR("INTERS","CONTROLES")
|
||||
|
@ -657,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "Aucun son sur SD"
|
||||
#define TR_NO_MODELS_ON_SD "Aucun modèle SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "Aucun Script SD"
|
||||
#define TR_PLAY_FILE "Lire"
|
||||
#define TR_DELETE_FILE "Supprimer"
|
||||
#define TR_COPY_FILE "Copier"
|
||||
#define TR_RENAME_FILE "Renommer"
|
||||
#define TR_ASSIGN_BITMAP "Sélectionner image"
|
||||
#define TR_EXECUTE_FILE "Executer"
|
||||
#define TR_REMOVED " supprimé"
|
||||
#define TR_SD_INFO "Information"
|
||||
#define TR_SD_FORMAT "Formater"
|
||||
|
@ -685,6 +708,8 @@
|
|||
#define TR_DATE "Date"
|
||||
#define TR_ROTARY_ENCODER "Enc.Rot."
|
||||
#define TR_CHANNELS_MONITOR "MONITEUR CANAUX"
|
||||
#define TR_PATH_TOO_LONG "Chemin trop long"
|
||||
#define TR_VIEW_TEXT "Voir texte"
|
||||
#define TR_INTERNALRF "HF interne"
|
||||
#define TR_EXTERNALRF "HF externe"
|
||||
#define TR_FAILSAFE INDENT "Type failsafe"
|
||||
|
@ -698,7 +723,7 @@
|
|||
#define TR_COPY "Copier"
|
||||
#define TR_MOVE "Déplacer"
|
||||
#define TR_PASTE "Coller"
|
||||
#define TR_DELETE "Effacer"
|
||||
#define TR_DELETE "Supprimer"
|
||||
#define TR_INSERT "Insérer"
|
||||
#define TR_RESET_FLIGHT TR("Réinit. vol", "Réinitialiser vol")
|
||||
#define TR_RESET_TIMER1 TR("Réinit. Timer1", "Réinitialiser Timer1")
|
||||
|
@ -722,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Plage de canaux"
|
||||
#define TR_LOWALARM INDENT "Alarme basse"
|
||||
#define TR_CRITICALALARM INDENT "Alarme critique"
|
||||
#define TR_ENABLE_POPUP "Activer Popup"
|
||||
#define TR_DISABLE_POPUP "Désactiver Popup"
|
||||
#define TR_CURVE_PRESET "Courbe standard..."
|
||||
#define TR_PRESET "Pente"
|
||||
#define TR_MIRROR "Miroir"
|
||||
#define TR_CLEAR "Effacer"
|
||||
#define TR_RESET "Réinitialiser"
|
||||
#define TR_COUNT "Nb points"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Lissage"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Trim vers subtrim"
|
||||
#define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh", INDENT "Enregistrer mAh")
|
||||
#define TR_PREFLIGHT "Vérifications avant vol"
|
||||
#define TR_CHECKLIST INDENT "Afficher notes"
|
||||
#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS")
|
||||
#define TR_UART3MODE "Port série"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Entrées"
|
||||
#define TR_OUTPUTS "Sorties"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max"
|
||||
|
@ -810,14 +850,17 @@
|
|||
#define TR_CHR_LONG 'l'
|
||||
#define TR_CHR_TOGGLE 't'
|
||||
#define TR_CHR_HOUR 'h'
|
||||
#define TR_CHR_INPUT 'E' // Values between A-I will work
|
||||
#define TR_CHR_INPUT 'E' // Values between A-I will work
|
||||
|
||||
#define TR_BEEP_VOLUME "Beep Volume"
|
||||
#define TR_WAV_VOLUME "Wav Volume"
|
||||
#define TR_VARIO_VOLUME "Vario Volume"
|
||||
#define TR_BG_VOLUME "Bg Volume"
|
||||
#define TR_BEEP_VOLUME "Volume bips"
|
||||
#define TR_WAV_VOLUME "Volume audio"
|
||||
#define TR_VARIO_VOLUME "Volume vario"
|
||||
#define TR_BG_VOLUME "Volume musique"
|
||||
|
||||
#define TR_TOP_BAR "Barre titre"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Echelle"
|
||||
#define TR_VIEW_CHANNELS "Voir Voies"
|
||||
#define TR_VIEW_NOTES "Voir Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications désactivées!"
|
||||
#define TR_UNLOCKED "Déverrouillé"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC "\006"
|
||||
#define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "NienteSuoni\0Voce\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "RETA12LR"
|
||||
#define TR_RETA123 "RETA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -307,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "SWITCH PERSON."
|
||||
#define TR_MENULOGICALSWITCHES TR("SWITCH PERSON.","SWITCH PERSONALIZZATI")
|
||||
#define TR_MENUCUSTOMFUNC TR("FUNZ. PERSON.","FUNZIONI PERSONALIZZATE")
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "ESEMPI GUIDA"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitud."
|
||||
#define TR_GPSCOORD "Coord. GPS"
|
||||
#define TR_VARIO "Vario"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "ARRESTO.."
|
||||
#define TR_BATT_CALIB "Calibra batt."
|
||||
#define TR_CURRENT_CALIB "Calibra corr."
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompatibile"
|
||||
#define TR_WARNING "AVVISO"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "MOTORE"
|
||||
#define TR_ALARMSWARN "ALLARMI"
|
||||
#define TR_SWITCHWARN "SWITCH"
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "No Suoni su SD"
|
||||
#define TR_NO_MODELS_ON_SD "No Model. su SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "no Immag. su SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Suona"
|
||||
#define TR_DELETE_FILE "Cancella"
|
||||
#define TR_COPY_FILE "Copia"
|
||||
#define TR_RENAME_FILE "Rinomomina"
|
||||
#define TR_ASSIGN_BITMAP "Assegna Immagine"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED " rimosso"
|
||||
#define TR_SD_INFO "Informazioni"
|
||||
#define TR_SD_FORMAT "Format"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Data"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Modulo Interno"
|
||||
#define TR_EXTERNALRF "Modulo esterno"
|
||||
#define TR_FAILSAFE "Modo failsafe"
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Numero Canali"
|
||||
#define TR_LOWALARM INDENT "Allarme Basso"
|
||||
#define TR_CRITICALALARM INDENT "Allarme Critico"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -748,7 +795,7 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Nome ", " Switch ", " Trims ", " Fade In ", " Fade Out " }
|
||||
#define TR_PHASES_HEADERS { " Nome ", " Switch ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Fade In ", " Fade Out " }
|
||||
#define TR_LIMITS_HEADERS { " Nome ", " Offset ", " Min ", " Max ", " Direzione ", " Curve ", " Centro PPM ", " Simmetria " }
|
||||
#define TR_CSW_HEADERS { " Funzione ", " V1 ", " V2 ", " V2 ", " AND Switch ", " Durata ", " Ritardo " }
|
||||
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications forbidden!"
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Ameryka""Japonia""Europa\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC "\012"
|
||||
#define TR_VTRIMINC "Expo\0 ""B.Dokładny""Dokładny\0 ""Średni\0 ""Zgrubny\0 "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\007"
|
||||
#define TR_VBEEPCOUNTDOWN "Cichy\0 ""Pikanie""Dźwięki"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "KWGL123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "KWGL12LR"
|
||||
#define TR_RETA123 "KWGL123LR"
|
||||
#else
|
||||
#define TR_RETA123 "KWGL123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0 "
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset ""Set \0 " TR_ADJUST_GVAR "Głośność\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset ""Set \0 " TR_ADJUST_GVAR "Głośność\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Ost1""Ost2""Chee""Rata""Tik\0""Syre""Dzwo""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1\0""Beep2\0""Beep3\0""Ostrz1""Ostrz1""Cheep\0""Ratata""Tick\0 ""Syrena""Dzwone""SciFi\0""Robot\0""Chirp\0""Tada\0 ""Krytcz""AlmZeg")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Moc+""Acc\0""Time"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Moc+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -307,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "PRZEŁ. LOGICZNY"
|
||||
#define TR_MENULOGICALSWITCHES TR("PRZEŁ. LOG.", "PRZEŁ. LOGICZNE")
|
||||
#define TR_MENUCUSTOMFUNC "FUNKCJE SPECJALNE"
|
||||
#define TR_MENUCUSTOMSCRIPTS "WŁASNE SKRYPTY"
|
||||
#define TR_MENUCUSTOMSCRIPT "WŁASNY SKRYPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "SZABLONY"
|
||||
#define TR_MENUSTAT "STATYSTYKA"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Dł. geo."
|
||||
#define TR_GPSCOORD "Typ koordynat GPS"
|
||||
#define TR_VARIO "Wario"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "Wyłączanie.."
|
||||
#define TR_BATT_CALIB "Kalib:Baterii"
|
||||
#define TR_CURRENT_CALIB " +=\006Kalibracja prądu"
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Niekompatybilne"
|
||||
#define TR_WARNING "UWAGA"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "Konwersja EEPROM"
|
||||
#define TR_THROTTLEWARN "GAZ"
|
||||
#define TR_ALARMSWARN "ALARM"
|
||||
#define TR_SWITCHWARN "Przełącznik"
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "brak dźwięków na SD"
|
||||
#define TR_NO_MODELS_ON_SD "brak modelu na SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "brak obrazków na SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Odtwórz"
|
||||
#define TR_DELETE_FILE "Skasuj"
|
||||
#define TR_COPY_FILE "Kopiuj"
|
||||
#define TR_RENAME_FILE "Zmień nazwę"
|
||||
#define TR_ASSIGN_BITMAP "Wybierz obrazek"
|
||||
#define TR_EXECUTE_FILE "Wykonaj"
|
||||
#define TR_REMOVED " skasowane"
|
||||
#define TR_SD_INFO "Informacje"
|
||||
#define TR_SD_FORMAT "Formatuj"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Data"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW"
|
||||
#define TR_PATH_TOO_LONG "Ścieżka za długa"
|
||||
#define TR_VIEW_TEXT "Pokaż tekst"
|
||||
#define TR_INTERNALRF "Wewnętrzny moduł RF"
|
||||
#define TR_EXTERNALRF "Zewnętrzny moduł RF"
|
||||
#define TR_FAILSAFE "Tryb Failsafe"
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Zakres kanału"
|
||||
#define TR_LOWALARM INDENT "Alarm niski"
|
||||
#define TR_CRITICALALARM INDENT "Alarm krytyczny"
|
||||
#define TR_ENABLE_POPUP "Aktywuj Popup"
|
||||
#define TR_DISABLE_POPUP "Wyłącz Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Lutro"
|
||||
#define TR_CLEAR "Wyczyść"
|
||||
#define TR_RESET "Resetuj"
|
||||
#define TR_COUNT "Licz"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Gładka"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Skopiuj Trymery Do Offsetu"
|
||||
#define TR_PERSISTENT_MAH INDENT "Zapisz mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_PREFLIGHT "Lista Startowa"
|
||||
#define TR_CHECKLIST INDENT "Pokaż Listę Startową"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Port szreg."
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Maks RSSI"
|
||||
|
@ -748,7 +795,7 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Nazwa ", " Przełącznik ", " Trymery ", " Pojawianie się ", " Zanikanie " }
|
||||
#define TR_PHASES_HEADERS { " Nazwa ", " Przełącznik ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Pojawianie się ", " Zanikanie " }
|
||||
#define TR_LIMITS_HEADERS { " Nazwa ", " Subtrim ", " Min ", " Max ", " Kierunek ", " Krzywa ", " Środek PPM ", " Tryb subtrim " }
|
||||
#define TR_CSW_HEADERS { " Funkcja ", " Param. 1 ", " Param 2 ", " Param 2 ", " AND Przełącznik ", " Czas trwania ", " Opóźnienie " }
|
||||
|
||||
|
@ -799,8 +846,8 @@
|
|||
#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)"
|
||||
#define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)"
|
||||
|
||||
#define TR_CHR_SHORT 's'
|
||||
#define TR_CHR_LONG 'l'
|
||||
#define TR_CHR_SHORT 'k'
|
||||
#define TR_CHR_LONG 'd'
|
||||
#define TR_CHR_TOGGLE 't'
|
||||
#define TR_CHR_HOUR 'h'
|
||||
#define TR_CHR_INPUT 'I' // Values between A-I will work
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Górny Pasek"
|
||||
#define TR_ALTITUDE INDENT "Wysokość"
|
||||
#define TR_SCALE "Skala"
|
||||
#define TR_VIEW_CHANNELS "Pokaż Kanały"
|
||||
#define TR_VIEW_NOTES "Pokaż Notki"
|
||||
#define TR_MODS_FORBIDDEN "Modyfikacje zabronione!"
|
||||
#define TR_UNLOCKED "Odblokowane"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC "\006"
|
||||
#define TR_VTRIMINC "Expo ""ExFino""Fino ""Medio ""Largo "
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0"
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "LPMA123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "LPMA12LR"
|
||||
#define TR_RETA123 "LPMA123LR"
|
||||
#else
|
||||
#define TR_RETA123 "LPMA123"
|
||||
#endif
|
||||
|
@ -234,8 +246,10 @@
|
|||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0 "
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST
|
||||
#else
|
||||
|
@ -264,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Avis1 ""Avis2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VVel""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VVel""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Hora"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -307,7 +329,7 @@
|
|||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
|
@ -597,6 +619,8 @@
|
|||
#define TR_MENULOGICALSWITCH "CHAVE ESPECIAL"
|
||||
#define TR_MENULOGICALSWITCHES "CHAVES ESPECIAIS"
|
||||
#define TR_MENUCUSTOMFUNC "FUNCAO ESPECIAL"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "MODELOS"
|
||||
#define TR_MENUSTAT "REGISTROS"
|
||||
|
@ -609,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD "Gps Coords"
|
||||
#define TR_VARIO "Vario"
|
||||
#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero"
|
||||
#define TR_PITCH_AT_MAX INDENT "Pitch at Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero"
|
||||
#define TR_SHUTDOWN "DESLIGANDOo"
|
||||
#define TR_BATT_CALIB "CALIBRAR BATT"
|
||||
#define TR_CURRENT_CALIB "Corrente Calib"
|
||||
|
@ -626,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Incompativel"
|
||||
#define TR_WARNING "AVISO"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Converting"
|
||||
#define TR_THROTTLEWARN "ACELERAD"
|
||||
#define TR_ALARMSWARN "ALARMES"
|
||||
#define TR_SWITCHWARN "CHAVES"
|
||||
|
@ -650,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "Sem Som no SD"
|
||||
#define TR_NO_MODELS_ON_SD "Sem Modelo no SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Play"
|
||||
#define TR_DELETE_FILE "Apagar"
|
||||
#define TR_COPY_FILE "Copiar"
|
||||
#define TR_RENAME_FILE "Renomear"
|
||||
#define TR_ASSIGN_BITMAP "Assign Bitmap"
|
||||
#define TR_EXECUTE_FILE "Execute"
|
||||
#define TR_REMOVED "Remover"
|
||||
#define TR_SD_INFO "Dados SD"
|
||||
#define TR_SD_FORMAT "Formatar"
|
||||
|
@ -678,6 +708,8 @@
|
|||
#define TR_DATE "Data"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
|
||||
#define TR_PATH_TOO_LONG "Path too long"
|
||||
#define TR_VIEW_TEXT "View text"
|
||||
#define TR_INTERNALRF "Internal RF"
|
||||
#define TR_EXTERNALRF "External RF"
|
||||
#define TR_FAILSAFE "Failsafe mode"
|
||||
|
@ -715,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Channel Range"
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Critical Alarm"
|
||||
#define TR_ENABLE_POPUP "Enable Popup"
|
||||
#define TR_DISABLE_POPUP "Disable Popup"
|
||||
#define TR_CURVE_PRESET "Preset..."
|
||||
#define TR_PRESET "Preset"
|
||||
#define TR_MIRROR "Mirror"
|
||||
#define TR_CLEAR "Clear"
|
||||
#define TR_RESET "Reset"
|
||||
#define TR_COUNT "Count"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Smooth"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_PREFLIGHT "Preflight Checks"
|
||||
#define TR_CHECKLIST INDENT "Display Checklist"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serial port"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -748,7 +795,7 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Name ", " Switch ", " Trims ", " Fade In ", " Fade Out " }
|
||||
#define TR_PHASES_HEADERS { " Name ", " Switch ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Fade In ", " Fade Out " }
|
||||
#define TR_LIMITS_HEADERS { " Name ", " Offset ", " Min ", " Max ", " Direction ", " Curve ", " PPM Center ", " Symmetrical " }
|
||||
#define TR_CSW_HEADERS { " Function ", " V1 ", " V2 ", " V2 ", " AND Switch ", " Duration ", " Delay " }
|
||||
|
||||
|
@ -812,5 +859,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Altitude"
|
||||
#define TR_SCALE "Scale"
|
||||
#define TR_VIEW_CHANNELS "View Channels"
|
||||
#define TR_VIEW_NOTES "View Notes"
|
||||
#define TR_MODS_FORBIDDEN "Modifications forbidden!"
|
||||
#define TR_UNLOCKED "Unlocked"
|
||||
|
|
|
@ -83,12 +83,24 @@
|
|||
#define LEN_COUNTRYCODES TR("\002", "\007")
|
||||
#define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0")
|
||||
|
||||
#define LEN_TARANIS_PROTOCOLS "\004"
|
||||
#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2"
|
||||
|
||||
#define LEN_XJT_PROTOCOLS "\004"
|
||||
#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12"
|
||||
|
||||
#define LEN_DSM_PROTOCOLS "\004"
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_VTRIMINC TR("\006","\014")
|
||||
#define TR_VTRIMINC TR("Expo\0 ""xFin\0 ""Fin\0 ""Medium""Grov\0 ","Exponentiell""Extra Fin\0 ""Fin\0 ""Medium\0 ""Grov\0 ")
|
||||
|
||||
#define LEN_VBEEPCOUNTDOWN "\006"
|
||||
#define TR_VBEEPCOUNTDOWN "Tyst\0 Pip\0 Röst\0 "
|
||||
|
||||
#define LEN_CURVE_TYPES "\010"
|
||||
#define TR_CURVE_TYPES "Standard""Custom\0"
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
|
@ -98,7 +110,7 @@
|
|||
#define TR_RETA123 "RHGS123ab"
|
||||
#endif
|
||||
#elif defined(PCBTARANIS)
|
||||
#define TR_RETA123 "RHGS12HV"
|
||||
#define TR_RETA123 "RHGS123HV"
|
||||
#else
|
||||
#define TR_RETA123 "RHGS123"
|
||||
#endif
|
||||
|
@ -152,15 +164,15 @@
|
|||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_CSWTIMER "Timer"
|
||||
#define TR_CSWSTICKY "Stcky"
|
||||
#define TR_CSWRANGE "Range"
|
||||
#define TR_CSWSTAY "Edge\0"
|
||||
#define TR_CSWSTICKY "Seg\0 "
|
||||
#define TR_CSWRANGE "Vidd\0"
|
||||
#define TR_CSWSTAY "Kant\0"
|
||||
#else
|
||||
#define TR_CSWTIMER "Tim\0 "
|
||||
#define TR_CSWSTICKY "Glue\0"
|
||||
#define TR_CSWSTICKY "Seg\0 "
|
||||
#if defined(CPUARM)
|
||||
#define TR_CSWRANGE "Rnge\0"
|
||||
#define TR_CSWSTAY "Edge\0"
|
||||
#define TR_CSWRANGE "Vidd\0"
|
||||
#define TR_CSWSTAY "Kant\0"
|
||||
#else
|
||||
#define TR_CSWRANGE
|
||||
#define TR_CSWSTAY
|
||||
|
@ -266,14 +278,22 @@
|
|||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TELEM_RESERVE "[--]"
|
||||
#define TR_SWR "SWR\0"
|
||||
#define TR_RX_BATT "RxBt"
|
||||
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||
#else
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Höjd""Varv""Tank""T1\0 ""T2\0 ""Fart""Avst""GHjd""Batt""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VFrt""ASpd""dTE\0""A1-\0""A2-\0""Hjd-""Hjd+""Rpm+""T1+\0""T2+\0""Frt+""Avs+""Cur+""Pwr+""Acc\0""Tid\0"
|
||||
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Höjd""Varv""Tank""T1\0 ""T2\0 ""Fart""Avst""GHjd""Batt""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VFrt""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Hjd-""Hjd+""Rpm+""T1+\0""T2+\0""Frt+""Avs+""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Tid\0"
|
||||
|
||||
#define LENGTH_UNIT_IMP "ft\0"
|
||||
#define SPEED_UNIT_IMP "mph"
|
||||
|
@ -401,7 +421,7 @@
|
|||
#define TR_VTRAINERMODES "Lärare""Elev\0."
|
||||
|
||||
#define LEN_VFAILSAFE "\011"
|
||||
#define TR_VFAILSAFE "Håll\0 ""Special\0 ""Pulsfritt"
|
||||
#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define LEN_MAVLINK_BAUDS "\006"
|
||||
|
@ -436,9 +456,9 @@
|
|||
#define TR_MODELNAME "Modellnamn"
|
||||
#define TR_PHASENAME "Lägesnamn "
|
||||
#define TR_MIXNAME "Mixnamn "
|
||||
#define TR_INPUTNAME "Filternamn"
|
||||
#define TR_INPUTNAME "Inputnamn"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_EXPONAME "Linjenamn"
|
||||
#define TR_EXPONAME "Radnamn"
|
||||
#else
|
||||
#define TR_EXPONAME "Exponamn"
|
||||
#endif
|
||||
|
@ -480,7 +500,7 @@
|
|||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define TR_CURVE "Kurva"
|
||||
#define TR_FLMODE TR("Läge","Lägen")
|
||||
#define TR_FLMODE TR("Läge","Flyglägen")
|
||||
#define TR_MIXWARNING "Varning"
|
||||
#define TR_OFF "Av "
|
||||
#define TR_MULTPX "Multpx"
|
||||
|
@ -514,7 +534,7 @@
|
|||
#define TR_THROTTLE_LABEL "Gas"
|
||||
#define TR_THROTTLEREVERSE TR("Inv.Gas", INDENT "Inverterad Gas")
|
||||
#define TR_MINUTEBEEP INDENT"Minutpip"
|
||||
#define TR_BEEPCOUNTDOWN INDENT"Räkna ned"
|
||||
#define TR_BEEPCOUNTDOWN INDENT"Nedräkning"
|
||||
#define TR_PERSISTENT TR("Jämt på ",INDENT"Alltid På")
|
||||
#define TR_BACKLIGHT_LABEL "Belysning"
|
||||
#define TR_BLDELAY INDENT"Av efter"
|
||||
|
@ -539,7 +559,7 @@
|
|||
#define TR_TXnRX "Tx:\0Rx:"
|
||||
#define OFS_RX 4
|
||||
#define TR_ACCEL "Acc:"
|
||||
#define TR_NODATA CENTER "NO DATA"
|
||||
#define TR_NODATA CENTER "DATA SAKNAS"
|
||||
#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%"
|
||||
#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us"
|
||||
#define STR_US (STR_TMR1LATMAXUS+13)
|
||||
|
@ -585,13 +605,13 @@
|
|||
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_MENUINPUTS "INPUT"
|
||||
#define TR_MENULIMITS "GRÄNSER"
|
||||
#define TR_MENULIMITS "SERVON"
|
||||
#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ...
|
||||
#define TR_MENUINPUTS "SPAKAR"
|
||||
#define TR_MENULIMITS "GRÄNSER"
|
||||
#define TR_MENULIMITS "SERVON"
|
||||
#else
|
||||
#define TR_MENUINPUTS TR("DR/EXPO","DUALRATES/EXPO")
|
||||
#define TR_MENULIMITS "GRÄNSER"
|
||||
#define TR_MENULIMITS "SERVON"
|
||||
#endif
|
||||
|
||||
#define TR_MENUCURVES "KURVOR"
|
||||
|
@ -599,11 +619,13 @@
|
|||
#define TR_MENULOGICALSWITCH "LOGISK BRYTARE"
|
||||
#define TR_MENULOGICALSWITCHES "LOGISKA BRYTARE"
|
||||
#define TR_MENUCUSTOMFUNC "BRYTARFUNKTIONER"
|
||||
#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS"
|
||||
#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT"
|
||||
#define TR_MENUTELEMETRY "TELEMETRI"
|
||||
#define TR_MENUTEMPLATES "MALLAR"
|
||||
#define TR_MENUSTAT "STATISTIK"
|
||||
#define TR_MENUDEBUG "DEBUG"
|
||||
#define TR_RXNUM "RxNum"
|
||||
#define TR_RXNUM TR("RxNum", "RxInställningar")
|
||||
#define TR_SYNCMENU "Synk [MENU]"
|
||||
#define TR_LIMIT INDENT"Nivå"
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
|
@ -611,6 +633,9 @@
|
|||
#define TR_LONGITUDE "Längdgrad"
|
||||
#define TR_GPSCOORD TR("GPS-Koordinater", "GPS-koordinatsystem")
|
||||
#define TR_VARIO TR("Vario", "Variometer")
|
||||
#define TR_PITCH_AT_ZERO INDENT "Ton vid Noll"
|
||||
#define TR_PITCH_AT_MAX INDENT "Ton vid Max"
|
||||
#define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll"
|
||||
#define TR_SHUTDOWN "STäNGER AV"
|
||||
#define TR_BATT_CALIB "Kalib. Batteri"
|
||||
#define TR_CURRENT_CALIB "Kalib. Ström"
|
||||
|
@ -628,6 +653,7 @@
|
|||
#define TR_INCOMPATIBLE "Inkompatibel"
|
||||
#define TR_WARNING "VARNING"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_EEPROM_CONVERTING "EEPROM Konvertering"
|
||||
#define TR_THROTTLEWARN "GAS"
|
||||
#define TR_ALARMSWARN "ALARM"
|
||||
#define TR_SWITCHWARN "BRYTARE"
|
||||
|
@ -652,11 +678,13 @@
|
|||
#define TR_NO_SOUNDS_ON_SD "Inga ljud i SD"
|
||||
#define TR_NO_MODELS_ON_SD "Ingen modell i SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "Ikoner saknas på SD"
|
||||
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
|
||||
#define TR_PLAY_FILE "Spela"
|
||||
#define TR_DELETE_FILE "Radera"
|
||||
#define TR_COPY_FILE "Kopia"
|
||||
#define TR_RENAME_FILE "Byt namn"
|
||||
#define TR_ASSIGN_BITMAP "Tilldela ikon"
|
||||
#define TR_EXECUTE_FILE "Utför"
|
||||
#define TR_REMOVED " raderad"
|
||||
#define TR_SD_INFO "Information"
|
||||
#define TR_SD_FORMAT "Format"
|
||||
|
@ -680,12 +708,14 @@
|
|||
#define TR_DATE "Datum"
|
||||
#define TR_ROTARY_ENCODER "R.Enks"
|
||||
#define TR_CHANNELS_MONITOR "Kanalöversikt"
|
||||
#define TR_INTERNALRF "Intern RF"
|
||||
#define TR_EXTERNALRF "Extern RF"
|
||||
#define TR_FAILSAFE "Failsafe-läge"
|
||||
#define TR_PATH_TOO_LONG "För lång sökväg"
|
||||
#define TR_VIEW_TEXT "Visa Text"
|
||||
#define TR_INTERNALRF "Intern Radio"
|
||||
#define TR_EXTERNALRF "Extern Radiomodul"
|
||||
#define TR_FAILSAFE "Failsafeläge"
|
||||
#define TR_FAILSAFESET "FailsafeInställning"
|
||||
#define TR_COUNTRYCODE "Landskod"
|
||||
#define TR_VOICELANG "Röst-språk"
|
||||
#define TR_VOICELANG "Röstspråk"
|
||||
#define TR_UNITSSYSTEM "Enheter"
|
||||
#define TR_EDIT "Redigera"
|
||||
#define TR_INSERT_BEFORE "Addera Före"
|
||||
|
@ -717,11 +747,26 @@
|
|||
#define TR_CHANNELRANGE INDENT "Kanalområde"
|
||||
#define TR_LOWALARM INDENT "Låg-alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritiskt alarm"
|
||||
#define TR_ENABLE_POPUP "Slå på Dialog"
|
||||
#define TR_DISABLE_POPUP "Slå av Dialog"
|
||||
#define TR_CURVE_PRESET "Lutning..."
|
||||
#define TR_PRESET "Lutning"
|
||||
#define TR_MIRROR "Spegla"
|
||||
#define TR_CLEAR "Töm"
|
||||
#define TR_RESET "Nollställ"
|
||||
#define TR_COUNT "Antal"
|
||||
#define TR_PT "pt"
|
||||
#define TR_PTS "pts"
|
||||
#define TR_SMOOTH "Mjuk"
|
||||
#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset"
|
||||
#define TR_PERSISTENT_MAH INDENT "Lagra mAh"
|
||||
#define TR_PREFLIGHT "Startkontroller"
|
||||
#define TR_CHECKLIST INDENT "Visa checklisa"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
#define TR_UART3MODE "Serieporten"
|
||||
#define TR_SCRIPT "Script"
|
||||
#define TR_INPUTS "Inputs"
|
||||
#define TR_OUTPUTS "Outputs"
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
@ -750,9 +795,9 @@
|
|||
#endif
|
||||
|
||||
// Taranis column headers
|
||||
#define TR_PHASES_HEADERS { " Namn ", " Brytare ", " Trimmar ", " Tona Upp ", " Tona Ned " }
|
||||
#define TR_PHASES_HEADERS { " Namn ", " Brytare ", " Rodertrim ", " Höjdrodertrim ", " Gastrim ", " Skevrodertrim ", " Tona Upp ", " Tona Ned " }
|
||||
#define TR_LIMITS_HEADERS { " Namn ", " Offset ", " Min ", " Max ", " Riktning ", " PPM-centrum ", " Symmetriskt " }
|
||||
#define TR_CSW_HEADERS { " Funktion ", " V1 ", " V2 ", " V2 ", " AND Brytare ", " Tidslängd ", " Fördröj " }
|
||||
#define TR_CSW_HEADERS { " Funktion ", " V1 ", " V2 ", " V2 ", " OCH Brytare ", " Tidslängd ", " Fördröj " }
|
||||
|
||||
// About screen
|
||||
#define TR_ABOUTUS "Om Oss"
|
||||
|
@ -796,6 +841,7 @@
|
|||
#define TR_ABOUT_HARDWARE_3 ""
|
||||
#endif
|
||||
|
||||
|
||||
#define TR_ABOUT_PARENTS_1 "Ursprungsprojekt"
|
||||
#define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)"
|
||||
#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)"
|
||||
|
@ -814,5 +860,8 @@
|
|||
|
||||
#define TR_TOP_BAR "Top Bar"
|
||||
#define TR_ALTITUDE INDENT "Höjd"
|
||||
#define TR_SCALE "Skala"
|
||||
#define TR_VIEW_CHANNELS "Visa Kanaler"
|
||||
#define TR_VIEW_NOTES "Visa Noteringars"
|
||||
#define TR_MODS_FORBIDDEN "Modifikationer förbjudna!"
|
||||
#define TR_UNLOCKED "Olåst"
|
||||
|
|
|
@ -2,11 +2,7 @@
|
|||
|
||||
import sys, glob
|
||||
|
||||
string = sys.argv[1]
|
||||
translation = sys.argv[2]
|
||||
after = sys.argv[3]
|
||||
|
||||
def addLine(filename, newline):
|
||||
def addLine(filename, newline, after):
|
||||
print filename, newline
|
||||
lines = file(filename, 'r').readlines()
|
||||
for i, line in enumerate(lines):
|
||||
|
@ -15,22 +11,27 @@ def addLine(filename, newline):
|
|||
break
|
||||
file(filename, 'w').writelines(lines)
|
||||
|
||||
def modifyTranslations():
|
||||
for filename in ['translations/en.h'] + glob.glob('translations/*.h.txt'):
|
||||
newline = "#define " + string + " "*(23-len(string)) + '"' + translation + '"'
|
||||
addLine(filename, newline)
|
||||
def modifyTranslations(constant, translation, after):
|
||||
for filename in glob.glob('translations/*.h.txt'):
|
||||
newline = "#define " + constant + " "*(23-len(constant)) + '"' + translation + '"'
|
||||
addLine(filename, newline, after+" ")
|
||||
|
||||
def modifyDeclaration():
|
||||
newline = "extern const pm_char S" + string + "[];"
|
||||
def modifyDeclaration(constant, after):
|
||||
newline = "extern const pm_char S" + constant + "[];"
|
||||
filename = "translations.h"
|
||||
addLine(filename, newline)
|
||||
addLine(filename, newline, after+"[];")
|
||||
|
||||
def modifyDefinition():
|
||||
newline = "const pm_char S" + string + "[] PROGMEM = " + string + ";"
|
||||
def modifyDefinition(constant, after):
|
||||
newline = "const pm_char S" + constant + "[] PROGMEM = " + constant + ";"
|
||||
filename = "translations.cpp"
|
||||
addLine(filename, newline)
|
||||
addLine(filename, newline, after+"[] ")
|
||||
|
||||
modifyTranslations()
|
||||
modifyDeclaration()
|
||||
modifyDefinition()
|
||||
|
||||
after = sys.argv[-1]
|
||||
for arg in sys.argv[1:-1]:
|
||||
constant, translation = arg.split("=")
|
||||
modifyTranslations(constant, translation, after)
|
||||
modifyDeclaration(constant, after)
|
||||
modifyDefinition(constant, after)
|
||||
after = constant
|
||||
|
||||
|
|
1
sound/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.suo
|
26
sound/OpenTXSound.sln
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual C# Express 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXRecorder", "recorder\OpenTXRecorder.csproj", "{8143D08D-1861-42DD-A861-56B15DE42A69}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXspeaker", "speaker\OpenTXspeaker.csproj", "{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.Build.0 = Debug|x86
|
||||
{8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.ActiveCfg = Release|x86
|
||||
{8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.Build.0 = Release|x86
|
||||
{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.Build.0 = Debug|x86
|
||||
{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.ActiveCfg = Release|x86
|
||||
{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
4
sound/recorder/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
/OpenTXrecorder.suo
|
||||
/bin/*
|
||||
/obj/*
|
||||
*.csproj.user
|
8
sound/recorder/App.xaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<Application x:Class="OpenTXrecorder.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
StartupUri="MainWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
32
sound/recorder/App.xaml.cs
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* This file is part of OpenTX Recorder.
|
||||
* OpenTX Recorder is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
|
||||
* OpenTX Recorder is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright 2014 Kjell Kernen */
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace OpenTXrecorder
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
}
|
||||
}
|
BIN
sound/recorder/GPLv3_Logo.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
107
sound/recorder/MainWindow.xaml
Normal file
|
@ -0,0 +1,107 @@
|
|||
<Window x:Class="OpenTXrecorder.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="OpenTX Recorder"
|
||||
Height="340"
|
||||
MinWidth="840"
|
||||
MaxWidth="840"
|
||||
ResizeMode="CanResizeWithGrip" SizeToContent="Width" Icon="/OpenTXrecorder;component/icon.ico" MinHeight="340">
|
||||
|
||||
<Window.Resources>
|
||||
<DataTemplate x:Key="image">
|
||||
<Image x:Name="TheImage" />
|
||||
<DataTemplate.Triggers>
|
||||
<DataTrigger Binding="{Binding Path=fileExists}" Value="true">
|
||||
<Setter TargetName="TheImage" Property="Source" Value="/OpenTXrecorder;component/play.png" />
|
||||
</DataTrigger>
|
||||
</DataTemplate.Triggers>
|
||||
</DataTemplate>
|
||||
</Window.Resources>
|
||||
|
||||
<Grid VerticalAlignment="Stretch" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid Grid.Row="0" Grid.Column="0" VerticalAlignment="Stretch">
|
||||
|
||||
|
||||
<ListView Name="lvSentences"
|
||||
SelectionMode="Single"
|
||||
MouseDoubleClick="lvSentences_MouseDoubleClick"
|
||||
VerticalAlignment="Stretch" >
|
||||
|
||||
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridView.Columns>
|
||||
<GridViewColumn Header="File Name" Width="90" DisplayMemberBinding="{Binding fileName}" />
|
||||
<GridViewColumn Header="Description" Width="190" DisplayMemberBinding="{Binding description}" />
|
||||
<GridViewColumn Header="Voice" Width="190" DisplayMemberBinding="{Binding voiceString}" />
|
||||
<GridViewColumn Width="30" CellTemplate="{StaticResource image}" />
|
||||
</GridView.Columns>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="0" Grid.Column="1">
|
||||
<TextBlock Text="Settings" Margin="5,0,0,0" FontSize="18" />
|
||||
|
||||
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" Margin="10,0,0,0">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Label Content="Language" Width="75" />
|
||||
<ComboBox Name="cbLanguages"
|
||||
DisplayMemberPath="lName"
|
||||
SelectedValuePath="sName"
|
||||
SelectionChanged="cbLanguages_SelectionChanged"
|
||||
Width="200" Height="23" />
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<Separator Height="5" />
|
||||
<TextBlock Text="Sentence" Margin="5,0,0,0" FontSize="18" />
|
||||
<Grid Margin="10,0,0,0" DataContext="{Binding ElementName=lvSentences, Path=SelectedItem}" Width="Auto">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="75" />
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Text="File Name" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" Margin="0,5,0,0" />
|
||||
<TextBox Text="{Binding Path=fileName}" Grid.Row="0" Grid.Column="1" Margin=" 0,0,10,0" />
|
||||
<TextBlock Text="Description" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="0" Margin="0,5,0,0" />
|
||||
<TextBox Text="{Binding Path=description}" Grid.Row="1" Grid.Column="1" Margin=" 0,0,10,0"/>
|
||||
<TextBlock Text="Sentence" Grid.Row="2" Grid.Column="0" Margin="0,5,0,0" />
|
||||
<TextBox Text="{Binding Path=voiceString}" Grid.Row="2" Grid.Column="1" Margin="0,0,10,0"/>
|
||||
</Grid>
|
||||
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,5,0,0">
|
||||
<Button Content="New Sentence" Width="120" Height="32" Name="buttonAddItem" Click="buttonAddItem_Click"/>
|
||||
<Button Name="btnRecord" ToolTip="Start recording" Click="btnRecord_Click" Margin="20,0,0,0" >
|
||||
<Image Height="32" Source="/OpenTXrecorder;component/record.png"/>
|
||||
</Button>
|
||||
<Button Name="btnStop" ToolTip="Stop recording" Click="btnStop_Click" Margin="5,0,0,0" >
|
||||
<Image Height="32" Source="/OpenTXrecorder;component/stop.png" />
|
||||
</Button>
|
||||
<Button Name="btnPlay" ToolTip="Play Sentence" Click="btnPlay_Click" Margin="30,0,0,0" >
|
||||
<Image Height="32" Source="/OpenTXrecorder;component/play.png" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<Separator Height="5" />
|
||||
<Label Content="RECORDING" Name="lblRecording" HorizontalAlignment="Center" Foreground="Red" FontSize="24" FontWeight="Black" Visibility="Hidden" />
|
||||
</StackPanel>
|
||||
<Image Grid.Row="0" Grid.Column="1" Name="openTXLogo" Height="48" MouseLeftButtonDown="openTXLogo_MouseLeftButtonDown" HorizontalAlignment="Right" Cursor="Hand" Margin="0,0,0,0" Source="/OpenTXrecorder;component/recorder_logo.png" Stretch="Uniform" VerticalAlignment="Bottom" />
|
||||
|
||||
</Grid>
|
||||
|
||||
</Window>
|
244
sound/recorder/MainWindow.xaml.cs
Normal file
|
@ -0,0 +1,244 @@
|
|||
/* This file is part of OpenTX Recorder.
|
||||
* OpenTX Recorder is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
|
||||
* OpenTX Recorder is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright 2014 Kjell Kernen */
|
||||
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Media;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Navigation;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace OpenTXrecorder
|
||||
{
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
|
||||
|
||||
SentenceTables tables = new SentenceTables();
|
||||
Languages languages = new Languages();
|
||||
Language curLang;
|
||||
Sentences sentences = new Sentences();
|
||||
int added_files = 0;
|
||||
bool isRecording = false;
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
SplashScreen splash = new SplashScreen("recorder_logo.png");
|
||||
splash.Show(true);
|
||||
Thread.Sleep(1500);
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
lvSentences.ItemsSource = sentences;
|
||||
cbLanguages.ItemsSource = languages;
|
||||
languages.Add("English", "en");
|
||||
languages.Add("Czech", "cz");
|
||||
languages.Add("German", "de");
|
||||
languages.Add("French", "fr");
|
||||
languages.Add("Italian", "it");
|
||||
languages.Add("Polish", "pl");
|
||||
languages.Add("Portuguese", "pt");
|
||||
languages.Add("Swedish", "se");
|
||||
languages.Add("Slovak", "sk");
|
||||
languages.Add("Spanish", "es");
|
||||
curLang = languages[0];
|
||||
cbLanguages.SelectedIndex = 0; // Note: Sets current langugage -> triggers loadlanguage()
|
||||
}
|
||||
|
||||
private void loadLanguage()
|
||||
{
|
||||
string[] system_strings;
|
||||
string[] other_strings;
|
||||
|
||||
try
|
||||
{
|
||||
system_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt");
|
||||
other_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt");
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
system_strings = tables.default_system_strings[tables.toInt(curLang.sName)];
|
||||
other_strings = tables.default_other_strings[tables.toInt(curLang.sName)];
|
||||
}
|
||||
sentences.RemoveRange(0, sentences.Count);
|
||||
|
||||
foreach (string str in system_strings)
|
||||
sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\SYSTEM\");
|
||||
|
||||
sentences.Add(@";^ System Sounds ^;", "");
|
||||
|
||||
foreach (string str in other_strings)
|
||||
sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\");
|
||||
|
||||
lvSentences.Items.Refresh(); // Workaround - Two way binding is better
|
||||
}
|
||||
|
||||
private void saveLanguage()
|
||||
{
|
||||
System.IO.Directory.CreateDirectory(@"SOUNDS\" + curLang.sName + @"\SYSTEM");
|
||||
StreamWriter sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt");
|
||||
int i;
|
||||
for (i = 0; sentences[i].fileName != ""; i++)
|
||||
{
|
||||
sw.WriteLine(sentences[i].toRaw());
|
||||
}
|
||||
sw.Close();
|
||||
sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt");
|
||||
for (i++; i < sentences.Count; i++)
|
||||
{
|
||||
sw.WriteLine(sentences[i].toRaw());
|
||||
}
|
||||
sw.Close();
|
||||
}
|
||||
|
||||
private void cbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
curLang = (Language)e.AddedItems[0];
|
||||
loadLanguage();
|
||||
}
|
||||
|
||||
private void lvSentences_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
if (this.lvSentences.SelectedItems.Count < 1) return;
|
||||
|
||||
Sentence sentence = (Sentence)this.lvSentences.SelectedItem;
|
||||
if (sentence.fileExists)
|
||||
{
|
||||
try
|
||||
{
|
||||
SoundPlayer player = new SoundPlayer(sentence.fullPath());
|
||||
player.Play();
|
||||
}
|
||||
catch (Exception) { }; // Catch and disregard all media exceptions
|
||||
}
|
||||
}
|
||||
|
||||
private void openTXLogo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
AboutWindow aboutWindow = new AboutWindow();
|
||||
aboutWindow.ShowDialog();
|
||||
}
|
||||
|
||||
private void buttonAddItem_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
added_files++;
|
||||
sentences.Add(new Sentence("new_file_" + added_files.ToString() + ";New Description;New Voice Message", @"SOUNDS\" + curLang.sName + @"\"));
|
||||
this.lvSentences.Items.Refresh();
|
||||
this.lvSentences.SelectedIndex = this.lvSentences.Items.Count - 1;
|
||||
this.lvSentences.ScrollIntoView(this.lvSentences.SelectedItem);
|
||||
}
|
||||
|
||||
private void btnRecord_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.lvSentences.SelectedItems.Count < 1) return;
|
||||
|
||||
if (isRecording)
|
||||
btnStop_Click(sender, e);
|
||||
else
|
||||
{
|
||||
saveLanguage();
|
||||
isRecording = true;
|
||||
lblRecording.Visibility = System.Windows.Visibility.Visible;
|
||||
Sentence sentence = (Sentence)this.lvSentences.SelectedItem;
|
||||
string path = sentence.fullPath();
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path)); // Create directory if it doesn't exist
|
||||
System.IO.File.WriteAllText(path, ""); // Creates and flushes a file if it does not exist
|
||||
|
||||
mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
|
||||
mciSendString("record recsound", "", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnStop_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.lvSentences.SelectedItems.Count < 1) return;
|
||||
|
||||
int index = this.lvSentences.SelectedIndex;
|
||||
lblRecording.Visibility = System.Windows.Visibility.Hidden;
|
||||
isRecording = false;
|
||||
Sentence sentence = (Sentence)this.lvSentences.SelectedItem;
|
||||
mciSendString("save recsound " + sentence.fullPath(), "", 0, 0);
|
||||
mciSendString("close recsound ", "", 0, 0);
|
||||
|
||||
loadLanguage(); // Called to refresh the sentence data of the current langugae
|
||||
this.lvSentences.SelectedIndex = index;
|
||||
}
|
||||
|
||||
private void btnPlay_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
lblRecording.Visibility = System.Windows.Visibility.Hidden;
|
||||
lvSentences_MouseDoubleClick(sender, null);
|
||||
}
|
||||
}
|
||||
|
||||
public class Language
|
||||
{
|
||||
public string lName { get; set; }
|
||||
public string sName { get; set; }
|
||||
}
|
||||
|
||||
public class Languages : List<Language>
|
||||
{
|
||||
public void Add(string longer, string shorter)
|
||||
{
|
||||
this.Add(new Language { lName = longer, sName = shorter });
|
||||
}
|
||||
}
|
||||
|
||||
public class Sentence
|
||||
{
|
||||
public string fileName { get; set; }
|
||||
public string description { get; set; }
|
||||
public string voiceString { get; set; }
|
||||
public string path { get; set; }
|
||||
public bool fileExists { get; set; }
|
||||
|
||||
public Sentence(string rawString, string dirPath)
|
||||
{
|
||||
string[] words = rawString.Split(';');
|
||||
fileName = words[0].TrimStart(' ', '\"');
|
||||
description = words[1];
|
||||
voiceString = words[2].TrimEnd('\"', ',', ' ');
|
||||
path = dirPath;
|
||||
fileExists = File.Exists(fullPath());
|
||||
}
|
||||
|
||||
public string fullPath()
|
||||
{
|
||||
return System.AppDomain.CurrentDomain.BaseDirectory + path + fileName + ".wav";
|
||||
}
|
||||
|
||||
public string toRaw()
|
||||
{
|
||||
return "\"" + fileName + ";" + description + ";" + voiceString + "\",";
|
||||
}
|
||||
}
|
||||
|
||||
public class Sentences : List<Sentence>
|
||||
{
|
||||
public void Add(string rawString, string dirPath)
|
||||
{
|
||||
this.Add(new Sentence(rawString, dirPath));
|
||||
}
|
||||
}
|
||||
}
|
169
sound/recorder/OpenTXRecorder.csproj
Normal file
|
@ -0,0 +1,169 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{8143D08D-1861-42DD-A861-56B15DE42A69}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>OpenTXrecorder</RootNamespace>
|
||||
<AssemblyName>OpenTXrecorder</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Speech" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Xaml">
|
||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="AboutWindow.xaml.cs">
|
||||
<DependentUpon>AboutWindow.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="sentencetables.cs" />
|
||||
<Page Include="MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Compile Include="MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="AboutWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="recorder_logo.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="GPLv3_Logo.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="play.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="record.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="stop.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
71
sound/recorder/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* This file is part of OpenTX Recorder.
|
||||
* OpenTX Recorder is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
|
||||
* OpenTX Recorder is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright 2014 Kjell Kernen */
|
||||
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("OpenTX Recorder")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("OpenTX Team")]
|
||||
[assembly: AssemblyProduct("OpenTX Recorder")]
|
||||
[assembly: AssemblyCopyright("Copyright © Kjell Kernen 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
//In order to begin building localizable applications, set
|
||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
||||
//inside a <PropertyGroup>. For example, if you are using US english
|
||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
||||
//the line below to match the UICulture setting in the project file.
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
||||
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.1")]
|
||||
[assembly: AssemblyFileVersion("0.1")]
|
63
sound/recorder/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,63 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.18444
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace OpenTXrecorder.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenTXrecorder.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
26
sound/recorder/Properties/Settings.Designer.cs
generated
Normal file
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.18444
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace OpenTXrecorder.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
49
sound/recorder/aboutWindow.xaml
Normal file
|
@ -0,0 +1,49 @@
|
|||
<Window x:Class="OpenTXrecorder.AboutWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="OpenTX Recorder About Window" Height="350" Width="357" Icon="/OpenTXrecorder;component/icon.ico">
|
||||
<Grid>
|
||||
<StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<StackPanel Orientation="Vertical">
|
||||
<StackPanel Orientation="Horizontal" Width="240" HorizontalAlignment="Left">
|
||||
<Label Content="Product:">
|
||||
</Label>
|
||||
<Label Content="Product Name" Name="lblProductName"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<Label Content="Version:"/>
|
||||
<Label Content="Version" Name="lblVersion"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<Label Content="Company:" />
|
||||
<Label Content="Company" Name="lblCompanyName"/>
|
||||
</StackPanel>
|
||||
<Label Content="Copyright" Name="lblCopyright" HorizontalAlignment="Left" />
|
||||
</StackPanel>
|
||||
<TextBlock>
|
||||
<Hyperlink NavigateUri="http://www.open-tx.org/" RequestNavigate="Hyperlink_RequestNavigate">
|
||||
<Image Stretch="Uniform" Height="90" Width="90" Cursor="Hand" Source="/OpenTXrecorder;component/icon.ico" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock Margin="5,5,5,0" TextWrapping="Wrap"
|
||||
Text="This application is used to record OpenTX voice strings and generate audio files for use in the FrSky Taranis radio." />
|
||||
<TextBlock Margin="5,10,5,0" TextWrapping="Wrap"
|
||||
Text= "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version." />
|
||||
<TextBlock Margin="5,5,5,0" TextWrapping="Wrap"
|
||||
Text= "This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose." />
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock TextWrapping="Wrap" Margin="5,5,5,0" Width="230"
|
||||
Text= "See the GNU General Public License for more details." />
|
||||
<TextBlock>
|
||||
<Hyperlink NavigateUri="http://www.gnu.org/licenses/" RequestNavigate="Hyperlink_RequestNavigate">
|
||||
<Image Margin="0,5,0,0" Cursor="Hand" Source="/OpenTXrecorder;component/GPLv3_Logo.png" MinWidth="88" MaxWidth="88" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
62
sound/recorder/aboutWindow.xaml.cs
Normal file
|
@ -0,0 +1,62 @@
|
|||
/* This file is part of OpenTX Recorder.
|
||||
* OpenTX Recorder is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
|
||||
* OpenTX Recorder is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright 2014 Kjell Kernen */
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Navigation;
|
||||
|
||||
|
||||
namespace OpenTXrecorder
|
||||
{
|
||||
public partial class AboutWindow : Window
|
||||
{
|
||||
public AboutWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
Assembly app = Assembly.GetExecutingAssembly();
|
||||
|
||||
AssemblyTitleAttribute title = (AssemblyTitleAttribute)app.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0];
|
||||
AssemblyProductAttribute product = (AssemblyProductAttribute)app.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0];
|
||||
AssemblyCopyrightAttribute copyright = (AssemblyCopyrightAttribute)app.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0];
|
||||
AssemblyCompanyAttribute company = (AssemblyCompanyAttribute)app.GetCustomAttributes(typeof(AssemblyCompanyAttribute), false)[0];
|
||||
Version version = app.GetName().Version;
|
||||
|
||||
this.Title = String.Format("About {0}", title.Title);
|
||||
this.lblProductName.Content = product.Product;
|
||||
this.lblVersion.Content = String.Format("Version {0}", version.ToString());
|
||||
this.lblCopyright.Content = copyright.Copyright.ToString();
|
||||
this.lblCompanyName.Content = company.Company;
|
||||
}
|
||||
|
||||
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
BIN
sound/recorder/play.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
sound/recorder/record.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
sound/recorder/recorder_logo.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
sound/recorder/recorder_logo.xcf
Normal file
BIN
sound/recorder/recorder_logo_small.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
2455
sound/recorder/sentencetables.cs
Normal file
BIN
sound/recorder/stop.png
Normal file
After Width: | Height: | Size: 4 KiB |
3
sound/speaker/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
/OpenTXspeaker.suo
|
||||
/bin/*
|
||||
/obj/*
|
BIN
sound/speaker/GPLv3_Logo.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
|
@ -2,10 +2,10 @@
|
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="OpenTX Speaker"
|
||||
Height="460"
|
||||
Height="514"
|
||||
MinWidth="840"
|
||||
MaxWidth="840"
|
||||
ResizeMode="CanResizeWithGrip" MinHeight="460" SizeToContent="Width">
|
||||
ResizeMode="CanResizeWithGrip" MinHeight="514" SizeToContent="Width" Icon="/OpenTXspeaker;component/icon.ico">
|
||||
|
||||
<Grid VerticalAlignment="Stretch" >
|
||||
<Grid.ColumnDefinitions>
|
||||
|
@ -71,7 +71,7 @@
|
|||
<TextBox Text="{Binding Path=voiceString}" Grid.Row="2" Grid.Column="1" Margin="0,0,10,0"/>
|
||||
</Grid>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
|
||||
<TextBlock Text="Voice Rate" Width="70" Margin="10,10,0,0" />
|
||||
<TextBlock Text="Rate" Width="70" Margin="10,10,0,0" />
|
||||
<Slider Name="voiceRateSlider"
|
||||
Value="0"
|
||||
Minimum="-5"
|
||||
|
@ -82,6 +82,21 @@
|
|||
Width="170"
|
||||
Margin="10,10,10,0"/>
|
||||
<TextBlock Text="{Binding ElementName=voiceRateSlider, Path=Value}" Width="40" Margin="0,10,0,0"/>
|
||||
<TextBlock Text="Voice Rate" Width="70" Margin="10,10,0,0" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
|
||||
<TextBlock Text="Volume" Width="70" Margin="10,10,0,0" />
|
||||
<Slider Name="voiceVolumeSlider"
|
||||
Value="50"
|
||||
Minimum="0"
|
||||
Maximum="100"
|
||||
TickPlacement="BottomRight"
|
||||
TickFrequency="10"
|
||||
IsSnapToTickEnabled="False"
|
||||
Width="170"
|
||||
Margin="10,10,10,0"/>
|
||||
<TextBlock Text="{Binding ElementName=voiceVolumeSlider, Path=Value}" Width="40" Margin="0,10,0,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
|
@ -91,7 +106,7 @@
|
|||
<Separator Height="5" />
|
||||
<TextBlock Text="Voice Files" Margin="5,0,0,0" FontSize="18" />
|
||||
<StackPanel Orientation="Horizontal" >
|
||||
<TextBlock Text="Voice Rate" Width="70" Margin="10,0,0,0" />
|
||||
<TextBlock Text="Rate" Width="70" Margin="10,0,0,0" />
|
||||
<Slider Name="fileRateSlider"
|
||||
Value="0"
|
||||
Minimum="-5"
|
||||
|
@ -103,18 +118,34 @@
|
|||
Margin="10,0,10,0"/>
|
||||
<TextBlock Text="{Binding ElementName=fileRateSlider, Path=Value}" Width="40" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
|
||||
<TextBlock Text="Volume" Width="70" Margin="10,10,0,0" />
|
||||
<Slider Name="fileVolumeSlider"
|
||||
Value="50"
|
||||
Minimum="0"
|
||||
Maximum="100"
|
||||
TickPlacement="BottomRight"
|
||||
TickFrequency="10"
|
||||
IsSnapToTickEnabled="False"
|
||||
Width="170"
|
||||
Margin="10,10,10,0"/>
|
||||
<TextBlock Text="{Binding ElementName=fileVolumeSlider, Path=Value}" Width="40" Margin="0,10,0,0"/>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="Sample Rate" Width="70" Margin="10,10,0,0" />
|
||||
<RadioButton Content="8 KHz" Height="16" Name="rb8khz" Margin="10,10,0,0"/>
|
||||
<RadioButton Content="16 kHz" Height="16" Name="rb16khz" Margin="10,10,0,0" />
|
||||
<RadioButton Content="32 kHz" Height="16" Name="rb32khz" IsChecked="True" Margin="10,10,0,0"/>
|
||||
<RadioButton Content="16 kHz" Height="16" Name="rb16khz" IsChecked="True" Margin="10,10,0,0" />
|
||||
<RadioButton Content="32 kHz" Height="16" Name="rb32khz" Margin="10,10,0,0"/>
|
||||
</StackPanel>
|
||||
<Button Content="Generate Voice Files" Name="buttonGenerate" Click="buttonSaveFiles_Click" Margin="10,10,10,0" />
|
||||
<Separator Height="5" />
|
||||
<StackPanel Width="Auto" Orientation="Horizontal">
|
||||
<TextBlock FontSize="18" VerticalAlignment="Center" MouseLeftButtonDown="InstallVoices_MouseLeftButtonDown" Cursor="Hand" HorizontalAlignment="Center" Margin="20,5,20,0" TextWrapping="Wrap" Height="48" Width="59" IsHyphenationEnabled="True">Install Voices</TextBlock>
|
||||
<Image Name="openTXLogo" Height="48" Source="/OpenTXspeak;component/speaker_logo.png" MouseLeftButtonDown="openTXLogo_MouseLeftButtonDown" HorizontalAlignment="Right" Cursor="Hand" Margin="0,5,10,0"/>
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Right">
|
||||
<TextBlock FontSize="18" VerticalAlignment="Center" MouseLeftButtonDown="InstallVoices_MouseLeftButtonDown" Cursor="Hand" HorizontalAlignment="Center" Margin="20,0,20,0" TextWrapping="Wrap" Height="48" Width="59" IsHyphenationEnabled="True">Install Voices</TextBlock>
|
||||
<Image Name="openTXLogo" Height="48" MouseLeftButtonDown="openTXLogo_MouseLeftButtonDown" HorizontalAlignment="Right" Cursor="Hand" Source="/OpenTXspeaker;component/speaker_logo.png" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
|
@ -110,12 +110,13 @@ namespace OpenTXspeak
|
|||
|
||||
private void lvSentences_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
synth.SetOutputToDefaultAudioDevice();
|
||||
synth.Rate = (int)this.voiceRateSlider.Value;
|
||||
|
||||
if (this.lvSentences.SelectedItems.Count < 1)
|
||||
return;
|
||||
|
||||
synth.SetOutputToDefaultAudioDevice();
|
||||
synth.Rate = (int)this.voiceRateSlider.Value;
|
||||
synth.Volume = (int)this.voiceVolumeSlider.Value;
|
||||
|
||||
Sentence sentence = (Sentence)this.lvSentences.SelectedItem;
|
||||
synth.SelectVoice(cbVoices.Text);
|
||||
try { synth.Speak(sentence.voiceString); }
|
||||
|
@ -153,7 +154,9 @@ namespace OpenTXspeak
|
|||
Cursor oldCursor = this.Cursor;
|
||||
this.Cursor = Cursors.Wait;
|
||||
|
||||
synth.SelectVoice(cbVoices.Text);
|
||||
synth.Rate = (int)this.fileRateSlider.Value;
|
||||
synth.Volume = (int)this.fileVolumeSlider.Value;
|
||||
|
||||
int sampleRate = 32000;
|
||||
if ((bool)this.rb16khz.IsChecked)
|
|
@ -5,16 +5,31 @@
|
|||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{8143D08D-1861-42DD-A861-56B15DE42A69}</ProjectGuid>
|
||||
<ProjectGuid>{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>OpenTXspeak</RootNamespace>
|
||||
<AssemblyName>OpenTXspeak</AssemblyName>
|
||||
<RootNamespace>OpenTXspeaker</RootNamespace>
|
||||
<AssemblyName>OpenTXspeaker</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
|
@ -110,18 +125,38 @@
|
|||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="eSpeak.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="icon.ico" />
|
||||
<Resource Include="speaker_logo.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="GPLv3_Logo.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual C# Express 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXspeak", "OpenTXspeak.csproj", "{8143D08D-1861-42DD-A861-56B15DE42A69}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXspeaker", "OpenTXspeaker.csproj", "{8143D08D-1861-42DD-A861-56B15DE42A69}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
@ -67,5 +67,5 @@ using System.Windows;
|
|||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2")]
|
||||
[assembly: AssemblyFileVersion("1.2")]
|
||||
[assembly: AssemblyVersion("1.3")]
|
||||
[assembly: AssemblyFileVersion("1.3")]
|
|
@ -8,8 +8,8 @@
|
|||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace OpenTXspeak.Properties
|
||||
{
|
||||
namespace OpenTXspeaker.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -22,29 +22,24 @@ namespace OpenTXspeak.Properties
|
|||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenTXspeak.Properties.Resources", typeof(Resources).Assembly);
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenTXspeaker.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
|
@ -56,14 +51,11 @@ namespace OpenTXspeak.Properties
|
|||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
117
sound/speaker/Properties/Resources.resx
Normal file
|
@ -0,0 +1,117 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -8,21 +8,17 @@
|
|||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace OpenTXspeak.Properties
|
||||
{
|
||||
namespace OpenTXspeaker.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
7
sound/speaker/Properties/Settings.settings
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
|
@ -1,7 +1,7 @@
|
|||
<Window x:Class="OpenTXspeak.AboutWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="OpenTX About Window" Height="370" Width="357" Icon="/OpenTXspeak;component/icon.ico">
|
||||
Title="OpenTX About Window" Height="350" Width="357" Icon="/OpenTXspeaker;component/icon.ico">
|
||||
<Grid>
|
||||
<StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
|
@ -23,7 +23,7 @@
|
|||
</StackPanel>
|
||||
<TextBlock>
|
||||
<Hyperlink NavigateUri="http://www.open-tx.org/" RequestNavigate="Hyperlink_RequestNavigate">
|
||||
<Image Source="/OpenTXspeak;component/icon.ico" Stretch="Uniform" Height="90" Width="90" Cursor="Hand" />
|
||||
<Image Stretch="Uniform" Height="90" Width="90" Cursor="Hand" Source="/OpenTXspeaker;component/icon.ico" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
|
@ -35,11 +35,11 @@
|
|||
<TextBlock Margin="5,5,5,0" TextWrapping="Wrap"
|
||||
Text= "This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose." />
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock TextWrapping="Wrap" Margin="5,5,5,0" Width="175"
|
||||
<TextBlock TextWrapping="Wrap" Margin="5,5,5,0" Width="230"
|
||||
Text= "See the GNU General Public License for more details." />
|
||||
<TextBlock>
|
||||
<Hyperlink NavigateUri="http://www.gnu.org/licenses/" RequestNavigate="Hyperlink_RequestNavigate">
|
||||
<Image Height="60" Width="149" Source="/OpenTXspeak;component/GPLv3_Logo.png" Margin="0,5,0,0" Cursor="Hand" />
|
||||
<Image Width="88" Margin="0,5,0,0" Cursor="Hand" Source="/OpenTXspeaker;component/GPLv3_Logo.png" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
sound/speaker/icon.ico
Normal file
After Width: | Height: | Size: 78 KiB |
|
@ -1,7 +1,7 @@
|
|||
<Window x:Class="OpenTXspeak.InstallVoicesWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Install Additional Voices" Height="269" Width="504">
|
||||
Title="Install Additional Voices" Height="269" Width="504" Icon="/OpenTXspeaker;component/icon.ico">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Vertical" >
|
||||
<TextBlock Margin="5,5,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" TextWrapping="Wrap"
|
||||
|
@ -15,7 +15,7 @@
|
|||
Text="The author of this application used the free eSpeak voices to test voice generation. Many languages are supported. Click the image on the right to go to eSpeaks project page. There you can find out if your language is supported and download the voice package." />
|
||||
<TextBlock>
|
||||
<Hyperlink NavigateUri="http://espeak.sourceforge.net/" RequestNavigate="Hyperlink_RequestNavigate">
|
||||
<Image Stretch="None" Source="/OpenTXspeak;component/eSpeak.png" Cursor="Hand" />
|
||||
<Image Stretch="None" Cursor="Hand" Source="/OpenTXspeaker;component/eSpeak.png" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
3
speaker/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
|||
/OpenTXspeak.suo
|
||||
/bin/*
|
||||
/obj/*
|
Before Width: | Height: | Size: 8.8 KiB |