diff --git a/DONATIONS.txt b/DONATIONS.txt index fef01b05d..aa31b72d6 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -95,8 +95,8 @@ Heinrich Illig Michael Collins Michael Manning Craig Lorentz -Jonathan Modellismo - http://jonathan.it -Aviomotive - http://www.aviomotive.com +Jonathan Modellismo - jonathan.it +Aviomotive - www.aviomotive.com André Lasseret Felipe Alexandre de Oliveira Brian Harris @@ -126,7 +126,7 @@ Larisa Filocamo Alex Calderhead Hartmut Sahm Åke Brodin -Aloft Hobbies - http://www.alofthobbies.com +Aloft Hobbies - www.alofthobbies.com Ted Moss Filippos Tigarakis Chewytm @@ -288,3 +288,25 @@ Josep Clodas Sola Thierry Martin Peter Mauro Mitchell Brenner +Ulach Green +Lluis Bullich Rañe +Steffen Rohr +Eric Jacquin +Harvest Lane +Ville Kuvaja +DK-System +Heinz Vogel +Heung Jin Choi +MMJS van der Helm +Dan Neelands +Yashiro Masayuki +Isaac Sloan +Harold Baird +Roy Bender +Bradley Murchie +Maximilian Süß +Dean Jansa +Ronald Donker +Paul Oldenkamp +Dietmar Drees +Bradley Murchie diff --git a/README.md b/README.md new file mode 100644 index 000000000..1b9c5331e --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +##OpenTX Next Branch + +You have found your way to the GitHub repository site for the OpenTX Next Branch. This code branch holds the source code for the ongoing development. + +The stable release code is not here, it is in the master branch. +Under no circumstances build and use software from this branch for real world application. At times you will be more or less guaranteed to crash your plane and destroy all your model settings. + +Refer to the opentx.wiki for information about setting up the tool chains for building OpenTX and OpenTX Companion as well as other development related issues. diff --git a/README.txt b/README.txt deleted file mode 100644 index 8f6415cbd..000000000 --- a/README.txt +++ /dev/null @@ -1 +0,0 @@ -[to be written] diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 85e3db295..0f7ca9cd5 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -1,7 +1,7 @@ PROJECT( companion ) SET( C9X_VERSION_MAJOR "1" ) -SET( C9X_VERSION_MINOR "51" ) +SET( C9X_VERSION_MINOR "52" ) SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR} ) CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) @@ -109,6 +109,15 @@ add_custom_command( DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/firmwares/ersky9x/ersky9xsimulator.cpp ) +set(RADIO_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/../../radio/src) + +add_custom_command( + OUTPUT ${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm + COMMAND make lbm + DEPENDS ${RADIO_SRC_DIRECTORY}/bitmaps/sticks_4x1.xbm + WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY} +) + add_subdirectory(modeledit) SET( companion_SRCS @@ -139,6 +148,7 @@ SET( companion_SRCS firmwares/ersky9x/ersky9xeeprom.cpp firmwares/ersky9x/ersky9xinterface.cpp ${ERSKY9X_CHECKOUT_DIRECTORY}/ersky9xsimulator.cpp + ${RADIO_SRC_DIRECTORY}/bitmaps/sticks.lbm helpers.cpp mdichild.cpp generaledit.cpp @@ -286,7 +296,7 @@ INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ) -SET( LANGUAGES he pt ru de fr it sv cs ) +SET( LANGUAGES he pl pt ru de fr it sv cs ) FOREACH( language ${LANGUAGES} ) SET( companion_TS ${companion_TS} translations/companion_${language}.ts ) ENDFOREACH( language ) @@ -309,6 +319,9 @@ TARGET_LINK_LIBRARIES( ${PROJECT_NAME} modeledit ${QT_LIBRARIES} ${QT_QTMAIN_LIB IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") INSTALL( TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ) INSTALL( FILES companion.desktop DESTINATION share/applications ) + INSTALL( FILES images/linuxicons/16x16/companion.png DESTINATION /usr/share/icons/hicolor/16x16/apps ) + INSTALL( FILES images/linuxicons/22x22/companion.png DESTINATION /usr/share/icons/hicolor/22x22/apps ) + INSTALL( FILES images/linuxicons/24x24/companion.png DESTINATION /usr/share/icons/hicolor/24x24/apps ) INSTALL( FILES images/linuxicons/32x32/companion.png DESTINATION /usr/share/icons/hicolor/32x32/apps ) INSTALL( FILES images/linuxicons/48x48/companion.png DESTINATION /usr/share/icons/hicolor/48x48/apps ) INSTALL( FILES images/linuxicons/128x128/companion.png DESTINATION /usr/share/icons/hicolor/128x128/apps ) diff --git a/companion/src/burnconfigdialog.cpp b/companion/src/burnconfigdialog.cpp index f4440b05f..e0ea4a63e 100644 --- a/companion/src/burnconfigdialog.cpp +++ b/companion/src/burnconfigdialog.cpp @@ -2,6 +2,7 @@ #include "ui_burnconfigdialog.h" #include "avroutputdialog.h" #include "eeprominterface.h" +#include "helpers.h" #include #if !defined WIN32 && defined __GNUC__ @@ -82,7 +83,7 @@ burnConfigDialog::~burnConfigDialog() void burnConfigDialog::getSettings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; #if defined WIN32 || !defined __GNUC__ avrLoc = settings.value("avrdude_location", QFileInfo("avrdude.exe").absoluteFilePath()).toString(); sambaLoc = settings.value("samba_location", QFileInfo("sam-ba.exe").absoluteFilePath()).toString(); @@ -136,7 +137,7 @@ void burnConfigDialog::getSettings() void burnConfigDialog::putSettings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("avrdude_location", avrLoc); settings.setValue("programmer", avrProgrammer); settings.setValue("mcu", avrMCU); @@ -278,8 +279,9 @@ void burnConfigDialog::listProgrammers() QStringList arguments; arguments << "-c?"; avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "List available programmers", AVR_DIALOG_KEEP_OPEN, TRUE); - ad->setWindowIcon(QIcon(":/images/list.png")); + ad->setWindowIcon(CompanionIcon("list.png")); ad->show(); + delete ad; } void burnConfigDialog::on_pushButton_3_clicked() @@ -295,8 +297,9 @@ void burnConfigDialog::on_pushButton_4_clicked() arguments << "-?"; avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "Show help", AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/configure.png")); + ad->setWindowIcon(CompanionIcon("configure.png")); ad->show(); + delete ad; } @@ -312,8 +315,9 @@ void burnConfigDialog::readFuses() arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << str; avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Read Fuses",AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->show(); + delete ad; } void burnConfigDialog::restFuses(bool eeProtect) @@ -324,7 +328,6 @@ void burnConfigDialog::restFuses(bool eeProtect) //avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m QMessageBox::StandardButton ret = QMessageBox::No; - ret = QMessageBox::warning(this, tr("Companion"), tr("WARNING!
This will reset the fuses of %1 to the factory settings.
Writing fuses can mess up your radio.
Do this only if you are sure they are wrong!
Are you sure you want to continue?").arg(avrMCU), QMessageBox::Yes | QMessageBox::No); @@ -338,7 +341,8 @@ void burnConfigDialog::restFuses(bool eeProtect) QString erStr = eeProtect ? "hfuse:w:0x11:m" : "hfuse:w:0x19:m"; str << "-U" << "lfuse:w:0xD7:m" << "-U" << erStr << "-U" << "efuse:w:0xFC:m"; //use hfuse = 0x81 to prevent eeprom being erased with every flashing - } else { + } + else { QString tempDir = QDir::tempPath(); QString tempFile; QString lfuses; @@ -346,8 +350,9 @@ void burnConfigDialog::restFuses(bool eeProtect) QStringList argread; argread << "-c" << avrProgrammer << "-p" << avrMCU << args <<"-U" << "lfuse:r:"+tempFile+":r" ; avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, argread, "Reset Fuses",AVR_DIALOG_CLOSE_IF_SUCCESSFUL,FALSE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->exec(); + delete ad; QFile file(tempFile); if (file.exists() && file.size()==1) { file.open(QIODevice::ReadOnly); @@ -355,12 +360,14 @@ void burnConfigDialog::restFuses(bool eeProtect) file.read(bin_flash, 1); if (bin_flash[0]==0x0E) { lfuses="lfuse:w:0x0E:m"; - } else { + } + else { lfuses="lfuse:w:0x3F:m"; } file.close(); unlink(tempFile.toAscii()); - } else { + } + else { lfuses="lfuse:w:0x3F:m"; } @@ -371,12 +378,14 @@ void burnConfigDialog::restFuses(bool eeProtect) QStringList arguments; if (avrMCU=="m2560") { arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-u" << str; - } else { + } + else { arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-B" << "100" << "-u" << str; } avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Reset Fuses",AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->show(); + delete ad; } } @@ -388,24 +397,29 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked) if (IS_TARANIS(eepromInterface->getBoard())) { ui->label_dfu2->show(); ui->dfuArgs->show(); - } else if (eepromInterface->getBoard()==BOARD_SKY9X) { + } + else if (eepromInterface->getBoard()==BOARD_SKY9X) { ui->label_sb2->show(); ui->arm_mcu->show(); - } else { + } + else { ui->label_av3->show(); ui->avrdude_mcu->show(); QMessageBox::warning(this, tr("Companion"), tr("WARNING!
Normally CPU type is automatically selected according to the chosen firmware.
If you change the CPU type the resulting eeprom could be inconsistent."), QMessageBox::Ok); } - } else { + } + else { if (IS_TARANIS(eepromInterface->getBoard())) { ui->label_dfu2->hide(); ui->dfuArgs->hide(); - } else if (eepromInterface->getBoard()==BOARD_SKY9X) { + } + else if (eepromInterface->getBoard()==BOARD_SKY9X) { ui->label_sb2->hide(); ui->arm_mcu->hide(); - } else { + } + else { ui->label_av3->hide(); ui->avrdude_mcu->hide(); } diff --git a/companion/src/burnconfigdialog.ui b/companion/src/burnconfigdialog.ui index bb85de6f5..b5419d37f 100644 --- a/companion/src/burnconfigdialog.ui +++ b/companion/src/burnconfigdialog.ui @@ -27,7 +27,7 @@ - :/images/configure.png:/images/configure.png + :/icon.png:/icon.png diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp index c601b23cf..f1d7f5482 100644 --- a/companion/src/burndialog.cpp +++ b/companion/src/burndialog.cpp @@ -16,6 +16,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac hexType(Type) { ui->setupUi(this); + ui->libraryButton->setIcon(CompanionIcon("library.png")); ui->SplashFrame->hide(); ui->FramFWInfo->hide(); ui->EEbackupCB->hide(); @@ -26,11 +27,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->patchcalib_CB->hide(); ui->patchhw_CB->hide(); ui->InvertColorButton->setDisabled(true); - this->setWindowTitle(tr("Write firmware to TX")); + setWindowTitle(tr("Write firmware to TX")); if (IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->hide(); } - } else { + } + else { ui->FlashLoadButton->setText(tr("Browse for file")); ui->profile_label->hide(); ui->patchcalib_CB->hide(); @@ -51,11 +53,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->BurnFlashButton->setDisabled(true); ui->EEbackupCB->hide(); if (DocName.isEmpty()) { - this->setWindowTitle(tr("Write Models and Settings to TX")); - } else { - this->setWindowTitle(tr("Write Models and Settings in %1 to TX").arg(DocName)); + setWindowTitle(tr("Write Models and Settings to TX")); } - QSettings settings("companion9x", "companion9x"); + else { + setWindowTitle(tr("Write Models and Settings in %1 to TX").arg(DocName)); + } + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -69,10 +72,11 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->FWFileName->setText(*hexfileName); if (Type==2) { checkFw(*hexfileName); - } else { + } + else { burnraw=false; if (checkeEprom(*hexfileName)) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -97,12 +101,14 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac if (!((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6))) { ui->patchhw_CB->setDisabled(true); } - } else { + } + else { ui->profile_label->hide(); } if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEpromCB->show(); - } else { + } + else { ui->EEpromCB->setChecked(false); } ui->BurnFlashButton->setEnabled(true); @@ -113,7 +119,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac hexfileName->clear(); } else if (Type==2) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString FileName; FileName = settings.value("lastFw").toString(); QFile file(FileName); @@ -124,14 +130,15 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac resize(0, 0); } -burnDialog::~burnDialog() { +burnDialog::~burnDialog() +{ delete ui; } void burnDialog::on_FlashLoadButton_clicked() { QString fileName; - QSettings settings("companion9x", "companion9x"); + QSettings settings; ui->ImageLoadButton->setDisabled(true); ui->libraryButton->setDisabled(true); ui->InvertColorButton->setDisabled(true); @@ -150,7 +157,8 @@ void burnDialog::on_FlashLoadButton_clicked() if (hexType==2) { fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER); checkFw(fileName); - } else { + } + else { QString fileName = QFileDialog::getOpenFileName(this,tr("Choose file to load Models and Settings from"), settings.value("lastDir").toString(), tr(EXTERNAL_EEPROM_FILES_FILTER)); if (checkeEprom(fileName)) { if (burnraw==false) { @@ -160,10 +168,12 @@ void burnDialog::on_FlashLoadButton_clicked() ui->patchhw_CB->show(); if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEpromCB->show(); - } else { + } + else { ui->EEpromCB->setChecked(false); } - } else { + } + else { ui->BurnFlashButton->setEnabled(true); ui->profile_label->hide(); ui->patchcalib_CB->setChecked(false); @@ -181,10 +191,11 @@ void burnDialog::checkFw(QString fileName) if (fileName.isEmpty()) { return; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->show(); - } else { + } + else { ui->EEbackupCB->setChecked(false); *backup=false; } @@ -223,23 +234,27 @@ void burnDialog::checkFw(QString fileName) ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(flash.getSplashFormat()))); ui->PatchFWCB->setEnabled(true); ui->PatchFWCB->setChecked(PatchFwCB); - } else { + } + else { ui->PatchFWCB->setDisabled(true); ui->PatchFWCB->setChecked(false); ui->PreferredImageCB->setDisabled(true); } - } else { + } + else { ui->PatchFWCB->setDisabled(true); ui->PatchFWCB->setChecked(false); ui->PreferredImageCB->setDisabled(true); } } - } else { + } + else { ui->FwImage->hide(); ui->ImageFileName->setText(""); ui->SplashFrame->hide(); } - } else { + } + else { QMessageBox::warning(this, tr("Warning"), tr("%1 is not a known firmware").arg(fileName)); ui->BurnFlashButton->setText(tr("Burn anyway !")); ui->BurnFlashButton->setEnabled(true); @@ -267,7 +282,8 @@ bool burnDialog::checkeEprom(QString fileName) } QTextStream inputStream(&file); XmlInterface(inputStream).load(radioData); - } else if (fileType==FILE_TYPE_HEX || fileType==FILE_TYPE_EEPE) { //read HEX file + } + else if (fileType==FILE_TYPE_HEX || fileType==FILE_TYPE_EEPE) { //read HEX file if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString())); return false; @@ -310,7 +326,8 @@ bool burnDialog::checkeEprom(QString fileName) ui->FWFileName->setText(fileName); return true; } - } else if (fileType==FILE_TYPE_BIN) { //read binary + } + else if (fileType==FILE_TYPE_BIN) { //read binary int eeprom_size = file.size(); if (!file.open(QFile::ReadOnly)) { //reading binary file - TODO HEX support QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString())); @@ -343,7 +360,7 @@ void burnDialog::on_ImageLoadButton_clicked() supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex]; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats)); @@ -365,17 +382,16 @@ void burnDialog::on_ImageLoadButton_clicked() int gray; int width = image.width(); int height = image.height(); - for (int i = 0; i < width; ++i) - { - for (int j = 0; j < height; ++j) - { - col = image.pixel(i, j); - gray = qGray(col); - image.setPixel(i, j, qRgb(gray, gray, gray)); - } + for (int i = 0; i < width; ++i) { + for (int j = 0; j < height; ++j) { + col = image.pixel(i, j); + gray = qGray(col); + image.setPixel(i, j, qRgb(gray, gray, gray)); + } } ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()))); - } else { + } + else { ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono))); } ui->PatchFWCB->setEnabled(true); @@ -426,7 +442,7 @@ void burnDialog::on_BurnFlashButton_clicked() if (hexType==2) { QString fileName=ui->FWFileName->text(); if (!fileName.isEmpty()) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath()); settings.setValue("lastFw", fileName); if (ui->PatchFWCB->isChecked()) { @@ -463,7 +479,7 @@ void burnDialog::on_BurnFlashButton_clicked() } } if (hexType==1) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -640,7 +656,7 @@ void burnDialog::on_PreferredImageCB_toggled(bool checked) { QString tmpFileName; if (checked) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString ImageStr = settings.value("SplashImage", "").toString(); if (!ImageStr.isEmpty()) { QImage Image = qstring2image(ImageStr); diff --git a/companion/src/burndialog.ui b/companion/src/burndialog.ui index a15ae25a1..e86634e9a 100644 --- a/companion/src/burndialog.ui +++ b/companion/src/burndialog.ui @@ -26,8 +26,8 @@ Customize Splash - - :/images/c_home.png:/images/c_home.png + + :/icon.png:/icon.png @@ -455,10 +455,6 @@ ... - - - :/images/library.png:/images/library.png - 16 diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 6cd5e7faa..acb1591a1 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -1,5 +1,6 @@ + images/customize.png icon.png ../../CREDITS.txt ../../DONATIONS.txt @@ -37,55 +38,13 @@ images/9xcursmin.png images/9xcursdown.png images/9xcursphoto.png - images/copy.png - images/cut.png - images/currentmodel.png - images/new.png - images/open.png - images/paste.png - images/save.png - images/saveas.png images/screenshot.png images/splash.png images/splasht.png images/companion-title.png - images/read_eeprom.png - images/write_eeprom.png - images/write_flash.png - images/read_flash.png - images/simulate.png - images/configure.png - images/customize.png - images/print.png - images/clear.png - images/add.png - images/edit.png - images/wizard.png - images/duplicate.png - images/fuses.png - images/list.png images/maps.png images/track.png images/track0.png - images/play.png - images/stop.png - images/read_eeprom_file.png - images/write_eeprom_file.png - images/moveup.png - images/movedown.png - images/update.png - images/contributors.png - images/changelog.png - images/preferences.png - images/switch_dir.png - images/exit.png - images/recentdocument.png - images/profiles.png - images/library.png - images/logs.png - images/arrow-left.png - images/arrow-right.png - images/compare.png images/x9b0.png images/x9l0.png images/x9l1.png @@ -334,5 +293,677 @@ images/library/30002.png images/library/30003.png images/library/30004.png + themes/monochrome/16/paintbrush.png + themes/monochrome/16/open.png + themes/monochrome/16/edit.png + themes/monochrome/16/information.png + themes/monochrome/16/configure.png + themes/monochrome/16/list.png + themes/monochrome/16/wizard.png + themes/monochrome/16/logs.png + themes/monochrome/16/new.png + themes/monochrome/16/save.png + themes/monochrome/16/recentdocument.png + themes/monochrome/16/simulate.png + themes/monochrome/16/changelog.png + themes/monochrome/16/copy.png + themes/monochrome/16/write_flash.png + themes/monochrome/16/read_eeprom_file.png + themes/monochrome/16/clear.png + themes/monochrome/16/play.png + themes/monochrome/16/fuses.png + themes/monochrome/16/arrow-right.png + themes/monochrome/16/exit.png + themes/monochrome/16/moveup.png + themes/monochrome/16/read_eeprom.png + themes/monochrome/16/cut.png + themes/monochrome/16/arrow-left.png + themes/monochrome/16/write_eeprom_file.png + themes/monochrome/16/library.png + themes/monochrome/16/profiles.png + themes/monochrome/16/paste.png + themes/monochrome/16/print.png + themes/monochrome/16/compare.png + themes/monochrome/16/saveas.png + themes/monochrome/16/preferences.png + themes/monochrome/16/movedown.png + themes/monochrome/16/currentmodel.png + themes/monochrome/16/read_flash.png + themes/monochrome/16/duplicate.png + themes/monochrome/16/add.png + themes/monochrome/16/update.png + themes/monochrome/16/contributors.png + themes/monochrome/16/stop.png + themes/monochrome/16/write_eeprom.png + themes/monochrome/24/paintbrush.png + themes/monochrome/24/open.png + themes/monochrome/24/edit.png + themes/monochrome/24/information.png + themes/monochrome/24/configure.png + themes/monochrome/24/list.png + themes/monochrome/24/wizard.png + themes/monochrome/24/logs.png + themes/monochrome/24/new.png + themes/monochrome/24/save.png + themes/monochrome/24/recentdocument.png + themes/monochrome/24/simulate.png + themes/monochrome/24/changelog.png + themes/monochrome/24/copy.png + themes/monochrome/24/write_flash.png + themes/monochrome/24/read_eeprom_file.png + themes/monochrome/24/clear.png + themes/monochrome/24/play.png + themes/monochrome/24/fuses.png + themes/monochrome/24/arrow-right.png + themes/monochrome/24/exit.png + themes/monochrome/24/moveup.png + themes/monochrome/24/read_eeprom.png + themes/monochrome/24/cut.png + themes/monochrome/24/arrow-left.png + themes/monochrome/24/write_eeprom_file.png + themes/monochrome/24/library.png + themes/monochrome/24/profiles.png + themes/monochrome/24/paste.png + themes/monochrome/24/print.png + themes/monochrome/24/compare.png + themes/monochrome/24/saveas.png + themes/monochrome/24/preferences.png + themes/monochrome/24/movedown.png + themes/monochrome/24/currentmodel.png + themes/monochrome/24/read_flash.png + themes/monochrome/24/duplicate.png + themes/monochrome/24/add.png + themes/monochrome/24/update.png + themes/monochrome/24/contributors.png + themes/monochrome/24/stop.png + themes/monochrome/24/write_eeprom.png + themes/monochrome/32/paintbrush.png + themes/monochrome/32/open.png + themes/monochrome/32/edit.png + themes/monochrome/32/information.png + themes/monochrome/32/configure.png + themes/monochrome/32/list.png + themes/monochrome/32/wizard.png + themes/monochrome/32/logs.png + themes/monochrome/32/new.png + themes/monochrome/32/save.png + themes/monochrome/32/recentdocument.png + themes/monochrome/32/simulate.png + themes/monochrome/32/changelog.png + themes/monochrome/32/copy.png + themes/monochrome/32/write_flash.png + themes/monochrome/32/read_eeprom_file.png + themes/monochrome/32/clear.png + themes/monochrome/32/play.png + themes/monochrome/32/fuses.png + themes/monochrome/32/arrow-right.png + themes/monochrome/32/exit.png + themes/monochrome/32/moveup.png + themes/monochrome/32/read_eeprom.png + themes/monochrome/32/cut.png + themes/monochrome/32/arrow-left.png + themes/monochrome/32/write_eeprom_file.png + themes/monochrome/32/library.png + themes/monochrome/32/profiles.png + themes/monochrome/32/paste.png + themes/monochrome/32/print.png + themes/monochrome/32/compare.png + themes/monochrome/32/saveas.png + themes/monochrome/32/preferences.png + themes/monochrome/32/movedown.png + themes/monochrome/32/currentmodel.png + themes/monochrome/32/read_flash.png + themes/monochrome/32/duplicate.png + themes/monochrome/32/add.png + themes/monochrome/32/update.png + themes/monochrome/32/contributors.png + themes/monochrome/32/stop.png + themes/monochrome/32/write_eeprom.png + themes/monochrome/48/paintbrush.png + themes/monochrome/48/open.png + themes/monochrome/48/edit.png + themes/monochrome/48/information.png + themes/monochrome/48/configure.png + themes/monochrome/48/list.png + themes/monochrome/48/wizard.png + themes/monochrome/48/logs.png + themes/monochrome/48/new.png + themes/monochrome/48/save.png + themes/monochrome/48/recentdocument.png + themes/monochrome/48/simulate.png + themes/monochrome/48/changelog.png + themes/monochrome/48/copy.png + themes/monochrome/48/write_flash.png + themes/monochrome/48/read_eeprom_file.png + themes/monochrome/48/clear.png + themes/monochrome/48/play.png + themes/monochrome/48/fuses.png + themes/monochrome/48/arrow-right.png + themes/monochrome/48/exit.png + themes/monochrome/48/moveup.png + themes/monochrome/48/read_eeprom.png + themes/monochrome/48/cut.png + themes/monochrome/48/arrow-left.png + themes/monochrome/48/write_eeprom_file.png + themes/monochrome/48/library.png + themes/monochrome/48/profiles.png + themes/monochrome/48/paste.png + themes/monochrome/48/print.png + themes/monochrome/48/compare.png + themes/monochrome/48/saveas.png + themes/monochrome/48/preferences.png + themes/monochrome/48/movedown.png + themes/monochrome/48/currentmodel.png + themes/monochrome/48/read_flash.png + themes/monochrome/48/duplicate.png + themes/monochrome/48/add.png + themes/monochrome/48/update.png + themes/monochrome/48/contributors.png + themes/monochrome/48/stop.png + themes/monochrome/48/write_eeprom.png + themes/classic/16/paintbrush.png + themes/classic/16/open.png + themes/classic/16/edit.png + themes/classic/16/information.png + themes/classic/16/configure.png + themes/classic/16/list.png + themes/classic/16/wizard.png + themes/classic/16/logs.png + themes/classic/16/new.png + themes/classic/16/save.png + themes/classic/16/recentdocument.png + themes/classic/16/simulate.png + themes/classic/16/changelog.png + themes/classic/16/copy.png + themes/classic/16/write_flash.png + themes/classic/16/read_eeprom_file.png + themes/classic/16/clear.png + themes/classic/16/play.png + themes/classic/16/fuses.png + themes/classic/16/arrow-right.png + themes/classic/16/exit.png + themes/classic/16/moveup.png + themes/classic/16/read_eeprom.png + themes/classic/16/cut.png + themes/classic/16/arrow-left.png + themes/classic/16/write_eeprom_file.png + themes/classic/16/library.png + themes/classic/16/profiles.png + themes/classic/16/paste.png + themes/classic/16/print.png + themes/classic/16/compare.png + themes/classic/16/saveas.png + themes/classic/16/preferences.png + themes/classic/16/movedown.png + themes/classic/16/currentmodel.png + themes/classic/16/read_flash.png + themes/classic/16/duplicate.png + themes/classic/16/add.png + themes/classic/16/update.png + themes/classic/16/contributors.png + themes/classic/16/stop.png + themes/classic/16/write_eeprom.png + themes/classic/24/paintbrush.png + themes/classic/24/open.png + themes/classic/24/edit.png + themes/classic/24/information.png + themes/classic/24/configure.png + themes/classic/24/list.png + themes/classic/24/wizard.png + themes/classic/24/logs.png + themes/classic/24/new.png + themes/classic/24/save.png + themes/classic/24/recentdocument.png + themes/classic/24/simulate.png + themes/classic/24/changelog.png + themes/classic/24/copy.png + themes/classic/24/write_flash.png + themes/classic/24/read_eeprom_file.png + themes/classic/24/clear.png + themes/classic/24/play.png + themes/classic/24/fuses.png + themes/classic/24/arrow-right.png + themes/classic/24/exit.png + themes/classic/24/moveup.png + themes/classic/24/read_eeprom.png + themes/classic/24/cut.png + themes/classic/24/arrow-left.png + themes/classic/24/write_eeprom_file.png + themes/classic/24/library.png + themes/classic/24/profiles.png + themes/classic/24/paste.png + themes/classic/24/print.png + themes/classic/24/compare.png + themes/classic/24/saveas.png + themes/classic/24/preferences.png + themes/classic/24/movedown.png + themes/classic/24/currentmodel.png + themes/classic/24/read_flash.png + themes/classic/24/duplicate.png + themes/classic/24/add.png + themes/classic/24/update.png + themes/classic/24/contributors.png + themes/classic/24/stop.png + themes/classic/24/write_eeprom.png + themes/classic/32/paintbrush.png + themes/classic/32/open.png + themes/classic/32/edit.png + themes/classic/32/information.png + themes/classic/32/configure.png + themes/classic/32/list.png + themes/classic/32/wizard.png + themes/classic/32/logs.png + themes/classic/32/new.png + themes/classic/32/save.png + themes/classic/32/recentdocument.png + themes/classic/32/simulate.png + themes/classic/32/changelog.png + themes/classic/32/copy.png + themes/classic/32/write_flash.png + themes/classic/32/read_eeprom_file.png + themes/classic/32/clear.png + themes/classic/32/play.png + themes/classic/32/fuses.png + themes/classic/32/arrow-right.png + themes/classic/32/exit.png + themes/classic/32/moveup.png + themes/classic/32/read_eeprom.png + themes/classic/32/cut.png + themes/classic/32/arrow-left.png + themes/classic/32/write_eeprom_file.png + themes/classic/32/library.png + themes/classic/32/profiles.png + themes/classic/32/paste.png + themes/classic/32/print.png + themes/classic/32/compare.png + themes/classic/32/saveas.png + themes/classic/32/preferences.png + themes/classic/32/movedown.png + themes/classic/32/currentmodel.png + themes/classic/32/read_flash.png + themes/classic/32/duplicate.png + themes/classic/32/add.png + themes/classic/32/update.png + themes/classic/32/contributors.png + themes/classic/32/stop.png + themes/classic/32/write_eeprom.png + themes/classic/48/paintbrush.png + themes/classic/48/open.png + themes/classic/48/edit.png + themes/classic/48/information.png + themes/classic/48/configure.png + themes/classic/48/list.png + themes/classic/48/wizard.png + themes/classic/48/logs.png + themes/classic/48/new.png + themes/classic/48/save.png + themes/classic/48/recentdocument.png + themes/classic/48/simulate.png + themes/classic/48/changelog.png + themes/classic/48/copy.png + themes/classic/48/write_flash.png + themes/classic/48/read_eeprom_file.png + themes/classic/48/clear.png + themes/classic/48/play.png + themes/classic/48/fuses.png + themes/classic/48/arrow-right.png + themes/classic/48/exit.png + themes/classic/48/moveup.png + themes/classic/48/read_eeprom.png + themes/classic/48/cut.png + themes/classic/48/arrow-left.png + themes/classic/48/write_eeprom_file.png + themes/classic/48/library.png + themes/classic/48/profiles.png + themes/classic/48/paste.png + themes/classic/48/print.png + themes/classic/48/compare.png + themes/classic/48/saveas.png + themes/classic/48/preferences.png + themes/classic/48/movedown.png + themes/classic/48/currentmodel.png + themes/classic/48/read_flash.png + themes/classic/48/duplicate.png + themes/classic/48/add.png + themes/classic/48/update.png + themes/classic/48/contributors.png + themes/classic/48/stop.png + themes/classic/48/write_eeprom.png + themes/monoblue/16/paintbrush.png + themes/monoblue/16/open.png + themes/monoblue/16/edit.png + themes/monoblue/16/information.png + themes/monoblue/16/configure.png + themes/monoblue/16/list.png + themes/monoblue/16/wizard.png + themes/monoblue/16/logs.png + themes/monoblue/16/new.png + themes/monoblue/16/save.png + themes/monoblue/16/recentdocument.png + themes/monoblue/16/simulate.png + themes/monoblue/16/changelog.png + themes/monoblue/16/copy.png + themes/monoblue/16/write_flash.png + themes/monoblue/16/read_eeprom_file.png + themes/monoblue/16/clear.png + themes/monoblue/16/play.png + themes/monoblue/16/fuses.png + themes/monoblue/16/arrow-right.png + themes/monoblue/16/exit.png + themes/monoblue/16/moveup.png + themes/monoblue/16/read_eeprom.png + themes/monoblue/16/cut.png + themes/monoblue/16/arrow-left.png + themes/monoblue/16/write_eeprom_file.png + themes/monoblue/16/library.png + themes/monoblue/16/profiles.png + themes/monoblue/16/paste.png + themes/monoblue/16/print.png + themes/monoblue/16/compare.png + themes/monoblue/16/saveas.png + themes/monoblue/16/preferences.png + themes/monoblue/16/movedown.png + themes/monoblue/16/currentmodel.png + themes/monoblue/16/read_flash.png + themes/monoblue/16/duplicate.png + themes/monoblue/16/add.png + themes/monoblue/16/update.png + themes/monoblue/16/contributors.png + themes/monoblue/16/stop.png + themes/monoblue/16/write_eeprom.png + themes/monoblue/24/paintbrush.png + themes/monoblue/24/open.png + themes/monoblue/24/edit.png + themes/monoblue/24/information.png + themes/monoblue/24/configure.png + themes/monoblue/24/list.png + themes/monoblue/24/wizard.png + themes/monoblue/24/logs.png + themes/monoblue/24/new.png + themes/monoblue/24/save.png + themes/monoblue/24/recentdocument.png + themes/monoblue/24/simulate.png + themes/monoblue/24/changelog.png + themes/monoblue/24/copy.png + themes/monoblue/24/write_flash.png + themes/monoblue/24/read_eeprom_file.png + themes/monoblue/24/clear.png + themes/monoblue/24/play.png + themes/monoblue/24/fuses.png + themes/monoblue/24/arrow-right.png + themes/monoblue/24/exit.png + themes/monoblue/24/moveup.png + themes/monoblue/24/read_eeprom.png + themes/monoblue/24/cut.png + themes/monoblue/24/arrow-left.png + themes/monoblue/24/write_eeprom_file.png + themes/monoblue/24/library.png + themes/monoblue/24/profiles.png + themes/monoblue/24/paste.png + themes/monoblue/24/print.png + themes/monoblue/24/compare.png + themes/monoblue/24/saveas.png + themes/monoblue/24/preferences.png + themes/monoblue/24/movedown.png + themes/monoblue/24/currentmodel.png + themes/monoblue/24/read_flash.png + themes/monoblue/24/duplicate.png + themes/monoblue/24/add.png + themes/monoblue/24/update.png + themes/monoblue/24/contributors.png + themes/monoblue/24/stop.png + themes/monoblue/24/write_eeprom.png + themes/monoblue/32/paintbrush.png + themes/monoblue/32/open.png + themes/monoblue/32/edit.png + themes/monoblue/32/information.png + themes/monoblue/32/configure.png + themes/monoblue/32/list.png + themes/monoblue/32/wizard.png + themes/monoblue/32/logs.png + themes/monoblue/32/new.png + themes/monoblue/32/save.png + themes/monoblue/32/recentdocument.png + themes/monoblue/32/simulate.png + themes/monoblue/32/changelog.png + themes/monoblue/32/copy.png + themes/monoblue/32/write_flash.png + themes/monoblue/32/read_eeprom_file.png + themes/monoblue/32/clear.png + themes/monoblue/32/play.png + themes/monoblue/32/fuses.png + themes/monoblue/32/arrow-right.png + themes/monoblue/32/exit.png + themes/monoblue/32/moveup.png + themes/monoblue/32/read_eeprom.png + themes/monoblue/32/cut.png + themes/monoblue/32/arrow-left.png + themes/monoblue/32/write_eeprom_file.png + themes/monoblue/32/library.png + themes/monoblue/32/profiles.png + themes/monoblue/32/paste.png + themes/monoblue/32/print.png + themes/monoblue/32/compare.png + themes/monoblue/32/saveas.png + themes/monoblue/32/preferences.png + themes/monoblue/32/movedown.png + themes/monoblue/32/currentmodel.png + themes/monoblue/32/read_flash.png + themes/monoblue/32/duplicate.png + themes/monoblue/32/add.png + themes/monoblue/32/update.png + themes/monoblue/32/contributors.png + themes/monoblue/32/stop.png + themes/monoblue/32/write_eeprom.png + themes/monoblue/48/paintbrush.png + themes/monoblue/48/open.png + themes/monoblue/48/edit.png + themes/monoblue/48/information.png + themes/monoblue/48/configure.png + themes/monoblue/48/list.png + themes/monoblue/48/wizard.png + themes/monoblue/48/logs.png + themes/monoblue/48/new.png + themes/monoblue/48/save.png + themes/monoblue/48/recentdocument.png + themes/monoblue/48/simulate.png + themes/monoblue/48/changelog.png + themes/monoblue/48/copy.png + themes/monoblue/48/write_flash.png + themes/monoblue/48/read_eeprom_file.png + themes/monoblue/48/clear.png + themes/monoblue/48/play.png + themes/monoblue/48/fuses.png + themes/monoblue/48/arrow-right.png + themes/monoblue/48/exit.png + themes/monoblue/48/moveup.png + themes/monoblue/48/read_eeprom.png + themes/monoblue/48/cut.png + themes/monoblue/48/arrow-left.png + themes/monoblue/48/write_eeprom_file.png + themes/monoblue/48/library.png + themes/monoblue/48/profiles.png + themes/monoblue/48/paste.png + themes/monoblue/48/print.png + themes/monoblue/48/compare.png + themes/monoblue/48/saveas.png + themes/monoblue/48/preferences.png + themes/monoblue/48/movedown.png + themes/monoblue/48/currentmodel.png + themes/monoblue/48/read_flash.png + themes/monoblue/48/duplicate.png + themes/monoblue/48/add.png + themes/monoblue/48/update.png + themes/monoblue/48/contributors.png + themes/monoblue/48/stop.png + themes/monoblue/48/write_eeprom.png + themes/monowhite/16/paintbrush.png + themes/monowhite/16/open.png + themes/monowhite/16/edit.png + themes/monowhite/16/information.png + themes/monowhite/16/configure.png + themes/monowhite/16/list.png + themes/monowhite/16/wizard.png + themes/monowhite/16/logs.png + themes/monowhite/16/new.png + themes/monowhite/16/save.png + themes/monowhite/16/recentdocument.png + themes/monowhite/16/simulate.png + themes/monowhite/16/changelog.png + themes/monowhite/16/copy.png + themes/monowhite/16/write_flash.png + themes/monowhite/16/read_eeprom_file.png + themes/monowhite/16/clear.png + themes/monowhite/16/play.png + themes/monowhite/16/fuses.png + themes/monowhite/16/arrow-right.png + themes/monowhite/16/exit.png + themes/monowhite/16/moveup.png + themes/monowhite/16/read_eeprom.png + themes/monowhite/16/cut.png + themes/monowhite/16/arrow-left.png + themes/monowhite/16/write_eeprom_file.png + themes/monowhite/16/library.png + themes/monowhite/16/profiles.png + themes/monowhite/16/paste.png + themes/monowhite/16/print.png + themes/monowhite/16/compare.png + themes/monowhite/16/saveas.png + themes/monowhite/16/preferences.png + themes/monowhite/16/movedown.png + themes/monowhite/16/currentmodel.png + themes/monowhite/16/read_flash.png + themes/monowhite/16/duplicate.png + themes/monowhite/16/add.png + themes/monowhite/16/update.png + themes/monowhite/16/contributors.png + themes/monowhite/16/stop.png + themes/monowhite/16/write_eeprom.png + themes/monowhite/24/paintbrush.png + themes/monowhite/24/open.png + themes/monowhite/24/edit.png + themes/monowhite/24/information.png + themes/monowhite/24/configure.png + themes/monowhite/24/list.png + themes/monowhite/24/wizard.png + themes/monowhite/24/logs.png + themes/monowhite/24/new.png + themes/monowhite/24/save.png + themes/monowhite/24/recentdocument.png + themes/monowhite/24/simulate.png + themes/monowhite/24/changelog.png + themes/monowhite/24/copy.png + themes/monowhite/24/write_flash.png + themes/monowhite/24/read_eeprom_file.png + themes/monowhite/24/clear.png + themes/monowhite/24/play.png + themes/monowhite/24/fuses.png + themes/monowhite/24/arrow-right.png + themes/monowhite/24/exit.png + themes/monowhite/24/moveup.png + themes/monowhite/24/read_eeprom.png + themes/monowhite/24/cut.png + themes/monowhite/24/arrow-left.png + themes/monowhite/24/write_eeprom_file.png + themes/monowhite/24/library.png + themes/monowhite/24/profiles.png + themes/monowhite/24/paste.png + themes/monowhite/24/print.png + themes/monowhite/24/compare.png + themes/monowhite/24/saveas.png + themes/monowhite/24/preferences.png + themes/monowhite/24/movedown.png + themes/monowhite/24/currentmodel.png + themes/monowhite/24/read_flash.png + themes/monowhite/24/duplicate.png + themes/monowhite/24/add.png + themes/monowhite/24/update.png + themes/monowhite/24/contributors.png + themes/monowhite/24/stop.png + themes/monowhite/24/write_eeprom.png + themes/monowhite/32/paintbrush.png + themes/monowhite/32/open.png + themes/monowhite/32/edit.png + themes/monowhite/32/information.png + themes/monowhite/32/configure.png + themes/monowhite/32/list.png + themes/monowhite/32/wizard.png + themes/monowhite/32/logs.png + themes/monowhite/32/new.png + themes/monowhite/32/save.png + themes/monowhite/32/recentdocument.png + themes/monowhite/32/simulate.png + themes/monowhite/32/changelog.png + themes/monowhite/32/copy.png + themes/monowhite/32/write_flash.png + themes/monowhite/32/read_eeprom_file.png + themes/monowhite/32/clear.png + themes/monowhite/32/play.png + themes/monowhite/32/fuses.png + themes/monowhite/32/arrow-right.png + themes/monowhite/32/exit.png + themes/monowhite/32/moveup.png + themes/monowhite/32/read_eeprom.png + themes/monowhite/32/cut.png + themes/monowhite/32/arrow-left.png + themes/monowhite/32/write_eeprom_file.png + themes/monowhite/32/library.png + themes/monowhite/32/profiles.png + themes/monowhite/32/paste.png + themes/monowhite/32/print.png + themes/monowhite/32/compare.png + themes/monowhite/32/saveas.png + themes/monowhite/32/preferences.png + themes/monowhite/32/movedown.png + themes/monowhite/32/currentmodel.png + themes/monowhite/32/read_flash.png + themes/monowhite/32/duplicate.png + themes/monowhite/32/add.png + themes/monowhite/32/update.png + themes/monowhite/32/contributors.png + themes/monowhite/32/stop.png + themes/monowhite/32/write_eeprom.png + themes/monowhite/48/paintbrush.png + themes/monowhite/48/open.png + themes/monowhite/48/edit.png + themes/monowhite/48/information.png + themes/monowhite/48/configure.png + themes/monowhite/48/list.png + themes/monowhite/48/wizard.png + themes/monowhite/48/logs.png + themes/monowhite/48/new.png + themes/monowhite/48/save.png + themes/monowhite/48/recentdocument.png + themes/monowhite/48/simulate.png + themes/monowhite/48/changelog.png + themes/monowhite/48/copy.png + themes/monowhite/48/write_flash.png + themes/monowhite/48/read_eeprom_file.png + themes/monowhite/48/clear.png + themes/monowhite/48/play.png + themes/monowhite/48/fuses.png + themes/monowhite/48/arrow-right.png + themes/monowhite/48/exit.png + themes/monowhite/48/moveup.png + themes/monowhite/48/read_eeprom.png + themes/monowhite/48/cut.png + themes/monowhite/48/arrow-left.png + themes/monowhite/48/write_eeprom_file.png + themes/monowhite/48/library.png + themes/monowhite/48/profiles.png + themes/monowhite/48/paste.png + themes/monowhite/48/print.png + themes/monowhite/48/compare.png + themes/monowhite/48/saveas.png + themes/monowhite/48/preferences.png + themes/monowhite/48/movedown.png + themes/monowhite/48/currentmodel.png + themes/monowhite/48/read_flash.png + themes/monowhite/48/duplicate.png + themes/monowhite/48/add.png + themes/monowhite/48/update.png + themes/monowhite/48/contributors.png + themes/monowhite/48/stop.png + themes/monowhite/48/write_eeprom.png diff --git a/companion/src/comparedialog.cpp b/companion/src/comparedialog.cpp index 48ed3f9f5..6b1609c0e 100644 --- a/companion/src/comparedialog.cpp +++ b/companion/src/comparedialog.cpp @@ -48,7 +48,7 @@ compareDialog::compareDialog(QWidget *parent, GeneralSettings *gg) : void compareDialog::dragMoveEvent(QDragMoveEvent *event) { - if (event->mimeData()->hasFormat("application/x-companion9x")) { + if (event->mimeData()->hasFormat("application/x-companion")) { event->acceptProposedAction(); } else { event->ignore(); @@ -58,7 +58,7 @@ void compareDialog::dragMoveEvent(QDragMoveEvent *event) void compareDialog::dragEnterEvent(QDragEnterEvent *event) { // accept just text/uri-list mime format - if (event->mimeData()->hasFormat("application/x-companion9x")) { + if (event->mimeData()->hasFormat("application/x-companion")) { event->acceptProposedAction(); } else { event->ignore(); @@ -95,8 +95,8 @@ void compareDialog::dropEvent(QDropEvent *event) const QMimeData *mimeData = event->mimeData(); if (child) { if (child->objectName().contains("label_1")) { - if(mimeData->hasFormat("application/x-companion9x")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + if(mimeData->hasFormat("application/x-companion")) { + QByteArray gmData = mimeData->data("application/x-companion"); DragDropHeader *header = (DragDropHeader *)gmData.data(); if (!header->general_settings) { char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1]; @@ -120,8 +120,8 @@ void compareDialog::dropEvent(QDropEvent *event) } } else if (child->objectName().contains("label_2")) { - if(mimeData->hasFormat("application/x-companion9x")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + if(mimeData->hasFormat("application/x-companion")) { + QByteArray gmData = mimeData->data("application/x-companion"); DragDropHeader *header = (DragDropHeader *)gmData.data(); if (!header->general_settings) { char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1]; @@ -305,7 +305,7 @@ void compareDialog::printPhases() str.append(""+tr("Switch")+""+tr("Flight mode name")); str.append(""+tr("IN")+""+tr("OUT")+""); for (i=0; i<4; i++) { - str.append(QString("%1").arg(getStickStr(i))); + str.append(QString("%1").arg(getInputStr(*g_model1, i))); } str.append(""); for (i=0; igetCapability(FlightPhases); i++) { @@ -406,7 +406,7 @@ void compareDialog::printPhases() str.append(""+tr("Switch")+""+tr("Flight mode name")); str.append(""+tr("IN")+""+tr("OUT")+""); for (i=0; i<4; i++) { - str.append(QString("%1").arg(getStickStr(i))); + str.append(QString("%1").arg(getInputStr(*g_model1, i))); } str.append(""); for (i=0; igetCapability(FlightPhases); i++) { @@ -694,7 +694,7 @@ void compareDialog::printExpos() } } str.append(""); - str.append(""+getStickStr(i)+""); + str.append(""+getInputStr(*g_model2, i)+""); str.append(""); str.append(""); for (int j=0; j"; - str.append(""); + str.append(""); str.append(""); for (int i=0; i<4; i++) { - str.append(QString("").arg(getStickStr(i))); + str.append(QString("").arg(getInputStr(*g_model, i))); } if (gvars==1) { for (int i=0; i

"+tr("Custom Switches")+"

"+tr("Logical Switches")+"

"); for (int i=0; igetCapability(CustomSwitches); i++) { QString sw1 = getCustomSwitchStr(&g_model1->customSw[i], *g_model1); @@ -1048,9 +1048,9 @@ void compareDialog::printSwitches() color=getColor1(sw1,sw2); str.append(QString(""); if (i<9) { - str.append("").arg(i+1)); + str.append("").arg(i+1)); } else { - str.append(""); + str.append(""); } color=getColor2(sw1,sw2); str.append(QString(""); @@ -1069,7 +1069,7 @@ void compareDialog::printFSwitches() QString color2; int sc=0; QString str = "
").arg(color)+sw1+""+tr("CS")+QString("%1"+tr("LS")+QString("%1"+tr("CS")+('A'+(i-9))+""+tr("LS")+('A'+(i-9))+"").arg(color)+sw2+"
"; - str.append(""); + str.append(""); str.append(""); - value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMin,fd1); - value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMin,fd2); + // TODO value1 = getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMin,fd1); + // TODO value2 = getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMin,fd2); if (fd1->screens[0].type==fd2->screens[0].type) color=getColor1(value1,value2); str.append(""); - value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMax,fd1); - value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMax,fd2); + // TODO value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMax,fd1); + // TODO value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMax,fd2); if (fd1->screens[0].type==fd2->screens[0].type) color=getColor1(value1,value2); str.append(""); @@ -1315,6 +1316,7 @@ void compareDialog::printFrSky() } } } +#endif str.append(""); - value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMin,fd1); - value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMin,fd2); + // TODO value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMin,fd1); + // TODO value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMin,fd2); if (fd1->screens[0].type==fd2->screens[0].type) color=getColor2(value1,value2); str.append(""); - value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMax,fd1); - value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMax,fd2); + // TODO value1=getBarValue(fd1->screens[0].body.bars[i].source,fd1->screens[0].body.bars[i].barMax,fd1); + // TODO value2=getBarValue(fd2->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].barMax,fd2); if (fd1->screens[0].type==fd2->screens[0].type) color=getColor2(value1,value2); str.append(""); @@ -1433,6 +1435,7 @@ void compareDialog::printFrSky() } } } +#endif str.append("

"+tr("Custom Functions")+"

"+tr("Switch Assignment")+"

"); str.append(""); str.append(""); @@ -1260,6 +1260,7 @@ void compareDialog::printFrSky() color=getColor1(fd1->rssiAlarms[1].value,fd2->rssiAlarms[1].value); str.append(""); str.append("
"+tr("Switch")+""+tr("Function")+""+QString::number(fd1->rssiAlarms[1].value,10)+"
"); +#if 0 if (GetEepromInterface()->getCapability(TelemetryBars) || GetEepromInterface()->getCapability(TelemetryCSFields)) { int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); if (cols==0) cols=2; @@ -1300,13 +1301,13 @@ void compareDialog::printFrSky() if (fd1->screens[0].type==fd2->screens[0].type) color=getColor1(fd1->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].source); str.append("
"+getFrSkySrc(fd1->screens[0].body.bars[i].source)+""+QString::number(value1)+""+QString::number(value1)+"
"); str.append(""); @@ -1377,7 +1379,7 @@ void compareDialog::printFrSky() color=getColor2(fd1->rssiAlarms[1].value,fd2->rssiAlarms[1].value); str.append(""); str.append("
"+QString::number(fd2->rssiAlarms[1].value,10)+"

"); - +#if 0 if (GetEepromInterface()->getCapability(TelemetryBars) || GetEepromInterface()->getCapability(TelemetryCSFields)) { int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); if (cols==0) cols=2; @@ -1418,13 +1420,13 @@ void compareDialog::printFrSky() if (fd1->screens[0].type==fd2->screens[0].type) color=getColor2(fd1->screens[0].body.bars[i].source,fd2->screens[0].body.bars[i].source); str.append("
"+getFrSkySrc(fd2->screens[0].body.bars[i].source)+""+QString::number(value2)+""+QString::number(value2)+"
"); te->append(str); } diff --git a/companion/src/comparedialog.ui b/companion/src/comparedialog.ui index 7667ad3ce..6f11bf138 100644 --- a/companion/src/comparedialog.ui +++ b/companion/src/comparedialog.ui @@ -30,7 +30,7 @@ - :/images/print.png:/images/print.png + :/icon.png:/icon.png diff --git a/companion/src/contributorsdialog.cpp b/companion/src/contributorsdialog.cpp index 02eb30041..54d32f9f7 100644 --- a/companion/src/contributorsdialog.cpp +++ b/companion/src/contributorsdialog.cpp @@ -1,7 +1,6 @@ #include "contributorsdialog.h" #include "ui_contributorsdialog.h" #include -#define CLINESEP "=====================================================\n" contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnurl) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), @@ -9,44 +8,88 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu { ui->setupUi(this); switch (contest) { - case 0: { - ui->textBrowser->insertPlainText(CLINESEP); - ui->textBrowser->insertPlainText(tr("People who have contributed to this project")+"\n"); - ui->textBrowser->insertPlainText(CLINESEP); - QFile file(":/contributors"); - if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) { - ui->textBrowser->insertPlainText(file.readAll()); + case 0: + { + QFile file(":/DONATIONS.txt"); + QString str; + str.append(""); + str.append("\n"); + str.append(""); + str.append("
"+tr("People who have contributed to this project")+"
"); + str.append(""); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + int columns=6; + float cwidth=100.0/columns; + while (!file.atEnd()) { + str.append(""); + for (int i=0; i"); + } else { + str.append("class=\"mycss\">"); + } + str.append(line.trimmed()+""); + } else { + str.append("class=\"mycss\"> "); + } + } + str.append(""); + } } - ui->textBrowser->insertPlainText("\n"); - ui->textBrowser->insertPlainText(CLINESEP); - ui->textBrowser->insertPlainText(tr("Coders")+"\n"); - ui->textBrowser->insertPlainText(CLINESEP); - QFile file2(":/coders"); + str.append("
"); + QFile file2(":/CREDITS.txt"); + str.append(""); + str.append(""); + str.append(""); + str.append("
 
"+tr("Coders")+"
"); + str.append(""); if(file2.open( QIODevice::ReadOnly | QIODevice::Text ) ) { - ui->textBrowser->insertPlainText(file2.readAll()); - } - ui->textBrowser->insertPlainText("\n\n\n"); - ui->textBrowser->insertPlainText(tr( -"Honors go to Rafal Tomczak (RadioClone) and Thomas Husterer (th9x) \nof course. Also to Erez Raviv (er9x) and the fantastic eePe program \nwhich was the staring point for OpenTX Companion.")); - ui->textBrowser->insertPlainText("\n\n"); - ui->textBrowser->insertPlainText(tr("Thank you all !!!")); - ui->textBrowser->setReadOnly(true); - ui->textBrowser->verticalScrollBar()->setValue(0); - this->setWindowTitle(tr("Contributors")); + while (!file2.atEnd()) { + str.append(""); + for (int i=0; i<3; i++) { + str.append(""); + } + str.append(""); + } } + str.append(""); + str.append(""); + str.append(""); + str.append("
"); + if (!file2.atEnd()) { + QByteArray line = file2.readLine(); + str.append(line.trimmed()); + } else { + str.append(" "); + } + str.append("
 
" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "
" + tr("Thank you all !!!") + "
"); + str.append(""); + ui->textEditor->setHtml(str); + ui->textEditor->scroll(0, 0); + setWindowTitle(tr("Contributors")); break; + } - case 1:{ - QFile file(":/releasenotes"); + case 1: + { + QFile file(":/releasenotes.txt"); if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) { - ui->textBrowser->insertHtml(file.readAll()); - } - ui->textBrowser->setReadOnly(true); - ui->textBrowser->verticalScrollBar()->setValue(0); - this->setWindowTitle(tr("Companion Release Notes")); + ui->textEditor->setHtml(file.readAll()); } + ui->textEditor->scroll(0,0); + setWindowTitle(tr("Companion Release Notes")); break; - case 2:{ + } + + case 2: + { if (!rnurl.isEmpty()) { this->setWindowTitle(tr("OpenTX Release Notes")); manager = new QNetworkAccessManager(this); @@ -55,7 +98,8 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu QNetworkRequest request(url); request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); manager->get(request); - } else { + } + else { QTimer::singleShot(0, this, SLOT(forceClose())); } break; @@ -65,7 +109,7 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu void contributorsDialog::showEvent ( QShowEvent * ) { - ui->textBrowser->verticalScrollBar()->setValue(0); + ui->textEditor->scroll(0, 0); } contributorsDialog::~contributorsDialog() @@ -75,9 +119,10 @@ contributorsDialog::~contributorsDialog() void contributorsDialog::replyFinished(QNetworkReply * reply) { - ui->textBrowser->insertHtml(reply->readAll()); + ui->textEditor->setHtml(reply->readAll()); } -void contributorsDialog::forceClose() { +void contributorsDialog::forceClose() +{ accept();; } diff --git a/companion/src/contributorsdialog.ui b/companion/src/contributorsdialog.ui index 4c0fff21b..6ae7866c8 100644 --- a/companion/src/contributorsdialog.ui +++ b/companion/src/contributorsdialog.ui @@ -6,8 +6,8 @@ 0 0 - 926 - 333 + 788 + 528 @@ -19,7 +19,7 @@ - + diff --git a/companion/src/customizesplashdialog.cpp b/companion/src/customizesplashdialog.cpp index 2358e1c7a..30762142f 100644 --- a/companion/src/customizesplashdialog.cpp +++ b/companion/src/customizesplashdialog.cpp @@ -8,56 +8,60 @@ #include "flashinterface.h" customizeSplashDialog::customizeSplashDialog(QWidget *parent) : -QDialog(parent), -ui(new Ui::customizeSplashDialog) { + QDialog(parent), + ui(new Ui::customizeSplashDialog) +{ ui->setupUi(this); + ui->libraryButton->setIcon(CompanionIcon("library.png")); ui->HowToLabel->clear(); ui->HowToLabel->append("
" + tr("Select an original firmware file") + "
"); } -customizeSplashDialog::~customizeSplashDialog() { +customizeSplashDialog::~customizeSplashDialog() +{ delete ui; } void customizeSplashDialog::on_FlashLoadButton_clicked() { - QString fileName; - QSettings settings("companion9x", "companion9x"); - ui->ImageLoadButton->setDisabled(true); - ui->libraryButton->setDisabled(true); - ui->SaveFlashButton->setDisabled(true); - ui->SaveImageButton->setDisabled(true); - ui->ImageFileName->clear(); - ui->imageLabel->clear(); - ui->HowToLabel->clear(); - ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)"); - fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER); - QFile file(fileName); - if (!file.exists()) { - ui->FWFileName->clear(); - ui->HowToLabel->append("
" + tr("Select an original firmware file") + "
"); - return; - } - if (fileName.isEmpty()) { - ui->FWFileName->clear(); - ui->HowToLabel->append("
" + tr("Select an original firmware file") + "
"); - return; - } + QSettings settings; + QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER); + if (!fileName.isEmpty()) { + ui->ImageLoadButton->setDisabled(true); + ui->libraryButton->setDisabled(true); + ui->SaveFlashButton->setDisabled(true); + ui->SaveImageButton->setDisabled(true); + ui->ImageFileName->clear(); + ui->imageLabel->clear(); + ui->HowToLabel->clear(); + ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)"); + QFile file(fileName); + if (!file.exists()) { + ui->FWFileName->clear(); + ui->HowToLabel->append("
" + tr("Select an original firmware file") + "
"); + return; + } + if (fileName.isEmpty()) { + ui->FWFileName->clear(); + ui->HowToLabel->append("
" + tr("Select an original firmware file") + "
"); + return; + } - ui->FWFileName->setText(fileName); - FlashInterface flash(fileName); - if (flash.hasSplash()) { - ui->HowToLabel->append("
" + tr("Select an image to customize your splash
or save actual firmware splash") + "
"); - ui->ImageLoadButton->setEnabled(true); - ui->libraryButton->setEnabled(true); - ui->SaveImageButton->setEnabled(true); - ui->imageLabel->setPixmap(QPixmap::fromImage(flash.getSplash())); - ui->imageLabel->setFixedSize(flash.getSplashWidth()*2,flash.getSplashHeight()*2); - } else { - QMessageBox::information(this, tr("Error"), tr("Could not find bitmap to replace in file")); - return; + ui->FWFileName->setText(fileName); + FlashInterface flash(fileName); + if (flash.hasSplash()) { + ui->HowToLabel->append("
" + tr("Select an image to customize your splash
or save actual firmware splash") + "
"); + ui->ImageLoadButton->setEnabled(true); + ui->libraryButton->setEnabled(true); + ui->SaveImageButton->setEnabled(true); + ui->imageLabel->setPixmap(QPixmap::fromImage(flash.getSplash())); + ui->imageLabel->setFixedSize(flash.getSplashWidth()*2,flash.getSplashHeight()*2); + } else { + QMessageBox::information(this, tr("Error"), tr("Could not find bitmap to replace in file")); + return; + } + settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath()); } - settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath()); } void customizeSplashDialog::on_ImageLoadButton_clicked() { @@ -66,7 +70,7 @@ void customizeSplashDialog::on_ImageLoadButton_clicked() { supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex]; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats)); @@ -143,7 +147,7 @@ void customizeSplashDialog::on_libraryButton_clicked() { void customizeSplashDialog::on_SaveFlashButton_clicked() { QString fileName; - QSettings settings("companion9x", "companion9x"); + QSettings settings; ui->HowToLabel->clear(); fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER, 0, QFileDialog::DontConfirmOverwrite); if (fileName.isEmpty()) { @@ -176,7 +180,7 @@ void customizeSplashDialog::on_InvertColorButton_clicked() void customizeSplashDialog::on_SaveImageButton_clicked() { QString fileName; - QSettings settings("companion9x", "companion9x"); + QSettings settings; fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastImagesDir").toString(), tr("PNG images (*.png);;"), 0, QFileDialog::DontConfirmOverwrite); if (!fileName.isEmpty()) { diff --git a/companion/src/customizesplashdialog.ui b/companion/src/customizesplashdialog.ui index b7d0285aa..15a803656 100644 --- a/companion/src/customizesplashdialog.ui +++ b/companion/src/customizesplashdialog.ui @@ -20,8 +20,8 @@ Customize Splash - - :/images/c_home.png:/images/c_home.png + + :/icon.png:/icon.png @@ -211,10 +211,6 @@ p, li { white-space: pre-wrap; } ... - - - :/images/library.png:/images/library.png - 16 diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 998e8d9bf..9b5126780 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -37,215 +37,117 @@ void getEEPROMString(char *dst, const char *src, int size) } } -int RawSource::getDecimals(const ModelData & Model) +RawSourceRange RawSource::getRange(bool singleprec) { - if(type==SOURCE_TYPE_TELEMETRY) { - switch (index) { - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A2: - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].type==0 ? 2: 0); - case TELEMETRY_SOURCE_CELL: - return 2; - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - case TELEMETRY_SOURCE_CURRENT: - return 1; - default: - return 0; - } + RawSourceRange result; + + int board = GetEepromInterface()->getBoard(); + + if (!singleprec && !IS_TARANIS(board)) { + singleprec = true; } - return 0; -} -double RawSource::getMin(const ModelData & Model) -{ switch (type) { case SOURCE_TYPE_TELEMETRY: switch (index) { - /*case TELEMETRY_SOURCE_NONE: case TELEMETRY_SOURCE_TX_BATT: + result.step = 0.1; + result.decimals = 1; + result.max = 25.5; + break; case TELEMETRY_SOURCE_TIMER1: case TELEMETRY_SOURCE_TIMER2: - return 0; */ - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A2: - if (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].type==0) { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/2550.0; - } - else { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/255.0; - } - case TELEMETRY_SOURCE_ALT: - case TELEMETRY_SOURCE_GPS_ALT: - return -500; - case TELEMETRY_SOURCE_T1: - case TELEMETRY_SOURCE_T2: - return -30; - default: - return 0; - } - break; - default: - return (Model.extendedLimits ? -125 :-100); - } -} - -double RawSource::getMax(const ModelData & Model) -{ - switch (type) { - case SOURCE_TYPE_TELEMETRY: - switch (index) { - case TELEMETRY_SOURCE_TIMER1: - case TELEMETRY_SOURCE_TIMER2: - return 765; + result.step = singleprec ? 3 : 1; + result.max = singleprec ? 765 : 7200; + break; case TELEMETRY_SOURCE_RSSI_TX: case TELEMETRY_SOURCE_RSSI_RX: - return 100; + result.max = 100; + break; case TELEMETRY_SOURCE_A1: case TELEMETRY_SOURCE_A2: - if (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].type==0) { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio-(Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/255.0)/10; - } else { - return Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio-(Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/255.0; + if (model) { + const FrSkyChannelData & channel = model->frsky.channels[index-TELEMETRY_SOURCE_A1]; + float ratio = channel.getRatio(); + if (channel.type==0 || channel.type==1 || channel.type==2) + result.decimals = 2; + else + result.decimals = 0; + result.step = ratio / 255; + result.min = channel.offset * result.step; + result.max = ratio + result.min; } + break; case TELEMETRY_SOURCE_ALT: case TELEMETRY_SOURCE_GPS_ALT: - return 1540; - case TELEMETRY_SOURCE_RPM: - return 12750; - case TELEMETRY_SOURCE_FUEL: - return 100; + result.step = singleprec ? 8 : 1; + result.min = -500; + result.max = singleprec ? 1540 : 3000; + break; case TELEMETRY_SOURCE_T1: case TELEMETRY_SOURCE_T2: - return 225; - case TELEMETRY_SOURCE_SPEED: - return 944; - case TELEMETRY_SOURCE_DIST: - return 2040; - case TELEMETRY_SOURCE_CELL: - return 5.1; - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - return 25.5; - case TELEMETRY_SOURCE_CURRENT: - return 127.5; - case TELEMETRY_SOURCE_CONSUMPTION: - return 5100; - case TELEMETRY_SOURCE_POWER: - return 1275; - default: - return 125; - } - break; - default: - return (Model.extendedLimits ? 125 :100); - } -} - -double RawSource::getOffset(const ModelData & Model) -{ - if (type==SOURCE_TYPE_TELEMETRY) { - switch (index) { - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A2: - if (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].type==0) { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/2550.0; - } - else { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].offset*Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio)/255.0; - } - case TELEMETRY_SOURCE_ALT: - case TELEMETRY_SOURCE_GPS_ALT: - return 524; - case TELEMETRY_SOURCE_RPM: - return 6400; - case TELEMETRY_SOURCE_FUEL: - return 0; - case TELEMETRY_SOURCE_T1: - case TELEMETRY_SOURCE_T2: - return 98; - case TELEMETRY_SOURCE_SPEED: - return 474; - case TELEMETRY_SOURCE_DIST: - return 1024; - case TELEMETRY_SOURCE_CELL: - return 2.56; - default: - return 0; - } - } - return 0; -} - -int RawSource::getRawOffset(const ModelData & Model) -{ - switch (type) { - case SOURCE_TYPE_TELEMETRY: - switch (index) { - case TELEMETRY_SOURCE_TIMER1: - case TELEMETRY_SOURCE_TIMER2: - case TELEMETRY_SOURCE_RSSI_TX: - case TELEMETRY_SOURCE_RSSI_RX: - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A2: - case TELEMETRY_SOURCE_FUEL: - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - case TELEMETRY_SOURCE_CURRENT: - case TELEMETRY_SOURCE_CONSUMPTION: - case TELEMETRY_SOURCE_POWER: - return 128; - default: - return 0; - } - default: - return 0; - } -} - -double RawSource::getStep(const ModelData & Model) -{ - switch (type) { - case SOURCE_TYPE_TELEMETRY: - switch (index) { - case TELEMETRY_SOURCE_TIMER1: - case TELEMETRY_SOURCE_TIMER2: - return 3; - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A2: - if (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].type==0) { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio/2550.0); - } - else { - return (Model.frsky.channels[index-TELEMETRY_SOURCE_A1].ratio/255.0); - } - case TELEMETRY_SOURCE_ALT: - case TELEMETRY_SOURCE_GPS_ALT: - return 8; + result.min = -30; + result.max = 225; + break; case TELEMETRY_SOURCE_RPM: - return 50; + result.step = singleprec ? 50 : 1; + result.max = singleprec ? 12750 : 20000; + break; + case TELEMETRY_SOURCE_FUEL: + result.max = 100; + break; case TELEMETRY_SOURCE_SPEED: - return 4; + result.step = singleprec ? 4 : 1; + result.max = singleprec ? 944 : 2000; + if (model && !model->frsky.imperial) { + result.step *= 1.852; + result.max *= 1.852; + } + break; case TELEMETRY_SOURCE_DIST: - return 8; + result.step = singleprec ? 8 : 1; + result.max = singleprec ? 2040 : 10000; + break; case TELEMETRY_SOURCE_CELL: - return 0.02; + result.step = singleprec ? 0.02 : 0.01; + result.max = 5.1; + result.decimals = 2; + break; case TELEMETRY_SOURCE_CELLS_SUM: case TELEMETRY_SOURCE_VFAS: - return 0.1; + result.step = 0.1; + result.max = 25.5; + result.decimals = 1; + break; case TELEMETRY_SOURCE_CURRENT: - return 0.5; + result.step = singleprec ? 0.5 : 0.1; + result.max = singleprec ? 127.5 : 200.0; + result.decimals = 1; + break; case TELEMETRY_SOURCE_CONSUMPTION: - return 20; + result.step = singleprec ? 20 : 1; + result.max = singleprec ? 5100 : 10000; + break; case TELEMETRY_SOURCE_POWER: - return 5; + result.step = singleprec ? 5 : 1; + result.max = singleprec ? 1275 : 2000; + break; default: - return 1; + result.max = 125; + break; + } + if (singleprec) { + result.offset = result.max - (127*result.step); } break; - default: - return 1; + + default: + result.max = (model && model->extendedLimits ? 125 : 100); + result.min = - result.max; + break; } + + return result; } QString AnalogString(int index) @@ -278,16 +180,21 @@ QString RawSource::toString() QObject::tr("Cur+"), QObject::tr("Pwr+"), QObject::tr("ACC "), QObject::tr("Time"), }; - static const QString virtualSwitches[] = { QObject::tr("CS1"), QObject::tr("CS2"), QObject::tr("CS3"), QObject::tr("CS4"), QObject::tr("CS5"), QObject::tr("CS6"), QObject::tr("CS7"), QObject::tr("CS8"), QObject::tr("CS9"), QObject::tr("CSA"), - QObject::tr("CSB"), QObject::tr("CSC"), QObject::tr("CSD"), QObject::tr("CSE"), QObject::tr("CSF"), QObject::tr("CSG"), QObject::tr("CSH"), QObject::tr("CSI"), QObject::tr("CSJ"), QObject::tr("CSK"), - QObject::tr("CSL"), QObject::tr("CSM"), QObject::tr("CSN"), QObject::tr("CSO"), QObject::tr("CSP"), QObject::tr("CSQ"), QObject::tr("CSR"), QObject::tr("CSS"), QObject::tr("CST"), QObject::tr("CSU"), - QObject::tr("CSV"), QObject::tr("CSW") + static const QString virtualSwitches[] = { QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"), + QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"), + QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"), + QObject::tr("LSV"), QObject::tr("LSW") }; if (index<0) { return QObject::tr("----"); } - switch(type) { + switch (type) { + case SOURCE_TYPE_VIRTUAL_INPUT: + if (model && strlen(model->inputNames[index]) > 0) + return QString(model->inputNames[index]); + else + return QObject::tr("Input %1").arg(index+1); case SOURCE_TYPE_STICK: return AnalogString(index); case SOURCE_TYPE_TRIM: @@ -332,26 +239,34 @@ QString SwitchDn(const char sw) QString RawSwitch::toString() { - static const QString switches9X[] = { QObject::tr("THR"), QObject::tr("RUD"), QObject::tr("ELE"), - QObject::tr("ID0"), QObject::tr("ID1"), QObject::tr("ID2"), - QObject::tr("AIL"), QObject::tr("GEA"), QObject::tr("TRN") - }; + static const QString switches9X[] = { + QString("THR"), QString("RUD"), QString("ELE"), + QString("ID0"), QString("ID1"), QString("ID2"), + QString("AIL"), QString("GEA"), QString("TRN") + }; - static const QString switchesX9D[] = { SwitchUp('A'), QString::fromUtf8("SA-"), SwitchDn('A'), - SwitchUp('B'), QString::fromUtf8("SB-"), SwitchDn('B'), - SwitchUp('C'), QString::fromUtf8("SC-"), SwitchDn('C'), - SwitchUp('D'), QString::fromUtf8("SD-"), SwitchDn('D'), - SwitchUp('E'), QString::fromUtf8("SE-"), SwitchDn('E'), - SwitchUp('F'), SwitchDn('F'), - SwitchUp('G'), QString::fromUtf8("SG-"), SwitchDn('G'), - SwitchUp('H'), SwitchDn('H'), - }; + static const QString switchesX9D[] = { + SwitchUp('A'), QString::fromUtf8("SA-"), SwitchDn('A'), + SwitchUp('B'), QString::fromUtf8("SB-"), SwitchDn('B'), + SwitchUp('C'), QString::fromUtf8("SC-"), SwitchDn('C'), + SwitchUp('D'), QString::fromUtf8("SD-"), SwitchDn('D'), + SwitchUp('E'), QString::fromUtf8("SE-"), SwitchDn('E'), + SwitchUp('F'), SwitchDn('F'), + SwitchUp('G'), QString::fromUtf8("SG-"), SwitchDn('G'), + SwitchUp('H'), SwitchDn('H'), + }; - static const QString virtualSwitches[] = { QObject::tr("CS1"), QObject::tr("CS2"), QObject::tr("CS3"), QObject::tr("CS4"), QObject::tr("CS5"), QObject::tr("CS6"), QObject::tr("CS7"), QObject::tr("CS8"), QObject::tr("CS9"), QObject::tr("CSA"), - QObject::tr("CSB"), QObject::tr("CSC"), QObject::tr("CSD"), QObject::tr("CSE"), QObject::tr("CSF"), QObject::tr("CSG"), QObject::tr("CSH"), QObject::tr("CSI"), QObject::tr("CSJ"), QObject::tr("CSK"), - QObject::tr("CSL"), QObject::tr("CSM"), QObject::tr("CSN"), QObject::tr("CSO"), QObject::tr("CSP"), QObject::tr("CSQ"), QObject::tr("CSR"), QObject::tr("CSS"), QObject::tr("CST"), QObject::tr("CSU"), - QObject::tr("CSV"), QObject::tr("CSW") - }; + static const QString virtualSwitches[] = { + QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"), + QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"), + QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"), + QObject::tr("LSV"), QObject::tr("LSW") + }; + + static const QString multiposPots[] = { + QObject::tr("S11"), QObject::tr("S12"), QObject::tr("S13"), QObject::tr("S14"), QObject::tr("S15"), QObject::tr("S16"), + QObject::tr("S21"), QObject::tr("S22"), QObject::tr("S23"), QObject::tr("S24"), QObject::tr("S25"), QObject::tr("S26") + }; switch(type) { case SWITCH_TYPE_SWITCH: @@ -361,6 +276,8 @@ QString RawSwitch::toString() return index > 0 ? CHECK_IN_ARRAY(switches9X, index-1) : QString("!") + CHECK_IN_ARRAY(switches9X, -index-1); case SWITCH_TYPE_VIRTUAL: return index > 0 ? CHECK_IN_ARRAY(virtualSwitches, index-1) : QString("!") + CHECK_IN_ARRAY(virtualSwitches, -index-1); + case SWITCH_TYPE_MULTIPOS_POT: + return CHECK_IN_ARRAY(multiposPots, index); case SWITCH_TYPE_ON: return QObject::tr("ON"); case SWITCH_TYPE_ONM: @@ -438,7 +355,7 @@ GeneralSettings::GeneralSettings() calibSpanNeg[i] = 0x180; calibSpanPos[i] = 0x180; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; templateSetup = settings.value("default_channel_order", 0).toInt(); stickMode = settings.value("default_mode", 1).toInt(); int profile_id = settings.value("ActiveProfile", 0).toInt(); @@ -659,7 +576,7 @@ ModelData ModelData::removeGlobalVars() QList eepromInterfaces; void RegisterEepromInterfaces() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int rev4a = settings.value("rev4asupport",0).toInt(); eepromInterfaces.push_back(new Open9xInterface(BOARD_STOCK)); eepromInterfaces.push_back(new Open9xInterface(BOARD_M128)); @@ -697,7 +614,7 @@ void RegisterFirmwares() #ifndef __APPLE__ firmwares.push_back(new FirmwareInfo("ersky9x", QObject::tr("ersky9x"), new Ersky9xInterface(), "http://ersky9x.googlecode.com/svn/trunk/ersky9x_rom.bin", ERSKY9X_STAMP)); #endif - default_firmware_variant = GetFirmwareVariant("opentx-stock-heli-templates-en"); + default_firmware_variant = GetFirmwareVariant("opentx-9x-heli-templates-en"); RegisterEepromInterfaces(); } diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 6f5a0cbb7..8dccc276b 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -51,7 +51,8 @@ enum BoardEnum { BOARD_TARANIS_REV4a }; -#define IS_STOCK(board) (board==BOARD_STOCK || board==BOARD_M128) +#define IS_9X(board) (board==BOARD_STOCK || board==BOARD_M128) +#define IS_STOCK(board) (board==BOARD_STOCK) #define IS_2560(board) (board==BOARD_GRUVIN9X || board==BOARD_MEGA2560) #define IS_ARM(board) (board==BOARD_SKY9X || board==BOARD_TARANIS || board==BOARD_TARANIS_REV4a) #define IS_TARANIS(board) (board==BOARD_TARANIS || board==BOARD_TARANIS_REV4a) @@ -65,6 +66,7 @@ const uint8_t modn12x3[4][4]= { #define C9X_MAX_MODELS 60 #define C9X_MAX_PHASES 9 #define C9X_MAX_MIXERS 64 +#define C9X_MAX_INPUTS 32 #define C9X_MAX_EXPOS 64 #define C9X_MAX_CURVES 32 #define C9X_MAX_POINTS 17 @@ -281,23 +283,50 @@ class ModelData; QString AnalogString(int index); QString RotaryEncoderString(int index); +class RawSourceRange +{ + public: + RawSourceRange(): + decimals(0), + min(0.0), + max(0.0), + step(1.0), + offset(0.0) + { + } + + float getValue(int value) { + return min + float(value) * step; + } + + int decimals; + double min; + double max; + double step; + double offset; + +}; + class RawSource { public: RawSource(): type(SOURCE_TYPE_NONE), - index(0) + index(0), + model(NULL) { } - RawSource(int value): + RawSource(int value, const ModelData * model=NULL): type(RawSourceType(abs(value)/65536)), - index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536)) + index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536)), + model(model) { } - RawSource(RawSourceType type, int index=0): + RawSource(RawSourceType type, int index=0, const ModelData * model=NULL): type(type), - index(index) + index(index), + model(model) { } @@ -308,25 +337,26 @@ class RawSource { QString toString(); - int getDecimals(const ModelData & Model); - double getMin(const ModelData & Model); - double getMax(const ModelData & Model); - double getStep(const ModelData & Model); - double getOffset(const ModelData & Model); - int getRawOffset(const ModelData & Model); + RawSourceRange getRange(bool singleprec=false); - bool operator== ( const RawSource& other) { + bool operator == ( const RawSource & other) { return (this->type == other.type) && (this->index == other.index); } + bool operator != ( const RawSource & other) { + return (this->type != other.type) || (this->index != other.index); + } + RawSourceType type; int index; + const ModelData * model; }; enum RawSwitchType { SWITCH_TYPE_NONE, SWITCH_TYPE_SWITCH, SWITCH_TYPE_VIRTUAL, + SWITCH_TYPE_MULTIPOS_POT, SWITCH_TYPE_MOMENT_SWITCH, SWITCH_TYPE_MOMENT_VIRTUAL, SWITCH_TYPE_ON, @@ -473,6 +503,8 @@ class GeneralSettings { int backgroundVolume; unsigned int mavbaud; unsigned int switchUnlockStates; + unsigned int hw_uartMode; + unsigned int potsType[8]; }; class CurveReference { @@ -552,7 +584,7 @@ class LimitData { bool symetrical; char name[6+1]; CurveReference curve; - void clear() { memset(this, 0, sizeof(LimitData)); min = -100; max = +100; } + void clear() { memset(this, 0, sizeof(LimitData)); min = -1000; max = +1000; } }; enum MltpxValue { @@ -641,7 +673,7 @@ class FuncSwData { // Function Switches data char paramarm[10]; unsigned int enabled; // TODO perhaps not any more the right name unsigned int adjustMode; - unsigned int repeatParam; + int repeatParam; void clear() { memset(this, 0, sizeof(FuncSwData)); } }; @@ -707,6 +739,14 @@ class FrSkyChannelData { unsigned int multiplier; FrSkyAlarmData alarms[2]; + float getRatio() const + { + if (type==0 || type==1 || type==2) + return float(ratio << multiplier) / 10.0; + else + return ratio << multiplier; + } + void clear() { memset(this, 0, sizeof(FrSkyChannelData)); } }; @@ -753,6 +793,9 @@ class FrSkyData { int varioCenterMin; // if increment in 0.2m/s = 3.0m/s max int varioCenterMax; int varioMax; + bool mAhPersistent; + unsigned int storedMah; + int fasOffset; void clear() { memset(this, 0, sizeof(FrSkyData)); rssiAlarms[0].clear(2, 45); rssiAlarms[1].clear(3, 42); varioSource = 2/*VARIO*/; } }; @@ -783,14 +826,13 @@ enum TimerMode { class TimerData { public: TimerData() { clear(); } - TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw - int8_t modeB; - bool minuteBeep; - bool countdownBeep; - bool dir; // 0=>Count Down, 1=>Count Up + TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw + bool minuteBeep; + unsigned int countdownBeep; + bool dir; // 0=>Count Down, 1=>Count Up unsigned int val; - bool persistent; - int pvalue; + bool persistent; + int pvalue; void clear() { memset(this, 0, sizeof(TimerData)); } }; @@ -836,7 +878,7 @@ class ModelData { TimerData timers[2]; bool thrTrim; // Enable Throttle Trim bool thrExpo; // Enable Throttle Expo - unsigned int trimInc; // Trim Increments + int trimInc; // Trim Increments bool disableThrottleWarning; unsigned int beepANACenter; // 1<<0->A1.. 1<<6->A7 @@ -847,7 +889,10 @@ class ModelData { PhaseData phaseData[C9X_MAX_PHASES]; MixData mixData[C9X_MAX_MIXERS]; LimitData limitData[C9X_NUM_CHNOUT]; + + char inputNames[C9X_MAX_INPUTS][4+1]; ExpoData expoData[C9X_MAX_EXPOS]; + CurveData curves[C9X_MAX_CURVES]; CustomSwData customSw[C9X_NUM_CSW]; FuncSwData funcSw[C9X_MAX_CUSTOM_FUNCTIONS]; @@ -911,8 +956,6 @@ enum Capability { MixesWithoutExpo, Timers, TimeDivisions, - minuteBeep, - countdownBeep, CustomFunctions, VoicesAsNumbers, VoicesMaxLength, @@ -931,7 +974,6 @@ enum Capability { ChannelsName, ExtraChannels, ExtraInputs, - ExtraTrims, ExtendedTrims, HasInputFilter, NumCurves, @@ -977,11 +1019,10 @@ enum Capability { GvarsAreNamed, GvarsFlightPhases, GvarsHaveSources, - GvarsAsSources, GvarsName, NoTelemetryProtocol, - TelemetryCSFields, - TelemetryColsCSFields, + TelemetryCustomScreens, + TelemetryCustomScreensFieldsPerLine, TelemetryRSSIModel, TelemetryAlarm, TelemetryInternalAlarm, @@ -997,7 +1038,6 @@ enum Capability { HasStickScroll, HasSoundMixer, NumModules, - FSSwitch, PPMCenter, SYMLimits, HasCurrentCalibration, @@ -1018,7 +1058,11 @@ enum Capability { LuaInputs, LimitsPer1000, EnhancedCurves, - TelemetryInternalAlarms + TelemetryInternalAlarms, + HasFasOffset, + HasMahPersistent, + MultiposPots, + MultiposPotsPositions }; enum UseContext { diff --git a/companion/src/firmwares/er9x/er9xeeprom.cpp b/companion/src/firmwares/er9x/er9xeeprom.cpp index f07716e72..a72f22dea 100644 --- a/companion/src/firmwares/er9x/er9xeeprom.cpp +++ b/companion/src/firmwares/er9x/er9xeeprom.cpp @@ -366,9 +366,7 @@ t_Er9xModelData::operator ModelData () c9x.timers[0].mode = getEr9xTimerMode(tmrMode); c9x.timers[0].dir = tmrDir; c9x.timers[0].val = tmrVal; - c9x.timers[0].modeB = tmrModeB; - - switch(protocol) { + switch(protocol) { case 1: c9x.moduleData[0].protocol = PXX_DJT; break; @@ -388,7 +386,7 @@ t_Er9xModelData::operator ModelData () c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH; c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.funcSw[0].func = FuncInstantTrim; if (trimSw) { diff --git a/companion/src/firmwares/er9x/er9xinterface.cpp b/companion/src/firmwares/er9x/er9xinterface.cpp index f2eed4608..2ddb828e6 100644 --- a/companion/src/firmwares/er9x/er9xinterface.cpp +++ b/companion/src/firmwares/er9x/er9xinterface.cpp @@ -44,7 +44,7 @@ const char * Er9xInterface::getName() const int Er9xInterface::getEEpromSize() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString avrMCU = settings.value("mcu", QString("m64")).toString(); if (avrMCU==QString("m128")) { return 2*EESIZE_STOCK; @@ -282,7 +282,6 @@ int Er9xInterface::getCapability(const Capability capability) case Gvars: return 7; case GvarsHaveSources: - case GvarsAsSources: return 1; case GetThrSwitch: return DSW_THR; diff --git a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp index 1247c795a..8f2831d79 100644 --- a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp +++ b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp @@ -508,7 +508,6 @@ t_Ersky9xModelData_v10::operator ModelData () getEEPROMString(c9x.name, name, sizeof(name)); for (int i=0; i<2; i++) { c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA); - c9x.timers[i].modeB = timer[i].tmrModeB; c9x.timers[i].dir = timer[i].tmrDir; c9x.timers[i].val = timer[i].tmrVal; } @@ -532,7 +531,7 @@ t_Ersky9xModelData_v10::operator ModelData () c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH; c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.funcSw[0].func = FuncInstantTrim; if (trimSw) { @@ -630,7 +629,6 @@ t_Ersky9xModelData_v11::operator ModelData () getEEPROMString(c9x.name, name, sizeof(name)); for (int i=0; i<2; i++) { c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA); - c9x.timers[i].modeB = timer[i].tmrModeB; c9x.timers[i].dir = timer[i].tmrDir; c9x.timers[i].val = timer[i].tmrVal; } @@ -654,7 +652,7 @@ t_Ersky9xModelData_v11::operator ModelData () c9x.moduleData[0].channelsCount = 8 + 2 * ppmNCH; c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.funcSw[0].func = FuncInstantTrim; if (trimSw) { diff --git a/companion/src/firmwares/ersky9x/ersky9xinterface.cpp b/companion/src/firmwares/ersky9x/ersky9xinterface.cpp index 88129b997..8405bff8f 100644 --- a/companion/src/firmwares/ersky9x/ersky9xinterface.cpp +++ b/companion/src/firmwares/ersky9x/ersky9xinterface.cpp @@ -318,7 +318,6 @@ int Ersky9xInterface::getCapability(const Capability capability) case MaxVolume: return 23; case GvarsHaveSources: - case GvarsAsSources: return 1; case TelemetryMaxMultiplier: return 2; diff --git a/companion/src/firmwares/gruvin9x/gruvin9xeeprom.cpp b/companion/src/firmwares/gruvin9x/gruvin9xeeprom.cpp index 429899ab5..3296de16f 100644 --- a/companion/src/firmwares/gruvin9x/gruvin9xeeprom.cpp +++ b/companion/src/firmwares/gruvin9x/gruvin9xeeprom.cpp @@ -458,7 +458,7 @@ t_Gruvin9xModelData_v102::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -529,7 +529,7 @@ t_Gruvin9xModelData_v103::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -600,7 +600,7 @@ t_Gruvin9xModelData_v105::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -691,7 +691,7 @@ t_Gruvin9xModelData_v106::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc-2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; diff --git a/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp b/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp index cdb6d4124..3e60d61be 100644 --- a/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp +++ b/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp @@ -47,7 +47,7 @@ const char * Gruvin9xInterface::getName() const int Gruvin9xInterface::getEEpromSize() { if (board == BOARD_STOCK) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString avrMCU = settings.value("mcu", QString("m64")).toString(); if (avrMCU==QString("m128")) { return EESIZE_STOCK*2; diff --git a/companion/src/firmwares/opentx/open9xGruvin9xeeprom.cpp b/companion/src/firmwares/opentx/open9xGruvin9xeeprom.cpp index d18939827..20bd50453 100644 --- a/companion/src/firmwares/opentx/open9xGruvin9xeeprom.cpp +++ b/companion/src/firmwares/opentx/open9xGruvin9xeeprom.cpp @@ -454,7 +454,7 @@ t_Open9xGruvin9xModelData_v207::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -538,7 +538,7 @@ t_Open9xGruvin9xModelData_v208::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -627,7 +627,7 @@ t_Open9xGruvin9xModelData_v209::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -717,7 +717,7 @@ t_Open9xGruvin9xModelData_v210::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -804,7 +804,7 @@ t_Open9xGruvin9xModelData_v211::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; diff --git a/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp b/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp index 524d55fee..b9ebaae7a 100644 --- a/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp +++ b/companion/src/firmwares/opentx/open9xSky9xeeprom.cpp @@ -760,7 +760,7 @@ t_Open9xArmModelData_v208::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -849,7 +849,7 @@ t_Open9xArmModelData_v209::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -939,7 +939,7 @@ t_Open9xArmModelData_v210::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -1023,7 +1023,7 @@ t_Open9xArmModelData_v211::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; @@ -1110,7 +1110,7 @@ t_Open9xArmModelData_v212::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.disableThrottleWarning=disableThrottleWarning; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; diff --git a/companion/src/firmwares/opentx/open9xStockeeprom.cpp b/companion/src/firmwares/opentx/open9xStockeeprom.cpp index 0fc602e04..9989cf8c5 100644 --- a/companion/src/firmwares/opentx/open9xStockeeprom.cpp +++ b/companion/src/firmwares/opentx/open9xStockeeprom.cpp @@ -593,7 +593,7 @@ enum Functions { #endif FUNC_BACKLIGHT, #if defined(DEBUG) - FUNC_TEST, // should remain the last before MAX as not added in companion9x + FUNC_TEST, // should remain the last before MAX as not added in companion #endif FUNC_MAX }; @@ -950,7 +950,7 @@ t_Open9xModelData_v201::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.thrExpo = thrExpo; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1024,7 +1024,7 @@ t_Open9xModelData_v202::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter, c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1100,7 +1100,7 @@ t_Open9xModelData_v203::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1174,7 +1174,7 @@ t_Open9xModelData_v204::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1253,7 +1253,7 @@ t_Open9xModelData_v205::operator ModelData () } c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1339,7 +1339,7 @@ t_Open9xModelData_v208::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.disableThrottleWarning=disableThrottleWarning; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1432,7 +1432,7 @@ t_Open9xModelData_v209::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.disableThrottleWarning=disableThrottleWarning; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1526,7 +1526,7 @@ t_Open9xModelData_v210::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.disableThrottleWarning=disableThrottleWarning; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; @@ -1614,7 +1614,7 @@ t_Open9xModelData_v211::operator ModelData () c9x.moduleData[0].channelsCount = 8 + (2 * ppmNCH); c9x.thrTrim = thrTrim; c9x.disableThrottleWarning=disableThrottleWarning; - c9x.trimInc = trimInc; + c9x.trimInc = trimInc - 2; c9x.moduleData[0].ppmDelay = 300 + 50 * ppmDelay; c9x.beepANACenter = beepANACenter; c9x.moduleData[0].ppmPulsePol = pulsePol; diff --git a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp index 9f444c808..b9f5f294e 100644 --- a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp +++ b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp @@ -135,7 +135,7 @@ using namespace Open9xSky9x; Open9xSky9xSimulator::Open9xSky9xSimulator(Open9xInterface * open9xInterface): open9xInterface(open9xInterface) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString path=settings.value("sdPath", ".").toString()+"/"; int i=0; for (i=0; i< std::min(path.length(),1022); i++) { diff --git a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp index ae4424797..47b8fb04a 100644 --- a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp +++ b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp @@ -35,6 +35,8 @@ #define AUDIO #define VOICE #define PXX +#define DSM2 +#define DSM2_PPM #define DBLKEYS #define AUTOSWITCH #define GRAPHICS @@ -47,6 +49,7 @@ #define PPM_CENTER_ADJUSTABLE #define PPM_LIMITS_SYMETRICAL #define FAI_CHOICE + #define EEPROM_VARIANT 3 #undef min @@ -65,6 +68,7 @@ inline int geteepromsize() { #include "radio/src/targets/taranis/board_taranis.cpp" #include "radio/src/protocols/ppm_arm.cpp" #include "radio/src/protocols/pxx_arm.cpp" +#include "radio/src/protocols/dsm2_arm.cpp" #include "radio/src/targets/taranis/pwr_driver.cpp" #include "radio/src/eeprom_common.cpp" #include "radio/src/eeprom_conversions.cpp" @@ -145,7 +149,7 @@ OpentxTaranisSimulator::OpentxTaranisSimulator(Open9xInterface * open9xInterface open9xInterface(open9xInterface) { taranisSimulatorBoard = GetEepromInterface()->getBoard(); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString path=settings.value("sdPath", ".").toString()+"/"; int i=0; for (i=0; i< std::min(path.length(),1022); i++) { diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 4c434675a..75ae30c7a 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -56,21 +56,29 @@ class SwitchesConversionTable: public ConversionTable { addConversion(RawSwitch(SWITCH_TYPE_VIRTUAL, i), val++); } + if (IS_TARANIS(board) && version >= 216) { + for (int i=0; i<2; i++) { + for (int j=0; j<6; j++) { + addConversion(RawSwitch(SWITCH_TYPE_MULTIPOS_POT, i*6+j), val++); + } + } + } + addConversion(RawSwitch(SWITCH_TYPE_OFF), -val); addConversion(RawSwitch(SWITCH_TYPE_ON), val++); for (int i=1; i<=MAX_SWITCHES_POSITION(board); i++) { int s = switchIndex(i, board, version); - addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, -s), -val); + // addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, -s), -val); addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, s), val++); } for (int i=1; i<=MAX_CUSTOM_SWITCHES(board, version); i++) { - addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, -i), -val); + // addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, -i), -val); addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, i), val++); } - addConversion(RawSwitch(SWITCH_TYPE_ONM, 1 ), -val); + // addConversion(RawSwitch(SWITCH_TYPE_ONM, 1 ), -val); addConversion(RawSwitch(SWITCH_TYPE_ONM, 0 ), val++); addConversion(RawSwitch(SWITCH_TYPE_TRN, 0), val++); addConversion(RawSwitch(SWITCH_TYPE_TRN, 1), val++); @@ -201,7 +209,7 @@ class SourcesConversionTable: public ConversionTable { if (!(flags & FLAG_NOTELEMETRY)) { if (release21March2013) { if ((board != BOARD_STOCK && (board!=BOARD_M128 || version<215)) || (variant & GVARS_VARIANT)) { - for (int i=0; i<5; i++) + for (int i=0; i(_arm_param)); if (version >= 214) { internalField.Append(new UnsignedField<2>(_mode)); - internalField.Append(new UnsignedField<6>(_delay)); + internalField.Append(new SignedField<6>(_delay)); } else { - internalField.Append(new UnsignedField<8>(_delay)); + internalField.Append(new UnsignedField<8>((unsigned int &)_delay)); } if (version < 214) internalField.Append(new SpareBitsField<8>()); @@ -1364,7 +1372,7 @@ class CustomFunctionField: public TransformedField { if (IS_ARM(board)) { _mode = 0; if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue) - _delay = fn.repeatParam / 5; + _delay = (version >= 216 ? fn.repeatParam : (fn.repeatParam/5)); else _delay = (fn.enabled ? 1 : 0); if (fn.func <= FuncInstantTrim) { @@ -1439,7 +1447,7 @@ class CustomFunctionField: public TransformedField { { if (IS_ARM(board)) { if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue) - fn.repeatParam = _delay * 5; + fn.repeatParam = (version >= 216 ? _delay : (_delay*5)); else fn.enabled = (_delay & 0x01); @@ -1529,7 +1537,7 @@ class CustomFunctionField: public TransformedField { SourcesConversionTable * sourcesConversionTable; char _arm_param[10]; unsigned int _param; - unsigned int _delay; + int _delay; unsigned int _mode; unsigned int _union_param; }; @@ -1688,8 +1696,7 @@ class FrskyField: public StructField { Append(new UnsignedField<8>(frsky.usrProto)); if (version >= 216) { Append(new UnsignedField<7>(frsky.voltsSource)); - // TODO altitude displayed - Append(new SpareBitsField<1>()); + Append(new BoolField<1>(frsky.altitudeDisplayed)); } else { Append(new UnsignedField<8>(frsky.voltsSource)); @@ -1718,10 +1725,9 @@ class FrskyField: public StructField { Append(new ConversionField< SignedField<6> >(frsky.rssiAlarms[i].value, -45+i*3)); } if (version >= 216) { - // TODO uint16_t mAhPersistent:1; - // uint16_t storedMah:15; - // int8_t fasOffset; - Append(new SpareBitsField<24>()); + Append(new BoolField<1>(frsky.mAhPersistent)); + Append(new UnsignedField<15>(frsky.storedMah)); + Append(new SignedField<8>(frsky.fasOffset)); } } else { @@ -1812,7 +1818,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u internalField.Append(new TimerModeField(modelData.timers[i].mode, board, version)); if ((IS_ARM(board) || IS_2560(board)) && version >= 216) { internalField.Append(new UnsignedField<16>(modelData.timers[i].val)); - internalField.Append(new BoolField<2>(modelData.timers[i].countdownBeep)); + internalField.Append(new UnsignedField<2>(modelData.timers[i].countdownBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); internalField.Append(new SpareBitsField<4>()); @@ -1820,7 +1826,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u } else if (release21March2013) { internalField.Append(new UnsignedField<12>(modelData.timers[i].val)); - internalField.Append(new BoolField<1>(modelData.timers[i].countdownBeep)); + internalField.Append(new BoolField<1>((bool &)modelData.timers[i].countdownBeep)); internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep)); if (HAS_PERSISTENT_TIMERS(board)) { internalField.Append(new BoolField<1>(modelData.timers[i].persistent)); @@ -1852,7 +1858,11 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u else internalField.Append(new ConversionField< SignedField<4> >(modelData.moduleData[0].channelsCount, &channelsConversionTable, "Channels number", ::QObject::tr("OpenTX doesn't allow this number of channels"))); - internalField.Append(new UnsignedField<3>(modelData.trimInc)); + if (version >= 216) + internalField.Append(new SignedField<3>(modelData.trimInc)); + else + internalField.Append(new ConversionField< SignedField<3> >(modelData.trimInc, +2)); + internalField.Append(new BoolField<1>(modelData.disableThrottleWarning)); if (IS_TARANIS(board) || (IS_ARM(board) && version >= 216)) @@ -1974,8 +1984,8 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u if (IS_TARANIS(board) && version >= 216) { // TODO ScriptData scriptsData[MAX_SCRIPTS]; internalField.Append(new SpareBitsField<720>()); - // TODO char inputNames[MAX_INPUTS][4]; - internalField.Append(new SpareBitsField<1024>()); + for (int i=0; i<32; i++) + internalField.Append(new ZCharField<4>(modelData.inputNames[i])); internalField.Append(new UnsignedField<8>(modelData.nSwToWarn)); internalField.Append(new UnsignedField<8>(modelData.nPotsToWarn)); for (int i=0; i < GetEepromInterface()->getCapability(PotWarnings); i++) { @@ -1991,8 +2001,10 @@ void Open9xModelDataNew::beforeExport() for (int module=0; module<3; module++) { if (modelData.moduleData[module].protocol >= PXX_XJT_X16 && modelData.moduleData[module].protocol <= PXX_XJT_LR12) subprotocols[module] = modelData.moduleData[module].protocol - PXX_XJT_X16; + else if (modelData.moduleData[module].protocol >= LP45 && modelData.moduleData[module].protocol <= DSMX) + subprotocols[module] = modelData.moduleData[module].protocol - LP45; else - subprotocols[module] = (module==0 ? -1:0); + subprotocols[module] = (module==0 ? -1 : 0); } } @@ -2001,9 +2013,9 @@ void Open9xModelDataNew::afterImport() // qDebug() << QString("after import model") << modelData.name ; for (int module=0; module<3; module++) { - if (modelData.moduleData[module].protocol == PXX_XJT_X16) { - if (subprotocols[module]>=0) - modelData.moduleData[module].protocol = PXX_XJT_X16 + subprotocols[module]; + if (modelData.moduleData[module].protocol == PXX_XJT_X16 || modelData.moduleData[module].protocol == LP45) { + if (subprotocols[module] >= 0) + modelData.moduleData[module].protocol += subprotocols[module]; else modelData.moduleData[module].protocol = OFF; } @@ -2024,12 +2036,21 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE if (version >= 213 || (!IS_ARM(board) && version >= 212)) internalField.Append(new UnsignedField<16>(generalData.variant)); - for (int i=0; i(generalData.calibMid[i])); - for (int i=0; i(generalData.calibSpanNeg[i])); - for (int i=0; i(generalData.calibSpanPos[i])); + if (version >= 216) { + for (int i=0; i(generalData.calibMid[i])); + internalField.Append(new SignedField<16>(generalData.calibSpanNeg[i])); + internalField.Append(new SignedField<16>(generalData.calibSpanPos[i])); + } + } + else { + for (int i=0; i(generalData.calibMid[i])); + for (int i=0; i(generalData.calibSpanNeg[i])); + for (int i=0; i(generalData.calibSpanPos[i])); + } internalField.Append(new UnsignedField<16>(chkSum)); internalField.Append(new UnsignedField<8>(generalData.currModel)); @@ -2060,7 +2081,7 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE internalField.Append(new SpareBitsField<1>()); internalField.Append(new UnsignedField<8>(generalData.inactivityTimer)); - if (IS_STOCK(board) && version >= 215) { + if (IS_9X(board) && version >= 215) { internalField.Append(new UnsignedField<3>(generalData.mavbaud)); } else { @@ -2123,6 +2144,12 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE internalField.Append(new SignedField<8>(generalData.varioVolume)); internalField.Append(new SignedField<8>(generalData.backgroundVolume)); } + 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])); + } + } } } diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h index 363c46677..67d051663 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.h +++ b/companion/src/firmwares/opentx/opentxeeprom.h @@ -74,8 +74,9 @@ class ProtocolsConversionTable: public ConversionTable ProtocolsConversionTable(BoardEnum board) { int val = 0; - if (IS_TARANIS(board)) + if (IS_TARANIS(board)) { addConversion(OFF, val++); + } addConversion(PPM, val++); if (!IS_ARM(board)) { addConversion(PPM16, val++); @@ -86,9 +87,13 @@ class ProtocolsConversionTable: public ConversionTable addConversion(PXX_XJT_D8, val); addConversion(PXX_XJT_LR12, val++); } - addConversion(PXX_DJT, val++); + else { + addConversion(PXX_DJT, val++); + } if (IS_TARANIS(board)) { - addConversion(DSM2, val++); + addConversion(LP45, val); + addConversion(DSM2, val); + addConversion(DSMX, val++); } else { addConversion(LP45, val++); @@ -126,7 +131,7 @@ class Open9xModelDataNew: public TransformedField { private: char name[256]; - signed int subprotocols[C9X_NUM_MODULES+1/*trainer*/]; + int subprotocols[C9X_NUM_MODULES+1/*trainer*/]; ProtocolsConversionTable protocolsConversionTable; ChannelsConversionTable channelsConversionTable; }; diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 58a5ecda9..adfa8101a 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -42,14 +42,10 @@ size_t SizeOfArray( T(&)[ N ] ) return N; } -QStringList o9xservers; - Open9xInterface::Open9xInterface(BoardEnum board): EEPROMInterface(board), efile(new EFile()) { - o9xservers.clear(); - o9xservers << "93.51.182.154" << "open9x.9xforums.com"; } Open9xInterface::~Open9xInterface() @@ -309,7 +305,7 @@ bool Open9xInterface::load(RadioData &radioData, uint8_t *eeprom, int size) std::cout << " wrong size (" << size << ")\n"; return false; } else { - QMessageBox::warning(NULL,"companion9x", QObject::tr("Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used")); + QMessageBox::warning(NULL, "companion", QObject::tr("Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used")); size=2048; } } else { @@ -517,10 +513,6 @@ int Open9xInterface::getCapability(const Capability capability) return 1; else return 0; - case minuteBeep: - return 1; - case countdownBeep: - return 1; case Pots: return (IS_TARANIS(board) ? 4 : 3); case Switches: @@ -598,14 +590,10 @@ int Open9xInterface::getCapability(const Capability capability) return 1; case ExtendedTrims: return 500; - case ExtraTrims: - return 1; case Simulation: return 1; case DSM2Indexes: return 1; - case FSSwitch: - return 1; case MixesWithoutExpo: return 1; case NumCurves: @@ -622,24 +610,12 @@ int Open9xInterface::getCapability(const Capability capability) return TM_HASTELEMETRY|TM_HASOFFSET|TM_HASWSHH; case TelemetryBars: return 1; - case TelemetryCSFields: - if (IS_TARANIS(board)) { - return 36; - } else { - return IS_ARM(board) ? 24 : 16; - } - case TelemetryColsCSFields: - if (IS_TARANIS(board)) { - return 3; - } else { - return 2; - } + case TelemetryCustomScreens: + return IS_TARANIS(board) ? 3 : 2; + case TelemetryCustomScreensFieldsPerLine: + return IS_TARANIS(board) ? 3 : 2; case NoTelemetryProtocol: - if (IS_TARANIS(board)) { - return 1; - } else { - return 0; - } + return IS_TARANIS(board) ? 1 : 0; case TelemetryUnits: return 0; case TelemetryBlades: @@ -699,11 +675,20 @@ int Open9xInterface::getCapability(const Capability capability) return (IS_TARANIS(board) ? 4 : IS_ARM(board) ? 3 : 0); case HasDisplayText: case VirtualInputs: + return IS_TARANIS(board) ? 32 : 0; case LuaInputs: case LimitsPer1000: case EnhancedCurves: case TelemetryInternalAlarms: return IS_TARANIS(board); + case HasFasOffset: + return (IS_STOCK(board) ? false : true); + case HasMahPersistent: + return (IS_ARM(board) ? true : false); + case MultiposPots: + return IS_TARANIS(board) ? 2 : 0; + case MultiposPotsPositions: + return IS_TARANIS(board) ? 6 : 0; default: return 0; } @@ -950,14 +935,9 @@ bool Open9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esiz QString geturl( int board) { - QString url="http://"; - QSettings settings("companion9x", "companion9x"); - int server = settings.value("fwserver", 0).toInt(); - if (server >= o9xservers.count()) { - server = 0; - settings.setValue("fwserver",server); - } - url.append(o9xservers.at(server)); + QSettings settings; + QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString(); + switch(board) { case BOARD_STOCK: case BOARD_M128: @@ -978,27 +958,21 @@ QString geturl( int board) QString getstamp( int board) { - QString url="http://"; - QSettings settings("companion9x", "companion9x"); - int server = settings.value("fwserver",0).toInt(); - if (server >=o9xservers.count()) { - server=0; - settings.setValue("fwserver",server); - } - url.append(o9xservers.at(server)); - url.append("/binaries/stamp-opentx-"); + QSettings settings; + QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString(); + url.append("/stamp-opentx-"); switch(board) { case BOARD_STOCK: - url.append("stock.txt"); + url.append("9x.txt"); break; case BOARD_M128: - url.append("stock128.txt"); + url.append("9x128.txt"); break; case BOARD_GRUVIN9X: - url.append("v4.txt"); + url.append("gruvin9x.txt"); break; case BOARD_SKY9X: - url.append("arm.txt"); + url.append("sky9x.txt"); break; case BOARD_TARANIS: case BOARD_TARANIS_REV4a: @@ -1013,16 +987,10 @@ QString getstamp( int board) QString getrnurl( int board) { - QString url="http://"; - QSettings settings("companion9x", "companion9x"); - int server = settings.value("fwserver",0).toInt(); - if (server >=o9xservers.count()) { - server=0; - settings.setValue("fwserver",server); - } - url.append(o9xservers.at(server)); - url.append("/docs/releasenotes-"); - switch(board) { + QSettings settings; + QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString(); + url.append("/releasenotes-"); + switch(board) { case BOARD_STOCK: case BOARD_M128: case BOARD_GRUVIN9X: @@ -1049,7 +1017,7 @@ void RegisterOpen9xFirmwares() Option extr_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } }; Option fai_options[] = { { "faichoice", QObject::tr("Possibility to enable FAI MODE at field") }, { "faimode", QObject::tr("FAI MODE always enabled") }, { NULL } }; /* 9x board */ - open9x = new Open9xFirmware("opentx-stock", QObject::tr("openTx for 9X board"), new Open9xInterface(BOARD_STOCK), geturl(BOARD_STOCK), getstamp(BOARD_STOCK), getrnurl(BOARD_STOCK), false); + open9x = new Open9xFirmware("opentx-9x", QObject::tr("openTx for 9X board"), new Open9xInterface(BOARD_STOCK), geturl(BOARD_STOCK), getstamp(BOARD_STOCK), getrnurl(BOARD_STOCK), false); open9x->addOptions(ext_options); open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu")); @@ -1081,11 +1049,12 @@ void RegisterOpen9xFirmwares() open9x->addOption("novario", QObject::tr("No vario support")); open9x->addOption("nogps", QObject::tr("No GPS support")); open9x->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); + open9x->addOption("fasoffset", QObject::tr("Allow compensating for offset errors in FrSky FAS current sensors")); open9x->addOptions(fai_options); firmwares.push_back(open9x); /* 9x board with M128 chip */ - open9x = new Open9xFirmware("opentx-stock128", QObject::tr("openTx for M128 / 9X board"), new Open9xInterface(BOARD_M128), geturl(BOARD_M128), getstamp(BOARD_M128),getrnurl(BOARD_M128), false); + open9x = new Open9xFirmware("opentx-9x128", QObject::tr("openTx for M128 / 9X board"), new Open9xInterface(BOARD_M128), geturl(BOARD_M128), getstamp(BOARD_M128),getrnurl(BOARD_M128), false); open9x->addOptions(ext_options); open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu")); @@ -1181,7 +1150,7 @@ void RegisterOpen9xFirmwares() firmwares.push_back(open9x); /* Gruvin9x board */ - open9x = new Open9xFirmware("opentx-v4", QObject::tr("openTx for Gruvin9x board / 9X"), new Open9xInterface(BOARD_GRUVIN9X), geturl(BOARD_GRUVIN9X), getstamp(BOARD_GRUVIN9X),getrnurl(BOARD_GRUVIN9X), false); + open9x = new Open9xFirmware("opentx-gruvin9x", QObject::tr("openTx for Gruvin9x board / 9X"), new Open9xInterface(BOARD_GRUVIN9X), geturl(BOARD_GRUVIN9X), getstamp(BOARD_GRUVIN9X),getrnurl(BOARD_GRUVIN9X), false); open9x->setVariantBase(FRSKY_VARIANT); open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu")); @@ -1245,7 +1214,7 @@ void RegisterOpen9xFirmwares() open9x->addOptions(fai_options); firmwares.push_back(open9x); - QSettings settings("companion9x", "companion9x"); + QSettings settings; int rev4a = settings.value("rev4asupport",0).toInt(); if (rev4a) { open9x = new Open9xFirmware("opentx-taranisrev4a", QObject::tr("openTx for FrSky Taranis Rev4a"), new Open9xInterface(BOARD_TARANIS_REV4a), geturl(BOARD_TARANIS_REV4a), getstamp(BOARD_TARANIS_REV4a),getrnurl(BOARD_TARANIS), true); diff --git a/companion/src/firmwares/opentx/opentxinterface.h b/companion/src/firmwares/opentx/opentxinterface.h index 82e8c7671..fb7f3df5c 100644 --- a/companion/src/firmwares/opentx/opentxinterface.h +++ b/companion/src/firmwares/opentx/opentxinterface.h @@ -18,6 +18,9 @@ #include "eeprominterface.h" +#define OPENTX_COMPANION_DOWNLOADS "http://downloads.open-tx.org/companion" +#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads.open-tx.org/firmware" + class EFile; class Open9xInterface : public EEPROMInterface @@ -91,6 +94,7 @@ class Open9xFirmware: public FirmwareInfo { addLanguage("se"); addLanguage("cz"); addLanguage("es"); + addLanguage("pl"); addLanguage("pt"); addTTSLanguage("en"); @@ -100,6 +104,7 @@ class Open9xFirmware: public FirmwareInfo { addTTSLanguage("se"); addTTSLanguage("cz"); addTTSLanguage("sk"); + addTTSLanguage("pl"); addTTSLanguage("pt"); addTTSLanguage("es"); } diff --git a/companion/src/firmwares/opentx/stamp-opentx.h.in b/companion/src/firmwares/opentx/stamp-opentx.h.in index ad88df035..1b56589f5 100644 --- a/companion/src/firmwares/opentx/stamp-opentx.h.in +++ b/companion/src/firmwares/opentx/stamp-opentx.h.in @@ -1,6 +1,5 @@ // Automatically generated file (CMake) - do not edit #define DATE_STR "@DATE@" #define TIME_STR "@TIME@" -#define VERS_STR "c9x" -#define SVN_STR "@FIRMWARE@-r@G9X_WC_REVISION@" +#define VERS_STR "@C9X_VERSION@" #define MOD_STR "FH" diff --git a/companion/src/firmwares/th9x/th9xinterface.cpp b/companion/src/firmwares/th9x/th9xinterface.cpp index d86065ddb..9bd0cbc4a 100644 --- a/companion/src/firmwares/th9x/th9xinterface.cpp +++ b/companion/src/firmwares/th9x/th9xinterface.cpp @@ -44,7 +44,7 @@ const char * Th9xInterface::getName() const int Th9xInterface::getEEpromSize() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString avrMCU = settings.value("mcu", QString("m64")).toString(); if (avrMCU==QString("m128")) { return 2*EESIZE_STOCK; diff --git a/companion/src/fusesdialog.ui b/companion/src/fusesdialog.ui index e7e6bbe9d..1a32ff96c 100644 --- a/companion/src/fusesdialog.ui +++ b/companion/src/fusesdialog.ui @@ -15,7 +15,7 @@ - :/images/fuses.png:/images/fuses.png + :/icon.png:/icon.png diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp index 0758f5e22..f197eb7b1 100644 --- a/companion/src/generaledit.cpp +++ b/companion/src/generaledit.cpp @@ -20,7 +20,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : ui->setupUi(this); this->setWindowIcon(QIcon(":/icon.png")); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString(); ui->tabWidget->setCurrentIndex(settings.value("generalEditTab", 0).toInt()); int profile_id=settings.value("profileId", 0).toInt(); @@ -64,7 +64,8 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : } this->layout()->removeItem(ui->TaranisReadOnlyUnlock); } - } else { + } + else { for (int i=0; pmsl[i]; i++) { pmsl[i]->hide(); } @@ -373,6 +374,18 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : for (int i=0; tpmsld[i]; i++) { connect(tpmsld[i], SIGNAL(valueChanged(int)),this,SLOT(unlockSwitchEdited())); } + + if (GetEepromInterface()->getCapability(MultiposPots)) { + ui->pot1Type->setCurrentIndex(g_eeGeneral.potsType[0]); + ui->pot2Type->setCurrentIndex(g_eeGeneral.potsType[1]); + } + else { + ui->potsTypeSeparator->hide(); + ui->pot1Type->hide(); + ui->pot1TypeLabel->hide(); + ui->pot2Type->hide(); + ui->pot2TypeLabel->hide(); + } } GeneralEdit::~GeneralEdit() @@ -380,6 +393,18 @@ GeneralEdit::~GeneralEdit() delete ui; } +void GeneralEdit::on_pot1Type_currentIndexChanged(int index) +{ + g_eeGeneral.potsType[0] = index; + updateSettings(); +} + +void GeneralEdit::on_pot2Type_currentIndexChanged(int index) +{ + g_eeGeneral.potsType[1] = index; + updateSettings(); +} + void GeneralEdit::unlockSwitchEdited() { int i=0; @@ -946,7 +971,7 @@ void GeneralEdit::on_PPM4_editingFinished() void GeneralEdit::on_tabWidget_currentChanged(int index) { // TODO why er9x here - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("generalEditTab",index);//ui->tabWidget->currentIndex()); } @@ -1195,7 +1220,7 @@ void GeneralEdit::on_swGEAChkB_stateChanged(int ) void GeneralEdit::on_calretrieve_PB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profile_id); @@ -1312,7 +1337,7 @@ void GeneralEdit::on_calretrieve_PB_clicked() void GeneralEdit::on_calstore_PB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profile_id); diff --git a/companion/src/generaledit.h b/companion/src/generaledit.h index eb6895d13..ce160dc0b 100644 --- a/companion/src/generaledit.h +++ b/companion/src/generaledit.h @@ -119,6 +119,9 @@ private slots: void on_varioVolume_SL_valueChanged(); void on_wavVolume_SL_valueChanged(); + void on_pot1Type_currentIndexChanged(int index); + void on_pot2Type_currentIndexChanged(int index); + void on_stickmodeCB_currentIndexChanged(int index); void on_channelorderCB_currentIndexChanged(int index); void on_beeperCB_currentIndexChanged(int index); diff --git a/companion/src/generaledit.ui b/companion/src/generaledit.ui index 48a7445b5..29b17eb7d 100644 --- a/companion/src/generaledit.ui +++ b/companion/src/generaledit.ui @@ -110,7 +110,7 @@ These will be relevant for all models in the same EEPROM. - 0 + 3 @@ -3494,6 +3494,91 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 10 + + + + Qt::Horizontal + + + + + + + + + + + + + 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. + + + + Pot (normal) + + + + + Multipos Switch + + + + + + + + S1 Type + + + + + + + + + + + + + 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. + + + + Pot (normal) + + + + + Multipos Switch + + + + + + + + S2 Type + + + diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index 7c5046b31..2a5e4f2fc 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -12,15 +12,28 @@ QString getPhaseName(int val, char * phasename) phaseName.append(phasename); if (phaseName.isEmpty()) { return QString(val < 0 ? "!" : "") + QObject::tr("FM%1").arg(abs(val) - 1); - } else { + } + else { return QString(val < 0 ? "!" : "") + phaseName; } } } -QString getStickStr(int index) +QString getInputStr(ModelData & model, int index) { - return RawSource(SOURCE_TYPE_STICK, index).toString(); + QString result; + + if (GetEepromInterface()->getCapability(VirtualInputs)) { + result = model.inputNames[index]; + if (result.isEmpty()) { + result = QObject::tr("Input%1").arg(index+1, 2, 10, QChar('0')); + } + } + else { + result = RawSource(SOURCE_TYPE_STICK, index).toString(); + } + + return result; } void populateGvSourceCB(QComboBox *b, int value) @@ -63,7 +76,7 @@ void populateTTraceCB(QComboBox *b, int value) } int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16); for (int i=1; i<= channels; i++) { - b->addItem(QObject::tr("CH")+QString("%1").arg(i,2,10,QChar('0'))); + b->addItem(QObject::tr("CH%1").arg(i, 2, 10, QChar('0'))); } b->setCurrentIndex(value); } @@ -162,6 +175,7 @@ QString getFuncName(unsigned int val) } } +// TODO should be a toString() method in CustoSwData ... QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model) { QString result = ""; @@ -176,7 +190,8 @@ QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model) result = QString("TIM(%1 , %2)").arg(ValToTim(customSw->val1)).arg(ValToTim(customSw->val2)); break; case CS_FAMILY_VOFS: { - RawSource source = RawSource(customSw->val1); + RawSource source = RawSource(customSw->val1, &model); + RawSourceRange range = source.getRange(); if (customSw->val1) result += source.toString(); else @@ -191,7 +206,7 @@ QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model) result += " > "; else if (customSw->func == CS_FN_ANEG || customSw->func == CS_FN_VNEG) result += " < "; - result += QString::number(source.getStep(model) * (customSw->val2 + source.getRawOffset(model)) + source.getOffset(model)); + result += QString::number(range.step * (customSw->val2 /*TODO+ source.getRawOffset(model)*/) + range.offset); break; } case CS_FAMILY_VBOOL: @@ -387,7 +402,7 @@ void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QS } } -void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode) +void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode) { QStringList qs; b->clear(); @@ -407,22 +422,30 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign qs.append( QObject::tr("Timer2")); qs.append( QObject::tr("All")); qs.append( QObject::tr("Telemetry")); + int reCount = GetEepromInterface()->getCapability(RotaryEncoders); + if (reCount == 1) { + qs.append( QObject::tr("Rotary Encoder")); + } + else if (reCount == 2) { + qs.append( QObject::tr("REa")); + qs.append( QObject::tr("REb")); + } b->addItems(qs); b->setCurrentIndex(value); } else if (function==FuncVolume) { - populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS); + populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS); } else if (function==FuncPlayValue) { - populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT); + populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT); } else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) { switch (adjustmode) { case 1: - populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES); + populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES); break; case 2: - populateSourceCB(b, RawSource(value), POPULATE_GVARS); + populateSourceCB(b, RawSource(value), model, POPULATE_GVARS); break; case 3: b->clear(); @@ -437,17 +460,6 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign } } -void populateRepeatCB(QComboBox *b, unsigned int value) -{ - b->clear(); - b->addItem(QObject::tr("No repeat", 0)); - unsigned int step = IS_ARM(GetEepromInterface()->getBoard()) ? 5 : 10; - for (unsigned int i=step; i<=60; i+=step) { - b->addItem(QObject::tr("%1s").arg(i), i); - if (i==value) b->setCurrentIndex(b->count()-1); - } -} - void populateGVmodeCB(QComboBox *b, unsigned int value) { b->clear(); @@ -471,6 +483,78 @@ void populatePhasesCB(QComboBox *b, int value) b->setCurrentIndex(value + GetEepromInterface()->getCapability(FlightPhases)); } +bool gvarsEnabled() +{ + int gvars=0; + if (GetEepromInterface()->getCapability(HasVariants)) { + if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { + gvars=1; + } + } + else { + gvars=1; + } + return gvars; +} + +GVarGroup::GVarGroup(QCheckBox *weightGV, QSpinBox *weightSB, QComboBox *weightCB, int & weight, const int deflt, const int mini, const int maxi, const unsigned int flags): + QObject(), + weightGV(weightGV), + weightSB(weightSB), + weightCB(weightCB), + weight(weight), + flags(flags), + lock(false) +{ + lock = true; + + if (gvarsEnabled()) { + populateGVCB(weightCB, weight); + connect(weightGV, SIGNAL(stateChanged(int)), this, SLOT(gvarCBChanged(int))); + connect(weightCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); + } + else { + weightGV->hide(); + if (weight > maxi || weight < -mini) { + weight = deflt; + } + } + + weightSB->setMinimum(mini); + weightSB->setMaximum(maxi); + + if (weight>maxi || weightsetChecked(true); + weightSB->hide(); + weightCB->show(); + } + else { + weightGV->setChecked(false); + weightSB->setValue(weight); + weightSB->show(); + weightCB->hide(); + } + + connect(weightSB, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); + + lock = false; +} + +void GVarGroup::gvarCBChanged(int state) +{ + weightCB->setVisible(state); + weightSB->setVisible(!state); + valuesChanged(); +} + +void GVarGroup::valuesChanged() +{ + if (weightGV->isChecked()) + weight = weightCB->itemData(weightCB->currentIndex()).toInt(); + else + weight = weightSB->value(); +} + CurveGroup::CurveGroup(QComboBox *curveTypeCB, QCheckBox *curveGVarCB, QComboBox *curveValueCB, QSpinBox *curveValueSB, CurveReference & curve, unsigned int flags): QObject(), curveTypeCB(curveTypeCB), @@ -758,6 +842,8 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, return; } +#if 0 + // TODO check ... I removed negative toggle switches in the FW, no? if (attr & POPULATE_MSWITCHES) { if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_ONM, 1); @@ -776,6 +862,7 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, if (item == value) b->setCurrentIndex(b->count()-1); } } +#endif if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_OFF); @@ -821,6 +908,14 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, if (item == value) b->setCurrentIndex(b->count()-1); } + if (IS_TARANIS(GetEepromInterface()->getBoard())) { + for (int i=0; igetCapability(MultiposPots) * GetEepromInterface()->getCapability(MultiposPotsPositions); i++) { + item = RawSwitch(SWITCH_TYPE_MULTIPOS_POT, i); + b->addItem(item.toString(), item.toValue()); + if (item == value) b->setCurrentIndex(b->count()-1); + } + } + if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_ON); b->addItem(item.toString(), item.toValue()); @@ -914,8 +1009,7 @@ void populateGVCB(QComboBox *b, int value) b->setCurrentIndex(nullitem); } - -void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags) +void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData & model, unsigned int flags) { RawSource item; @@ -925,7 +1019,18 @@ void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags) item = RawSource(SOURCE_TYPE_NONE); b->addItem(item.toString(), item.toValue()); if (item == source) b->setCurrentIndex(b->count()-1); + } + if (flags & POPULATE_VIRTUAL_INPUTS) { + int virtualInputs = GetEepromInterface()->getCapability(VirtualInputs); + for (int i=0; iaddItem(item.toString(), item.toValue()); + if (item == source) b->setCurrentIndex(b->count()-1); + } + } + + if (flags & POPULATE_SOURCES) { for (int i=0; i<4+GetEepromInterface()->getCapability(Pots); i++) { item = RawSource(SOURCE_TYPE_STICK, i); b->addItem(item.toString(), item.toValue()); @@ -992,7 +1097,8 @@ void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags) b->addItem(item.toString(), item.toValue()); if (item == source) b->setCurrentIndex(b->count()-1); } - } else if (flags & POPULATE_TELEMETRY) { + } + else if (flags & POPULATE_TELEMETRY) { for (int i=0; iaddItem(item.toString(), item.toValue()); @@ -1221,109 +1327,6 @@ QString getFrSkySrc(int index) return RawSource(SOURCE_TYPE_TELEMETRY, index-1).toString(); } - -/* - 1,2) Timer1/Timer2 0:765 - 3,4) TX/RX - 5) A1 range - 6) A2 range - 7) ALT 0-1020 - 8)RPM 0-12750 - 9FUEL 0-100% - 10) T1 -30-225 - 11) T2 -30-225 - 12) spd 0-510 - 13) dist 0-2040 - 14)GAlt 0-1020 - 15) cell 0-5.1 - 16) Cels 0 25.5 - 17) Vfas 0 25.5 - 18) Curr 0 127.5 - 19) Cnsp 0 5100 - 20) Powr 0 1275 - 21) AccX 0 2.55 - 22) AccY 0 2.55 - 23) AccZ 0 2.55 - 24) Hdg 0 255 - 25) VSpd 0 2.55 - 26) A1- A1 range - 27) A2- A2 range - 28) Alt- 0 255 - 29) Alt+ 0 255 - 30) Rpm+ 0 255 - 31) T1+ 0 255 (s????) - 32) T2+ 0 255 (e????) - 33) Spd+ 0 255 (ILG???) - 34) Dst+ 0 255 (v ????) - 35) Cur+ 0 25.5 (A) - 1.852 - */ - -float getBarValue(int barId, int value, FrSkyData *fd) -{ - switch (barId-1) { - case TELEMETRY_SOURCE_TX_BATT: - return value/10.0; - case TELEMETRY_SOURCE_TIMER1: - case TELEMETRY_SOURCE_TIMER2: - return (3*value); - case TELEMETRY_SOURCE_RSSI_TX: - case TELEMETRY_SOURCE_RSSI_RX: - case TELEMETRY_SOURCE_FUEL: - return std::min(100, value); - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A1_MIN: - if (fd->channels[0].type==0) - return ((fd->channels[0].ratio*value/255.0)+fd->channels[0].offset)/10; - else - return ((fd->channels[0].ratio*value/255.0)+fd->channels[0].offset); - case TELEMETRY_SOURCE_A2: - case TELEMETRY_SOURCE_A2_MIN: - if (fd->channels[1].type==0) - return ((fd->channels[1].ratio*value/255.0)+fd->channels[1].offset)/10; - else - return ((fd->channels[1].ratio*value/255.0)+fd->channels[1].offset); - case TELEMETRY_SOURCE_ALT: - case TELEMETRY_SOURCE_GPS_ALT: - case TELEMETRY_SOURCE_ALT_MAX: - case TELEMETRY_SOURCE_ALT_MIN: - return (8*value)-500; - case TELEMETRY_SOURCE_RPM: - case TELEMETRY_SOURCE_RPM_MAX: - return value * 50; - case TELEMETRY_SOURCE_T1: - case TELEMETRY_SOURCE_T2: - case TELEMETRY_SOURCE_T1_MAX: - case TELEMETRY_SOURCE_T2_MAX: - return value - 30.0; - case TELEMETRY_SOURCE_CELL: - return value*2.0/100; - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - return value/10.0; - case TELEMETRY_SOURCE_HDG: - return std::min(359, value*2); - case TELEMETRY_SOURCE_DIST_MAX: - case TELEMETRY_SOURCE_DIST: - return value * 8; - case TELEMETRY_SOURCE_CURRENT_MAX: - case TELEMETRY_SOURCE_CURRENT: - return value/2.0; - case TELEMETRY_SOURCE_POWER: - return value*5; - case TELEMETRY_SOURCE_CONSUMPTION: - return value * 20; - case TELEMETRY_SOURCE_SPEED: - case TELEMETRY_SOURCE_SPEED_MAX: - if (fd->imperial==1) - return value; - else - return value*1.852; - default: - return value; - } -} - QString getTrimInc(ModelData * g_model) { switch (g_model->trimInc) { @@ -1400,3 +1403,35 @@ QString getCenterBeep(ModelData * g_model) if(g_model->beepANACenter & 0x80) strl << "LS"; return strl.join(", "); } + +QString getTheme() +{ + QSettings settings; + int theme_set = settings.value("theme", 1).toInt(); + QString Theme; + switch(theme_set) { + case 0: + Theme="classic"; + break; + case 2: + Theme="monowhite"; + break; + case 3: + Theme="monoblue"; + break; + default: + Theme="monochrome"; + break; + } + return Theme; +} + +CompanionIcon::CompanionIcon(QString baseimage) +{ + static QString theme = getTheme(); + addFile(":/themes/"+theme+"/16/"+baseimage, QSize(16,16)); + addFile(":/themes/"+theme+"/24/"+baseimage, QSize(24,24)); + addFile(":/themes/"+theme+"/32/"+baseimage, QSize(32,32)); + addFile(":/themes/"+theme+"/48/"+baseimage, QSize(48,48)); +} + diff --git a/companion/src/helpers.h b/companion/src/helpers.h index bc61e2894..9cef155e7 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -29,6 +29,33 @@ void populateTTraceCB(QComboBox *b, int value); void populateRotEncCB(QComboBox *b, int value, int renumber); void populateBacklightCB(QComboBox *b, const uint8_t value); +QString getTheme(); + +class CompanionIcon: public QIcon { + public: + CompanionIcon(QString baseimage); +}; + +class GVarGroup : public QObject { + + Q_OBJECT + + public: + GVarGroup(QCheckBox *weightGV, QSpinBox *weightSB, QComboBox *weightCB, int & weight, const int deflt, const int mini, const int maxi, const unsigned int flags=0); + + protected slots: + void gvarCBChanged(int); + void valuesChanged(); + + protected: + QCheckBox *weightGV; + QSpinBox *weightSB; + QComboBox *weightCB; + int & weight; + const unsigned int flags; + bool lock; +}; + class CurveGroup : public QObject { Q_OBJECT @@ -57,10 +84,9 @@ class CurveGroup : public QObject { #define POPULATE_AND_SWITCHES 0x04 void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr=0, UseContext context=DefaultContext); void populateFuncCB(QComboBox *b, unsigned int value); -void populateRepeatCB(QComboBox *b, unsigned int value); void populateGVmodeCB(QComboBox *b, unsigned int value); QString FuncParam(uint function, int value, QString paramT="",unsigned int adjustmode=0); -void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode=0); +void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode=0); void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList); void populatePhasesCB(QComboBox *b, int value); void populateTrimUseCB(QComboBox *b, unsigned int phase); @@ -71,24 +97,25 @@ QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model); QString getProtocolStr(const int proto); QString getPhasesStr(unsigned int phases, ModelData & model); -#define POPULATE_SOURCES 1 -#define POPULATE_TRIMS 2 -#define POPULATE_SWITCHES 4 -#define POPULATE_GVARS 8 -#define POPULATE_TELEMETRY 16 -#define POPULATE_TELEMETRYEXT 32 +#define POPULATE_SOURCES 1 +#define POPULATE_TRIMS 2 +#define POPULATE_SWITCHES 4 +#define POPULATE_GVARS 8 +#define POPULATE_TELEMETRY 16 +#define POPULATE_TELEMETRYEXT 32 +#define POPULATE_VIRTUAL_INPUTS 64 #define GVARS_VARIANT 0x0001 #define FRSKY_VARIANT 0x0002 // void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up void populateGVCB(QComboBox *b, int value); -void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags); +void populateSourceCB(QComboBox *b, const RawSource &source, const ModelData & model, unsigned int flags); void populateCSWCB(QComboBox *b, int value); QString getTimerMode(int tm); QString getTimerModeB(int tm); QString getPhaseName(int val, char * phasename=NULL); -QString getStickStr(int index); +QString getInputStr(ModelData & model, int index); QString getCSWFunc(int val); QString getFuncName(unsigned int val); QString getRepeatString(unsigned int val); @@ -110,7 +137,7 @@ QString getFrSkyUnits(int units); QString getFrSkyProtocol(int protocol); QString getFrSkyMeasure(int units); QString getFrSkySrc(int index); -float getBarValue(int barId, int value, FrSkyData *fd); + float c9xexpou(float point, float coeff); float ValToTim(int value); int TimToVal(float value); diff --git a/companion/src/icon.ico b/companion/src/icon.ico index bb088b1ae..e81c703b7 100644 Binary files a/companion/src/icon.ico and b/companion/src/icon.ico differ diff --git a/companion/src/icon.png b/companion/src/icon.png index 6ceee4f23..2936917c7 100644 Binary files a/companion/src/icon.png and b/companion/src/icon.png differ diff --git a/companion/src/images/companion-title.png b/companion/src/images/companion-title.png index cbaa0d13b..05f3b8709 100644 Binary files a/companion/src/images/companion-title.png and b/companion/src/images/companion-title.png differ diff --git a/companion/src/images/er9x_manual.png b/companion/src/images/er9x_manual.png deleted file mode 100644 index 98f026c72..000000000 Binary files a/companion/src/images/er9x_manual.png and /dev/null differ diff --git a/companion/src/images/iconmac.icns b/companion/src/images/iconmac.icns index 0e20c9fe3..579b285c1 100644 Binary files a/companion/src/images/iconmac.icns and b/companion/src/images/iconmac.icns differ diff --git a/companion/src/images/linuxicons/128x128/companion.png b/companion/src/images/linuxicons/128x128/companion.png index 6f1616ca2..9b4ad31a2 100644 Binary files a/companion/src/images/linuxicons/128x128/companion.png and b/companion/src/images/linuxicons/128x128/companion.png differ diff --git a/companion/src/images/linuxicons/16x16/companion.png b/companion/src/images/linuxicons/16x16/companion.png new file mode 100644 index 000000000..7fa027e14 Binary files /dev/null and b/companion/src/images/linuxicons/16x16/companion.png differ diff --git a/companion/src/images/linuxicons/22x22/companion.png b/companion/src/images/linuxicons/22x22/companion.png new file mode 100644 index 000000000..b71e62d6a Binary files /dev/null and b/companion/src/images/linuxicons/22x22/companion.png differ diff --git a/companion/src/images/linuxicons/24x24/companion.png b/companion/src/images/linuxicons/24x24/companion.png new file mode 100644 index 000000000..0ae5ffe17 Binary files /dev/null and b/companion/src/images/linuxicons/24x24/companion.png differ diff --git a/companion/src/images/linuxicons/256x256/companion.png b/companion/src/images/linuxicons/256x256/companion.png index 684517666..1ed7a9ae9 100644 Binary files a/companion/src/images/linuxicons/256x256/companion.png and b/companion/src/images/linuxicons/256x256/companion.png differ diff --git a/companion/src/images/linuxicons/32x32/companion.png b/companion/src/images/linuxicons/32x32/companion.png index df79707a5..0b7375c0c 100644 Binary files a/companion/src/images/linuxicons/32x32/companion.png and b/companion/src/images/linuxicons/32x32/companion.png differ diff --git a/companion/src/images/linuxicons/48x48/companion.png b/companion/src/images/linuxicons/48x48/companion.png index 99357930d..d591f97d2 100644 Binary files a/companion/src/images/linuxicons/48x48/companion.png and b/companion/src/images/linuxicons/48x48/companion.png differ diff --git a/companion/src/images/linuxicons/512x512/companion.png b/companion/src/images/linuxicons/512x512/companion.png index 7e9078b2e..6938b2c42 100644 Binary files a/companion/src/images/linuxicons/512x512/companion.png and b/companion/src/images/linuxicons/512x512/companion.png differ diff --git a/companion/src/images/linuxicons/scalable/companion.svg b/companion/src/images/linuxicons/scalable/companion.svg index 40a99a3b0..95f040b15 100644 --- a/companion/src/images/linuxicons/scalable/companion.svg +++ b/companion/src/images/linuxicons/scalable/companion.svg @@ -1,104 +1,340 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - COMPANION - - - - - - O - - - - - P - - - - - E - - - - - N - - - - - - - - - \ No newline at end of file + +image/svg+xml +O +P +E +N + \ No newline at end of file diff --git a/companion/src/images/add.png b/companion/src/images/originals/classical icons/add.png similarity index 100% rename from companion/src/images/add.png rename to companion/src/images/originals/classical icons/add.png diff --git a/companion/src/images/arrow-left.png b/companion/src/images/originals/classical icons/arrow-left.png similarity index 100% rename from companion/src/images/arrow-left.png rename to companion/src/images/originals/classical icons/arrow-left.png diff --git a/companion/src/images/arrow-right.png b/companion/src/images/originals/classical icons/arrow-right.png similarity index 100% rename from companion/src/images/arrow-right.png rename to companion/src/images/originals/classical icons/arrow-right.png diff --git a/companion/src/images/changelog.png b/companion/src/images/originals/classical icons/changelog.png similarity index 100% rename from companion/src/images/changelog.png rename to companion/src/images/originals/classical icons/changelog.png diff --git a/companion/src/images/clear.png b/companion/src/images/originals/classical icons/clear.png similarity index 100% rename from companion/src/images/clear.png rename to companion/src/images/originals/classical icons/clear.png diff --git a/companion/src/images/compare.png b/companion/src/images/originals/classical icons/compare.png similarity index 100% rename from companion/src/images/compare.png rename to companion/src/images/originals/classical icons/compare.png diff --git a/companion/src/images/configure.png b/companion/src/images/originals/classical icons/configure.png similarity index 100% rename from companion/src/images/configure.png rename to companion/src/images/originals/classical icons/configure.png diff --git a/companion/src/images/contributors.png b/companion/src/images/originals/classical icons/contributors.png similarity index 100% rename from companion/src/images/contributors.png rename to companion/src/images/originals/classical icons/contributors.png diff --git a/companion/src/images/copy.png b/companion/src/images/originals/classical icons/copy.png similarity index 100% rename from companion/src/images/copy.png rename to companion/src/images/originals/classical icons/copy.png diff --git a/companion/src/images/currentmodel.png b/companion/src/images/originals/classical icons/currentmodel.png similarity index 100% rename from companion/src/images/currentmodel.png rename to companion/src/images/originals/classical icons/currentmodel.png diff --git a/companion/src/images/cut.png b/companion/src/images/originals/classical icons/cut.png similarity index 100% rename from companion/src/images/cut.png rename to companion/src/images/originals/classical icons/cut.png diff --git a/companion/src/images/duplicate.png b/companion/src/images/originals/classical icons/duplicate.png similarity index 100% rename from companion/src/images/duplicate.png rename to companion/src/images/originals/classical icons/duplicate.png diff --git a/companion/src/images/edit.png b/companion/src/images/originals/classical icons/edit.png similarity index 100% rename from companion/src/images/edit.png rename to companion/src/images/originals/classical icons/edit.png diff --git a/companion/src/images/exit.png b/companion/src/images/originals/classical icons/exit.png similarity index 100% rename from companion/src/images/exit.png rename to companion/src/images/originals/classical icons/exit.png diff --git a/companion/src/images/fuses.png b/companion/src/images/originals/classical icons/fuses.png similarity index 100% rename from companion/src/images/fuses.png rename to companion/src/images/originals/classical icons/fuses.png diff --git a/companion/src/images/originals/classical icons/information.png b/companion/src/images/originals/classical icons/information.png new file mode 100644 index 000000000..76b6d5966 Binary files /dev/null and b/companion/src/images/originals/classical icons/information.png differ diff --git a/companion/src/images/library.png b/companion/src/images/originals/classical icons/library.png similarity index 100% rename from companion/src/images/library.png rename to companion/src/images/originals/classical icons/library.png diff --git a/companion/src/images/list.png b/companion/src/images/originals/classical icons/list.png similarity index 100% rename from companion/src/images/list.png rename to companion/src/images/originals/classical icons/list.png diff --git a/companion/src/images/logs.png b/companion/src/images/originals/classical icons/logs.png similarity index 100% rename from companion/src/images/logs.png rename to companion/src/images/originals/classical icons/logs.png diff --git a/companion/src/images/movedown.png b/companion/src/images/originals/classical icons/movedown.png similarity index 100% rename from companion/src/images/movedown.png rename to companion/src/images/originals/classical icons/movedown.png diff --git a/companion/src/images/moveup.png b/companion/src/images/originals/classical icons/moveup.png similarity index 100% rename from companion/src/images/moveup.png rename to companion/src/images/originals/classical icons/moveup.png diff --git a/companion/src/images/new.png b/companion/src/images/originals/classical icons/new.png similarity index 100% rename from companion/src/images/new.png rename to companion/src/images/originals/classical icons/new.png diff --git a/companion/src/images/open.png b/companion/src/images/originals/classical icons/open.png similarity index 100% rename from companion/src/images/open.png rename to companion/src/images/originals/classical icons/open.png diff --git a/companion/src/images/originals/classical icons/paintbrush.png b/companion/src/images/originals/classical icons/paintbrush.png new file mode 100644 index 000000000..814fdb47e Binary files /dev/null and b/companion/src/images/originals/classical icons/paintbrush.png differ diff --git a/companion/src/images/paste.png b/companion/src/images/originals/classical icons/paste.png similarity index 100% rename from companion/src/images/paste.png rename to companion/src/images/originals/classical icons/paste.png diff --git a/companion/src/images/play.png b/companion/src/images/originals/classical icons/play.png similarity index 100% rename from companion/src/images/play.png rename to companion/src/images/originals/classical icons/play.png diff --git a/companion/src/images/preferences.png b/companion/src/images/originals/classical icons/preferences.png similarity index 100% rename from companion/src/images/preferences.png rename to companion/src/images/originals/classical icons/preferences.png diff --git a/companion/src/images/print.png b/companion/src/images/originals/classical icons/print.png similarity index 100% rename from companion/src/images/print.png rename to companion/src/images/originals/classical icons/print.png diff --git a/companion/src/images/profiles.png b/companion/src/images/originals/classical icons/profiles.png similarity index 100% rename from companion/src/images/profiles.png rename to companion/src/images/originals/classical icons/profiles.png diff --git a/companion/src/images/read_eeprom.png b/companion/src/images/originals/classical icons/read_eeprom.png similarity index 100% rename from companion/src/images/read_eeprom.png rename to companion/src/images/originals/classical icons/read_eeprom.png diff --git a/companion/src/images/read_eeprom_file.png b/companion/src/images/originals/classical icons/read_eeprom_file.png similarity index 100% rename from companion/src/images/read_eeprom_file.png rename to companion/src/images/originals/classical icons/read_eeprom_file.png diff --git a/companion/src/images/read_flash.png b/companion/src/images/originals/classical icons/read_flash.png similarity index 100% rename from companion/src/images/read_flash.png rename to companion/src/images/originals/classical icons/read_flash.png diff --git a/companion/src/images/recentdocument.png b/companion/src/images/originals/classical icons/recentdocument.png similarity index 100% rename from companion/src/images/recentdocument.png rename to companion/src/images/originals/classical icons/recentdocument.png diff --git a/companion/src/images/save.png b/companion/src/images/originals/classical icons/save.png similarity index 100% rename from companion/src/images/save.png rename to companion/src/images/originals/classical icons/save.png diff --git a/companion/src/images/saveas.png b/companion/src/images/originals/classical icons/saveas.png similarity index 100% rename from companion/src/images/saveas.png rename to companion/src/images/originals/classical icons/saveas.png diff --git a/companion/src/images/simulate.png b/companion/src/images/originals/classical icons/simulate.png similarity index 100% rename from companion/src/images/simulate.png rename to companion/src/images/originals/classical icons/simulate.png diff --git a/companion/src/images/stop.png b/companion/src/images/originals/classical icons/stop.png similarity index 100% rename from companion/src/images/stop.png rename to companion/src/images/originals/classical icons/stop.png diff --git a/companion/src/images/switch_dir.png b/companion/src/images/originals/classical icons/switch_dir.png similarity index 100% rename from companion/src/images/switch_dir.png rename to companion/src/images/originals/classical icons/switch_dir.png diff --git a/companion/src/images/update.png b/companion/src/images/originals/classical icons/update.png similarity index 100% rename from companion/src/images/update.png rename to companion/src/images/originals/classical icons/update.png diff --git a/companion/src/images/wizard.png b/companion/src/images/originals/classical icons/wizard.png similarity index 100% rename from companion/src/images/wizard.png rename to companion/src/images/originals/classical icons/wizard.png diff --git a/companion/src/images/write_eeprom.png b/companion/src/images/originals/classical icons/write_eeprom.png similarity index 100% rename from companion/src/images/write_eeprom.png rename to companion/src/images/originals/classical icons/write_eeprom.png diff --git a/companion/src/images/write_eeprom_file.png b/companion/src/images/originals/classical icons/write_eeprom_file.png similarity index 100% rename from companion/src/images/write_eeprom_file.png rename to companion/src/images/originals/classical icons/write_eeprom_file.png diff --git a/companion/src/images/write_flash.png b/companion/src/images/originals/classical icons/write_flash.png similarity index 100% rename from companion/src/images/write_flash.png rename to companion/src/images/originals/classical icons/write_flash.png diff --git a/companion/src/images/originals/companion9x-title.xcf b/companion/src/images/originals/companion-title.xcf similarity index 100% rename from companion/src/images/originals/companion9x-title.xcf rename to companion/src/images/originals/companion-title.xcf diff --git a/companion/src/images/originals/vector-logo.odg b/companion/src/images/originals/logotypes/old_opentx_companion_logo.odg similarity index 100% rename from companion/src/images/originals/vector-logo.odg rename to companion/src/images/originals/logotypes/old_opentx_companion_logo.odg diff --git a/companion/src/images/originals/logotypes/opentx_2_logo.png b/companion/src/images/originals/logotypes/opentx_2_logo.png new file mode 100644 index 000000000..aae169a8a Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_2_logo.png differ diff --git a/companion/src/images/originals/logotypes/opentx_2_logo.svg b/companion/src/images/originals/logotypes/opentx_2_logo.svg new file mode 100644 index 000000000..41b597ebe --- /dev/null +++ b/companion/src/images/originals/logotypes/opentx_2_logo.svg @@ -0,0 +1,361 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/companion/src/images/originals/logotypes/opentx_companion_logo.png b/companion/src/images/originals/logotypes/opentx_companion_logo.png new file mode 100644 index 000000000..a7c3a9032 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_companion_logo.png differ diff --git a/companion/src/images/originals/logotypes/opentx_companion_logo.svg b/companion/src/images/originals/logotypes/opentx_companion_logo.svg new file mode 100644 index 000000000..90a78b883 --- /dev/null +++ b/companion/src/images/originals/logotypes/opentx_companion_logo.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/companion/src/images/originals/logotypes/opentx_logo.png b/companion/src/images/originals/logotypes/opentx_logo.png new file mode 100644 index 000000000..f1af0cdb4 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo.svg b/companion/src/images/originals/logotypes/opentx_logo.svg new file mode 100644 index 000000000..95f040b15 --- /dev/null +++ b/companion/src/images/originals/logotypes/opentx_logo.svg @@ -0,0 +1,340 @@ + +image/svg+xml +O +P +E +N + \ No newline at end of file diff --git a/companion/src/images/originals/logotypes/opentx_logo_128x128.png b/companion/src/images/originals/logotypes/opentx_logo_128x128.png new file mode 100644 index 000000000..9b4ad31a2 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_128x128.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_16x16.png b/companion/src/images/originals/logotypes/opentx_logo_16x16.png new file mode 100644 index 000000000..7fa027e14 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_16x16.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_22x22.png b/companion/src/images/originals/logotypes/opentx_logo_22x22.png new file mode 100644 index 000000000..b71e62d6a Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_22x22.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_24x24.png b/companion/src/images/originals/logotypes/opentx_logo_24x24.png new file mode 100644 index 000000000..0ae5ffe17 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_24x24.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_256x256.png b/companion/src/images/originals/logotypes/opentx_logo_256x256.png new file mode 100644 index 000000000..1ed7a9ae9 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_256x256.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_32x32.png b/companion/src/images/originals/logotypes/opentx_logo_32x32.png new file mode 100644 index 000000000..0b7375c0c Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_32x32.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_48x48.png b/companion/src/images/originals/logotypes/opentx_logo_48x48.png new file mode 100644 index 000000000..d591f97d2 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_48x48.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_512x512.png b/companion/src/images/originals/logotypes/opentx_logo_512x512.png new file mode 100644 index 000000000..6938b2c42 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_512x512.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_64x64.png b/companion/src/images/originals/logotypes/opentx_logo_64x64.png new file mode 100644 index 000000000..0ae7c8682 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_64x64.png differ diff --git a/companion/src/images/originals/logotypes/opentx_logo_96x96.png b/companion/src/images/originals/logotypes/opentx_logo_96x96.png new file mode 100644 index 000000000..2936917c7 Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_96x96.png differ diff --git a/companion/src/images/originals/monochrome icons/add64.png b/companion/src/images/originals/monochrome icons/add64.png new file mode 100644 index 000000000..718fad0c8 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/add64.png differ diff --git a/companion/src/images/originals/monochrome icons/arrow-left64.png b/companion/src/images/originals/monochrome icons/arrow-left64.png new file mode 100644 index 000000000..6fd004a19 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-left64.png differ diff --git a/companion/src/images/originals/monochrome icons/arrow-right64.png b/companion/src/images/originals/monochrome icons/arrow-right64.png new file mode 100644 index 000000000..69a2e6e09 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-right64.png differ diff --git a/companion/src/images/originals/monochrome icons/changelog64.png b/companion/src/images/originals/monochrome icons/changelog64.png new file mode 100644 index 000000000..dec43fe54 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/changelog64.png differ diff --git a/companion/src/images/originals/monochrome icons/clear64.png b/companion/src/images/originals/monochrome icons/clear64.png new file mode 100644 index 000000000..3e80f3ff9 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/clear64.png differ diff --git a/companion/src/images/originals/monochrome icons/compare64.png b/companion/src/images/originals/monochrome icons/compare64.png new file mode 100644 index 000000000..d8bc1d69b Binary files /dev/null and b/companion/src/images/originals/monochrome icons/compare64.png differ diff --git a/companion/src/images/originals/monochrome icons/configure64.png b/companion/src/images/originals/monochrome icons/configure64.png new file mode 100644 index 000000000..f0fd78cf1 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/configure64.png differ diff --git a/companion/src/images/originals/monochrome icons/contributors64.png b/companion/src/images/originals/monochrome icons/contributors64.png new file mode 100644 index 000000000..53dd1a7b1 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/contributors64.png differ diff --git a/companion/src/images/originals/monochrome icons/copy64.png b/companion/src/images/originals/monochrome icons/copy64.png new file mode 100644 index 000000000..c68e9211c Binary files /dev/null and b/companion/src/images/originals/monochrome icons/copy64.png differ diff --git a/companion/src/images/originals/monochrome icons/currentmodel64.png b/companion/src/images/originals/monochrome icons/currentmodel64.png new file mode 100644 index 000000000..c3f67e047 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/currentmodel64.png differ diff --git a/companion/src/images/originals/monochrome icons/cut64.png b/companion/src/images/originals/monochrome icons/cut64.png new file mode 100644 index 000000000..fa78a545d Binary files /dev/null and b/companion/src/images/originals/monochrome icons/cut64.png differ diff --git a/companion/src/images/originals/monochrome icons/duplicate64.png b/companion/src/images/originals/monochrome icons/duplicate64.png new file mode 100644 index 000000000..004a932a4 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/duplicate64.png differ diff --git a/companion/src/images/originals/monochrome icons/edit64.png b/companion/src/images/originals/monochrome icons/edit64.png new file mode 100644 index 000000000..68f2da48a Binary files /dev/null and b/companion/src/images/originals/monochrome icons/edit64.png differ diff --git a/companion/src/images/originals/monochrome icons/exit64.png b/companion/src/images/originals/monochrome icons/exit64.png new file mode 100644 index 000000000..d414a0551 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/exit64.png differ diff --git a/companion/src/images/originals/monochrome icons/fuses64.png b/companion/src/images/originals/monochrome icons/fuses64.png new file mode 100644 index 000000000..82b77d669 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/fuses64.png differ diff --git a/companion/src/images/originals/monochrome icons/information64.png b/companion/src/images/originals/monochrome icons/information64.png new file mode 100644 index 000000000..fb4dd298a Binary files /dev/null and b/companion/src/images/originals/monochrome icons/information64.png differ diff --git a/companion/src/images/originals/monochrome icons/library64.png b/companion/src/images/originals/monochrome icons/library64.png new file mode 100644 index 000000000..1b749f913 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/library64.png differ diff --git a/companion/src/images/originals/monochrome icons/list64.png b/companion/src/images/originals/monochrome icons/list64.png new file mode 100644 index 000000000..6245f61cc Binary files /dev/null and b/companion/src/images/originals/monochrome icons/list64.png differ diff --git a/companion/src/images/originals/monochrome icons/logs64.png b/companion/src/images/originals/monochrome icons/logs64.png new file mode 100644 index 000000000..6d0ee00ee Binary files /dev/null and b/companion/src/images/originals/monochrome icons/logs64.png differ diff --git a/companion/src/images/originals/monochrome icons/movedown64.png b/companion/src/images/originals/monochrome icons/movedown64.png new file mode 100644 index 000000000..20613585f Binary files /dev/null and b/companion/src/images/originals/monochrome icons/movedown64.png differ diff --git a/companion/src/images/originals/monochrome icons/moveup64.png b/companion/src/images/originals/monochrome icons/moveup64.png new file mode 100644 index 000000000..c6fde0d86 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/moveup64.png differ diff --git a/companion/src/images/originals/monochrome icons/new64.png b/companion/src/images/originals/monochrome icons/new64.png new file mode 100644 index 000000000..6f346af10 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/new64.png differ diff --git a/companion/src/images/originals/monochrome icons/open64.png b/companion/src/images/originals/monochrome icons/open64.png new file mode 100644 index 000000000..e4e1a7831 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/open64.png differ diff --git a/companion/src/images/originals/monochrome icons/paintbrush.png b/companion/src/images/originals/monochrome icons/paintbrush.png new file mode 100644 index 000000000..437655aee Binary files /dev/null and b/companion/src/images/originals/monochrome icons/paintbrush.png differ diff --git a/companion/src/images/originals/monochrome icons/paste64.png b/companion/src/images/originals/monochrome icons/paste64.png new file mode 100644 index 000000000..4f0f2108c Binary files /dev/null and b/companion/src/images/originals/monochrome icons/paste64.png differ diff --git a/companion/src/images/originals/monochrome icons/preferences64.png b/companion/src/images/originals/monochrome icons/preferences64.png new file mode 100644 index 000000000..058607ea4 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/preferences64.png differ diff --git a/companion/src/images/originals/monochrome icons/print64.png b/companion/src/images/originals/monochrome icons/print64.png new file mode 100644 index 000000000..f3b8c3710 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/print64.png differ diff --git a/companion/src/images/originals/monochrome icons/profiles64.png b/companion/src/images/originals/monochrome icons/profiles64.png new file mode 100644 index 000000000..27899ade0 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/profiles64.png differ diff --git a/companion/src/images/originals/monochrome icons/read_eeprom.png b/companion/src/images/originals/monochrome icons/read_eeprom.png new file mode 100644 index 000000000..cf7285047 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom.png differ diff --git a/companion/src/images/originals/monochrome icons/read_eeprom_2.png b/companion/src/images/originals/monochrome icons/read_eeprom_2.png new file mode 100644 index 000000000..965025aba Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom_2.png differ diff --git a/companion/src/images/originals/monochrome icons/read_eeprom_file.png b/companion/src/images/originals/monochrome icons/read_eeprom_file.png new file mode 100644 index 000000000..4a9ddb6e0 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom_file.png differ diff --git a/companion/src/images/originals/monochrome icons/read_eeprom_file_2.png b/companion/src/images/originals/monochrome icons/read_eeprom_file_2.png new file mode 100644 index 000000000..9c575eb53 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom_file_2.png differ diff --git a/companion/src/images/originals/monochrome icons/read_flash.png b/companion/src/images/originals/monochrome icons/read_flash.png new file mode 100644 index 000000000..afaeb0a72 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_flash.png differ diff --git a/companion/src/images/originals/monochrome icons/read_flash_2.png b/companion/src/images/originals/monochrome icons/read_flash_2.png new file mode 100644 index 000000000..4f3367a08 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_flash_2.png differ diff --git a/companion/src/images/originals/monochrome icons/recentdocument64.png b/companion/src/images/originals/monochrome icons/recentdocument64.png new file mode 100644 index 000000000..d1356671e Binary files /dev/null and b/companion/src/images/originals/monochrome icons/recentdocument64.png differ diff --git a/companion/src/images/originals/monochrome icons/save64.png b/companion/src/images/originals/monochrome icons/save64.png new file mode 100644 index 000000000..50c934166 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/save64.png differ diff --git a/companion/src/images/originals/monochrome icons/saveas64.png b/companion/src/images/originals/monochrome icons/saveas64.png new file mode 100644 index 000000000..df85fb89b Binary files /dev/null and b/companion/src/images/originals/monochrome icons/saveas64.png differ diff --git a/companion/src/images/originals/monochrome icons/simulate64.png b/companion/src/images/originals/monochrome icons/simulate64.png new file mode 100644 index 000000000..be9e47bbc Binary files /dev/null and b/companion/src/images/originals/monochrome icons/simulate64.png differ diff --git a/companion/src/images/originals/monochrome icons/txactionico.svg b/companion/src/images/originals/monochrome icons/txactionico.svg new file mode 100644 index 000000000..2f7ef4085 --- /dev/null +++ b/companion/src/images/originals/monochrome icons/txactionico.svg @@ -0,0 +1,816 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/companion/src/images/originals/monochrome icons/update64.png b/companion/src/images/originals/monochrome icons/update64.png new file mode 100644 index 000000000..acc8d9c43 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/update64.png differ diff --git a/companion/src/images/originals/monochrome icons/wizard64.png b/companion/src/images/originals/monochrome icons/wizard64.png new file mode 100644 index 000000000..71f45dd16 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/wizard64.png differ diff --git a/companion/src/images/originals/monochrome icons/write_eeprom.png b/companion/src/images/originals/monochrome icons/write_eeprom.png new file mode 100644 index 000000000..aba6c6371 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom.png differ diff --git a/companion/src/images/originals/monochrome icons/write_eeprom_2.png b/companion/src/images/originals/monochrome icons/write_eeprom_2.png new file mode 100644 index 000000000..7092df3ab Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom_2.png differ diff --git a/companion/src/images/originals/monochrome icons/write_eeprom_file.png b/companion/src/images/originals/monochrome icons/write_eeprom_file.png new file mode 100644 index 000000000..f43584b91 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom_file.png differ diff --git a/companion/src/images/originals/monochrome icons/write_eeprom_file_2.png b/companion/src/images/originals/monochrome icons/write_eeprom_file_2.png new file mode 100644 index 000000000..7c924904f Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom_file_2.png differ diff --git a/companion/src/images/originals/monochrome icons/write_flash.png b/companion/src/images/originals/monochrome icons/write_flash.png new file mode 100644 index 000000000..b98ea4d19 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_flash.png differ diff --git a/companion/src/images/originals/monochrome icons/write_flash_2.png b/companion/src/images/originals/monochrome icons/write_flash_2.png new file mode 100644 index 000000000..e63f7cae5 Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_flash_2.png differ diff --git a/companion/src/images/originals/scripts/addblackoutline.sh b/companion/src/images/originals/scripts/addblackoutline.sh new file mode 100755 index 000000000..41e2876bd --- /dev/null +++ b/companion/src/images/originals/scripts/addblackoutline.sh @@ -0,0 +1,10 @@ +#!/bin/bash +for file in $(ls *png) +do + convert $file \( +clone \ + -channel A -morphology EdgeOut Diamond +channel \ + +level-colors black \ + \) -compose DstOver -composite $file +done + + diff --git a/companion/src/images/originals/scripts/makeblue.sh b/companion/src/images/originals/scripts/makeblue.sh new file mode 100755 index 000000000..ab0c418fc --- /dev/null +++ b/companion/src/images/originals/scripts/makeblue.sh @@ -0,0 +1,3 @@ +#!/bin/bash +mogrify -modulate 100,100,70 *.png +mogrify +level-colors "#000066","#0000cc" *.png diff --git a/companion/src/images/originals/scripts/makewhite.sh b/companion/src/images/originals/scripts/makewhite.sh new file mode 100755 index 000000000..7f274d057 --- /dev/null +++ b/companion/src/images/originals/scripts/makewhite.sh @@ -0,0 +1,3 @@ +#!/bin/bash +mogrify -negate -level 0,0,0 *.png + diff --git a/companion/src/images/originals/vector-logo.svg b/companion/src/images/originals/vector-logo.svg deleted file mode 100644 index 40a99a3b0..000000000 --- a/companion/src/images/originals/vector-logo.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - COMPANION - - - - - - O - - - - - P - - - - - E - - - - - N - - - - - - - - - \ No newline at end of file diff --git a/companion/src/images/splash.png b/companion/src/images/splash.png index 8c55b1551..e9aa7e601 100644 Binary files a/companion/src/images/splash.png and b/companion/src/images/splash.png differ diff --git a/companion/src/images/splasht.png b/companion/src/images/splasht.png index 25cdc0871..22a942ac5 100644 Binary files a/companion/src/images/splasht.png and b/companion/src/images/splasht.png differ diff --git a/companion/src/joystickdialog.cpp b/companion/src/joystickdialog.cpp index 55b55c761..2c77359a8 100644 --- a/companion/src/joystickdialog.cpp +++ b/companion/src/joystickdialog.cpp @@ -130,7 +130,7 @@ void joystickDialog::on_okButton_clicked() { return; } joystick->close(); - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("JsCalibration"); for (int i=0; i<8;i++) { settings.remove(QString("stick%1_axe").arg(i)); diff --git a/companion/src/lcdwidget.h b/companion/src/lcdwidget.h index 52133d8cd..9f01a0b17 100644 --- a/companion/src/lcdwidget.h +++ b/companion/src/lcdwidget.h @@ -58,7 +58,7 @@ class lcdWidget : public QWidget { QPixmap buffer(2*lcdWidth, 2*lcdHeight); QPainter p(&buffer); doPaint(p); - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool(); QApplication::clipboard()->setPixmap( buffer ); if (!toclipboard) { diff --git a/companion/src/logsdialog.cpp b/companion/src/logsdialog.cpp index e1b415ce9..0c9702239 100644 --- a/companion/src/logsdialog.cpp +++ b/companion/src/logsdialog.cpp @@ -38,7 +38,7 @@ logsDialog::logsDialog(QWidget *parent) : ui->customPlot->legend->setSelectedFont(legendFont); ui->customPlot->legend->setSelectable(QCPLegend::spItems); // legend box shall not be selectable, only legend items ui->customPlot->legend->setVisible(false); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString Path=settings.value("gePath", "").toString(); if (Path.isEmpty() || !QFile(Path).exists()) { ui->mapsButton->hide(); @@ -202,7 +202,7 @@ void logsDialog::on_mapsButton_clicked() { ,F_F,F_F,F_F,F_F,I_F,I_F,I_F,I_F\ ,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F}; - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString gePath=settings.value("gePath", "").toString(); if (gePath.isEmpty() || !QFile(gePath).exists()) { ui->FieldsTW->setDisabled(false); @@ -262,8 +262,8 @@ void logsDialog::on_mapsButton_clicked() { QTextStream outputStream(&geFile); outputStream << "\n\n"; outputStream << "\t\n\t\t" << logFilename << "\n"; - outputStream << "\t\t\n"; - outputStream << "\t\t\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\n"; outputStream << "\t\t\n\t\t\t\n\t\t\t\tnormal\n\t\t\t\t#multiTrack_n\n\t\t\t\n\t\t\t\n\t\t\t\thighlight\n\t\t\t\t#multiTrack_h\n\t\t\t\n\t\t\n"; outputStream << "\t\t\n"; outputStream << "\t\t\n"; @@ -295,10 +295,13 @@ void logsDialog::on_mapsButton_clicked() { } else { planeName=logFilename; } - outputStream << "\t\t\n\t\t\tLog Data\n\t\t\t\n\t\t\t\t" << planeName << "\n\t\t\t\t#multiTrack\n\t\t\t\t\n"; + outputStream << "\t\t\n\t\t\tLog Data\n\t\t\t\n\t\t\t\t" << planeName << ""; + outputStream << "\n\t\t\t\t#multiTrack"; + outputStream << "\n\t\t\t\t\n"; + outputStream << "\n\t\t\t\t\tabsolute\n"; for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) { - QString tstamp=csvlog.at(i).at(0)+QString("T")+csvlog.at(i).at(1); + QString tstamp=csvlog.at(i).at(0)+QString("T")+csvlog.at(i).at(1)+QString("Z"); outputStream << "\t\t\t\t\t"<< tstamp <<"\n"; } } @@ -319,7 +322,7 @@ void logsDialog::on_mapsButton_clicked() { } latitude.sprintf("%3.8f", flatitude); longitude.sprintf("%3.8f", flongitude); - outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << csvlog.at(i).at(altcol) << "\n" ; + outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << csvlog.at(i).at(altcol).toFloat() << " \n" ; } } outputStream << "\t\t\t\t\t\n\t\t\t\t\t\t\n"; @@ -341,10 +344,14 @@ void logsDialog::on_mapsButton_clicked() { outputStream << "\t\t\t\t\t\t\t\n"; } } - outputStream << "\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n"; + outputStream << "\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n"; geFile.close(); - - QStringList parameters; + QStringList parameters; +#ifdef __APPLE__ + gePath = "/usr/bin/open"; + parameters << "-a"; + parameters << "Google\ Earth"; +#endif parameters << geFilename; QProcess *process = new QProcess(this); process->start(gePath, parameters); @@ -578,7 +585,7 @@ void logsDialog::moveLegend() void logsDialog::on_fileOpen_BT_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this,tr("Select your log file"), settings.value("lastLogDir").toString()); if (!fileName.isEmpty()) { settings.setValue("lastLogDir", fileName); diff --git a/companion/src/main.cpp b/companion/src/main.cpp index a7dea31a0..ffaea6801 100644 --- a/companion/src/main.cpp +++ b/companion/src/main.cpp @@ -76,55 +76,68 @@ class MyProxyStyle : public QProxyStyle int main(int argc, char *argv[]) { - Q_INIT_RESOURCE(companion); - QApplication app(argc, argv); - app.setApplicationName("OpenTX Companion"); + Q_INIT_RESOURCE(companion); + QApplication app(argc, argv); + app.setApplicationName("OpenTX Companion"); + app.setOrganizationName("OpenTX"); + app.setOrganizationDomain("open-tx.org"); + #ifdef __APPLE__ - app.setStyle(new MyProxyStyle); + app.setStyle(new MyProxyStyle); #endif - QString dir; - if(argc) dir = QFileInfo(argv[0]).canonicalPath() + "/lang"; - QSettings settings("companion9x", "companion9x"); - QString locale = settings.value("locale",QLocale::system().name()).toString(); - bool showSplash = settings.value("show_splash", true).toBool(); + // Start by borrowing any left over settings from companion9x + QSettings c9x_settings("companion9x", "companion9x"); + QSettings settings; - QTranslator companionTranslator; - companionTranslator.load(":/companion_" + locale); - QTranslator qtTranslator; - qtTranslator.load((QString)"qt_" + locale.left(2), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); -// qDebug() << locale; -// qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - app.installTranslator(&companionTranslator); - app.installTranslator(&qtTranslator); - - QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); - - QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString(); - firmware_id.replace("open9x", "opentx"); - firmware_id.replace("x9da", "taranis"); - QPixmap pixmap; - if (firmware_id.contains("taranis")) - pixmap = QPixmap(":/images/splasht.png"); - else - pixmap = QPixmap(":/images/splash.png"); - QSplashScreen *splash = new QSplashScreen(pixmap); - - RegisterFirmwares(); - - settings.setValue("firmware", firmware_id); - current_firmware_variant = GetFirmwareVariant(firmware_id); - // qDebug() << current_firmware_variant; - - MainWindow mainWin; - - if (showSplash) { - splash->show(); - QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close())); - QTimer::singleShot(1000*SPLASH_TIME, &mainWin, SLOT(show())); + if (!settings.contains("pos")) { + QStringList keys = c9x_settings.allKeys(); + for (QStringList::iterator i=keys.begin(); i!=keys.end(); i++) { + settings.setValue(*i, c9x_settings.value(*i)); } - else { - mainWin.show(); - } - return app.exec(); + } + + QString dir; + if (argc) dir = QFileInfo(argv[0]).canonicalPath() + "/lang"; + + QString locale = settings.value("locale",QLocale::system().name()).toString(); + bool showSplash = settings.value("show_splash", true).toBool(); + + QTranslator companionTranslator; + companionTranslator.load(":/companion_" + locale); + QTranslator qtTranslator; + qtTranslator.load((QString)"qt_" + locale.left(2), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + app.installTranslator(&companionTranslator); + app.installTranslator(&qtTranslator); + + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + + QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString(); + firmware_id.replace("open9x", "opentx"); + firmware_id.replace("x9da", "taranis"); + + QPixmap pixmap = QPixmap(firmware_id.contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png"); + QSplashScreen *splash = new QSplashScreen(pixmap); + + RegisterFirmwares(); + + settings.setValue("firmware", firmware_id); + current_firmware_variant = GetFirmwareVariant(firmware_id); + + MainWindow *mainWin = new MainWindow(); + if (showSplash) { + splash->show(); + QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close())); + QTimer::singleShot(1000*SPLASH_TIME, mainWin, SLOT(show())); + } + else { + mainWin->show(); + } + + int result = app.exec(); + + delete splash; + delete mainWin; + + return result; } diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index 5b0d0bd64..720a003a5 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -59,29 +59,29 @@ #include "burndialog.h" #include "hexinterface.h" #include "warnings.h" +#include "helpers.h" #include "firmwares/opentx/opentxinterface.h" // TODO get rid of this include -#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2" +#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2" + #ifdef __APPLE__ -#define C9X_STAMP "http://companion9x.googlecode.com/svn/trunk/companion9x-macosx.stamp" -#define C9X_INSTALLER "/Companion9xMacUpdate.%1.pkg.zip" -#define C9X_URL "http://companion9x.googlecode.com/files/Companion9xMacUpdate.%1.pkg.zip" + #define C9X_STAMP OPENTX_COMPANION_DOWNLOADS "/companion-macosx.stamp" + #define C9X_INSTALLER "/CompanionMacUpdate.%1.pkg.zip" #else -#define C9X_STAMP "http://companion9x.googlecode.com/svn/trunk/companion9x.stamp" -#define C9X_INSTALLER "/companion9xInstall_v%1.exe" -#define C9X_URL "http://companion9x.googlecode.com/files/companion9xInstall_v%1.exe" + #define C9X_STAMP OPENTX_COMPANION_DOWNLOADS "/companion-windows.stamp" + #define C9X_INSTALLER "/companionInstall_%1.exe" #endif #if defined WIN32 || !defined __GNUC__ -#include -#define sleep(x) Sleep(x*1000) + #include + #define sleep(x) Sleep(x*1000) #else -#include -#include "mountlist.h" + #include + #include "mountlist.h" #endif MainWindow::MainWindow(): -downloadDialog_forWait(NULL) + downloadDialog_forWait(NULL) { mdiArea = new QMdiArea; mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); @@ -94,6 +94,26 @@ downloadDialog_forWait(NULL) this, SLOT(setActiveSubWindow(QWidget*))); MaxRecentFiles=MAX_RECENT; + QSettings settings; + int icon_size=settings.value("icon_size", 1).toInt(); + switch (icon_size) { + case 0: + ISize="16"; + break; + case 1: + ISize="24"; + break; + case 2: + ISize="32"; + break; + case 3: + ISize="48"; + break; + default: + ISize="24"; + break; + } + restoreGeometry(settings.value("mainWindowGeometry").toByteArray()); createActions(); createMenus(); createToolBars(); @@ -109,15 +129,16 @@ downloadDialog_forWait(NULL) } setUnifiedTitleAndToolBarOnMac(true); this->setWindowIcon(QIcon(":/icon.png")); + this->setIconSize(QSize(32,32)); QNetworkProxyFactory::setUseSystemConfiguration(true); setAcceptDrops(true); // give time to the splash to disappear and main window to open before starting updates int updateDelay = 1000; - QSettings settings("companion9x", "companion9x"); bool showSplash = settings.value("show_splash", true).toBool(); - if (showSplash) - updateDelay += (SPLASH_TIME*1000); + if (showSplash) { + updateDelay += (SPLASH_TIME*1000); + } QTimer::singleShot(updateDelay, this, SLOT(doAutoUpdates())); QTimer::singleShot(updateDelay, this, SLOT(displayWarnings())); @@ -167,7 +188,7 @@ downloadDialog_forWait(NULL) void MainWindow::displayWarnings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int warnId=settings.value("warningId", 0 ).toInt(); if (warnIdstamp; @@ -267,7 +288,7 @@ void MainWindow::checkForUpdateFinished(QNetworkReply * reply) "Would you like to download it?").arg(version) , QMessageBox::Yes | QMessageBox::No); - QSettings settings("companion9x", "companion9x"); + QSettings settings; if (ret == QMessageBox::Yes) { #if defined __APPLE__ @@ -277,14 +298,14 @@ void MainWindow::checkForUpdateFinished(QNetworkReply * reply) #endif if (!fileName.isEmpty()) { settings.setValue("lastUpdatesDir", QFileInfo(fileName).dir().absolutePath()); - downloadDialog * dd = new downloadDialog(this, QString(C9X_URL).arg(version), fileName); + downloadDialog * dd = new downloadDialog(this, QString(OPENTX_COMPANION_DOWNLOADS C9X_INSTALLER).arg(version), fileName); installer_fileName = fileName; connect(dd, SIGNAL(accepted()), this, SLOT(updateDownloaded())); dd->show(); } } #else - QMessageBox::warning(this, tr("New release available"), tr("A new release of Companion is available please check the repository")); + QMessageBox::warning(this, tr("New release available"), tr("A new release of Companion is available please check the OpenTX website!")); #endif } else { if (showcheckForUpdatesResult && check1done && check2done) @@ -309,7 +330,7 @@ void MainWindow::updateDownloaded() void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmwareId) { QString url, ext, cpuid; - QSettings settings("companion9x", "companion9x"); + QSettings settings; url = firmware->getUrl(firmwareId); cpuid=settings.value("cpuid","").toString(); ext = url.mid(url.lastIndexOf(".")); @@ -332,7 +353,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw void MainWindow::reply1Accepted() { QString errormsg; - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool autoflash=settings.value("burnFirmware", true).toBool(); bool addversion=settings.value("rename_firmware_files", false).toBool(); settings.beginGroup("FwRevisions"); @@ -456,7 +477,7 @@ void MainWindow::reply1Finished(QNetworkReply * reply) // TODO delete downloadDialog_forWait? } - QSettings settings("companion9x", "companion9x"); + QSettings settings; cpuid=settings.value("cpuid","").toString(); QByteArray qba = reply->readAll(); int i = qba.indexOf("SVN_VERS"); @@ -608,11 +629,14 @@ void MainWindow::reply1Finished(QNetworkReply * reply) void MainWindow::closeEvent(QCloseEvent *event) { + QSettings settings; + settings.setValue("mainWindowGeometry", saveGeometry()); + settings.setValue("mainWindowState", saveState()); mdiArea->closeAllSubWindows(); if (mdiArea->currentSubWindow()) { event->ignore(); - } else { - writeSettings(); + } + else { event->accept(); } } @@ -626,7 +650,7 @@ void MainWindow::newFile() void MainWindow::openFile() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastDir").toString(),tr(EEPROM_FILES_FILTER)); if (!fileName.isEmpty()) { settings.setValue("lastDir", QFileInfo(fileName).dir().absolutePath()); @@ -659,7 +683,7 @@ void MainWindow::saveAs() void MainWindow::openRecentFile() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QAction *action = qobject_cast(sender()); if (action) { QString fileName=action->data().toString(); @@ -681,14 +705,14 @@ void MainWindow::openRecentFile() void MainWindow::loadProfile() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QAction *action = qobject_cast(sender()); int chord,defmod, burnfw; bool renfw; if (action) { int profnum=action->data().toInt(); - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("ActiveProfile",profnum); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profnum); @@ -733,8 +757,8 @@ void MainWindow::unloadProfile() { ActiveProfile=0; ActiveProfileName=""; - QSettings settings("companion9x", "companion9x"); - settings.setValue("ActiveProfile",0); + QSettings settings; + settings.setValue("ActiveProfile", 0); FirmwareInfo *firmware = GetCurrentFirmware(); setWindowTitle(tr("Companion - Models and Settings Editor - %1").arg(firmware->name)); } @@ -746,7 +770,8 @@ void MainWindow::preferences() FirmwareInfo *firmware = GetCurrentFirmware(); if (ActiveProfile) { setWindowTitle(tr("Companion - Models and Settings Editor - %1 - profile %2").arg(firmware->name).arg(ActiveProfileName)); - } else { + } + else { setWindowTitle(tr("Companion - Models and Settings Editor - %1").arg(firmware->name)); } @@ -1056,17 +1081,17 @@ void MainWindow::burnFrom() QStringList str; str << path << tempFile; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); res = ad->exec(); sleep(1); } } else { QStringList str = GetReceiveEEpromCommand(tempFile); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); res = ad->exec(); } - if(QFileInfo(tempFile).exists() && res) { + if (QFileInfo(tempFile).exists() && res) { MdiChild *child = createMdiChild(); child->newFile(); child->loadFile(tempFile, false); @@ -1076,7 +1101,7 @@ void MainWindow::burnFrom() void MainWindow::burnExtenalToEEPROM() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName; bool backup = false; burnDialog *cd = new burnDialog(this, 1, &fileName, &backup); @@ -1113,14 +1138,14 @@ void MainWindow::burnExtenalToEEPROM() QStringList str; str << path << backupFile; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); sleep(1); } } else { QStringList str = GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); sleep(1); } @@ -1130,7 +1155,7 @@ void MainWindow::burnExtenalToEEPROM() QString tempFlash = tempDir + "/flash.bin"; QStringList str = GetReceiveFlashCommand(tempFlash); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Read Firmware From Tx"); - ad->setWindowIcon(QIcon(":/images/read_flash.png")); + ad->setWindowIcon(CompanionIcon("read_flash.png")); ad->exec(); sleep(1); QString restoreFile = tempDir + "/compat.bin"; @@ -1143,7 +1168,8 @@ void MainWindow::burnExtenalToEEPROM() int rev = getEpromVersion(restoreFile); if ((rev / 100) != (oldrev / 100)) { QMessageBox::warning(this, tr("Warning"), tr("The transmitter firmware belongs to another product family, check file and preferences!")); - } else if (rev < oldrev) { + } + else if (rev < oldrev) { QMessageBox::warning(this, tr("Warning"), tr("The transmitter firmware is outdated, please upgrade!")); } fileName = restoreFile; @@ -1163,15 +1189,18 @@ void MainWindow::burnExtenalToEEPROM() QStringList str; str << path << backupFile; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } - } else { + } + else { QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } } @@ -1181,19 +1210,23 @@ void MainWindow::burnExtenalToEEPROM() if (path.isEmpty()) { QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected.")); return; - } else { + } + else { QStringList str; str << fileName << path; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Write Models and Settings To Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } - } else { + } + else { QStringList str = GetSendEEpromCommand(fileName); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Write Models and Settings To Tx", AVR_DIALOG_SHOW_DONE); - ad->setWindowIcon(QIcon(":/images/write_eeprom.png")); + ad->setWindowIcon(CompanionIcon("write_eeprom.png")); ad->exec(); + delete ad; } } } @@ -1285,7 +1318,8 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString } else { version = fwBuild.toInt(); // TODO changer le nom de la variable } - } else { + } + else { version = ((Open9xFirmware *)firmware)->getEepromVersion(revision); } } @@ -1302,11 +1336,8 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString long result = file.read((char*)eeprom, eeprom_size); file.close(); - RadioData radioData; - if (!LoadEeprom(radioData, eeprom, eeprom_size)) - return false; - - if (!firmware->saveEEPROM(eeprom, radioData, variant, version)) + QSharedPointer radioData = QSharedPointer(new RadioData()); + if (!LoadEeprom(*radioData, eeprom, eeprom_size) || !firmware->saveEEPROM(eeprom, *radioData, variant, version)) return false; QFile file2(restoreFile); @@ -1324,7 +1355,7 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString void MainWindow::burnToFlash(QString fileToFlash) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName; bool backup = settings.value("backupOnFlash", false).toBool(); if(!fileToFlash.isEmpty()) @@ -1357,14 +1388,17 @@ void MainWindow::burnToFlash(QString fileToFlash) } QStringList str = GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); int res = ad->exec(); + delete ad; if (QFileInfo(backupFile).exists() && res) { sleep(1); QStringList str = GetSendFlashCommand(fileName); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Write Firmware To Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL); - ad->setWindowIcon(QIcon(":/images/write_flash.png")); + CompanionIcon iconw("write_eeprom.png"); + ad->setWindowIcon(iconw); int res = ad->exec(); + delete ad; if (res) { QString restoreFile = tempDir + "/restore.bin"; if (!convertEEPROM(backupFile, restoreFile, fileName)) { @@ -1374,18 +1408,22 @@ void MainWindow::burnToFlash(QString fileToFlash) sleep(1); QStringList str = GetSendEEpromCommand(restoreFile); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Restore Models and Settings To Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL); - ad->setWindowIcon(QIcon(":/images/write_eeprom.png")); - res=ad->exec(); + ad->setWindowIcon(iconw); + res = ad->exec(); + delete ad; if (!res) { QMessageBox::warning(this, tr("Restore failed"), tr("Could not restore Models and Settings to TX. The models and settings data file can be found at: %1").arg(backupFile)); } - } else { + } + else { QMessageBox::warning(this, tr("Firmware write failed"), tr("Could not write firmware to to transmitter. The models and settings data file can be found at: %1").arg(backupFile)); } - } else { + } + else { QMessageBox::warning(this, tr("Backup failed"), tr("Cannot backup existing Models and Settings from TX. Firmware write process aborted")); } - } else { + } + else { bool backupEnable=settings.value("backupEnable", true).toBool(); QString backupPath=settings.value("backupPath", "").toString(); if (!QDir(backupPath).exists()) { @@ -1399,22 +1437,24 @@ void MainWindow::burnToFlash(QString fileToFlash) QString backupFile=backupPath+"/backup-"+QDateTime().currentDateTime().toString("yyyy-MM-dd-hhmmss")+".bin"; QStringList str = GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } QStringList str = GetSendFlashCommand(fileName); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Write Firmware To Tx"), AVR_DIALOG_SHOW_DONE); - ad->setWindowIcon(QIcon(":/images/write_flash.png")); + ad->setWindowIcon(CompanionIcon("write_flash.png")); ad->exec(); + delete ad; } } } void MainWindow::burnExtenalFromEEPROM() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getSaveFileName(this, tr("Save transmitter Models and Settings to File"), settings.value("lastDir").toString(), tr(EXTERNAL_EEPROM_FILES_FILTER)); if (!fileName.isEmpty()) { EEPROMInterface *eepromInterface = GetEepromInterface(); @@ -1423,26 +1463,30 @@ void MainWindow::burnExtenalFromEEPROM() if (path.isEmpty()) { QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify that the eeprom disk is connected.")); return; - } else { + } + else { QStringList str; str << path << fileName; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; } - } else { + } + else { settings.setValue("lastDir", QFileInfo(fileName).dir().absolutePath()); QStringList str = GetReceiveEEpromCommand(fileName); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Read Models and Settings From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; } } } void MainWindow::burnFromFlash() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getSaveFileName(this,tr("Read Tx Firmware to File"), settings.value("lastFlashDir").toString(),tr(FLASH_FILES_FILTER)); if (!fileName.isEmpty()) { QFile file(fileName); @@ -1452,10 +1496,10 @@ void MainWindow::burnFromFlash() settings.setValue("lastFlashDir",QFileInfo(fileName).dir().absolutePath()); QStringList str = GetReceiveFlashCommand(fileName); avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Read Firmware From Tx"); - ad->setWindowIcon(QIcon(":/images/read_flash.png")); + ad->setWindowIcon(CompanionIcon("read_flash.png")); ad->exec(); + delete ad; } - } void MainWindow::burnConfig() @@ -1490,16 +1534,20 @@ void MainWindow::logFile() void MainWindow::about() { - QString aboutStr = "

"; - aboutStr.append("OpenTX Home Page: http://open-tx.org

"); - aboutStr.append(tr("The Companion project was originally forked from eePe")+QString(" http://code.google.com/p/eepe

")); - aboutStr.append(tr("If you've found this program useful, please support by")); - aboutStr.append(" "); - aboutStr.append(tr("donating") + "

"); - aboutStr.append(tr("Version %1 (revision %2), %3").arg(C9X_VERSION).arg(C9X_REVISION).arg(__DATE__)+QString("

")); - aboutStr.append(tr("Copyright") +" Bertrand Songis & Romolo Manfredini © 2011- 2014
"); - - QMessageBox::about(this, tr("About Companion"),aboutStr); + QString aboutStr = "

"; + aboutStr.append(tr("OpenTX Home Page: %1").arg("http://www.open-tx.org")); + aboutStr.append("

"); + aboutStr.append(tr("The OpenTX Companion project was originally forked from eePe").arg("http://code.google.com/p/eepe")); + aboutStr.append("

"); + aboutStr.append(tr("If you've found this program useful, please support by donating").arg(DONATE_STR)); + aboutStr.append("

"); + aboutStr.append(tr("Version %1, %3").arg(C9X_VERSION).arg(__DATE__)); + aboutStr.append("

"); + aboutStr.append(tr("Copyright") + " Bertrand Songis & Romolo Manfredini
© 2011-2014
"); + QMessageBox msgBox(this); + msgBox.setWindowTitle(tr("About Companion")); + msgBox.setText(aboutStr); + msgBox.exec(); } void MainWindow::updateMenus() @@ -1508,12 +1556,6 @@ void MainWindow::updateMenus() saveAct->setEnabled(hasMdiChild); saveAsAct->setEnabled(hasMdiChild); pasteAct->setEnabled(hasMdiChild ? activeMdiChild()->hasPasteData() : false); - closeAct->setEnabled(hasMdiChild); - closeAllAct->setEnabled(hasMdiChild); - tileAct->setEnabled(hasMdiChild); - cascadeAct->setEnabled(hasMdiChild); - nextAct->setEnabled(hasMdiChild); - previousAct->setEnabled(hasMdiChild); burnToAct->setEnabled(hasMdiChild); separatorAct->setVisible(hasMdiChild); @@ -1528,7 +1570,7 @@ void MainWindow::updateMenus() updateRecentFileActions(); updateProfilesActions(); bool notfound=true; - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("Profiles"); for (int i=0; isetDisabled(notfound); } -void MainWindow::updateWindowMenu() -{ - windowMenu->clear(); - windowMenu->addAction(closeAct); - windowMenu->addAction(closeAllAct); - windowMenu->addSeparator(); - windowMenu->addAction(tileAct); - windowMenu->addAction(cascadeAct); - windowMenu->addSeparator(); - windowMenu->addAction(nextAct); - windowMenu->addAction(previousAct); - windowMenu->addAction(separatorAct); - - QList windows = mdiArea->subWindowList(); - separatorAct->setVisible(!windows.isEmpty()); - - for (int i = 0; i < windows.size(); ++i) { - MdiChild *child = qobject_cast(windows.at(i)->widget()); - - QString text; - if (i < 9) { - text = tr("&%1 %2").arg(i + 1).arg(child->userFriendlyCurrentFile()); - } else { - text = tr("%1 %2").arg(i + 1).arg(child->userFriendlyCurrentFile()); - } - QAction *action = windowMenu->addAction(text); - action->setCheckable(true); - action ->setChecked(child == activeMdiChild()); - connect(action, SIGNAL(triggered()), windowMapper, SLOT(map())); - windowMapper->setMapping(action, windows.at(i)); - } -} - MdiChild *MainWindow::createMdiChild() { MdiChild *child = new MdiChild; @@ -1592,183 +1601,146 @@ MdiChild *MainWindow::createMdiChild() void MainWindow::createActions() { - newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); + newAct = new QAction(CompanionIcon("new.png"), tr("&New"), this); newAct->setShortcuts(QKeySequence::New); newAct->setStatusTip(tr("Create a new file")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); - openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); + openAct = new QAction(CompanionIcon("open.png"), tr("&Open..."), this); openAct->setShortcuts(QKeySequence::Open); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(openFile())); - loadbackupAct = new QAction(QIcon(":/images/open.png"), tr("&loadBackup..."), this); + loadbackupAct = new QAction(CompanionIcon("open.png"), tr("&loadBackup..."), this); loadbackupAct->setStatusTip(tr("Load backup from file")); connect(loadbackupAct, SIGNAL(triggered()), this, SLOT(loadBackup())); - saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this); + saveAct = new QAction(CompanionIcon("save.png"), tr("&Save"), this); saveAct->setShortcuts(QKeySequence::Save); saveAct->setStatusTip(tr("Save the document to disk")); connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); - saveAsAct = new QAction(QIcon(":/images/saveas.png"), tr("Save &As..."), this); + saveAsAct = new QAction(CompanionIcon("saveas.png"), tr("Save &As..."), this); saveAsAct->setShortcuts(QKeySequence::SaveAs); saveAsAct->setStatusTip(tr("Save the document under a new name")); connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); - logsAct = new QAction(QIcon(":/images/logs.png"), tr("Lo&gs"), this); + logsAct = new QAction(CompanionIcon("logs.png"), tr("Lo&gs"), this); logsAct->setShortcut(tr("Ctrl+G")); logsAct->setStatusTip(tr("Open log file")); connect(logsAct, SIGNAL(triggered()), this, SLOT(logFile())); - preferencesAct = new QAction(QIcon(":/images/preferences.png"), tr("&Preferences..."), this); + preferencesAct = new QAction(CompanionIcon("preferences.png"), tr("&Preferences..."), this); preferencesAct->setStatusTip(tr("Edit general preferences")); connect(preferencesAct, SIGNAL(triggered()), this, SLOT(preferences())); - checkForUpdatesAct = new QAction(QIcon(":/images/update.png"), tr("&Check for updates..."), this); + checkForUpdatesAct = new QAction(CompanionIcon("update.png"), tr("&Check for updates..."), this); checkForUpdatesAct->setStatusTip(tr("Check for new version of Companion")); connect(checkForUpdatesAct, SIGNAL(triggered()), this, SLOT(doUpdates())); - contributorsAct = new QAction(QIcon(":/images/contributors.png"), tr("Contributors &List..."), this); + contributorsAct = new QAction(CompanionIcon("contributors.png"), tr("Contributors &List..."), this); contributorsAct->setStatusTip(tr("Show Companion contributors list")); connect(contributorsAct, SIGNAL(triggered()), this, SLOT(contributors())); - changelogAct = new QAction(QIcon(":/images/changelog.png"), tr("ChangeLog..."), this); + changelogAct = new QAction(CompanionIcon("changelog.png"), tr("ChangeLog..."), this); changelogAct->setStatusTip(tr("Show Companion changelog")); connect(changelogAct, SIGNAL(triggered()), this, SLOT(changelog())); - fwchangelogAct = new QAction(QIcon(":/images/changelog.png"), tr("Firmware ChangeLog..."), this); + fwchangelogAct = new QAction(CompanionIcon("changelog.png"), tr("Firmware ChangeLog..."), this); fwchangelogAct->setStatusTip(tr("Show firmware changelog")); connect(fwchangelogAct, SIGNAL(triggered()), this, SLOT(fwchangelog())); - compareAct = new QAction(QIcon(":/images/compare.png"), tr("Compare..."), this); + compareAct = new QAction(CompanionIcon("compare.png"), tr("Compare..."), this); compareAct->setStatusTip(tr("Compare models")); compareAct->setEnabled(false); connect(compareAct, SIGNAL(triggered()), this, SLOT(compare())); - customizeSplashAct = new QAction(QIcon(":/images/customize.png"), tr("Customize your &TX..."), this); + customizeSplashAct = new QAction(CompanionIcon("paintbrush.png"), tr("Customize your &TX..."), this); customizeSplashAct->setStatusTip(tr("Customize the splash screen of your TX")); connect(customizeSplashAct, SIGNAL(triggered()), this, SLOT(customizeSplash())); - -//! [0] - exitAct = new QAction(QIcon(":/images/exit.png"), tr("E&xit"), this); + exitAct = new QAction(CompanionIcon("exit.png"), tr("E&xit"), this); exitAct->setShortcuts(QKeySequence::Quit); exitAct->setStatusTip(tr("Exit the application")); connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); -//! [0] - cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this); + cutAct = new QAction(CompanionIcon("cut.png"), tr("Cu&t"), this); cutAct->setShortcuts(QKeySequence::Cut); cutAct->setStatusTip(tr("Cut the current selection's contents to the " "clipboard")); connect(cutAct, SIGNAL(triggered()), this, SLOT(cut())); - copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this); + copyAct = new QAction(CompanionIcon("copy.png"), tr("&Copy"), this); copyAct->setShortcuts(QKeySequence::Copy); copyAct->setStatusTip(tr("Copy the current selection's contents to the " "clipboard")); connect(copyAct, SIGNAL(triggered()), this, SLOT(copy())); - pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this); + pasteAct = new QAction(CompanionIcon("paste.png"), tr("&Paste"), this); pasteAct->setShortcuts(QKeySequence::Paste); pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current " "selection")); connect(pasteAct, SIGNAL(triggered()), this, SLOT(paste())); - - burnToAct = new QAction(QIcon(":/images/write_eeprom.png"), tr("&Write Models and Settings To Tx"), this); + burnToAct = new QAction(CompanionIcon("write_eeprom.png"), tr("&Write Models and Settings To Tx"), this); burnToAct->setShortcut(tr("Ctrl+Alt+W")); burnToAct->setStatusTip(tr("Write Models and Settings to transmitter")); connect(burnToAct,SIGNAL(triggered()),this,SLOT(burnTo())); - burnFromAct = new QAction(QIcon(":/images/read_eeprom.png"), tr("&Read Models and Settings From Tx"), this); + burnFromAct = new QAction(CompanionIcon("read_eeprom.png"), tr("&Read Models and Settings From Tx"), this); burnFromAct->setShortcut(tr("Ctrl+Alt+R")); burnFromAct->setStatusTip(tr("Read Models and Settings from transmitter")); connect(burnFromAct,SIGNAL(triggered()),this,SLOT(burnFrom())); - burnToFlashAct = new QAction(QIcon(":/images/write_flash.png"), tr("Write Firmware"), this); + burnToFlashAct = new QAction(CompanionIcon("write_flash.png"), tr("Write Firmware"), this); burnToFlashAct->setStatusTip(tr("Write firmware to transmitter")); connect(burnToFlashAct,SIGNAL(triggered()),this,SLOT(burnToFlash())); - burnExtenalToEEPROMAct = new QAction(QIcon(":/images/write_eeprom_file.png"), tr("Write Models and Settings from file to Tx"), this); + burnExtenalToEEPROMAct = new QAction(CompanionIcon("write_eeprom_file.png"), tr("Write Models and Settings from file to Tx"), this); burnExtenalToEEPROMAct->setStatusTip(tr("Write Models and Settings from file to transmitter")); connect(burnExtenalToEEPROMAct,SIGNAL(triggered()),this,SLOT(burnExtenalToEEPROM())); - burnExtenalFromEEPROMAct = new QAction(QIcon(":/images/read_eeprom_file.png"), tr("Save transmitter Models and Settings to file"), this); + burnExtenalFromEEPROMAct = new QAction(CompanionIcon("read_eeprom_file.png"), tr("Save transmitter Models and Settings to file"), this); burnExtenalFromEEPROMAct->setStatusTip(tr("Save the Models and Settings from the transmitter to a file")); connect(burnExtenalFromEEPROMAct,SIGNAL(triggered()),this,SLOT(burnExtenalFromEEPROM())); - burnFromFlashAct = new QAction(QIcon(":/images/read_flash.png"), tr("Read Firmware"), this); + burnFromFlashAct = new QAction(CompanionIcon("read_flash.png"), tr("Read Firmware"), this); burnFromFlashAct->setStatusTip(tr("Read firmware from transmitter")); connect(burnFromFlashAct,SIGNAL(triggered()),this,SLOT(burnFromFlash())); - burnConfigAct = new QAction(QIcon(":/images/configure.png"), tr("&Configure..."), this); + burnConfigAct = new QAction(CompanionIcon("configure.png"), tr("&Configure..."), this); burnConfigAct->setStatusTip(tr("Configure software for reading from and writing to the transmitter")); connect(burnConfigAct,SIGNAL(triggered()),this,SLOT(burnConfig())); EEPROMInterface *eepromInterface = GetEepromInterface(); if (!IS_ARM(eepromInterface->getBoard())) { - burnListAct = new QAction(QIcon(":/images/list.png"), tr("&List programmers"), this); + burnListAct = new QAction(CompanionIcon("list.png"), tr("&List programmers"), this); burnListAct->setStatusTip(tr("List available programmers")); connect(burnListAct,SIGNAL(triggered()),this,SLOT(burnList())); - burnFusesAct = new QAction(QIcon(":/images/fuses.png"), tr("&Fuses..."), this); + burnFusesAct = new QAction(CompanionIcon("fuses.png"), tr("&Fuses..."), this); burnFusesAct->setStatusTip(tr("Show fuses dialog")); connect(burnFusesAct,SIGNAL(triggered()),this,SLOT(burnFuses())); } - simulateAct = new QAction(QIcon(":/images/simulate.png"), tr("&Simulate"), this); + + simulateAct = new QAction(CompanionIcon("simulate.png"), tr("&Simulate"), this); simulateAct->setShortcut(tr("Alt+S")); simulateAct->setStatusTip(tr("Simulate selected model.")); simulateAct->setEnabled(false); connect(simulateAct,SIGNAL(triggered()),this,SLOT(simulate())); - printAct = new QAction(QIcon(":/images/print.png"), tr("&Print"), this); + printAct = new QAction(CompanionIcon("print.png"), tr("&Print"), this); printAct->setShortcut(tr("Ctrl+P")); printAct->setStatusTip(tr("Print current model.")); printAct->setEnabled(false); connect(printAct,SIGNAL(triggered()),this,SLOT(print())); - closeAct = new QAction(tr("Cl&ose"), this); - closeAct->setStatusTip(tr("Close the active window")); - connect(closeAct, SIGNAL(triggered()), - mdiArea, SLOT(closeActiveSubWindow())); - - closeAllAct = new QAction(tr("Close &All"), this); - closeAllAct->setStatusTip(tr("Close all the windows")); - connect(closeAllAct, SIGNAL(triggered()), - mdiArea, SLOT(closeAllSubWindows())); - - tileAct = new QAction(tr("&Tile"), this); - tileAct->setStatusTip(tr("Tile the windows")); - connect(tileAct, SIGNAL(triggered()), mdiArea, SLOT(tileSubWindows())); - - cascadeAct = new QAction(tr("&Cascade"), this); - cascadeAct->setStatusTip(tr("Cascade the windows")); - connect(cascadeAct, SIGNAL(triggered()), mdiArea, SLOT(cascadeSubWindows())); - - nextAct = new QAction(tr("Ne&xt"), this); - nextAct->setShortcuts(QKeySequence::NextChild); - nextAct->setStatusTip(tr("Move the focus to the next window")); - connect(nextAct, SIGNAL(triggered()), - mdiArea, SLOT(activateNextSubWindow())); - - previousAct = new QAction(tr("Pre&vious"), this); - previousAct->setShortcuts(QKeySequence::PreviousChild); - previousAct->setStatusTip(tr("Move the focus to the previous " - "window")); - connect(previousAct, SIGNAL(triggered()), - mdiArea, SLOT(activatePreviousSubWindow())); - separatorAct = new QAction(this); separatorAct->setSeparator(true); - aboutAct = new QAction(QIcon(":/icon.png"), tr("&About"), this); + aboutAct = new QAction(CompanionIcon("information.png"), tr("&About"), this); aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); - switchLayoutDirectionAct = new QAction(QIcon(":/images/switch_dir.png"), tr("Switch layout direction"), this); - switchLayoutDirectionAct->setStatusTip(tr("Switch layout Left/Right")); - connect(switchLayoutDirectionAct, SIGNAL(triggered()), this, SLOT(switchLayoutDirection())); for (int i = 0; i < MaxRecentFiles; ++i) { recentFileActs[i] = new QAction(this); recentFileActs[i]->setVisible(false); @@ -1796,8 +1768,8 @@ void MainWindow::createMenus() fileMenu->addAction(saveAct); fileMenu->addAction(saveAsAct); fileMenu->addMenu(recentFileMenu); - recentFileMenu->setIcon(QIcon(":/images/recentdocument.png")); - for ( int i = 0; i < MaxRecentFiles; ++i) + recentFileMenu->setIcon(CompanionIcon("recentdocument.png")); + for (int i=0; iaddAction(recentFileActs[i]); fileMenu->addSeparator(); fileMenu->addAction(logsAct); @@ -1809,10 +1781,9 @@ void MainWindow::createMenus() fileMenu->addAction(preferencesAct); fileMenu->addMenu(profilesMenu); - profilesMenu->setIcon(QIcon(":/images/profiles.png")); - for ( int i = 0; i < MAX_PROFILES; ++i) + profilesMenu->setIcon(CompanionIcon("profiles.png")); + for (int i=0; iaddAction(profileActs[i]); - fileMenu->addAction(switchLayoutDirectionAct); fileMenu->addAction(exitAct); editMenu = menuBar()->addMenu(tr("&Edit")); @@ -1838,18 +1809,14 @@ void MainWindow::createMenus() burnMenu->addAction(burnFusesAct); burnMenu->addAction(burnListAct); } - windowMenu = menuBar()->addMenu(tr("&Window")); - updateWindowMenu(); - connect(windowMenu, SIGNAL(aboutToShow()), this, SLOT(updateWindowMenu())); - menuBar()->addSeparator(); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addSeparator(); - helpMenu->addAction(aboutAct); - helpMenu->addSeparator(); helpMenu->addAction(checkForUpdatesAct); helpMenu->addSeparator(); + helpMenu->addAction(aboutAct); + helpMenu->addSeparator(); helpMenu->addAction(changelogAct); helpMenu->addAction(fwchangelogAct); helpMenu->addSeparator(); @@ -1874,13 +1841,32 @@ QMenu *MainWindow::createProfilesMenu() void MainWindow::createToolBars() { + QSettings settings; + int icon_size=settings.value("icon_size",2 ).toInt(); + QSize size; + switch(icon_size) { + case 0: + size=QSize(16,16); + break; + case 1: + size=QSize(24,24); + break; + case 3: + size=QSize(48,48); + break; + default: + size=QSize(32,32); + break; + } fileToolBar = addToolBar(tr("File")); + fileToolBar->setIconSize(size); + fileToolBar->setObjectName("File"); fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); QToolButton * recentToolButton = new QToolButton; recentToolButton->setPopupMode(QToolButton::InstantPopup); recentToolButton->setMenu(createRecentFileMenu()); - recentToolButton->setIcon(QIcon(":/images/recentdocument.png")); + recentToolButton->setIcon(CompanionIcon("recentdocument.png")); recentToolButton->setToolTip(tr("Recent Files")); fileToolBar->addWidget(recentToolButton); fileToolBar->addAction(saveAct); @@ -1890,11 +1876,10 @@ void MainWindow::createToolBars() profileButton = new QToolButton; profileButton->setPopupMode(QToolButton::InstantPopup); profileButton->setMenu(createProfilesMenu()); - profileButton->setIcon(QIcon(":/images/profiles.png")); + profileButton->setIcon(CompanionIcon("profiles.png")); profileButton->setToolTip(tr("Firmware Profiles")); fileToolBar->addWidget(profileButton); bool notfound=true; - QSettings settings("companion9x", "companion9x"); settings.beginGroup("Profiles"); for (int i=0; iaddAction(compareAct); editToolBar = addToolBar(tr("Edit")); + editToolBar->setIconSize(size); + editToolBar->setObjectName("Edit"); editToolBar->addAction(cutAct); editToolBar->addAction(copyAct); editToolBar->addAction(pasteAct); - burnToolBar = addToolBar(tr("Write")); + + burnToolBar = new QToolBar(tr("Write")); + addToolBar( Qt::LeftToolBarArea, burnToolBar ); + burnToolBar->setIconSize(size); + burnToolBar->setObjectName("Write"); burnToolBar->addAction(burnToAct); burnToolBar->addAction(burnFromAct); burnToolBar->addSeparator(); @@ -1929,8 +1920,10 @@ void MainWindow::createToolBars() burnToolBar->addAction(burnConfigAct); helpToolBar = addToolBar(tr("Help")); - helpToolBar->addAction(aboutAct); + helpToolBar->setIconSize(size); + helpToolBar->setObjectName("Help"); helpToolBar->addAction(checkForUpdatesAct); + helpToolBar->addAction(aboutAct); } void MainWindow::createStatusBar() @@ -1940,12 +1933,9 @@ void MainWindow::createStatusBar() void MainWindow::readSettings() { - QSettings settings("companion9x", "companion9x"); - bool maximized = settings.value("maximized", false).toBool(); - QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint(); - QSize size = settings.value("size", QSize(400, 400)).toSize(); - - checkCompanion9x = settings.value("startup_check_companion9x", true).toBool(); + QSettings settings; + restoreState(settings.value("mainWindowState").toByteArray()); + checkCompanion9x = settings.value("startup_check_companion", true).toBool(); checkFW = settings.value("startup_check_fw", true).toBool(); MaxRecentFiles =settings.value("history_size",10).toInt(); ActiveProfile=settings.value("activeprofile",0).toInt(); @@ -1957,23 +1947,6 @@ void MainWindow::readSettings() settings.endGroup(); settings.endGroup(); } - if (maximized) { - setWindowState(Qt::WindowMaximized); - } else { - move(pos); - resize(size); - } -} - -void MainWindow::writeSettings() -{ - QSettings settings("companion9x", "companion9x"); - - settings.setValue("maximized", isMaximized()); - if(!isMaximized()) { - settings.setValue("pos", pos()); - settings.setValue("size", size()); - } } MdiChild *MainWindow::activeMdiChild() @@ -2013,7 +1986,7 @@ void MainWindow::setActiveSubWindow(QWidget *window) void MainWindow::updateRecentFileActions() { int i,j, numRecentFiles; - QSettings settings("companion9x", "companion9x"); + QSettings settings; QStringList files = settings.value("recentFileList").toStringList(); numRecentFiles = qMin(files.size(), (int)MaxRecentFiles); @@ -2033,7 +2006,7 @@ void MainWindow::updateRecentFileActions() void MainWindow::updateProfilesActions() { int i; - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("Profiles"); for (i=0; isetupUi(this); - + ui->SimulateTxButton->setIcon(CompanionIcon("simulate.png")); setAttribute(Qt::WA_DeleteOnClose); eepromInterfaceChanged(); @@ -179,7 +179,7 @@ void MdiChild::OpenEditWindow(bool wizard=false) } if (isNew && !wizard) { int ret; - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool wizardEnable=settings.value("wizardEnable", true).toBool(); if (wizardEnable) { ret = QMessageBox::question(this, tr("Companion"), tr("Do you want to use model wizard? "), QMessageBox::Yes | QMessageBox::No); @@ -346,7 +346,7 @@ bool MdiChild::save() bool MdiChild::saveAs(bool isNew) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName; if (GetEepromInterface()->getBoard() == BOARD_SKY9X) { curFile.replace(".eepe", ".bin"); @@ -490,7 +490,7 @@ void MdiChild::setCurrentFile(const QString &fileName) fileChanged = false; setWindowModified(false); updateTitle(); - QSettings settings("companion9x", "companion9x"); + QSettings settings; int MaxRecentFiles =settings.value("history_size",10).toInt(); QStringList files = settings.value("recentFileList").toStringList(); files.removeAll(fileName); @@ -508,7 +508,7 @@ QString MdiChild::strippedName(const QString &fullFileName) void MdiChild::burnTo() // write to Tx { - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool backupEnable=settings.value("backupEnable", true).toBool(); QString backupPath=settings.value("backupPath", "").toString(); if (!backupPath.isEmpty()) { @@ -553,15 +553,17 @@ void MdiChild::burnTo() // write to Tx QStringList str; str << path << backupFile; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup EEPROM From Tx")); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); sleep(1); } - } else { + } + else { QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup EEPROM From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } } @@ -569,8 +571,9 @@ void MdiChild::burnTo() // write to Tx QString tempFlash=tempDir + "/flash.bin"; QStringList str = ((MainWindow *)this->parent())->GetReceiveFlashCommand(tempFlash); avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, "Read Flash From Tx"); - ad->setWindowIcon(QIcon(":/images/read_flash.png")); + ad->setWindowIcon(CompanionIcon("read_flash.png")); ad->exec(); + delete ad; sleep(1); QString restoreFile = tempDir + "/compat.bin"; if (!((MainWindow *)this->parent())->convertEEPROM(tempFile, restoreFile, tempFlash)) { @@ -578,7 +581,8 @@ void MdiChild::burnTo() // write to Tx QMessageBox::Yes | QMessageBox::No); if (ret==QMessageBox::No) return; - } else { + } + else { int rev=((MainWindow *)this->parent())->getEpromVersion(restoreFile); if ((rev/100)!=(oldrev/100)) { QMessageBox::warning(this,tr("Warning"), tr("Firmware in radio is of a different family of eeprom written, check file and preferences!")); @@ -591,7 +595,8 @@ void MdiChild::burnTo() // write to Tx QByteArray ba = tempFlash.toLatin1(); char *name = ba.data(); unlink(name); - } else { + } + else { if (backupEnable) { QString backupFile=backupPath+"/backup-"+QDateTime().currentDateTime().toString("yyyy-MM-dd-hhmmss")+".bin"; if (IS_TARANIS(eepromInterface->getBoard())) { @@ -599,14 +604,17 @@ void MdiChild::burnTo() // write to Tx if (path.isEmpty()) { QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected.")); return; - } else { + } + else { QFile::copy(path,backupFile); } - } else { + } + else { QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile); avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup EEPROM From Tx")); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->exec(); + delete ad; sleep(1); } } @@ -616,19 +624,23 @@ void MdiChild::burnTo() // write to Tx if (path.isEmpty()) { QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected.")); return; - } else { + } + else { QStringList str; str << tempFile << path; avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Write EEPROM To Tx"), AVR_DIALOG_SHOW_DONE); //, AVR_DIALOG_KEEP_OPEN); - ad->setWindowIcon(QIcon(":/images/read_eeprom.png")); + ad->setWindowIcon(CompanionIcon("read_eeprom.png")); ad->show(); + delete ad; sleep(1); } - } else { + } + else { QStringList str = ((MainWindow *)this->parent())->GetSendEEpromCommand(tempFile); avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, "Write EEPROM To Tx", AVR_DIALOG_SHOW_DONE); - ad->setWindowIcon(QIcon(":/images/write_eeprom.png")); + ad->setWindowIcon(CompanionIcon("write_eeprom.png")); ad->show(); + delete ad; } } } @@ -678,7 +690,7 @@ void MdiChild::setEEpromAvail(int eavail) bool MdiChild::loadBackup() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastDir").toString(),tr(EEPROM_FILES_FILTER)); if (fileName.isEmpty()) return false; diff --git a/companion/src/mdichild.ui b/companion/src/mdichild.ui index d32b3cffb..b2fb21e2f 100644 --- a/companion/src/mdichild.ui +++ b/companion/src/mdichild.ui @@ -13,6 +13,10 @@ + + + :/icon.png:/icon.png + @@ -22,10 +26,6 @@ Simulate Tx - - - :/images/simulate.png:/images/simulate.png - diff --git a/companion/src/modelconfigdialog.ui b/companion/src/modelconfigdialog.ui index ea119cabc..f9c7abba6 100644 --- a/companion/src/modelconfigdialog.ui +++ b/companion/src/modelconfigdialog.ui @@ -27,7 +27,7 @@ - :/images/configure.png:/images/configure.png + :/icon.png:/icon.png diff --git a/companion/src/modeledit/CMakeLists.txt b/companion/src/modeledit/CMakeLists.txt index 28c752d64..827ecf656 100644 --- a/companion/src/modeledit/CMakeLists.txt +++ b/companion/src/modeledit/CMakeLists.txt @@ -42,6 +42,7 @@ set(modeledit_UIS setup_module.ui flightmode.ui telemetry_analog.ui + telemetry_customscreen.ui ) foreach(name ${modeledit_NAMES}) diff --git a/companion/src/modeledit/channels.cpp b/companion/src/modeledit/channels.cpp index 09b6a367b..070a0fcdc 100644 --- a/companion/src/modeledit/channels.cpp +++ b/companion/src/modeledit/channels.cpp @@ -57,24 +57,26 @@ Channels::Channels(QWidget * parent, ModelData & model): gridLayout->addWidget(offset, i+1, col++, 1, 1); // Channel min - QSpinBox * minSB = new QSpinBox(this); + QDoubleSpinBox * minSB = new QDoubleSpinBox(this); minSB->setProperty("index", i); minSB->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); minSB->setAccelerated(true); + minSB->setDecimals(1); minSB->setMinimum(model.extendedLimits ? -125 : -100); minSB->setMaximum(0); - minSB->setValue(model.limitData[i].min); + minSB->setValue(float(model.limitData[i].min) / 10); connect(minSB, SIGNAL(editingFinished()), this, SLOT(minEdited())); gridLayout->addWidget(minSB, i+1, col++, 1, 1); // Channel max - QSpinBox * maxSB = new QSpinBox(this); + QDoubleSpinBox * maxSB = new QDoubleSpinBox(this); maxSB->setProperty("index", i); maxSB->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); maxSB->setAccelerated(true); + maxSB->setDecimals(1); maxSB->setMinimum(0); maxSB->setMaximum(model.extendedLimits ? 125 : 100); - maxSB->setValue(model.limitData[i].max); + maxSB->setValue(float(model.limitData[i].max) / 10); connect(maxSB, SIGNAL(editingFinished()), this, SLOT(maxEdited())); gridLayout->addWidget(maxSB, i+1, col++, 1, 1); @@ -108,9 +110,6 @@ Channels::Channels(QWidget * parent, ModelData & model): gridLayout->addWidget(symlimits, i+1, col++, 1, 1); } } - - // setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - // setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); } Channels::~Channels() @@ -141,23 +140,23 @@ void Channels::offsetEdited() { QDoubleSpinBox *dsb = qobject_cast(sender()); int index = dsb->property("index").toInt(); - model.limitData[index].offset = round(dsb->value()*10); + model.limitData[index].offset = round(dsb->value() * 10); emit modified(); } void Channels::minEdited() { - QSpinBox *sb = qobject_cast(sender()); + QDoubleSpinBox *sb = qobject_cast(sender()); int index = sb->property("index").toInt(); - model.limitData[index].min = sb->value(); + model.limitData[index].min = round(sb->value() * 10); emit modified(); } void Channels::maxEdited() { - QSpinBox *sb = qobject_cast(sender()); + QDoubleSpinBox *sb = qobject_cast(sender()); int index = sb->property("index").toInt(); - model.limitData[index].max = sb->value(); + model.limitData[index].max = round(sb->value() * 10); emit modified(); } diff --git a/companion/src/modeledit/curves.cpp b/companion/src/modeledit/curves.cpp index 2e52c54ea..fe54f3d7d 100644 --- a/companion/src/modeledit/curves.cpp +++ b/companion/src/modeledit/curves.cpp @@ -2,13 +2,12 @@ #include "ui_curves.h" #include "node.h" #include "edge.h" +#include "helpers.h" #include #include #include #include -// TODO Capability CustomCurves to be removed - #define GFX_MARGIN 16 static const QColor colors[C9X_MAX_CURVES] = { @@ -75,18 +74,17 @@ Curves::Curves(QWidget * parent, ModelData & model): { ui->setupUi(this); + lock = true; + if (!GetEepromInterface()->getCapability(HasCvNames)) { - ui->cname_LE->hide(); - ui->cname_label->hide(); + ui->curveName->hide(); + ui->curveNameLabel->hide(); } QGraphicsScene *scene = new QGraphicsScene(ui->curvePreview); scene->setItemIndexMethod(QGraphicsScene::NoIndex); ui->curvePreview->setScene(scene); - QIcon clearIcon; - clearIcon.addFile(":/images/clear.png", QSize(), QIcon::Normal, QIcon::Off); - for (int i=0; igetCapability(NumCurves); i++) { visibleCurves[i] = false; @@ -94,7 +92,7 @@ Curves::Curves(QWidget * parent, ModelData & model): QPushButton * reset = new QPushButton(this); reset->setProperty("index", i); reset->setMinimumSize(QSize(0, 0)); - reset->setIcon(clearIcon); + reset->setIcon(CompanionIcon("clear.png")); reset->setIconSize(QSize(14, 14)); connect(reset, SIGNAL(clicked()), this, SLOT(resetCurve())); ui->curvesLayout->addWidget(reset, i, 0, 1, 1); @@ -134,7 +132,20 @@ Curves::Curves(QWidget * parent, ModelData & model): spnx[i]->setAccelerated(true); connect(spnx[i], SIGNAL(valueChanged(int)), this, SLOT(onPointEdited())); ui->pointsLayout->addWidget(spnx[i], i, 1, 1, 1); + + bool insert; + if (GetEepromInterface()->getCapability(EnhancedCurves)) { + insert = (i >= 1); + } + else { + insert = (i==2 || i==4 || i==8 || i==16); + } + if (insert) { + ui->curvePoints->addItem(tr("%1 points").arg(i+1), i+1); + } } + + lock = false; } Curves::~Curves() @@ -154,7 +165,7 @@ void Curves::resetCurve() { QPushButton *button = (QPushButton *)sender(); int index = button->property("index").toInt(); - int res = QMessageBox::question(this, "companion9x", tr("Are you sure you want to reset curve %1 ?").arg(index+1), QMessageBox::Yes | QMessageBox::No); + int res = QMessageBox::question(this, "companion", tr("Are you sure you want to reset curve %1 ?").arg(index+1), QMessageBox::Yes | QMessageBox::No); if (res == QMessageBox::Yes) { model.curves[index].clear(5); update(); @@ -175,7 +186,7 @@ void Curves::update() lock = true; if (GetEepromInterface()->getCapability(HasCvNames)) { - ui->cname_LE->setText(model.curves[currentCurve].name); + ui->curveName->setText(model.curves[currentCurve].name); } int count = model.curves[currentCurve].count; @@ -217,14 +228,27 @@ void Curves::setCurrentCurve(int index) void Curves::updateCurveType() { - int index = (model.curves[currentCurve].type == CurveData::CURVE_TYPE_CUSTOM ? 1 : 0); - if (model.curves[currentCurve].count==5) - index += 2; - else if (model.curves[currentCurve].count==9) - index += 4; - else if (model.curves[currentCurve].count==17) - index += 6; - ui->curvetype_CB->setCurrentIndex(index); + lock = true; + + int index = 0; + + if (GetEepromInterface()->getCapability(EnhancedCurves)) { + index = model.curves[currentCurve].count - 2; + } + else { + if (model.curves[currentCurve].count == 5) + index += 2; + else if (model.curves[currentCurve].count == 9) + index += 4; + else if (model.curves[currentCurve].count == 17) + index += 6; + } + + ui->curvePoints->setCurrentIndex(index); + ui->curveCustom->setCurrentIndex(model.curves[currentCurve].type); + ui->curveSmooth->setCurrentIndex(model.curves[currentCurve].smooth); + + lock = false; } void Curves::updateCurve() @@ -335,61 +359,83 @@ void Curves::onNodeUnfocus() updateCurve(); } -void Curves::on_curvetype_CB_currentIndexChanged(int index) +bool Curves::allowCurveType(int points, CurveData::CurveType type) { - static const int numpoint[] = {3,3,5,5,9,9,17,17}; - static const CurveData::CurveType types[] = {CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM}; + int numcurves = GetEepromInterface()->getCapability(NumCurves); - if (!lock) { - lock = true; + int totalpoints = 0; + for (int i=0; igetCapability(NumCurves); - // int currpoints = model.curves[currentCurve].count; - // bool currcustom = model.curves[currentCurve].custom; - - int totalpoints=0; - for (int i=0; igetCapability(NumCurvePoints); - if (fwpoints!=0) { - if (fwpoints < totalpoints) { - QMessageBox::warning(this, "companion9x", tr("Not enough free points in EEPROM to store the curve.")); - updateCurveType(); - lock = false; - return; - } - } - - model.curves[currentCurve].count = numpoint[index]; - model.curves[currentCurve].type = types[index]; - - // TODO something better! - for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoint[index]-1)); - model.curves[currentCurve].points[i].y = 0; - } - - update(); - emit modified(); - lock = false; + int fwpoints = GetEepromInterface()->getCapability(NumCurvePoints); + if (totalpoints > fwpoints) { + QMessageBox::warning(this, "companion", tr("Not enough free points in EEPROM to store the curve.")); + return false; + } + else { + return true; } } -void Curves::on_cname_LE_editingFinished() +void Curves::on_curvePoints_currentIndexChanged(int index) +{ + if (!lock) { + int numpoints = ((QComboBox *)sender())->itemData(index).toInt(); + + if (allowCurveType(numpoints, model.curves[currentCurve].type)) { + model.curves[currentCurve].count = numpoints; + + // TODO something better + reuse! + for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoints-1)); + model.curves[currentCurve].points[i].y = 0; + } + + update(); + emit modified(); + } + else { + updateCurveType(); + } + } +} + +void Curves::on_curveCustom_currentIndexChanged(int index) +{ + if (!lock) { + CurveData::CurveType type = (CurveData::CurveType)index; + int numpoints = ui->curvePoints->itemData(ui->curvePoints->currentIndex()).toInt(); + if (allowCurveType(model.curves[currentCurve].count, type)) { + model.curves[currentCurve].type = type; + + // TODO something better + reuse! + for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoints-1)); + model.curves[currentCurve].points[i].y = 0; + } + + update(); + emit modified(); + } + else { + updateCurveType(); + } + } +} + +void Curves::on_curveSmooth_currentIndexChanged(int index) +{ + model.curves[currentCurve].smooth = index; + update(); +} + +void Curves::on_curveName_editingFinished() { memset(model.curves[currentCurve].name, 0, sizeof(model.curves[currentCurve].name)); - strcpy(model.curves[currentCurve].name, ui->cname_LE->text().toAscii()); + strcpy(model.curves[currentCurve].name, ui->curveName->text().toAscii()); emit modified(); } @@ -600,9 +646,9 @@ void ModelEdit::on_ca_apply_PB_clicked() void ModelEdit::clearCurves(bool ask) { - if(ask) { - int res = QMessageBox::question(this,tr("Clear Curves?"),tr("Really clear all the curves?"),QMessageBox::Yes | QMessageBox::No); - if(res!=QMessageBox::Yes) return; + if (ask) { + int res = QMessageBox::question(this, tr("Clear Curves?"), tr("Really clear all the curves?"), QMessageBox::Yes | QMessageBox::No); + if (res!=QMessageBox::Yes) return; } curvesLock=true; for (int j=0; j<16; j++) { @@ -623,47 +669,11 @@ void ModelEdit::clearCurves(bool ask) currentCurve=0; curvesLock=false; ui->curvetype_CB->setCurrentIndex(2); - ui->cname_LE->clear(); + ui->curveName->clear(); updateSettings(); drawCurve(); } -void ModelEdit::setCurve(uint8_t c, int8_t ar[]) -{ - int len=sizeof(ar)/sizeof(int8_t); - if (GetEepromInterface()->getCapability(CustomCurves)) { - if (GetEepromInterface()->getCapability(NumCurves)>c) { - if (len<9) { - model.curves[c].count=5; - model.curves[c].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c].points[i].y=ar[i]; - } - } else { - model.curves[c].count=5; - model.curves[c].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c].points[i].y=ar[i]; - } - } - } - } else { - if (len<9) { - model.curves[c].count=5; - model.curves[c].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c].points[i].y=ar[i]; - } - } else { - model.curves[c+8].count=5; - model.curves[c+8].custom=false; - for (int i=0; i< 5; i++) { - model.curves[c+8].points[i].y=ar[i]; - } - } - } -} - void ModelEdit::ControlCurveSignal(bool flag) { foreach(QSpinBox *sb, findChildren(QRegExp("curvePt[0-9]+"))) { diff --git a/companion/src/modeledit/curves.h b/companion/src/modeledit/curves.h index a1086dde0..e8915cf65 100644 --- a/companion/src/modeledit/curves.h +++ b/companion/src/modeledit/curves.h @@ -22,8 +22,10 @@ class Curves : public ModelPanel void resetCurve(); void editCurve(); void plotCurve(bool checked); - void on_cname_LE_editingFinished(); - void on_curvetype_CB_currentIndexChanged(int index); + void on_curveName_editingFinished(); + void on_curvePoints_currentIndexChanged(int index); + void on_curveCustom_currentIndexChanged(int index); + void on_curveSmooth_currentIndexChanged(int index); void onPointEdited(); void onNodeMoved(int x, int y); void onNodeFocus(); @@ -41,6 +43,7 @@ class Curves : public ModelPanel void setCurrentCurve(int index); void updateCurve(); void updateCurveType(); + bool allowCurveType(int points, CurveData::CurveType type); }; diff --git a/companion/src/modeledit/curves.ui b/companion/src/modeledit/curves.ui index 17ad1d39a..ed9800e89 100644 --- a/companion/src/modeledit/curves.ui +++ b/companion/src/modeledit/curves.ui @@ -20,9 +20,47 @@ - + + + + + 0 + + + + + + + + + Standard + + + + + Custom + + + + + + + + + Lines + + + + + Smooth + + + + + + - + Curve type @@ -31,52 +69,8 @@ - - - - - 3 points - - - - - 3 points custom - - - - - 5 points - - - - - 5 points custom - - - - - 9 points - - - - - 9 points custom - - - - - 17 points - - - - - 17 points custom - - - - - + Curve name @@ -86,7 +80,7 @@ - + 6 @@ -129,7 +123,7 @@ - + Qt::Vertical diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index e6c883ee6..bbbe15fdf 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -7,6 +7,35 @@ #include #include "helpers.h" +RepeatComboBox::RepeatComboBox(QWidget *parent, int & repeatParam): + QComboBox(parent), + repeatParam(repeatParam) +{ + unsigned int step = IS_ARM(GetEepromInterface()->getBoard()) ? 1 : 10; + int value = repeatParam/step; + + if (step == 1) { + addItem(QObject::tr("Played once, not during startup"), -1); + value++; + } + + addItem(QObject::tr("No repeat"), 0); + + for (unsigned int i=step; i<=60; i+=step) { + addItem(QObject::tr("%1s").arg(i), i); + } + + setCurrentIndex(value); + + connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(onIndexChanged(int))); +} + +void RepeatComboBox::onIndexChanged(int index) +{ + repeatParam = itemData(index).toInt(); + emit modified(); +} + CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings): ModelPanel(parent, model), generalSettings(generalSettings), @@ -16,7 +45,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, int col = 1; addLabel(gridLayout, tr("Switch"), col++); - addLabel(gridLayout, tr("Function"), col++); + addLabel(gridLayout, tr("Action"), col++); addLabel(gridLayout, tr("Parameters"), col++); addLabel(gridLayout, tr("Enable"), col++); @@ -36,7 +65,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, } } - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString path = settings.value("sdPath", ".").toString(); path.append("/SOUNDS/"); QString lang = generalSettings.ttsLanguage; @@ -61,15 +90,6 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, for (int i=0; isetContextMenuPolicy(Qt::CustomContextMenu); - label->setMouseTracking(true); - label->setProperty("index", i); - label->setText(tr("CF%1").arg(i+1)); - gridLayout->addWidget(label, i+1, 0); - connect(label, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(fsw_customContextMenuRequested(QPoint))); - // The switch fswtchSwtch[i] = new QComboBox(this); fswtchSwtch[i]->setProperty("index", i); @@ -110,7 +130,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, fswtchParamT[i] = new QComboBox(this); fswtchParamT[i]->setProperty("index", i); paramLayout->addWidget(fswtchParamT[i]); - populateFuncParamCB(fswtchParamT[i], func, model.funcSw[i].param, model.funcSw[i].adjustMode); + populateFuncParamCB(fswtchParamT[i], model, func, model.funcSw[i].param, model.funcSw[i].adjustMode); connect(fswtchParamT[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited())); fswtchParamArmT[i] = new QComboBox(this); @@ -125,19 +145,16 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, #ifdef PHONON playBT[i] = new QPushButton(this); playBT[i]->setObjectName(QString("play_%1").arg(i)); - playBT[i]->setIcon(QIcon(":/images/play.png")); + playBT[i]->setIcon(CompanionIcon("play.png")); paramLayout->addWidget(playBT[i]); connect(playBT[i], SIGNAL(pressed()), this, SLOT(playMusic())); #endif QHBoxLayout *repeatLayout = new QHBoxLayout(); gridLayout->addLayout(repeatLayout, i+1, 4); - - fswtchRepeat[i] = new QComboBox(this); - fswtchRepeat[i]->setProperty("index", i); - connect(fswtchRepeat[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited())); + fswtchRepeat[i] = new RepeatComboBox(this, model.funcSw[i].repeatParam); repeatLayout->addWidget(fswtchRepeat[i], i+1); - populateRepeatCB(fswtchRepeat[i], model.funcSw[i].repeatParam); + connect(fswtchRepeat[i], SIGNAL(modified()), this, SLOT(onChildModified())); fswtchEnable[i] = new QCheckBox(this); fswtchEnable[i]->setProperty("index", i); @@ -160,6 +177,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta { if (phononLock) return; + phononLock=true; if ((newState==Phonon::StoppedState || newState==Phonon::PausedState) && oldState==Phonon::PlayingState) { clickObject->stop(); @@ -167,7 +185,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta clickObject->clear(); for (int i=0; igetCapability(CustomFunctions); i++) { playBT[i]->setObjectName(QString("play_%1").arg(i)); - playBT[i]->setIcon(QIcon(":/images/play.png")); + playBT[i]->setIcon(CompanionIcon("play.png")); } } if (newState==Phonon::ErrorState) { @@ -176,7 +194,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta clickObject->clear(); for (int i=0; igetCapability(CustomFunctions); i++) { playBT[i]->setObjectName(QString("play_%1").arg(i)); - playBT[i]->setIcon(QIcon(":/images/play.png")); + playBT[i]->setIcon(CompanionIcon("play.png")); } } @@ -189,14 +207,15 @@ void CustomFunctionsPanel::playMusic() QPushButton *playButton = qobject_cast(sender()); int index=playButton->objectName().mid(5,2).toInt(); QString function=playButton->objectName().left(4); - QSettings settings("companion9x", "companion9x"); - QString path=settings.value("sdPath", ".").toString(); + QSettings settings; + QString path = settings.value("sdPath", ".").toString(); QDir qd(path); QString track; if (qd.exists()) { if (GetEepromInterface()->getCapability(VoicesAsNumbers)) { track=path+QString("/%1.wav").arg(int(fswtchParam[index]->value()),4,10,(const QChar)'0'); - } else { + } + else { path.append("/SOUNDS/"); QString lang = generalSettings.ttsLanguage; if (lang.isEmpty()) @@ -217,12 +236,12 @@ void CustomFunctionsPanel::playMusic() clickObject->setCurrentSource(Phonon::MediaSource(track)); clickObject->play(); playBT[index]->setObjectName(QString("stop_%1").arg(index)); - playBT[index]->setIcon(QIcon(":/images/stop.png")); + playBT[index]->setIcon(CompanionIcon("stop.png")); } else { clickObject->stop(); clickObject->clear(); playBT[index]->setObjectName(QString("play_%1").arg(index)); - playBT[index]->setIcon(QIcon(":/images/play.png")); + playBT[index]->setIcon(CompanionIcon("play.png")); } #endif } @@ -250,14 +269,18 @@ void CustomFunctionsPanel::customFunctionEdited() } } +void CustomFunctionsPanel::onChildModified() +{ + emit modified(); +} + void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) { unsigned int widgetsMask = 0; if (modified) { model.funcSw[i].swtch = RawSwitch(fswtchSwtch[i]->itemData(fswtchSwtch[i]->currentIndex()).toInt()); model.funcSw[i].func = (AssignFunc)fswtchFunc[i]->currentIndex(); - model.funcSw[i].enabled =fswtchEnable[i]->isChecked(); - model.funcSw[i].repeatParam = (AssignFunc)fswtchRepeat[i]->currentIndex(); + model.funcSw[i].enabled = fswtchEnable[i]->isChecked(); model.funcSw[i].adjustMode = (AssignFunc)fswtchGVmode[i]->currentIndex(); } @@ -273,14 +296,15 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) } fswtchParam[i]->setValue(model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_ENABLE; - } else if (index==FuncLogs) { + } + else if (index==FuncLogs) { fswtchParam[i]->setDecimals(1); fswtchParam[i]->setMinimum(0); fswtchParam[i]->setMaximum(25.5); fswtchParam[i]->setSingleStep(0.1); if (modified) model.funcSw[i].param = fswtchParam[i]->value()*10.0; fswtchParam[i]->setValue(model.funcSw[i].param/10.0); - widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_ENABLE; + widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM; } else if (index>=FuncAdjustGV1 && index<=FuncAdjustGVLast) { if (modified) model.funcSw[i].adjustMode = fswtchGVmode[i]->currentIndex(); @@ -293,38 +317,41 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) fswtchParam[i]->setMaximum(125); fswtchParam[i]->setValue(model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM; - } else { + } + else { if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param, model.funcSw[i].adjustMode); + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param, model.funcSw[i].adjustMode); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; } - } else if (index==FuncReset) { + } + else if (index==FuncReset) { if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param); - widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; - } else if (index==FuncVolume) { + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); + widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM | CUSTOM_FUNCTION_ENABLE; + } + else if (index==FuncVolume) { if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param); + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_ENABLE; - } else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) { - if (modified) model.funcSw[i].repeatParam = fswtchRepeat[i]->itemData(fswtchRepeat[i]->currentIndex()).toInt(); - if (index != FuncBackgroundMusic) { - if (GetEepromInterface()->getCapability(HasFuncRepeat)) { - widgetsMask |= CUSTOM_FUNCTION_REPEAT; - } + } + else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) { + if (index != FuncBackgroundMusic && GetEepromInterface()->getCapability(HasFuncRepeat)) { + widgetsMask |= CUSTOM_FUNCTION_REPEAT; } if (index==FuncPlayValue) { if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param); + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_REPEAT; - } else if (index==FuncPlayPrompt || index==FuncPlayBoth) { + } + else if (index==FuncPlayPrompt || index==FuncPlayBoth) { if (GetEepromInterface()->getCapability(VoicesAsNumbers)) { fswtchParam[i]->setDecimals(0); fswtchParam[i]->setSingleStep(1); fswtchParam[i]->setMinimum(0); if (index==FuncPlayPrompt) { widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_REPEAT + CUSTOM_FUNCTION_GV_TOOGLE; - } else { + } + else { widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_REPEAT; fswtchParamGV[i]->setChecked(false); } @@ -333,7 +360,8 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) if (fswtchParamGV[i]->isChecked()) { fswtchParam[i]->setMinimum(1); model.funcSw[i].param = std::min(fswtchParam[i]->value(),5.0)+(fswtchParamGV[i]->isChecked() ? 250 : 0); - } else { + } + else { model.funcSw[i].param = fswtchParam[i]->value(); } } @@ -341,13 +369,15 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) fswtchParamGV[i]->setChecked(true); fswtchParam[i]->setValue(model.funcSw[i].param-250); fswtchParam[i]->setMaximum(5); - } else { + } + else { fswtchParamGV[i]->setChecked(false); fswtchParam[i]->setValue(model.funcSw[i].param); } if (model.funcSw[i].param < 251) widgetsMask |= CUSTOM_FUNCTION_PLAY; - } else { + } + else { widgetsMask |= CUSTOM_FUNCTION_FILE_PARAM; if (modified) { memset(model.funcSw[i].paramarm, 0, sizeof(model.funcSw[i].paramarm)); @@ -360,7 +390,8 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) } } } - } else if (index==FuncBackgroundMusic) { + } + else if (index==FuncBackgroundMusic) { widgetsMask |= CUSTOM_FUNCTION_FILE_PARAM; if (modified) { memset(model.funcSw[i].paramarm, 0, sizeof(model.funcSw[i].paramarm)); @@ -372,21 +403,24 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) } } } - } else if (index==FuncPlaySound) { + } + else if (index==FuncPlaySound) { if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param); - widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; - } else if (index==FuncPlayHaptic) { - if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex(); - populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param); + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; } - } else if (model.funcSw[i].swtch.type!=SWITCH_TYPE_NONE) { + else if (index==FuncPlayHaptic) { + if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex(); + populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param); + widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM; + } + } + else { if (modified) model.funcSw[i].param = fswtchParam[i]->value(); fswtchParam[i]->setDecimals(0); fswtchParam[i]->setSingleStep(1); fswtchParam[i]->setValue(model.funcSw[i].param); - if (index<=FuncInstantTrim) { + if (index <= FuncInstantTrim) { widgetsMask |= CUSTOM_FUNCTION_ENABLE; } } @@ -406,17 +440,19 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) void CustomFunctionsPanel::update() { + lock = true; for (int i=0; igetCapability(CustomFunctions); i++) { refreshCustomFunction(i); } + lock = false; } void CustomFunctionsPanel::fswPaste() { const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - if (mimeData->hasFormat("application/x-companion9x-fsw")) { - QByteArray fswData = mimeData->data("application/x-companion9x-fsw"); + if (mimeData->hasFormat("application/x-companion-fsw")) { + QByteArray fswData = mimeData->data("application/x-companion-fsw"); FuncSwData *fsw = &model.funcSw[selectedFunction]; memcpy(fsw, fswData.mid(0, sizeof(FuncSwData)).constData(), sizeof(FuncSwData)); @@ -443,7 +479,7 @@ void CustomFunctionsPanel::fswCopy() QByteArray fswData; fswData.append((char*)&model.funcSw[selectedFunction],sizeof(FuncSwData)); QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x-fsw", fswData); + mimeData->setData("application/x-companion-fsw", fswData); QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard); } @@ -462,13 +498,13 @@ void CustomFunctionsPanel::fsw_customContextMenuRequested(QPoint pos) const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - bool hasData = mimeData->hasFormat("application/x-companion9x-fsw"); + bool hasData = mimeData->hasFormat("application/x-companion-fsw"); QMenu contextMenu; - contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(fswDelete()),tr("Delete")); - contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(fswCopy()),tr("Ctrl+C")); - contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(fswCut()),tr("Ctrl+X")); - contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(fswPaste()),tr("Ctrl+V"))->setEnabled(hasData); + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(fswDelete()),tr("Delete")); + contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(fswCopy()),tr("Ctrl+C")); + contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(fswCut()),tr("Ctrl+X")); + contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(fswPaste()),tr("Ctrl+V"))->setEnabled(hasData); contextMenu.exec(globalPos); } diff --git a/companion/src/modeledit/customfunctions.h b/companion/src/modeledit/customfunctions.h index e6729da6a..ccb73582e 100644 --- a/companion/src/modeledit/customfunctions.h +++ b/companion/src/modeledit/customfunctions.h @@ -13,6 +13,23 @@ #include #endif +class RepeatComboBox: public QComboBox +{ + Q_OBJECT + + public: + RepeatComboBox(QWidget *parent, int & repeatParam); + + signals: + void modified(); + + private slots: + void onIndexChanged(int); + + protected: + int & repeatParam; +}; + class CustomFunctionsPanel : public ModelPanel { Q_OBJECT @@ -28,6 +45,7 @@ class CustomFunctionsPanel : public ModelPanel void fsw_customContextMenuRequested(QPoint pos); void refreshCustomFunction(int index, bool modified=false); void playMusic(); + void onChildModified(); #ifdef PHONON void mediaPlayer_state(Phonon::State newState, Phonon::State oldState); #endif diff --git a/companion/src/modeledit/customswitches.cpp b/companion/src/modeledit/customswitches.cpp index b20cd1f68..68d3fc34f 100644 --- a/companion/src/modeledit/customswitches.cpp +++ b/companion/src/modeledit/customswitches.cpp @@ -14,7 +14,7 @@ CustomSwitchesPanel::CustomSwitchesPanel(QWidget * parent, ModelData & model): QGridLayout * gridLayout = new QGridLayout(this); int col = 1; - addLabel(gridLayout, tr("Function"), col++); + addLabel(gridLayout, tr("Condition"), col++); addLabel(gridLayout, tr("V1"), col++); addLabel(gridLayout, tr("V2"), col++); addLabel(gridLayout, tr("AND"), col++); @@ -29,9 +29,9 @@ CustomSwitchesPanel::CustomSwitchesPanel(QWidget * parent, ModelData & model): QLabel * label = new QLabel(this); label->setProperty("index", i); if (i < 9) - label->setText(tr("CS%1").arg(i+1)); + label->setText(tr("LS%1").arg(i+1)); else - label->setText(tr("CS%1").arg(QChar('A'+i-9))); + label->setText(tr("LS%1").arg(QChar('A'+i-9))); label->setContextMenuPolicy(Qt::CustomContextMenu); label->setMouseTracking(true); connect(label, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(csw_customContextMenuRequested(QPoint))); @@ -146,36 +146,43 @@ void CustomSwitchesPanel::edited() { case (CS_FAMILY_VOFS): if (model.customSw[i].val1 != cswitchSource1[i]->itemData(cswitchSource1[i]->currentIndex()).toInt()) { - source=RawSource(model.customSw[i].val1); + source = RawSource(model.customSw[i].val1, &model); model.customSw[i].val1 = cswitchSource1[i]->itemData(cswitchSource1[i]->currentIndex()).toInt(); - RawSource newSource = RawSource(model.customSw[i].val1); + RawSource newSource = RawSource(model.customSw[i].val1, &model); if (newSource.type == SOURCE_TYPE_TELEMETRY) { if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].funcCS_FN_ELESS && model.customSw[i].funcvalue()/source.getStep(model)); - } else { - model.customSw[i].val2 = ((cswitchOffset[i]->value()-source.getOffset(model))/source.getStep(model))-source.getRawOffset(model); + model.customSw[i].val2 = (cswitchOffset[i]->value() / range.step); + } + else { + model.customSw[i].val2 = (cswitchOffset[i]->value() - range.offset) / range.step/* TODO - source.getRawOffset(model)*/; } } setSwitchWidgetVisibility(i); - } else { - source=RawSource(model.customSw[i].val1); + } + else { + source = RawSource(model.customSw[i].val1, &model); + RawSourceRange range = source.getRange(); if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].funcvalue()/source.getStep(model)); - cswitchOffset[i]->setValue(model.customSw[i].val2*source.getStep(model)); - } else { - model.customSw[i].val2 = ((cswitchOffset[i]->value()-source.getOffset(model))/source.getStep(model))-source.getRawOffset(model); - cswitchOffset[i]->setValue((model.customSw[i].val2 +source.getRawOffset(model))*source.getStep(model)+source.getOffset(model)); + model.customSw[i].val2 = (cswitchOffset[i]->value() / range.step); + cswitchOffset[i]->setValue(model.customSw[i].val2*range.step); + } + else { + model.customSw[i].val2 = ((cswitchOffset[i]->value()-range.offset)/range.step)/* TODO - source.getRawOffset(model)*/; + cswitchOffset[i]->setValue((model.customSw[i].val2 /* + TODO source.getRawOffset(model)*/)*range.step+range.offset); } } break; case (CS_FAMILY_TIMERS): { - value=cswitchOffset[i]->value(); + value = cswitchOffset[i]->value(); newval=TimToVal(value); if (newval>model.customSw[i].val2) { if (value >=60) { @@ -246,7 +253,9 @@ void CustomSwitchesPanel::edited() void CustomSwitchesPanel::setSwitchWidgetVisibility(int i) { - RawSource source = RawSource(model.customSw[i].val1); + RawSource source = RawSource(model.customSw[i].val1, &model); + RawSourceRange range = source.getRange(); + switch (getCSFunctionFamily(model.customSw[i].func)) { case CS_FAMILY_VOFS: @@ -254,17 +263,17 @@ void CustomSwitchesPanel::setSwitchWidgetVisibility(int i) cswitchSource2[i]->setVisible(false); cswitchValue[i]->setVisible(false); cswitchOffset[i]->setVisible(true); - populateSourceCB(cswitchSource1[i], source, POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); - cswitchOffset[i]->setDecimals(source.getDecimals(model)); - cswitchOffset[i]->setSingleStep(source.getStep(model)); + populateSourceCB(cswitchSource1[i], source, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); + cswitchOffset[i]->setDecimals(range.decimals); + cswitchOffset[i]->setSingleStep(range.step); if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].funcsetMinimum(source.getStep(model)*-127); - cswitchOffset[i]->setMaximum(source.getStep(model)*127); - cswitchOffset[i]->setValue(source.getStep(model)*model.customSw[i].val2); + cswitchOffset[i]->setMinimum(range.step*-127); + cswitchOffset[i]->setMaximum(range.step*127); + cswitchOffset[i]->setValue(range.step*model.customSw[i].val2); } else { - cswitchOffset[i]->setMinimum(source.getMin(model)); - cswitchOffset[i]->setMaximum(source.getMax(model)); - cswitchOffset[i]->setValue(source.getStep(model)*(model.customSw[i].val2+source.getRawOffset(model))+source.getOffset(model)); + cswitchOffset[i]->setMinimum(range.min); + cswitchOffset[i]->setMaximum(range.max); + cswitchOffset[i]->setValue(range.step*(model.customSw[i].val2/* TODO+source.getRawOffset(model)*/)+range.offset); } break; case CS_FAMILY_VBOOL: @@ -280,8 +289,8 @@ void CustomSwitchesPanel::setSwitchWidgetVisibility(int i) cswitchSource2[i]->setVisible(true); cswitchValue[i]->setVisible(false); cswitchOffset[i]->setVisible(false); - populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); - populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); + populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); + populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), model, POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0)); break; case CS_FAMILY_TIMERS: cswitchSource1[i]->setVisible(false); @@ -337,8 +346,8 @@ void CustomSwitchesPanel::cswPaste() { const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - if (mimeData->hasFormat("application/x-companion9x-csw")) { - QByteArray cswData = mimeData->data("application/x-companion9x-csw"); + if (mimeData->hasFormat("application/x-companion-csw")) { + QByteArray cswData = mimeData->data("application/x-companion-csw"); CustomSwData *csw = &model.customSw[selectedSwitch]; memcpy(csw, cswData.mid(0, sizeof(CustomSwData)).constData(), sizeof(CustomSwData)); @@ -359,7 +368,7 @@ void CustomSwitchesPanel::cswCopy() QByteArray cswData; cswData.append((char*)&model.customSw[selectedSwitch],sizeof(CustomSwData)); QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x-csw", cswData); + mimeData->setData("application/x-companion-csw", cswData); QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard); } @@ -387,13 +396,13 @@ void CustomSwitchesPanel::csw_customContextMenuRequested(QPoint pos) const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - bool hasData = mimeData->hasFormat("application/x-companion9x-csw"); + bool hasData = mimeData->hasFormat("application/x-companion-csw"); QMenu contextMenu; - contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(cswDelete()),tr("Delete")); - contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(cswCopy()),tr("Ctrl+C")); - contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(cswCut()),tr("Ctrl+X")); - contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(cswPaste()),tr("Ctrl+V"))->setEnabled(hasData); + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(cswDelete()),tr("Delete")); + contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(cswCopy()),tr("Ctrl+C")); + contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(cswCut()),tr("Ctrl+X")); + contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(cswPaste()),tr("Ctrl+V"))->setEnabled(hasData); contextMenu.exec(globalPos); } diff --git a/companion/src/modeledit/expodialog.cpp b/companion/src/modeledit/expodialog.cpp index bb2df0c65..49e86fc8a 100644 --- a/companion/src/modeledit/expodialog.cpp +++ b/companion/src/modeledit/expodialog.cpp @@ -3,188 +3,142 @@ #include "eeprominterface.h" #include "helpers.h" -ExpoDialog::ExpoDialog(QWidget *parent, ExpoData *expoData, int stickMode) : +ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, int stickMode) : QDialog(parent), ui(new Ui::ExpoDialog), + model(model), ed(expoData) { - ui->setupUi(this); - QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 }; - QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; + ui->setupUi(this); + QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 }; + QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; - setWindowTitle(tr("DEST -> %1").arg(getStickStr(ed->chn))); - QRegExp rx(CHAR_FOR_NAMES_REGEX); - - int gvars=0; - if (GetEepromInterface()->getCapability(HasVariants)) { - if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { - gvars=1; - } - } else { - gvars=1; - } + setWindowTitle(tr("Edit %1").arg(getInputStr(model, ed->chn))); + QRegExp rx(CHAR_FOR_NAMES_REGEX); - if (gvars==0) { - ui->weightGV->setDisabled(true); - ui->curveGVarCB->hide(); - if ((ed->curve.type == CurveReference::CURVE_REF_EXPO || ed->curve.type == CurveReference::CURVE_REF_DIFF) && ed->curve.value > 100) { - ed->curve.value = 0; - } - if (ed->weight>100 || ed->weight<-100) { - ed->weight = 100; - } - } + gvGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, 100, 0, 100); + curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve); - populateGVCB(ui->weightCB, ed->weight); + populateSwitchCB(ui->switchesCB,ed->swtch); - ui->weightSB->setMinimum(0); - ui->weightSB->setMaximum(100); - if (ed->weight>100 || ed->weight<0) { - ui->weightGV->setChecked(true); - ui->weightSB->hide(); - ui->weightCB->show(); - } else { - ui->weightGV->setChecked(false); - ui->weightSB->setValue(ed->weight); - ui->weightSB->show(); - ui->weightCB->hide(); - } + ui->sideCB->setCurrentIndex(ed->mode-1); - populateSwitchCB(ui->switchesCB,ed->swtch); - - // TODO keep this group, same in MixerDialog - CurveGroup * curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve); - - ui->sideCB->setCurrentIndex(ed->mode-1); - - if (!GetEepromInterface()->getCapability(FlightPhases)) { - ui->label_phases->hide(); - for (int i=0; i<9; i++) { - lb_fp[i]->hide(); - cb_fp[i]->hide(); - } - } else { - int mask=1; - for (int i=0; i<9 ; i++) { - if ((ed->phases & mask)==0) { - cb_fp[i]->setChecked(true); - } - mask <<= 1; - } - for (int i=GetEepromInterface()->getCapability(FlightPhases); i<9;i++) { - lb_fp[i]->hide(); - cb_fp[i]->hide(); - } - } - - if (GetEepromInterface()->getCapability(VirtualInputs)) { - ui->sideLabel->hide(); - ui->sideCB->hide(); - } - else { - ui->sourceLabel->hide(); - ui->sourceCB->hide(); - ui->scaleLabel->hide(); - ui->scaleSB->hide(); - ui->trimLabel->hide(); - ui->trimCB->hide(); - } - - int expolength=GetEepromInterface()->getCapability(HasExpoNames); - if (!expolength) { - ui->label_name->hide(); - ui->expoName->hide(); - } else { - ui->expoName->setMaxLength(expolength); - } - - ui->expoName->setValidator(new QRegExpValidator(rx, this)); - ui->expoName->setText(ed->name); - valuesChanged(); - - connect(ui->expoName,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); - - connect(ui->curveTypeCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->curveGVarCB,SIGNAL(stateChanged(int)),this,SLOT(valuesChanged())); - connect(ui->curveValueCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->curveValueSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); - - connect(ui->weightCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->weightSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); - connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->sideCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->weightGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged())); + if (!GetEepromInterface()->getCapability(FlightPhases)) { + ui->label_phases->hide(); for (int i=0; i<9; i++) { - connect(cb_fp[i],SIGNAL(toggled(bool)),this,SLOT(valuesChanged())); + lb_fp[i]->hide(); + cb_fp[i]->hide(); } - QTimer::singleShot(0, this, SLOT(shrink())); + } + else { + int mask=1; + for (int i=0; i<9 ; i++) { + if ((ed->phases & mask)==0) { + cb_fp[i]->setChecked(true); + } + mask <<= 1; + } + for (int i=GetEepromInterface()->getCapability(FlightPhases); i<9;i++) { + lb_fp[i]->hide(); + cb_fp[i]->hide(); + } + } + + if (GetEepromInterface()->getCapability(VirtualInputs)) { + ui->sideLabel->hide(); + ui->sideCB->hide(); + ui->inputName->setMaxLength(4); + populateSourceCB(ui->sourceCB, ed->srcRaw, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | POPULATE_TELEMETRY); + ui->sourceCB->removeItem(0); + } + else { + ui->inputNameLabel->hide(); + ui->inputName->hide(); + ui->sourceLabel->hide(); + ui->sourceCB->hide(); + ui->trimLabel->hide(); + ui->trimCB->hide(); + } + + ui->trimCB->addItem(tr("Rud"), 1); + ui->trimCB->addItem(tr("Ele"), 2); + ui->trimCB->addItem(tr("Thr"), 3); + ui->trimCB->addItem(tr("Ail"), 4); + ui->trimCB->setCurrentIndex(1 - ed->carryTrim); + + int expolength = GetEepromInterface()->getCapability(HasExpoNames); + if (!expolength) { + ui->lineNameLabel->hide(); + ui->lineName->hide(); + } + else { + ui->lineName->setMaxLength(expolength); + } + + ui->inputName->setValidator(new QRegExpValidator(rx, this)); + ui->inputName->setText(model.inputNames[ed->chn]); + + ui->lineName->setValidator(new QRegExpValidator(rx, this)); + ui->lineName->setText(ed->name); + + updateScale(); + valuesChanged(); + + connect(ui->lineName, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); + connect(ui->sourceCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); + connect(ui->scale, SIGNAL(editingFinished()), this, SLOT(valuesChanged())); + connect(ui->trimCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); + connect(ui->switchesCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); + connect(ui->sideCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged())); + for (int i=0; i<9; i++) { + connect(cb_fp[i], SIGNAL(toggled(bool)), this, SLOT(valuesChanged())); + } + QTimer::singleShot(0, this, SLOT(shrink())); } ExpoDialog::~ExpoDialog() { - delete ui; + delete gvGroup; + delete curveGroup; + delete ui; } -void ExpoDialog::changeEvent(QEvent *e) +void ExpoDialog::updateScale() { - QDialog::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -void ExpoDialog::widgetChanged() -{ - // TODO so many times duplicated :( - int gvars=0; - if (GetEepromInterface()->getCapability(HasVariants)) { - if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { - gvars=1; - } - } else { - gvars=1; + if (GetEepromInterface()->getCapability(VirtualInputs) && ed->srcRaw.type == SOURCE_TYPE_TELEMETRY) { + RawSourceRange range = ed->srcRaw.getRange(); + ui->scaleLabel->show(); + ui->scale->show(); + ui->scale->setDecimals(range.decimals); + ui->scale->setMinimum(range.min); + ui->scale->setMaximum(range.max); + ui->scale->setValue(round(range.step * ed->scale)); + } + else { + ui->scaleLabel->hide(); + ui->scale->hide(); } - - /* TODO if (gvars==1) { - if (ui->expoCurveGV->isChecked()) { - ui->expoCurveCB->show(); - ui->expoCurveSB->hide(); - } else { - ui->expoCurveCB->hide(); - ui->expoCurveSB->show(); - } - if (ui->weightGV->isChecked()) { - ui->weightCB->show(); - ui->weightSB->hide(); - } else { - ui->weightCB->hide(); - ui->weightSB->show(); - } - } */ - valuesChanged(); - QTimer::singleShot(0, this, SLOT(shrink())); } void ExpoDialog::valuesChanged() { QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; - if (ui->weightGV->isChecked()) { - ed->weight = ui->weightCB->itemData(ui->weightCB->currentIndex()).toInt(); - } else { - ed->weight = ui->weightSB->value(); + RawSource srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()); + if (ed->srcRaw != srcRaw) { + ed->srcRaw = srcRaw; + updateScale(); } + + RawSourceRange range = srcRaw.getRange(); + ed->scale = round(float(ui->scale->value()) / range.step); + ed->carryTrim = 1 - ui->trimCB->currentIndex(); ed->swtch = RawSwitch(ui->switchesCB->itemData(ui->switchesCB->currentIndex()).toInt()); ed->mode = ui->sideCB->currentIndex() + 1; - int i=0; - for (i=0; iexpoName->text().toAscii().length(); i++) { - ed->name[i]=ui->expoName->text().toAscii().at(i); - } - ed->name[i]=0; + + strcpy(ed->name, ui->lineName->text().toAscii().data()); + strcpy(model.inputNames[ed->chn], ui->inputName->text().toAscii().data()); + ed->phases=0; for (int i=8; i>=0 ; i--) { if (!cb_fp[i]->checkState()) { @@ -231,5 +185,5 @@ void ExpoDialog::valuesChanged() void ExpoDialog::shrink() { - resize(0,0); + resize(0, 0); } diff --git a/companion/src/modeledit/expodialog.h b/companion/src/modeledit/expodialog.h index a7630cc87..2d96b130a 100644 --- a/companion/src/modeledit/expodialog.h +++ b/companion/src/modeledit/expodialog.h @@ -4,27 +4,32 @@ #include #include "eeprominterface.h" +class GVarGroup; +class CurveGroup; + namespace Ui { - class ExpoDialog; + class ExpoDialog; } class ExpoDialog : public QDialog { Q_OBJECT -public: - ExpoDialog(QWidget *parent, ExpoData *mixdata, int stickMode); + public: + ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expodata, int stickMode); ~ExpoDialog(); -protected: - void changeEvent(QEvent *e); + protected: + void updateScale(); -private slots: + private slots: void valuesChanged(); - void widgetChanged(); void shrink(); -private: - Ui::ExpoDialog *ui; - ExpoData *ed; + private: + Ui::ExpoDialog * ui; + ModelData & model; + ExpoData * ed; + GVarGroup * gvGroup; + CurveGroup * curveGroup; }; #endif // EXPODIALOG_H diff --git a/companion/src/modeledit/expodialog.ui b/companion/src/modeledit/expodialog.ui index baf7c6b14..82d16dbc2 100644 --- a/companion/src/modeledit/expodialog.ui +++ b/companion/src/modeledit/expodialog.ui @@ -6,8 +6,8 @@ 0 0 - 370 - 331 + 381 + 414 @@ -26,32 +26,39 @@ - + :/icon.png:/icon.png + + + + The source for the mixer + + + - + - Name + Input name - + 6 - + Weight - + @@ -66,7 +73,7 @@ - Phase used by the expo. + Phase used by the input. @@ -85,14 +92,14 @@ - + Flight modes - + @@ -249,29 +256,29 @@ - + Switch - + - Switch used by the expo. -If blank then the expo is considered to be "ON" all the time. + Switch used by the input. +If blank then the input is considered to be "ON" all the time. - + Stick Side - + @@ -290,7 +297,7 @@ If blank then the expo is considered to be "ON" all the time. - + @@ -309,7 +316,7 @@ If blank then the expo is considered to be "ON" all the time. - + Qt::Vertical @@ -322,15 +329,8 @@ If blank then the expo is considered to be "ON" all the time. - - - - The source for the mixer - - - - - + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> @@ -352,28 +352,21 @@ p, li { white-space: pre-wrap; } - + Scale - + Include Trim - - - - Source - - - - + @@ -387,14 +380,14 @@ p, li { white-space: pre-wrap; } - + Curve - + @@ -402,7 +395,7 @@ p, li { white-space: pre-wrap; } - The curve used by the expo + The curve used by the input @@ -425,10 +418,57 @@ p, li { white-space: pre-wrap; } + + + + Source + + + + + + + Line name + + + + + + + 6 + + + + + inputName + lineName + sourceCB + scale + trimCB + weightGV + weightSB + weightCB + curveTypeCB + curveGVarCB + curveValueCB + curveValueSB + cb_FP0 + cb_FP1 + cb_FP2 + cb_FP3 + cb_FP4 + cb_FP5 + cb_FP6 + cb_FP7 + cb_FP8 + switchesCB + sideCB + buttonBox + - + diff --git a/companion/src/modeledit/heli.cpp b/companion/src/modeledit/heli.cpp index 6c584658a..a6a97a1b9 100644 --- a/companion/src/modeledit/heli.cpp +++ b/companion/src/modeledit/heli.cpp @@ -26,7 +26,7 @@ void HeliPanel::update() lock = true; ui->swashTypeCB->setCurrentIndex(model.swashRingData.type); - populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS); + populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS); ui->swashRingValSB->setValue(model.swashRingData.value); ui->swashInvertELE->setChecked(model.swashRingData.invertELE); ui->swashInvertAIL->setChecked(model.swashRingData.invertAIL); diff --git a/companion/src/modeledit/inputs.cpp b/companion/src/modeledit/inputs.cpp index d8882f01b..870ab81b7 100644 --- a/companion/src/modeledit/inputs.cpp +++ b/companion/src/modeledit/inputs.cpp @@ -14,15 +14,15 @@ InputsPanel::InputsPanel(QWidget *parent, ModelData & model, GeneralSettings & g QPushButton * qbUp = new QPushButton(this); QPushButton * qbDown = new QPushButton(this); QPushButton * qbClear = new QPushButton(this); - + qbUp->setText(tr("Move Up")); - qbUp->setIcon(QIcon(":/images/moveup.png")); + qbUp->setIcon(CompanionIcon("moveup.png")); qbUp->setShortcut(QKeySequence(tr("Ctrl+Up"))); qbDown->setText(tr("Move Down")); - qbDown->setIcon(QIcon(":/images/movedown.png")); + qbDown->setIcon(CompanionIcon("movedown.png")); qbDown->setShortcut(QKeySequence(tr("Ctrl+Down"))); - qbClear->setText(tr("Clear Expo Settings")); - qbClear->setIcon(QIcon(":/images/clear.png")); + qbClear->setText(tr("Clear All Settings")); + qbClear->setIcon(CompanionIcon("clear.png")); exposLayout->addWidget(ExposlistWidget,1,1,1,3); exposLayout->addWidget(qbUp,2,1); @@ -48,6 +48,10 @@ void InputsPanel::update() { lock = true; + int inputsCount = GetEepromInterface()->getCapability(VirtualInputs); + if (inputsCount == 0) + inputsCount = NUM_STICKS; + // curDest -> destination channel // i -> mixer number QByteArray qba; @@ -58,10 +62,12 @@ void InputsPanel::update() ExpoData *md = &model.expoData[i]; if (md->mode==0) break; - QString str = ""; - while(curDest<(int)md->chn-1) { + + QString str; + + while (curDest<(int)md->chn-1) { curDest++; - str = getStickStr(curDest); + str = getInputStr(model, curDest); qba.clear(); qba.append((quint8)-curDest-1); QListWidgetItem *itm = new QListWidgetItem(str); @@ -69,14 +75,27 @@ void InputsPanel::update() ExposlistWidget->addItem(itm); } - if(curDest!=(int)md->chn) { - str = getStickStr(md->chn); + if (curDest!=(int)md->chn) { + if (GetEepromInterface()->getCapability(VirtualInputs)) + str = QString("%1").arg(getInputStr(model, md->chn), -8, ' '); + else + str = getInputStr(model, md->chn); curDest = md->chn; - } else { + } + else { str = " "; } - if (!GetEepromInterface()->getCapability(VirtualInputs)) { + if (GetEepromInterface()->getCapability(VirtualInputs)) { + str += " " + tr("Source(%1)").arg(md->srcRaw.toString()); + if (md->carryTrim>0) { + str += " " + tr("No Trim"); + } + else if (md->carryTrim<0) { + str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString(); + } + } + else { switch (md->mode) { case (1): str += " <-"; break; case (2): str += " ->"; break; @@ -94,12 +113,10 @@ void InputsPanel::update() if (md->swtch.type != SWITCH_TYPE_NONE) str += " " + tr("Switch(%1)").arg(md->swtch.toString()); if (GetEepromInterface()->getCapability(HasExpoNames)) { - QString ExpoName; - ExpoName.append(md->name); - if (!ExpoName.isEmpty()) { - str+=QString("(%1)").arg(ExpoName); - } + QString expoName = md->name; + if (!expoName.isEmpty()) str += QString(" [%1]").arg(expoName); } + qba.clear(); qba.append((quint8)i); qba.append((const char*)md, sizeof(ExpoData)); @@ -108,9 +125,9 @@ void InputsPanel::update() ExposlistWidget->addItem(itm); //(str); } - while(curDest=C9X_MAX_EXPOS || model.expoData[C9X_MAX_EXPOS-1].mode > 0) { - QMessageBox::information(this, "companion9x", tr("Not enough available expos!")); + QMessageBox::information(this, "companion", tr("Not enough available inputs!")); return false; } @@ -154,12 +171,13 @@ void InputsPanel::gm_openExpo(int index) emit modified(); update(); - ExpoDialog *g = new ExpoDialog(this, &mixd, generalSettings.stickMode); - if(g->exec()) { + ExpoDialog *g = new ExpoDialog(this, model, &mixd, generalSettings.stickMode); + if (g->exec()) { model.expoData[index] = mixd; emit modified(); update(); - } else { + } + else { if (expoInserted) { gm_deleteExpo(index); } @@ -203,8 +221,8 @@ void InputsPanel::exposDelete(bool ask) QMessageBox::StandardButton ret = QMessageBox::No; if(ask) - ret = QMessageBox::warning(this, "companion9x", - tr("Delete Selected Expos?"), + ret = QMessageBox::warning(this, "companion", + tr("Delete Selected Inputs?"), QMessageBox::Yes | QMessageBox::No); @@ -231,7 +249,7 @@ void InputsPanel::exposCopy() } QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x-expo", mxData); + mimeData->setData("application/x-companion-expo", mxData); QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard); } @@ -245,7 +263,7 @@ void InputsPanel::mimeExpoDropped(int index, const QMimeData *data, Qt::DropActi #include void InputsPanel::pasteExpoMimeData(const QMimeData * mimeData, int destIdx) { - if (mimeData->hasFormat("application/x-companion9x-expo")) { + if (mimeData->hasFormat("application/x-companion-expo")) { int idx; // mixer index int dch; @@ -257,7 +275,7 @@ void InputsPanel::pasteExpoMimeData(const QMimeData * mimeData, int destIdx) dch = model.expoData[idx].chn; } - QByteArray mxData = mimeData->data("application/x-companion9x-expo"); + QByteArray mxData = mimeData->data("application/x-companion-expo"); int i = 0; while (i < mxData.size()) { @@ -333,20 +351,20 @@ void InputsPanel::expolistWidget_customContextMenuRequested(QPoint pos) const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - bool hasData = mimeData->hasFormat("application/x-companion9x-expo"); + bool hasData = mimeData->hasFormat("application/x-companion-expo"); QMenu contextMenu; - contextMenu.addAction(QIcon(":/images/add.png"), tr("&Add"),this,SLOT(expoAdd()),tr("Ctrl+A")); - contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(expoOpen()),tr("Enter")); + contextMenu.addAction(CompanionIcon("add.png"), tr("&Add"),this,SLOT(expoAdd()),tr("Ctrl+A")); + contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(expoOpen()),tr("Enter")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(exposDelete()),tr("Delete")); - contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(exposCopy()),tr("Ctrl+C")); - contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(exposCut()),tr("Ctrl+X")); - contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(exposPaste()),tr("Ctrl+V"))->setEnabled(hasData); - contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("Du&plicate"),this,SLOT(exposDuplicate()),tr("Ctrl+U")); + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(exposDelete()),tr("Delete")); + contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(exposCopy()),tr("Ctrl+C")); + contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(exposCut()),tr("Ctrl+X")); + contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(exposPaste()),tr("Ctrl+V"))->setEnabled(hasData); + contextMenu.addAction(CompanionIcon("duplicate.png"), tr("Du&plicate"),this,SLOT(exposDuplicate()),tr("Ctrl+U")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/moveup.png"), tr("Move Up"),this,SLOT(moveExpoUp()),tr("Ctrl+Up")); - contextMenu.addAction(QIcon(":/images/movedown.png"), tr("Move Down"),this,SLOT(moveExpoDown()),tr("Ctrl+Down")); + contextMenu.addAction(CompanionIcon("moveup.png"), tr("Move Up"),this,SLOT(moveExpoUp()),tr("Ctrl+Up")); + contextMenu.addAction(CompanionIcon("movedown.png"), tr("Move Down"),this,SLOT(moveExpoDown()),tr("Ctrl+Down")); contextMenu.exec(globalPos); } @@ -442,7 +460,7 @@ void InputsPanel::exposDeleteList(QList list) void InputsPanel::clearExpos() { - if (QMessageBox::question(this, tr("Clear Expos?"), tr("Really clear all the expos?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { + if (QMessageBox::question(this, tr("Clear Inputs?"), tr("Really clear all the inputs?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { model.clearInputs(); emit modified(); update(); diff --git a/companion/src/modeledit/mixerdialog.cpp b/companion/src/modeledit/mixerdialog.cpp index d0d4c3560..7ef03fdca 100644 --- a/companion/src/modeledit/mixerdialog.cpp +++ b/companion/src/modeledit/mixerdialog.cpp @@ -3,9 +3,10 @@ #include "eeprominterface.h" #include "helpers.h" -MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) : +MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode) : QDialog(parent), ui(new Ui::MixerDialog), + model(model), md(mixdata), lock(false) { @@ -19,84 +20,44 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) : else this->setWindowTitle(tr("DEST -> CH%1%2").arg(md->destCh/10).arg(md->destCh%10)); - populateSourceCB(ui->sourceCB, md->srcRaw, POPULATE_SOURCES | POPULATE_SWITCHES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0)); - + populateSourceCB(ui->sourceCB, md->srcRaw, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS); ui->sourceCB->removeItem(0); - int limit=GetEepromInterface()->getCapability(OffsetWeight); - int gvars=0; - if (GetEepromInterface()->getCapability(HasVariants)) { - if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { - gvars=1; - } - } else { - gvars=1; - } - if (gvars==0) { - ui->offsetGV->setDisabled(true); - ui->weightGV->setDisabled(true); - if (md->weight>limit || md->weight<-limit) { - md->weight=100; - } - if (md->sOffset>limit || md->sOffset<-limit) { - md->sOffset=0; - } - } - populateGVCB(ui->offsetCB,md->sOffset); - populateGVCB(ui->weightCB,md->weight); - ui->weightSB->setMinimum(-limit); - ui->weightSB->setMaximum(limit); - if (md->weight>limit || md->weight<-limit) { - ui->weightGV->setChecked(true); - ui->weightSB->hide(); - ui->weightCB->show(); - } - else { - ui->weightGV->setChecked(false); - ui->weightSB->setValue(md->weight); - ui->weightSB->show(); - ui->weightCB->hide(); - } - ui->offsetSB->setMinimum(-limit); - ui->offsetSB->setMaximum(limit); - if (md->sOffset>limit || md->sOffset<-limit) { - ui->offsetGV->setChecked(true); - ui->offsetSB->hide(); - ui->offsetCB->show(); - } - else { - ui->offsetGV->setChecked(false); - ui->offsetSB->setValue(md->sOffset); - ui->offsetSB->show(); - ui->offsetCB->hide(); - } + int limit = GetEepromInterface()->getCapability(OffsetWeight); + + gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit); + gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit); if (GetEepromInterface()->getCapability(VirtualInputs)) { ui->trimLabel->hide(); ui->trimCB->hide(); } - CurveGroup * curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve); + curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve); ui->MixDR_CB->setChecked(md->noExpo==0); if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) { ui->MixDR_CB->hide(); ui->label_MixDR->hide(); } - if (GetEepromInterface()->getCapability(ExtraTrims)) { - ui->trimCB->addItem(tr("Rud"),1); - ui->trimCB->addItem(tr("Ele"),2); - ui->trimCB->addItem(tr("Thr"),3); - ui->trimCB->addItem(tr("Ail"),4); - } - ui->trimCB->setCurrentIndex((-md->carryTrim)+1); - int namelength=GetEepromInterface()->getCapability(HasMixerNames); + + ui->trimCB->addItem(tr("Rud"), 1); + ui->trimCB->addItem(tr("Ele"), 2); + ui->trimCB->addItem(tr("Thr"), 3); + ui->trimCB->addItem(tr("Ail"), 4); + ui->trimCB->setCurrentIndex(1 - md->carryTrim); + + int namelength = GetEepromInterface()->getCapability(HasMixerNames); if (!namelength) { ui->label_name->hide(); ui->mixerName->hide(); - } else { + } + else { ui->mixerName->setMaxLength(namelength); } + ui->mixerName->setValidator(new QRegExpValidator(rx, this)); + ui->mixerName->setText(md->name); + if (!GetEepromInterface()->getCapability(FlightPhases)) { ui->label_phases->hide(); for (int i=0; i<9; i++) { @@ -118,9 +79,6 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) : } } - ui->mixerName->setValidator(new QRegExpValidator(rx, this)); - ui->mixerName->setText(md->name); - populateSwitchCB(ui->switchesCB,md->swtch); ui->warningCB->setCurrentIndex(md->mixWarn); ui->mltpxCB->setCurrentIndex(md->mltpx); @@ -147,12 +105,6 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) : valuesChanged(); connect(ui->mixerName,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); connect(ui->sourceCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->weightCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->offsetCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); - connect(ui->weightSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); - connect(ui->offsetSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged())); - connect(ui->weightGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged())); // TODO why the same slot? - connect(ui->offsetGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged())); connect(ui->trimCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); connect(ui->MixDR_CB,SIGNAL(toggled(bool)),this,SLOT(valuesChanged())); connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged())); @@ -169,54 +121,23 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) : MixerDialog::~MixerDialog() { - delete ui; + delete gvWeightGroup; + delete gvOffsetGroup; + delete curveGroup; + delete ui; } void MixerDialog::changeEvent(QEvent *e) { - QDialog::changeEvent(e); - switch (e->type()) { + QDialog::changeEvent(e); + + switch (e->type()) { case QEvent::LanguageChange: - ui->retranslateUi(this); - break; + ui->retranslateUi(this); + break; default: - break; - } -} - -void MixerDialog::widgetChanged() -{ - int gvars = 0; - if (GetEepromInterface()->getCapability(HasVariants)) { - if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) { - gvars = 1; - } + break; } - else { - gvars = 1; - } - - if (gvars == 1) { - if (ui->weightGV->isChecked()) { - ui->weightCB->show(); - ui->weightSB->hide(); - } - else { - ui->weightCB->hide(); - ui->weightSB->show(); - } - if (ui->offsetGV->isChecked()) { - ui->offsetCB->show(); - ui->offsetSB->hide(); - } - else { - ui->offsetCB->hide(); - ui->offsetSB->show(); - } - } - - valuesChanged(); - QTimer::singleShot(0, this, SLOT(shrink())); } void MixerDialog::valuesChanged() @@ -224,29 +145,21 @@ void MixerDialog::valuesChanged() if (!lock) { lock = true; QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 }; - md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()); + md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt(), &model); if ((ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()-65536)<4) { if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) { ui->MixDR_CB->hide(); ui->label_MixDR->hide(); - } else { + } + else { ui->MixDR_CB->setVisible(true); ui->label_MixDR->setVisible(true); } - } else { + } + else { ui->MixDR_CB->setHidden(true); ui->label_MixDR->setHidden(true); } - if (ui->weightGV->isChecked()) { - md->weight = ui->weightCB->itemData(ui->weightCB->currentIndex()).toInt(); - } else { - md->weight = ui->weightSB->value(); - } - if (ui->offsetGV->isChecked()) { - md->sOffset = ui->offsetCB->itemData(ui->offsetCB->currentIndex()).toInt(); - } else { - md->sOffset = ui->offsetSB->value(); - } md->carryTrim = -(ui->trimCB->currentIndex()-1); md->noExpo = ui->MixDR_CB->checkState() ? 0 : 1; md->swtch = RawSwitch(ui->switchesCB->itemData(ui->switchesCB->currentIndex()).toInt()); @@ -276,6 +189,7 @@ void MixerDialog::valuesChanged() } } -void MixerDialog::shrink() { - resize(0,0); +void MixerDialog::shrink() +{ + resize(0, 0); } diff --git a/companion/src/modeledit/mixerdialog.h b/companion/src/modeledit/mixerdialog.h index 9435e1892..437d9ca21 100644 --- a/companion/src/modeledit/mixerdialog.h +++ b/companion/src/modeledit/mixerdialog.h @@ -4,29 +4,34 @@ #include #include "eeprominterface.h" +class GVarGroup; +class CurveGroup; + namespace Ui { - class MixerDialog; + class MixerDialog; } class MixerDialog : public QDialog { Q_OBJECT -public: - MixerDialog(QWidget *parent, MixData *mixdata, int stickMode); + public: + MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode); ~MixerDialog(); -protected: + protected: void changeEvent(QEvent *e); -private slots: - void widgetChanged(); + private slots: void valuesChanged(); void shrink(); - -private: + private: Ui::MixerDialog *ui; + ModelData & model; MixData *md; bool lock; + GVarGroup * gvWeightGroup; + GVarGroup * gvOffsetGroup; + CurveGroup * curveGroup; }; #endif // MIXERDIALOG_H diff --git a/companion/src/modeledit/mixerdialog.ui b/companion/src/modeledit/mixerdialog.ui index ed14a05b9..04d876b80 100644 --- a/companion/src/modeledit/mixerdialog.ui +++ b/companion/src/modeledit/mixerdialog.ui @@ -6,7 +6,7 @@ 0 0 - 342 + 364 434 @@ -20,7 +20,7 @@ Dialog - + :/icon.png:/icon.png @@ -612,7 +612,7 @@ If blank then the mix is considered to be "ON" all the time. - + diff --git a/companion/src/modeledit/mixerslist.cpp b/companion/src/modeledit/mixerslist.cpp index 4d2f90320..06d8cd3f5 100644 --- a/companion/src/modeledit/mixerslist.cpp +++ b/companion/src/modeledit/mixerslist.cpp @@ -40,9 +40,9 @@ bool MixersList::dropMimeData( int index, const QMimeData * data, Qt::DropAction { QMimeData *mimeData = new QMimeData; if (expo) - mimeData->setData("application/x-companion9x-expo", qba); + mimeData->setData("application/x-companion-expo", qba); else - mimeData->setData("application/x-companion9x-mix", qba); + mimeData->setData("application/x-companion-mix", qba); emit mimeDropped(index, mimeData, action); } diff --git a/companion/src/modeledit/mixes.cpp b/companion/src/modeledit/mixes.cpp index 63a4bcb9c..ed6016e57 100644 --- a/companion/src/modeledit/mixes.cpp +++ b/companion/src/modeledit/mixes.cpp @@ -14,15 +14,14 @@ MixesPanel::MixesPanel(QWidget *parent, ModelData & model, GeneralSettings & gen QPushButton * qbUp = new QPushButton(this); QPushButton * qbDown = new QPushButton(this); QPushButton * qbClear = new QPushButton(this); - qbUp->setText(tr("Move Up")); - qbUp->setIcon(QIcon(":/images/moveup.png")); + qbUp->setIcon(CompanionIcon("moveup.png")); qbUp->setShortcut(QKeySequence(tr("Ctrl+Up"))); qbDown->setText(tr("Move Down")); - qbDown->setIcon(QIcon(":/images/movedown.png")); + qbDown->setIcon(CompanionIcon("movedown.png")); qbDown->setShortcut(QKeySequence(tr("Ctrl+Down"))); qbClear->setText(tr("Clear Mixes")); - qbClear->setIcon(QIcon(":/images/clear.png")); + qbClear->setIcon(CompanionIcon("clear.png")); mixesLayout->addWidget(MixerlistWidget,1,1,1,3); mixesLayout->addWidget(qbUp,2,1); @@ -113,11 +112,13 @@ void MixesPanel::update() if (md->swtch.type != SWITCH_TYPE_NONE) str += " " + tr("Switch(%1)").arg(md->swtch.toString()); - if (md->carryTrim>0) { - str += " " + tr("No Trim"); - } - else if (md->carryTrim<0) { - str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString(); + if (!GetEepromInterface()->getCapability(VirtualInputs)) { + if (md->carryTrim>0) { + str += " " + tr("No Trim"); + } + else if (md->carryTrim<0) { + str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString(); + } } if (md->noExpo) str += " " + tr("No DR/Expo"); @@ -176,7 +177,7 @@ void MixesPanel::update() bool MixesPanel::gm_insertMix(int idx) { if (idx<0 || idx>=GetEepromInterface()->getCapability(Mixes) || model.mixData[GetEepromInterface()->getCapability(Mixes)-1].destCh > 0) { - QMessageBox::information(this, "companion9x", tr("Not enough available mixers!")); + QMessageBox::information(this, "companion", tr("Not enough available mixers!")); return false; } @@ -205,7 +206,7 @@ void MixesPanel::gm_openMix(int index) emit modified(); update(); - MixerDialog *g = new MixerDialog(this, &mixd, generalSettings.stickMode); + MixerDialog *g = new MixerDialog(this, model, &mixd, generalSettings.stickMode); if(g->exec()) { model.mixData[index] = mixd; emit modified(); @@ -281,7 +282,7 @@ void MixesPanel::mixersDelete(bool ask) QMessageBox::StandardButton ret = QMessageBox::No; if(ask) - ret = QMessageBox::warning(this, "companion9x", + ret = QMessageBox::warning(this, "companion", tr("Delete Selected Mixes?"), QMessageBox::Yes | QMessageBox::No); @@ -310,13 +311,13 @@ void MixesPanel::mixersCopy() } QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x-mix", mxData); + mimeData->setData("application/x-companion-mix", mxData); QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard); } void MixesPanel::pasteMixerMimeData(const QMimeData * mimeData, int destIdx) { - if(mimeData->hasFormat("application/x-companion9x-mix")) { + if(mimeData->hasFormat("application/x-companion-mix")) { int idx; // mixer index int dch; @@ -328,7 +329,7 @@ void MixesPanel::pasteMixerMimeData(const QMimeData * mimeData, int destIdx) dch = model.mixData[idx].destCh; } - QByteArray mxData = mimeData->data("application/x-companion9x-mix"); + QByteArray mxData = mimeData->data("application/x-companion-mix"); int i = 0; while(imimeData(); - bool hasData = mimeData->hasFormat("application/x-companion9x-mix"); + bool hasData = mimeData->hasFormat("application/x-companion-mix"); QMenu contextMenu; - contextMenu.addAction(QIcon(":/images/add.png"), tr("&Add"),this,SLOT(mixerAdd()),tr("Ctrl+A")); - contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(mixerOpen()),tr("Enter")); + contextMenu.addAction(CompanionIcon("add.png"), tr("&Add"),this,SLOT(mixerAdd()),tr("Ctrl+A")); + contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(mixerOpen()),tr("Enter")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(mixersDelete()),tr("Delete")); - contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(mixersCopy()),tr("Ctrl+C")); - contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(mixersCut()),tr("Ctrl+X")); - contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(mixersPaste()),tr("Ctrl+V"))->setEnabled(hasData); - contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("Du&plicate"),this,SLOT(mixersDuplicate()),tr("Ctrl+U")); + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(mixersDelete()),tr("Delete")); + contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(mixersCopy()),tr("Ctrl+C")); + contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(mixersCut()),tr("Ctrl+X")); + contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(mixersPaste()),tr("Ctrl+V"))->setEnabled(hasData); + contextMenu.addAction(CompanionIcon("duplicate.png"), tr("Du&plicate"),this,SLOT(mixersDuplicate()),tr("Ctrl+U")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/moveup.png"), tr("Move Up"),this,SLOT(moveMixUp()),tr("Ctrl+Up")); - contextMenu.addAction(QIcon(":/images/movedown.png"), tr("Move Down"),this,SLOT(moveMixDown()),tr("Ctrl+Down")); + contextMenu.addAction(CompanionIcon("moveup.png"), tr("Move Up"),this,SLOT(moveMixUp()),tr("Ctrl+Up")); + contextMenu.addAction(CompanionIcon("movedown.png"), tr("Move Down"),this,SLOT(moveMixDown()),tr("Ctrl+Down")); contextMenu.exec(globalPos); } diff --git a/companion/src/modeledit/modeledit.cpp b/companion/src/modeledit/modeledit.cpp index fcdc68108..3aed2b38f 100644 --- a/companion/src/modeledit/modeledit.cpp +++ b/companion/src/modeledit/modeledit.cpp @@ -7,6 +7,7 @@ #include "mixes.h" #include "channels.h" #include "curves.h" +#include "../helpers.h" #include "customswitches.h" #include "customfunctions.h" #include "telemetry.h" @@ -17,20 +18,22 @@ ModelEdit::ModelEdit(RadioData & radioData, int modelId, bool openWizard, bool i ui(new Ui::ModelEdit), modelId(modelId), model(radioData.models[modelId]), - generalSettings(generalSettings) + generalSettings(radioData.generalSettings) { ui->setupUi(this); + QSettings settings; + restoreGeometry(settings.value("modelEditGeometry").toByteArray()); + ui->pushButton->setIcon(CompanionIcon("simulate.png")); addTab(new Setup(this, model), tr("Setup")); addTab(new HeliPanel(this, model), tr("Heli")); addTab(new FlightModes(this, model, radioData.generalSettings), tr("Flight Modes")); addTab(new InputsPanel(this, model, radioData.generalSettings), tr("Inputs")); addTab(new MixesPanel(this, model, radioData.generalSettings), tr("Mixes")); addTab(new Channels(this, model), tr("Channels")); - addTab(new CustomSwitchesPanel(this, model), tr("Custom Switches")); + addTab(new CustomSwitchesPanel(this, model), tr("Logical Switches")); if (GetEepromInterface()->getCapability(CustomFunctions)) - addTab(new CustomFunctionsPanel(this, model, radioData.generalSettings), tr("Assignable Functions")); + addTab(new CustomFunctionsPanel(this, model, radioData.generalSettings), tr("Switch Assignment")); addTab(new Curves(this, model), tr("Curves")); - // TODO remove this capability if (!GetEepromInterface()->getCapability(FSSwitch)) if (GetEepromInterface()->getCapability(Telemetry) & TM_HASTELEMETRY) addTab(new TelemetryPanel(this, model), tr("Telemetry")); } @@ -40,6 +43,12 @@ ModelEdit::~ModelEdit() delete ui; } +void ModelEdit::closeEvent(QCloseEvent *event) +{ + QSettings settings; + settings.setValue("modelEditGeometry", saveGeometry()); +} + class VerticalScrollArea : public QScrollArea { public: @@ -109,14 +118,16 @@ void ModelEdit::launchSimulation() simuData->generalSettings = generalSettings; simuData->models[modelId] = model; if (GetEepromInterface()->getCapability(SimulatorType)) { - xsimulatorDialog sd(this); - sd.loadParams(*simuData, modelId); - sd.exec(); + xsimulatorDialog *sd = new xsimulatorDialog(this); + sd->loadParams(*simuData, modelId); + sd->exec(); + delete sd; } else { - simulatorDialog sd(this); - sd.loadParams(*simuData, modelId); - sd.exec(); + simulatorDialog *sd = new simulatorDialog(this); + sd->loadParams(*simuData, modelId); + sd->exec(); + delete sd; } delete simuData; } diff --git a/companion/src/modeledit/modeledit.h b/companion/src/modeledit/modeledit.h index 4208a7190..9450d90d4 100644 --- a/companion/src/modeledit/modeledit.h +++ b/companion/src/modeledit/modeledit.h @@ -15,6 +15,9 @@ class ModelEdit : public QDialog public: explicit ModelEdit(RadioData & radioData, int modelId , bool openWizard =false, bool inNew =false, QWidget *parent = 0); ~ModelEdit(); + + protected: + void closeEvent(QCloseEvent *event); signals: void modified(); diff --git a/companion/src/modeledit/modeledit.ui b/companion/src/modeledit/modeledit.ui index a4ac2fa1e..9002e383b 100644 --- a/companion/src/modeledit/modeledit.ui +++ b/companion/src/modeledit/modeledit.ui @@ -20,7 +20,7 @@ Dialog - + :/icon.png:/icon.png @@ -50,10 +50,6 @@ Simulate - - - :/images/simulate.png:/images/simulate.png -
@@ -61,7 +57,7 @@
- + diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index 7b5fbae91..04b816faa 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -19,13 +19,10 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer): ui->persistentValue->hide(); } - if (!GetEepromInterface()->getCapability(minuteBeep)) { - ui->minuteBeep->hide(); - } - - if (!GetEepromInterface()->getCapability(countdownBeep)) { - ui->countdownBeep->hide(); - } + ui->countdownBeep->addItem(tr("None")); + ui->countdownBeep->addItem(tr("Beeps")); + if (IS_ARM(GetEepromInterface()->getBoard()) || IS_2560(GetEepromInterface()->getBoard())) + ui->countdownBeep->addItem(tr("Countdown")); } TimerPanel::~TimerPanel() @@ -54,13 +51,8 @@ void TimerPanel::update() ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); } - if (GetEepromInterface()->getCapability(minuteBeep)) { - ui->minuteBeep->setChecked(timer.minuteBeep); - } - - if (GetEepromInterface()->getCapability(countdownBeep)) { - ui->countdownBeep->setChecked(timer.countdownBeep); - } + ui->countdownBeep->setCurrentIndex(timer.countdownBeep); + ui->minuteBeep->setChecked(timer.minuteBeep); } void TimerPanel::on_value_editingFinished() @@ -81,15 +73,15 @@ void TimerPanel::on_persistent_toggled(bool checked) emit modified(); } -void TimerPanel::on_minuteBeep_toggled(bool checked) +void TimerPanel::on_countdownBeep_currentIndexChanged(int index) { - timer.minuteBeep = checked; + timer.countdownBeep = index; emit modified(); } -void TimerPanel::on_countdownBeep_toggled(bool checked) +void TimerPanel::on_minuteBeep_toggled(bool checked) { - timer.countdownBeep = checked; + timer.minuteBeep = checked; emit modified(); } @@ -107,16 +99,16 @@ ModulePanel::ModulePanel(QWidget *parent, ModelData & model, ModuleData & module QString label; if (moduleIdx < 0) { - label = tr("Trainer Module"); + label = tr("Trainer Output"); ui->trainerMode->setCurrentIndex(model.trainerMode); } else { ui->label_trainerMode->hide(); ui->trainerMode->hide(); if (moduleIdx == 0) - label = tr("Internal Module"); + label = tr("Internal Radio System"); else - label = tr("External Module"); + label = tr("External Radio Module"); } ui->label_module->setText(label); @@ -224,14 +216,18 @@ void ModulePanel::update() ui->label_failsafeMode->setVisible(mask & MASK_FAILSAFES); ui->failsafeMode->setVisible(mask & MASK_FAILSAFES); ui->failsafeMode->setCurrentIndex(module.failsafeMode); - ui->label_failsafeFrame->setVisible(mask & MASK_FAILSAFES); - ui->failsafesFrame->setVisible(mask & MASK_FAILSAFES); ui->failsafesFrame->setEnabled(module.failsafeMode == 1); for (int i=0; isetValue(module.failsafeChannels[i]); failsafeSpins[i]->setValue(module.failsafeChannels[i]); } } + else { + mask = 0; + } + + ui->failsafesLayoutLabel->setVisible(mask & MASK_FAILSAFES); + ui->failsafesFrame->setVisible(mask & MASK_FAILSAFES); } void ModulePanel::on_trainerMode_currentIndexChanged(int index) @@ -353,7 +349,7 @@ Setup::Setup(QWidget *parent, ModelData & model): if (GetEepromInterface()->getCapability(ModelImage)) { QStringList items; items.append(""); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString path = settings.value("sdPath", ".").toString(); path.append("/BMP/"); QDir qd(path); @@ -486,7 +482,7 @@ void Setup::on_extendedTrims_toggled(bool checked) void Setup::on_trimIncrement_currentIndexChanged(int index) { - model.trimInc = index; + model.trimInc = index-2; emit modified(); } @@ -507,7 +503,7 @@ void Setup::on_image_currentIndexChanged(int index) { if (!lock) { strncpy(model.bitmap, ui->image->currentText().toAscii(), GetEepromInterface()->getCapability(VoicesMaxLength)); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString path=settings.value("sdPath", ".").toString(); path.append("/BMP/"); QDir qd(path); @@ -545,7 +541,7 @@ void Setup::update() ui->throttleWarning->setChecked(model.disableThrottleWarning); //trim inc, thro trim, thro expo, instatrim - ui->trimIncrement->setCurrentIndex(model.trimInc); + ui->trimIncrement->setCurrentIndex(model.trimInc+2); ui->throttleTrim->setChecked(model.thrTrim); ui->extendedLimits->setChecked(model.extendedLimits); ui->extendedTrims->setChecked(model.extendedTrims); diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index fb63a898a..2e88bd02b 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -28,7 +28,7 @@ class TimerPanel : public ModelPanel void on_value_editingFinished(); void on_persistent_toggled(bool checked); void on_minuteBeep_toggled(bool checked); - void on_countdownBeep_toggled(bool checked); + void on_countdownBeep_currentIndexChanged(int index); private: TimerData & timer; diff --git a/companion/src/modeledit/setup_module.ui b/companion/src/modeledit/setup_module.ui index 500ea2fe8..406488f96 100644 --- a/companion/src/modeledit/setup_module.ui +++ b/companion/src/modeledit/setup_module.ui @@ -443,7 +443,7 @@ - + 16777215 diff --git a/companion/src/modeledit/setup_timer.ui b/companion/src/modeledit/setup_timer.ui index 96ed9370f..e87ed86b8 100644 --- a/companion/src/modeledit/setup_timer.ui +++ b/companion/src/modeledit/setup_timer.ui @@ -6,8 +6,8 @@ 0 0 - 726 - 54 + 586 + 38 @@ -33,6 +33,23 @@ + + + + Countdown + + + + + + + + + + MinuteBeep + + + @@ -47,20 +64,6 @@ - - - - MinuteBeep - - - - - - - CountDownBeep - - - diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index 22db68ae4..014def777 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -1,6 +1,7 @@ #include "telemetry.h" #include "ui_telemetry.h" #include "ui_telemetry_analog.h" +#include "ui_telemetry_customscreen.h" #include "helpers.h" TelemetryAnalog::TelemetryAnalog(QWidget *parent, FrSkyChannelData & analog): @@ -11,15 +12,13 @@ TelemetryAnalog::TelemetryAnalog(QWidget *parent, FrSkyChannelData & analog): { ui->setupUi(this); - float ratio; + float ratio = analog.getRatio(); if (analog.type==0 || analog.type==1 || analog.type==2) { - ratio = (analog.ratio<RatioSB->setDecimals(1); ui->RatioSB->setMaximum(25.5*GetEepromInterface()->getCapability(TelemetryMaxMultiplier)); } else { - ratio = analog.ratio<RatioSB->setDecimals(0); ui->RatioSB->setMaximum(255*GetEepromInterface()->getCapability(TelemetryMaxMultiplier)); } @@ -44,69 +43,44 @@ TelemetryAnalog::TelemetryAnalog(QWidget *parent, FrSkyChannelData & analog): void TelemetryAnalog::update() { - float ratio, alarm1value, alarm2value; - if (analog.ratio==0) { - ui->alarm1ValueSB->setMinimum(0); - ui->alarm1ValueSB->setMaximum(0); - ui->alarm2ValueSB->setMinimum(0); - ui->alarm2ValueSB->setMaximum(0); - ui->CalibSB->setMinimum(0); - ui->CalibSB->setMaximum(0); - ui->CalibSB->setValue(0); - ui->alarm1ValueSB->setValue(0); - ui->alarm2ValueSB->setValue(0); - return; - } + float ratio = analog.getRatio(); + float step = ratio / 255; + float mini = (ratio * analog.offset) / 255; + float maxi = mini + ratio; - if (analog.type==0 || analog.type==1 || analog.type==2) { - ratio=(analog.ratio<alarm1ValueSB->setDecimals(2); - ui->alarm1ValueSB->setSingleStep(ratio/255.0); - ui->alarm2ValueSB->setDecimals(2); - ui->alarm2ValueSB->setSingleStep(ratio/255.0); - ui->alarm1ValueSB->setMinimum((analog.ratio*1.0*analog.offset)/2550.0); - ui->alarm1ValueSB->setMaximum(ratio+(analog.ratio*1.0*analog.offset)/2550.0); - ui->alarm2ValueSB->setMinimum((analog.offset*1.0*analog.ratio)/2550.0); - ui->alarm2ValueSB->setMaximum(ratio+(analog.offset*1.0*analog.ratio)/2550.0); - } - else { - ratio=analog.ratio<alarm1ValueSB->setDecimals(2); - ui->alarm1ValueSB->setSingleStep(ratio/255.0); - ui->alarm2ValueSB->setDecimals(2); - ui->alarm2ValueSB->setSingleStep(ratio/255.0); - ui->alarm1ValueSB->setMinimum((analog.offset*1.0*analog.ratio)/255.0); - ui->alarm1ValueSB->setMaximum(ratio+(analog.offset*1.0*analog.ratio)/255.0); - ui->alarm2ValueSB->setMinimum((analog.offset*1.0*analog.ratio)/255.0); - ui->alarm2ValueSB->setMaximum(ratio+(analog.offset*1.0*analog.ratio)/255.0); - } - ui->CalibSB->setDecimals(2); - ui->CalibSB->setMaximum((ratio*127)/255.0); - ui->CalibSB->setMinimum((-ratio*128)/255.0); - ui->CalibSB->setSingleStep(ratio/255.0); - ui->CalibSB->setValue((analog.offset*ratio)/255); - alarm1value=ratio*(analog.alarms[0].value/255.0+analog.offset/255.0); - alarm2value=ratio*(analog.alarms[1].value/255.0+analog.offset/255.0);; - ui->alarm1ValueSB->setValue(alarm1value); - ui->alarm2ValueSB->setValue(alarm2value); + ui->alarm1ValueSB->setDecimals(2); + ui->alarm1ValueSB->setSingleStep(step); + ui->alarm1ValueSB->setMinimum(mini); + ui->alarm1ValueSB->setMaximum(maxi); + ui->alarm1ValueSB->setValue(mini + step*analog.alarms[0].value); + + ui->alarm2ValueSB->setDecimals(2); + ui->alarm2ValueSB->setSingleStep(step); + ui->alarm2ValueSB->setMinimum(mini); + ui->alarm2ValueSB->setMaximum(maxi); + ui->alarm2ValueSB->setValue(mini + step*analog.alarms[1].value); + + ui->CalibSB->setDecimals(2); + ui->CalibSB->setMaximum(step*127); + ui->CalibSB->setMinimum(-step*128); + ui->CalibSB->setSingleStep(step); + ui->CalibSB->setValue(mini); } void TelemetryAnalog::on_UnitCB_currentIndexChanged(int index) { - float ratio; - analog.type=index; + float ratio = analog.getRatio(); + analog.type = index; switch (index) { case 0: case 1: case 2: ui->RatioSB->setDecimals(1); ui->RatioSB->setMaximum(25.5*GetEepromInterface()->getCapability(TelemetryMaxMultiplier)); - ratio=(analog.ratio<RatioSB->setDecimals(0); ui->RatioSB->setMaximum(255*GetEepromInterface()->getCapability(TelemetryMaxMultiplier)); - ratio=(analog.ratio<RatioSB->setValue(ratio); @@ -127,7 +101,7 @@ void TelemetryAnalog::on_RatioSB_valueChanged() } else { analog.multiplier = findmult(ui->RatioSB->value(), 255); - float singlestep =(1<RatioSB->setSingleStep(singlestep); ui->RatioSB->setValue(round(ui->RatioSB->value()/singlestep)*singlestep); @@ -139,15 +113,17 @@ void TelemetryAnalog::on_RatioSB_valueChanged() void TelemetryAnalog::on_RatioSB_editingFinished() { + if (!lock) { float ratio, calib, alarm1value,alarm2value; - if (lock) return; + if (analog.type==0 || analog.type==1 || analog.type==2) { analog.multiplier = findmult(ui->RatioSB->value(), 25.5); ui->CalibSB->setSingleStep((1<alarm1ValueSB->setSingleStep((1<alarm2ValueSB->setSingleStep((1<RatioSB->value()*10))/(1 <RatioSB->value(), 255); ui->CalibSB->setSingleStep(1<alarm1ValueSB->setSingleStep(1<0) { if (calib>((ratio*127)/255)) { analog.offset=127; - } else { + } + else { analog.offset=round(calib*255/ratio); } } @@ -185,18 +162,15 @@ void TelemetryAnalog::on_RatioSB_editingFinished() analog.alarms[0].value=round((alarm1value*255-analog.offset*(analog.ratio<CalibSB->value()/ratio)); calib=ratio*analog.offset/255.0; @@ -204,7 +178,8 @@ void TelemetryAnalog::on_CalibSB_editingFinished() alarm2value=ui->alarm2ValueSB->value(); if (alarm1value(ratio+calib)) { + } + else if (alarm1value>(ratio+calib)) { alarm1value=ratio+calib; } if (alarm2valuealarm1ValueSB->value(); - if (analog.type==0) { - ratio/=10; - } + if (alarm1value<((calib*ratio)/255)) { analog.alarms[0].value=0; - } else if (alarm1value>(ratio+(calib*ratio)/255)) { + } + else if (alarm1value>(ratio+(calib*ratio)/255)) { analog.alarms[0].value=255; - } else { + } + else { analog.alarms[0].value = round((alarm1value-((calib*ratio)/255))/ratio*255); } update(); @@ -259,28 +234,26 @@ void TelemetryAnalog::on_alarm1ValueSB_editingFinished() void TelemetryAnalog::on_alarm2LevelCB_currentIndexChanged(int index) { - analog.alarms[1].level = index; - emit modified(); + analog.alarms[1].level = index; + emit modified(); } void TelemetryAnalog::on_alarm2GreaterCB_currentIndexChanged(int index) { - analog.alarms[1].greater = index; - emit modified(); + analog.alarms[1].greater = index; + emit modified(); } void TelemetryAnalog::on_alarm2ValueSB_editingFinished() { - float ratio, calib, alarm2value; - ratio = analog.ratio<alarm2ValueSB->value(); - if (analog.type==0) { - ratio/=10; - } if (alarm2value<((calib*ratio)/255)) { analog.alarms[1].value=0; - } else if (alarm2value>(ratio+(calib*ratio)/255)) { + } + else if (alarm2value>(ratio+(calib*ratio)/255)) { analog.alarms[1].value=255; } else { analog.alarms[1].value = round((alarm2value-((calib*ratio)/255))/ratio*255); @@ -296,41 +269,182 @@ TelemetryAnalog::~TelemetryAnalog() /******************************************************/ +TelemetryCustomScreen::TelemetryCustomScreen(QWidget *parent, ModelData & model, FrSkyScreenData & screen): + ModelPanel(parent, model), + ui(new Ui::TelemetryCustomScreen), + screen(screen) +{ + ui->setupUi(this); + + for (int l=0; l<4; l++) { + for (int c=0; cgetCapability(TelemetryCustomScreensFieldsPerLine); c++) { + fieldsCB[l][c] = new QComboBox(this); + fieldsCB[l][c]->setProperty("index", c + (l<<8)); + populateCustomScreenFieldCB(fieldsCB[l][c], screen.body.lines[l].source[c], (l<4), model.frsky.usrProto); + ui->screenNumsLayout->addWidget(fieldsCB[l][c], l, c, 1, 1); + connect(fieldsCB[l][c], SIGNAL(currentIndexChanged(int)), this, SLOT(customFieldChanged(int))); + } + } + + for (int l=0; l<4; l++) { + barsCB[l] = new QComboBox(this); + barsCB[l]->setProperty("index", l); + populateCustomScreenFieldCB(barsCB[l], screen.body.bars[l].source, false, model.frsky.usrProto); + connect(barsCB[l], SIGNAL(currentIndexChanged(int)), this, SLOT(barSourceChanged(int))); + ui->screenBarsLayout->addWidget(barsCB[l], l, 0, 1, 1); + + minSB[l] = new QDoubleSpinBox(this); + minSB[l]->setProperty("index", l); + connect(minSB[l], SIGNAL(valueChanged(double)), this, SLOT(barMinChanged(double))); + ui->screenBarsLayout->addWidget(minSB[l], l, 1, 1, 1); + + QLabel * label = new QLabel(this); + label->setAutoFillBackground(false); + label->setStyleSheet(QString::fromUtf8("Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),)\n""")); + label->setFrameShape(QFrame::Panel); + label->setFrameShadow(QFrame::Raised); + label->setAlignment(Qt::AlignCenter); + ui->screenBarsLayout->addWidget(label, l, 2, 1, 1); + + maxSB[l] = new QDoubleSpinBox(this); + maxSB[l]->setProperty("index", l); + connect(maxSB[l], SIGNAL(valueChanged(double)), this, SLOT(barMaxChanged(double))); + ui->screenBarsLayout->addWidget(maxSB[l], l, 3, 1, 1); + } + + update(); +} + +TelemetryCustomScreen::~TelemetryCustomScreen() +{ + delete ui; +} + +void TelemetryCustomScreen::update() +{ + lock = true; + + ui->screenType->setCurrentIndex(screen.type); + ui->screenNums->setVisible(screen.type == 0); + ui->screenBars->setVisible(screen.type != 0); + + if (screen.type == 0) { + for (int l=0; l<4; l++) { + for (int c=0; cgetCapability(TelemetryCustomScreensFieldsPerLine); c++) { + fieldsCB[l][c]->setCurrentIndex(screen.body.lines[l].source[c]); + } + } + } + else { + for (int i=0; i<4; i++) { + updateBar(i); + } + } + + lock = false; +} + +void TelemetryCustomScreen::updateBar(int line) +{ + int index = screen.body.bars[line].source; + barsCB[line]->setCurrentIndex(index); + if (index) { + RawSource source = RawSource(SOURCE_TYPE_TELEMETRY, index-1, &model); + RawSourceRange range = source.getRange(true); + int max = round((range.max - range.min) / range.step); + if (255-screen.body.bars[line].barMax > max) + screen.body.bars[line].barMax = 255 - max; + minSB[line]->setEnabled(true); + minSB[line]->setDecimals(range.decimals); + minSB[line]->setMinimum(range.min); + minSB[line]->setMaximum(range.max); + minSB[line]->setSingleStep(range.step); + minSB[line]->setValue(range.getValue(screen.body.bars[line].barMin)); + maxSB[line]->setEnabled(true); + maxSB[line]->setDecimals(range.decimals); + maxSB[line]->setMinimum(range.min); + maxSB[line]->setMaximum(range.max); + maxSB[line]->setSingleStep(range.step); + maxSB[line]->setValue(range.getValue(255 - screen.body.bars[line].barMax)); + } + else { + minSB[line]->setDisabled(true); + maxSB[line]->setDisabled(true); + } +} + +void TelemetryCustomScreen::on_screenType_currentIndexChanged(int index) +{ + if (!lock) { + memset(&screen.body, 0, sizeof(screen.body)); + screen.type = index; + update(); + emit modified(); + } +} + +void TelemetryCustomScreen::customFieldChanged(int value) +{ + int index = sender()->property("index").toInt(); + screen.body.lines[index/256].source[index%256] = value; + emit modified(); +} + +void TelemetryCustomScreen::barSourceChanged(int index) +{ + QComboBox * cb = qobject_cast(sender()); + int line = cb->property("index").toInt(); + screen.body.bars[line].source = index; + screen.body.bars[line].barMin = 0; + screen.body.bars[line].barMax = 0; + updateBar(line); + emit modified(); +} + +void TelemetryCustomScreen::barMinChanged(double value) +{ + if (!lock) { + int line = sender()->property("index").toInt(); + screen.body.bars[line].barMin = round((value-minSB[line]->minimum()) / minSB[line]->singleStep()); + // TODO set min (maxSB) + emit modified(); + } +} + +void TelemetryCustomScreen::barMaxChanged(double value) +{ + if (!lock) { + int line = sender()->property("index").toInt(); + screen.body.bars[line].barMax = 255 - round((value-minSB[line]->minimum()) / maxSB[line]->singleStep()); + // TODO set max (minSB) + emit modified(); + } +} + +/******************************************************/ + TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model): ModelPanel(parent, model), ui(new Ui::Telemetry) { ui->setupUi(this); + if (GetEepromInterface()->getCapability(NoTelemetryProtocol)) { + model.frsky.usrProto = 1; + } + analogs[0] = new TelemetryAnalog(this, model.frsky.channels[0]); ui->A1Layout->addWidget(analogs[0]); connect(analogs[0], SIGNAL(modified()), this, SLOT(onAnalogModified())); + analogs[1] = new TelemetryAnalog(this, model.frsky.channels[1]); ui->A2Layout->addWidget(analogs[1]); connect(analogs[1], SIGNAL(modified()), this, SLOT(onAnalogModified())); - QGroupBox* barsgb[3] = { ui->CS1Bars, ui->CS2Bars, ui->CS3Bars }; - QGroupBox* numsgb[3] = { ui->CS1Nums, ui->CS2Nums, ui->CS3Nums }; - - QComboBox* barscb[12] = { ui->telBarCS1B1_CB, ui->telBarCS1B2_CB, ui->telBarCS1B3_CB, ui->telBarCS1B4_CB, - ui->telBarCS2B1_CB, ui->telBarCS2B2_CB, ui->telBarCS2B3_CB, ui->telBarCS2B4_CB, - ui->telBarCS3B1_CB, ui->telBarCS3B2_CB, ui->telBarCS3B3_CB, ui->telBarCS3B4_CB}; - QDoubleSpinBox* minSB[12] = { ui->telMinCS1SB1, ui->telMinCS1SB2, ui->telMinCS1SB3, ui->telMinCS1SB4, - ui->telMinCS2SB1, ui->telMinCS2SB2, ui->telMinCS2SB3, ui->telMinCS2SB4, - ui->telMinCS3SB1, ui->telMinCS3SB2, ui->telMinCS3SB3, ui->telMinCS3SB4}; - QDoubleSpinBox* maxSB[12] = { ui->telMaxCS1SB1, ui->telMaxCS1SB2, ui->telMaxCS1SB3, ui->telMaxCS1SB4, - ui->telMaxCS2SB1, ui->telMaxCS2SB2, ui->telMaxCS2SB3, ui->telMaxCS2SB4, - ui->telMaxCS3SB1, ui->telMaxCS3SB2, ui->telMaxCS3SB3, ui->telMaxCS3SB4}; - QComboBox* tmp[36] = { ui->telemetryCS1F1_CB, ui->telemetryCS1F2_CB, ui->telemetryCS1F3_CB, ui->telemetryCS1F4_CB, ui->telemetryCS1F5_CB, ui->telemetryCS1F6_CB, ui->telemetryCS1F7_CB, ui->telemetryCS1F8_CB, ui->telemetryCS1F9_CB, ui->telemetryCS1F10_CB, ui->telemetryCS1F11_CB, ui->telemetryCS1F12_CB, - ui->telemetryCS2F1_CB, ui->telemetryCS2F2_CB, ui->telemetryCS2F3_CB, ui->telemetryCS2F4_CB, ui->telemetryCS2F5_CB, ui->telemetryCS2F6_CB, ui->telemetryCS2F7_CB, ui->telemetryCS2F8_CB, ui->telemetryCS2F9_CB, ui->telemetryCS2F10_CB, ui->telemetryCS2F11_CB, ui->telemetryCS2F12_CB, - ui->telemetryCS3F1_CB, ui->telemetryCS3F2_CB, ui->telemetryCS3F3_CB, ui->telemetryCS3F4_CB, ui->telemetryCS3F5_CB, ui->telemetryCS3F6_CB, ui->telemetryCS3F7_CB, ui->telemetryCS3F8_CB, ui->telemetryCS3F9_CB, ui->telemetryCS3F10_CB, ui->telemetryCS3F11_CB, ui->telemetryCS3F12_CB}; - - memcpy(barsGB, barsgb, sizeof(barsGB)); - memcpy(numsGB, numsgb, sizeof(numsGB)); - memcpy(barsCB, barscb, sizeof(barsCB)); - memcpy(this->maxSB, maxSB, sizeof(this->maxSB)); - memcpy(this->minSB, minSB, sizeof(this->minSB)); - memcpy(csf, tmp, sizeof(csf)); + for (int i=0; igetCapability(TelemetryCustomScreens); i++) { + TelemetryCustomScreen * tab = new TelemetryCustomScreen(this, model, model.frsky.screens[i]); + ui->customScreens->addTab(tab, tr("Telemetry screen %1").arg(i+1)); + } setup(); } @@ -342,23 +456,10 @@ TelemetryPanel::~TelemetryPanel() void TelemetryPanel::setup() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString(); lock=true; - ui->telemetryCSType1->setCurrentIndex(model.frsky.screens[0].type); - ui->telemetryCSType2->setCurrentIndex(model.frsky.screens[1].type); - ui->telemetryCSType3->setCurrentIndex(model.frsky.screens[2].type); - - for (int i=0; i<3; i++) { - bool isNum = (model.frsky.screens[i].type==0); - barsGB[i]->setVisible(!isNum); - numsGB[i]->setVisible(isNum); - } - - connect(ui->telemetryCSType1,SIGNAL(currentIndexChanged(int)),this,SLOT(ScreenTypeCBcurrentIndexChanged(int))); - connect(ui->telemetryCSType2,SIGNAL(currentIndexChanged(int)),this,SLOT(ScreenTypeCBcurrentIndexChanged(int))); - connect(ui->telemetryCSType3,SIGNAL(currentIndexChanged(int)),this,SLOT(ScreenTypeCBcurrentIndexChanged(int))); //frsky Settings if (!GetEepromInterface()->getCapability(TelemetryRSSIModel) ) { @@ -371,16 +472,19 @@ void TelemetryPanel::setup() if (!GetEepromInterface()->getCapability(HasAltitudeSel)) { ui->AltitudeGPS_ChkB->hide(); - } else { + } + else { ui->AltitudeGPS_ChkB->setChecked(model.frsky.FrSkyGpsAlt); } - int varioCap=GetEepromInterface()->getCapability(HasVario); - // if (IS_TARANIS(GetEepromInterface()->getBoard())) { - if (false) { + + if (IS_TARANIS(GetEepromInterface()->getBoard())) { ui->AltitudeToolbar_ChkB->setChecked(model.frsky.altitudeDisplayed); - } else { + } + else { ui->AltitudeToolbar_ChkB->hide(); } + + int varioCap = GetEepromInterface()->getCapability(HasVario); if (!varioCap) { ui->varioLimitMax_DSB->hide(); ui->varioLimitMinOff_ChkB->hide(); @@ -394,7 +498,8 @@ void TelemetryPanel::setup() ui->VarioLabel_4->hide(); ui->varioSourceCB->hide(); ui->varioSource_label->hide(); - } else { + } + else { if (!GetEepromInterface()->getCapability(HasVarioSink)) { ui->varioLimitMinOff_ChkB->hide(); ui->varioLimitMin_DSB->hide(); @@ -428,44 +533,12 @@ void TelemetryPanel::setup() if (!(GetEepromInterface()->getCapability(HasAltitudeSel)||GetEepromInterface()->getCapability(HasVario))) { ui->altimetryGB->hide(); } - if (GetEepromInterface()->getCapability(NoTelemetryProtocol)) { - model.frsky.usrProto=1; - ui->frskyProtoCB->setDisabled(true); - } else { - ui->frskyProtoCB->setEnabled(true); - } - if (GetEepromInterface()->getCapability(TelemetryCSFields)==0) { - ui->groupBox_5->hide(); - } else { - if (GetEepromInterface()->getCapability(TelemetryCSFields)==8) { - ui->tabCsView->removeTab(1); - ui->tabCsView->removeTab(2); - } - if (GetEepromInterface()->getCapability(TelemetryCSFields)==16) { - ui->tabCsView->removeTab(2); - } - int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); - if (cols==0) cols=2; - for (int screen=0; screen<(GetEepromInterface()->getCapability(TelemetryCSFields)/(4*cols)); screen++) { - for (int c=0; chide(); - } - } - } + if (GetEepromInterface()->getCapability(NoTelemetryProtocol)) { + ui->frskyProtoCB->setDisabled(true); + } + else { + ui->frskyProtoCB->setEnabled(true); } if (!GetEepromInterface()->getCapability(TelemetryUnits)) { @@ -476,11 +549,39 @@ void TelemetryPanel::setup() } ui->frskyUnitsCB->setCurrentIndex(index); } + if ((GetEepromInterface()->getCapability(Telemetry)&TM_HASWSHH)) { ui->frskyProtoCB->addItem(tr("Winged Shadow How High")); - } else { + } + else { ui->frskyProtoCB->addItem(tr("Winged Shadow How High (not supported)")); } + + ui->variousGB->hide(); + if (!(GetEepromInterface()->getCapability(HasFasOffset)) && !(firmware_id.contains("fasoffset"))) { + ui->fasOffset_label->hide(); + ui->fasOffset_DSB->hide(); + } + else { + ui->fasOffset_DSB->setValue(model.frsky.fasOffset/10.0); + ui->variousGB->show(); + } + + if (!(GetEepromInterface()->getCapability(HasMahPersistent))) { + ui->mahCount_label->hide(); + ui->mahCount_SB->hide(); + ui->mahCount_ChkB->hide(); + } + else { + if (model.frsky.mAhPersistent) { + ui->mahCount_ChkB->setChecked(true); + ui->mahCount_SB->setValue(model.frsky.storedMah); + } + else { + ui->mahCount_SB->setDisabled(true); + } + ui->variousGB->show(); + } ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto); ui->frskyUnitsCB->setCurrentIndex(model.frsky.imperial); @@ -488,57 +589,6 @@ void TelemetryPanel::setup() ui->frskyCurrentCB->setCurrentIndex(model.frsky.currentSource); ui->frskyVoltCB->setCurrentIndex(model.frsky.voltsSource); - for (int screen=0; screen<2;screen++) { - for (int rows=0; rows<4; rows++) { - for (int cols=0; cols<3; cols++) { - int index=screen*12+cols*4+rows; - populateCustomScreenFieldCB(csf[index], model.frsky.screens[screen].body.lines[rows].source[cols], (rows<4), model.frsky.usrProto); - } - } - } - - for (int j=0; j<12; j++) { - int screen = j/4; - int field = j%4; - populateCustomScreenFieldCB(barsCB[j], model.frsky.screens[screen].body.bars[field].source, false, model.frsky.usrProto); - switch (model.frsky.screens[screen].body.bars[field].source-1) { - case TELEMETRY_SOURCE_TX_BATT: - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A1_MIN: - case TELEMETRY_SOURCE_A2: - case TELEMETRY_SOURCE_A2_MIN: - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - case TELEMETRY_SOURCE_CURRENT_MAX: - case TELEMETRY_SOURCE_CURRENT: - minSB[j]->setDecimals(1); - maxSB[j]->setDecimals(1); - break; - case TELEMETRY_SOURCE_CELL: - minSB[j]->setDecimals(2); - maxSB[j]->setDecimals(2); - break; - default: - minSB[j]->setDecimals(0); - maxSB[j]->setDecimals(0); - } - minSB[j]->setMinimum(getBarValue(model.frsky.screens[screen].body.bars[field].source, 0, &model.frsky)); - minSB[j]->setMaximum(getBarValue(model.frsky.screens[screen].body.bars[field].source, 255, &model.frsky)); - minSB[j]->setSingleStep(getBarStep(model.frsky.screens[screen].body.bars[field].source)); - minSB[j]->setValue(getBarValue(model.frsky.screens[screen].body.bars[field].source, model.frsky.screens[screen].body.bars[field].barMin, &model.frsky)); - maxSB[j]->setMinimum(getBarValue(model.frsky.screens[screen].body.bars[field].source, 0, &model.frsky)); - maxSB[j]->setMaximum(getBarValue(model.frsky.screens[screen].body.bars[field].source, 255, &model.frsky)); - maxSB[j]->setSingleStep(getBarStep(model.frsky.screens[screen].body.bars[field].source)); - maxSB[j]->setValue(getBarValue(model.frsky.screens[screen].body.bars[field].source, (255-model.frsky.screens[screen].body.bars[field].barMax), &model.frsky)); - - if (model.frsky.screens[screen].body.bars[field].source==0 || model.frsky.screens[screen].type==0) { - minSB[j]->setDisabled(true); - maxSB[j]->setDisabled(true); - } - connect(barsCB[j],SIGNAL(currentIndexChanged(int)),this,SLOT(telBarCBcurrentIndexChanged(int))); - connect(maxSB[j],SIGNAL(editingFinished()),this,SLOT(telMaxSBeditingFinished())); - connect(minSB[j],SIGNAL(editingFinished()),this,SLOT(telMinSBeditingFinished())); - } lock=false; } @@ -573,367 +623,119 @@ void TelemetryPanel::on_frskyVoltCB_currentIndexChanged(int index) void TelemetryPanel::on_frskyProtoCB_currentIndexChanged(int index) { - if (lock) return; - int bindex[12]; - lock=true; - for (int i=0; i<12; i++) { - bindex[i]=barsCB[i]->currentIndex(); - model.frsky.usrProto=index; - populateCustomScreenFieldCB(barsCB[i], bindex[i], false, model.frsky.usrProto); - } - if (!GetEepromInterface()->getCapability(TelemetryCSFields)) { - ui->groupBox_5->hide(); - } else { - for (int screen=0; screen<2;screen++) { - for (int rows=0; rows<4; rows++) { - for (int cols=0; cols<3; cols++) { - int index=screen*12+cols*4+rows; - populateCustomScreenFieldCB(csf[index], model.frsky.screens[screen].body.lines[rows].source[cols], (rows<4), model.frsky.usrProto); - } - } - } - } - lock=false; - if (index==0) { - for (int i=0; i<12; i++) { - if (bindex[i]>2) { - barsCB[i]->setCurrentIndex(0); - } else { - barsCB[i]->setCurrentIndex(bindex[i]); - } - } - } else if (index==2) { - for (int i=0; i<12; i++) { - if (bindex[i]>3) { - barsCB[i]->setCurrentIndex(0); - } else { - barsCB[i]->setCurrentIndex(bindex[i]); - } - } - } else { - for (int i=0; i<12; i++) { - barsCB[i]->setCurrentIndex(bindex[i]); - } - } - emit modified(); + model.frsky.usrProto = index; + emit modified(); } -void TelemetryPanel::on_rssiAlarm1CB_currentIndexChanged(int index) { - if (lock) return; - model.frsky.rssiAlarms[0].level=index; - emit modified(); +void TelemetryPanel::on_rssiAlarm1CB_currentIndexChanged(int index) +{ + model.frsky.rssiAlarms[0].level = index; + emit modified(); } -void TelemetryPanel::on_rssiAlarm2CB_currentIndexChanged(int index) { - if (lock) return; - model.frsky.rssiAlarms[1].level=index; - emit modified(); +void TelemetryPanel::on_rssiAlarm2CB_currentIndexChanged(int index) +{ + model.frsky.rssiAlarms[1].level = index; + emit modified(); } void TelemetryPanel::on_rssiAlarm1SB_editingFinished() { - if (lock) return; - model.frsky.rssiAlarms[0].value=(ui->rssiAlarm1SB->value()); - emit modified(); + model.frsky.rssiAlarms[0].value = ui->rssiAlarm1SB->value(); + emit modified(); } void TelemetryPanel::on_rssiAlarm2SB_editingFinished() { - if (lock) return; - model.frsky.rssiAlarms[1].value=(ui->rssiAlarm2SB->value()); - emit modified(); + model.frsky.rssiAlarms[1].value = ui->rssiAlarm2SB->value(); + emit modified(); } void TelemetryPanel::on_AltitudeGPS_ChkB_toggled(bool checked) { - if (lock) return; - model.frsky.FrSkyGpsAlt = checked; - emit modified(); - //AltitudeGPS_CB + model.frsky.FrSkyGpsAlt = checked; + emit modified(); } void TelemetryPanel::on_AltitudeToolbar_ChkB_toggled(bool checked) { - model.frsky.altitudeDisplayed = checked; - emit modified(); + model.frsky.altitudeDisplayed = checked; + emit modified(); } void TelemetryPanel::on_varioSourceCB_currentIndexChanged(int index) { - if (lock) return; - model.frsky.varioSource = index; - emit modified(); + model.frsky.varioSource = index; + emit modified(); } void TelemetryPanel::on_varioLimitMin_DSB_editingFinished() { - if (lock) return; - model.frsky.varioMin= round(ui->varioLimitMin_DSB->value()+10); - emit modified(); + model.frsky.varioMin = round(ui->varioLimitMin_DSB->value()+10); + emit modified(); } void TelemetryPanel::on_varioLimitMax_DSB_editingFinished() { - if (lock) return; - model.frsky.varioMax= round(ui->varioLimitMax_DSB->value()-10); - emit modified(); + model.frsky.varioMax = round(ui->varioLimitMax_DSB->value()-10); + emit modified(); } void TelemetryPanel::on_varioLimitCenterMin_DSB_editingFinished() { - if (lock) return; + if (!lock) { if (ui->varioLimitCenterMin_DSB->value()>ui->varioLimitCenterMax_DSB->value()) { ui->varioLimitCenterMax_DSB->setValue(ui->varioLimitCenterMin_DSB->value()); } - model.frsky.varioCenterMin= round((ui->varioLimitCenterMin_DSB->value()+0.5)*10); + model.frsky.varioCenterMin = round((ui->varioLimitCenterMin_DSB->value()+0.5)*10); emit modified(); + } } void TelemetryPanel::on_varioLimitMinOff_ChkB_toggled(bool checked) { - if (lock) return; + if (!lock) { model.frsky.varioCenterMin = -16; if (!checked) { lock=true; ui->varioLimitCenterMin_DSB->setValue(-2.0); ui->varioLimitCenterMin_DSB->setEnabled(true); lock=false; - } else { + } + else { ui->varioLimitCenterMin_DSB->setValue(-2.0); ui->varioLimitCenterMin_DSB->setDisabled(true); } emit modified(); + } } void TelemetryPanel::on_varioLimitCenterMax_DSB_editingFinished() { - if (lock) return; + if (!lock) { if (ui->varioLimitCenterMin_DSB->value()>ui->varioLimitCenterMax_DSB->value()) { ui->varioLimitCenterMax_DSB->setValue(ui->varioLimitCenterMin_DSB->value()); } - model.frsky.varioCenterMax= round((ui->varioLimitCenterMax_DSB->value()-0.5)*10); + model.frsky.varioCenterMax = round((ui->varioLimitCenterMax_DSB->value()-0.5)*10); emit modified(); -} - -void TelemetryPanel::telBarUpdate() -{ - int index; - lock=true; - for (int i=0; i<12; i++) { - int screen=i/4; - index=barsCB[i]->currentIndex(); - if (index==TELEMETRY_SOURCE_A1 || index==TELEMETRY_SOURCE_A1 || index==TELEMETRY_SOURCE_A1_MIN || index==TELEMETRY_SOURCE_A2_MIN) { - minSB[i]->setMinimum(getBarValue(index, 0, &model.frsky)); - minSB[i]->setMaximum(getBarValue(index, 255, &model.frsky)); - minSB[i]->setSingleStep(getBarStep(index)); - maxSB[i]->setMinimum(getBarValue(index, 0, &model.frsky)); - maxSB[i]->setMaximum(getBarValue(index, 255, &model.frsky)); - maxSB[i]->setSingleStep(getBarStep(index)); - minSB[i]->setValue(getBarValue(index, model.frsky.screens[screen].body.bars[i%4].barMin, &model.frsky)); - maxSB[i]->setValue(getBarValue(index, 255-model.frsky.screens[screen].body.bars[i%4].barMax, &model.frsky)); - } - } - lock=false; -} - -void TelemetryPanel::ScreenTypeCBcurrentIndexChanged(int index) -{ - if (lock) return; - - QComboBox *comboBox = qobject_cast(sender()); - int screen = comboBox->objectName().right(1).toInt() -1; - lock=true; - model.frsky.screens[screen].type=index; - - for (int i=0; i<3; i++) { - bool isNum = (model.frsky.screens[i].type==0); - barsGB[i]->setVisible(!isNum); - numsGB[i]->setVisible(isNum); - } - - lock=false; - emit modified(); -} - -void TelemetryPanel::telBarCBcurrentIndexChanged(int index) -{ - if (lock) return; - QComboBox *comboBox = qobject_cast(sender()); - int screenId = comboBox->objectName().mid(8,1).toInt() - 1; - int barId = comboBox->objectName().mid(10,1).toInt() - 1; - int bar=barId+screenId*4; - model.frsky.screens[screenId].body.bars[barId].source=index; - lock=true; - if (index==0) { - model.frsky.screens[screenId].body.bars[barId].barMin=0; - model.frsky.screens[screenId].body.bars[barId].barMax=0; - minSB[bar]->setDisabled(true); - maxSB[bar]->setDisabled(true); - } else { - minSB[bar]->setEnabled(true); - maxSB[bar]->setEnabled(true); - } - switch (index-1) { - case TELEMETRY_SOURCE_TX_BATT: - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A1_MIN: - case TELEMETRY_SOURCE_A2: - case TELEMETRY_SOURCE_A2_MIN: - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - case TELEMETRY_SOURCE_CURRENT_MAX: - case TELEMETRY_SOURCE_CURRENT: - minSB[bar]->setDecimals(1); - maxSB[bar]->setDecimals(1); - break; - case TELEMETRY_SOURCE_CELL: - minSB[bar]->setDecimals(2); - maxSB[bar]->setDecimals(2); - break; - default: - minSB[bar]->setDecimals(0); - maxSB[bar]->setDecimals(0); - } - minSB[bar]->setMinimum(getBarValue(index, 0, &model.frsky)); - minSB[bar]->setMaximum(getBarValue(index, 255, &model.frsky)); - minSB[bar]->setSingleStep(getBarStep(index)); - maxSB[bar]->setMinimum(getBarValue(index, 0, &model.frsky)); - maxSB[bar]->setMaximum(getBarValue(index, 255, &model.frsky)); - maxSB[bar]->setSingleStep(getBarStep(index)); - minSB[bar]->setValue(getBarValue(index, model.frsky.screens[screenId].body.bars[barId].barMin, &model.frsky)); - maxSB[bar]->setValue(getBarValue(index, 255-model.frsky.screens[screenId].body.bars[barId].barMax, &model.frsky)); - lock=false; - emit modified(); -} - -void TelemetryPanel::telMinSBeditingFinished() -{ - if (lock) return; - QDoubleSpinBox *spinBox = qobject_cast(sender()); - int screenId = spinBox->objectName().mid(8,1).toInt() - 1; - int barId = spinBox->objectName().right(1).toInt() - 1; - int minId = barId+screenId*4; - lock=true; - if (model.frsky.screens[screenId].body.bars[barId].source==TELEMETRY_SOURCE_A1 || model.frsky.screens[screenId].body.bars[barId].source==TELEMETRY_SOURCE_A1_MIN) { - model.frsky.screens[screenId].body.bars[barId].barMin=round((minSB[minId]->value()-analogs[0]->ui->CalibSB->value())/getBarStep(model.frsky.screens[screenId].body.bars[barId].source)); - } else if (model.frsky.screens[screenId].body.bars[minId].source==TELEMETRY_SOURCE_A2 || model.frsky.screens[screenId].body.bars[minId].source==TELEMETRY_SOURCE_A2_MIN) { - model.frsky.screens[screenId].body.bars[barId].barMin=round((minSB[minId]->value()-analogs[1]->ui->CalibSB->value())/getBarStep(model.frsky.screens[screenId].body.bars[barId].source)); - } else { - model.frsky.screens[screenId].body.bars[barId].barMin=round((minSB[minId]->value()-getBarValue(model.frsky.screens[screenId].body.bars[barId].source, 0, &model.frsky))/getBarStep(model.frsky.screens[screenId].body.bars[barId].source)); - } - spinBox->setValue(getBarValue(model.frsky.screens[screenId].body.bars[barId].source, model.frsky.screens[screenId].body.bars[barId].barMin, &model.frsky)); - if (maxSB[minId]->value()value()) { - model.frsky.screens[screenId].body.bars[minId].barMax=(255-model.frsky.screens[screenId].body.bars[barId].barMin+1); - maxSB[minId]->setValue(getBarValue(model.frsky.screens[screenId].body.bars[barId].source, 255-model.frsky.screens[screenId].body.bars[barId].barMax, &model.frsky)); - } - maxSB[minId]->setMinimum(getBarValue(model.frsky.screens[screenId].body.bars[barId].source, (model.frsky.screens[screenId].body.bars[barId].barMin+1), &model.frsky)); - lock=false; - emit modified(); -} - -void TelemetryPanel::telMaxSBeditingFinished() -{ - if (lock) return; - QDoubleSpinBox *spinBox = qobject_cast(sender()); - int screenId = spinBox->objectName().mid(8,1).toInt() - 1; - int barId = spinBox->objectName().right(1).toInt() - 1; - lock=true; - if (model.frsky.screens[screenId].body.bars[barId].source==5) { - model.frsky.screens[screenId].body.bars[barId].barMax = (255-round((spinBox->value()-analogs[0]->ui->CalibSB->value())/getBarStep(model.frsky.screens[screenId].body.bars[barId].source))); - } else if (model.frsky.screens[screenId].body.bars[barId].source==6) { - model.frsky.screens[screenId].body.bars[barId].barMax = (255-round((spinBox->value()-analogs[1]->ui->CalibSB->value())/getBarStep(model.frsky.screens[screenId].body.bars[barId].source))); - } else { - model.frsky.screens[screenId].body.bars[barId].barMax = (255-round((spinBox->value()-getBarValue(model.frsky.screens[screenId].body.bars[barId].source, 0, &model.frsky))/getBarStep(model.frsky.screens[screenId].body.bars[barId].source) )); - } - spinBox->setValue(getBarValue(model.frsky.screens[screenId].body.bars[barId].source, (255-model.frsky.screens[screenId].body.bars[barId].barMax), &model.frsky)); - lock=false; - emit modified(); -} - -void TelemetryPanel::customFieldEdited() -{ - if (!lock) { - lock = true; - - int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); - if (cols==0) cols=2; - - for (int i=0; igetCapability(TelemetryCSFields); i++) { - int screen=i/(4*cols); - int r=((i%(4*cols))%4); - int c=((i%(4*cols))/4); - if (model.frsky.screens[screen].type==0) { - model.frsky.screens[screen].body.lines[r].source[c]=csf[i]->currentIndex(); - } - } - emit modified(); - - lock = false; } } -float TelemetryPanel::getBarStep(int barId) +void TelemetryPanel::on_fasOffset_DSB_editingFinished() { - switch (barId-1) { - case TELEMETRY_SOURCE_TX_BATT: - return 0.1; - break; - case TELEMETRY_SOURCE_TIMER1: - case TELEMETRY_SOURCE_TIMER2: - return 3; - break; - case TELEMETRY_SOURCE_A1: - case TELEMETRY_SOURCE_A1_MIN: - return (analogs[0]->ui->RatioSB->value()/255); - break; - case TELEMETRY_SOURCE_A2: - case TELEMETRY_SOURCE_A2_MIN: - return (analogs[1]->ui->RatioSB->value()/255); - break; - case TELEMETRY_SOURCE_ALT: - case TELEMETRY_SOURCE_GPS_ALT: - case TELEMETRY_SOURCE_ALT_MAX: - case TELEMETRY_SOURCE_ALT_MIN: - return 8; - break; - case TELEMETRY_SOURCE_RPM: - case TELEMETRY_SOURCE_RPM_MAX: - return 50; - break; - case TELEMETRY_SOURCE_CELLS_SUM: - case TELEMETRY_SOURCE_VFAS: - return 0.1; - break; - case TELEMETRY_SOURCE_CELL: - return 0.02; - break; - case TELEMETRY_SOURCE_HDG: - return 2; - break; - case TELEMETRY_SOURCE_DIST: - case TELEMETRY_SOURCE_DIST_MAX: - return 8; - break; - case TELEMETRY_SOURCE_CURRENT_MAX: - case TELEMETRY_SOURCE_CURRENT: - return 0.5; - break; - case TELEMETRY_SOURCE_POWER: - return 5; - break; - case TELEMETRY_SOURCE_CONSUMPTION: - return 20; - break; - case TELEMETRY_SOURCE_SPEED: - case TELEMETRY_SOURCE_SPEED_MAX: - if (model.frsky.imperial==1) { - return 1; - } else { - return 1.852; - } - break; - default: - return 1; - break; - } + model.frsky.fasOffset = ui->fasOffset_DSB->value() * 10; + emit modified(); +} + +void TelemetryPanel::on_mahCount_SB_editingFinished() +{ + model.frsky.storedMah = ui->mahCount_SB->value(); + emit modified(); +} + +void TelemetryPanel::on_mahCount_ChkB_toggled(bool checked) +{ + model.frsky.mAhPersistent = checked; + ui->mahCount_SB->setDisabled(!checked); + emit modified(); } diff --git a/companion/src/modeledit/telemetry.h b/companion/src/modeledit/telemetry.h index 6984a9f51..44233f79c 100644 --- a/companion/src/modeledit/telemetry.h +++ b/companion/src/modeledit/telemetry.h @@ -8,6 +8,7 @@ namespace Ui { class TelemetryAnalog; + class TelemetryCustomScreen; class Telemetry; } @@ -44,6 +45,32 @@ class TelemetryAnalog : public QWidget void update(); }; +class TelemetryCustomScreen : public ModelPanel +{ + Q_OBJECT + + public: + TelemetryCustomScreen(QWidget *parent, ModelData & model, FrSkyScreenData & screen); + ~TelemetryCustomScreen(); + void update(); + + private slots: + void on_screenType_currentIndexChanged(int index); + void customFieldChanged(int index); + void barSourceChanged(int index); + void barMinChanged(double value); + void barMaxChanged(double value); + + private: + void updateBar(int line); + Ui::TelemetryCustomScreen * ui; + FrSkyScreenData & screen; + QComboBox * fieldsCB[4][3]; + QComboBox * barsCB[4]; + QDoubleSpinBox * minSB[4]; + QDoubleSpinBox * maxSB[4]; +}; + class TelemetryPanel : public ModelPanel { Q_OBJECT @@ -74,24 +101,15 @@ class TelemetryPanel : public ModelPanel void on_varioLimitCenterMin_DSB_editingFinished(); void on_varioLimitMinOff_ChkB_toggled(bool checked); void on_varioLimitCenterMax_DSB_editingFinished(); - void telBarCBcurrentIndexChanged(int index); - void ScreenTypeCBcurrentIndexChanged(int index); - void telMaxSBeditingFinished(); - void telMinSBeditingFinished(); - void customFieldEdited(); + void on_fasOffset_DSB_editingFinished(); + void on_mahCount_SB_editingFinished(); + void on_mahCount_ChkB_toggled(bool checked); private: Ui::Telemetry *ui; TelemetryAnalog * analogs[2]; - QGroupBox* barsGB[3]; - QGroupBox* numsGB[3]; - QComboBox* barsCB[12]; - QDoubleSpinBox* minSB[12]; - QDoubleSpinBox* maxSB[12]; - QComboBox* csf[36]; void setup(); - float getBarStep(int barId); void telBarUpdate(); }; diff --git a/companion/src/modeledit/telemetry.ui b/companion/src/modeledit/telemetry.ui index b03ab1091..6a3a6d618 100644 --- a/companion/src/modeledit/telemetry.ui +++ b/companion/src/modeledit/telemetry.ui @@ -7,13 +7,13 @@ 0 0 692 - 540 + 457 Form - + @@ -771,1240 +771,117 @@ - - - - - - 0 - 0 - - - - - - - - 1 - - - 1 - - - + + + + 0 + 0 + + + + Various + + + + 1 + + + 1 + + + + + - + 0 0 - - 0 + + 32767 - - - Telemetry screen 1 - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Custom Screen Type - - - - - - - - 0 - 0 - - - - - 90 - 0 - - - - - Nums - - - - - Bars - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - - - Source - - - Qt::AlignCenter - - - - - - - Min - - - Qt::AlignCenter - - - - - - - Gauge - - - Qt::AlignCenter - - - - - - - Max - - - Qt::AlignCenter - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 1 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 2 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 3 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 4 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - - Telemetry screen 2 - - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - - - Source - - - Qt::AlignCenter - - - - - - - Min - - - Qt::AlignCenter - - - - - - - Gauge - - - Qt::AlignCenter - - - - - - - Max - - - Qt::AlignCenter - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 1 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 2 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 3 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 4 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - - - - 0 - 0 - - - - Custom Screen Type - - - - - - - - 0 - 0 - - - - - 90 - 0 - - - - - Nums - - - - - Bars - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Telemetry screen 3 - - - - - - - - - 0 - 0 - - - - Custom Screen Type - - - - - - - - 0 - 0 - - - - - 90 - 0 - - - - - Nums - - - - - Bars - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - - - Source - - - Qt::AlignCenter - - - - - - - Min - - - Qt::AlignCenter - - - - - - - Gauge - - - Qt::AlignCenter - - - - - - - Max - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 1 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 2 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 3 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - false - - - Background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 128, 255), stop:0.339795 rgba(0, 0, 128, 255), stop:0.339799 rgba(255, 255, 255, 255), stop:0.662444 rgba(255, 255, 255, 255),) - - - - QFrame::Panel - - - QFrame::Raised - - - Gauge 4 - - - Qt::AlignCenter - - - - - - - 0 - - - - - - - - + + + + mAh count + + + + + + + + 0 + 0 + + + + FAS Offset + + + + + + + Persistent mAh + + + + + + + + 0 + 0 + + + + 1 + + + -1.500000000000000 + + + 1.500000000000000 + + + 0.100000000000000 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + - - - + + + + + + + + + 0 + 0 + + + + -1 + + diff --git a/companion/src/modeledit/telemetry_customscreen.ui b/companion/src/modeledit/telemetry_customscreen.ui new file mode 100644 index 000000000..b01417450 --- /dev/null +++ b/companion/src/modeledit/telemetry_customscreen.ui @@ -0,0 +1,138 @@ + + + TelemetryCustomScreen + + + + 0 + 0 + 650 + 393 + + + + Form + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Custom Screen Type + + + + + + + + 0 + 0 + + + + + 90 + 0 + + + + + Nums + + + + + Bars + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + Min + + + Qt::AlignCenter + + + + + + + Source + + + Qt::AlignCenter + + + + + + + Gauge + + + Qt::AlignCenter + + + + + + + Max + + + Qt::AlignCenter + + + + + + + + + + + + + diff --git a/companion/src/modeledit/templates.cpp b/companion/src/modeledit/templates.cpp index c45b920bf..6bfb52247 100644 --- a/companion/src/modeledit/templates.cpp +++ b/companion/src/modeledit/templates.cpp @@ -2,6 +2,28 @@ #include #include +void ModelEdit::setCurve(uint8_t c, int8_t ar[]) +{ + int len=sizeof(ar)/sizeof(int8_t); + + if (GetEepromInterface()->getCapability(NumCurves)>c) { + if (len<9) { + model.curves[c].count=5; + model.curves[c].custom=false; + for (int i=0; i< 5; i++) { + model.curves[c].points[i].y=ar[i]; + } + } + else { + model.curves[c].count=5; + model.curves[c].custom=false; + for (int i=0; i< 5; i++) { + model.curves[c].points[i].y=ar[i]; + } + } + } +} + Templates::Templates(QWidget * parent, ModelData & model): QWidget(parent), model(model) diff --git a/companion/src/modelslist.cpp b/companion/src/modelslist.cpp index 4f3b3eb02..088945f12 100644 --- a/companion/src/modelslist.cpp +++ b/companion/src/modelslist.cpp @@ -41,6 +41,7 @@ #include "modelslist.h" #include "mdichild.h" +#include "helpers.h" class DragDropHeader { public: @@ -81,24 +82,24 @@ void ModelsListWidget::ShowContextMenu(const QPoint& pos) const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - bool hasData = mimeData->hasFormat("application/x-companion9x"); + bool hasData = mimeData->hasFormat("application/x-companion"); QMenu contextMenu; - contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(OpenEditWindow())); - contextMenu.addAction(QIcon(":/images/open.png"), tr("&Restore from backup"),this,SLOT(LoadBackup())); - contextMenu.addAction(QIcon(":/images/wizard.png"), tr("&Model Wizard"),this,SLOT(OpenWizard())); + contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(OpenEditWindow())); + contextMenu.addAction(CompanionIcon("open.png"), tr("&Restore from backup"),this,SLOT(LoadBackup())); + contextMenu.addAction(CompanionIcon("wizard.png"), tr("&Model Wizard"),this,SLOT(OpenWizard())); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(confirmDelete()),tr("Delete")); - contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(copy()),tr("Ctrl+C")); - contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(cut()),tr("Ctrl+X")); - contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(paste()),tr("Ctrl+V"))->setEnabled(hasData); - contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("D&uplicate"),this,SLOT(duplicate()),tr("Ctrl+U")); + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(confirmDelete()),tr("Delete")); + contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(copy()),tr("Ctrl+C")); + contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(cut()),tr("Ctrl+X")); + contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(paste()),tr("Ctrl+V"))->setEnabled(hasData); + contextMenu.addAction(CompanionIcon("duplicate.png"), tr("D&uplicate"),this,SLOT(duplicate()),tr("Ctrl+U")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/currentmodel.png"), tr("&Use as default"),this,SLOT(setdefault())); + contextMenu.addAction(CompanionIcon("currentmodel.png"), tr("&Use as default"),this,SLOT(setdefault())); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/print.png"), tr("P&rint model"),this, SLOT(print()),tr("Alt+R")); + contextMenu.addAction(CompanionIcon("print.png"), tr("P&rint model"),this, SLOT(print()),tr("Alt+R")); contextMenu.addSeparator(); - contextMenu.addAction(QIcon(":/images/simulate.png"), tr("&Simulate model"),this, SLOT(simulate()),tr("Alt+S")); + contextMenu.addAction(CompanionIcon("simulate.png"), tr("&Simulate model"),this, SLOT(simulate()),tr("Alt+S")); contextMenu.exec(globalPos); } @@ -161,7 +162,7 @@ void ModelsListWidget::mouseMoveEvent(QMouseEvent *event) doCopy(&gmData); QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x", gmData); + mimeData->setData("application/x-companion", gmData); drag->setMimeData(mimeData); @@ -189,7 +190,7 @@ void ModelsListWidget::restoreSelection() void ModelsListWidget::dragEnterEvent(QDragEnterEvent *event) { - if (event->mimeData()->hasFormat("application/x-companion9x")) + if (event->mimeData()->hasFormat("application/x-companion")) { event->acceptProposedAction(); saveSelection(); @@ -205,9 +206,9 @@ void ModelsListWidget::dragMoveEvent(QDragMoveEvent *event) { int row=this->indexAt(event->pos()).row(); const QMimeData *mimeData = event->mimeData(); - if (mimeData->hasFormat("application/x-companion9x")) + if (mimeData->hasFormat("application/x-companion")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + QByteArray gmData = mimeData->data("application/x-companion"); event->acceptProposedAction(); clearSelection(); DragDropHeader *header = (DragDropHeader *)gmData.data(); @@ -228,9 +229,9 @@ void ModelsListWidget::dropEvent(QDropEvent *event) // QMessageBox::warning(this, tr("Companion"),tr("Index :%1").arg(row)); const QMimeData *mimeData = event->mimeData(); - if(mimeData->hasFormat("application/x-companion9x")) + if(mimeData->hasFormat("application/x-companion")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + QByteArray gmData = mimeData->data("application/x-companion"); if (event->source() && event->dropAction() == Qt::MoveAction) ((ModelsListWidget*)event->source())->doCut(&gmData); doPaste(&gmData, row); @@ -425,7 +426,7 @@ void ModelsListWidget::copy() doCopy(&gmData); QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-companion9x", gmData); + mimeData->setData("application/x-companion", gmData); QClipboard *clipboard = QApplication::clipboard(); clipboard->setMimeData(mimeData,QClipboard::Clipboard); @@ -433,7 +434,7 @@ void ModelsListWidget::copy() void ModelsListWidget::doPaste(QByteArray *gmData, int index) { - //QByteArray gmData = mimeD->data("application/x-companion9x"); + //QByteArray gmData = mimeD->data("application/x-companion"); char *gData = gmData->data()+sizeof(DragDropHeader);//new char[gmData.size() + 1]; int i = sizeof(DragDropHeader); int id = index; @@ -490,7 +491,7 @@ bool ModelsListWidget::hasPasteData() const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - return mimeData->hasFormat("application/x-companion9x"); + return mimeData->hasFormat("application/x-companion"); } void ModelsListWidget::paste() @@ -499,7 +500,7 @@ void ModelsListWidget::paste() const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); - QByteArray gmData = mimeData->data("application/x-companion9x"); + QByteArray gmData = mimeData->data("application/x-companion"); doPaste(&gmData,this->currentRow()); } } diff --git a/companion/src/preferencesdialog.cpp b/companion/src/preferencesdialog.cpp index 1d98d55ac..a8c50452c 100644 --- a/companion/src/preferencesdialog.cpp +++ b/companion/src/preferencesdialog.cpp @@ -17,7 +17,9 @@ preferencesDialog::preferencesDialog(QWidget *parent) : updateLock(false) { ui->setupUi(this); - + setWindowIcon(CompanionIcon("preferences.png")); + ui->splashLibraryButton->setIcon(CompanionIcon("library.png")); + ui->clearImageButton->setIcon(CompanionIcon("clear.png")); QCheckBox * OptionCheckBox[]= { ui->optionCheckBox_1, ui->optionCheckBox_2, ui->optionCheckBox_3, ui->optionCheckBox_4, ui->optionCheckBox_5, ui->optionCheckBox_6, ui->optionCheckBox_7, @@ -225,7 +227,7 @@ void preferencesDialog::firmwareChanged() ui->CPU_ID_LE->hide(); ui->CPU_ID_LABEL->hide(); } - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("FwRevisions"); int fwrev = settings.value(variant.id, -1).toInt(); settings.endGroup(); @@ -251,7 +253,7 @@ void preferencesDialog::firmwareChanged() void preferencesDialog::writeValues() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; if (ui->locale_QB->currentIndex() > 0) settings.setValue("locale", ui->locale_QB->itemData(ui->locale_QB->currentIndex())); else @@ -260,11 +262,13 @@ void preferencesDialog::writeValues() settings.setValue("default_channel_order", ui->channelorderCB->currentIndex()); settings.setValue("default_mode", ui->stickmodeCB->currentIndex()); settings.setValue("cpu_id", ui->CPU_ID_LE->text()); - settings.setValue("startup_check_companion9x", ui->startupCheck_companion9x->isChecked()); + settings.setValue("startup_check_companion", ui->startupCheck_companion9x->isChecked()); settings.setValue("startup_check_fw", ui->startupCheck_fw->isChecked()); settings.setValue("rename_firmware_files", ui->renameFirmware->isChecked()); settings.setValue("wizardEnable", ui->wizardEnable_ChkB->isChecked()); settings.setValue("show_splash", ui->showSplash->isChecked()); + settings.setValue("theme", ui->theme_CB->currentIndex()); + settings.setValue("icon_size", ui->iconSize_CB->currentIndex()); settings.setValue("simuSW", ui->simuSW->isChecked()); settings.setValue("history_size", ui->historySize->value()); settings.setValue("burnFirmware", ui->burnFirmware->isChecked()); @@ -382,7 +386,7 @@ void preferencesDialog::populateFirmwareOptions(const FirmwareInfo * firmware) void preferencesDialog::initSettings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int i = ui->locale_QB->findData(settings.value("locale")); if (i < 0) i = 0; ui->locale_QB->setCurrentIndex(i); @@ -400,10 +404,12 @@ void preferencesDialog::initSettings() } ui->channelorderCB->setCurrentIndex(settings.value("default_channel_order", 0).toInt()); ui->stickmodeCB->setCurrentIndex(settings.value("default_mode", 1).toInt()); - ui->startupCheck_companion9x->setChecked(settings.value("startup_check_companion9x", true).toBool()); + ui->startupCheck_companion9x->setChecked(settings.value("startup_check_companion", true).toBool()); ui->renameFirmware->setChecked(settings.value("rename_firmware_files", false).toBool()); ui->wizardEnable_ChkB->setChecked(settings.value("wizardEnable", true).toBool()); ui->showSplash->setChecked(settings.value("show_splash", true).toBool()); + ui->theme_CB->setCurrentIndex(settings.value("theme", 1).toInt()); + ui->iconSize_CB->setCurrentIndex(settings.value("icon_size", 2).toInt()); ui->historySize->setValue(settings.value("history_size", 10).toInt()); ui->backLightColor->setCurrentIndex(settings.value("backLight", 0).toInt()); ui->startupCheck_fw->setChecked(settings.value("startup_check_fw", true).toBool()); @@ -521,7 +527,7 @@ void preferencesDialog::on_fw_dnld_clicked() writeValues(); if (!variant.firmware->getUrl(variant.id).isNull()) { if (ui->burnFirmware->isChecked()) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; current_firmware_variant = getFirmwareVariant(); settings.setValue("firmware", current_firmware_variant.id); } @@ -542,7 +548,7 @@ void preferencesDialog::on_voice_dnld_clicked() void preferencesDialog::on_libraryPathButton_clicked() { ui->ProfSave_PB->setEnabled(true); - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your library folder"), settings.value("libraryPath").toString()); if (!fileName.isEmpty()) { settings.setValue("libraryPath", fileName); @@ -552,7 +558,7 @@ void preferencesDialog::on_libraryPathButton_clicked() void preferencesDialog::on_snapshotPathButton_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your snapshot folder"), settings.value("snapshotPath").toString()); if (!fileName.isEmpty()) { settings.setValue("snapshotpath", fileName); @@ -563,7 +569,7 @@ void preferencesDialog::on_snapshotPathButton_clicked() void preferencesDialog::on_snapshotClipboardCKB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; if (ui->snapshotClipboardCKB->isChecked()) { ui->snapshotPath->setDisabled(true); ui->snapshotPathButton->setDisabled(true); @@ -579,7 +585,7 @@ void preferencesDialog::on_snapshotClipboardCKB_clicked() void preferencesDialog::on_backupPathButton_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your Models and Settings backup folder"), settings.value("backupPath").toString()); if (!fileName.isEmpty()) { settings.setValue("backupPath", fileName); @@ -590,7 +596,7 @@ void preferencesDialog::on_backupPathButton_clicked() void preferencesDialog::on_ge_pathButton_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Select Google Earth executable"),ui->ge_lineedit->text()); if (!fileName.isEmpty()) { ui->ge_lineedit->setText(fileName); @@ -616,7 +622,7 @@ void preferencesDialog::on_splashLibraryButton_clicked() void preferencesDialog::on_sdPathButton_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getExistingDirectory(this,tr("Select the folder replicating your SD structure"), settings.value("sdPath").toString()); if (!fileName.isEmpty()) { ui->sdPath->setText(fileName); @@ -626,7 +632,7 @@ void preferencesDialog::on_sdPathButton_clicked() void preferencesDialog::on_ProfSlot_SB_valueChanged() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value()); settings.beginGroup(profile); @@ -655,7 +661,7 @@ void preferencesDialog::on_ProfSlot_SB_valueChanged() void preferencesDialog::on_ProfSave_PB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value()); QString name=ui->ProfName_LE->text(); @@ -694,7 +700,7 @@ void preferencesDialog::on_ProfSave_PB_clicked() void preferencesDialog::on_export_PB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value()); QString name=ui->ProfName_LE->text(); if (!name.isEmpty()) { @@ -715,7 +721,7 @@ void preferencesDialog::on_export_PB_clicked() void preferencesDialog::on_import_PB_clicked() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value()); QString name=ui->ProfName_LE->text(); if (!name.isEmpty()) { @@ -748,7 +754,7 @@ void preferencesDialog::on_SplashSelect_clicked() supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex]; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats)); @@ -825,7 +831,7 @@ void preferencesDialog::on_joystickChkB_clicked() { } void preferencesDialog::on_joystickcalButton_clicked() { - //QSettings settings("companion9x", "companion9x"); + //QSettings settings; //settings.setValue("joystick-name",ui->joystickCB->currentText()); joystickDialog * jd=new joystickDialog(this, ui->joystickCB->currentIndex()); jd->exec(); @@ -837,7 +843,7 @@ void preferencesDialog::on_checkFWUpdates_clicked() { FirmwareVariant variant = getFirmwareVariant(); if (ui->burnFirmware->isChecked()) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; current_firmware_variant = variant; settings.setValue("firmware", variant.id); } diff --git a/companion/src/preferencesdialog.ui b/companion/src/preferencesdialog.ui index 021a38b58..31acbd438 100644 --- a/companion/src/preferencesdialog.ui +++ b/companion/src/preferencesdialog.ui @@ -7,7 +7,7 @@ 0 0 685 - 710 + 838 @@ -25,10 +25,6 @@ Preferences - - - :/images/preferences.png:/images/preferences.png - QLayout::SetMinimumSize @@ -39,7 +35,32 @@ 4 - + + + + + + true + + + + + + + Open Folder + + + + + + + auto backup before write + + + + + + @@ -48,18 +69,96 @@ - Show Splash Screen + Show Splash At Start - + + + + + + Enable + + + + + + + + 0 + 0 + + + + + + + + Calibrate + + + + + + + + + Automatic Backup Folder + + + + + + + + + + 40 + 0 + + + + 15 + + + 10 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Ask use of wizard for new models + + + true + + + + + + Qt::Horizontal - + @@ -75,41 +174,7 @@ - - - - - - Check for updates on startup - - - true - - - - - - - Check for selected Fw updates - - - true - - - - - - - - - Ask use of wizard for new models - - - true - - - - + @@ -160,25 +225,18 @@ ... - - - :/images/clear.png:/images/clear.png - - - - - + Remember switches in simulator - + @@ -207,7 +265,7 @@ - + 6 @@ -227,10 +285,6 @@ ... - - - :/images/library.png:/images/library.png - @@ -248,33 +302,27 @@ - - + + - - - - true + Simulator capture folder - - + + - - 40 + + 0 0 - - 15 - - - 10 + + Language (requires restart) - + @@ -418,7 +466,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -431,35 +479,7 @@ This is used by the templated to determine which channel goes to what number out - - - - - - Enable - - - - - - - - 0 - 0 - - - - - - - - Calibrate - - - - - - + 1 @@ -483,7 +503,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -507,7 +527,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -520,7 +540,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -563,7 +583,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -590,7 +610,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -638,20 +658,7 @@ This is used by the templated to determine which channel goes to what number out - - - - - 0 - 0 - - - - Language (requires restart) - - - - + 1 @@ -682,7 +689,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -695,7 +702,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -711,7 +718,7 @@ This is used by the templated to determine which channel goes to what number out - + Mode selection: @@ -759,95 +766,14 @@ Mode 4: - - - - - 0 - 0 - - - - Joystick - - - - - - - - 0 - 0 - - - - - Include companion splashes - - - - - Only user defined splashes - - - - - - - - - 0 - 0 - - - - Splash library behaviour - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - + Profile slot - - - - Automatic Backup Folder - - - - - - - - - true - - - - - - - Open Folder - - - - - - - auto backup before write - - - - - - + Qt::Vertical @@ -863,7 +789,7 @@ Mode 4: - + @@ -890,7 +816,7 @@ Mode 4: - + QLayout::SetMaximumSize @@ -981,7 +907,7 @@ May be different from firmware language - + @@ -1021,13 +947,6 @@ May be different from firmware language - - - - Simulator capture folder - - - @@ -1041,14 +960,14 @@ May be different from firmware language - + Qt::Horizontal - + QLayout::SetMaximumSize @@ -1601,7 +1520,217 @@ May be different from firmware language - + + + + + 0 + 0 + + + + Splash library behaviour + + + + + + + + 0 + 0 + + + + + Include companion splashes + + + + + Only user defined splashes + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Theme + + + + + + + Requires restart + + + + Classic + + + + + Monochrome + + + + + MonoWhite + + + + + MonoBlue + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + Icon size + + + + + + + Requires restart + + + + Small + + + + + Normal + + + + + Big + + + + + Huge + + + + + + + + + + + + + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Check for updates on startup + + + true + + + + + + + Check for selected Fw updates + + + true + + + + + + + + + + 0 + 0 + + + + Joystick + + + + + + + Google Earth Executable + + + + @@ -1619,17 +1748,9 @@ May be different from firmware language - - - - Google Earth Executable - - - - locale_QB InvertPixels clearImageButton SplashFileName diff --git a/companion/src/printdialog.cpp b/companion/src/printdialog.cpp index ac1cc9feb..45d149c97 100644 --- a/companion/src/printdialog.cpp +++ b/companion/src/printdialog.cpp @@ -176,7 +176,7 @@ QString printDialog::printPhases() str.append("
"+tr("Switch")+"
"+tr("Flight mode name")); str.append(""+tr("IN")+""+tr("OUT")+"%1%1"); if(lastCHN!=ed->chn) { lastCHN=ed->chn; - str.append(""+getStickStr(ed->chn)+""); + str.append(""+getInputStr(*g_model, ed->chn)+""); } else str.append(" "); @@ -640,16 +640,16 @@ void printDialog::printSwitches() { int sc=0; QString str = ""; - str.append(""); + str.append(""); str.append("

"+tr("Custom Switches")+"

"+tr("Logical Switches")+"

"); for (int i=0; igetCapability(CustomSwitches); i++) { if (g_model->customSw[i].func) { str.append(""); if (i<9) { - str.append("").arg(i+1)); + str.append("").arg(i+1)); } else { - str.append(""); + str.append(""); } QString tstr = getCustomSwitchStr(&g_model->customSw[i], *g_model); str.append(doTC(tstr,"green")); @@ -724,9 +724,8 @@ void printDialog::printFSwitches() { int sc=0; QString str = "
"+tr("CS")+QString("%1"+tr("LS")+QString("%1"+tr("CS")+('A'+(i-9))+""+tr("LS")+('A'+(i-9))+"
"; - str.append(""); + str.append(""); str.append(""); + // TODO str.append(""); } str.append("

"+tr("Function Switches")+"

"+tr("Switch Assignments")+"

"); - str.append(""); str.append(doTC(tr("Switch"), "", true)); str.append(doTL(tr("Function"), "", true)); str.append(doTL(tr("Parameter"), "", true)); @@ -736,7 +735,6 @@ void printDialog::printFSwitches() for(int i=0; igetCapability(CustomFunctions); i++) { if (g_model->funcSw[i].swtch.type!=SWITCH_TYPE_NONE) { str.append(""); - str.append(doTC(tr("CF")+QString("%1").arg(i+1),"",true)); str.append(doTC(g_model->funcSw[i].swtch.toString(),"green")); str.append(doTC(getFuncName(g_model->funcSw[i].func),"green")); str.append(doTC(FuncParam(g_model->funcSw[i].func,g_model->funcSw[i].param,g_model->funcSw[i].paramarm, g_model->funcSw[i].adjustMode),"green")); @@ -798,7 +796,7 @@ void printDialog::printFrSky() str.append(""); str.append(""); str.append("
 
"+tr("System of units")+""+getFrSkyMeasure(fd->imperial)+"
"+tr("Propeller blades")+""+getFrSkyBlades(fd->blades)+"
"); - +#if 0 if (GetEepromInterface()->getCapability(TelemetryBars) || (GetEepromInterface()->getCapability(TelemetryCSFields))) { int cols=GetEepromInterface()->getCapability(TelemetryColsCSFields); if (cols==0) cols=2; @@ -836,12 +834,13 @@ void printDialog::printFrSky() for (int i=0; i<4; i++) { if (fd->screens[j].body.bars[i].source!=0) tc++; - str.append("
"+QString::number(i+1,10)+""+getFrSkySrc(fd->screens[j].body.bars[i].source)+""+(fd->screens[j].body.bars[i].source>0 ? QString::number(getBarValue(fd->screens[j].body.bars[i].source, fd->screens[j].body.bars[i].barMin,fd)):"----")+""+(fd->screens[j].body.bars[i].source>0 ? QString::number(getBarValue(fd->screens[j].body.bars[i].source,(255-fd->screens[j].body.bars[i].barMax),fd)) :"----")+"
"+QString::number(i+1,10)+""+getFrSkySrc(fd->screens[j].body.bars[i].source)+""+(fd->screens[j].body.bars[i].source>0 ? QString::number(getBarValue(fd->screens[j].body.bars[i].source, fd->screens[j].body.bars[i].barMin,fd)):"----")+""+(fd->screens[j].body.bars[i].source>0 ? QString::number(getBarValue(fd->screens[j].body.bars[i].source,(255-fd->screens[j].body.bars[i].barMax),fd)) :"----")+"
"); } } } +#endif if (tc>0) te->append(str); } diff --git a/companion/src/printdialog.ui b/companion/src/printdialog.ui index 5e45d5a2c..169c33103 100644 --- a/companion/src/printdialog.ui +++ b/companion/src/printdialog.ui @@ -27,7 +27,7 @@ - :/images/print.png:/images/print.png + :/icon.png:/icon.png diff --git a/companion/src/simulatordialog.cpp b/companion/src/simulatordialog.cpp index 0e3d2a688..1bbddf4ef 100644 --- a/companion/src/simulatordialog.cpp +++ b/companion/src/simulatordialog.cpp @@ -32,7 +32,7 @@ simulatorDialog::simulatorDialog(QWidget *parent) : beepVal = 0; beepShow = 0; - QSettings settings("companion9x", "companion9x"); + QSettings settings; backLight = settings.value("backLight",0).toInt(); bool simuSW=settings.value("simuSW",false).toBool(); switch (backLight) { @@ -211,7 +211,7 @@ void simulatorDialog::setupTimer() void simulatorDialog::onButtonPressed(int value) { if (value==Qt::Key_Print) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool(); QString fileName =""; if (!toclipboard) { diff --git a/companion/src/simulatordialog.ui b/companion/src/simulatordialog.ui index a739492ac..de9a3a43a 100644 --- a/companion/src/simulatordialog.ui +++ b/companion/src/simulatordialog.ui @@ -27,7 +27,7 @@ - :/images/simulate.png:/images/simulate.png + :/icon.png:/icon.png @@ -1092,8 +1092,6 @@ QPushButton:checked { - - @@ -1812,8 +1810,6 @@ QPushButton:checked { QFrame::Raised - - 2 @@ -2298,7 +2294,6 @@ border-radius: 4px; - 0 diff --git a/companion/src/splashlibrary.cpp b/companion/src/splashlibrary.cpp index 0c2b431b6..49aef10e4 100644 --- a/companion/src/splashlibrary.cpp +++ b/companion/src/splashlibrary.cpp @@ -9,6 +9,8 @@ splashLibrary::splashLibrary(QWidget *parent, QString * fileName) : QDialog(parent), ui(new Ui::splashLibrary) { splashFileName = fileName; ui->setupUi(this); + ui->nextPage->setIcon(CompanionIcon("arrow-right.png")); + ui->prevPage->setIcon(CompanionIcon("arrow-left.png")); page = 0; getFileList(); if (imageList.size() > 20) { @@ -59,7 +61,7 @@ void splashLibrary::setupPage(int page) { } void splashLibrary::getFileList() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; imageList.clear(); if (settings.value("embedded_splashes", 0).toInt() == 0) { QDir myRes(":/images/library"); @@ -144,4 +146,4 @@ void splashLibrary::on_prevPage_clicked() { ui->nextPage->setEnabled(true); } setupPage(page); -} \ No newline at end of file +} diff --git a/companion/src/splashlibrary.ui b/companion/src/splashlibrary.ui index 8c5bcaf1d..9507a2d08 100644 --- a/companion/src/splashlibrary.ui +++ b/companion/src/splashlibrary.ui @@ -25,6 +25,10 @@ + + + :/icon.png:/icon.png + @@ -46,10 +50,6 @@ ... - - - :/images/arrow-left.png:/images/arrow-left.png - 50 @@ -945,10 +945,6 @@ ... - - - :/images/arrow-right.png:/images/arrow-right.png - 50 diff --git a/companion/src/themes/classic/16/add.png b/companion/src/themes/classic/16/add.png new file mode 100644 index 000000000..7976174fd Binary files /dev/null and b/companion/src/themes/classic/16/add.png differ diff --git a/companion/src/themes/classic/16/arrow-left.png b/companion/src/themes/classic/16/arrow-left.png new file mode 100644 index 000000000..a1b3d0964 Binary files /dev/null and b/companion/src/themes/classic/16/arrow-left.png differ diff --git a/companion/src/themes/classic/16/arrow-right.png b/companion/src/themes/classic/16/arrow-right.png new file mode 100644 index 000000000..1311fb52f Binary files /dev/null and b/companion/src/themes/classic/16/arrow-right.png differ diff --git a/companion/src/themes/classic/16/changelog.png b/companion/src/themes/classic/16/changelog.png new file mode 100644 index 000000000..9e4e6ae57 Binary files /dev/null and b/companion/src/themes/classic/16/changelog.png differ diff --git a/companion/src/themes/classic/16/clear.png b/companion/src/themes/classic/16/clear.png new file mode 100644 index 000000000..12c465218 Binary files /dev/null and b/companion/src/themes/classic/16/clear.png differ diff --git a/companion/src/themes/classic/16/compare.png b/companion/src/themes/classic/16/compare.png new file mode 100644 index 000000000..eda5f13b9 Binary files /dev/null and b/companion/src/themes/classic/16/compare.png differ diff --git a/companion/src/themes/classic/16/configure.png b/companion/src/themes/classic/16/configure.png new file mode 100644 index 000000000..a627160f9 Binary files /dev/null and b/companion/src/themes/classic/16/configure.png differ diff --git a/companion/src/themes/classic/16/contributors.png b/companion/src/themes/classic/16/contributors.png new file mode 100644 index 000000000..439d2bcb8 Binary files /dev/null and b/companion/src/themes/classic/16/contributors.png differ diff --git a/companion/src/themes/classic/16/copy.png b/companion/src/themes/classic/16/copy.png new file mode 100644 index 000000000..0d016ee10 Binary files /dev/null and b/companion/src/themes/classic/16/copy.png differ diff --git a/companion/src/themes/classic/16/currentmodel.png b/companion/src/themes/classic/16/currentmodel.png new file mode 100644 index 000000000..691f8f92d Binary files /dev/null and b/companion/src/themes/classic/16/currentmodel.png differ diff --git a/companion/src/themes/classic/16/cut.png b/companion/src/themes/classic/16/cut.png new file mode 100644 index 000000000..600e320c6 Binary files /dev/null and b/companion/src/themes/classic/16/cut.png differ diff --git a/companion/src/themes/classic/16/duplicate.png b/companion/src/themes/classic/16/duplicate.png new file mode 100644 index 000000000..90c7319e5 Binary files /dev/null and b/companion/src/themes/classic/16/duplicate.png differ diff --git a/companion/src/themes/classic/16/edit.png b/companion/src/themes/classic/16/edit.png new file mode 100644 index 000000000..5358d50bb Binary files /dev/null and b/companion/src/themes/classic/16/edit.png differ diff --git a/companion/src/themes/classic/16/exit.png b/companion/src/themes/classic/16/exit.png new file mode 100644 index 000000000..c188d80d8 Binary files /dev/null and b/companion/src/themes/classic/16/exit.png differ diff --git a/companion/src/themes/classic/16/fuses.png b/companion/src/themes/classic/16/fuses.png new file mode 100644 index 000000000..512a067ed Binary files /dev/null and b/companion/src/themes/classic/16/fuses.png differ diff --git a/companion/src/themes/classic/16/information.png b/companion/src/themes/classic/16/information.png new file mode 100644 index 000000000..aca1565dd Binary files /dev/null and b/companion/src/themes/classic/16/information.png differ diff --git a/companion/src/themes/classic/16/library.png b/companion/src/themes/classic/16/library.png new file mode 100644 index 000000000..2a4df7457 Binary files /dev/null and b/companion/src/themes/classic/16/library.png differ diff --git a/companion/src/themes/classic/16/list.png b/companion/src/themes/classic/16/list.png new file mode 100644 index 000000000..6bac38a45 Binary files /dev/null and b/companion/src/themes/classic/16/list.png differ diff --git a/companion/src/themes/classic/16/logs.png b/companion/src/themes/classic/16/logs.png new file mode 100644 index 000000000..880923fb6 Binary files /dev/null and b/companion/src/themes/classic/16/logs.png differ diff --git a/companion/src/themes/classic/16/movedown.png b/companion/src/themes/classic/16/movedown.png new file mode 100644 index 000000000..f609f5581 Binary files /dev/null and b/companion/src/themes/classic/16/movedown.png differ diff --git a/companion/src/themes/classic/16/moveup.png b/companion/src/themes/classic/16/moveup.png new file mode 100644 index 000000000..f44bf8b64 Binary files /dev/null and b/companion/src/themes/classic/16/moveup.png differ diff --git a/companion/src/themes/classic/16/new.png b/companion/src/themes/classic/16/new.png new file mode 100644 index 000000000..b40281b64 Binary files /dev/null and b/companion/src/themes/classic/16/new.png differ diff --git a/companion/src/themes/classic/16/open.png b/companion/src/themes/classic/16/open.png new file mode 100644 index 000000000..48509ab56 Binary files /dev/null and b/companion/src/themes/classic/16/open.png differ diff --git a/companion/src/themes/classic/16/paintbrush.png b/companion/src/themes/classic/16/paintbrush.png new file mode 100644 index 000000000..fc99fd5f2 Binary files /dev/null and b/companion/src/themes/classic/16/paintbrush.png differ diff --git a/companion/src/themes/classic/16/paste.png b/companion/src/themes/classic/16/paste.png new file mode 100644 index 000000000..7f1b0a7a8 Binary files /dev/null and b/companion/src/themes/classic/16/paste.png differ diff --git a/companion/src/themes/classic/16/play.png b/companion/src/themes/classic/16/play.png new file mode 100644 index 000000000..d4720f2d8 Binary files /dev/null and b/companion/src/themes/classic/16/play.png differ diff --git a/companion/src/themes/classic/16/preferences.png b/companion/src/themes/classic/16/preferences.png new file mode 100644 index 000000000..dae98ee8a Binary files /dev/null and b/companion/src/themes/classic/16/preferences.png differ diff --git a/companion/src/themes/classic/16/print.png b/companion/src/themes/classic/16/print.png new file mode 100644 index 000000000..9f1d39eee Binary files /dev/null and b/companion/src/themes/classic/16/print.png differ diff --git a/companion/src/themes/classic/16/profiles.png b/companion/src/themes/classic/16/profiles.png new file mode 100644 index 000000000..8343cc5c1 Binary files /dev/null and b/companion/src/themes/classic/16/profiles.png differ diff --git a/companion/src/themes/classic/16/read_eeprom.png b/companion/src/themes/classic/16/read_eeprom.png new file mode 100644 index 000000000..c9ef59ca4 Binary files /dev/null and b/companion/src/themes/classic/16/read_eeprom.png differ diff --git a/companion/src/themes/classic/16/read_eeprom_file.png b/companion/src/themes/classic/16/read_eeprom_file.png new file mode 100644 index 000000000..7617c17ba Binary files /dev/null and b/companion/src/themes/classic/16/read_eeprom_file.png differ diff --git a/companion/src/themes/classic/16/read_flash.png b/companion/src/themes/classic/16/read_flash.png new file mode 100644 index 000000000..3591516de Binary files /dev/null and b/companion/src/themes/classic/16/read_flash.png differ diff --git a/companion/src/themes/classic/16/recentdocument.png b/companion/src/themes/classic/16/recentdocument.png new file mode 100644 index 000000000..965e45f2d Binary files /dev/null and b/companion/src/themes/classic/16/recentdocument.png differ diff --git a/companion/src/themes/classic/16/save.png b/companion/src/themes/classic/16/save.png new file mode 100644 index 000000000..fbcbc53a4 Binary files /dev/null and b/companion/src/themes/classic/16/save.png differ diff --git a/companion/src/themes/classic/16/saveas.png b/companion/src/themes/classic/16/saveas.png new file mode 100644 index 000000000..2e4ba2b82 Binary files /dev/null and b/companion/src/themes/classic/16/saveas.png differ diff --git a/companion/src/themes/classic/16/simulate.png b/companion/src/themes/classic/16/simulate.png new file mode 100644 index 000000000..94a8a4003 Binary files /dev/null and b/companion/src/themes/classic/16/simulate.png differ diff --git a/companion/src/themes/classic/16/stop.png b/companion/src/themes/classic/16/stop.png new file mode 100644 index 000000000..f2bb8792b Binary files /dev/null and b/companion/src/themes/classic/16/stop.png differ diff --git a/companion/src/themes/classic/16/update.png b/companion/src/themes/classic/16/update.png new file mode 100644 index 000000000..0af079b3f Binary files /dev/null and b/companion/src/themes/classic/16/update.png differ diff --git a/companion/src/themes/classic/16/wizard.png b/companion/src/themes/classic/16/wizard.png new file mode 100644 index 000000000..6bb4d070b Binary files /dev/null and b/companion/src/themes/classic/16/wizard.png differ diff --git a/companion/src/themes/classic/16/write_eeprom.png b/companion/src/themes/classic/16/write_eeprom.png new file mode 100644 index 000000000..3dd15566a Binary files /dev/null and b/companion/src/themes/classic/16/write_eeprom.png differ diff --git a/companion/src/themes/classic/16/write_eeprom_file.png b/companion/src/themes/classic/16/write_eeprom_file.png new file mode 100644 index 000000000..efbce2843 Binary files /dev/null and b/companion/src/themes/classic/16/write_eeprom_file.png differ diff --git a/companion/src/themes/classic/16/write_flash.png b/companion/src/themes/classic/16/write_flash.png new file mode 100644 index 000000000..c82b8c9e8 Binary files /dev/null and b/companion/src/themes/classic/16/write_flash.png differ diff --git a/companion/src/themes/classic/24/add.png b/companion/src/themes/classic/24/add.png new file mode 100644 index 000000000..073c0b2f1 Binary files /dev/null and b/companion/src/themes/classic/24/add.png differ diff --git a/companion/src/themes/classic/24/arrow-left.png b/companion/src/themes/classic/24/arrow-left.png new file mode 100644 index 000000000..9ad670cce Binary files /dev/null and b/companion/src/themes/classic/24/arrow-left.png differ diff --git a/companion/src/themes/classic/24/arrow-right.png b/companion/src/themes/classic/24/arrow-right.png new file mode 100644 index 000000000..084d6597c Binary files /dev/null and b/companion/src/themes/classic/24/arrow-right.png differ diff --git a/companion/src/themes/classic/24/changelog.png b/companion/src/themes/classic/24/changelog.png new file mode 100644 index 000000000..7f26eafcc Binary files /dev/null and b/companion/src/themes/classic/24/changelog.png differ diff --git a/companion/src/themes/classic/24/clear.png b/companion/src/themes/classic/24/clear.png new file mode 100644 index 000000000..5a2f16f23 Binary files /dev/null and b/companion/src/themes/classic/24/clear.png differ diff --git a/companion/src/themes/classic/24/compare.png b/companion/src/themes/classic/24/compare.png new file mode 100644 index 000000000..2d9e035d8 Binary files /dev/null and b/companion/src/themes/classic/24/compare.png differ diff --git a/companion/src/themes/classic/24/configure.png b/companion/src/themes/classic/24/configure.png new file mode 100644 index 000000000..f3972b18f Binary files /dev/null and b/companion/src/themes/classic/24/configure.png differ diff --git a/companion/src/themes/classic/24/contributors.png b/companion/src/themes/classic/24/contributors.png new file mode 100644 index 000000000..c35d8737e Binary files /dev/null and b/companion/src/themes/classic/24/contributors.png differ diff --git a/companion/src/themes/classic/24/copy.png b/companion/src/themes/classic/24/copy.png new file mode 100644 index 000000000..714a0d590 Binary files /dev/null and b/companion/src/themes/classic/24/copy.png differ diff --git a/companion/src/themes/classic/24/currentmodel.png b/companion/src/themes/classic/24/currentmodel.png new file mode 100644 index 000000000..192a227fe Binary files /dev/null and b/companion/src/themes/classic/24/currentmodel.png differ diff --git a/companion/src/themes/classic/24/cut.png b/companion/src/themes/classic/24/cut.png new file mode 100644 index 000000000..33b947198 Binary files /dev/null and b/companion/src/themes/classic/24/cut.png differ diff --git a/companion/src/themes/classic/24/duplicate.png b/companion/src/themes/classic/24/duplicate.png new file mode 100644 index 000000000..8ff23def9 Binary files /dev/null and b/companion/src/themes/classic/24/duplicate.png differ diff --git a/companion/src/themes/classic/24/edit.png b/companion/src/themes/classic/24/edit.png new file mode 100644 index 000000000..259e39bd3 Binary files /dev/null and b/companion/src/themes/classic/24/edit.png differ diff --git a/companion/src/themes/classic/24/exit.png b/companion/src/themes/classic/24/exit.png new file mode 100644 index 000000000..ba91c7bfc Binary files /dev/null and b/companion/src/themes/classic/24/exit.png differ diff --git a/companion/src/themes/classic/24/fuses.png b/companion/src/themes/classic/24/fuses.png new file mode 100644 index 000000000..38ce749a1 Binary files /dev/null and b/companion/src/themes/classic/24/fuses.png differ diff --git a/companion/src/themes/classic/24/information.png b/companion/src/themes/classic/24/information.png new file mode 100644 index 000000000..ccf17132b Binary files /dev/null and b/companion/src/themes/classic/24/information.png differ diff --git a/companion/src/themes/classic/24/library.png b/companion/src/themes/classic/24/library.png new file mode 100644 index 000000000..97e9bf596 Binary files /dev/null and b/companion/src/themes/classic/24/library.png differ diff --git a/companion/src/themes/classic/24/list.png b/companion/src/themes/classic/24/list.png new file mode 100644 index 000000000..5eeb66474 Binary files /dev/null and b/companion/src/themes/classic/24/list.png differ diff --git a/companion/src/themes/classic/24/logs.png b/companion/src/themes/classic/24/logs.png new file mode 100644 index 000000000..a9c247b27 Binary files /dev/null and b/companion/src/themes/classic/24/logs.png differ diff --git a/companion/src/themes/classic/24/movedown.png b/companion/src/themes/classic/24/movedown.png new file mode 100644 index 000000000..47f210256 Binary files /dev/null and b/companion/src/themes/classic/24/movedown.png differ diff --git a/companion/src/themes/classic/24/moveup.png b/companion/src/themes/classic/24/moveup.png new file mode 100644 index 000000000..1bf02bdff Binary files /dev/null and b/companion/src/themes/classic/24/moveup.png differ diff --git a/companion/src/themes/classic/24/new.png b/companion/src/themes/classic/24/new.png new file mode 100644 index 000000000..0181a1ca2 Binary files /dev/null and b/companion/src/themes/classic/24/new.png differ diff --git a/companion/src/themes/classic/24/open.png b/companion/src/themes/classic/24/open.png new file mode 100644 index 000000000..45e64135a Binary files /dev/null and b/companion/src/themes/classic/24/open.png differ diff --git a/companion/src/themes/classic/24/paintbrush.png b/companion/src/themes/classic/24/paintbrush.png new file mode 100644 index 000000000..de9e1806f Binary files /dev/null and b/companion/src/themes/classic/24/paintbrush.png differ diff --git a/companion/src/themes/classic/24/paste.png b/companion/src/themes/classic/24/paste.png new file mode 100644 index 000000000..2a762fbfb Binary files /dev/null and b/companion/src/themes/classic/24/paste.png differ diff --git a/companion/src/themes/classic/24/play.png b/companion/src/themes/classic/24/play.png new file mode 100644 index 000000000..7e1b547d9 Binary files /dev/null and b/companion/src/themes/classic/24/play.png differ diff --git a/companion/src/themes/classic/24/preferences.png b/companion/src/themes/classic/24/preferences.png new file mode 100644 index 000000000..ebca2028c Binary files /dev/null and b/companion/src/themes/classic/24/preferences.png differ diff --git a/companion/src/themes/classic/24/print.png b/companion/src/themes/classic/24/print.png new file mode 100644 index 000000000..edb7bcfb1 Binary files /dev/null and b/companion/src/themes/classic/24/print.png differ diff --git a/companion/src/themes/classic/24/profiles.png b/companion/src/themes/classic/24/profiles.png new file mode 100644 index 000000000..394e8079f Binary files /dev/null and b/companion/src/themes/classic/24/profiles.png differ diff --git a/companion/src/themes/classic/24/read_eeprom.png b/companion/src/themes/classic/24/read_eeprom.png new file mode 100644 index 000000000..9a0bbd6b7 Binary files /dev/null and b/companion/src/themes/classic/24/read_eeprom.png differ diff --git a/companion/src/themes/classic/24/read_eeprom_file.png b/companion/src/themes/classic/24/read_eeprom_file.png new file mode 100644 index 000000000..9f557a3c7 Binary files /dev/null and b/companion/src/themes/classic/24/read_eeprom_file.png differ diff --git a/companion/src/themes/classic/24/read_flash.png b/companion/src/themes/classic/24/read_flash.png new file mode 100644 index 000000000..ed77ff739 Binary files /dev/null and b/companion/src/themes/classic/24/read_flash.png differ diff --git a/companion/src/themes/classic/24/recentdocument.png b/companion/src/themes/classic/24/recentdocument.png new file mode 100644 index 000000000..1e3d9266b Binary files /dev/null and b/companion/src/themes/classic/24/recentdocument.png differ diff --git a/companion/src/themes/classic/24/save.png b/companion/src/themes/classic/24/save.png new file mode 100644 index 000000000..bec9b6c13 Binary files /dev/null and b/companion/src/themes/classic/24/save.png differ diff --git a/companion/src/themes/classic/24/saveas.png b/companion/src/themes/classic/24/saveas.png new file mode 100644 index 000000000..83df4c639 Binary files /dev/null and b/companion/src/themes/classic/24/saveas.png differ diff --git a/companion/src/themes/classic/24/simulate.png b/companion/src/themes/classic/24/simulate.png new file mode 100644 index 000000000..8bc4db398 Binary files /dev/null and b/companion/src/themes/classic/24/simulate.png differ diff --git a/companion/src/themes/classic/24/stop.png b/companion/src/themes/classic/24/stop.png new file mode 100644 index 000000000..00f4ab1c1 Binary files /dev/null and b/companion/src/themes/classic/24/stop.png differ diff --git a/companion/src/themes/classic/24/update.png b/companion/src/themes/classic/24/update.png new file mode 100644 index 000000000..f50b423b9 Binary files /dev/null and b/companion/src/themes/classic/24/update.png differ diff --git a/companion/src/themes/classic/24/wizard.png b/companion/src/themes/classic/24/wizard.png new file mode 100644 index 000000000..63879342f Binary files /dev/null and b/companion/src/themes/classic/24/wizard.png differ diff --git a/companion/src/themes/classic/24/write_eeprom.png b/companion/src/themes/classic/24/write_eeprom.png new file mode 100644 index 000000000..8591f6f70 Binary files /dev/null and b/companion/src/themes/classic/24/write_eeprom.png differ diff --git a/companion/src/themes/classic/24/write_eeprom_file.png b/companion/src/themes/classic/24/write_eeprom_file.png new file mode 100644 index 000000000..a3cd7898c Binary files /dev/null and b/companion/src/themes/classic/24/write_eeprom_file.png differ diff --git a/companion/src/themes/classic/24/write_flash.png b/companion/src/themes/classic/24/write_flash.png new file mode 100644 index 000000000..8ef65965f Binary files /dev/null and b/companion/src/themes/classic/24/write_flash.png differ diff --git a/companion/src/themes/classic/32/add.png b/companion/src/themes/classic/32/add.png new file mode 100644 index 000000000..9b1e2ebf3 Binary files /dev/null and b/companion/src/themes/classic/32/add.png differ diff --git a/companion/src/themes/classic/32/arrow-left.png b/companion/src/themes/classic/32/arrow-left.png new file mode 100644 index 000000000..94f5afcb4 Binary files /dev/null and b/companion/src/themes/classic/32/arrow-left.png differ diff --git a/companion/src/themes/classic/32/arrow-right.png b/companion/src/themes/classic/32/arrow-right.png new file mode 100644 index 000000000..5b26520c7 Binary files /dev/null and b/companion/src/themes/classic/32/arrow-right.png differ diff --git a/companion/src/themes/classic/32/changelog.png b/companion/src/themes/classic/32/changelog.png new file mode 100644 index 000000000..952a231dd Binary files /dev/null and b/companion/src/themes/classic/32/changelog.png differ diff --git a/companion/src/themes/classic/32/clear.png b/companion/src/themes/classic/32/clear.png new file mode 100644 index 000000000..e1d481f35 Binary files /dev/null and b/companion/src/themes/classic/32/clear.png differ diff --git a/companion/src/themes/classic/32/compare.png b/companion/src/themes/classic/32/compare.png new file mode 100644 index 000000000..4cf84e940 Binary files /dev/null and b/companion/src/themes/classic/32/compare.png differ diff --git a/companion/src/themes/classic/32/configure.png b/companion/src/themes/classic/32/configure.png new file mode 100644 index 000000000..9fd4c2cd9 Binary files /dev/null and b/companion/src/themes/classic/32/configure.png differ diff --git a/companion/src/themes/classic/32/contributors.png b/companion/src/themes/classic/32/contributors.png new file mode 100644 index 000000000..d90cc70de Binary files /dev/null and b/companion/src/themes/classic/32/contributors.png differ diff --git a/companion/src/themes/classic/32/copy.png b/companion/src/themes/classic/32/copy.png new file mode 100644 index 000000000..a24bb4b1d Binary files /dev/null and b/companion/src/themes/classic/32/copy.png differ diff --git a/companion/src/themes/classic/32/currentmodel.png b/companion/src/themes/classic/32/currentmodel.png new file mode 100644 index 000000000..6fde618ef Binary files /dev/null and b/companion/src/themes/classic/32/currentmodel.png differ diff --git a/companion/src/themes/classic/32/cut.png b/companion/src/themes/classic/32/cut.png new file mode 100644 index 000000000..d68161089 Binary files /dev/null and b/companion/src/themes/classic/32/cut.png differ diff --git a/companion/src/themes/classic/32/duplicate.png b/companion/src/themes/classic/32/duplicate.png new file mode 100644 index 000000000..a6c66b117 Binary files /dev/null and b/companion/src/themes/classic/32/duplicate.png differ diff --git a/companion/src/themes/classic/32/edit.png b/companion/src/themes/classic/32/edit.png new file mode 100644 index 000000000..a00693407 Binary files /dev/null and b/companion/src/themes/classic/32/edit.png differ diff --git a/companion/src/themes/classic/32/exit.png b/companion/src/themes/classic/32/exit.png new file mode 100644 index 000000000..7eb24a666 Binary files /dev/null and b/companion/src/themes/classic/32/exit.png differ diff --git a/companion/src/themes/classic/32/fuses.png b/companion/src/themes/classic/32/fuses.png new file mode 100644 index 000000000..c0bb8bf4c Binary files /dev/null and b/companion/src/themes/classic/32/fuses.png differ diff --git a/companion/src/themes/classic/32/information.png b/companion/src/themes/classic/32/information.png new file mode 100644 index 000000000..47fa8f3fe Binary files /dev/null and b/companion/src/themes/classic/32/information.png differ diff --git a/companion/src/themes/classic/32/library.png b/companion/src/themes/classic/32/library.png new file mode 100644 index 000000000..763983830 Binary files /dev/null and b/companion/src/themes/classic/32/library.png differ diff --git a/companion/src/themes/classic/32/list.png b/companion/src/themes/classic/32/list.png new file mode 100644 index 000000000..3b6f45e45 Binary files /dev/null and b/companion/src/themes/classic/32/list.png differ diff --git a/companion/src/themes/classic/32/logs.png b/companion/src/themes/classic/32/logs.png new file mode 100644 index 000000000..11af72b25 Binary files /dev/null and b/companion/src/themes/classic/32/logs.png differ diff --git a/companion/src/themes/classic/32/movedown.png b/companion/src/themes/classic/32/movedown.png new file mode 100644 index 000000000..8d2671cc1 Binary files /dev/null and b/companion/src/themes/classic/32/movedown.png differ diff --git a/companion/src/themes/classic/32/moveup.png b/companion/src/themes/classic/32/moveup.png new file mode 100644 index 000000000..7d52059e2 Binary files /dev/null and b/companion/src/themes/classic/32/moveup.png differ diff --git a/companion/src/themes/classic/32/new.png b/companion/src/themes/classic/32/new.png new file mode 100644 index 000000000..3c79b7994 Binary files /dev/null and b/companion/src/themes/classic/32/new.png differ diff --git a/companion/src/themes/classic/32/open.png b/companion/src/themes/classic/32/open.png new file mode 100644 index 000000000..516ad06c0 Binary files /dev/null and b/companion/src/themes/classic/32/open.png differ diff --git a/companion/src/themes/classic/32/paintbrush.png b/companion/src/themes/classic/32/paintbrush.png new file mode 100644 index 000000000..33d2249c0 Binary files /dev/null and b/companion/src/themes/classic/32/paintbrush.png differ diff --git a/companion/src/themes/classic/32/paste.png b/companion/src/themes/classic/32/paste.png new file mode 100644 index 000000000..17c82102a Binary files /dev/null and b/companion/src/themes/classic/32/paste.png differ diff --git a/companion/src/themes/classic/32/play.png b/companion/src/themes/classic/32/play.png new file mode 100644 index 000000000..d47a3040e Binary files /dev/null and b/companion/src/themes/classic/32/play.png differ diff --git a/companion/src/themes/classic/32/preferences.png b/companion/src/themes/classic/32/preferences.png new file mode 100644 index 000000000..a9cee976b Binary files /dev/null and b/companion/src/themes/classic/32/preferences.png differ diff --git a/companion/src/themes/classic/32/print.png b/companion/src/themes/classic/32/print.png new file mode 100644 index 000000000..6c27107b5 Binary files /dev/null and b/companion/src/themes/classic/32/print.png differ diff --git a/companion/src/themes/classic/32/profiles.png b/companion/src/themes/classic/32/profiles.png new file mode 100644 index 000000000..03fab9601 Binary files /dev/null and b/companion/src/themes/classic/32/profiles.png differ diff --git a/companion/src/themes/classic/32/read_eeprom.png b/companion/src/themes/classic/32/read_eeprom.png new file mode 100644 index 000000000..9e1aa0e2a Binary files /dev/null and b/companion/src/themes/classic/32/read_eeprom.png differ diff --git a/companion/src/themes/classic/32/read_eeprom_file.png b/companion/src/themes/classic/32/read_eeprom_file.png new file mode 100644 index 000000000..6c6997046 Binary files /dev/null and b/companion/src/themes/classic/32/read_eeprom_file.png differ diff --git a/companion/src/themes/classic/32/read_flash.png b/companion/src/themes/classic/32/read_flash.png new file mode 100644 index 000000000..2ebd0f34b Binary files /dev/null and b/companion/src/themes/classic/32/read_flash.png differ diff --git a/companion/src/themes/classic/32/recentdocument.png b/companion/src/themes/classic/32/recentdocument.png new file mode 100644 index 000000000..e4bdc52da Binary files /dev/null and b/companion/src/themes/classic/32/recentdocument.png differ diff --git a/companion/src/themes/classic/32/save.png b/companion/src/themes/classic/32/save.png new file mode 100644 index 000000000..380fb7264 Binary files /dev/null and b/companion/src/themes/classic/32/save.png differ diff --git a/companion/src/themes/classic/32/saveas.png b/companion/src/themes/classic/32/saveas.png new file mode 100644 index 000000000..e2af8d1fa Binary files /dev/null and b/companion/src/themes/classic/32/saveas.png differ diff --git a/companion/src/themes/classic/32/simulate.png b/companion/src/themes/classic/32/simulate.png new file mode 100644 index 000000000..c67e7cb99 Binary files /dev/null and b/companion/src/themes/classic/32/simulate.png differ diff --git a/companion/src/themes/classic/32/stop.png b/companion/src/themes/classic/32/stop.png new file mode 100644 index 000000000..a0338d139 Binary files /dev/null and b/companion/src/themes/classic/32/stop.png differ diff --git a/companion/src/themes/classic/32/update.png b/companion/src/themes/classic/32/update.png new file mode 100644 index 000000000..9f57be2d7 Binary files /dev/null and b/companion/src/themes/classic/32/update.png differ diff --git a/companion/src/themes/classic/32/wizard.png b/companion/src/themes/classic/32/wizard.png new file mode 100644 index 000000000..ff5161498 Binary files /dev/null and b/companion/src/themes/classic/32/wizard.png differ diff --git a/companion/src/themes/classic/32/write_eeprom.png b/companion/src/themes/classic/32/write_eeprom.png new file mode 100644 index 000000000..005766b0b Binary files /dev/null and b/companion/src/themes/classic/32/write_eeprom.png differ diff --git a/companion/src/themes/classic/32/write_eeprom_file.png b/companion/src/themes/classic/32/write_eeprom_file.png new file mode 100644 index 000000000..1ead1095b Binary files /dev/null and b/companion/src/themes/classic/32/write_eeprom_file.png differ diff --git a/companion/src/themes/classic/32/write_flash.png b/companion/src/themes/classic/32/write_flash.png new file mode 100644 index 000000000..231b72041 Binary files /dev/null and b/companion/src/themes/classic/32/write_flash.png differ diff --git a/companion/src/themes/classic/48/add.png b/companion/src/themes/classic/48/add.png new file mode 100644 index 000000000..fe8a28097 Binary files /dev/null and b/companion/src/themes/classic/48/add.png differ diff --git a/companion/src/themes/classic/48/arrow-left.png b/companion/src/themes/classic/48/arrow-left.png new file mode 100644 index 000000000..f6bb5eb08 Binary files /dev/null and b/companion/src/themes/classic/48/arrow-left.png differ diff --git a/companion/src/themes/classic/48/arrow-right.png b/companion/src/themes/classic/48/arrow-right.png new file mode 100644 index 000000000..25dfe0dab Binary files /dev/null and b/companion/src/themes/classic/48/arrow-right.png differ diff --git a/companion/src/themes/classic/48/changelog.png b/companion/src/themes/classic/48/changelog.png new file mode 100644 index 000000000..bf3ed7459 Binary files /dev/null and b/companion/src/themes/classic/48/changelog.png differ diff --git a/companion/src/themes/classic/48/clear.png b/companion/src/themes/classic/48/clear.png new file mode 100644 index 000000000..4cc914074 Binary files /dev/null and b/companion/src/themes/classic/48/clear.png differ diff --git a/companion/src/themes/classic/48/compare.png b/companion/src/themes/classic/48/compare.png new file mode 100644 index 000000000..499c40192 Binary files /dev/null and b/companion/src/themes/classic/48/compare.png differ diff --git a/companion/src/themes/classic/48/configure.png b/companion/src/themes/classic/48/configure.png new file mode 100644 index 000000000..9b0506ed5 Binary files /dev/null and b/companion/src/themes/classic/48/configure.png differ diff --git a/companion/src/themes/classic/48/contributors.png b/companion/src/themes/classic/48/contributors.png new file mode 100644 index 000000000..98bc58202 Binary files /dev/null and b/companion/src/themes/classic/48/contributors.png differ diff --git a/companion/src/themes/classic/48/copy.png b/companion/src/themes/classic/48/copy.png new file mode 100644 index 000000000..9bc5c654c Binary files /dev/null and b/companion/src/themes/classic/48/copy.png differ diff --git a/companion/src/themes/classic/48/currentmodel.png b/companion/src/themes/classic/48/currentmodel.png new file mode 100644 index 000000000..860941f75 Binary files /dev/null and b/companion/src/themes/classic/48/currentmodel.png differ diff --git a/companion/src/themes/classic/48/cut.png b/companion/src/themes/classic/48/cut.png new file mode 100644 index 000000000..45d111adf Binary files /dev/null and b/companion/src/themes/classic/48/cut.png differ diff --git a/companion/src/themes/classic/48/duplicate.png b/companion/src/themes/classic/48/duplicate.png new file mode 100644 index 000000000..903afdd6c Binary files /dev/null and b/companion/src/themes/classic/48/duplicate.png differ diff --git a/companion/src/themes/classic/48/edit.png b/companion/src/themes/classic/48/edit.png new file mode 100644 index 000000000..2869e5bbd Binary files /dev/null and b/companion/src/themes/classic/48/edit.png differ diff --git a/companion/src/themes/classic/48/exit.png b/companion/src/themes/classic/48/exit.png new file mode 100644 index 000000000..159dccb93 Binary files /dev/null and b/companion/src/themes/classic/48/exit.png differ diff --git a/companion/src/themes/classic/48/fuses.png b/companion/src/themes/classic/48/fuses.png new file mode 100644 index 000000000..d7fb789c4 Binary files /dev/null and b/companion/src/themes/classic/48/fuses.png differ diff --git a/companion/src/themes/classic/48/information.png b/companion/src/themes/classic/48/information.png new file mode 100644 index 000000000..e62f8ee19 Binary files /dev/null and b/companion/src/themes/classic/48/information.png differ diff --git a/companion/src/themes/classic/48/library.png b/companion/src/themes/classic/48/library.png new file mode 100644 index 000000000..df4cf1e0c Binary files /dev/null and b/companion/src/themes/classic/48/library.png differ diff --git a/companion/src/themes/classic/48/list.png b/companion/src/themes/classic/48/list.png new file mode 100644 index 000000000..564d76118 Binary files /dev/null and b/companion/src/themes/classic/48/list.png differ diff --git a/companion/src/themes/classic/48/logs.png b/companion/src/themes/classic/48/logs.png new file mode 100644 index 000000000..55c6f8d0b Binary files /dev/null and b/companion/src/themes/classic/48/logs.png differ diff --git a/companion/src/themes/classic/48/movedown.png b/companion/src/themes/classic/48/movedown.png new file mode 100644 index 000000000..7f6cb094d Binary files /dev/null and b/companion/src/themes/classic/48/movedown.png differ diff --git a/companion/src/themes/classic/48/moveup.png b/companion/src/themes/classic/48/moveup.png new file mode 100644 index 000000000..62f818d20 Binary files /dev/null and b/companion/src/themes/classic/48/moveup.png differ diff --git a/companion/src/themes/classic/48/new.png b/companion/src/themes/classic/48/new.png new file mode 100644 index 000000000..35ba8e361 Binary files /dev/null and b/companion/src/themes/classic/48/new.png differ diff --git a/companion/src/themes/classic/48/open.png b/companion/src/themes/classic/48/open.png new file mode 100644 index 000000000..04aebb09f Binary files /dev/null and b/companion/src/themes/classic/48/open.png differ diff --git a/companion/src/themes/classic/48/paintbrush.png b/companion/src/themes/classic/48/paintbrush.png new file mode 100644 index 000000000..8f90906c7 Binary files /dev/null and b/companion/src/themes/classic/48/paintbrush.png differ diff --git a/companion/src/themes/classic/48/paste.png b/companion/src/themes/classic/48/paste.png new file mode 100644 index 000000000..bbc349158 Binary files /dev/null and b/companion/src/themes/classic/48/paste.png differ diff --git a/companion/src/themes/classic/48/play.png b/companion/src/themes/classic/48/play.png new file mode 100644 index 000000000..740f36842 Binary files /dev/null and b/companion/src/themes/classic/48/play.png differ diff --git a/companion/src/themes/classic/48/preferences.png b/companion/src/themes/classic/48/preferences.png new file mode 100644 index 000000000..713e2cbeb Binary files /dev/null and b/companion/src/themes/classic/48/preferences.png differ diff --git a/companion/src/themes/classic/48/print.png b/companion/src/themes/classic/48/print.png new file mode 100644 index 000000000..5bafa08d8 Binary files /dev/null and b/companion/src/themes/classic/48/print.png differ diff --git a/companion/src/themes/classic/48/profiles.png b/companion/src/themes/classic/48/profiles.png new file mode 100644 index 000000000..52721bd5f Binary files /dev/null and b/companion/src/themes/classic/48/profiles.png differ diff --git a/companion/src/themes/classic/48/read_eeprom.png b/companion/src/themes/classic/48/read_eeprom.png new file mode 100644 index 000000000..a7ef5d2c0 Binary files /dev/null and b/companion/src/themes/classic/48/read_eeprom.png differ diff --git a/companion/src/themes/classic/48/read_eeprom_file.png b/companion/src/themes/classic/48/read_eeprom_file.png new file mode 100644 index 000000000..fdd2e5588 Binary files /dev/null and b/companion/src/themes/classic/48/read_eeprom_file.png differ diff --git a/companion/src/themes/classic/48/read_flash.png b/companion/src/themes/classic/48/read_flash.png new file mode 100644 index 000000000..0b5440588 Binary files /dev/null and b/companion/src/themes/classic/48/read_flash.png differ diff --git a/companion/src/themes/classic/48/recentdocument.png b/companion/src/themes/classic/48/recentdocument.png new file mode 100644 index 000000000..2f8eb1ba9 Binary files /dev/null and b/companion/src/themes/classic/48/recentdocument.png differ diff --git a/companion/src/themes/classic/48/save.png b/companion/src/themes/classic/48/save.png new file mode 100644 index 000000000..9153bd84c Binary files /dev/null and b/companion/src/themes/classic/48/save.png differ diff --git a/companion/src/themes/classic/48/saveas.png b/companion/src/themes/classic/48/saveas.png new file mode 100644 index 000000000..1bb79a525 Binary files /dev/null and b/companion/src/themes/classic/48/saveas.png differ diff --git a/companion/src/themes/classic/48/simulate.png b/companion/src/themes/classic/48/simulate.png new file mode 100644 index 000000000..e9c338619 Binary files /dev/null and b/companion/src/themes/classic/48/simulate.png differ diff --git a/companion/src/themes/classic/48/stop.png b/companion/src/themes/classic/48/stop.png new file mode 100644 index 000000000..c513babaa Binary files /dev/null and b/companion/src/themes/classic/48/stop.png differ diff --git a/companion/src/themes/classic/48/update.png b/companion/src/themes/classic/48/update.png new file mode 100644 index 000000000..27112e871 Binary files /dev/null and b/companion/src/themes/classic/48/update.png differ diff --git a/companion/src/themes/classic/48/wizard.png b/companion/src/themes/classic/48/wizard.png new file mode 100644 index 000000000..3fbd7d780 Binary files /dev/null and b/companion/src/themes/classic/48/wizard.png differ diff --git a/companion/src/themes/classic/48/write_eeprom.png b/companion/src/themes/classic/48/write_eeprom.png new file mode 100644 index 000000000..1c873f8e0 Binary files /dev/null and b/companion/src/themes/classic/48/write_eeprom.png differ diff --git a/companion/src/themes/classic/48/write_eeprom_file.png b/companion/src/themes/classic/48/write_eeprom_file.png new file mode 100644 index 000000000..57804bd68 Binary files /dev/null and b/companion/src/themes/classic/48/write_eeprom_file.png differ diff --git a/companion/src/themes/classic/48/write_flash.png b/companion/src/themes/classic/48/write_flash.png new file mode 100644 index 000000000..3600b5e37 Binary files /dev/null and b/companion/src/themes/classic/48/write_flash.png differ diff --git a/companion/src/themes/monoblue/16/add.png b/companion/src/themes/monoblue/16/add.png new file mode 100644 index 000000000..277d59088 Binary files /dev/null and b/companion/src/themes/monoblue/16/add.png differ diff --git a/companion/src/themes/monoblue/16/arrow-left.png b/companion/src/themes/monoblue/16/arrow-left.png new file mode 100644 index 000000000..a8f69c534 Binary files /dev/null and b/companion/src/themes/monoblue/16/arrow-left.png differ diff --git a/companion/src/themes/monoblue/16/arrow-right.png b/companion/src/themes/monoblue/16/arrow-right.png new file mode 100644 index 000000000..82386c8a6 Binary files /dev/null and b/companion/src/themes/monoblue/16/arrow-right.png differ diff --git a/companion/src/themes/monoblue/16/changelog.png b/companion/src/themes/monoblue/16/changelog.png new file mode 100644 index 000000000..3fa3310e7 Binary files /dev/null and b/companion/src/themes/monoblue/16/changelog.png differ diff --git a/companion/src/themes/monoblue/16/clear.png b/companion/src/themes/monoblue/16/clear.png new file mode 100644 index 000000000..6371aefdb Binary files /dev/null and b/companion/src/themes/monoblue/16/clear.png differ diff --git a/companion/src/themes/monoblue/16/compare.png b/companion/src/themes/monoblue/16/compare.png new file mode 100644 index 000000000..76eca0e72 Binary files /dev/null and b/companion/src/themes/monoblue/16/compare.png differ diff --git a/companion/src/themes/monoblue/16/configure.png b/companion/src/themes/monoblue/16/configure.png new file mode 100644 index 000000000..138f0fda9 Binary files /dev/null and b/companion/src/themes/monoblue/16/configure.png differ diff --git a/companion/src/themes/monoblue/16/contributors.png b/companion/src/themes/monoblue/16/contributors.png new file mode 100644 index 000000000..6e622a7c8 Binary files /dev/null and b/companion/src/themes/monoblue/16/contributors.png differ diff --git a/companion/src/themes/monoblue/16/copy.png b/companion/src/themes/monoblue/16/copy.png new file mode 100644 index 000000000..f7d827109 Binary files /dev/null and b/companion/src/themes/monoblue/16/copy.png differ diff --git a/companion/src/themes/monoblue/16/currentmodel.png b/companion/src/themes/monoblue/16/currentmodel.png new file mode 100644 index 000000000..347dd5cea Binary files /dev/null and b/companion/src/themes/monoblue/16/currentmodel.png differ diff --git a/companion/src/themes/monoblue/16/cut.png b/companion/src/themes/monoblue/16/cut.png new file mode 100644 index 000000000..548289d3a Binary files /dev/null and b/companion/src/themes/monoblue/16/cut.png differ diff --git a/companion/src/themes/monoblue/16/duplicate.png b/companion/src/themes/monoblue/16/duplicate.png new file mode 100644 index 000000000..09e2c3781 Binary files /dev/null and b/companion/src/themes/monoblue/16/duplicate.png differ diff --git a/companion/src/themes/monoblue/16/edit.png b/companion/src/themes/monoblue/16/edit.png new file mode 100644 index 000000000..73c3a3948 Binary files /dev/null and b/companion/src/themes/monoblue/16/edit.png differ diff --git a/companion/src/themes/monoblue/16/exit.png b/companion/src/themes/monoblue/16/exit.png new file mode 100644 index 000000000..bd2c9660c Binary files /dev/null and b/companion/src/themes/monoblue/16/exit.png differ diff --git a/companion/src/themes/monoblue/16/fuses.png b/companion/src/themes/monoblue/16/fuses.png new file mode 100644 index 000000000..65ced789a Binary files /dev/null and b/companion/src/themes/monoblue/16/fuses.png differ diff --git a/companion/src/themes/monoblue/16/information.png b/companion/src/themes/monoblue/16/information.png new file mode 100644 index 000000000..bda9648c1 Binary files /dev/null and b/companion/src/themes/monoblue/16/information.png differ diff --git a/companion/src/themes/monoblue/16/library.png b/companion/src/themes/monoblue/16/library.png new file mode 100644 index 000000000..5c6eee61e Binary files /dev/null and b/companion/src/themes/monoblue/16/library.png differ diff --git a/companion/src/themes/monoblue/16/list.png b/companion/src/themes/monoblue/16/list.png new file mode 100644 index 000000000..e3de01dae Binary files /dev/null and b/companion/src/themes/monoblue/16/list.png differ diff --git a/companion/src/themes/monoblue/16/logs.png b/companion/src/themes/monoblue/16/logs.png new file mode 100644 index 000000000..5c836986f Binary files /dev/null and b/companion/src/themes/monoblue/16/logs.png differ diff --git a/companion/src/themes/monoblue/16/movedown.png b/companion/src/themes/monoblue/16/movedown.png new file mode 100644 index 000000000..468cb4cb7 Binary files /dev/null and b/companion/src/themes/monoblue/16/movedown.png differ diff --git a/companion/src/themes/monoblue/16/moveup.png b/companion/src/themes/monoblue/16/moveup.png new file mode 100644 index 000000000..63a22678f Binary files /dev/null and b/companion/src/themes/monoblue/16/moveup.png differ diff --git a/companion/src/themes/monoblue/16/new.png b/companion/src/themes/monoblue/16/new.png new file mode 100644 index 000000000..d007f8573 Binary files /dev/null and b/companion/src/themes/monoblue/16/new.png differ diff --git a/companion/src/themes/monoblue/16/open.png b/companion/src/themes/monoblue/16/open.png new file mode 100644 index 000000000..c8b830f77 Binary files /dev/null and b/companion/src/themes/monoblue/16/open.png differ diff --git a/companion/src/themes/monoblue/16/paintbrush.png b/companion/src/themes/monoblue/16/paintbrush.png new file mode 100644 index 000000000..568e64931 Binary files /dev/null and b/companion/src/themes/monoblue/16/paintbrush.png differ diff --git a/companion/src/themes/monoblue/16/paste.png b/companion/src/themes/monoblue/16/paste.png new file mode 100644 index 000000000..acabe060c Binary files /dev/null and b/companion/src/themes/monoblue/16/paste.png differ diff --git a/companion/src/themes/monoblue/16/play.png b/companion/src/themes/monoblue/16/play.png new file mode 100644 index 000000000..a7807340c Binary files /dev/null and b/companion/src/themes/monoblue/16/play.png differ diff --git a/companion/src/themes/monoblue/16/preferences.png b/companion/src/themes/monoblue/16/preferences.png new file mode 100644 index 000000000..566b610b2 Binary files /dev/null and b/companion/src/themes/monoblue/16/preferences.png differ diff --git a/companion/src/themes/monoblue/16/print.png b/companion/src/themes/monoblue/16/print.png new file mode 100644 index 000000000..975b98c47 Binary files /dev/null and b/companion/src/themes/monoblue/16/print.png differ diff --git a/companion/src/themes/monoblue/16/profiles.png b/companion/src/themes/monoblue/16/profiles.png new file mode 100644 index 000000000..790f1009c Binary files /dev/null and b/companion/src/themes/monoblue/16/profiles.png differ diff --git a/companion/src/themes/monoblue/16/read_eeprom.png b/companion/src/themes/monoblue/16/read_eeprom.png new file mode 100644 index 000000000..ba785d6ac Binary files /dev/null and b/companion/src/themes/monoblue/16/read_eeprom.png differ diff --git a/companion/src/themes/monoblue/16/read_eeprom_file.png b/companion/src/themes/monoblue/16/read_eeprom_file.png new file mode 100644 index 000000000..8d2ae0e0b Binary files /dev/null and b/companion/src/themes/monoblue/16/read_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/16/read_flash.png b/companion/src/themes/monoblue/16/read_flash.png new file mode 100644 index 000000000..234c83d6c Binary files /dev/null and b/companion/src/themes/monoblue/16/read_flash.png differ diff --git a/companion/src/themes/monoblue/16/recentdocument.png b/companion/src/themes/monoblue/16/recentdocument.png new file mode 100644 index 000000000..f1ada6d84 Binary files /dev/null and b/companion/src/themes/monoblue/16/recentdocument.png differ diff --git a/companion/src/themes/monoblue/16/save.png b/companion/src/themes/monoblue/16/save.png new file mode 100644 index 000000000..ab1ee8b03 Binary files /dev/null and b/companion/src/themes/monoblue/16/save.png differ diff --git a/companion/src/themes/monoblue/16/saveas.png b/companion/src/themes/monoblue/16/saveas.png new file mode 100644 index 000000000..a1054dae1 Binary files /dev/null and b/companion/src/themes/monoblue/16/saveas.png differ diff --git a/companion/src/themes/monoblue/16/simulate.png b/companion/src/themes/monoblue/16/simulate.png new file mode 100644 index 000000000..2b7fef775 Binary files /dev/null and b/companion/src/themes/monoblue/16/simulate.png differ diff --git a/companion/src/themes/monoblue/16/stop.png b/companion/src/themes/monoblue/16/stop.png new file mode 100644 index 000000000..4c654f4d4 Binary files /dev/null and b/companion/src/themes/monoblue/16/stop.png differ diff --git a/companion/src/themes/monoblue/16/update.png b/companion/src/themes/monoblue/16/update.png new file mode 100644 index 000000000..17897ad5d Binary files /dev/null and b/companion/src/themes/monoblue/16/update.png differ diff --git a/companion/src/themes/monoblue/16/wizard.png b/companion/src/themes/monoblue/16/wizard.png new file mode 100644 index 000000000..75a85e2e2 Binary files /dev/null and b/companion/src/themes/monoblue/16/wizard.png differ diff --git a/companion/src/themes/monoblue/16/write_eeprom.png b/companion/src/themes/monoblue/16/write_eeprom.png new file mode 100644 index 000000000..ad71d967c Binary files /dev/null and b/companion/src/themes/monoblue/16/write_eeprom.png differ diff --git a/companion/src/themes/monoblue/16/write_eeprom_file.png b/companion/src/themes/monoblue/16/write_eeprom_file.png new file mode 100644 index 000000000..08f6ca577 Binary files /dev/null and b/companion/src/themes/monoblue/16/write_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/16/write_flash.png b/companion/src/themes/monoblue/16/write_flash.png new file mode 100644 index 000000000..985cad5ef Binary files /dev/null and b/companion/src/themes/monoblue/16/write_flash.png differ diff --git a/companion/src/themes/monoblue/24/add.png b/companion/src/themes/monoblue/24/add.png new file mode 100644 index 000000000..573b67a3f Binary files /dev/null and b/companion/src/themes/monoblue/24/add.png differ diff --git a/companion/src/themes/monoblue/24/arrow-left.png b/companion/src/themes/monoblue/24/arrow-left.png new file mode 100644 index 000000000..804b9ca79 Binary files /dev/null and b/companion/src/themes/monoblue/24/arrow-left.png differ diff --git a/companion/src/themes/monoblue/24/arrow-right.png b/companion/src/themes/monoblue/24/arrow-right.png new file mode 100644 index 000000000..6cbd72642 Binary files /dev/null and b/companion/src/themes/monoblue/24/arrow-right.png differ diff --git a/companion/src/themes/monoblue/24/changelog.png b/companion/src/themes/monoblue/24/changelog.png new file mode 100644 index 000000000..362c93e97 Binary files /dev/null and b/companion/src/themes/monoblue/24/changelog.png differ diff --git a/companion/src/themes/monoblue/24/clear.png b/companion/src/themes/monoblue/24/clear.png new file mode 100644 index 000000000..f9d716714 Binary files /dev/null and b/companion/src/themes/monoblue/24/clear.png differ diff --git a/companion/src/themes/monoblue/24/compare.png b/companion/src/themes/monoblue/24/compare.png new file mode 100644 index 000000000..5af1549a5 Binary files /dev/null and b/companion/src/themes/monoblue/24/compare.png differ diff --git a/companion/src/themes/monoblue/24/configure.png b/companion/src/themes/monoblue/24/configure.png new file mode 100644 index 000000000..f3a1c5258 Binary files /dev/null and b/companion/src/themes/monoblue/24/configure.png differ diff --git a/companion/src/themes/monoblue/24/contributors.png b/companion/src/themes/monoblue/24/contributors.png new file mode 100644 index 000000000..ba7065668 Binary files /dev/null and b/companion/src/themes/monoblue/24/contributors.png differ diff --git a/companion/src/themes/monoblue/24/copy.png b/companion/src/themes/monoblue/24/copy.png new file mode 100644 index 000000000..d1b713f6f Binary files /dev/null and b/companion/src/themes/monoblue/24/copy.png differ diff --git a/companion/src/themes/monoblue/24/currentmodel.png b/companion/src/themes/monoblue/24/currentmodel.png new file mode 100644 index 000000000..c6d56f883 Binary files /dev/null and b/companion/src/themes/monoblue/24/currentmodel.png differ diff --git a/companion/src/themes/monoblue/24/cut.png b/companion/src/themes/monoblue/24/cut.png new file mode 100644 index 000000000..6f6dd8649 Binary files /dev/null and b/companion/src/themes/monoblue/24/cut.png differ diff --git a/companion/src/themes/monoblue/24/duplicate.png b/companion/src/themes/monoblue/24/duplicate.png new file mode 100644 index 000000000..642b3e319 Binary files /dev/null and b/companion/src/themes/monoblue/24/duplicate.png differ diff --git a/companion/src/themes/monoblue/24/edit.png b/companion/src/themes/monoblue/24/edit.png new file mode 100644 index 000000000..bf4ab6cba Binary files /dev/null and b/companion/src/themes/monoblue/24/edit.png differ diff --git a/companion/src/themes/monoblue/24/exit.png b/companion/src/themes/monoblue/24/exit.png new file mode 100644 index 000000000..6c3417e41 Binary files /dev/null and b/companion/src/themes/monoblue/24/exit.png differ diff --git a/companion/src/themes/monoblue/24/fuses.png b/companion/src/themes/monoblue/24/fuses.png new file mode 100644 index 000000000..5dc29a92a Binary files /dev/null and b/companion/src/themes/monoblue/24/fuses.png differ diff --git a/companion/src/themes/monoblue/24/information.png b/companion/src/themes/monoblue/24/information.png new file mode 100644 index 000000000..351bf90ba Binary files /dev/null and b/companion/src/themes/monoblue/24/information.png differ diff --git a/companion/src/themes/monoblue/24/library.png b/companion/src/themes/monoblue/24/library.png new file mode 100644 index 000000000..72ebd44fc Binary files /dev/null and b/companion/src/themes/monoblue/24/library.png differ diff --git a/companion/src/themes/monoblue/24/list.png b/companion/src/themes/monoblue/24/list.png new file mode 100644 index 000000000..eff436442 Binary files /dev/null and b/companion/src/themes/monoblue/24/list.png differ diff --git a/companion/src/themes/monoblue/24/logs.png b/companion/src/themes/monoblue/24/logs.png new file mode 100644 index 000000000..35ea626ea Binary files /dev/null and b/companion/src/themes/monoblue/24/logs.png differ diff --git a/companion/src/themes/monoblue/24/movedown.png b/companion/src/themes/monoblue/24/movedown.png new file mode 100644 index 000000000..d4812b3b4 Binary files /dev/null and b/companion/src/themes/monoblue/24/movedown.png differ diff --git a/companion/src/themes/monoblue/24/moveup.png b/companion/src/themes/monoblue/24/moveup.png new file mode 100644 index 000000000..dc343cac5 Binary files /dev/null and b/companion/src/themes/monoblue/24/moveup.png differ diff --git a/companion/src/themes/monoblue/24/new.png b/companion/src/themes/monoblue/24/new.png new file mode 100644 index 000000000..af4c268ca Binary files /dev/null and b/companion/src/themes/monoblue/24/new.png differ diff --git a/companion/src/themes/monoblue/24/open.png b/companion/src/themes/monoblue/24/open.png new file mode 100644 index 000000000..047a2ee81 Binary files /dev/null and b/companion/src/themes/monoblue/24/open.png differ diff --git a/companion/src/themes/monoblue/24/paintbrush.png b/companion/src/themes/monoblue/24/paintbrush.png new file mode 100644 index 000000000..d2982fa7c Binary files /dev/null and b/companion/src/themes/monoblue/24/paintbrush.png differ diff --git a/companion/src/themes/monoblue/24/paste.png b/companion/src/themes/monoblue/24/paste.png new file mode 100644 index 000000000..ad82f633b Binary files /dev/null and b/companion/src/themes/monoblue/24/paste.png differ diff --git a/companion/src/themes/monoblue/24/play.png b/companion/src/themes/monoblue/24/play.png new file mode 100644 index 000000000..17a4d9988 Binary files /dev/null and b/companion/src/themes/monoblue/24/play.png differ diff --git a/companion/src/themes/monoblue/24/preferences.png b/companion/src/themes/monoblue/24/preferences.png new file mode 100644 index 000000000..91ff56782 Binary files /dev/null and b/companion/src/themes/monoblue/24/preferences.png differ diff --git a/companion/src/themes/monoblue/24/print.png b/companion/src/themes/monoblue/24/print.png new file mode 100644 index 000000000..fc3497b0c Binary files /dev/null and b/companion/src/themes/monoblue/24/print.png differ diff --git a/companion/src/themes/monoblue/24/profiles.png b/companion/src/themes/monoblue/24/profiles.png new file mode 100644 index 000000000..bf1d80650 Binary files /dev/null and b/companion/src/themes/monoblue/24/profiles.png differ diff --git a/companion/src/themes/monoblue/24/read_eeprom.png b/companion/src/themes/monoblue/24/read_eeprom.png new file mode 100644 index 000000000..b8f02c0e0 Binary files /dev/null and b/companion/src/themes/monoblue/24/read_eeprom.png differ diff --git a/companion/src/themes/monoblue/24/read_eeprom_file.png b/companion/src/themes/monoblue/24/read_eeprom_file.png new file mode 100644 index 000000000..763a611c2 Binary files /dev/null and b/companion/src/themes/monoblue/24/read_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/24/read_flash.png b/companion/src/themes/monoblue/24/read_flash.png new file mode 100644 index 000000000..aa78e35e6 Binary files /dev/null and b/companion/src/themes/monoblue/24/read_flash.png differ diff --git a/companion/src/themes/monoblue/24/recentdocument.png b/companion/src/themes/monoblue/24/recentdocument.png new file mode 100644 index 000000000..ba4d54f5e Binary files /dev/null and b/companion/src/themes/monoblue/24/recentdocument.png differ diff --git a/companion/src/themes/monoblue/24/save.png b/companion/src/themes/monoblue/24/save.png new file mode 100644 index 000000000..ee19aa9ee Binary files /dev/null and b/companion/src/themes/monoblue/24/save.png differ diff --git a/companion/src/themes/monoblue/24/saveas.png b/companion/src/themes/monoblue/24/saveas.png new file mode 100644 index 000000000..10f92827b Binary files /dev/null and b/companion/src/themes/monoblue/24/saveas.png differ diff --git a/companion/src/themes/monoblue/24/simulate.png b/companion/src/themes/monoblue/24/simulate.png new file mode 100644 index 000000000..1b486d1bf Binary files /dev/null and b/companion/src/themes/monoblue/24/simulate.png differ diff --git a/companion/src/themes/monoblue/24/stop.png b/companion/src/themes/monoblue/24/stop.png new file mode 100644 index 000000000..c9cdef387 Binary files /dev/null and b/companion/src/themes/monoblue/24/stop.png differ diff --git a/companion/src/themes/monoblue/24/update.png b/companion/src/themes/monoblue/24/update.png new file mode 100644 index 000000000..dc97c9a86 Binary files /dev/null and b/companion/src/themes/monoblue/24/update.png differ diff --git a/companion/src/themes/monoblue/24/wizard.png b/companion/src/themes/monoblue/24/wizard.png new file mode 100644 index 000000000..a869d1b7a Binary files /dev/null and b/companion/src/themes/monoblue/24/wizard.png differ diff --git a/companion/src/themes/monoblue/24/write_eeprom.png b/companion/src/themes/monoblue/24/write_eeprom.png new file mode 100644 index 000000000..28478731e Binary files /dev/null and b/companion/src/themes/monoblue/24/write_eeprom.png differ diff --git a/companion/src/themes/monoblue/24/write_eeprom_file.png b/companion/src/themes/monoblue/24/write_eeprom_file.png new file mode 100644 index 000000000..24df56702 Binary files /dev/null and b/companion/src/themes/monoblue/24/write_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/24/write_flash.png b/companion/src/themes/monoblue/24/write_flash.png new file mode 100644 index 000000000..105953506 Binary files /dev/null and b/companion/src/themes/monoblue/24/write_flash.png differ diff --git a/companion/src/themes/monoblue/32/add.png b/companion/src/themes/monoblue/32/add.png new file mode 100644 index 000000000..526d2ebd8 Binary files /dev/null and b/companion/src/themes/monoblue/32/add.png differ diff --git a/companion/src/themes/monoblue/32/arrow-left.png b/companion/src/themes/monoblue/32/arrow-left.png new file mode 100644 index 000000000..1c51f3977 Binary files /dev/null and b/companion/src/themes/monoblue/32/arrow-left.png differ diff --git a/companion/src/themes/monoblue/32/arrow-right.png b/companion/src/themes/monoblue/32/arrow-right.png new file mode 100644 index 000000000..9bbc927e2 Binary files /dev/null and b/companion/src/themes/monoblue/32/arrow-right.png differ diff --git a/companion/src/themes/monoblue/32/changelog.png b/companion/src/themes/monoblue/32/changelog.png new file mode 100644 index 000000000..a47a28a33 Binary files /dev/null and b/companion/src/themes/monoblue/32/changelog.png differ diff --git a/companion/src/themes/monoblue/32/clear.png b/companion/src/themes/monoblue/32/clear.png new file mode 100644 index 000000000..57b07f2ca Binary files /dev/null and b/companion/src/themes/monoblue/32/clear.png differ diff --git a/companion/src/themes/monoblue/32/compare.png b/companion/src/themes/monoblue/32/compare.png new file mode 100644 index 000000000..78bf27cbc Binary files /dev/null and b/companion/src/themes/monoblue/32/compare.png differ diff --git a/companion/src/themes/monoblue/32/configure.png b/companion/src/themes/monoblue/32/configure.png new file mode 100644 index 000000000..c701b52be Binary files /dev/null and b/companion/src/themes/monoblue/32/configure.png differ diff --git a/companion/src/themes/monoblue/32/contributors.png b/companion/src/themes/monoblue/32/contributors.png new file mode 100644 index 000000000..aa8f130b5 Binary files /dev/null and b/companion/src/themes/monoblue/32/contributors.png differ diff --git a/companion/src/themes/monoblue/32/copy.png b/companion/src/themes/monoblue/32/copy.png new file mode 100644 index 000000000..e16499332 Binary files /dev/null and b/companion/src/themes/monoblue/32/copy.png differ diff --git a/companion/src/themes/monoblue/32/currentmodel.png b/companion/src/themes/monoblue/32/currentmodel.png new file mode 100644 index 000000000..ba8d29bf5 Binary files /dev/null and b/companion/src/themes/monoblue/32/currentmodel.png differ diff --git a/companion/src/themes/monoblue/32/cut.png b/companion/src/themes/monoblue/32/cut.png new file mode 100644 index 000000000..98083340e Binary files /dev/null and b/companion/src/themes/monoblue/32/cut.png differ diff --git a/companion/src/themes/monoblue/32/duplicate.png b/companion/src/themes/monoblue/32/duplicate.png new file mode 100644 index 000000000..1053d8c2f Binary files /dev/null and b/companion/src/themes/monoblue/32/duplicate.png differ diff --git a/companion/src/themes/monoblue/32/edit.png b/companion/src/themes/monoblue/32/edit.png new file mode 100644 index 000000000..56fc6bd72 Binary files /dev/null and b/companion/src/themes/monoblue/32/edit.png differ diff --git a/companion/src/themes/monoblue/32/exit.png b/companion/src/themes/monoblue/32/exit.png new file mode 100644 index 000000000..e24a7e034 Binary files /dev/null and b/companion/src/themes/monoblue/32/exit.png differ diff --git a/companion/src/themes/monoblue/32/fuses.png b/companion/src/themes/monoblue/32/fuses.png new file mode 100644 index 000000000..813fa99fd Binary files /dev/null and b/companion/src/themes/monoblue/32/fuses.png differ diff --git a/companion/src/themes/monoblue/32/information.png b/companion/src/themes/monoblue/32/information.png new file mode 100644 index 000000000..896c7c3c6 Binary files /dev/null and b/companion/src/themes/monoblue/32/information.png differ diff --git a/companion/src/themes/monoblue/32/library.png b/companion/src/themes/monoblue/32/library.png new file mode 100644 index 000000000..6f7ee85dd Binary files /dev/null and b/companion/src/themes/monoblue/32/library.png differ diff --git a/companion/src/themes/monoblue/32/list.png b/companion/src/themes/monoblue/32/list.png new file mode 100644 index 000000000..b0d0cd20d Binary files /dev/null and b/companion/src/themes/monoblue/32/list.png differ diff --git a/companion/src/themes/monoblue/32/logs.png b/companion/src/themes/monoblue/32/logs.png new file mode 100644 index 000000000..dc676c68e Binary files /dev/null and b/companion/src/themes/monoblue/32/logs.png differ diff --git a/companion/src/themes/monoblue/32/movedown.png b/companion/src/themes/monoblue/32/movedown.png new file mode 100644 index 000000000..ada0c6685 Binary files /dev/null and b/companion/src/themes/monoblue/32/movedown.png differ diff --git a/companion/src/themes/monoblue/32/moveup.png b/companion/src/themes/monoblue/32/moveup.png new file mode 100644 index 000000000..7748b9a42 Binary files /dev/null and b/companion/src/themes/monoblue/32/moveup.png differ diff --git a/companion/src/themes/monoblue/32/new.png b/companion/src/themes/monoblue/32/new.png new file mode 100644 index 000000000..123d49588 Binary files /dev/null and b/companion/src/themes/monoblue/32/new.png differ diff --git a/companion/src/themes/monoblue/32/open.png b/companion/src/themes/monoblue/32/open.png new file mode 100644 index 000000000..eaf97c2c2 Binary files /dev/null and b/companion/src/themes/monoblue/32/open.png differ diff --git a/companion/src/themes/monoblue/32/paintbrush.png b/companion/src/themes/monoblue/32/paintbrush.png new file mode 100644 index 000000000..648687ca8 Binary files /dev/null and b/companion/src/themes/monoblue/32/paintbrush.png differ diff --git a/companion/src/themes/monoblue/32/paste.png b/companion/src/themes/monoblue/32/paste.png new file mode 100644 index 000000000..f8a34a8d4 Binary files /dev/null and b/companion/src/themes/monoblue/32/paste.png differ diff --git a/companion/src/themes/monoblue/32/play.png b/companion/src/themes/monoblue/32/play.png new file mode 100644 index 000000000..c6c3d6cf0 Binary files /dev/null and b/companion/src/themes/monoblue/32/play.png differ diff --git a/companion/src/themes/monoblue/32/preferences.png b/companion/src/themes/monoblue/32/preferences.png new file mode 100644 index 000000000..dbeafbc37 Binary files /dev/null and b/companion/src/themes/monoblue/32/preferences.png differ diff --git a/companion/src/themes/monoblue/32/print.png b/companion/src/themes/monoblue/32/print.png new file mode 100644 index 000000000..9ff0f7e2d Binary files /dev/null and b/companion/src/themes/monoblue/32/print.png differ diff --git a/companion/src/themes/monoblue/32/profiles.png b/companion/src/themes/monoblue/32/profiles.png new file mode 100644 index 000000000..fda77416f Binary files /dev/null and b/companion/src/themes/monoblue/32/profiles.png differ diff --git a/companion/src/themes/monoblue/32/read_eeprom.png b/companion/src/themes/monoblue/32/read_eeprom.png new file mode 100644 index 000000000..407584ed7 Binary files /dev/null and b/companion/src/themes/monoblue/32/read_eeprom.png differ diff --git a/companion/src/themes/monoblue/32/read_eeprom_file.png b/companion/src/themes/monoblue/32/read_eeprom_file.png new file mode 100644 index 000000000..b6e3f6347 Binary files /dev/null and b/companion/src/themes/monoblue/32/read_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/32/read_flash.png b/companion/src/themes/monoblue/32/read_flash.png new file mode 100644 index 000000000..d07532291 Binary files /dev/null and b/companion/src/themes/monoblue/32/read_flash.png differ diff --git a/companion/src/themes/monoblue/32/recentdocument.png b/companion/src/themes/monoblue/32/recentdocument.png new file mode 100644 index 000000000..0dade16b4 Binary files /dev/null and b/companion/src/themes/monoblue/32/recentdocument.png differ diff --git a/companion/src/themes/monoblue/32/save.png b/companion/src/themes/monoblue/32/save.png new file mode 100644 index 000000000..b96b8a51a Binary files /dev/null and b/companion/src/themes/monoblue/32/save.png differ diff --git a/companion/src/themes/monoblue/32/saveas.png b/companion/src/themes/monoblue/32/saveas.png new file mode 100644 index 000000000..031468408 Binary files /dev/null and b/companion/src/themes/monoblue/32/saveas.png differ diff --git a/companion/src/themes/monoblue/32/simulate.png b/companion/src/themes/monoblue/32/simulate.png new file mode 100644 index 000000000..9a6e2ec74 Binary files /dev/null and b/companion/src/themes/monoblue/32/simulate.png differ diff --git a/companion/src/themes/monoblue/32/stop.png b/companion/src/themes/monoblue/32/stop.png new file mode 100644 index 000000000..091d96563 Binary files /dev/null and b/companion/src/themes/monoblue/32/stop.png differ diff --git a/companion/src/themes/monoblue/32/update.png b/companion/src/themes/monoblue/32/update.png new file mode 100644 index 000000000..250147a57 Binary files /dev/null and b/companion/src/themes/monoblue/32/update.png differ diff --git a/companion/src/themes/monoblue/32/wizard.png b/companion/src/themes/monoblue/32/wizard.png new file mode 100644 index 000000000..41999d5b6 Binary files /dev/null and b/companion/src/themes/monoblue/32/wizard.png differ diff --git a/companion/src/themes/monoblue/32/write_eeprom.png b/companion/src/themes/monoblue/32/write_eeprom.png new file mode 100644 index 000000000..b4ec61822 Binary files /dev/null and b/companion/src/themes/monoblue/32/write_eeprom.png differ diff --git a/companion/src/themes/monoblue/32/write_eeprom_file.png b/companion/src/themes/monoblue/32/write_eeprom_file.png new file mode 100644 index 000000000..6042ddf03 Binary files /dev/null and b/companion/src/themes/monoblue/32/write_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/32/write_flash.png b/companion/src/themes/monoblue/32/write_flash.png new file mode 100644 index 000000000..ec5397d7a Binary files /dev/null and b/companion/src/themes/monoblue/32/write_flash.png differ diff --git a/companion/src/themes/monoblue/48/add.png b/companion/src/themes/monoblue/48/add.png new file mode 100644 index 000000000..b398f4584 Binary files /dev/null and b/companion/src/themes/monoblue/48/add.png differ diff --git a/companion/src/themes/monoblue/48/arrow-left.png b/companion/src/themes/monoblue/48/arrow-left.png new file mode 100644 index 000000000..86f02dea9 Binary files /dev/null and b/companion/src/themes/monoblue/48/arrow-left.png differ diff --git a/companion/src/themes/monoblue/48/arrow-right.png b/companion/src/themes/monoblue/48/arrow-right.png new file mode 100644 index 000000000..45ea123d5 Binary files /dev/null and b/companion/src/themes/monoblue/48/arrow-right.png differ diff --git a/companion/src/themes/monoblue/48/changelog.png b/companion/src/themes/monoblue/48/changelog.png new file mode 100644 index 000000000..f63510e0c Binary files /dev/null and b/companion/src/themes/monoblue/48/changelog.png differ diff --git a/companion/src/themes/monoblue/48/clear.png b/companion/src/themes/monoblue/48/clear.png new file mode 100644 index 000000000..11c9979b9 Binary files /dev/null and b/companion/src/themes/monoblue/48/clear.png differ diff --git a/companion/src/themes/monoblue/48/compare.png b/companion/src/themes/monoblue/48/compare.png new file mode 100644 index 000000000..ba3870011 Binary files /dev/null and b/companion/src/themes/monoblue/48/compare.png differ diff --git a/companion/src/themes/monoblue/48/configure.png b/companion/src/themes/monoblue/48/configure.png new file mode 100644 index 000000000..ea1e7009a Binary files /dev/null and b/companion/src/themes/monoblue/48/configure.png differ diff --git a/companion/src/themes/monoblue/48/contributors.png b/companion/src/themes/monoblue/48/contributors.png new file mode 100644 index 000000000..c8b3c2cba Binary files /dev/null and b/companion/src/themes/monoblue/48/contributors.png differ diff --git a/companion/src/themes/monoblue/48/copy.png b/companion/src/themes/monoblue/48/copy.png new file mode 100644 index 000000000..4918af9f7 Binary files /dev/null and b/companion/src/themes/monoblue/48/copy.png differ diff --git a/companion/src/themes/monoblue/48/currentmodel.png b/companion/src/themes/monoblue/48/currentmodel.png new file mode 100644 index 000000000..865fae91f Binary files /dev/null and b/companion/src/themes/monoblue/48/currentmodel.png differ diff --git a/companion/src/themes/monoblue/48/cut.png b/companion/src/themes/monoblue/48/cut.png new file mode 100644 index 000000000..a6bfe6361 Binary files /dev/null and b/companion/src/themes/monoblue/48/cut.png differ diff --git a/companion/src/themes/monoblue/48/duplicate.png b/companion/src/themes/monoblue/48/duplicate.png new file mode 100644 index 000000000..7222708f4 Binary files /dev/null and b/companion/src/themes/monoblue/48/duplicate.png differ diff --git a/companion/src/themes/monoblue/48/edit.png b/companion/src/themes/monoblue/48/edit.png new file mode 100644 index 000000000..ec4fa326f Binary files /dev/null and b/companion/src/themes/monoblue/48/edit.png differ diff --git a/companion/src/themes/monoblue/48/exit.png b/companion/src/themes/monoblue/48/exit.png new file mode 100644 index 000000000..8e3d37ff5 Binary files /dev/null and b/companion/src/themes/monoblue/48/exit.png differ diff --git a/companion/src/themes/monoblue/48/fuses.png b/companion/src/themes/monoblue/48/fuses.png new file mode 100644 index 000000000..47d3e7025 Binary files /dev/null and b/companion/src/themes/monoblue/48/fuses.png differ diff --git a/companion/src/themes/monoblue/48/information.png b/companion/src/themes/monoblue/48/information.png new file mode 100644 index 000000000..e63138475 Binary files /dev/null and b/companion/src/themes/monoblue/48/information.png differ diff --git a/companion/src/themes/monoblue/48/library.png b/companion/src/themes/monoblue/48/library.png new file mode 100644 index 000000000..354bca34a Binary files /dev/null and b/companion/src/themes/monoblue/48/library.png differ diff --git a/companion/src/themes/monoblue/48/list.png b/companion/src/themes/monoblue/48/list.png new file mode 100644 index 000000000..043c4d42a Binary files /dev/null and b/companion/src/themes/monoblue/48/list.png differ diff --git a/companion/src/themes/monoblue/48/logs.png b/companion/src/themes/monoblue/48/logs.png new file mode 100644 index 000000000..092b19e61 Binary files /dev/null and b/companion/src/themes/monoblue/48/logs.png differ diff --git a/companion/src/themes/monoblue/48/movedown.png b/companion/src/themes/monoblue/48/movedown.png new file mode 100644 index 000000000..dc6db146e Binary files /dev/null and b/companion/src/themes/monoblue/48/movedown.png differ diff --git a/companion/src/themes/monoblue/48/moveup.png b/companion/src/themes/monoblue/48/moveup.png new file mode 100644 index 000000000..c68fc663d Binary files /dev/null and b/companion/src/themes/monoblue/48/moveup.png differ diff --git a/companion/src/themes/monoblue/48/new.png b/companion/src/themes/monoblue/48/new.png new file mode 100644 index 000000000..838cd9ff9 Binary files /dev/null and b/companion/src/themes/monoblue/48/new.png differ diff --git a/companion/src/themes/monoblue/48/open.png b/companion/src/themes/monoblue/48/open.png new file mode 100644 index 000000000..d1e79c283 Binary files /dev/null and b/companion/src/themes/monoblue/48/open.png differ diff --git a/companion/src/themes/monoblue/48/paintbrush.png b/companion/src/themes/monoblue/48/paintbrush.png new file mode 100644 index 000000000..660bf62c7 Binary files /dev/null and b/companion/src/themes/monoblue/48/paintbrush.png differ diff --git a/companion/src/themes/monoblue/48/paste.png b/companion/src/themes/monoblue/48/paste.png new file mode 100644 index 000000000..79954699b Binary files /dev/null and b/companion/src/themes/monoblue/48/paste.png differ diff --git a/companion/src/themes/monoblue/48/play.png b/companion/src/themes/monoblue/48/play.png new file mode 100644 index 000000000..984ba0295 Binary files /dev/null and b/companion/src/themes/monoblue/48/play.png differ diff --git a/companion/src/themes/monoblue/48/preferences.png b/companion/src/themes/monoblue/48/preferences.png new file mode 100644 index 000000000..3b4d91a3b Binary files /dev/null and b/companion/src/themes/monoblue/48/preferences.png differ diff --git a/companion/src/themes/monoblue/48/print.png b/companion/src/themes/monoblue/48/print.png new file mode 100644 index 000000000..bd9eac8b8 Binary files /dev/null and b/companion/src/themes/monoblue/48/print.png differ diff --git a/companion/src/themes/monoblue/48/profiles.png b/companion/src/themes/monoblue/48/profiles.png new file mode 100644 index 000000000..20722810e Binary files /dev/null and b/companion/src/themes/monoblue/48/profiles.png differ diff --git a/companion/src/themes/monoblue/48/read_eeprom.png b/companion/src/themes/monoblue/48/read_eeprom.png new file mode 100644 index 000000000..6f545247f Binary files /dev/null and b/companion/src/themes/monoblue/48/read_eeprom.png differ diff --git a/companion/src/themes/monoblue/48/read_eeprom_file.png b/companion/src/themes/monoblue/48/read_eeprom_file.png new file mode 100644 index 000000000..d8476f45d Binary files /dev/null and b/companion/src/themes/monoblue/48/read_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/48/read_flash.png b/companion/src/themes/monoblue/48/read_flash.png new file mode 100644 index 000000000..3af289f1a Binary files /dev/null and b/companion/src/themes/monoblue/48/read_flash.png differ diff --git a/companion/src/themes/monoblue/48/recentdocument.png b/companion/src/themes/monoblue/48/recentdocument.png new file mode 100644 index 000000000..795883872 Binary files /dev/null and b/companion/src/themes/monoblue/48/recentdocument.png differ diff --git a/companion/src/themes/monoblue/48/save.png b/companion/src/themes/monoblue/48/save.png new file mode 100644 index 000000000..d05062e95 Binary files /dev/null and b/companion/src/themes/monoblue/48/save.png differ diff --git a/companion/src/themes/monoblue/48/saveas.png b/companion/src/themes/monoblue/48/saveas.png new file mode 100644 index 000000000..cf57499c9 Binary files /dev/null and b/companion/src/themes/monoblue/48/saveas.png differ diff --git a/companion/src/themes/monoblue/48/simulate.png b/companion/src/themes/monoblue/48/simulate.png new file mode 100644 index 000000000..f33c8bf0d Binary files /dev/null and b/companion/src/themes/monoblue/48/simulate.png differ diff --git a/companion/src/themes/monoblue/48/stop.png b/companion/src/themes/monoblue/48/stop.png new file mode 100644 index 000000000..daf3459c7 Binary files /dev/null and b/companion/src/themes/monoblue/48/stop.png differ diff --git a/companion/src/themes/monoblue/48/update.png b/companion/src/themes/monoblue/48/update.png new file mode 100644 index 000000000..9b64290cf Binary files /dev/null and b/companion/src/themes/monoblue/48/update.png differ diff --git a/companion/src/themes/monoblue/48/wizard.png b/companion/src/themes/monoblue/48/wizard.png new file mode 100644 index 000000000..d7f879798 Binary files /dev/null and b/companion/src/themes/monoblue/48/wizard.png differ diff --git a/companion/src/themes/monoblue/48/write_eeprom.png b/companion/src/themes/monoblue/48/write_eeprom.png new file mode 100644 index 000000000..fb32ada8d Binary files /dev/null and b/companion/src/themes/monoblue/48/write_eeprom.png differ diff --git a/companion/src/themes/monoblue/48/write_eeprom_file.png b/companion/src/themes/monoblue/48/write_eeprom_file.png new file mode 100644 index 000000000..bfd3c46af Binary files /dev/null and b/companion/src/themes/monoblue/48/write_eeprom_file.png differ diff --git a/companion/src/themes/monoblue/48/write_flash.png b/companion/src/themes/monoblue/48/write_flash.png new file mode 100644 index 000000000..7c5167a70 Binary files /dev/null and b/companion/src/themes/monoblue/48/write_flash.png differ diff --git a/companion/src/themes/monochrome/16/add.png b/companion/src/themes/monochrome/16/add.png new file mode 100644 index 000000000..e2cb16737 Binary files /dev/null and b/companion/src/themes/monochrome/16/add.png differ diff --git a/companion/src/themes/monochrome/16/arrow-left.png b/companion/src/themes/monochrome/16/arrow-left.png new file mode 100644 index 000000000..df382a723 Binary files /dev/null and b/companion/src/themes/monochrome/16/arrow-left.png differ diff --git a/companion/src/themes/monochrome/16/arrow-right.png b/companion/src/themes/monochrome/16/arrow-right.png new file mode 100644 index 000000000..c2cf8ab8b Binary files /dev/null and b/companion/src/themes/monochrome/16/arrow-right.png differ diff --git a/companion/src/themes/monochrome/16/changelog.png b/companion/src/themes/monochrome/16/changelog.png new file mode 100644 index 000000000..e1eba6ff6 Binary files /dev/null and b/companion/src/themes/monochrome/16/changelog.png differ diff --git a/companion/src/themes/monochrome/16/clear.png b/companion/src/themes/monochrome/16/clear.png new file mode 100644 index 000000000..3d142f8af Binary files /dev/null and b/companion/src/themes/monochrome/16/clear.png differ diff --git a/companion/src/themes/monochrome/16/compare.png b/companion/src/themes/monochrome/16/compare.png new file mode 100644 index 000000000..553ddaa10 Binary files /dev/null and b/companion/src/themes/monochrome/16/compare.png differ diff --git a/companion/src/themes/monochrome/16/configure.png b/companion/src/themes/monochrome/16/configure.png new file mode 100644 index 000000000..6a3295aab Binary files /dev/null and b/companion/src/themes/monochrome/16/configure.png differ diff --git a/companion/src/themes/monochrome/16/contributors.png b/companion/src/themes/monochrome/16/contributors.png new file mode 100644 index 000000000..ca7664737 Binary files /dev/null and b/companion/src/themes/monochrome/16/contributors.png differ diff --git a/companion/src/themes/monochrome/16/copy.png b/companion/src/themes/monochrome/16/copy.png new file mode 100644 index 000000000..ffb5ad2f9 Binary files /dev/null and b/companion/src/themes/monochrome/16/copy.png differ diff --git a/companion/src/themes/monochrome/16/currentmodel.png b/companion/src/themes/monochrome/16/currentmodel.png new file mode 100644 index 000000000..2f9d72888 Binary files /dev/null and b/companion/src/themes/monochrome/16/currentmodel.png differ diff --git a/companion/src/themes/monochrome/16/cut.png b/companion/src/themes/monochrome/16/cut.png new file mode 100644 index 000000000..b590d2f13 Binary files /dev/null and b/companion/src/themes/monochrome/16/cut.png differ diff --git a/companion/src/themes/monochrome/16/duplicate.png b/companion/src/themes/monochrome/16/duplicate.png new file mode 100644 index 000000000..e2f532dfb Binary files /dev/null and b/companion/src/themes/monochrome/16/duplicate.png differ diff --git a/companion/src/themes/monochrome/16/edit.png b/companion/src/themes/monochrome/16/edit.png new file mode 100644 index 000000000..f4786d4b0 Binary files /dev/null and b/companion/src/themes/monochrome/16/edit.png differ diff --git a/companion/src/themes/monochrome/16/exit.png b/companion/src/themes/monochrome/16/exit.png new file mode 100644 index 000000000..b2b3c569c Binary files /dev/null and b/companion/src/themes/monochrome/16/exit.png differ diff --git a/companion/src/themes/monochrome/16/fuses.png b/companion/src/themes/monochrome/16/fuses.png new file mode 100644 index 000000000..521de6d3a Binary files /dev/null and b/companion/src/themes/monochrome/16/fuses.png differ diff --git a/companion/src/themes/monochrome/16/information.png b/companion/src/themes/monochrome/16/information.png new file mode 100644 index 000000000..d7016086e Binary files /dev/null and b/companion/src/themes/monochrome/16/information.png differ diff --git a/companion/src/themes/monochrome/16/library.png b/companion/src/themes/monochrome/16/library.png new file mode 100644 index 000000000..62b811606 Binary files /dev/null and b/companion/src/themes/monochrome/16/library.png differ diff --git a/companion/src/themes/monochrome/16/list.png b/companion/src/themes/monochrome/16/list.png new file mode 100644 index 000000000..5e71cd167 Binary files /dev/null and b/companion/src/themes/monochrome/16/list.png differ diff --git a/companion/src/themes/monochrome/16/logs.png b/companion/src/themes/monochrome/16/logs.png new file mode 100644 index 000000000..0cc2864d4 Binary files /dev/null and b/companion/src/themes/monochrome/16/logs.png differ diff --git a/companion/src/themes/monochrome/16/movedown.png b/companion/src/themes/monochrome/16/movedown.png new file mode 100644 index 000000000..ed017edfb Binary files /dev/null and b/companion/src/themes/monochrome/16/movedown.png differ diff --git a/companion/src/themes/monochrome/16/moveup.png b/companion/src/themes/monochrome/16/moveup.png new file mode 100644 index 000000000..0430b1a8e Binary files /dev/null and b/companion/src/themes/monochrome/16/moveup.png differ diff --git a/companion/src/themes/monochrome/16/new.png b/companion/src/themes/monochrome/16/new.png new file mode 100644 index 000000000..34930ebba Binary files /dev/null and b/companion/src/themes/monochrome/16/new.png differ diff --git a/companion/src/themes/monochrome/16/open.png b/companion/src/themes/monochrome/16/open.png new file mode 100644 index 000000000..4ee6b1cbd Binary files /dev/null and b/companion/src/themes/monochrome/16/open.png differ diff --git a/companion/src/themes/monochrome/16/paintbrush.png b/companion/src/themes/monochrome/16/paintbrush.png new file mode 100644 index 000000000..4333818ef Binary files /dev/null and b/companion/src/themes/monochrome/16/paintbrush.png differ diff --git a/companion/src/themes/monochrome/16/paste.png b/companion/src/themes/monochrome/16/paste.png new file mode 100644 index 000000000..e5d50479d Binary files /dev/null and b/companion/src/themes/monochrome/16/paste.png differ diff --git a/companion/src/themes/monochrome/16/play.png b/companion/src/themes/monochrome/16/play.png new file mode 100644 index 000000000..d4720f2d8 Binary files /dev/null and b/companion/src/themes/monochrome/16/play.png differ diff --git a/companion/src/themes/monochrome/16/preferences.png b/companion/src/themes/monochrome/16/preferences.png new file mode 100644 index 000000000..7b6770309 Binary files /dev/null and b/companion/src/themes/monochrome/16/preferences.png differ diff --git a/companion/src/themes/monochrome/16/print.png b/companion/src/themes/monochrome/16/print.png new file mode 100644 index 000000000..39191c939 Binary files /dev/null and b/companion/src/themes/monochrome/16/print.png differ diff --git a/companion/src/themes/monochrome/16/profiles.png b/companion/src/themes/monochrome/16/profiles.png new file mode 100644 index 000000000..01b13e3c7 Binary files /dev/null and b/companion/src/themes/monochrome/16/profiles.png differ diff --git a/companion/src/themes/monochrome/16/read_eeprom.png b/companion/src/themes/monochrome/16/read_eeprom.png new file mode 100644 index 000000000..b58582958 Binary files /dev/null and b/companion/src/themes/monochrome/16/read_eeprom.png differ diff --git a/companion/src/themes/monochrome/16/read_eeprom_file.png b/companion/src/themes/monochrome/16/read_eeprom_file.png new file mode 100644 index 000000000..214e82c4d Binary files /dev/null and b/companion/src/themes/monochrome/16/read_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/16/read_flash.png b/companion/src/themes/monochrome/16/read_flash.png new file mode 100644 index 000000000..530c62174 Binary files /dev/null and b/companion/src/themes/monochrome/16/read_flash.png differ diff --git a/companion/src/themes/monochrome/16/recentdocument.png b/companion/src/themes/monochrome/16/recentdocument.png new file mode 100644 index 000000000..d3cf237f5 Binary files /dev/null and b/companion/src/themes/monochrome/16/recentdocument.png differ diff --git a/companion/src/themes/monochrome/16/save.png b/companion/src/themes/monochrome/16/save.png new file mode 100644 index 000000000..dbf6d8695 Binary files /dev/null and b/companion/src/themes/monochrome/16/save.png differ diff --git a/companion/src/themes/monochrome/16/saveas.png b/companion/src/themes/monochrome/16/saveas.png new file mode 100644 index 000000000..791c7be33 Binary files /dev/null and b/companion/src/themes/monochrome/16/saveas.png differ diff --git a/companion/src/themes/monochrome/16/simulate.png b/companion/src/themes/monochrome/16/simulate.png new file mode 100644 index 000000000..5ce854790 Binary files /dev/null and b/companion/src/themes/monochrome/16/simulate.png differ diff --git a/companion/src/themes/monochrome/16/stop.png b/companion/src/themes/monochrome/16/stop.png new file mode 100644 index 000000000..42610e416 Binary files /dev/null and b/companion/src/themes/monochrome/16/stop.png differ diff --git a/companion/src/themes/monochrome/16/update.png b/companion/src/themes/monochrome/16/update.png new file mode 100644 index 000000000..31b90cf36 Binary files /dev/null and b/companion/src/themes/monochrome/16/update.png differ diff --git a/companion/src/themes/monochrome/16/wizard.png b/companion/src/themes/monochrome/16/wizard.png new file mode 100644 index 000000000..d1301c613 Binary files /dev/null and b/companion/src/themes/monochrome/16/wizard.png differ diff --git a/companion/src/themes/monochrome/16/write_eeprom.png b/companion/src/themes/monochrome/16/write_eeprom.png new file mode 100644 index 000000000..6815c7668 Binary files /dev/null and b/companion/src/themes/monochrome/16/write_eeprom.png differ diff --git a/companion/src/themes/monochrome/16/write_eeprom_file.png b/companion/src/themes/monochrome/16/write_eeprom_file.png new file mode 100644 index 000000000..a7e7c36f8 Binary files /dev/null and b/companion/src/themes/monochrome/16/write_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/16/write_flash.png b/companion/src/themes/monochrome/16/write_flash.png new file mode 100644 index 000000000..81cdccdbc Binary files /dev/null and b/companion/src/themes/monochrome/16/write_flash.png differ diff --git a/companion/src/themes/monochrome/24/add.png b/companion/src/themes/monochrome/24/add.png new file mode 100644 index 000000000..99c48a4c0 Binary files /dev/null and b/companion/src/themes/monochrome/24/add.png differ diff --git a/companion/src/themes/monochrome/24/arrow-left.png b/companion/src/themes/monochrome/24/arrow-left.png new file mode 100644 index 000000000..3e93c4017 Binary files /dev/null and b/companion/src/themes/monochrome/24/arrow-left.png differ diff --git a/companion/src/themes/monochrome/24/arrow-right.png b/companion/src/themes/monochrome/24/arrow-right.png new file mode 100644 index 000000000..be45fe369 Binary files /dev/null and b/companion/src/themes/monochrome/24/arrow-right.png differ diff --git a/companion/src/themes/monochrome/24/changelog.png b/companion/src/themes/monochrome/24/changelog.png new file mode 100644 index 000000000..2956077f3 Binary files /dev/null and b/companion/src/themes/monochrome/24/changelog.png differ diff --git a/companion/src/themes/monochrome/24/clear.png b/companion/src/themes/monochrome/24/clear.png new file mode 100644 index 000000000..e8eac19c2 Binary files /dev/null and b/companion/src/themes/monochrome/24/clear.png differ diff --git a/companion/src/themes/monochrome/24/compare.png b/companion/src/themes/monochrome/24/compare.png new file mode 100644 index 000000000..b2e3aedf7 Binary files /dev/null and b/companion/src/themes/monochrome/24/compare.png differ diff --git a/companion/src/themes/monochrome/24/configure.png b/companion/src/themes/monochrome/24/configure.png new file mode 100644 index 000000000..74b5af4bc Binary files /dev/null and b/companion/src/themes/monochrome/24/configure.png differ diff --git a/companion/src/themes/monochrome/24/contributors.png b/companion/src/themes/monochrome/24/contributors.png new file mode 100644 index 000000000..39a67f9f2 Binary files /dev/null and b/companion/src/themes/monochrome/24/contributors.png differ diff --git a/companion/src/themes/monochrome/24/copy.png b/companion/src/themes/monochrome/24/copy.png new file mode 100644 index 000000000..d430d14d2 Binary files /dev/null and b/companion/src/themes/monochrome/24/copy.png differ diff --git a/companion/src/themes/monochrome/24/currentmodel.png b/companion/src/themes/monochrome/24/currentmodel.png new file mode 100644 index 000000000..4bb610c08 Binary files /dev/null and b/companion/src/themes/monochrome/24/currentmodel.png differ diff --git a/companion/src/themes/monochrome/24/cut.png b/companion/src/themes/monochrome/24/cut.png new file mode 100644 index 000000000..3bae751c0 Binary files /dev/null and b/companion/src/themes/monochrome/24/cut.png differ diff --git a/companion/src/themes/monochrome/24/duplicate.png b/companion/src/themes/monochrome/24/duplicate.png new file mode 100644 index 000000000..d2bdebf91 Binary files /dev/null and b/companion/src/themes/monochrome/24/duplicate.png differ diff --git a/companion/src/themes/monochrome/24/edit.png b/companion/src/themes/monochrome/24/edit.png new file mode 100644 index 000000000..51eb06643 Binary files /dev/null and b/companion/src/themes/monochrome/24/edit.png differ diff --git a/companion/src/themes/monochrome/24/exit.png b/companion/src/themes/monochrome/24/exit.png new file mode 100644 index 000000000..c59387463 Binary files /dev/null and b/companion/src/themes/monochrome/24/exit.png differ diff --git a/companion/src/themes/monochrome/24/fuses.png b/companion/src/themes/monochrome/24/fuses.png new file mode 100644 index 000000000..c73efbb28 Binary files /dev/null and b/companion/src/themes/monochrome/24/fuses.png differ diff --git a/companion/src/themes/monochrome/24/information.png b/companion/src/themes/monochrome/24/information.png new file mode 100644 index 000000000..fe114efee Binary files /dev/null and b/companion/src/themes/monochrome/24/information.png differ diff --git a/companion/src/themes/monochrome/24/library.png b/companion/src/themes/monochrome/24/library.png new file mode 100644 index 000000000..d4713ac0c Binary files /dev/null and b/companion/src/themes/monochrome/24/library.png differ diff --git a/companion/src/themes/monochrome/24/list.png b/companion/src/themes/monochrome/24/list.png new file mode 100644 index 000000000..cb8b7d88d Binary files /dev/null and b/companion/src/themes/monochrome/24/list.png differ diff --git a/companion/src/themes/monochrome/24/logs.png b/companion/src/themes/monochrome/24/logs.png new file mode 100644 index 000000000..f57bb38fb Binary files /dev/null and b/companion/src/themes/monochrome/24/logs.png differ diff --git a/companion/src/themes/monochrome/24/movedown.png b/companion/src/themes/monochrome/24/movedown.png new file mode 100644 index 000000000..1f8c99746 Binary files /dev/null and b/companion/src/themes/monochrome/24/movedown.png differ diff --git a/companion/src/themes/monochrome/24/moveup.png b/companion/src/themes/monochrome/24/moveup.png new file mode 100644 index 000000000..828dc5de2 Binary files /dev/null and b/companion/src/themes/monochrome/24/moveup.png differ diff --git a/companion/src/themes/monochrome/24/new.png b/companion/src/themes/monochrome/24/new.png new file mode 100644 index 000000000..b5ffec497 Binary files /dev/null and b/companion/src/themes/monochrome/24/new.png differ diff --git a/companion/src/themes/monochrome/24/open.png b/companion/src/themes/monochrome/24/open.png new file mode 100644 index 000000000..28b83b508 Binary files /dev/null and b/companion/src/themes/monochrome/24/open.png differ diff --git a/companion/src/themes/monochrome/24/paintbrush.png b/companion/src/themes/monochrome/24/paintbrush.png new file mode 100644 index 000000000..98ae20c4a Binary files /dev/null and b/companion/src/themes/monochrome/24/paintbrush.png differ diff --git a/companion/src/themes/monochrome/24/paste.png b/companion/src/themes/monochrome/24/paste.png new file mode 100644 index 000000000..029692c5e Binary files /dev/null and b/companion/src/themes/monochrome/24/paste.png differ diff --git a/companion/src/themes/monochrome/24/play.png b/companion/src/themes/monochrome/24/play.png new file mode 100644 index 000000000..7e1b547d9 Binary files /dev/null and b/companion/src/themes/monochrome/24/play.png differ diff --git a/companion/src/themes/monochrome/24/preferences.png b/companion/src/themes/monochrome/24/preferences.png new file mode 100644 index 000000000..b5d585d1e Binary files /dev/null and b/companion/src/themes/monochrome/24/preferences.png differ diff --git a/companion/src/themes/monochrome/24/print.png b/companion/src/themes/monochrome/24/print.png new file mode 100644 index 000000000..7bc7237e9 Binary files /dev/null and b/companion/src/themes/monochrome/24/print.png differ diff --git a/companion/src/themes/monochrome/24/profiles.png b/companion/src/themes/monochrome/24/profiles.png new file mode 100644 index 000000000..1de64f42a Binary files /dev/null and b/companion/src/themes/monochrome/24/profiles.png differ diff --git a/companion/src/themes/monochrome/24/read_eeprom.png b/companion/src/themes/monochrome/24/read_eeprom.png new file mode 100644 index 000000000..c178e259b Binary files /dev/null and b/companion/src/themes/monochrome/24/read_eeprom.png differ diff --git a/companion/src/themes/monochrome/24/read_eeprom_file.png b/companion/src/themes/monochrome/24/read_eeprom_file.png new file mode 100644 index 000000000..b2e76b0d1 Binary files /dev/null and b/companion/src/themes/monochrome/24/read_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/24/read_flash.png b/companion/src/themes/monochrome/24/read_flash.png new file mode 100644 index 000000000..2f57c0438 Binary files /dev/null and b/companion/src/themes/monochrome/24/read_flash.png differ diff --git a/companion/src/themes/monochrome/24/recentdocument.png b/companion/src/themes/monochrome/24/recentdocument.png new file mode 100644 index 000000000..e1fa23d42 Binary files /dev/null and b/companion/src/themes/monochrome/24/recentdocument.png differ diff --git a/companion/src/themes/monochrome/24/save.png b/companion/src/themes/monochrome/24/save.png new file mode 100644 index 000000000..25c779bf5 Binary files /dev/null and b/companion/src/themes/monochrome/24/save.png differ diff --git a/companion/src/themes/monochrome/24/saveas.png b/companion/src/themes/monochrome/24/saveas.png new file mode 100644 index 000000000..f18ad7783 Binary files /dev/null and b/companion/src/themes/monochrome/24/saveas.png differ diff --git a/companion/src/themes/monochrome/24/simulate.png b/companion/src/themes/monochrome/24/simulate.png new file mode 100644 index 000000000..b344c419a Binary files /dev/null and b/companion/src/themes/monochrome/24/simulate.png differ diff --git a/companion/src/themes/monochrome/24/stop.png b/companion/src/themes/monochrome/24/stop.png new file mode 100644 index 000000000..00f4ab1c1 Binary files /dev/null and b/companion/src/themes/monochrome/24/stop.png differ diff --git a/companion/src/themes/monochrome/24/update.png b/companion/src/themes/monochrome/24/update.png new file mode 100644 index 000000000..9ed1124cc Binary files /dev/null and b/companion/src/themes/monochrome/24/update.png differ diff --git a/companion/src/themes/monochrome/24/wizard.png b/companion/src/themes/monochrome/24/wizard.png new file mode 100644 index 000000000..6185d56c5 Binary files /dev/null and b/companion/src/themes/monochrome/24/wizard.png differ diff --git a/companion/src/themes/monochrome/24/write_eeprom.png b/companion/src/themes/monochrome/24/write_eeprom.png new file mode 100644 index 000000000..60e7f0ea5 Binary files /dev/null and b/companion/src/themes/monochrome/24/write_eeprom.png differ diff --git a/companion/src/themes/monochrome/24/write_eeprom_file.png b/companion/src/themes/monochrome/24/write_eeprom_file.png new file mode 100644 index 000000000..11b4444c5 Binary files /dev/null and b/companion/src/themes/monochrome/24/write_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/24/write_flash.png b/companion/src/themes/monochrome/24/write_flash.png new file mode 100644 index 000000000..dc7242a10 Binary files /dev/null and b/companion/src/themes/monochrome/24/write_flash.png differ diff --git a/companion/src/themes/monochrome/32/add.png b/companion/src/themes/monochrome/32/add.png new file mode 100644 index 000000000..17697d5eb Binary files /dev/null and b/companion/src/themes/monochrome/32/add.png differ diff --git a/companion/src/themes/monochrome/32/arrow-left.png b/companion/src/themes/monochrome/32/arrow-left.png new file mode 100644 index 000000000..9fb8a885d Binary files /dev/null and b/companion/src/themes/monochrome/32/arrow-left.png differ diff --git a/companion/src/themes/monochrome/32/arrow-right.png b/companion/src/themes/monochrome/32/arrow-right.png new file mode 100644 index 000000000..ba8e1440d Binary files /dev/null and b/companion/src/themes/monochrome/32/arrow-right.png differ diff --git a/companion/src/themes/monochrome/32/changelog.png b/companion/src/themes/monochrome/32/changelog.png new file mode 100644 index 000000000..2e97b00a0 Binary files /dev/null and b/companion/src/themes/monochrome/32/changelog.png differ diff --git a/companion/src/themes/monochrome/32/clear.png b/companion/src/themes/monochrome/32/clear.png new file mode 100644 index 000000000..345e70b62 Binary files /dev/null and b/companion/src/themes/monochrome/32/clear.png differ diff --git a/companion/src/themes/monochrome/32/compare.png b/companion/src/themes/monochrome/32/compare.png new file mode 100644 index 000000000..34e437850 Binary files /dev/null and b/companion/src/themes/monochrome/32/compare.png differ diff --git a/companion/src/themes/monochrome/32/configure.png b/companion/src/themes/monochrome/32/configure.png new file mode 100644 index 000000000..8be5e988f Binary files /dev/null and b/companion/src/themes/monochrome/32/configure.png differ diff --git a/companion/src/themes/monochrome/32/contributors.png b/companion/src/themes/monochrome/32/contributors.png new file mode 100644 index 000000000..a51bc3c56 Binary files /dev/null and b/companion/src/themes/monochrome/32/contributors.png differ diff --git a/companion/src/themes/monochrome/32/copy.png b/companion/src/themes/monochrome/32/copy.png new file mode 100644 index 000000000..aae5f5302 Binary files /dev/null and b/companion/src/themes/monochrome/32/copy.png differ diff --git a/companion/src/themes/monochrome/32/currentmodel.png b/companion/src/themes/monochrome/32/currentmodel.png new file mode 100644 index 000000000..816752faf Binary files /dev/null and b/companion/src/themes/monochrome/32/currentmodel.png differ diff --git a/companion/src/themes/monochrome/32/cut.png b/companion/src/themes/monochrome/32/cut.png new file mode 100644 index 000000000..efbb2cd5d Binary files /dev/null and b/companion/src/themes/monochrome/32/cut.png differ diff --git a/companion/src/themes/monochrome/32/duplicate.png b/companion/src/themes/monochrome/32/duplicate.png new file mode 100644 index 000000000..43041429c Binary files /dev/null and b/companion/src/themes/monochrome/32/duplicate.png differ diff --git a/companion/src/themes/monochrome/32/edit.png b/companion/src/themes/monochrome/32/edit.png new file mode 100644 index 000000000..cebabbd9f Binary files /dev/null and b/companion/src/themes/monochrome/32/edit.png differ diff --git a/companion/src/themes/monochrome/32/exit.png b/companion/src/themes/monochrome/32/exit.png new file mode 100644 index 000000000..8de0aade5 Binary files /dev/null and b/companion/src/themes/monochrome/32/exit.png differ diff --git a/companion/src/themes/monochrome/32/fuses.png b/companion/src/themes/monochrome/32/fuses.png new file mode 100644 index 000000000..fee85de8b Binary files /dev/null and b/companion/src/themes/monochrome/32/fuses.png differ diff --git a/companion/src/themes/monochrome/32/information.png b/companion/src/themes/monochrome/32/information.png new file mode 100644 index 000000000..2e9c398f6 Binary files /dev/null and b/companion/src/themes/monochrome/32/information.png differ diff --git a/companion/src/themes/monochrome/32/library.png b/companion/src/themes/monochrome/32/library.png new file mode 100644 index 000000000..a3d112626 Binary files /dev/null and b/companion/src/themes/monochrome/32/library.png differ diff --git a/companion/src/themes/monochrome/32/list.png b/companion/src/themes/monochrome/32/list.png new file mode 100644 index 000000000..f94bafb12 Binary files /dev/null and b/companion/src/themes/monochrome/32/list.png differ diff --git a/companion/src/themes/monochrome/32/logs.png b/companion/src/themes/monochrome/32/logs.png new file mode 100644 index 000000000..f8f96b505 Binary files /dev/null and b/companion/src/themes/monochrome/32/logs.png differ diff --git a/companion/src/themes/monochrome/32/movedown.png b/companion/src/themes/monochrome/32/movedown.png new file mode 100644 index 000000000..0097679e1 Binary files /dev/null and b/companion/src/themes/monochrome/32/movedown.png differ diff --git a/companion/src/themes/monochrome/32/moveup.png b/companion/src/themes/monochrome/32/moveup.png new file mode 100644 index 000000000..ba68dcaa5 Binary files /dev/null and b/companion/src/themes/monochrome/32/moveup.png differ diff --git a/companion/src/themes/monochrome/32/new.png b/companion/src/themes/monochrome/32/new.png new file mode 100644 index 000000000..e9531c78a Binary files /dev/null and b/companion/src/themes/monochrome/32/new.png differ diff --git a/companion/src/themes/monochrome/32/open.png b/companion/src/themes/monochrome/32/open.png new file mode 100644 index 000000000..6f437856c Binary files /dev/null and b/companion/src/themes/monochrome/32/open.png differ diff --git a/companion/src/themes/monochrome/32/paintbrush.png b/companion/src/themes/monochrome/32/paintbrush.png new file mode 100644 index 000000000..34e25a170 Binary files /dev/null and b/companion/src/themes/monochrome/32/paintbrush.png differ diff --git a/companion/src/themes/monochrome/32/paste.png b/companion/src/themes/monochrome/32/paste.png new file mode 100644 index 000000000..33948a231 Binary files /dev/null and b/companion/src/themes/monochrome/32/paste.png differ diff --git a/companion/src/themes/monochrome/32/play.png b/companion/src/themes/monochrome/32/play.png new file mode 100644 index 000000000..d47a3040e Binary files /dev/null and b/companion/src/themes/monochrome/32/play.png differ diff --git a/companion/src/themes/monochrome/32/preferences.png b/companion/src/themes/monochrome/32/preferences.png new file mode 100644 index 000000000..d2ba00eaa Binary files /dev/null and b/companion/src/themes/monochrome/32/preferences.png differ diff --git a/companion/src/themes/monochrome/32/print.png b/companion/src/themes/monochrome/32/print.png new file mode 100644 index 000000000..1495a1eac Binary files /dev/null and b/companion/src/themes/monochrome/32/print.png differ diff --git a/companion/src/themes/monochrome/32/profiles.png b/companion/src/themes/monochrome/32/profiles.png new file mode 100644 index 000000000..0d5c86a47 Binary files /dev/null and b/companion/src/themes/monochrome/32/profiles.png differ diff --git a/companion/src/themes/monochrome/32/read_eeprom.png b/companion/src/themes/monochrome/32/read_eeprom.png new file mode 100644 index 000000000..46a4dfd50 Binary files /dev/null and b/companion/src/themes/monochrome/32/read_eeprom.png differ diff --git a/companion/src/themes/monochrome/32/read_eeprom_file.png b/companion/src/themes/monochrome/32/read_eeprom_file.png new file mode 100644 index 000000000..fd6479993 Binary files /dev/null and b/companion/src/themes/monochrome/32/read_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/32/read_flash.png b/companion/src/themes/monochrome/32/read_flash.png new file mode 100644 index 000000000..546400894 Binary files /dev/null and b/companion/src/themes/monochrome/32/read_flash.png differ diff --git a/companion/src/themes/monochrome/32/recentdocument.png b/companion/src/themes/monochrome/32/recentdocument.png new file mode 100644 index 000000000..1dfbadb5d Binary files /dev/null and b/companion/src/themes/monochrome/32/recentdocument.png differ diff --git a/companion/src/themes/monochrome/32/save.png b/companion/src/themes/monochrome/32/save.png new file mode 100644 index 000000000..6466d6528 Binary files /dev/null and b/companion/src/themes/monochrome/32/save.png differ diff --git a/companion/src/themes/monochrome/32/saveas.png b/companion/src/themes/monochrome/32/saveas.png new file mode 100644 index 000000000..9cc2a72ef Binary files /dev/null and b/companion/src/themes/monochrome/32/saveas.png differ diff --git a/companion/src/themes/monochrome/32/simulate.png b/companion/src/themes/monochrome/32/simulate.png new file mode 100644 index 000000000..a7020777f Binary files /dev/null and b/companion/src/themes/monochrome/32/simulate.png differ diff --git a/companion/src/themes/monochrome/32/stop.png b/companion/src/themes/monochrome/32/stop.png new file mode 100644 index 000000000..a0338d139 Binary files /dev/null and b/companion/src/themes/monochrome/32/stop.png differ diff --git a/companion/src/themes/monochrome/32/update.png b/companion/src/themes/monochrome/32/update.png new file mode 100644 index 000000000..be4c746b0 Binary files /dev/null and b/companion/src/themes/monochrome/32/update.png differ diff --git a/companion/src/themes/monochrome/32/wizard.png b/companion/src/themes/monochrome/32/wizard.png new file mode 100644 index 000000000..edd01da61 Binary files /dev/null and b/companion/src/themes/monochrome/32/wizard.png differ diff --git a/companion/src/themes/monochrome/32/write_eeprom.png b/companion/src/themes/monochrome/32/write_eeprom.png new file mode 100644 index 000000000..deeec3b48 Binary files /dev/null and b/companion/src/themes/monochrome/32/write_eeprom.png differ diff --git a/companion/src/themes/monochrome/32/write_eeprom_file.png b/companion/src/themes/monochrome/32/write_eeprom_file.png new file mode 100644 index 000000000..925fecf47 Binary files /dev/null and b/companion/src/themes/monochrome/32/write_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/32/write_flash.png b/companion/src/themes/monochrome/32/write_flash.png new file mode 100644 index 000000000..e5943a509 Binary files /dev/null and b/companion/src/themes/monochrome/32/write_flash.png differ diff --git a/companion/src/themes/monochrome/48/add.png b/companion/src/themes/monochrome/48/add.png new file mode 100644 index 000000000..023cdc45d Binary files /dev/null and b/companion/src/themes/monochrome/48/add.png differ diff --git a/companion/src/themes/monochrome/48/arrow-left.png b/companion/src/themes/monochrome/48/arrow-left.png new file mode 100644 index 000000000..c48e48c8e Binary files /dev/null and b/companion/src/themes/monochrome/48/arrow-left.png differ diff --git a/companion/src/themes/monochrome/48/arrow-right.png b/companion/src/themes/monochrome/48/arrow-right.png new file mode 100644 index 000000000..5264359aa Binary files /dev/null and b/companion/src/themes/monochrome/48/arrow-right.png differ diff --git a/companion/src/themes/monochrome/48/changelog.png b/companion/src/themes/monochrome/48/changelog.png new file mode 100644 index 000000000..28d60390d Binary files /dev/null and b/companion/src/themes/monochrome/48/changelog.png differ diff --git a/companion/src/themes/monochrome/48/clear.png b/companion/src/themes/monochrome/48/clear.png new file mode 100644 index 000000000..881bd0353 Binary files /dev/null and b/companion/src/themes/monochrome/48/clear.png differ diff --git a/companion/src/themes/monochrome/48/compare.png b/companion/src/themes/monochrome/48/compare.png new file mode 100644 index 000000000..993f6cf3f Binary files /dev/null and b/companion/src/themes/monochrome/48/compare.png differ diff --git a/companion/src/themes/monochrome/48/configure.png b/companion/src/themes/monochrome/48/configure.png new file mode 100644 index 000000000..fc799d600 Binary files /dev/null and b/companion/src/themes/monochrome/48/configure.png differ diff --git a/companion/src/themes/monochrome/48/contributors.png b/companion/src/themes/monochrome/48/contributors.png new file mode 100644 index 000000000..5c14d9e6b Binary files /dev/null and b/companion/src/themes/monochrome/48/contributors.png differ diff --git a/companion/src/themes/monochrome/48/copy.png b/companion/src/themes/monochrome/48/copy.png new file mode 100644 index 000000000..71cd70edc Binary files /dev/null and b/companion/src/themes/monochrome/48/copy.png differ diff --git a/companion/src/themes/monochrome/48/currentmodel.png b/companion/src/themes/monochrome/48/currentmodel.png new file mode 100644 index 000000000..d316a2b7b Binary files /dev/null and b/companion/src/themes/monochrome/48/currentmodel.png differ diff --git a/companion/src/themes/monochrome/48/cut.png b/companion/src/themes/monochrome/48/cut.png new file mode 100644 index 000000000..765a1b82c Binary files /dev/null and b/companion/src/themes/monochrome/48/cut.png differ diff --git a/companion/src/themes/monochrome/48/duplicate.png b/companion/src/themes/monochrome/48/duplicate.png new file mode 100644 index 000000000..0fa780134 Binary files /dev/null and b/companion/src/themes/monochrome/48/duplicate.png differ diff --git a/companion/src/themes/monochrome/48/edit.png b/companion/src/themes/monochrome/48/edit.png new file mode 100644 index 000000000..41975a687 Binary files /dev/null and b/companion/src/themes/monochrome/48/edit.png differ diff --git a/companion/src/themes/monochrome/48/exit.png b/companion/src/themes/monochrome/48/exit.png new file mode 100644 index 000000000..45707ae3e Binary files /dev/null and b/companion/src/themes/monochrome/48/exit.png differ diff --git a/companion/src/themes/monochrome/48/fuses.png b/companion/src/themes/monochrome/48/fuses.png new file mode 100644 index 000000000..b239abd99 Binary files /dev/null and b/companion/src/themes/monochrome/48/fuses.png differ diff --git a/companion/src/themes/monochrome/48/information.png b/companion/src/themes/monochrome/48/information.png new file mode 100644 index 000000000..4c4bea488 Binary files /dev/null and b/companion/src/themes/monochrome/48/information.png differ diff --git a/companion/src/themes/monochrome/48/library.png b/companion/src/themes/monochrome/48/library.png new file mode 100644 index 000000000..9a8e06146 Binary files /dev/null and b/companion/src/themes/monochrome/48/library.png differ diff --git a/companion/src/themes/monochrome/48/list.png b/companion/src/themes/monochrome/48/list.png new file mode 100644 index 000000000..7c0f3b575 Binary files /dev/null and b/companion/src/themes/monochrome/48/list.png differ diff --git a/companion/src/themes/monochrome/48/logs.png b/companion/src/themes/monochrome/48/logs.png new file mode 100644 index 000000000..0817b2f88 Binary files /dev/null and b/companion/src/themes/monochrome/48/logs.png differ diff --git a/companion/src/themes/monochrome/48/movedown.png b/companion/src/themes/monochrome/48/movedown.png new file mode 100644 index 000000000..9200c09c9 Binary files /dev/null and b/companion/src/themes/monochrome/48/movedown.png differ diff --git a/companion/src/themes/monochrome/48/moveup.png b/companion/src/themes/monochrome/48/moveup.png new file mode 100644 index 000000000..eff5c6e8b Binary files /dev/null and b/companion/src/themes/monochrome/48/moveup.png differ diff --git a/companion/src/themes/monochrome/48/new.png b/companion/src/themes/monochrome/48/new.png new file mode 100644 index 000000000..b4a0993ef Binary files /dev/null and b/companion/src/themes/monochrome/48/new.png differ diff --git a/companion/src/themes/monochrome/48/open.png b/companion/src/themes/monochrome/48/open.png new file mode 100644 index 000000000..5a151c74d Binary files /dev/null and b/companion/src/themes/monochrome/48/open.png differ diff --git a/companion/src/themes/monochrome/48/paintbrush.png b/companion/src/themes/monochrome/48/paintbrush.png new file mode 100644 index 000000000..cc15507e6 Binary files /dev/null and b/companion/src/themes/monochrome/48/paintbrush.png differ diff --git a/companion/src/themes/monochrome/48/paste.png b/companion/src/themes/monochrome/48/paste.png new file mode 100644 index 000000000..377ace021 Binary files /dev/null and b/companion/src/themes/monochrome/48/paste.png differ diff --git a/companion/src/themes/monochrome/48/play.png b/companion/src/themes/monochrome/48/play.png new file mode 100644 index 000000000..740f36842 Binary files /dev/null and b/companion/src/themes/monochrome/48/play.png differ diff --git a/companion/src/themes/monochrome/48/preferences.png b/companion/src/themes/monochrome/48/preferences.png new file mode 100644 index 000000000..8f1199953 Binary files /dev/null and b/companion/src/themes/monochrome/48/preferences.png differ diff --git a/companion/src/themes/monochrome/48/print.png b/companion/src/themes/monochrome/48/print.png new file mode 100644 index 000000000..c830db3ea Binary files /dev/null and b/companion/src/themes/monochrome/48/print.png differ diff --git a/companion/src/themes/monochrome/48/profiles.png b/companion/src/themes/monochrome/48/profiles.png new file mode 100644 index 000000000..0489ffaa6 Binary files /dev/null and b/companion/src/themes/monochrome/48/profiles.png differ diff --git a/companion/src/themes/monochrome/48/read_eeprom.png b/companion/src/themes/monochrome/48/read_eeprom.png new file mode 100644 index 000000000..c5d3a1167 Binary files /dev/null and b/companion/src/themes/monochrome/48/read_eeprom.png differ diff --git a/companion/src/themes/monochrome/48/read_eeprom_file.png b/companion/src/themes/monochrome/48/read_eeprom_file.png new file mode 100644 index 000000000..48396fbfe Binary files /dev/null and b/companion/src/themes/monochrome/48/read_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/48/read_flash.png b/companion/src/themes/monochrome/48/read_flash.png new file mode 100644 index 000000000..356a6f9ad Binary files /dev/null and b/companion/src/themes/monochrome/48/read_flash.png differ diff --git a/companion/src/themes/monochrome/48/recentdocument.png b/companion/src/themes/monochrome/48/recentdocument.png new file mode 100644 index 000000000..aed0796fe Binary files /dev/null and b/companion/src/themes/monochrome/48/recentdocument.png differ diff --git a/companion/src/themes/monochrome/48/save.png b/companion/src/themes/monochrome/48/save.png new file mode 100644 index 000000000..0b9663106 Binary files /dev/null and b/companion/src/themes/monochrome/48/save.png differ diff --git a/companion/src/themes/monochrome/48/saveas.png b/companion/src/themes/monochrome/48/saveas.png new file mode 100644 index 000000000..496e95e6c Binary files /dev/null and b/companion/src/themes/monochrome/48/saveas.png differ diff --git a/companion/src/themes/monochrome/48/simulate.png b/companion/src/themes/monochrome/48/simulate.png new file mode 100644 index 000000000..7c05d5604 Binary files /dev/null and b/companion/src/themes/monochrome/48/simulate.png differ diff --git a/companion/src/themes/monochrome/48/stop.png b/companion/src/themes/monochrome/48/stop.png new file mode 100644 index 000000000..c513babaa Binary files /dev/null and b/companion/src/themes/monochrome/48/stop.png differ diff --git a/companion/src/themes/monochrome/48/update.png b/companion/src/themes/monochrome/48/update.png new file mode 100644 index 000000000..6128f49d7 Binary files /dev/null and b/companion/src/themes/monochrome/48/update.png differ diff --git a/companion/src/themes/monochrome/48/wizard.png b/companion/src/themes/monochrome/48/wizard.png new file mode 100644 index 000000000..4d1a67729 Binary files /dev/null and b/companion/src/themes/monochrome/48/wizard.png differ diff --git a/companion/src/themes/monochrome/48/write_eeprom.png b/companion/src/themes/monochrome/48/write_eeprom.png new file mode 100644 index 000000000..0318d748a Binary files /dev/null and b/companion/src/themes/monochrome/48/write_eeprom.png differ diff --git a/companion/src/themes/monochrome/48/write_eeprom_file.png b/companion/src/themes/monochrome/48/write_eeprom_file.png new file mode 100644 index 000000000..2d9d43eaa Binary files /dev/null and b/companion/src/themes/monochrome/48/write_eeprom_file.png differ diff --git a/companion/src/themes/monochrome/48/write_flash.png b/companion/src/themes/monochrome/48/write_flash.png new file mode 100644 index 000000000..d20eb763a Binary files /dev/null and b/companion/src/themes/monochrome/48/write_flash.png differ diff --git a/companion/src/themes/monowhite/16/add.png b/companion/src/themes/monowhite/16/add.png new file mode 100644 index 000000000..e2cb16737 Binary files /dev/null and b/companion/src/themes/monowhite/16/add.png differ diff --git a/companion/src/themes/monowhite/16/arrow-left.png b/companion/src/themes/monowhite/16/arrow-left.png new file mode 100644 index 000000000..df382a723 Binary files /dev/null and b/companion/src/themes/monowhite/16/arrow-left.png differ diff --git a/companion/src/themes/monowhite/16/arrow-right.png b/companion/src/themes/monowhite/16/arrow-right.png new file mode 100644 index 000000000..c2cf8ab8b Binary files /dev/null and b/companion/src/themes/monowhite/16/arrow-right.png differ diff --git a/companion/src/themes/monowhite/16/changelog.png b/companion/src/themes/monowhite/16/changelog.png new file mode 100644 index 000000000..e1eba6ff6 Binary files /dev/null and b/companion/src/themes/monowhite/16/changelog.png differ diff --git a/companion/src/themes/monowhite/16/clear.png b/companion/src/themes/monowhite/16/clear.png new file mode 100644 index 000000000..3d142f8af Binary files /dev/null and b/companion/src/themes/monowhite/16/clear.png differ diff --git a/companion/src/themes/monowhite/16/compare.png b/companion/src/themes/monowhite/16/compare.png new file mode 100644 index 000000000..553ddaa10 Binary files /dev/null and b/companion/src/themes/monowhite/16/compare.png differ diff --git a/companion/src/themes/monowhite/16/configure.png b/companion/src/themes/monowhite/16/configure.png new file mode 100644 index 000000000..6a3295aab Binary files /dev/null and b/companion/src/themes/monowhite/16/configure.png differ diff --git a/companion/src/themes/monowhite/16/contributors.png b/companion/src/themes/monowhite/16/contributors.png new file mode 100644 index 000000000..ca7664737 Binary files /dev/null and b/companion/src/themes/monowhite/16/contributors.png differ diff --git a/companion/src/themes/monowhite/16/copy.png b/companion/src/themes/monowhite/16/copy.png new file mode 100644 index 000000000..ffb5ad2f9 Binary files /dev/null and b/companion/src/themes/monowhite/16/copy.png differ diff --git a/companion/src/themes/monowhite/16/currentmodel.png b/companion/src/themes/monowhite/16/currentmodel.png new file mode 100644 index 000000000..2f9d72888 Binary files /dev/null and b/companion/src/themes/monowhite/16/currentmodel.png differ diff --git a/companion/src/themes/monowhite/16/cut.png b/companion/src/themes/monowhite/16/cut.png new file mode 100644 index 000000000..b590d2f13 Binary files /dev/null and b/companion/src/themes/monowhite/16/cut.png differ diff --git a/companion/src/themes/monowhite/16/duplicate.png b/companion/src/themes/monowhite/16/duplicate.png new file mode 100644 index 000000000..e2f532dfb Binary files /dev/null and b/companion/src/themes/monowhite/16/duplicate.png differ diff --git a/companion/src/themes/monowhite/16/edit.png b/companion/src/themes/monowhite/16/edit.png new file mode 100644 index 000000000..f4786d4b0 Binary files /dev/null and b/companion/src/themes/monowhite/16/edit.png differ diff --git a/companion/src/themes/monowhite/16/exit.png b/companion/src/themes/monowhite/16/exit.png new file mode 100644 index 000000000..b2b3c569c Binary files /dev/null and b/companion/src/themes/monowhite/16/exit.png differ diff --git a/companion/src/themes/monowhite/16/fuses.png b/companion/src/themes/monowhite/16/fuses.png new file mode 100644 index 000000000..521de6d3a Binary files /dev/null and b/companion/src/themes/monowhite/16/fuses.png differ diff --git a/companion/src/themes/monowhite/16/information.png b/companion/src/themes/monowhite/16/information.png new file mode 100644 index 000000000..d7016086e Binary files /dev/null and b/companion/src/themes/monowhite/16/information.png differ diff --git a/companion/src/themes/monowhite/16/library.png b/companion/src/themes/monowhite/16/library.png new file mode 100644 index 000000000..62b811606 Binary files /dev/null and b/companion/src/themes/monowhite/16/library.png differ diff --git a/companion/src/themes/monowhite/16/list.png b/companion/src/themes/monowhite/16/list.png new file mode 100644 index 000000000..5e71cd167 Binary files /dev/null and b/companion/src/themes/monowhite/16/list.png differ diff --git a/companion/src/themes/monowhite/16/logs.png b/companion/src/themes/monowhite/16/logs.png new file mode 100644 index 000000000..0cc2864d4 Binary files /dev/null and b/companion/src/themes/monowhite/16/logs.png differ diff --git a/companion/src/themes/monowhite/16/movedown.png b/companion/src/themes/monowhite/16/movedown.png new file mode 100644 index 000000000..ed017edfb Binary files /dev/null and b/companion/src/themes/monowhite/16/movedown.png differ diff --git a/companion/src/themes/monowhite/16/moveup.png b/companion/src/themes/monowhite/16/moveup.png new file mode 100644 index 000000000..0430b1a8e Binary files /dev/null and b/companion/src/themes/monowhite/16/moveup.png differ diff --git a/companion/src/themes/monowhite/16/new.png b/companion/src/themes/monowhite/16/new.png new file mode 100644 index 000000000..34930ebba Binary files /dev/null and b/companion/src/themes/monowhite/16/new.png differ diff --git a/companion/src/themes/monowhite/16/open.png b/companion/src/themes/monowhite/16/open.png new file mode 100644 index 000000000..4ee6b1cbd Binary files /dev/null and b/companion/src/themes/monowhite/16/open.png differ diff --git a/companion/src/themes/monowhite/16/paintbrush.png b/companion/src/themes/monowhite/16/paintbrush.png new file mode 100644 index 000000000..4333818ef Binary files /dev/null and b/companion/src/themes/monowhite/16/paintbrush.png differ diff --git a/companion/src/themes/monowhite/16/paste.png b/companion/src/themes/monowhite/16/paste.png new file mode 100644 index 000000000..e5d50479d Binary files /dev/null and b/companion/src/themes/monowhite/16/paste.png differ diff --git a/companion/src/themes/monowhite/16/play.png b/companion/src/themes/monowhite/16/play.png new file mode 100644 index 000000000..d4720f2d8 Binary files /dev/null and b/companion/src/themes/monowhite/16/play.png differ diff --git a/companion/src/themes/monowhite/16/preferences.png b/companion/src/themes/monowhite/16/preferences.png new file mode 100644 index 000000000..7b6770309 Binary files /dev/null and b/companion/src/themes/monowhite/16/preferences.png differ diff --git a/companion/src/themes/monowhite/16/print.png b/companion/src/themes/monowhite/16/print.png new file mode 100644 index 000000000..39191c939 Binary files /dev/null and b/companion/src/themes/monowhite/16/print.png differ diff --git a/companion/src/themes/monowhite/16/profiles.png b/companion/src/themes/monowhite/16/profiles.png new file mode 100644 index 000000000..01b13e3c7 Binary files /dev/null and b/companion/src/themes/monowhite/16/profiles.png differ diff --git a/companion/src/themes/monowhite/16/read_eeprom.png b/companion/src/themes/monowhite/16/read_eeprom.png new file mode 100644 index 000000000..b58582958 Binary files /dev/null and b/companion/src/themes/monowhite/16/read_eeprom.png differ diff --git a/companion/src/themes/monowhite/16/read_eeprom_file.png b/companion/src/themes/monowhite/16/read_eeprom_file.png new file mode 100644 index 000000000..214e82c4d Binary files /dev/null and b/companion/src/themes/monowhite/16/read_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/16/read_flash.png b/companion/src/themes/monowhite/16/read_flash.png new file mode 100644 index 000000000..530c62174 Binary files /dev/null and b/companion/src/themes/monowhite/16/read_flash.png differ diff --git a/companion/src/themes/monowhite/16/recentdocument.png b/companion/src/themes/monowhite/16/recentdocument.png new file mode 100644 index 000000000..d3cf237f5 Binary files /dev/null and b/companion/src/themes/monowhite/16/recentdocument.png differ diff --git a/companion/src/themes/monowhite/16/save.png b/companion/src/themes/monowhite/16/save.png new file mode 100644 index 000000000..dbf6d8695 Binary files /dev/null and b/companion/src/themes/monowhite/16/save.png differ diff --git a/companion/src/themes/monowhite/16/saveas.png b/companion/src/themes/monowhite/16/saveas.png new file mode 100644 index 000000000..791c7be33 Binary files /dev/null and b/companion/src/themes/monowhite/16/saveas.png differ diff --git a/companion/src/themes/monowhite/16/simulate.png b/companion/src/themes/monowhite/16/simulate.png new file mode 100644 index 000000000..5ce854790 Binary files /dev/null and b/companion/src/themes/monowhite/16/simulate.png differ diff --git a/companion/src/themes/monowhite/16/stop.png b/companion/src/themes/monowhite/16/stop.png new file mode 100644 index 000000000..42610e416 Binary files /dev/null and b/companion/src/themes/monowhite/16/stop.png differ diff --git a/companion/src/themes/monowhite/16/update.png b/companion/src/themes/monowhite/16/update.png new file mode 100644 index 000000000..31b90cf36 Binary files /dev/null and b/companion/src/themes/monowhite/16/update.png differ diff --git a/companion/src/themes/monowhite/16/wizard.png b/companion/src/themes/monowhite/16/wizard.png new file mode 100644 index 000000000..d1301c613 Binary files /dev/null and b/companion/src/themes/monowhite/16/wizard.png differ diff --git a/companion/src/themes/monowhite/16/write_eeprom.png b/companion/src/themes/monowhite/16/write_eeprom.png new file mode 100644 index 000000000..6815c7668 Binary files /dev/null and b/companion/src/themes/monowhite/16/write_eeprom.png differ diff --git a/companion/src/themes/monowhite/16/write_eeprom_file.png b/companion/src/themes/monowhite/16/write_eeprom_file.png new file mode 100644 index 000000000..a7e7c36f8 Binary files /dev/null and b/companion/src/themes/monowhite/16/write_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/16/write_flash.png b/companion/src/themes/monowhite/16/write_flash.png new file mode 100644 index 000000000..81cdccdbc Binary files /dev/null and b/companion/src/themes/monowhite/16/write_flash.png differ diff --git a/companion/src/themes/monowhite/24/add.png b/companion/src/themes/monowhite/24/add.png new file mode 100644 index 000000000..6ca6fad8b Binary files /dev/null and b/companion/src/themes/monowhite/24/add.png differ diff --git a/companion/src/themes/monowhite/24/arrow-left.png b/companion/src/themes/monowhite/24/arrow-left.png new file mode 100644 index 000000000..ae050e675 Binary files /dev/null and b/companion/src/themes/monowhite/24/arrow-left.png differ diff --git a/companion/src/themes/monowhite/24/arrow-right.png b/companion/src/themes/monowhite/24/arrow-right.png new file mode 100644 index 000000000..6c1ce6b77 Binary files /dev/null and b/companion/src/themes/monowhite/24/arrow-right.png differ diff --git a/companion/src/themes/monowhite/24/changelog.png b/companion/src/themes/monowhite/24/changelog.png new file mode 100644 index 000000000..456160d83 Binary files /dev/null and b/companion/src/themes/monowhite/24/changelog.png differ diff --git a/companion/src/themes/monowhite/24/clear.png b/companion/src/themes/monowhite/24/clear.png new file mode 100644 index 000000000..64a23752d Binary files /dev/null and b/companion/src/themes/monowhite/24/clear.png differ diff --git a/companion/src/themes/monowhite/24/compare.png b/companion/src/themes/monowhite/24/compare.png new file mode 100644 index 000000000..d56fa1116 Binary files /dev/null and b/companion/src/themes/monowhite/24/compare.png differ diff --git a/companion/src/themes/monowhite/24/configure.png b/companion/src/themes/monowhite/24/configure.png new file mode 100644 index 000000000..ad431d59f Binary files /dev/null and b/companion/src/themes/monowhite/24/configure.png differ diff --git a/companion/src/themes/monowhite/24/contributors.png b/companion/src/themes/monowhite/24/contributors.png new file mode 100644 index 000000000..a5fb08873 Binary files /dev/null and b/companion/src/themes/monowhite/24/contributors.png differ diff --git a/companion/src/themes/monowhite/24/copy.png b/companion/src/themes/monowhite/24/copy.png new file mode 100644 index 000000000..09063a0d0 Binary files /dev/null and b/companion/src/themes/monowhite/24/copy.png differ diff --git a/companion/src/themes/monowhite/24/currentmodel.png b/companion/src/themes/monowhite/24/currentmodel.png new file mode 100644 index 000000000..dc2ed26e1 Binary files /dev/null and b/companion/src/themes/monowhite/24/currentmodel.png differ diff --git a/companion/src/themes/monowhite/24/cut.png b/companion/src/themes/monowhite/24/cut.png new file mode 100644 index 000000000..68fa0ee49 Binary files /dev/null and b/companion/src/themes/monowhite/24/cut.png differ diff --git a/companion/src/themes/monowhite/24/duplicate.png b/companion/src/themes/monowhite/24/duplicate.png new file mode 100644 index 000000000..367f931f1 Binary files /dev/null and b/companion/src/themes/monowhite/24/duplicate.png differ diff --git a/companion/src/themes/monowhite/24/edit.png b/companion/src/themes/monowhite/24/edit.png new file mode 100644 index 000000000..0f5ddf04f Binary files /dev/null and b/companion/src/themes/monowhite/24/edit.png differ diff --git a/companion/src/themes/monowhite/24/exit.png b/companion/src/themes/monowhite/24/exit.png new file mode 100644 index 000000000..6940f1534 Binary files /dev/null and b/companion/src/themes/monowhite/24/exit.png differ diff --git a/companion/src/themes/monowhite/24/fuses.png b/companion/src/themes/monowhite/24/fuses.png new file mode 100644 index 000000000..0b00dcf56 Binary files /dev/null and b/companion/src/themes/monowhite/24/fuses.png differ diff --git a/companion/src/themes/monowhite/24/information.png b/companion/src/themes/monowhite/24/information.png new file mode 100644 index 000000000..d08603e7d Binary files /dev/null and b/companion/src/themes/monowhite/24/information.png differ diff --git a/companion/src/themes/monowhite/24/library.png b/companion/src/themes/monowhite/24/library.png new file mode 100644 index 000000000..bf2869b45 Binary files /dev/null and b/companion/src/themes/monowhite/24/library.png differ diff --git a/companion/src/themes/monowhite/24/list.png b/companion/src/themes/monowhite/24/list.png new file mode 100644 index 000000000..4ced8a69f Binary files /dev/null and b/companion/src/themes/monowhite/24/list.png differ diff --git a/companion/src/themes/monowhite/24/logs.png b/companion/src/themes/monowhite/24/logs.png new file mode 100644 index 000000000..6297517b2 Binary files /dev/null and b/companion/src/themes/monowhite/24/logs.png differ diff --git a/companion/src/themes/monowhite/24/movedown.png b/companion/src/themes/monowhite/24/movedown.png new file mode 100644 index 000000000..1110545aa Binary files /dev/null and b/companion/src/themes/monowhite/24/movedown.png differ diff --git a/companion/src/themes/monowhite/24/moveup.png b/companion/src/themes/monowhite/24/moveup.png new file mode 100644 index 000000000..1c9f4d9d6 Binary files /dev/null and b/companion/src/themes/monowhite/24/moveup.png differ diff --git a/companion/src/themes/monowhite/24/new.png b/companion/src/themes/monowhite/24/new.png new file mode 100644 index 000000000..7f20e1049 Binary files /dev/null and b/companion/src/themes/monowhite/24/new.png differ diff --git a/companion/src/themes/monowhite/24/open.png b/companion/src/themes/monowhite/24/open.png new file mode 100644 index 000000000..ed4759765 Binary files /dev/null and b/companion/src/themes/monowhite/24/open.png differ diff --git a/companion/src/themes/monowhite/24/paintbrush.png b/companion/src/themes/monowhite/24/paintbrush.png new file mode 100644 index 000000000..9ce5d2435 Binary files /dev/null and b/companion/src/themes/monowhite/24/paintbrush.png differ diff --git a/companion/src/themes/monowhite/24/paste.png b/companion/src/themes/monowhite/24/paste.png new file mode 100644 index 000000000..e4ed5b989 Binary files /dev/null and b/companion/src/themes/monowhite/24/paste.png differ diff --git a/companion/src/themes/monowhite/24/play.png b/companion/src/themes/monowhite/24/play.png new file mode 100644 index 000000000..1fc7079ab Binary files /dev/null and b/companion/src/themes/monowhite/24/play.png differ diff --git a/companion/src/themes/monowhite/24/preferences.png b/companion/src/themes/monowhite/24/preferences.png new file mode 100644 index 000000000..c08987642 Binary files /dev/null and b/companion/src/themes/monowhite/24/preferences.png differ diff --git a/companion/src/themes/monowhite/24/print.png b/companion/src/themes/monowhite/24/print.png new file mode 100644 index 000000000..6826507cb Binary files /dev/null and b/companion/src/themes/monowhite/24/print.png differ diff --git a/companion/src/themes/monowhite/24/profiles.png b/companion/src/themes/monowhite/24/profiles.png new file mode 100644 index 000000000..259727fd0 Binary files /dev/null and b/companion/src/themes/monowhite/24/profiles.png differ diff --git a/companion/src/themes/monowhite/24/read_eeprom.png b/companion/src/themes/monowhite/24/read_eeprom.png new file mode 100644 index 000000000..6c99de805 Binary files /dev/null and b/companion/src/themes/monowhite/24/read_eeprom.png differ diff --git a/companion/src/themes/monowhite/24/read_eeprom_file.png b/companion/src/themes/monowhite/24/read_eeprom_file.png new file mode 100644 index 000000000..bd203689c Binary files /dev/null and b/companion/src/themes/monowhite/24/read_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/24/read_flash.png b/companion/src/themes/monowhite/24/read_flash.png new file mode 100644 index 000000000..020e56684 Binary files /dev/null and b/companion/src/themes/monowhite/24/read_flash.png differ diff --git a/companion/src/themes/monowhite/24/recentdocument.png b/companion/src/themes/monowhite/24/recentdocument.png new file mode 100644 index 000000000..1aff5f44a Binary files /dev/null and b/companion/src/themes/monowhite/24/recentdocument.png differ diff --git a/companion/src/themes/monowhite/24/save.png b/companion/src/themes/monowhite/24/save.png new file mode 100644 index 000000000..938c53959 Binary files /dev/null and b/companion/src/themes/monowhite/24/save.png differ diff --git a/companion/src/themes/monowhite/24/saveas.png b/companion/src/themes/monowhite/24/saveas.png new file mode 100644 index 000000000..31c3bfb73 Binary files /dev/null and b/companion/src/themes/monowhite/24/saveas.png differ diff --git a/companion/src/themes/monowhite/24/simulate.png b/companion/src/themes/monowhite/24/simulate.png new file mode 100644 index 000000000..12eec8c6a Binary files /dev/null and b/companion/src/themes/monowhite/24/simulate.png differ diff --git a/companion/src/themes/monowhite/24/stop.png b/companion/src/themes/monowhite/24/stop.png new file mode 100644 index 000000000..4b1da49b0 Binary files /dev/null and b/companion/src/themes/monowhite/24/stop.png differ diff --git a/companion/src/themes/monowhite/24/update.png b/companion/src/themes/monowhite/24/update.png new file mode 100644 index 000000000..baf7f5ba2 Binary files /dev/null and b/companion/src/themes/monowhite/24/update.png differ diff --git a/companion/src/themes/monowhite/24/wizard.png b/companion/src/themes/monowhite/24/wizard.png new file mode 100644 index 000000000..88e5941d7 Binary files /dev/null and b/companion/src/themes/monowhite/24/wizard.png differ diff --git a/companion/src/themes/monowhite/24/write_eeprom.png b/companion/src/themes/monowhite/24/write_eeprom.png new file mode 100644 index 000000000..6a82777ad Binary files /dev/null and b/companion/src/themes/monowhite/24/write_eeprom.png differ diff --git a/companion/src/themes/monowhite/24/write_eeprom_file.png b/companion/src/themes/monowhite/24/write_eeprom_file.png new file mode 100644 index 000000000..7cb6182bb Binary files /dev/null and b/companion/src/themes/monowhite/24/write_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/24/write_flash.png b/companion/src/themes/monowhite/24/write_flash.png new file mode 100644 index 000000000..9103fc23e Binary files /dev/null and b/companion/src/themes/monowhite/24/write_flash.png differ diff --git a/companion/src/themes/monowhite/32/add.png b/companion/src/themes/monowhite/32/add.png new file mode 100644 index 000000000..13447d37e Binary files /dev/null and b/companion/src/themes/monowhite/32/add.png differ diff --git a/companion/src/themes/monowhite/32/arrow-left.png b/companion/src/themes/monowhite/32/arrow-left.png new file mode 100644 index 000000000..060c33ea9 Binary files /dev/null and b/companion/src/themes/monowhite/32/arrow-left.png differ diff --git a/companion/src/themes/monowhite/32/arrow-right.png b/companion/src/themes/monowhite/32/arrow-right.png new file mode 100644 index 000000000..0375c2026 Binary files /dev/null and b/companion/src/themes/monowhite/32/arrow-right.png differ diff --git a/companion/src/themes/monowhite/32/changelog.png b/companion/src/themes/monowhite/32/changelog.png new file mode 100644 index 000000000..e547df71e Binary files /dev/null and b/companion/src/themes/monowhite/32/changelog.png differ diff --git a/companion/src/themes/monowhite/32/clear.png b/companion/src/themes/monowhite/32/clear.png new file mode 100644 index 000000000..9449dfe4f Binary files /dev/null and b/companion/src/themes/monowhite/32/clear.png differ diff --git a/companion/src/themes/monowhite/32/compare.png b/companion/src/themes/monowhite/32/compare.png new file mode 100644 index 000000000..90cec9602 Binary files /dev/null and b/companion/src/themes/monowhite/32/compare.png differ diff --git a/companion/src/themes/monowhite/32/configure.png b/companion/src/themes/monowhite/32/configure.png new file mode 100644 index 000000000..3ba9a08b4 Binary files /dev/null and b/companion/src/themes/monowhite/32/configure.png differ diff --git a/companion/src/themes/monowhite/32/contributors.png b/companion/src/themes/monowhite/32/contributors.png new file mode 100644 index 000000000..c9cd49ff1 Binary files /dev/null and b/companion/src/themes/monowhite/32/contributors.png differ diff --git a/companion/src/themes/monowhite/32/copy.png b/companion/src/themes/monowhite/32/copy.png new file mode 100644 index 000000000..5499776ec Binary files /dev/null and b/companion/src/themes/monowhite/32/copy.png differ diff --git a/companion/src/themes/monowhite/32/currentmodel.png b/companion/src/themes/monowhite/32/currentmodel.png new file mode 100644 index 000000000..9868bfdf2 Binary files /dev/null and b/companion/src/themes/monowhite/32/currentmodel.png differ diff --git a/companion/src/themes/monowhite/32/cut.png b/companion/src/themes/monowhite/32/cut.png new file mode 100644 index 000000000..985993e04 Binary files /dev/null and b/companion/src/themes/monowhite/32/cut.png differ diff --git a/companion/src/themes/monowhite/32/duplicate.png b/companion/src/themes/monowhite/32/duplicate.png new file mode 100644 index 000000000..2484c87a7 Binary files /dev/null and b/companion/src/themes/monowhite/32/duplicate.png differ diff --git a/companion/src/themes/monowhite/32/edit.png b/companion/src/themes/monowhite/32/edit.png new file mode 100644 index 000000000..c5b4d36f5 Binary files /dev/null and b/companion/src/themes/monowhite/32/edit.png differ diff --git a/companion/src/themes/monowhite/32/exit.png b/companion/src/themes/monowhite/32/exit.png new file mode 100644 index 000000000..bc7b0b16f Binary files /dev/null and b/companion/src/themes/monowhite/32/exit.png differ diff --git a/companion/src/themes/monowhite/32/fuses.png b/companion/src/themes/monowhite/32/fuses.png new file mode 100644 index 000000000..940fc2c91 Binary files /dev/null and b/companion/src/themes/monowhite/32/fuses.png differ diff --git a/companion/src/themes/monowhite/32/information.png b/companion/src/themes/monowhite/32/information.png new file mode 100644 index 000000000..ac1591066 Binary files /dev/null and b/companion/src/themes/monowhite/32/information.png differ diff --git a/companion/src/themes/monowhite/32/library.png b/companion/src/themes/monowhite/32/library.png new file mode 100644 index 000000000..bec53f490 Binary files /dev/null and b/companion/src/themes/monowhite/32/library.png differ diff --git a/companion/src/themes/monowhite/32/list.png b/companion/src/themes/monowhite/32/list.png new file mode 100644 index 000000000..ba08fe0be Binary files /dev/null and b/companion/src/themes/monowhite/32/list.png differ diff --git a/companion/src/themes/monowhite/32/logs.png b/companion/src/themes/monowhite/32/logs.png new file mode 100644 index 000000000..a234b09cf Binary files /dev/null and b/companion/src/themes/monowhite/32/logs.png differ diff --git a/companion/src/themes/monowhite/32/movedown.png b/companion/src/themes/monowhite/32/movedown.png new file mode 100644 index 000000000..0f8c0c6fe Binary files /dev/null and b/companion/src/themes/monowhite/32/movedown.png differ diff --git a/companion/src/themes/monowhite/32/moveup.png b/companion/src/themes/monowhite/32/moveup.png new file mode 100644 index 000000000..adeb2f651 Binary files /dev/null and b/companion/src/themes/monowhite/32/moveup.png differ diff --git a/companion/src/themes/monowhite/32/new.png b/companion/src/themes/monowhite/32/new.png new file mode 100644 index 000000000..324d274c3 Binary files /dev/null and b/companion/src/themes/monowhite/32/new.png differ diff --git a/companion/src/themes/monowhite/32/open.png b/companion/src/themes/monowhite/32/open.png new file mode 100644 index 000000000..3ae76d223 Binary files /dev/null and b/companion/src/themes/monowhite/32/open.png differ diff --git a/companion/src/themes/monowhite/32/paintbrush.png b/companion/src/themes/monowhite/32/paintbrush.png new file mode 100644 index 000000000..04e19c28a Binary files /dev/null and b/companion/src/themes/monowhite/32/paintbrush.png differ diff --git a/companion/src/themes/monowhite/32/paste.png b/companion/src/themes/monowhite/32/paste.png new file mode 100644 index 000000000..c1c049a28 Binary files /dev/null and b/companion/src/themes/monowhite/32/paste.png differ diff --git a/companion/src/themes/monowhite/32/play.png b/companion/src/themes/monowhite/32/play.png new file mode 100644 index 000000000..c42949fab Binary files /dev/null and b/companion/src/themes/monowhite/32/play.png differ diff --git a/companion/src/themes/monowhite/32/preferences.png b/companion/src/themes/monowhite/32/preferences.png new file mode 100644 index 000000000..d6134a847 Binary files /dev/null and b/companion/src/themes/monowhite/32/preferences.png differ diff --git a/companion/src/themes/monowhite/32/print.png b/companion/src/themes/monowhite/32/print.png new file mode 100644 index 000000000..b7cc71425 Binary files /dev/null and b/companion/src/themes/monowhite/32/print.png differ diff --git a/companion/src/themes/monowhite/32/profiles.png b/companion/src/themes/monowhite/32/profiles.png new file mode 100644 index 000000000..49aa0f929 Binary files /dev/null and b/companion/src/themes/monowhite/32/profiles.png differ diff --git a/companion/src/themes/monowhite/32/read_eeprom.png b/companion/src/themes/monowhite/32/read_eeprom.png new file mode 100644 index 000000000..926fa49ac Binary files /dev/null and b/companion/src/themes/monowhite/32/read_eeprom.png differ diff --git a/companion/src/themes/monowhite/32/read_eeprom_file.png b/companion/src/themes/monowhite/32/read_eeprom_file.png new file mode 100644 index 000000000..ce28b5565 Binary files /dev/null and b/companion/src/themes/monowhite/32/read_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/32/read_flash.png b/companion/src/themes/monowhite/32/read_flash.png new file mode 100644 index 000000000..4fb96674a Binary files /dev/null and b/companion/src/themes/monowhite/32/read_flash.png differ diff --git a/companion/src/themes/monowhite/32/recentdocument.png b/companion/src/themes/monowhite/32/recentdocument.png new file mode 100644 index 000000000..c44509b05 Binary files /dev/null and b/companion/src/themes/monowhite/32/recentdocument.png differ diff --git a/companion/src/themes/monowhite/32/save.png b/companion/src/themes/monowhite/32/save.png new file mode 100644 index 000000000..166b9a40c Binary files /dev/null and b/companion/src/themes/monowhite/32/save.png differ diff --git a/companion/src/themes/monowhite/32/saveas.png b/companion/src/themes/monowhite/32/saveas.png new file mode 100644 index 000000000..aea4d8850 Binary files /dev/null and b/companion/src/themes/monowhite/32/saveas.png differ diff --git a/companion/src/themes/monowhite/32/simulate.png b/companion/src/themes/monowhite/32/simulate.png new file mode 100644 index 000000000..de935c6a5 Binary files /dev/null and b/companion/src/themes/monowhite/32/simulate.png differ diff --git a/companion/src/themes/monowhite/32/stop.png b/companion/src/themes/monowhite/32/stop.png new file mode 100644 index 000000000..b529d5cc0 Binary files /dev/null and b/companion/src/themes/monowhite/32/stop.png differ diff --git a/companion/src/themes/monowhite/32/update.png b/companion/src/themes/monowhite/32/update.png new file mode 100644 index 000000000..9c7fcee0e Binary files /dev/null and b/companion/src/themes/monowhite/32/update.png differ diff --git a/companion/src/themes/monowhite/32/wizard.png b/companion/src/themes/monowhite/32/wizard.png new file mode 100644 index 000000000..732b57421 Binary files /dev/null and b/companion/src/themes/monowhite/32/wizard.png differ diff --git a/companion/src/themes/monowhite/32/write_eeprom.png b/companion/src/themes/monowhite/32/write_eeprom.png new file mode 100644 index 000000000..b07c6e03f Binary files /dev/null and b/companion/src/themes/monowhite/32/write_eeprom.png differ diff --git a/companion/src/themes/monowhite/32/write_eeprom_file.png b/companion/src/themes/monowhite/32/write_eeprom_file.png new file mode 100644 index 000000000..192df62e7 Binary files /dev/null and b/companion/src/themes/monowhite/32/write_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/32/write_flash.png b/companion/src/themes/monowhite/32/write_flash.png new file mode 100644 index 000000000..eeba1bc9c Binary files /dev/null and b/companion/src/themes/monowhite/32/write_flash.png differ diff --git a/companion/src/themes/monowhite/48/add.png b/companion/src/themes/monowhite/48/add.png new file mode 100644 index 000000000..cc8812cf4 Binary files /dev/null and b/companion/src/themes/monowhite/48/add.png differ diff --git a/companion/src/themes/monowhite/48/arrow-left.png b/companion/src/themes/monowhite/48/arrow-left.png new file mode 100644 index 000000000..b571db825 Binary files /dev/null and b/companion/src/themes/monowhite/48/arrow-left.png differ diff --git a/companion/src/themes/monowhite/48/arrow-right.png b/companion/src/themes/monowhite/48/arrow-right.png new file mode 100644 index 000000000..233997acf Binary files /dev/null and b/companion/src/themes/monowhite/48/arrow-right.png differ diff --git a/companion/src/themes/monowhite/48/changelog.png b/companion/src/themes/monowhite/48/changelog.png new file mode 100644 index 000000000..454dd7ad0 Binary files /dev/null and b/companion/src/themes/monowhite/48/changelog.png differ diff --git a/companion/src/themes/monowhite/48/clear.png b/companion/src/themes/monowhite/48/clear.png new file mode 100644 index 000000000..e09993be5 Binary files /dev/null and b/companion/src/themes/monowhite/48/clear.png differ diff --git a/companion/src/themes/monowhite/48/compare.png b/companion/src/themes/monowhite/48/compare.png new file mode 100644 index 000000000..6f07fcc8a Binary files /dev/null and b/companion/src/themes/monowhite/48/compare.png differ diff --git a/companion/src/themes/monowhite/48/configure.png b/companion/src/themes/monowhite/48/configure.png new file mode 100644 index 000000000..f4ba9449f Binary files /dev/null and b/companion/src/themes/monowhite/48/configure.png differ diff --git a/companion/src/themes/monowhite/48/contributors.png b/companion/src/themes/monowhite/48/contributors.png new file mode 100644 index 000000000..4c59eaeef Binary files /dev/null and b/companion/src/themes/monowhite/48/contributors.png differ diff --git a/companion/src/themes/monowhite/48/copy.png b/companion/src/themes/monowhite/48/copy.png new file mode 100644 index 000000000..f2f6d533b Binary files /dev/null and b/companion/src/themes/monowhite/48/copy.png differ diff --git a/companion/src/themes/monowhite/48/currentmodel.png b/companion/src/themes/monowhite/48/currentmodel.png new file mode 100644 index 000000000..7002db951 Binary files /dev/null and b/companion/src/themes/monowhite/48/currentmodel.png differ diff --git a/companion/src/themes/monowhite/48/cut.png b/companion/src/themes/monowhite/48/cut.png new file mode 100644 index 000000000..34462d12d Binary files /dev/null and b/companion/src/themes/monowhite/48/cut.png differ diff --git a/companion/src/themes/monowhite/48/duplicate.png b/companion/src/themes/monowhite/48/duplicate.png new file mode 100644 index 000000000..44c8fe5cd Binary files /dev/null and b/companion/src/themes/monowhite/48/duplicate.png differ diff --git a/companion/src/themes/monowhite/48/edit.png b/companion/src/themes/monowhite/48/edit.png new file mode 100644 index 000000000..4fa0accd5 Binary files /dev/null and b/companion/src/themes/monowhite/48/edit.png differ diff --git a/companion/src/themes/monowhite/48/exit.png b/companion/src/themes/monowhite/48/exit.png new file mode 100644 index 000000000..2b4be6230 Binary files /dev/null and b/companion/src/themes/monowhite/48/exit.png differ diff --git a/companion/src/themes/monowhite/48/fuses.png b/companion/src/themes/monowhite/48/fuses.png new file mode 100644 index 000000000..c246f6c02 Binary files /dev/null and b/companion/src/themes/monowhite/48/fuses.png differ diff --git a/companion/src/themes/monowhite/48/information.png b/companion/src/themes/monowhite/48/information.png new file mode 100644 index 000000000..90b518899 Binary files /dev/null and b/companion/src/themes/monowhite/48/information.png differ diff --git a/companion/src/themes/monowhite/48/library.png b/companion/src/themes/monowhite/48/library.png new file mode 100644 index 000000000..35b42d937 Binary files /dev/null and b/companion/src/themes/monowhite/48/library.png differ diff --git a/companion/src/themes/monowhite/48/list.png b/companion/src/themes/monowhite/48/list.png new file mode 100644 index 000000000..e603c79da Binary files /dev/null and b/companion/src/themes/monowhite/48/list.png differ diff --git a/companion/src/themes/monowhite/48/logs.png b/companion/src/themes/monowhite/48/logs.png new file mode 100644 index 000000000..300d7c774 Binary files /dev/null and b/companion/src/themes/monowhite/48/logs.png differ diff --git a/companion/src/themes/monowhite/48/movedown.png b/companion/src/themes/monowhite/48/movedown.png new file mode 100644 index 000000000..0b7a36667 Binary files /dev/null and b/companion/src/themes/monowhite/48/movedown.png differ diff --git a/companion/src/themes/monowhite/48/moveup.png b/companion/src/themes/monowhite/48/moveup.png new file mode 100644 index 000000000..f219acca8 Binary files /dev/null and b/companion/src/themes/monowhite/48/moveup.png differ diff --git a/companion/src/themes/monowhite/48/new.png b/companion/src/themes/monowhite/48/new.png new file mode 100644 index 000000000..d5c749528 Binary files /dev/null and b/companion/src/themes/monowhite/48/new.png differ diff --git a/companion/src/themes/monowhite/48/open.png b/companion/src/themes/monowhite/48/open.png new file mode 100644 index 000000000..a06e13571 Binary files /dev/null and b/companion/src/themes/monowhite/48/open.png differ diff --git a/companion/src/themes/monowhite/48/paintbrush.png b/companion/src/themes/monowhite/48/paintbrush.png new file mode 100644 index 000000000..186cc1768 Binary files /dev/null and b/companion/src/themes/monowhite/48/paintbrush.png differ diff --git a/companion/src/themes/monowhite/48/paste.png b/companion/src/themes/monowhite/48/paste.png new file mode 100644 index 000000000..d912c3963 Binary files /dev/null and b/companion/src/themes/monowhite/48/paste.png differ diff --git a/companion/src/themes/monowhite/48/play.png b/companion/src/themes/monowhite/48/play.png new file mode 100644 index 000000000..fb1ee191f Binary files /dev/null and b/companion/src/themes/monowhite/48/play.png differ diff --git a/companion/src/themes/monowhite/48/preferences.png b/companion/src/themes/monowhite/48/preferences.png new file mode 100644 index 000000000..f0d8136c0 Binary files /dev/null and b/companion/src/themes/monowhite/48/preferences.png differ diff --git a/companion/src/themes/monowhite/48/print.png b/companion/src/themes/monowhite/48/print.png new file mode 100644 index 000000000..37c2d1185 Binary files /dev/null and b/companion/src/themes/monowhite/48/print.png differ diff --git a/companion/src/themes/monowhite/48/profiles.png b/companion/src/themes/monowhite/48/profiles.png new file mode 100644 index 000000000..781f883d2 Binary files /dev/null and b/companion/src/themes/monowhite/48/profiles.png differ diff --git a/companion/src/themes/monowhite/48/read_eeprom.png b/companion/src/themes/monowhite/48/read_eeprom.png new file mode 100644 index 000000000..85ede191e Binary files /dev/null and b/companion/src/themes/monowhite/48/read_eeprom.png differ diff --git a/companion/src/themes/monowhite/48/read_eeprom_file.png b/companion/src/themes/monowhite/48/read_eeprom_file.png new file mode 100644 index 000000000..e85724d00 Binary files /dev/null and b/companion/src/themes/monowhite/48/read_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/48/read_flash.png b/companion/src/themes/monowhite/48/read_flash.png new file mode 100644 index 000000000..d9fc13673 Binary files /dev/null and b/companion/src/themes/monowhite/48/read_flash.png differ diff --git a/companion/src/themes/monowhite/48/recentdocument.png b/companion/src/themes/monowhite/48/recentdocument.png new file mode 100644 index 000000000..90c3b1e1d Binary files /dev/null and b/companion/src/themes/monowhite/48/recentdocument.png differ diff --git a/companion/src/themes/monowhite/48/save.png b/companion/src/themes/monowhite/48/save.png new file mode 100644 index 000000000..e29b45ab3 Binary files /dev/null and b/companion/src/themes/monowhite/48/save.png differ diff --git a/companion/src/themes/monowhite/48/saveas.png b/companion/src/themes/monowhite/48/saveas.png new file mode 100644 index 000000000..cb5c738ad Binary files /dev/null and b/companion/src/themes/monowhite/48/saveas.png differ diff --git a/companion/src/themes/monowhite/48/simulate.png b/companion/src/themes/monowhite/48/simulate.png new file mode 100644 index 000000000..c5ebb9504 Binary files /dev/null and b/companion/src/themes/monowhite/48/simulate.png differ diff --git a/companion/src/themes/monowhite/48/stop.png b/companion/src/themes/monowhite/48/stop.png new file mode 100644 index 000000000..028180e0f Binary files /dev/null and b/companion/src/themes/monowhite/48/stop.png differ diff --git a/companion/src/themes/monowhite/48/update.png b/companion/src/themes/monowhite/48/update.png new file mode 100644 index 000000000..1368d4b4d Binary files /dev/null and b/companion/src/themes/monowhite/48/update.png differ diff --git a/companion/src/themes/monowhite/48/wizard.png b/companion/src/themes/monowhite/48/wizard.png new file mode 100644 index 000000000..17e476414 Binary files /dev/null and b/companion/src/themes/monowhite/48/wizard.png differ diff --git a/companion/src/themes/monowhite/48/write_eeprom.png b/companion/src/themes/monowhite/48/write_eeprom.png new file mode 100644 index 000000000..b406ca98a Binary files /dev/null and b/companion/src/themes/monowhite/48/write_eeprom.png differ diff --git a/companion/src/themes/monowhite/48/write_eeprom_file.png b/companion/src/themes/monowhite/48/write_eeprom_file.png new file mode 100644 index 000000000..d22daf82f Binary files /dev/null and b/companion/src/themes/monowhite/48/write_eeprom_file.png differ diff --git a/companion/src/themes/monowhite/48/write_flash.png b/companion/src/themes/monowhite/48/write_flash.png new file mode 100644 index 000000000..0c4594941 Binary files /dev/null and b/companion/src/themes/monowhite/48/write_flash.png differ diff --git a/companion/src/translations.qrc.in b/companion/src/translations.qrc.in index 434cbd225..792ed43c9 100644 --- a/companion/src/translations.qrc.in +++ b/companion/src/translations.qrc.in @@ -4,6 +4,7 @@ companion_de.qm companion_he.qm companion_it.qm + companion_pl.qm companion_pt.qm companion_ru.qm companion_sv.qm diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts new file mode 100644 index 000000000..6d147fec1 --- /dev/null +++ b/companion/src/translations/companion_pl.ts @@ -0,0 +1,10120 @@ + + + + + Channels + + + Name + Nazwa + + + + Offset + Wyrównanie + + + + Min + Min + + + + Max + Maks + + + + Invert + Odwróć + + + + Center + Centrowanie + + + + Sym + Sym + + + + Channel %1 + Kanały %1 + + + + --- + --- + + + + INV + Odwr + + + + CurveGroup + + + Diff + Róźnicowość + + + + Expo + Expo + + + + Func + Funkcja + + + + Curve + Krzywa + + + + Curves + + + Form + Formularz + + + + Standard + Standard + + + + Custom + Ustawienia Własne + + + + Lines + Linie + + + + Smooth + Gładkie + + + + Curve type + Typy Krzywej + + + + Curve name + Nazwa krzywej + + + + Curve %1 + Krzywa %1 + + + + %1 points + %1 punktowa + + + + Are you sure you want to reset curve %1 ? + Jesteś pewien by zresetować krzywą %1 ? + + + + Editing curve %1 + Edycja krzywej k%1 + + + + Not enough free points in EEPROM to store the curve. + Za mało wolnych punktów w eepromie by zapamiętać krzywą. + + + + CustomFunctionsPanel + + + Switch + Przełącznik + + + + Action + Akcja + + + + Parameters + Parametry + + + + Enable + Włączone + + + + ON + Włącz + + + + Error + Błąd + + + + Unable to find sound file %1! + Nie mogę odnaleźć pliku dźwiękowego %1! + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + CustomSwitchesPanel + + + Condition + Warunek + + + + V1 + Wartość 1 + + + + V2 + Wartość 2 + + + + AND + I (logiczne) + + + + Duration + Czas trwania + + + + Delay + Opóźnienie + + + + + LS%1 + PL%1 + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Dialog + + + Dialog + Formularz + + + + Curve type + Typy Krzywych + + + + Coefficient + Współczynnik + + + + Both + Obie + + + + x>0 + x>0 + + + + x<0 + x<0 + + + + Y at X=0 + Y dla X=0 + + + + Side + Strona + + + + Y at X=-100 + Y dla X=-100 + + + + Y at X=100 + Y dla X=100 + + + + Linear + Liniowa + + + + Single Expo + Pojedyncze expo (wykładnicza) + + + + Symmetrical f(x)=-f(-x) + Symetryczna (nieparzysta) f(x)=-f(-x) + + + + Symmetrical f(x)=f(-x) + Symetryczna (parzysta) f(x)=f(-x) + + + + ExpoDialog + + + Weight + Waga + + + + Switch used by the input. +If blank then the input is considered to be "ON" all the time. + Przełącznik używany przez Wejście, jeśli pole jest puste: będzie uznane za "WŁĄCZONE" przez cały czas. + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Delay ans Slow</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These values control the speed and delay of the output of the mix. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Opóźnienie i spowolnienie</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Te wartośći określają prędkość i opóźnienie wyjścia mikserów </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli opóżnienie nie jest równe 0 aktywacja miksera zostanie opózniona o określoną ilość sekund.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli spowolnienie nie jest równe 0 wtedy prędkość miksera zostanie ustawiona na podaną wartość-&gt; wartość oznacza liczbę sekund jaką mikser potrzebuje by pokonać drogę od -100 do 100.</p></body></html> + + + + Scale + Skala + + + + Include Trim + Uwzględnij trymer + + + + No + Nie + + + + Yes + Tak + + + + Curve + Krzywa + + + + The source for the mixer + Źródło miksera + + + + Input name + Wprowadź Nazwę + + + + + GV + ZG + + + + Phase used by the input. + Faza lotu używana przez Wejście. + + + + Flight modes + Fazy lotu + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + Switch + Przełącznik + + + + The curve used by the input + Krzywa używana przez Wejście + + + + Source + Źródło + + + + Line name + Nazwa linii + + + + Stick Side + Strona drążka + + + + NEG + x<0(Ujemnie) + + + + POS + x>0(Dodatnio) + + + + ALL + Wszystkie + + + + Edit %1 + Edycja %1 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + FlightMode + + + Form + Formularz + + + + Fade In + Spowolnienie aktywacji + + + + Fade Out + Spowolnienie wyłączania + + + + Name + Nazwa + + + + Switch + Przełącznik + + + + trim1 + trymer 1 + + + + trim2 + trymer 2 + + + + trim4 + trymer 4 + + + + trim3 + trymer 3 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + Rotary Encoder %1 + Pokrętło %1 + + + + GVAR%1 + ZmGl%1 + + + + FlightModes + + + Flight Mode %1 + Faza lotu %1 + + + + (%1) + (%1) + + + + (default) + (bazowa) + + + + GeneralEdit + + + General Edit + Główne ustawienia + + + + Store calib. and hw settings in selected profile + Zapamiętanie kalibracji i ustawień HW w wybranym profilu + + + + Retrieve calib. and hw settings from profile + Odtworzenie kalibracji i ustawień HW z profilu + + + + General settings used throught the transmitter. +These will be relevant for all models in the same EEPROM. + Główne ustawienia radia. +Będą one obowiązywać dla wszystkich modeli w tym samym EEPROM-ie. + + + + Setup + Ustawienia + + + + Timer Beeps + Pikanie timerów + + + + Contrast + Kontrast + + + + Channel Order (For Templates) + Kolejność kanałów (dla szablonów) + + + + Owner Name + Imię użytkownika + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + Wybór mode: + +Mode 1: + Lewa ręka : Ster Wysokości, Ster Kierunku + Prawa ręka : Gaz, Lotki + +Mode 2: + Lewa ręka : Gaz, Ster Kierunku + Prawa ręka : Ster Wysokości, Lotki + +Mode 3: + Lewa ręka : Ster Wysokości, Lotki + Prawa ręka : Gaz, Ster Kierunku + +Mode 4: + Lewa ręka : Gaz, Lotki + Prawa ręka : Ster Wysokości, Ster Kierunku + + + + + + Mode 1 (RUD ELE THR AIL) + Mod 1 (SK.SW.Gaz.Lot) + + + + Mode 2 (RUD THR ELE AIL) + Mod 2 (SK.Gaz.SW.Lot) + + + + Mode 3 (AIL ELE THR RUD) + Mod 3 (Lot.SW.Gaz.SK) + + + + Mode 4 (AIL THR ELE RUD) + Mod 4 (Lot.Gaz.SW.SK) + + + + + Quiet + Cichy + + + + Only Alarms + Tylko Alarmy + + + + + No Keys + Bez przycisków + + + + + All + Wszystkie + + + + MAVLink Baud Rate + Prędkość przesyłu MAVLink + + + + 4800 Baud + 4800 bps + + + + 9600 Baud + 9600 bps + + + + 14400 Baud + 14400 bps + + + + 19200 Baud + 19200 bps + + + + 38400 Baud + 38400 bps + + + + 57600 Baud + 57600 bps + + + + 76800 Baud + 76800 bps + + + + 115200 Baud + 115200 bps + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Single Beep Every whole Minute</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Jedno piknięcie co każdą pełną minutę</span></p></body></html> + + + + Every Minute + Co minutę + + + + Beeps at 30, 15, 10, and down from5 seconds + Sygnały w 30s, 15s, 10s i odliczanie od 5 sekund do 0 + + + + Count Down to Zero + Odliczanie do zera + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Flash backlight on timer beep</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Błyśnij podświetlaniem przy piknięciu timera</span></p></body></html> + + + + Flash on beep + Błyskanie w czasie sygnału + + + + If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds. + Jeśli ta wartość jest różna od 0, każde naciśnięcie klawisza włączy podświetlenie, które zgaśnie po ustalonej liczbie sekund. + + + + + sec + s + + + + Input Filter + Wprowadź filtr + + + + + + + + + + + + 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. + Głośność piknięć + +0 -Cicho. Żadnych piknięć. +1 - Bez przycisków. Normalne piknięcia ale bez pikania dla przycisków menu. +2 - Normalna. +3 - Głośna. +4 - Bardzo głośna. + + + + Alarms Only + Tylko alarmy + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To ustawienie definiuje ostrzeżenia startowe.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie gazu - będzie ostrzegało gdy gaz nie jest na 0</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie o przełącznikach - będzie ostrzegało gdy przełączniki nie są w pozycji bazowej</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie pamięci - będzie ostrzegało gdy pozostało juz niewiele wolnej pamięci</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie cichej pracy - będzie ostrzegało gdy pikanie jest ustawione na cicho(0)</p></body></html> + + + + Beeper Mode + Tryb pikania + + + + + + + Off + Wyłączony + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Kontrast ekranu LCD</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Wartości z zakresu 20-45</span></p></body></html> + + + + Memory Startup Warning + Ostrzeżenie o małym zapasie pamięci + + + + + X-Short + Bardzo krótka + + + + + Short + Krótka + + + + + Normal + Normalna + + + + + Long + Długa + + + + + X-Long + Bardzo długa + + + + Battery warning voltage. +This is the threashhold where the battery warning sounds. + +Acceptable values are 5v..10v + Ostrzeżenie o napięciu zasilania. +Ustala próg ostrzeżenia. + +Dopuszczalne wartości 5v-10v + + + + Battery Warning + Ostrzeżenie o zasilaniu + + + + THR + Gaz + + + + RUD + SK + + + + ELE + SW + + + + AIL + Lotki + + + + GEA + + + + + ID0 + + + + + ID1 + + + + + ID2 + + + + + Sound Mode + Tryb dźwiękowy + + + + Pot Scrolling Enable + Przewijanie potencjometrem włączone + + + + Battery Calibration + Kalibracja zasilania + + + + If not zero will sound beeps if the transmitter has been left without inputs for the specified number of minutes. + Radio zasygnalizuje dźwiękiem brak aktywności po określonej liczbie minut. 0- wyłącza tę funkcję. + + + + min + Min + + + + + Show splash screen on startup + Pokazuj ekran startowy z logo + + + + Battery calibration: +This value will be added to the measured battery voltage. Use this value to calibrate the meter with an external meter. + Kalibracja zasilania: +Ta wartość będzie dodana do zmierzonej wartości napięcia zasilania. Użyj tej wartości w celu kalibracji wyświetlanego napięcia aby było zgodne z napięciem wskazywanym przez miernik. + + + + Single + Pojedynczy + + + + Oversample + + + + + Filter + Filtr + + + + Show Splash Screen on Startup + Pokazuj ekran startowy z logo + + + + Inactivity Timer + Timer bezczynności + + + + Beeper + Pikanie + + + + Speaker + Głośnik + + + + BeeperVoice + Pikanie i głosy + + + + SpeakerVoice + Głośnik i głosy + + + + Beeper Length + Długość piknięcia + + + + GPS Coordinates + Koordynaty GPS + + + + hh° (N/S) mm' ss''.dd + hh° (N/S) mm' ss''.dd + + + + NMEA + + + + + Timeshift from UTC + Strefa czasowa względem UTC + + + + Channel order + +This is used by the templated to determine which channel goes to what number output. + Kolejność kanałów + +To ustawienie jest używane przez szablony, określa jakie wyjście przypisane jest do kanału. + + + + Speaker Pitch (spkr only) + Wysokość tonów (tylko dźwięki) + + + + Haptic Mode + Tryb wibracji + + + + Stick Mode + Mod drążków + + + + Show Owner Name on Splash + Pokaż imię pilota na ekranie + + + + Telemetry NO DATA Alarm + Telemetria: Alarm braku danych + + + + LCD Display Type + Typ ekranu LCD + + + + Standard + Standard + + + + Optrex + + + + + This is the switch selectrion for turning on the backlight (if installed). + + + To jest przełącznik do włączenia podświetlenia (jeśli zainstalowane). + + + + Speaker Volume + Głośność dźwięków + + + + Haptic Length + Długość wibracji + + + + Haptic Strength + Siła wibracji + + + + BackLight Brightness + Jasność podświetlenia + + + + Alarm Warning + Ostrzeżenie alarmowe + + + + BackLight Auto OFF after + Podświetlenie. Automatyczne wyłącznie po + + + + Bandgap Measuring Enable + Włączone pomiary pasma + + + + RotEnc Navigation + Nawigacja pokrętłem + + + + BackLight Switch + Przełącznik podświetlania + + + + BackLight On Stick Move + Podświetlenie włączone przy ruchu drążka + + + + BackLight Invert + Odwróć podświetlanie + + + + Country Code + Kod kraju + + + + Europe + Europa + + + + Japan + Japonia + + + + America + Ameryka + + + + Metric + Metryczne + + + + Imperial + Imperialne + + + + Measurement Units + Jednostki miar + + + + FrSky Internal Alarm + Wewnętrzny alarm FrSky + + + + StickScroll + Przewijanie drążkiem + + + + PPMSim + + + + + Voice Language + Język komunikatów + + + + CrossTrim + Trymery krzyżowe + + + + Beep volume + Głośność sygnałów + + + + Wav volume + Głośność WAV + + + + Vario volume + Głośność wariometru + + + + Background volume + Głośność tła + + + + FAI Mode + Tryb FAI + + + + If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio. + Jeśli uaktywnisz tryb FAI, utracisz informacje o wariometrze, funkcje odtwarzania i ekrany telemetrii. Ten tryb nie może być dezaktywowany. + + + + Readonly Unlock + Odblokuj "Tylko do odczytu" + + + + SC + + + + + SE + + + + + SA + + + + + SF + + + + + SH + + + + + SD + + + + + SB + + + + + SG + + + + + Trainer + Trener + + + + Mode + Tryb + + + + Input + Wejście + + + + Weight + Waga + + + + Switch + Przełącznik + + + + + PPM 1 + PPM 1 + + + + + + + chn1 + Kanał 01 + + + + + + + chn2 + Kanał 02 + + + + + + + chn3 + Kanał 03 + + + + + + + chn4 + Kanał 04 + + + + + PPM 2 + PPM 2 + + + + + PPM 3 + PPM 3 + + + + + PPM 4 + PPM 4 + + + + Telemetry + Telemetria + + + + RSSI Alarm 1 + Alarm RSSI 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + RSSI Alarm 2 + Alarm RSSI 2 + + + + NO DATA Alarm + Alarm braku danych + + + + Calibration + Kalibracja + + + + POT 4 + Potencjometr 04 + + + + STICK 3 + Drążek 03 + + + + + Negative span + Ujemny zakres + + + + + Mid value + Wartość środkowa + + + + + Positive span + Dodatni zakres + + + + STICK 1 + Drążek 01 + + + + STICK 2 + Drążek 02 + + + + STICK 4 + Drążek 04 + + + + POT 1 + Potencjometr 01 + + + + POT 2 + Potencjometr 02 + + + + POT 3 + Potencjometr 03 + + + + + + + += (Sum) + += (Suma) + + + + + + + := (Replace) + := (Zastąpienie) + + + + Battery + Zasilanie + + + + v + V + + + + PPM Multiplier + Mnożnik PPM + + + + Current + Natężenie + + + + If you enable FAI, you loose the vario, the play functions, the telemetry screen. +This function cannot be disabled by the radio. +Are you sure ? + Jeśli uaktywnisz tryb FAI, utracisz informacje o wariometrze, +funkcje odtwarzania i ekrany telemetrii. Ten tryb nie może być dezaktywowany. +Jesteś pewien ? + + + + + Warning + Ostrzeżenie + + + + Wrong data in profile, radio calibration was not retrieved + Błędne dane w profilu, kalibracja nie została odzyskana + + + + Wrong data in profile, hw related parameters were not retrieved + Błędne dane w profilu, parametry HW nie zostały odzyskana + + + + Do you want to store calibration in %1 profile<br>overwriting existing calibration? + Chcesz zapamiętać dane kalibracji profilu %1<br> Zastąpią one aktualne dane kalibracji? + + + + Calibration and HW parameters saved. + Kalibracja i parametry HW zapamiętane. + + + + Heli + + + Form + Formularz + + + + Invert Elevator + Odwróć SW + + + + Invert Aileron + Odwróć lotki + + + + Invert Collective + Odwróć Pochylenie (Collective) + + + + Invert + Odwróć + + + + Off + Wyłącz + + + + 120 + 120 + + + + 120X + 120X + + + + 140 + 140 + + + + 90 + 90 + + + + Collective + Pochylenie (collective) + + + + Swash Type + Typ tarczy + + + + Swash Ring + Pierścień tarczy + + + + InputsPanel + + + + Move Up + W górę + + + + + Ctrl+Up + Ctrl+Up + + + + + Move Down + W dół + + + + + Ctrl+Down + Ctrl+Down + + + + Clear All Settings + Wyczyść wszytkie ustawienia + + + + Source(%1) + Źródło(%1) + + + + No Trim + Bez trymera + + + + Weight(%1) + Waga(%1) + + + + Switch(%1) + Przełącznik(%1) + + + + Not enough available inputs! + Za mało dostępnych wejść! + + + + Delete Selected Inputs? + Skasować Wybrane Wejścia? + + + + &Add + &Dodaj + + + + Ctrl+A + Ctrl+A + + + + &Edit + &Edycja + + + + Enter + Enter + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Du&plicate + &Zduplikuj + + + + Ctrl+U + Ctrl+U + + + + Clear Inputs? + Wyczyść Wejścia? + + + + Really clear all the inputs? + Czy na pewno wyczyścić wszystkie wejścia? + + + + MainWindow + + + + + + File loaded + Plik załadowany + + + + Display previous warning again at startup ? + Wyświetlić poprzednie ostrzeżenie przy uruchomieniu? + + + + Checking for updates + Sprawdź aktualizacje + + + + + + + + Unable to check for updates. + Nie mogę sprawdzić aktualizacji. + + + + + + + + Save As + Zapisz jako + + + + Executable (*.exe) + Wykonywalny (*.exe) + + + + New release available + Dostępne jest nowe wydanie + + + + + No updates available at this time. + Brak aktualizacji dostępnych teraz. + + + + Would you like to launch the installer? + Chcesz uruchomić instalator? + + + + + + + + + + + + + + + + Error + Błąd + + + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + Compilation server termporary failure, try later + Serwer kompilacji chwilowo nieczynny, spróbuj później + + + + Display previous message again at startup ? + Czy ponownie wyświetlić poprzednią informację przy uruchomieniu? + + + + Compilation server temporary failure, try later + Serwer kompilacji chwilowo nieczynny, spróbuj później + + + + + Compilation server too busy, try later + Serwer kompilacji zbyt zajęty, spróbuj później + + + + + Unknown server failure, try later + Nieznany błąd serwera, spróbuj później + + + + Firmware %1 does not seem to have ever been downloaded. +Version %2 is available. +Do you want to download it now ? + Firmware %1 nigdy nie zostało pobrane. +Dostępna jest wersja %2 +Pobrać teraz? + + + + + + Yes + Tak + + + + + No + Nie + + + + + Release Notes + Informacje o wydaniu + + + + + Do you want to download release %1 now ? + Chcesz pobrać wydanie %1 teraz? + + + + A new version of %1 firmware is available (current %2 - newer %3). +Do you want to download it now ? + Jest dostępna nowa wersja firmware %1 +(aktualna %2 - nowsza %3) +Chcesz pobrać teraz? + + + + Ignore this version (r%1)? + Zignorować wersję (r%1)? + + + + Release notes contain very important informations. Do you want to see them now ? + Opis wydania zawiera bardzo ważne informacje. Chcesz je przeczytać teraz? + + + + + File saved + Plik zapisany + + + + Firmware updates + Aktualizacja firmware + + + + Current firmware does not provide release notes informations. + Aktualny firmware nie zawiera opisu wydania. + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + + + + + Taranis radio not found + Nie znaleziono Radia Taranis + + + + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. + Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. + + + + + + Backup is impossible + Backup jest niemożliwy do wykonania + + + + + + The backup dir set in preferences does not exist + Brak ustawień ścieżki backupu + + + + + Warning + Ostrzeżenie + + + + Conversion failed + Konwersja nieudana + + + + Restore failed + Zapis nieudany + + + + Backup failed + Backup nieudany + + + + Copyright + + + + + + &%1 %2 + + + + + + + Companion - Models and Settings Editor - %1 - profile %2 + Companion - Edytor Modeli i Ustawień - %1 - profil %2 + + + + + + + Companion - Models and Settings Editor - %1 + Companion - Edytor Modeli i Ustawień - %1 + + + + A new version of Companion is available (version %1)<br>Would you like to download it? + Dostępna jest nowy Companion (wersja %1)<br>Chcesz ją pobrać ? + + + + A new release of Companion is available please check the OpenTX website! + Nowe wydanie Companion jest dostępne, proszę sprawdzić stronę OpenTX! + + + + Firmware does not longer fit in the Tx, due to selected firmware options + Firmware już nie mieści się w pamięci radia ze względu na wybrane parametry + + + + + Compilation server requires registration, please check OpenTX web site + Serwer kompilacji wymaga rejestracji, proszę odwiedzić stronę OpenTX + + + + Firmware does not fit in the Tx, due to selected firmware options + Firmware już nie mieści się w pamięci radia ze względu na wybrane parametry + + + + Do you want to write the firmware to the transmitter now ? + Chcesz wgrać firmware do radia teraz? + + + + Open + Otwórz + + + + + + + Read Models and Settings From Tx + Wczytaj Modele i Ustawienia z radia + + + + Write Models and settings from %1 to the Tx? + Czy zapisać Modele i Ustawienia z %1 do radia ? + + + + The file %1 +has not been recognized as a valid Models and Settings file +Write anyway ? + Plik %1 +nie został rozpoznany jako prawidłowy pli Modeli i Ustawień. +Czy mimo wszystko zapisać? + + + + + + + + + Backup Models and Settings From Tx + Zbakupuj Modele i Ustawienia z radia + + + + Cannot check Models and Settings compatibility! Continue anyway? + Nie mogę potwierdzić kompatybilności Modeli i Ustawień. Kontynuować? + + + + The transmitter firmware belongs to another product family, check file and preferences! + Firmwqare radia nalezy do innej rodziny produktów, sprawdź plik i preferencje ! + + + + The transmitter firmware is outdated, please upgrade! + Firmware radia jest przestarzały, proszę zaktualizować! + + + + Write Models and Settings To Tx + Zapisz Modele i Ustawienia do radia + + + + + Write Firmware To Tx + Zapisz firmware do radia + + + + Cannot convert Models and Settings for use with this firmware, original data will be used + Nie mogę skonwertować Modeli i Ustawień na ten rodzaj firmware, zostaną użyte oryginalne dane + + + + Restore Models and Settings To Tx + Odtwórz Modele i Ustawienia do radia + + + + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 + Nie mogę odtworzyć Modeli i Ustawień do radia. Plik modeli i ustawień mozna znaleźć w: %1 + + + + Firmware write failed + Zapis firmawe nie powiódł się + + + + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 + Nie mogę zapisać Firmware do radia. Plik modeli i ustawień mozna znaleźć w: %1 + + + + Cannot backup existing Models and Settings from TX. Firmware write process aborted + Nie mogę zbackupować Modeli i Ustawień z radia, Zapis Firmawe przerwany + + + + Save transmitter Models and Settings to File + Zapisz Modele i Ustawienia z radia do pliku + + + + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. + Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. + + + + Read Tx Firmware to File + Odczytaj firmware z radia do pliku + + + + OpenTX Home Page: <a href='%1'>%1</a> + Strona domowa OpenTX: <a href='%1'>%1</a> + + + + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> + Projekt Companion odłączony z oryginalnego <a href='%2'>eePe</a> + + + + If you've found this program useful, please support by <a href='%1'>donating</a> + Jeśli uważasz, że ten program jest użyteczny, wesprzyj poprzez <a href='%1'>donację</a> + + + + Version %1, %3 + Wersja %1, %3 + + + + About Companion + O aplikacji Companion + + + + &New + &Nowy + + + + Create a new file + Utwórz nowy plik + + + + &Open... + &Otwórz... + + + + Open an existing file + Otwórz istniejący plik + + + + &loadBackup... + &Załaduj backup... + + + + Load backup from file + Załaduj backup z pliku + + + + &Save + &Zapisz + + + + Save the document to disk + Zapisz dokument na dysku + + + + Save &As... + Zapisz j&ako... + + + + Save the document under a new name + Zapisz dokument pod nową nazwą + + + + Lo&gs + Lo&gi + + + + Ctrl+G + + + + + Open log file + Otwórz plik logów + + + + &Preferences... + &Preferencje... + + + + Edit general preferences + Edycja głównych ustawień + + + + &Check for updates... + &Sprawdź aktualizacje... + + + + Check for new version of Companion + Sprawdź nową wersję Companion + + + + Show Companion contributors list + Pokaz listę twórców Companion + + + + Show Companion changelog + Zobacz zmiany w Companion + + + + &Write Models and Settings To Tx + &Zapisz Modele i Ustawienia do radia + + + + Write Models and Settings to transmitter + Zapisz Modele i Ustawienia do radia + + + + &Read Models and Settings From Tx + &Wczytaj Modele i Ustawienia z radia + + + + Read Models and Settings from transmitter + Wczytaj Modele i Ustawienia z radia + + + + Write Firmware + Zapisz firmware + + + + Write firmware to transmitter + Zapisz firmware do radia + + + + Write Models and Settings from file to Tx + Zapisz Modele i Ustawienia z pliku do radia + + + + Write Models and Settings from file to transmitter + Zapisz Modele i Ustawienia z pliku do radia + + + + Save transmitter Models and Settings to file + Zapisz Modele i Ustawienia do pliku + + + + Save the Models and Settings from the transmitter to a file + Zapisz Modele i Ustawienia z radia do pliku + + + + Read Firmware + Wczytaj Firmware + + + + Read firmware from transmitter + Wczytaj Firmware z radia + + + + Configure software for reading from and writing to the transmitter + Ustawienia oprogramowania do odczytu i zapisu radia + + + + &Read/Write + &Odczyt/Zapis + + + + Write + Zapis + + + + + Invalid Models and Settings File %1 + Błędny plik %1 Modeli i Ustawień + + + + Invalid binary Models and Settings File %1 + Błędny binarny plik %1 Modeli i Ustawień + + + + Contributors &List... + &Lista twórców... + + + + ChangeLog... + Zmiany... + + + + Firmware ChangeLog... + Zmiany firmware... + + + + Show firmware changelog + Zobacz zmiany w firmware + + + + Compare... + Porównaj... + + + + Compare models + Porównaj modele + + + + Customize your &TX... + &Personalizuj swoje radio... + + + + Customize the splash screen of your TX + Personalizuj obrazek na swoim radiu + + + + E&xit + Za&kończ + + + + Exit the application + Zakończ aplikację companion9x + + + + Cu&t + &Wytnij + + + + Cut the current selection's contents to the clipboard + Wytnij zaznaczenie do schowka + + + + &Copy + &Kopiuj + + + + Copy the current selection's contents to the clipboard + Kopiuj zaznaczenie do schowka + + + + &Paste + &Wklej + + + + Paste the clipboard's contents into the current selection + Wklej zawartość schowka na aktualnej pozycji + + + + Ctrl+Alt+W + + + + + Ctrl+Alt+R + + + + + &Configure... + &Konfiguracja... + + + + &List programmers + &Lista programatorów + + + + List available programmers + Lista dostępnych programatorów + + + + &Fuses... + Ustawienia &mikro-kontrolera... + + + + Show fuses dialog + Pokaż okno ustawień mikro-kontrolera + + + + &Simulate + &Symulator + + + + Alt+S + + + + + Simulate selected model. + Symulacja wybranego modelu. + + + + &Print + &Drukuj + + + + Ctrl+P + + + + + Print current model. + Wydrukuj aktualny model. + + + + &About + &O aplikacji + + + + Show the application's About box + O aplikacji companion9x + + + + + Recent Files + Poprzednie pliki + + + + + Firmware Profiles + Profile firmware + + + + &File + &Plik + + + + &Edit + &Edycja + + + + &Help + &Pomoc + + + + File + Plik + + + + Edit + Edycja + + + + Help + Pomoc + + + + Ready + Gotowe + + + + Unable to find file %1! + Nie mogę znaleźć pliku %1! + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + MdiChild + + + free bytes + wolna pamięć[B] + + + + Editing model %1: + Edycja modelu %1: + + + + + + + + + + + + + + + + + + + + + + Error + Błąd + + + + + Unable to find file %1! + Nie mogę odnaleźć pliku %1! + + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + + Invalid EEPROM File %1 + Zły plik EEPROM %1 + + + + Invalid binary EEPROM File %1 + Nieprawidłowy plik binarny EEPROM %1 + + + + + + + Save As + Zapisz jako + + + + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + + Error writing file %1: +%2. + Błąd zapisu pliku %1: +%2. + + + + Do you want to use model wizard? + Czy chcesz użyć konfiguratora modelu? + + + + + + Companion + Companion + + + + Ask this question again ? + Czy ponownie zapytać ? + + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + %1 has been modified. +Do you want to save your changes? + %1 został zmieniony. +Zapisać? + + + + Backup is impossible + Backup jest niemożliwy + + + + The backup dir set in preferences does not exist + Ustawienia preferencji katalogu backupu nie istnieją + + + + Cannot write temporary file! + Nie mogę zapisać pliku tymczasowego! + + + + + + Taranis radio not found + Nie odnaleziono Radia Taranis + + + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. + Identyfikacja radia w Twoim systemie nie jest możliwa, sprawdź dysk eeprom podpięty do komputera. + + + + + + Backup EEPROM From Tx + Backup EEPROM z radia + + + + Cannot check eeprom compatibility! Continue anyway? + Nie mogę sprawdzić kompatybilności EEprom! Kontynuować ? + + + + + Warning + Ostrzeżenie + + + + Firmware in radio is of a different family of eeprom written, check file and preferences! + Firmware w radiu jest różny od zapisanego eepromu, sprawdź plik i ustawienia! + + + + Firmware in flash is outdated, please upgrade! + Firmware w radiu jest przestarzały. Proszę zaktualizować! + + + + Write EEPROM To Tx + Zapis EEPROM do radia + + + + Open + Otwórz + + + + Invalid binary backup File %1 + nieprawidłowy binarny plik %1 + + + + MixerDialog + + + Dialog + + + + + Source + Źródło + + + + + + + The source for the mixer + Źródło miksera + + + + Weight + Waga + + + + Offset + Wyrównanie + + + + Include Trim + Uwzględnij trymer + + + + + + GV + + + + + No + Nie + + + + Yes + Tak + + + + Curve + Krzywa + + + + The curve used by the mix + Krzywa użyta do miksera + + + + Switch used by the mix. +If blank then the mix is considered to be "ON" all the time. + Przełącznik użyty do miksera +Jeśli pusty - mikser będzie stale aktywny. + + + + Switch + Przełącznik + + + + Warning + Ostrzeżenie + + + + Mixer warning. +Setting this value will cause a beep to be emmitted when this value is active. + Ostrzeżenie miksera. +Ustawienie tej wartości spowoduje emitowanie dźwięku kiedy wartość będzie aktywna. + + + + OFF + Wyłącz + + + + 1 Beep + 1 piknięcie + + + + 2 Beep + 2 piknięcia + + + + 3 Beep + 3 piknięcia + + + + Multiplex + Połączenie + + + + Multiplexer + +This determines how mixer values are added. + +"+" means the value of the current mix is added to the previous mixes in the same channel. +"*" means the value of the current mix is amultiplied with the previous mixes in the same channel. +"R" means the value replaces the previous values. If the switch is off the value will be ignored. + Multiplexer + +Ustala w jaki sposób miksery są łączone. + +"+" oznacza dowanie wartości miksera do wcześniejszych mikserów na tym kanale. +"*" oznacza mnożenie wartości miksera przez wcześniejsze miksery na tym kanale. +"R" oznacza zastąpienie wartością miksera, wcześniejszych mikserów na tym kanale. + + + + ADD + Dodawaj + + + + MULTIPLY + Pomnóż + + + + REPLACE + Zastąp + + + + Name + Nazwa + + + + Flight modes + Fazy lotu + + + + Include DR/Expo + Dołącz DR/Expo + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + Delay + Opóźnienie + + + + Slow + Spowolnienie + + + + Up + Do góry / (+) + + + + Down + Do dołu / (-) + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Delay ans Slow</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These values control the speed and delay of the output of the mix. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Opóźnienie i spowolnienie</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Te wartośći określają prędkość i opóźnienie wyjścia mikserów </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli opóżnienie nie jest równe 0 aktywacja miksera zostanie opózniona o określoną ilość sekund.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli spowolnienie nie jest równe 0 wtedy prędkość miksera zostanie ustawiona na podaną wartość-&gt; wartość oznacza liczbę sekund jaką mikser potrzebuje by pokonać drogę od -100 do 100.</p></body></html> + + + + DEST -> X%1 + Cel -> X%1 + + + + DEST -> CH%1%2 + Cel -> KAN%1%2 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + MixesPanel + + + + Move Up + W górę + + + + + Ctrl+Up + Ctrl+Up + + + + + Move Down + W dół + + + + + Ctrl+Down + Ctrl+Down + + + + Clear Mixes + Wyczyść miksery + + + + + + X%1 + X%1 + + + + + + CH%1%2 + Kan %1%2 + + + + Weight(%1) + Waga(%1) + + + + Switch(%1) + Przełącznik(%1) + + + + No Trim + Bez trymera + + + + No DR/Expo + Bez DR/Expo + + + + Offset(%1) + Wyrównanie(%1) + + + + Delay(u%1:d%2) + Opóźnienie(u%1:d%2) + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + Warn(%1) + Ostrzeżenie(%1) + + + + Not enough available mixers! + Za mało dostępnych mikserów! + + + + Delete Selected Mixes? + Skasować wybrane miksery? + + + + &Add + &Dodaj + + + + Ctrl+A + Ctrl+A + + + + &Edit + &Edycja + + + + Enter + Enter + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Du&plicate + &Zduplikuj + + + + Ctrl+U + Ctrl+U + + + + Clear Mixes? + Wyczyść miksery? + + + + Really clear all the mixes? + Czy na pewno wyczyścić wszystkie miksery? + + + + ModelEdit + + + Dialog + + + + + Simulate + Symulacja + + + + Setup + Ustawienia + + + + Heli + Heli + + + + Inputs + Wejścia + + + + Logical Switches + Przełączniki Logiczne + + + + Switch Assignment + Przypisanie Przełączników + + + + Channels + Kanały + + + + Mixes + Miksery + + + + Flight Modes + Fazy lotu + + + + Curves + Krzywe + + + + Telemetry + Telemetria + + + + Clear Curves? + Wyczyść krzywe? + + + + Really clear all the curves? + Czy na pewno wyczyścić wszystkie krzywe? + + + + ModelsListWidget + + + &Edit + &Edycja + + + + &Restore from backup + &Odtworzyć z backupu + + + + &Model Wizard + &Kreator ustawień modelu + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + + + + + &Cut + &Wytnij + + + + Ctrl+X + + + + + &Paste + &Wklej + + + + Ctrl+V + + + + + D&uplicate + &Zduplikuj + + + + Ctrl+U + + + + + &Use as default + &Użyj jako bazowy + + + + P&rint model + Wy&drukuj model + + + + Alt+R + + + + + &Simulate model + &Zasymuluj model + + + + Alt+S + + + + + General Settings + Główne ustawienia + + + + Delete Selected Models? + Skasować wybrane modele? + + + + + Cannot delete default model. + Nie mogę wykasować bazowego modelu. + + + + Cannot cut default model. + Nie mogę wyciąć bazowego modelu. + + + + Do you want to overwrite TX general settings? + Chcesz nadpisać generalne ustawienia radia? + + + + You are pasting on an not empty model, are you sure? + Wklejasz na niepustym modelu, jesteś pewien? + + + + No free slot available, cannot duplicate + Brak wolnych miejsc, nie mogę zduplikować + + + + Module + + + Form + Formularz + + + + Failsafe Mode + Tryb Failsafe + + + + Start + Start + + + + PPM delay + Opóźnienie PPM + + + + usec + us + + + + Negative + Ujemna + + + + Positive + Dodatnia + + + + RX Number + Numer Odbiornika + + + + Master + Trener + + + + Slave + Uczeń + + + + Polarity + Polaryzacja + + + + Trainer Mode + Tryb trenera + + + + mSec + ms + + + + PPM Frame Length + Długość ramki PPM + + + + Label + Etykieta + + + + + ch + kanał + + + + Channels + Kanały + + + + Hold + Utrzymuj + + + + Custom + Ustawienia Własne + + + + No Pulses + Brak sygnałów + + + + Failsafe Positions + Pozycja Failsave + + + + Protocol + Protokół + + + + ModulePanel + + + Trainer Output + Wyjśćie Trenera + + + + Internal Radio System + Wenętrzny moduł radiowy + + + + External Radio Module + External Radio Module - Internal Radio System - zaznaczyć by opisać spójność nazw angielskich + + Zewnętrzny moduł radiowy + + + + QObject + + + + Rud + SK + + + + + Ele + SW + + + + + Thr + Gaz + + + + + Ail + Lotki + + + + + + P1 + Potencjometr 1 + + + + + + P2 + Potencjometr 2 + + + + + + P3 + Potencjometr 3 + + + + + S1 + Potencjometr 1 + + + + + S2 + Potencjometr 2 + + + + + LS + Lewy suwak + + + + + RS + Prawy suwak + + + + TrmR + Trymer SK + + + + TrmE + Trymer SW + + + + TrmT + Trymer gazu + + + + TrmA + Trymer lotek + + + + + REa + Pokrętło :a + + + + + REb + Pokrętło :b + + + + Batt + Bateria + + + + A1 + Sygnał telemetrii A1 + + + + A2 + Sygnał telemetrii A2 + + + + Alt + Wysokość + + + + Rpm + Obroty + + + + Fuel + Paliwo + + + + T1 + + + + + Tx + + + + + Rx + + + + + SWR + SWR + + + + RSSI + + + + + T2 + + + + + Speed + Prędkość + + + + Dist + Odległość + + + + GPS Alt + Wysokość GPS + + + + Cell + Cela + + + + Cels + Cele + + + + Vfas + + + + + Curr + Natężenie + + + + Cnsp + + + + + Powr + Moc + + + + AccX + + + + + AccY + + + + + AccZ + + + + + HDG + + + + + VSpd + + + + + A1- + + + + + A2- + + + + + Alt- + + + + + Alt+ + + + + + Rpm+ + + + + + T1+ + + + + + T2+ + + + + + Spd+ + + + + + Dst+ + + + + + Cur+ + + + + + ACC + + + + + Time + + + + + Pwr+ + + + + + + LS1 + PL1 + + + + + LS2 + PL2 + + + + + LS3 + PL3 + + + + + LS4 + PL4 + + + + + LS5 + PL5 + + + + + LS6 + PL6 + + + + + LS7 + PL7 + + + + + LS8 + PL8 + + + + + LS9 + PL9 + + + + + LSA + PLA + + + + + LSB + PLB + + + + + LSC + PLC + + + + + LSD + PLD + + + + + LSE + PLE + + + + + LSF + PLF + + + + + LSG + PLG + + + + + LSH + PLH + + + + + LSI + PLI + + + + + LSJ + PLJ + + + + + LSK + PLK + + + + + LSL + PLL + + + + + LSM + PLM, + + + + + LSN + PLN + + + + + LSO + PLO + + + + + LSP + PLP + + + + + LSQ + PLQ + + + + + LSR + PLR + + + + + LSS + PLS + + + + + LST + PLT + + + + + LSU + PLU + + + + + LSV + PLV + + + + + LSW + PLW + + + + Input %1 + Wejście %1 + + + + MAX + + + + + ONE + Jeden + + + + !ONE + Nie Jeden + + + + TRNs + + + + + TRNl + + + + + REAs + + + + + REAl + + + + + CYC%1 + + + + + PPM%1 + + + + + CH%1%2 + Kan %1%2 + + + + X%1 + + + + + + + + ---- + + + + + + + THR + THR + + + + RUD + SK + + + + ELE + SW + + + + ID0 + ID0 + + + + ID1 + ID1 + + + + ID2 + ID2 + + + + AIL + Lotki + + + + GEA + GEA + + + + TRN + TRN + + + + + ON + Włącz + + + + + OFF + Wyłącz + + + + Diff(%1) + Róźnicowość(%1) + + + + Expo(%1) + Expo(%1) + + + + Function(%1) + Funkcja(%1) + + + + Curve(%1) + Krzywa(%1) + + + + !Curve(%1) + !Krzywa(%1) + + + + th9x + + + + + er9x + + + + + + Support for frsky telemetry mod + Wsparcie dla telemetrii FrSky + + + + + Support for jeti telemetry mod + Wsparcie telemetrii JETI + + + + + Support for receiving ardupilot data + Wsparcie dla otrzymywania danych ardupilota + + + + + Support for receiving NMEA data + Wsparcie dla otrzymywania danych NMEA + + + + Support for telemetry easy board + Wsparcie dla platformy TelemetrEZ + + + + + Support for MAVLINK devices + Wsparcie urządzeń MAVLINK + + + + Rotary Encoder use in menus navigation + Użycie pokrętła do nawigacji w menu + + + + Possibility to enable FAI MODE at field + Umożliwienie uaktywniania tryb FAI w menu + + + + FAI MODE always enabled + Tryb FAI zawsze aktywny + + + + openTx for 9X board + openTx dla platformy 9X + + + + + + + + Enable heli menu and cyclic mix support + Uaktywnione menu Heli i wsparcie dla cyklicznych mikserów + + + + + + + + + Enable TEMPLATES menu + Uaktywnienie menu szablonów + + + + + + + No splash screen + Bez loga na ekranie + + + + + + + + + No flight modes + Firmware bez menu faz lotu + + + + + + + + + In model setup menus automatically set source by moving some of them + W menu ustawień modelu automatycznie wybierz źródło poprzez poruszenie nim + + + + + + + + + + + Use alternative SQT5 font + Użyj alternatywnego fontu SQT5 + + + + EEprom write progress bar + Pasek postępu wgrywania EEPROMu + + + + + No Winged Shadow How High support + Bez wsparcia - Winged Shadow How High + + + + + No vario support + Bez wsparcia wario + + + + + No GPS support + Bez wsparcia GPS + + + + + No gauges in the custom telemetry screen + Bez graficznych wskazań telemetrii + + + + Allow compensating for offset errors in FrSky FAS current sensors + Pozwolenie na kompensację błędów w czujnikach natężenia FrSky FAS + + + + openTx for 9XR + openTx dla platformy 9XR + + + + openTx for 9XR with M128 chip + openTx dla platformy 9XR z M128 + + + + Use FrSky Taranis sticks in a 9X/9XR + Użyj drążków Taranisa w 9X/9XR + + + + + Disable HELI menu and cyclic mix support + Dezaktywowane menu Heli i wsparcie dla cyklicznych mikserów + + + + + Disable TEMPLATES menu + Dezaktywowane menu szablonów + + + + + Disable Global variables + dezaktywowane zmienne globalne + + + + openTx for FrSky Taranis Rev4a + openTx dla FrSky Taranis Rev4a + + + + + + + + + Disable curves menus + Bez menu krzywych + + + + + + + Support for radio modified with regular speaker + Wsparcie dla modyfikacji radia zwykłym głośnikiem + + + + + + + + Used if you have modified your radio with voice mode + Używane jeśli radio jest zmodyfikowane w calu użycia komunikatów głosowych + + + + + + + Used if you have modified your radio with haptic mode + Używane jeśli radio jest zmodyfikowane do użycia wibracji + + + + + + + + + Battery graph + Grafika baterii + + + + + + + Enable the throttle trace in Statistics + Uaktywnić śledzenie gazu w statystykach + + + + openTx for M128 / 9X board + openTx dla platformy 9X z M128 + + + + openTx for Gruvin9x board / 9X + openTx dla platformy Gruvin9x / 9X + + + + Support of FrSky PXX protocol + Wsparcie dla protokołu Frsky PXX + + + + openTx for Sky9x board / 9X + openTx dla platformy Sky9x / 9X + + + + openTx for FrSky Taranis + openTx dla FrSky Taranis + + + + + + + + Support for DSM2 modules + wsparcie modułu DSM2 + + + + Your radio probably uses a wrong firmware, + eeprom size is 4096 but only the first 2048 are used + Twoje radio prawdopodobnie używa złego firmware, + wielkość eepromu jest 4096 ale tylko pierwsze 2048 jest używane + + + + + + + + + PPM center adjustment in limits + Limit dostrojenia centrowania PPM + + + + + + + + + + + PPM values displayed in us + Wartości PPM wyświetlane w us (mikrosekundy) + + + + + + + + + Symetrical Limits + Limity symetryczne + + + + + + + + Pots use in menus navigation + Użycie potencjometrów do nawigacji w menu + + + + + SmartieParts 2.2 Backlight support + Wsparcie podświetlenia SmartieParts 2.2 + + + + + + + + + In model setup menus automatically set switch by moving some of them + W menu modelu automatyczne wybranie przełącznika w przez jego poruszenie + + + + + + + Enable resetting values by pressing up and down at the same time + Szybkie nastawianie wartości +(+) a (-) neguje wartość +(+)a (UP) ustawia max +(-) a (DN) ustawia min +(UP) a (DN) ustawia 0 + + + + + + + + + No graphical check boxes and sliders + Brak graficznych chekboxów i sliderów + + + + + + + + + Don't use bold font for highlighting active items + Nie używaj podświetlenia dla wybranych aktywnych elementów, mikserów, krzywych, expo, etc + + + + + + + EEprom write Progress bar + Pasek postępu zapisywania EEPROM + + + + + + + + Imperial units + Imperialne jednostki w telemetrii + + + + Bluetooth interface + Interface Bluetooth + + + + + + + + + Global variables + Globalne zmienne + + + + Support for SD memory card + Wsparcie karty SD + + + + Support for DSM2 modules using ppm instead of true serial + Wsparcie modułu DSM2 przez użycie PPM zamiast prawdziwego szeregowego + + + + Enable HELI menu and cyclic mix support + Uaktywnij menu HELI i cyklicznych mikserów + + + + ersky9x + + + + + + + + Warning + Ostrzeżenie + + + + EEPROM saved with these warnings: + EEPROM zapisany z tymi ostrzeżeniami: + + + + + FM%1 + FP%1 + FM%1 + + + + Input%1 + Wejście %1 + + + + English + Angielski + + + + French + Francuski + + + + Italian + Włoski + + + + German + Niemiecki + + + + Czech + Czeski + + + + Slovak + Słowacki + + + + Spanish + Hiszpański + + + + Portuguese + Portugalski + + + + No + Nie + + + + RotEnc A + Pokrętło :A + + + + Rot Enc B + Pokrętło :B + + + + Rot Enc C + Pokrętło :C + + + + Rot Enc D + Pokrętło :D + + + + Rot Enc E + Pokrętło :E + + + + + No repeat + Bez powtórzeń + + + + %1 sec + %1 s + + + + Safety %1 + Bezpieczny %1 + + + + Trainer + Trener + + + + Trainer RUD + Trener - SK + + + + Trainer ELE + Trener - SW + + + + Trainer THR + Trener - Gaz + + + + Trainer AIL + Trener - Lotki + + + + Instant Trim + Natychmiastowe trymowanie + + + + Play Sound + Odtwórz dźwięk + + + + Play Haptic + Wibruj + + + + Reset + Zresetuj + + + + Vario + Wariometr + + + + Play Both + Odtwórz oba + + + + Play Value + Odtwórz wartość + + + + Start Logs + Start logowania + + + + Volume + Głośność + + + + Backlight + Podświetlenie + + + + Adjust GV%1 + Ustaw ZG%1 + + + + + + <font color=red><b>Inconsistent parameter</b></font> + Niespójny parametr + <font color=red><b>Niespójny parametr</b></font> + + + + Rotary Encoder + Pokrętło + + + + !Flight mode %1 + !Faza lotu %1 + + + + Flight mode %1 + Faza lotu %1 + + + + Yellow + Żółty + + + + Orange + Pomarańczowy + + + + Red + Czerwony + + + + Winged Shadow How High + + + + + Winged Shadow How High (not supported) + Winged Shadow How High (nie obsługiwane) + + + + FrSky Sensor Hub + Hub sensora FrSky + + + + + None + Żaden + + + + Imperial + Imperialne + + + + Metric + Metryczne + + + + Extra Fine + Bardzo dokładne + + + + Fine + Dokładne + + + + Medium + Średni + + + + Coarse + Gruby + + + + Exponential + Eksponencjalny + + + + Count Up + Licz + + + + Count Down + Odliczaj + + + + %1:%2, + + + + + : %1 Channels, %2usec Delay + :Kanały %1, opóźnienie %2usX + + + + Flight modes(%1) + Fazy lotu(%1) + + + + Flight mode(%1) + Faza lotu (%1) + + + + Rudder + SK + + + + Elevator + SW + + + + Throttle + Gaz + + + + Aileron + Lotki + + + + Play Track + Odtwórz ścieżkę + + + + + --- + + + + + Rud Trim + Trymer SK + + + + Ele Trim + Trymer SW + + + + Thr Trim + Trymer gazu + + + + Ail Trim + Trymer lotek + + + + Rot Enc + Pokrętło + + + + Swedish + Szwedzki + + + + CH%1 + Kan %1 + + + + Background Music + Muzyka tła + + + + Background Music Pause + Muzyka tła - pauza + + + + Delay %1 sec + Opóźnienie %1sec + + + + Duration %1 sec + Czas trwania %1 sec + + + + + + Timer1 + + + + + + + Timer2 + + + + + + All + Wszystkie + + + + + Telemetry + Telemetria + + + + Value + Wartość + + + + Decr: + Zmniejsz: + + + + Incr: + Zwiększ: + + + + Played once, not during startup + Otwarzaj raz, nie w trakcie uruchomienia + + + + %1s + + + + + Value + Wartość + + + + Source + Źródło + + + + GVAR + Zmienna + + + + Increment + Zwiększanie + + + + Own trim + Własne trymery + + + + Flight mode %1 trim + Flight phase %1 trim + Trymer fazy lotu FL%1 + + + + Own value + Własny Wartość + + + + Flight mode %1 value + Flight phase %1 value + Wartość Fazy lotu FL%1 + + + + Keys + Przyciski + + + + Sticks + Drążki + + + + Keys + Sticks + Przyciski i Drążki + + + + + -GV%1 + -ZG%1 + + + + + + GV%1 + ZG%1 + + + + + + Simulator for this firmware is not yet available + Nie jest dostępny symulator dla tego firmware + + + + + Simultaneous usage of expo and curves is no longer supported + Równoległe użycie expo i krzywych nie jest dłużej wspierane + + + + openTx only accepts %1 points in all curves + openTx dopuszcza tylko %1 punktów dla wszystkich krzywych + + + + + + OpenTX on this board doesn't accept this function + OpenTX na tej platformie nie dopuszcza tej funkcji + + + + + OpenTX doesn't accept this protocol + OpenTX nie obsługuje tego protokołu + + + + OpenTX doesn't allow this number of channels + OpenTX nie obsługuje tej ilości kanałów + + + + Simultaneous usage of expo and curves is no longer supported in open9x + Jednoczesne użycie expo i krzywych nie jest dłużej wspierane dla Open9x + + + + th9x on this board doesn't have Rotary Encoders + th9x nie posiada pokręteł na tej platformie + + + + Thanks all for the donations, kind messages, nice ideas, constructive proposals etc. for the next OpenTX/Companion funding model. + +We are really appreciative for that! + +The OpenTX/Companion Team. + Dziękujemy za wszystkie datki, miłe wiadomości, ciekawe pomysły, konstruktywne propozycje. etc. dla następnych aparatur działających z OpenTX/Companion + +Bardzo nam na tym zależy i są to dla nas bardzo wazne elementy + +Zespół OpenTX/Companion. + + + + Setup + + + Form + Formularz + + + + Model Name + Nazwa modelu + + + + Timer2 + Timer 02 + + + + Timer1 + Timer 01 + + + + Throttle Source + Źródło gazu + + + + Switch startup Warning + Ostrzeżenie o przełącznikach przy uruchomieniu + + + + Center beep + Pikanie przy centrowaniu + + + + Trim Increment + Kroki trymera + + + + ON + Włącz + + + + OFF + Wyłącz + + + + Check + Sprawdzenie + + + + Model Image + Obrazek modelu + + + + Exponential + Wykładnicze + + + + Extra Fine + Bardzo dokładne + + + + Fine + Dokładne + + + + Medium + Średnie + + + + Coarse + Zgrubne + + + + Extended Limits + Rozszerzone limity (125%) + + + + Extended Trims + Poszerzone trymery + + + + Throttle Trim + Trymer gazu + + + + Throttle Warning + Ostrzeżenie o gazie + + + + Reverse throttle operation. +If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. + + + Odwrócenie gazu. +Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również zostaną odwrócone. + + + + + Reverse Throttle + Odwrotna praca gazu + + + + Telemetry + + + Form + Formularz + + + + + + + A1 + A1 + + + + + + + A2 + A2 + + + + RSSI + RSSI + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + Alarm 2 + Alarm 2 + + + + Serial Protocol + Protokół szeregowy + + + + Volt source + Źródło napięcia + + + + Metric + Metryczne + + + + Imperial + Imperialne + + + + Current source + Źródło prądu(natężenia) + + + + Protocol + Protokół + + + + NONE + BRAK + + + + + FAS + FAS + + + + None + Żadne + + + + FrSky Sensor Hub + Hub Czujników FrSky + + + + CEL + Ogniwo + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + Units + Jednostki + + + + Blades + Łopaty śmigła + + + + Altimetry / Vario + Wysokościomierz/Wario + + + + Alti + Wysokościomierz + + + + Alti+ + Wysokościomierz+ + + + + Vario + Wario + + + + Sink Max + Maks. Opadanie + + + + Off + Wyłączone + + + + Climb Max + Maks. Wznoszenie + + + + Sink Min + Min. Opadanie + + + + Climb Min + Min. Wznoszenie + + + + Vario source + Źródło wario + + + + Vario limits + Limity wario + + + + Use GPS as altitude source + Używaj GPS jako źródła danych wysokości + + + + Display altitude in toolbar + Wyświetl wysokość na pasku + + + + Various + Różne + + + + mAh count + Licznik mAh + + + + FAS Offset + Wyrównanie FAS + + + + Persistent mAh + Stałe mAh + + + + Telemetry screen 1 + Panel telemetrii 1 + + + + + + Custom Screen Type + Typ panelu + + + + + + Nums + Liczby + + + + + + Bars + Paski + + + + + + Source + Źródło + + + + + + Min + Min + + + + + + Gauge + Pomiar + + + + + + Max + Maks + + + + + + Gauge 1 + Pomiar 1 + + + + + + Gauge 2 + Pomiar 2 + + + + + + Gauge 3 + Pomiar 3 + + + + + + Gauge 4 + Pomiar 4 + + + + Telemetry screen 2 + Panel telemetrii 2 + + + + Telemetry screen 3 + Panel telemetrii 3 + + + + TelemetryAnalog + + + Form + Formularz + + + + Unit + Jednostka + + + + Max Value + Maks. wartość + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + + < + < + + + + + > + > + + + + Alarm 2 + Alarm 2 + + + + Min Value + Min. Wartość + + + + Volts (V) + Wolty (V) + + + + Amps (A) + Ampery (A) + + + + Speed (m/s or ft/s) + Prędkość (m/s albo ft/s) + + + + Raw (-) + Bezwymiarowe (-) + + + + Speed (km/h or miles/h) + Prędkość (km/h albo míle/h) + + + + Meters (m or ft) + Wysokość (m albo ft) + + + + Temp (°) + Temp (°) + + + + Fuel (%) + Paliwo (%) + + + + mAmps (mA) + miliAmpery (mA) + + + + Range + Zasięg + + + + TelemetryPanel + + + Winged Shadow How High + Winged Shadow How High + + + + Winged Shadow How High (not supported) + Winged Shadow How High (Nie obsługiwane) + + + + Timer + + + Form + Formularz + + + + mm:ss + mm:ss + + + + Countdown + Odliczanie + + + + MinuteBeep + Pikanie minutowe + + + + Persistent + Stały + + + + (00:00:00) + (00:00:00) + + + + TimerPanel + + + None + Żaden + + + + Beeps + Dźwięk + + + + Countdown + Odlicznie + + + + avrOutputDialog + + + Dialog + + + + + Show Details + Pokaż szczegóły + + + + result + result + Wynik + + + + executable not found + executable not found + plik wykonywalny nie został znaleziony + + + + + Error + Błąd + + + + Cannot open source file + Nie mogę otworzyć pliku źródłowego + + + + Cannot write destination + Nie mogę zapisać w miejscu docelowym + + + + Writing file: + Zapisuję plik: + + + + ie: OpenTX for 9X board or OpenTX for 9XR board + ie: OpenTX dal platformy 9X lub OpenTX lub 9XR + + + + ie: OpenTX for M128 / 9X board or OpenTX for 9XR board with M128 chip + ie: OpenTX dla platformy M128 / 9X lub OpenTX dla platformy 9XR z chipem M128 + + + + ie: OpenTX for Gruvin9X board + ie: OpenTX dla platformy Gruvin9X + + + + Your radio uses a %1 CPU!!! + +Please check advanced burn options to set the correct cpu type. + Twoje radio używa procesora %1!!! + +Sprawdź zaawansowane funkcje wypiekania by ustalić prawidłowy procesor. + + + + Your radio uses a %1 CPU!!! + +Please select an appropriate firmware type to program it. + Twoje radio używa procesora %1!!! + +Proszę wybrać poprany rodzaj firmware. + + + + +You are currently using: + %1 + +Aktualnie używasz: + %1 + + + + + Writing + Zapis + + + + + Reading + Czytanie + + + + + Verifying + Weryfikacja + + + + done - exit code %1 + done - exit code %1 + Zakończone z kodem %1 + + + + done with errors + done with errors + Zakończone z Błędami + + + + + done - SUCCESSFUL + done - SUCCESSFUL + Zakończono sukcesem + + + + did not finish correctly + did not finish correctly + Nie zakończono poprawnie + + + + did not finish correctly! +Do you want some help ? + did not finish correctly! +Do you want some help ? + Nie zakończono poprawnie +Potrzebujesz pomocy ? + + + + Copy did not finish correctly + Nie zakończono poprawnie kopiowania + + + + finished correctly + finished correctly + Zakończono poprawnie + + + + Copy finished correctly + Zakończono poprawnie kopiowanie + + + + Started + Started + Rozpoczęto + + + + FUSES: Low=%1 High=%2 Ext=%3 + Bezpieczniki: Low=%1 High=%2 Ext=%3 + + + + burnConfigDialog + + + Programmer Configuration + Configuration AVRDUDE / SAM-BA + Konfiguracja programatora + + + + Location of AVRDUDE executable + Położenie wykonywalnego AVRDUDE + + + + + + + The location of the AVRDUDE executable. + Położenie wykonywalnego AVRDUDE. + + + + DFU-Util Location + Położenie narzędzia DFU + + + + + + Use this button to browse and look for the AVRDUDE executable file. + Użyj tego przycisku w celu znalezienia pliku wykonywalnego AVRDUDE. + + + + + + Browse... + Przeglądaj ... + + + + Programmer + Typ programatora + + + + Programmer used for communicating with the controller. +Please consult the programmer's documentation and the AVRDUDE documentation to select the appropriate programmer. + Programator użyty do komunikacji z mikrokontrolerem. + + + + List all available programmers. + Lista wszystkich dostępnych programów. + + + + List Available + Lista dostępnych + + + + + Extra arguments that will be passed to AVRDUDE on every call + Dodatkowe argumenty przekazywane do AVRDUDE przy każdorazowym wywołaniu + + + + + Extra arguments used in AVRDUDE. +This can be used for providing extra information to AVRDUDE. + +Please only use this if you know what you are doing. There are no error checks and you could cripple your controller. + Dodatkowe argumenty AVRDUDE. +Mogą być użyte do przekazania dodatowych informacji do AVRDUDE. + +Użyj tylko jeśli dokłądnie wiesz co robisz !! +Nie ma to spradzania błędów i mozesz uszkodzić mikrokontroler. + + + + + Extra Arguments + Dodatkowe argumenty + + + + Show AVRDUDE help + Pokaż pomoc AVRDUDE + + + + Show Help + Pokaż pomoc + + + + + Port + Port + + + + AVRDUDE Location + Położenie AVRDUDE + + + + Use advanced controls + Użyj zaawansowanych ustawień + + + + + CPU of your TX + Procesor/mikrokontroler twojego radia + + + + Communication port to the programmer. + + Port komunikacyjny do programatora. + + + + + CPU present on your 9x radio +Should be m64 for stock radios +m2560 for v4.1 boards + CPU zainstalowany w twoim radiu 9x : +m64 dla zwykłego radia +m2560 dla platformy V4 + + + + SAM-BA Location + Położenie SAM-BA + + + + Alternate device + Alternatywne urządzenie + + + + + Location of sam-ba executable + Położenie plików wykonywalnych sam-ba + + + + MCU + Typ procesora CPU/MCU + + + + ARM MCU + Procesor ARM + + + + sam-ba serial port + Port szeregowy sam-ba + + + + DFU-UTIL Configuration + Konfiguracja DFU-UTIL + + + + SAM-BA Configuration + Konfiguracja SAM-BA + + + + AVRDUDE Configuration + Konfiguracja AVRDUDE + + + + + + Select Location + Wybierz położenie + + + + + Companion + Companion + + + + <b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue? + <b><u>UWAGA!</u></b><br>U zresetuje bezpieczniki %1 do fabrycznych ustawień.<br>Zapis bezpieczników może uszkodzić twoje radio.<br>Zrób to tylko jeśli jesteś pewien że są złe!<br>Jesteś pewien by kontynuować? + + + + <b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent. + <b><u>Ostrzeżenie!</u></b><br>Normalnie typ procesora jest wybierany automatycznie zgodnie z wybranym firmware.<br>Jeśli zmienisz typ procesora dla EEpromu rezultaty mogą być nieprzewidywalne. + + + + burnDialog + + + Customize Splash + Własne logo + + + + + Write to TX + Zapisz do radia + + + + <html><head/><body><p>Modify calibration parameters using settings from current profile</p></body></html> + <html><head/><body><p>Zmiana parametrów kalibracji przy użyciu aktualnego profilu</p></body></html> + + + + Patch calibration setting from profile + Zamień ustawienia kalibracji wartościami z profilu + + + + <html><head/><body><p>Modify HW parameters using settings from current profile</p></body></html> + <html><head/><body><p>Zmień ustawiania parametrów HW przy pomocy wartości z aktualnego profilu</p></body></html> + + + + Patch HW setting from profile + Zmień ustawiania parametrów HW wartościami z profilu + + + + Date & Time + Data i Czas + + + + SVN + + + + + Variant + Wariant + + + + Invert Color + Odwróć kolory + + + + Load Image + Otwórz logo + + + + Open Splash Library + Otwórz bibliotekę obrazków + + + + ... + + + + + Substitute image in firmware + Zmień logo w firmware + + + + + Browse for file + Przeglądaj pliki + + + + Allows Companion to write to older version of the firmware + Pozwól Companion na zapis do starszej wersji firmware + + + + Backup and restore Models and Settings + Zbakupuj i odtwórz Modele i Ustawienia + + + + Use image in settings + Użyj Logo w ustawieniach + + + + Check Firmware compatibility + Sprawdź kompatybilność firmware + + + + Current Profile + Aktualny profil + + + + Cancel + Przerwij + + + + Write firmware to TX + Zapisz firmware do radia + + + + Current profile + Aktualny profil + + + + Open + Otwórz + + + + + + + + + Warning + Ostrzeżenie + + + + %1 is not a known firmware + %1 nie jest znanym firmware + + + + Burn anyway ! + Wypiecz mimo wszystko ! + + + + + + + + + + + + + Error + Błąd + + + + Unable to find file %1! + Nie mogę odnaleźć pliku %1! + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + Write Models and Settings to TX + Zapisz Modele i Ustawienia do radia + + + + Write Models and Settings in %1 to TX + Zapisz Modele i Ustawienia w %1 do radia + + + + Choose file to load Models and Settings from + Wybierz plik Modeli i Ustawien do wczytania + + + + + + Invalid binary Models and Settings File %1, Proceed anyway ? + Nieprawidłowy plik Modeli i Ustawień : %1. Kontynuować ? + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + Open Image to load + Otwórz plik z logo + + + + Images (%1) + Obrazki (%1) + + + + + Cannot load %1. + Nie mogę załadować %1. + + + + Cannot save customized firmware + Nie mogę zapisać przystosowanego firmware + + + + Custom image not found + Własny obrazek nie odnaleziony + + + + No firmware selected + Brak wyboru firmware + + + + Wrong radio calibration data in profile, Settings not patched + Błędna kalibracja radia w profilu, Ustawienia nie spatchowane + + + + Wrong radio setting data in profile, Settings not patched + Błędne ustawienia radia w profilu, Ustawienia nie spatchowane + + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + Error writing file %1: +%2. + Błąd zapisu pliku %1: +%2. + + + + compareDialog + + + Dialog + + + + + Drag first model here + Przeciągnij tutaj pierwszy model + + + + Drag second model here + Przeciągnij tutaj drugi model + + + + Close + Zamknij + + + + Print + Drukuj + + + + Print to file + Drukuj do pliku + + + + General Model Settings + Główne ustawienia modelu + + + + + + Name + Nazwa + + + + + EEprom Size + Wielkość EEPROM + + + + + Timer1 + + + + + + Timer2 + + + + + + Protocol + Protokół + + + + + Pulse Polarity + Polaryzacja impulsu + + + + + Throttle Trim + Trymer gazu + + + + + + + Enabled + Włączone + + + + + + + Disabled + Wyłączone + + + + + Throttle Expo + Expo gazu + + + + + Trim Increment + Krok trymera + + + + + Center Beep + Dźwięk centrowania + + + + Flight modes Settings + Flight Phases Settings + Ustawiania faz lotu + + + + + Fades + Przejścia + + + + + Trims + Trymery + + + + + + + + + + + + + Switch + Przełącznik + + + + + IN + (+) + + + + + OUT + (-) + + + + + + + + + + + + + FM + FP + FL + + + + + Gvars + Gl-Zm + + + + + Rot. Enc. + Pokrętło. + + + + Limits + Limity + + + + + + + + + + Offset + Ofset + + + + + + + + Min + + + + + + + + + Max + Maks + + + + + + Invert + Odwróć + + + + + + + + + CH + Kanał + + + + + INV + Odwr + + + + + NOR + --- + + + + Global Variables + Zmienne globalne + + + + + GV + ZG + + + + Expo/Dr Settings + Expo/Ustawienia DR + + + + + Weight + Waga + + + + + Curve + Krzywa + + + + Mixers + Miksery + + + + + noTrim + Bez trymera + + + + + Delay(u%1:d%2) + Opóźnienie(u%1:d%2) + + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + + Warn + Ostrzeżenie + + + + + No name + Model bez nazwy + + + + + + + DISABLED + Wyłączone + + + + Curves + Krzywe + + + + 5 Points Curves + 5-cio punktowe Krzywe + + + + + + + pt %1 + punkt %1 + + + + 9 Points Curves + 9-cio punktowe Krzywe + + + + + Function + Funkcja + + + + + Param + Parametr + + + + + Enable + Włączone + + + + Telemetry Settings + Ustawienia telemetrii + + + + + Analog + Analogowy + + + + + Unit + Jednostki + + + + + Scale + Skala + + + + + + + A%1 + + + + + + Alarm 1 + + + + + + Alarm 2 + + + + + + + + Type + Typ + + + + + + + Condition + Warunek + + + + + + + + + Value + Wartość + + + + + + + Flight mode name + Nazwa fazy lotu + + + + + + + Flight modes + Fazy lotu + + + + + + + Flight mode + Faza lotu + + + + + Repeat + Powtórz + + + + Safety Switches + Przełącznik bezpieczeństwa + + + + + RSSI Alarm + Alarm RSSI + + + + + Telemetry Bars + Wskaźniki telemetryczne + + + + + Bar Number + Numer wskaźnika + + + + + Source + Źródło + + + + + Custom Telemetry View + Własny ekran telemetrii + + + + Logical Switches + Przełączniki Logiczne + + + + + LS + L suwak + + + + Switch Assignment + Przypisanie Przełączników + + + + CF + FS + + + + Print Document + Drukuj dokument + + + + Select PDF output file + Wybierz plik docelowy PDF + + + + contributorsDialog + + + Dialog + + + + + People who have contributed to this project + Ludzie związani z tym projektem + + + + Coders + Programiści + + + + Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe) + Specjalne podziękowania Rafałowi Tomczakowi (RadioClone), Thomasowi Husteterowi (th9x) a także Erazowi Ravivowi(er9x i eePe) + + + + Companion Release Notes + Informacje o wydaniu Companion + + + + Thank you all !!! + Wszystkim wam dziękujemy !!! + + + + Contributors + Współpracownicy + + + + OpenTX Release Notes + Informacje o wydaniu OpenTX + + + + customizeSplashDialog + + + Customize Splash + Zrób własne loga + + + + Save Image + Zapisz logo + + + + Invert Color + Odwróć kolory + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + Load Firmware + Otwórz firmware + + + + Load Image + Otwórz logo + + + + Open Splash Library + Otwórz bibliotekę obrazków + + + + ... + + + + + Save Firmware + Save To Hex + Zapisz firmware + + + + + + Select an original firmware file + Wybierz oryginalny plik z firmware + + + + Open + Otwórz + + + + Select an image to customize your splash <br />or save actual firmware splash + Wybierz obrazek do spersonalizowania twojego ekranu <br />lub wgraj aktualny obrazek do firmware + + + + + + + Error + Błąd + + + + Could not find bitmap to replace in file + Nie mogę znaleźć bitmapy w celu zastąpienia pliku + + + + Open Image to load + Otwórz obrazek do załadowania + + + + Images (%1) + Obrazki (%1) + + + + + Cannot load %1. + Nie mogę wczytać %1. + + + + + Save your custimized firmware + Zgraj spersonalizowane firmware + + + + + Write to file + Zapis do pliku + + + + Error reading file %1 + Błąd otwarcia pliku %1 + + + + Firmware correctly saved. + Firmware zostało prawidłowo zapisane. + + + + Firmware not saved. + Firmware nie zostało zapisane. + + + + PNG images (*.png);; + Obrazki PNG (*.png);; + + + + downloadDialog + + + Downloading: + Pobierz: + + + + Unable to save the file %1: %2. + Nie mogę zapisać pliku %1: %2. + + + + Companion + Companion + + + + Download failed: %1. + Pobieranie nieudane: %1. + + + + fusesDialog + + + Fuses + Bezpieczniki + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Reads the current fuses in the AVR controller.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Proper states for </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">AtMega 64 </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse not set: 0E, 81, FF</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse set: 0E, 89, FF</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Proper states for AtMega 2560 :</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse not set: D7, 11, FC</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse set: D7, 19, FC</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Czyta aktualne ustawienia bezpieczników z kontrolera AVR</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Prawidłowe ustawienia </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">AtMega 64 </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie nieustawionego bezpiecznika: 0E, 81, FF</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie ustawionego bezpiecznika: 0E, 89, FF</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Przwidłowe ustawienia AtMega 2560 :</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie nieustawionego bezpiecznika: D7, 11, FC</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie ustawionego bezpiecznika: D7, 19, FC</span></p></body></html> + + + + Read Fuses + Odczytaj bezpieczniki + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset Fuses</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Fuses in the AVR tell it how to behave. Pressing this button sets the fuses to the default parameters needed in the FW. These parameters are different for stock and 4.1 MB, please verify you selected the appropriate processor type in preferences.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This button also sets the &quot;EEPROM protect&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This prevents erasing of the EEPROM when the flash memory is written.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">WARNING</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Setting fuses can lead to problems and even a total lockout from your controller. Do this only if you know what you are doing.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When in doubt consult either the project's page or the 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">If you do get locked out - google lookup for &quot;dealing with Fuse Bricks&quot;.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset bezpieczników</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Bezpieczniki w AVR opisz zachowanie. Naciśnięcie tego przycisku ustawia bezpieczniki do domyślnych parametrów potrzebnych w FW. Parametry te są różne dla zwykłej oraz 4,1 płyty głównej, sprawdź, czy wybrano odpowiedni typ procesora w preferencjach.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ten przycisk róznież ustawia &quot;Bezpiecznik ochrony EEPROM&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">To ochrania EEPROM przed wymazaniem gdy flaszujesz radio.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ustawianie bezpieczników moze prowadzić do problemów łacznie z całkowitym zablokowaniem twojego radia. Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Gdy masz wątpliwości skonsultuj się ze stroną projektu lub na 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Jeśli urządzeni zostanie zablokowane przeszukaj google w celu znalezienia &quot;Jak naprawić Fuse BRICK &quot;.</span></p></body></html> + + + + Reset Fuses +EEPROM - PROTECT + Zresetuj bezpieczniki +EEPROM jest chroniony + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset Fuses</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Fuses in the AVR tell it how to behave. Pressing this button sets the fuses to the default parameters needed in the </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">FW. These parameters are different for stock and 4.1 MB, please verify you selected the appropriate processor type in preferences.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This button also clears the &quot;EEPROM protect&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This causes erasing of the EEPROM when the flash memory is written.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">WARNING</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Setting fuses can lead to problems and even a total lockout from your controller. Do this only if you know what you are doing.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When in doubt consult either the project's page or the 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">If you do get locked out - google lookup for &quot;dealing with Fuse Bricks&quot;.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset bezpieczników</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Bezpiecznieki w AVR opisz zachowanie. Naciśnięcie tego przycisku ustawia bezpieczniki do domyślnych parametrów potrzebnych w FW. Parametry te są różne dla zwykłej oraz 4,1 płyty głównej, sprawdź, czy wybrano odpowiedni typ procesora w preferencjach.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ten przycisk róznież ustawia &quot;Bezpiecznik ochrony EEPROM&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">To ochrania EEPROM przed wymazaniem gdy flaszujesz radio.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ustawianie bezpieczników moze prowadzić do problemów łacznie z całkowitym zablokowaniem twojego radia. Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Gdy masz wątpliwości skonsultuj się ze stroną projektu lub na 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Jeśli urządzeni zostanie zablokowane przeszukaj google w celu znalezienia &quot;Jak naprawić Fuse BRICK &quot;.</span></p></body></html> + + + + Reset Fuses +EEPROM - DELETE + Zresetuj bezpieczniki +EEPROM będzie skasowany + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">WARNING</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Changing the fuses can mess up your radio.</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Proceed only if you know what you are doing.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zmiana ustawień bezpieczników może zepsuć swoje radio.</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</p></body></html> + + + + joystickDialog + + + Configure Joystick + Ustaw joystick + + + + Ch2 + Kanał 02 + + + + + + + + + + + Not Assigned + Nie przydzielono + + + + + + + + + + + Right Vertical + Prawy pionowy + + + + + + + + + + + Right Horizontal + Prawy poziomy + + + + + + + + + + + Left Vertical + Lewy pionowy + + + + + + + + + + + Left Horizontal + Lewy poziomy + + + + + + + + + + + P1 + Potencjometr 1 + + + + + + + + + + + P2 + Potencjometr 2 + + + + + + + + + + + P3/LS + Potencjometr 3 /Lewy suwak + + + + + + + + + + + RS + Prawy suwak + + + + Ch1 + Kanał 01 + + + + Ch4 + Kanał 04 + + + + Ch6 + Kanał 06 + + + + Ch3 + Kanał 03 + + + + Ch5 + Kanał 05 + + + + Ch7 + Kanał 07 + + + + Ch8 + Kanał 08 + + + + Instructions + Instrukcja + + + + Cancel + Przerwij + + + + Next + Następny + + + + Ok + OK + + + + Move sticks and pots in every direction making full movement +Press next when finished + Poruszaj drązkami i potencjometrami w pełnym możliwym zakresie. +Naciśnij Dalej po skończeniu + + + + + Error + Błąd + + + + Cannot open joystick. + Nie mogę otwórz joysticka. + + + + Place sticks and pots in middle position. +Press next when done + Ustaw drążki i potencjometry w środku. +Naciśnij Dalej po skończeniu + + + + Map joystick channels to controls using comboboxes. +Press next when done + Zmapuj kanały joysticka używają comboboxów. +Naciśnij Dalej po skończeniu + + + + Check inversion checkbox to get maximum at top-right position. +Press next when done + Sprawdż checkbox rewersu w celu uzyskania maksimum w górnej prawej pozycji. +Naciśnij Dalej po skończeniu + + + + Press ok to save configuration +Press cancel to abort joystick calibration + Naciśnij OK w celu zapisu, Anuluj w celu przerwania kalibracji joysticka. +Tlačítkem Zrušit přerušíte kalibraci + + + + Duplicated stick assignement + Duplicitní přiřazení Drążki + + + + logsDialog + + + Companion Log Viewer + Companion - przegląd logów + + + + Filename + nazwa pliku + + + + Open LogFile + Otwórz plik logu + + + + Zoom + Przybliżenie + + + + X + X + + + + Y + Y + + + + Fly sessions + Loty + + + + Telemetry logs + Logi Telemetrii + + + + Time + Czas + + + + Error + Błąd + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + Select your log file + Wybierz plik loga + + + + Available fields + Dostępne pola + + + + The selected logfile contains %1 invalid lines out of %2 total lines + Wybrany plik zawiera %1 błędnych linii z %2 wszystkich linii + + + + mdiChild + + + Simulate Tx + Symulacja radia + + + + modelConfigDialog + + + Model Configuration Wizard + Kreator ustawień modelu + + + + Engine + Silnik + + + + Model Type + Typ modelu + + + + Airplane + Samolot + + + + Helicopter + Heli + + + + Glider + Szybowiec + + + + Wing + Skrzydła + + + + Aileron controls + Lotki + + + + No Ailerons + Bez lotek + + + + 1 Servo (or Y) + Jedno serwo (lub odwracający Y kabel) + + + + + + 2 Servos + Dwa serwa + + + + Flaps controls + Klapy + + + + No Flaps + Bez klap + + + + 1 Servo (or inverting Y) + Jedno serwo (lub Y kabel) + + + + Spoilers + Przerywacze + + + + No Spoilers/Airbrakes + Bez przerywaczy/hamulców + + + + 1 Servo (or Y or inverting Y) + Jedno serwo (lub Y kabel) + + + + Swash Plate + Tarcza + + + + Swash plate + Tarcza + + + + 90° / Fixed / Coax + + + + + 120° + + + + + 120X° + + + + + 140° + + + + + FlyBarLess + + + + + Tail + Ogon + + + + Tail controls + Kontrola ogona + + + + 1 Servo Elevator / 1 Servo Rudder + 1x serwo SW / 1x serwo SK + + + + V Tail + Deltamix (Usterzenie motylkowe) + + + + 2 Servos Elevator / 1 Servo Rudder + 2x serwo SW / 1x serwo SK + + + + Gyroscope + Gyro + + + + NoGyro + Bez gyra + + + + Switch control + Kontrola przełącznikem + + + + Pot control + Kontrola potencjometrem + + + + Channel style + Styl kanału + + + + Open9x Style + Styl Open9x + + + + Futaba Style + Styl Futaba + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + 9 + + + + + 1 + + + + + 10 + + + + + Ele2 + SW2 + + + + Use advanced controls + Użyj zaawansowanych ustawień + + + + Spoiler2 + Przerywacz2 + + + + Flap2 + Klapa2 + + + + Flap1 + Klapa1 + + + + Rud2 + SK2 + + + + + + + + + + AUTO + + + + + + + + + + + CH01 + Kanał 01 + + + + + + + + + + CH02 + Kanał 01 + + + + + + + + + + CH03 + Kanał 03 + + + + + + + + + + CH04 + Kanał 04 + + + + + + + + + + CH05 + Kanał 05 + + + + + + + + + + CH06 + Kanał 06 + + + + + + + + + + CH07 + Kanał 07 + + + + + + + + + + CH08 + Kanał 08 + + + + + + + + + + CH09 + Kanał 09 + + + + + + + + + + CH10 + Kanał 10 + + + + Ail2 + Lotka2 + + + + Spoiler 1 + Przerywacz1 + + + + Delta wing + Skrzydło delta + + + + + Not present + Brak + + + + Present + Jest + + + + Rudder + SK + + + + Single rudder + Pojedynczy SK + + + + Dual rudder (with 2 servos) + Podwójny SK (dwa serwa) + + + + Apply configuration ? + Zastosować konfigurację ? + + + + Apply configuration deleting existing model ? + Zastosować konfigurację kasując instniejący model ? + + + + preferencesDialog + + + Preferences + Preferencje + + + + Check for selected Fw updates + Sprawdź aktualizacje firmware + + + + Ask use of wizard for new models + Zapytać czy używać konfiguratora nowych modeli + + + + Invert Pixels + Odwrócić piksele + + + + + ... + + + + + Remember switches in simulator + Zapamietać przaełaczniki w symulatorze + + + + Enable + Włącz + + + + Calibrate + Kalibruj + + + + + + + Open Folder + Otwórz katalog + + + + FwInfo + + + + + Check for updates + Sprawdź aktualizacje + + + + Open Image + Otwórz obrazek + + + + Language + Język + + + + + Download + Pobierz + + + + Set language of voice. +May be different from firmware language + Ustaw język komuniaktów głosowych (). +Moze być inny od języka firmware + + + + Voice + Komuniakty głosowe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CheckBox + + + + + Ask for flashing after Download + Zapytaj o flaszowanie po pobraniu + + + + Export Profile + Eksport profili + + + + Import Profile + Import profili + + + + Profile Name + Nazwa profilu + + + + Automatically add version number to the filename after download + Automatycznie dodaj numer wersji do nazwy pliku po pobraniu + + + + Save Profile + Zapisz profil + + + + Show Splash At Start + Pokazuj ekran startowy z logo + + + + Automatic Backup Folder + Automatyczny Katalog Backupów + + + + Simu BackLight + BackLight Color + Kolor podświetlenia + + + + Blue + Niebieski + + + + Green + Zielony + + + + Red + Czerwony + + + + Orange + Pomarańczowy + + + + Yellow + Żółty + + + + Theme + Skórka + + + + + Requires restart + Wymagany restart + + + + Classic + Klasyczna + + + + Monochrome + Monochromatyczna + + + + MonoWhite + Mono-Biała + + + + MonoBlue + Mono-Niebieska + + + + Icon size + Wielkość Ikon + + + + Small + Mała + + + + Normal + Normalna + + + + Big + Duża + + + + Huge + Olbrzymia + + + + Check for updates on startup + Sprawdź aktualizacje na przy uruchomieniu + + + + Google Earth Executable + Wykonywalny plik Google Earth + + + + Find Executable + Znajdź wykonywalny plik + + + + Language (requires restart) + Język programu (wymaga restartu) + + + + Custom TX splash screen + Własny obrazek na wyświetlaczu + + + + Channel order + +This is used by the templated to determine which channel goes to what number output. + Kolejność kanałów + To ustawienie jest używane przez szablony, jakie wyjście przypisane jest do kanałów. + + + + Firmware + + + + + Default Stick Mode + Bazowy mod drążków + + + + Default Channel Order + Bazowa kolejność kanałów + + + + Personal splash library + Własna biblioteka obrazków + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + Wybór modu: + +Mode 1: + Lewa ręka : Ster Wysokości, Ster Kierunku + Prawa ręka : Gaz, Lotki + +Mode 2: + Lewa ręka : Gaz, Ster Kierunku + Prawa ręka : Ster Wysokości, Lotki + +Mode 3: + Lewa ręka : Ster Wysokości, Lotki + Prawa ręka : Gaz, Ster Kierunku + +Mode 4: + Lewa ręka : Gaz, Lotki + Prawa ręka : Ster Wysokości, Ster Kierunku + + + + + + Mode 1 (RUD ELE THR AIL) + Mod 1 (SK.SW.Gaz.Lot) + + + + Mode 2 (RUD THR ELE AIL) + Mod 2 (SK.Gaz.SW.Lot) + + + + Mode 3 (AIL ELE THR RUD) + Mod 3 (LOT.SW.Gaz.SK) + + + + Mode 4 (AIL THR ELE RUD) + Mod 4 (Lot.Gaz.SW.SK) + + + + Joystick + + + + + Include companion splashes + Załącz bazowe logo + + + + Only user defined splashes + Własne logo + + + + Splash library behaviour + Zachowanie bibliteki obrazków + + + + SD Structure path + Struktura karty SD + + + + Processor ID + ID procesora + + + + Recent History Size + Wielkość zapamietanej historii + + + + Profile slot + Slot profilu + + + + auto backup before write + Automatyczny backup przed zapisem + + + + Simulator capture folder + Katalog zapisu symulatora + + + + Use clipboard only + Użycie schowka do kopiowania + + + + Last downloaded release: %1 + Ostatnie pobrane wydanie: %1 + + + + Image stored in settings + Logo zapamietane w ustawieniach + + + + + No joysticks found + Brak oysticka + + + + Select the folder replicating your SD structure + Wybierz folder do zreplikowania struktury Twojej karty SD + + + + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? + Nazwa profilu jest pusta, slot %1 będzie skasowany.<br>Jesteś pewien ? + + + + Select your library folder + Support for SD memory card + Wybierz katalog bibliteki + + + + Select your snapshot folder + Katalog obrazków dla symulatora + + + + The selected firmware has never been downloaded by Companion. + Wybrany firmware nie został nigdy pobrany przez Companion. + + + + The selected firmware cannot be downloaded by Companion. + Companion nie moze pobrac wybranego firmware. + + + + Select your Models and Settings backup folder + Wybierz folder do backupowania Modeli i Ustawień + + + + Select Google Earth executable + Wybierz wykonywalny plik Google Earth + + + + + Error + Błąd + + + + + Cannot load %1. + nie mogę wczytać %1. + + + + Export profile As + Wyeksportuj profil jako + + + + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? + Slot profilu nie jest pusty, slot %1 zostanie zapisany.<br>Jesteś pewien ? + + + + Open Profile to import + Otworzyć PRofil do zaimportowania + + + + Open Image to load + Otworzyć obrazek + + + + Images (%1) + Obrazki (%1) + + + + printDialog + + + Dialog + + + + + Close + Zamknij + + + + Print + Drukuj + + + + Print to file + Drukuj do pliku + + + + Setup for: + Ustawianie: + + + + printed on: %1 + Wydrukowanno na: %1 + + + + General Model Settings + Główne ustawienia modelu + + + + + + + Name + Nazwa + + + + EEprom Size + Rozmiar EEPROM + + + + Timer1 + + + + + Timer2 + + + + + Protocol + Protokół + + + + Pulse Polarity + Polaryzacja pulsu + + + + Throttle Trim + Trymer gazu + + + + + + Enabled + Włączone + + + + + Disabled + Wyłaczone + + + + Throttle Expo + Expo gazu + + + + Trim Increment + Krok trymera + + + + Center Beep + Sygnał centrowania + + + + Flight modes Settings + Flight Phases Settings + Uztawienie faz lotu + + + + Fades + Przejścia + + + + Trims + Trymery + + + + Gvars + Zmienne globalne + + + + Rot.Enc. + Pokrętło. + + + + + + + + Switch + Przełącznik + + + + Logical Switches + Przełączniki Logiczne + + + + + LS + PL + + + + Switch Assignments + Przypisanie Przełączników + + + + IN + (+) + + + + OUT + (-) + + + + + + + FM + FP + LR + + + + Expo/Dr Settings + Ustawienia Expo/DR + + + + Weight + Vaga + + + + + + Curve + Krzywa + + + + Mixers + Miksery + + + + + + + + CH + Kanał + + + + noTrim + Bez trimu + + + + + + + + Offset + Ofset + + + + Delay(u%1:d%2) + Opóżnienie(u%1:d%2) + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + Warn + Ostrzeżenie + + + + + DISABLED + Wyłączone + + + + Limits + Limity + + + + + + + Min + + + + + + + + Max + Maks + + + + + + Invert + Odwrócenie + + + + + + INV + Odwr + + + + + + NOR + --- + + + + Curves + Krzywe + + + + pt %1 + pkt %1 + + + + Global Variables + Zmienne globalne + + + + GV + GZ + + + + Safety Switches + Przełączniki bezpieczeństwa + + + + + + + + Value + Wartość + + + + Function + Funkcja + + + + Parameter + Parametr + + + + Repeat + Powtórz + + + + Telemetry Settings + Ustawienia telemetrii + + + + + Alarm 1 + Alarm 1 + + + + + Alarm 2 + Alarm 2 + + + + Analog + Analog + + + + Unit + Jednostki + + + + Scale + Skala + + + + + + + Type + Typ + + + + + + + Condition + Warunek + + + + A%1 + + + + + RSSI Alarm + Alarm RSSI + + + + Frsky serial protocol + Protokół szeregowy Frsky + + + + System of units + System jednostek + + + + Propeller blades + Łopaty śmigła + + + + Telemetry Bars + Belki telemetrii + + + + Bar Number + Numer belki + + + + Source + Źródło + + + + ODF files (*.odt);;PDF Files(*.pdf);;HTML-Files (*.htm *.html);;All Files (*) + pliki ODF (*.odt);;pliki PDF (*.pdf);;pliki HTML (*.htm *.html);;Wszystkie pliki (*) + + + + + Custom Telemetry View + Widok telemetrii użytkownika + + + + Flight mode name + Nazwa trybu lotu + + + + + Flight modes + Tryby lotu + + + + + Flight mode + Tryb lotu + + + + Print Document + Drukuj dokument + + + + Select PDF output file + Wybierz docelowy plik PDF + + + + simulatorDialog + + + + + + Right Double Click to Reset + Powójne kliknięcie RP myszy w celu zresetowania + + + + THR + Gaz + + + + RUD + SK + + + + ELE + SW + + + + AIL + Lot + + + + + Hold X + Przytrzymaj X + + + + + Fix X + Zablokuj X + + + + + Fix Y + Zablokuj Y + + + + + Hold Y + Zablokuj Y + + + + + + + TextLabel + + + + + TRN + + + + + GEA + + + + + ID0 + + + + + ID1 + + + + + ID2 + + + + + P1 + Potencjometr1 + + + + + + 0 % + + + + + P2 + Potencjometr2 + + + + P3 + Potencjometr3 + + + + 9x Simulator + Symulator 9x + + + + Outputs + Wyjścia + + + + CS1 + PL1 + + + + CS2 + PL2 + + + + CS3 + PL3 + + + + CS4 + PL4 + + + + CS5 + PL5 + + + + CS6 + PL6 + + + + CS7 + PL7 + + + + CS8 + PL8 + + + + CS9 + PL9 + + + + CSA + PLA + + + + CSB + PLB + + + + CSC + PLC + + + + CSD + PLD + + + + CSE + PLE + + + + CSF + PLF + + + + CSG + PLG + + + + CSH + PLH + + + + CSI + PLI + + + + CSJ + PLJ + + + + CSL + PLL + + + + CSM + PLM + + + + CSN + PLN + + + + CSO + PLO + + + + CSP + PLP + + + + CSQ + PLQ + + + + CSR + PLR + + + + CSS + PLS + + + + CST + PLT + + + + CSU + PLU + + + + CSV + PLV + + + + BEEP + Zvuk + + + + Companion Simulator + Symulator Companion + + + + CSK + SWK + PLK + + + + CSW + SWW + PLW + + + + CH1 + Kanał 01 + + + + + + + + + + + + + + + + + + + -100.1 + + + + + CH9 + Kanał 09 + + + + CH2 + Kanał 02 + + + + CH10 + Kanał 10 + + + + CH3 + Kanał 03 + + + + CH11 + Kanał 11 + + + + CH4 + Kanał 04 + + + + CH12 + Kanał 12 + + + + CH5 + Kanał 05 + + + + CH13 + Kanał 13 + + + + CH6 + Kanał 06 + + + + CH14 + Kanał 14 + + + + CH7 + Kanał 07 + + + + CH15 + Kanał 15 + + + + CH8 + Kanał 08 + + + + CH16 + Kanał 16 + + + + + Warning + Ostrzeżnie + + + + Joystick enabled but not configured correctly + Joystick uaktywniony ale nieprawidłowo skonfigurowany + + + + Cannot open joystick, joystick disabled + Nie mogę otworzyć joysticka, dezaktywowany + + + + Firmware %1 error: %2 + Firmware %1 błąd: %2 + + + + - Flight mode: %1(%2) + - Tryb lotu: %1(%2) + + + + Simulating Tx (%1) + Symulacja Tx (%1) + + + + Simulating + Symulacja + + + + splashLibrary + + + + ... + + + + + Splash Library - page %1 of %2 + Biblioteka obrazków - strona %1 z %2 + + + + Warning + Ostrzeżenie + + + + Invalid image in library %1 + Nieprawidłowy obrazek w bibliotece %1 + + + + Information + Informacja + + + + No valid image found in library, check your settings + Nie znaleziono prawodłowego obrazka w biblitece, sprawdź ustawienia + + + + xsimulatorDialog + + + + + SF + + + + + + SE + + + + + + SA + + + + + + SB + + + + + + + + Right Double Click to Reset + Podwójne klikniecie RP myszy w celu zresetowania + + + + + + + TextLabel + + + + + + Hold X + Przytrzymaj X + + + + + Fix X + Zablokuj X + + + + + Fix Y + Zablokuj Y + + + + + Hold Y + Przytrzymaj Y + + + + + SH + + + + + + SG + + + + + + SD + + + + + + SC + + + + + + S2 + Poten 2 + + + + + RS + P suwak + + + + + S1 + Poten 1 + + + + + LS + L suwak + + + + Outputs + Wyjścia + + + + CH1 + Kanał 01 + + + + Taranis Simulator + Symulator Taranis + + + + Companion Simulator + Symulator Companion + + + + + + + + + + + + + + + + + + + -100.1 + + + + + CH9 + Kanał 09 + + + + CH2 + Kanał 02 + + + + CH10 + Kanał 10 + + + + CH3 + Kanał 03 + + + + CH11 + Kanał 11 + + + + CH4 + Kanał 04 + + + + CH12 + Kanał 12 + + + + CH5 + Kanał 05 + + + + CH13 + Kanał 13 + + + + CH6 + Kanał 06 + + + + CH14 + Kanał 14 + + + + CH7 + Kanał 07 + + + + CH15 + Kanał 15 + + + + CH8 + Kanał 08 + + + + CH16 + Kanał 16 + + + + CSK + PLK + + + + CSC + PLC + + + + CSD + PLD + + + + CS7 + PL7 + + + + CSL + PLL + + + + CSB + PLB + + + + CS1 + PL1 + + + + CSH + PLH + + + + CSG + PLG + + + + CSE + PLE + + + + CSF + PLF + + + + CS8 + PL8 + + + + CS9 + PL9 + + + + CSA + PLA + + + + CSM + PLM + + + + CSJ + PLJ + + + + CSI + PLI + + + + CS4 + PL4 + + + + CS5 + PL5 + + + + CS2 + PL2 + + + + CS3 + PL3 + + + + CS6 + PL6 + + + + CSN + PLN + + + + CSO + PLO + + + + CSP + PLP + + + + CSQ + PLQ + + + + CSR + PLR + + + + CSS + PLS + + + + CST + PLT + + + + CSU + PLU + + + + CSV + PLV + + + + CSW + PLW + + + + + Warning + Osrzeżenie + + + + Joystick enabled but not configured correctly + Joystick aktywny ale nie skonfogurowany prawidłowo + + + + Cannot open joystick, joystick disabled + Nie mogę otworzyć joystika, Joystik wyłaczony + + + + Firmware %1 error: %2 + Firmware %1 bład: %2 + + + + - Flight mode: %1(%2) + - Tryb lotu: %1(%2) + + + + Simulating Tx (%1) + Symulacja Tx (%1) + + + + Simulating + Symulacja + + + diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index dad124c89..975950d96 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -2,47 +2,465 @@ - ExpoDialog + Channels - + + Name + Namn + + + + Offset + Offset + + + + Min + Min + + + + Max + Max + + + + Invert + Invertera + + + + Center + Centrum + + + + Sym + Sym + + + + Channel %1 + Kanal %1 + + + + --- + ---- + + + + INV + INV + + + + CurveGroup + + + Diff + Diff + + + Expo Expo - - - Phase used by the expo. - Flygläge som används av expo. + + Func + Funk - + + Curve + Kurva + + + + Curves + + + Form + Form + + + + Standard + Standard + + + + Custom + Special + + + + Lines + Rader + + + + Smooth + Mjuk + + + + Curve type + Kurvtyp + + + + Curve name + Kurvans namn + + + + Curve %1 + Kurva %1 + + + + %1 points + %1 punkter + + + + Are you sure you want to reset curve %1 ? + Vill du verkligen nollställa kurvan %1 ? + + + + Editing curve %1 + Redigera kurvan %1 + + + + Not enough free points in EEPROM to store the curve. + Kurvan får inte plats i minnet. + + + + CustomFunctionsPanel + + Switch Brytare - - Switch used by the expo. -If blank then the expo is considered to be "ON" all the time. - Brytare som används av expo. -Om fältet lämnas tomt så är expo påslaget hela tiden. + + Parameters + Parametrar - + + Enable + Slå på + + + + Action + Effekt + + + + ON + På + + + + Error + Fel + + + + Unable to find sound file %1! + Kan inte hitta ljudfilen %1! + + + + &Delete + &Ta bort + + + + Delete + Ta bort + + + + &Copy + &Kopiera + + + + Ctrl+C + Ctrl+C + + + + &Cut + Klipp &Ut + + + + Ctrl+X + Ctrl+X + + + + &Paste + Klistra &In + + + + Ctrl+V + Ctrl+V + + + + CustomSwitchesPanel + + + V1 + V1 + + + + V2 + V2 + + + + AND + OCH + + + + Duration + Varaktighet + + + + Delay + Fördröjning + + + + Condition + Villkor + + + + + LS%1 + LB%1 + + + + &Delete + &Ta bort + + + + Delete + Ta bort + + + + &Copy + &Kopiera + + + + Ctrl+C + Ctrl+C + + + + &Cut + Klipp &Ut + + + + Ctrl+X + Ctrl+X + + + + &Paste + Klistra &In + + + + Ctrl+V + Ctrl+V + + + + Dialog + + + Dialog + Dialog + + + + Curve type + Kurvtyp + + + + Coefficient + Koeffecient + + + + Both + Båda + + + + x>0 + x>0 + + + + x<0 + x<0 + + + + Y at X=0 + Y vid X=0 + + + + Side + Sida + + + + Y at X=-100 + Y vid X=100 + + + + Y at X=100 + Y vid X=100 + + + + Linear + Linjär + + + + Single Expo + Single Expo + + + + Symmetrical f(x)=-f(-x) + Symmetrisk f(x)=-f(-x) + + + + Symmetrical f(x)=f(-x) + Symmetrisk f(x)=f(-x) + + + + ExpoDialog + + + Switch + Brytare + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Delay ans Slow</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These values control the speed and delay of the output of the mix. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Fördröjning och Tröghet</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dessa värden kontrollerar fördröjning och tröghet i utdata till mixern. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Om Fördröjningen inte är noll kommer påverkan på mixen att fördröjas med det angivna antelet sekunder.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Om Tröghet inte är noll kommer hastigheten i förändringar att begränsas av det angivna värdet -&gt; värdet specificerar det antal sekunder det tar att gå från fullt negativt utslag (-100) till fullt positivt utslag(100).</p></body></html> + + + + Scale + Skala + + + + Include Trim + Inkludera trim + + + + No + Nej + + + + Yes + Ja + + + Curve Kurva - - The curve used by the expo - Kurvan som används av expo + + Source + Källa - + + Line name + Linjenamn + + + NEG Negativa - + + The source for the mixer + Mixerkälla + + + + Input name + Filternamn + + + + Switch used by the input. +If blank then the input is considered to be "ON" all the time. + Brytare som används av filret. +Om fältet lämnas tomt så är filtret aktivt hela tiden. + + + POS Positiva @@ -52,22 +470,17 @@ Om fältet lämnas tomt så är expo påslaget hela tiden. Alla - + Weight Vikt - - DEST -> %1 - DEST -> %1 + + Phase used by the input. + Flygläge som används av filtret. - - Name - Namn - - - + 0 0 @@ -112,27 +525,147 @@ Om fältet lämnas tomt så är expo påslaget hela tiden. 8 - - Curve/Exponential - Kurva/Expo + + The curve used by the input + Kurva som används av filtret - - - + + GV GV - + Flight modes Flyglägen - + Stick Side Spakvärden + + + Edit %1 + Redigera %1 + + + + Rud + Rod + + + + Ele + Höj + + + + Thr + Gas + + + + Ail + Ske + + + + FlightMode + + + Form + Form + + + + Fade In + Tona in + + + + Fade Out + Tona ut + + + + Name + Namn + + + + Switch + Brytare + + + + trim1 + trim1 + + + + trim2 + trim2 + + + + trim4 + trim4 + + + + trim3 + trim3 + + + + Rud + Rod + + + + Ele + Höj + + + + Thr + Gas + + + + Ail + Ske + + + + Rotary Encoder %1 + Inmatningshjul %1 + + + + GVAR%1 + GVAR%1 + + + + FlightModes + + + Flight Mode %1 + Flygläge %1 + + + + (%1) + (%1) + + + + (default) + (default) + GeneralEdit @@ -154,13 +687,13 @@ Dessa inställningar gäller för alla modeller. Sändarinställningar - + Contrast LCD-kontrast - - + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -175,12 +708,12 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Värden mellan 20 och 45</span></p></body></html> - + Sound Mode Ljudläge - + Beeper Summer @@ -190,7 +723,7 @@ p, li { white-space: pre-wrap; } Högtalarton (endast högtalare) - + Battery Warning Batterivarning @@ -218,7 +751,7 @@ This value will be added to the measured battery voltage. Use this value to cal Detta värde läggs till det uppmätta värdet för batterispänningen. Använd värdet för att kalibrera den inbyggda spänningsmätaren. - + This is the switch selectrion for turning on the backlight (if installed). @@ -232,18 +765,18 @@ Detta värde läggs till det uppmätta värdet för batterispänningen. Använd Anger antaletl sekunder som bakgrundsbelysningenförblir påslagen efter senaste knapptryck. - - + + sec sek - + Inactivity Timer Inaktivitetstimer - + If not zero will sound beeps if the transmitter has been left without inputs for the specified number of minutes. Efter det angivna antalet minuter av inaktivitet ljuder en varningssignal. 0 förhindrar larm. @@ -253,12 +786,12 @@ Detta värde läggs till det uppmätta värdet för batterispänningen. Använd min - + Timer Beeps Timerpip - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -304,44 +837,22 @@ p, li { white-space: pre-wrap; } Blinka vid pip - - Reverse Throttle Operation - Inverterad gas - - - - Reverse throttle operation. -If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. - - - Inverterad gas. -Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och gasvarning reverseras också. - - - - - + Show Splash Screen on Startup Visa Startbild - + Show splash screen on startup Visa bild vid start av sändare - - Throttle Startup Warning - Varning för påslagen gas vid start - - - - - - - - + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -366,27 +877,22 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Tyst varning - varnar om summern är satt till tyst läge</p></body></html> - - Switch Startup Warning - Brytarvarning vid start - - - + Memory Startup Warning Minnesvarning vid start - + Alarm Warning Alarmvarning vid start - + Channel Order (For Templates) Kanalordning (för mallar) - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -395,12 +901,12 @@ This is used by the templated to determine which channel goes to what number out Används av mallarna för att koppla ihop kanaler med numrerade utgångar. - + Stick Mode Spak-tilldelning - + Mode selection: Mode 1: @@ -461,13 +967,13 @@ Mode 4: Mode 4 (SKE GAS HÖJ ROD) - + Beeper Mode Summerläge - - + + @@ -491,19 +997,19 @@ Mode 4: 4 - Extra högt. - - + + Quiet Tyst - - + + No Keys Ej vid knapptryck - + Normal Normal @@ -515,7 +1021,7 @@ Mode 4: Lång - + Input Filter Filtrering av indata @@ -535,13 +1041,12 @@ Mode 4: Filter - + Owner Name Ägare - - + @@ -549,17 +1054,7 @@ Mode 4: Av - - Switches Up - Brytare upp - - - - Switches Down - Brytare ned - - - + @@ -596,28 +1091,28 @@ Mode 4: Läge - + Telemetry NO DATA Alarm Slå på telemetrilarm - + Show Owner Name on Splash Visa ägarens namn på startbilden - + Only Alarms Endast vid alarm - + All För alla händelser - + THR GAS @@ -657,12 +1152,12 @@ Mode 4: ID2 - + Beeper Length Längd på summerton - + X-Short Extra Kort @@ -685,12 +1180,12 @@ Mode 4: Vibrationsläge - + Readonly Unlock Upphäv Skrivskyddet - + SC SC @@ -730,7 +1225,7 @@ Mode 4: SG - + Weight Vikt @@ -836,12 +1331,12 @@ Mode 4: PPM Multiplikator - + Pot Scrolling Enable Bläddra med potentiometer - + Bandgap Measuring Enable Mät bandluckor @@ -851,7 +1346,7 @@ Mode 4: Endast för alarm - + Trainer Slavsändare @@ -888,12 +1383,12 @@ Mode 4: POT 3 - + Timeshift from UTC Tidsdifferens till UTC - + GPS Coordinates GPS-koordinater @@ -908,17 +1403,17 @@ Mode 4: NMEA - + Haptic Length Vibrationstid - + LCD Display Type LCD-typ - + Standard Standard @@ -928,7 +1423,7 @@ Mode 4: Optrex - + Store calib. and hw settings in selected profile Spara kalibrering och hårdvaruinställningar i vald profil @@ -938,22 +1433,22 @@ Mode 4: Hämta kalibrering och hårdvaruinställningar från vald profil - + Speaker Volume Högtalarvolym - + Haptic Strength Vibrationsstyrka - + BackLight Brightness Belysningens ljusstyrka - + Negative span Negativa värden @@ -976,7 +1471,7 @@ Mode 4: Spänning - + Warning Varning @@ -1002,7 +1497,7 @@ Mode 4: Kalibrering ojch hårdvaruinställningar sparades. - + Speaker Högtalare @@ -1017,42 +1512,42 @@ Mode 4: Högtalarton - + RotEnc Navigation RotEnc Navigering - + BackLight Auto OFF after Belysning av efter - + BackLight Switch Belysningsbrytare - + BackLight On Stick Move Belysning vid spakrörelse - + BackLight Invert Invertera belysningen - + FrSky Internal Alarm FrSky Internlarm - + If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio. Om du väljer FAI-läget så stängs varion, uppspelningsfunktionerna och telemetri-skärmen av permanent. FAI-funktionen kan inte slås av i sändaren. - + FAI Mode FAI-läge @@ -1062,12 +1557,12 @@ Mode 4: Spakscrollning - + CrossTrim Kross-trimning - + Country Code Landskod @@ -1087,7 +1582,7 @@ Mode 4: Amerika - + Metric Meter, Centimeter, Millimeter @@ -1097,17 +1592,17 @@ Mode 4: Yard, Fot, Tum - + Measurement Units Måttenheter - + Voice Language Språk för Röst - + PPMSim PPMSim @@ -1141,12 +1636,12 @@ FAI-funktionen kan inte slås av i sändaren. Ljudstyrka Bakgrund - + MAVLink Baud Rate MAVLink Baud Rate - + 4800 Baud 4800 Baud @@ -1186,7 +1681,7 @@ FAI-funktionen kan inte slås av i sändaren. 115200 Baud - + @@ -1207,18 +1702,228 @@ FAI-funktionen kan inte slås av i sändaren. POT 4 + + Heli + + + Form + Form + + + + Invert Elevator + Invertera höjdroder + + + + Invert Aileron + Invertera skevroder + + + + Invert Collective + Invertera collective + + + + Invert + Invertera + + + + Off + Av + + + + 120 + 120 + + + + 120X + 120X + + + + 140 + 140 + + + + 90 + 90 + + + + Collective + Collective + + + + Swash Type + Swashtyp + + + + Swash Ring + Swashring + + + + InputsPanel + + + + Move Up + Flytta uppåt + + + + + Ctrl+Up + Ctrl+Up + + + + + Move Down + Flytta nedåt + + + + + Ctrl+Down + Ctrl+Down + + + + Source(%1) + Källa(%1) + + + + No Trim + Ingen Trim + + + + Weight(%1) + Vikt(%1) + + + + Switch(%1) + Brytare(%1) + + + + Clear All Settings + Radera alla inställningar + + + + Not enough available inputs! + För få filter är tillgängliga! + + + + Delete Selected Inputs? + Radera valda filter? + + + + &Add + &Lägg till + + + + Ctrl+A + CTRL+A + + + + &Edit + &Redigera + + + + Enter + Retur + + + + &Delete + &Ta bort + + + + Delete + Ta bort + + + + &Copy + &Kopiera + + + + Ctrl+C + Ctrl+C + + + + &Cut + Klipp &Ut + + + + Ctrl+X + Ctrl+X + + + + &Paste + Klistra &In + + + + Ctrl+V + Ctrl+V + + + + Du&plicate + &Duplicera + + + + Ctrl+U + Ctrl+U + + + + Clear Inputs? + Radera Filter? + + + + Really clear all the inputs? + Vill du verkligen ta bort alla filter? + + MainWindow - - + + - + File loaded Filen har laddats - + @@ -1264,7 +1969,7 @@ Do you want to download it now ? Vill du ladda ned den nya versionen nu ? - + Open Öppna @@ -1275,29 +1980,18 @@ Vill du ladda ned den nya versionen nu ? Filen sparades - + Copyright Copyright - - donating - bidra - - - - + &%1 %2 &%1 %2 - - %1 %2 - %1 %2 - - - + &New &Ny @@ -1352,7 +2046,7 @@ Vill du ladda ned den nya versionen nu ? &Sök efter uppdateringar... - + Display previous message again at startup ? Skall föregående varning visas igen vid uppstart ? @@ -1381,37 +2075,27 @@ Version %2 finns tillgänglig. Vill du ladda ned den nu ? - + Write Models and settings from %1 to the Tx? Skriv Modeller och Inställningar från %1 till sändaren? - + Conversion failed Konverteringen misslyckades - + Restore failed Återställningen misslyckade - + Backup failed Säkerhetskopieringen misslyckades - - Version %1 (revision %2), %3 - Version %1 (revision %2), %3 - - - - If you've found this program useful, please support by - Om du tycker att programet är användbart så kan du stödja utvecklingen genom att - - - + Customize your &TX... Sändari&nställningar... @@ -1421,7 +2105,7 @@ Vill du ladda ned den nu ? Ställ in din sändares startlbild - + E&xit &Avsluta @@ -1431,7 +2115,7 @@ Vill du ladda ned den nu ? Avsluta programmet - + Cu&t Klipp &Ut @@ -1461,7 +2145,7 @@ Vill du ladda ned den nu ? Klistra in klippbokens innehåll i det valda avsnittet - + Ctrl+Alt+W Ctrl+Alt+W @@ -1501,7 +2185,7 @@ Vill du ladda ned den nu ? Visa säkrings-dialog - + &Simulate S&imulera @@ -1531,67 +2215,7 @@ Vill du ladda ned den nu ? Skriv ut den valda modellen. - - Cl&ose - &Stäng - - - - Close the active window - Stäng det aktiva fönstret - - - - Close &All - Stäng &Alla - - - - Close all the windows - Stäng alla fönster - - - - &Tile - Sida &vid sida - - - - Tile the windows - Ordna fönstren bredvid varandra - - - - &Cascade - &Överlappande - - - - Cascade the windows - Låt fönstren överlappa varandra - - - - Ne&xt - &Nästa - - - - Move the focus to the next window - Ge fokus till nästa fönster - - - - Pre&vious - &Föregående - - - - Move the focus to the previous window - Ge fokus till föregående fönster - - - + &About &Om @@ -1601,58 +2225,73 @@ Vill du ladda ned den nu ? Visa information om programmet - - + + Recent Files Senaste Filer - - Switch layout Left/Right - Byt layout Höger/Vänster - - - + &File &Arkiv - - Switch layout direction - Byt layout-riktning - - - - + + Companion - Models and Settings Editor - %1 - profile %2 Companion - Editor för Modeller och Inställningar - %1 - profile %2 - - + + - + Companion - Models and Settings Editor - %1 Companion - Editor för Modeller och Inställningar - %1 - + Checking for updates Letar efter uppdateringar - + + A new release of Companion is available please check the OpenTX website! + En ny version av Companion finns tillgänglig. Var god kontrollera OpenTX webbsida! + + + Ignore this version (r%1)? Ladda inte ned versionen (r%1)? - + + OpenTX Home Page: <a href='%1'>%1</a> + OpenTX Hemsida: <a href='%1'>%1</a> + + + + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> + OpenTX-projektet grenades ursprungligen av från <a href='%2'>eePe</a> + + + + If you've found this program useful, please support by <a href='%1'>donating</a> + Om du tycker att programet är användbart så kan du stödja utvecklingen genom att <a href='%1'>donera</a> + + + + Version %1, %3 + Version %1, %3 + + + Show Companion changelog Visa en lista med förändringar av Companion - + &Write Models and Settings To Tx &Skriv Modeller och Inställningar till sändaren @@ -1712,47 +2351,42 @@ Vill du ladda ned den nu ? Läs firmware från sändaren - + &Edit &Redigera - - &Window - &Fönster - - - + &Help &Hjälp - + File Arkiv - + Edit Redigera - + Help Hjälp - + Ready Redo - + Contributors &List... &Bidragsgivare... - + Display previous warning again at startup ? SKall föregående varning visas igen vid uppstart ? @@ -1761,8 +2395,8 @@ Vill du ladda ned den nu ? - - + + @@ -1774,21 +2408,21 @@ Vill du ladda ned den nu ? Fel - + Cannot write file %1: %2. Filen %1 kunde inte skrivas: %2. - + New release available En ny version finns tillgänglig - + Error opening file %1: @@ -1797,7 +2431,7 @@ Vill du ladda ned den nu ? %2. - + Compilation server termporary failure, try later Tillfälligt fel i byggservern. Försök igen senare @@ -1814,7 +2448,7 @@ Vill du ladda ned den nu ? Okänt server-fel. Försök igen senare - + Compare... Jämför... @@ -1824,43 +2458,43 @@ Vill du ladda ned den nu ? Jämför modeller - - - + + + Backup is impossible Säkerhetskopiering kan inte utföras - - - + + + The backup dir set in preferences does not exist Foldern för säkerhetskopior existerar inte - - + + Warning Varning - - + + Firmware Profiles Profiler för Firmware - + &Read/Write &Läs/Skriv - + Write Skriv - + Unable to find file %1! Kan inte hitta filen %1 ! @@ -1872,7 +2506,7 @@ Vill du ladda ned den nu ? %2. - + &loadBackup... ladda&Backup... @@ -1897,24 +2531,24 @@ Vill du ladda ned den nu ? Öppna loggfil - + - - - + + + Taranis radio not found Hittade inte någon Taranis-sändare - + - - + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Det går inte att identifiera sändaren. Verifiera att EEPOROM-skivan är ansluteten. - + Yes Ja @@ -1925,12 +2559,7 @@ Vill du ladda ned den nu ? An ny version av Companion finns tillgänglig (version %1)<br>Vill du ladda ned den? - - A new release of Companion is available please check the repository - En ny version av Companion finns tillgänglig. Kontrollera källkods-repository - - - + Compilation server requires registration, please check OpenTX web site Byggservern kräver registrering. Var god kontrollera OpenTX webbsida @@ -1959,7 +2588,7 @@ Vill du ladda ned den nu ? Release notes innehåller väldigt viktig information. Vill du läsa dem nu? - + Firmware updates Firmware-uppdatering @@ -1971,13 +2600,13 @@ Vill du ladda ned den nu ? - - + + Read Models and Settings From Tx Läs Modeller och Inställningar från sändaren - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -1988,15 +2617,15 @@ Starta skrivningen i alla fall ? - - - - + + + + Backup Models and Settings From Tx Säkerhetskopiera Modeller och Inställningar från sändaren - + Cannot check Models and Settings compatibility! Continue anyway? Det går inte att verifiera att Modeller och Inställningar är kompatibla. Fortsätt i alla fall? @@ -2006,23 +2635,23 @@ Starta skrivningen i alla fall ? Sändarens firmware är av en annan typ än den aktuella. Kontrollera Arkiv och Inställningar! - + The transmitter firmware is outdated, please upgrade! Firmware i sändaren är föråldrad. Var god uppgradera! - + Write Models and Settings To Tx Skriv Modeller och Inställningar till sändaren - - + + Write Firmware To Tx Skriv firmware till sändaren - + Cannot convert Models and Settings for use with this firmware, original data will be used Modeller och Inställningar kan inte översättas till denna firmware. Ingen information uppdateras @@ -2032,12 +2661,12 @@ Starta skrivningen i alla fall ? Återställ Modeller och Inställningar till sändaren - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Det gick inte att återställa Modeller och Inställningar till sändaren. Modeller och Inställningar finns i filen %1 - + Firmware write failed Skrivningen av firware misslyckades @@ -2047,12 +2676,12 @@ Starta skrivningen i alla fall ? Det gick inte att skriva firmware till sändaren. Modeller och Inställningar finns i filen %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Det gick inte att säkerhetskopiera sändarens Modeller och Inställningar. Skrikvningen av firmware avbröts - + Save transmitter Models and Settings to File Spara sändarens Modeller och Inställningar till en fil @@ -2062,22 +2691,17 @@ Starta skrivningen i alla fall ? Det går inte att identifiera sändaren. - + Read Tx Firmware to File Läs Sändarens Firmware till Fil - - The Companion project was originally forked from eePe - Ursprungligen grenades Companion av från eePe - - - + About Companion Om Companion - + Check for new version of Companion Sök efter ny version av Companion @@ -2102,7 +2726,7 @@ Starta skrivningen i alla fall ? Visa firmware-förändringar - + Invalid Models and Settings File %1 Filen innehåller inte Modeller och Inställningar: %1 @@ -2116,7 +2740,7 @@ Starta skrivningen i alla fall ? MdiChild - + @@ -2131,7 +2755,7 @@ Starta skrivningen i alla fall ? - + @@ -2139,36 +2763,36 @@ Starta skrivningen i alla fall ? Fel - + Editing model %1: Redigera modell %1: - + Unable to find file %1! Kan inte hitta filen %1 ! - - + + Error reading file %1: %2. Fel vid inläsning från filen %1: %2. - + - + Error opening file %1: %2. Fel vid öppning av filen %1: %2. - + @@ -2194,12 +2818,12 @@ Starta skrivningen i alla fall ? %2. - + free bytes bytes lediga - + Invalid EEPROM File %1 Ogiltig modelldatafil %1 @@ -2240,18 +2864,18 @@ Vill du spara förändringarna? - - + + Backup EEPROM From Tx Säkerhetskopiera modelldata från sändaren - + Cannot check eeprom compatibility! Continue anyway? Det går inte att veriifiera att modelldata är kompatibla. Fortsätt i alla fall? - + Warning Varning @@ -2267,7 +2891,7 @@ Vill du spara förändringarna? Firmware i flashminnet är föråldrat. Var god uppgradera! - + Open Öppna @@ -2277,26 +2901,26 @@ Vill du spara förändringarna? Den binära backupfilen är felaktig %1 - - - + + + Taranis radio not found Taranis-sändaren hittades ej - - - + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Det går inte att identifiera sändaren. Verifiera att EEPOROM-skivan är ansluteten. - + Write EEPROM To Tx Skriv EEPROM till sändaren - + Do you want to use model wizard? Vill du använda modell-guiden? @@ -2309,70 +2933,67 @@ Vill du spara förändringarna? MixerDialog - + Dialog Dialog - + Source Källa - - - + + + The source for the mixer Mixerkälla - + Weight Vikt - - - - + Offset Offset - + Include Trim Inkludera trim - + Curve Kurva - + The curve used by the mix Mixerkurvan - + Switch Brytare - + Switch used by the mix. If blank then the mix is considered to be "ON" all the time. Brytare som används av mixen. Om fältet är blankt så är mixern påslagen hela tiden. - + Warning Varning - + Mixer warning. Setting this value will cause a beep to be emmitted when this value is active. Not clear what that means... @@ -2400,12 +3021,12 @@ Om ett värde anges så ljuder alarmet när värdet är aktivt. 3 Pip - + Multiplex Multiplex - + Multiplexer This determines how mixer values are added. @@ -2437,12 +3058,7 @@ Anger hur mixervärden påverkar kanalen. Ersätt - - Enable FM Trim - Slå på FM-Trim - - - + Delay Fördröjning @@ -2490,18 +3106,12 @@ p, li { white-space: pre-wrap; } Ned - + DEST -> CH%1%2 DEST -> KN%1%2 - - - FM Trim Value - Värde för FM-Trim - - - + Yes Ja @@ -2511,7 +3121,7 @@ p, li { white-space: pre-wrap; } Nej - + Rud Rod @@ -2531,22 +3141,17 @@ p, li { white-space: pre-wrap; } Ske - + Name Namn - - - Curve/Differential - Kurva/Diff - Include DR/Expo Inkludera DR/Expo - + 0 0 @@ -2591,940 +3196,95 @@ p, li { white-space: pre-wrap; } 8 - + DEST -> X%1 DEST -> X%1 - + Flight modes - Flygmoder + Flyglägen - - Fix Offset - Fast Offset - - - - + + GV GV - ModelEdit + MixesPanel - - Dialog - Dialog + + + Move Up + Flytta uppåt - - - - PPM Frame Length - Längd för PPM-ram + + + Ctrl+Up + Ctrl+Up - - - - mSec - mSec + + + Move Down + Flytta nedåt - - - DSM Type - DSM-typ + + + Ctrl+Down + Ctrl+Down - - - LP4/LP5 - LP4/LP5 - - - - - DSM2only - Bara DSM2 - - - - - DSM2/DSMX - DSM2/DSM - - - - - RX Number - Mottagarnummer - - - - Throttle Source - Throttle Trace - Gas-kontroll - - - - - CH01 - KN01 - - - - - CH02 - KN02 - - - - - CH03 - KN03 - - - - - CH04 - KN04 - - - - - CH05 - KN05 - - - - - CH06 - KN06 - - - - - CH07 - KN07 - - - - - CH08 - KN08 - - - - - CH09 - KN09 - - - - - CH10 - KN10 - - - - - CH11 - KN11 - - - - - CH12 - KN12 - - - - - CH13 - KN13 - - - - - CH14 - KN14 - - - - - CH15 - KN15 - - - - - CH16 - KN16 - - - - - Param - Parametrar - - - - Telemetry - Telemetri - - - - - - - A1 - A1 - - - - - Unit - Enhet - - - - - Raw (-) - Rå (-) - - - - - Max Value - Maxvärde - - - - - Alarm 1 - Alarm 1 - - - - - - - - - ---- - ---- - - - - - - - - - Yellow - Gul - - - - - - - - - Orange - Orange - - - - - - - - - Red - Röd - - - - - - - < - < - - - - - - - > - > - - - - - - Alarm 2 - Alarm 2 - - - - - Min Value - Minvärde - - - - - - - A2 - A2 - - - - Serial Protocol - Serieprotokoll - - - - Units - Enheter - - - - None - Inget - - - - FrSky Sensor Hub - FrSky Sensor-hub - - - - Metric - Metriska - - - - Imperial - Imperial - - - - 2 - 2 - - - - 3 - 3 - - - - 4 - 4 - - - - Blades - Blad - - - - - - Source - Källa - - - - - - Gauge - Mätare - - - - - - Gauge 1 - Mätare 1 - - - - - - Gauge 2 - Mätare 2 - - - - - - Gauge 3 - Mätare 3 - - - - - - Gauge 4 - Mätare 4 - - - - Templates - Mallar - - - - Simulate - Simulera - - - - Setup - Konfiguration - - - - Model Name - Modellnamn - - - - - Count Down - Nedräkning - - - - - Count Up - Uppräkning - - - - - mm:ss - mm:ss - - - - Trim Increment - Trimsteg - - - - Exponential - Exponentiella - - - - Extra Fine - Extrafina - - - - Fine - Fina - - - - Medium - Medium - - - - Coarse - Grova - - - - Throttle Trim - Gastrim - - - - Throttle Expo - Expo Gas - - - - Center beep - Centrumpip - - - - - - - - - - - - RUD - ROD - - - - - - - - - - - - - - - ELE - HÖJ - - - - - - - - THR - GAS - - - - - - - - - - - - - AIL - SKE - - - - P1 - P1 - - - - P2 - P2 - - - - P3 - P3 - - - - Pulse Shift (polarity) - Pulsskifte (Polaritet) - - - - - - Positive - Positiv - - - - - - Negative - Negativ - - - - - - Protocol - Protokoll - - - - - - Channels - Kanaler - - - - - - - - - ch - kn - - - - - - usec - usec - - - - Extended Limits - Utökade gränser - - - - - Heli Setup - Helikopter - - - - Swash Type - Swashtyp - - - - - Off - Av - - - - 120 - 120 - - - - 120X - 120X - - - - 140 - 140 - - - - 90 - 90 + + Clear Mixes + Nollställ mixarna - Collective - Collective - - - - Swash Ring - Swashring - - - - Invert Elevator - Invertera höjdroder - - - - Invert Aileron - Invertera skevroder - - - - Mixes - Mixar - - - - Limits - Gränser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INV - INV - - - - - - Channel - Kanal - - - - - - Offset - Offset - - - - - - - - Min - Min - - - - - - - - Max - Max - - - - - - Invert - Invertera - - - - Curves - Kurvor - - - - Curve 1 - Kurva 1 - - - - Curve 2 - Kurva 2 - - - - Timer1 - Timer1 - - - - Timer2 - Timer2 - - - - - - PPM delay - PPM-fördröjning - - - - Extended Trims - Utökade trimmar - - - - - - - - - - - - Fade In - Tona in - - - - - - - - - - - - Fade Out - Tona ut - - - - Curve 3 - Kurva 3 - - - - Curve 4 - Kurva 4 - - - - Curve 5 - Kurva 5 - - - - Curve 6 - Kurva 6 - - - - Curve 7 - Kurva 7 - - - - Curve 8 - Kurva 8 - - - - Curve 9 - Kurva 9 - - - - Curve 10 - Kurva 10 - - - - Curve 11 - Kurva 11 - - - - Curve 12 - Kurva 12 - - - - Curve 13 - Kurva 13 - - - - Curve 14 - Kurva 14 - - - - Curve 15 - Kurva 15 - - - - Curve 16 - Kurva 16 - - - - Clear All Curves - Clear All Mixes - Nollställ alla kurvor - - - - - - - Function - Funktion - - - - Custom switches - Logiska Brytare - - - - - V1 - V1 - - - - - V2 - V2 - - - - Safety Switches - Säkerhetsbrytare - - - - - - - - - - - - - - - - Switch - Brytare - - - - Value - Värde - - - - + + X%1 + X%1 + + + + + CH%1%2 KN%1%2 - + + Weight(%1) + Vikt(%1) + + + + Switch(%1) + Brytare(%1) + + + + No Trim + Ingen Trim + + + + No DR/Expo + Ingen DR/Expo + + + + Offset(%1) + Offset(%1) + + + Delay(u%1:d%2) Fördröjning(u%1:d%2) @@ -3539,233 +3299,155 @@ p, li { white-space: pre-wrap; } Varn(%1) - - - Expo - Expo - - - - - Curve - Kurva - - - - FMTrim - FMTrim - - - - Winged Shadow How High - Winged Shadow How High - - - - Winged Shadow How High (not supported) - Winged Shadow How High (stöds ej) - - - - - Range - Räckvidd - - - + Not enough available mixers! För få mixar är tillgängliga! - - Not enough available expos! - För få expos är tillgängliga! - - - + Delete Selected Mixes? Ta bort valda mixar? - - + &Add &Lägg till - - + Ctrl+A CTRL+A - - + &Edit &Redigera - - - - + + Enter + Retur + + + &Delete &Ta bort - - - - + Delete - Radera + Ta bort - - - - + &Copy &Kopiera - - - - + Ctrl+C - Ctrl*C + Ctrl+C - - - - + &Cut Klipp &Ut - - - - + Ctrl+X Ctrl+X - - - - + &Paste Klistra &In - - - - + Ctrl+V Ctrl+V - - + Du&plicate &Duplicera - - - - - - Move Up - Flytta uppåt - - - - - - - Ctrl+Up - Ctrl+Up - - - - - - - Move Down - Flytta nedåt - - - - - - - Ctrl+Down - Ctrl+Down - - - - Clear Expo Settings - Ta bort expo-inställningar - - - - Clear Mixes - Nollställ mixarna - - - - Weight - Weight(+%1%) - Vikt - - - - Editing curve %1 - Redigera kurvan %1 - - - - Delete Selected Expos? - Ta bort valda Expos? - - - - Apply Template? - Använd mall? - - Apply template "%1"? - Använd mallen "%1"? + Ctrl+U + Ctrl+U - - Clear Expos? - Nollställ Expos? - - - - Really clear all the expos? - Vill du verkligen nollställa alla Expos? - - - - - + Clear Mixes? Ta bort mixarna? - + Really clear all the mixes? Vill du verkligen ta bort alla mixar? + + + ModelEdit - + + Dialog + Dialog + + + + Heli + Heli + + + + Inputs + Filter + + + + Telemetry + Telemetri + + + + Simulate + Simulera + + + + Setup + Konfiguration + + + + Channels + Kanaler + + + + Mixes + Mixar + + + + Logical Switches + Logiska Brytare + + + + Switch Assignment + BrytarEffekter + + + + Curves + Kurvor + + + Clear Curves? Ta bort kurvorna? @@ -3775,1309 +3457,15 @@ p, li { white-space: pre-wrap; } Vill du verkligen ta bort alla kurvor ? - - - Ctrl+U - Ctrl+U - - - - Diff - Diff - - - - - Enter - Retur - - - - Throttle2Trig - Gas->Trig - - - - - - - - - - - - trim1 - trim1 - - - - - - - - - - - - trim2 - trim2 - - - - - - - - - - - - trim4 - trim4 - - - - - - - - - - - - trim3 - trim3 - - - - RSSI - RSSI - - - - Alarm 1 - Alarm 1 - - - - Disable Throttle Warning - Ingen Gasvarning - - - - Switch startup Warning - Brytarvarning vid start - - - - Instant Trim - Snabbtrim - - - - REa - REa - - - - REb - REb - - - - 3POS - 3POS - - - - - Check - Kontrollera - - - - - - ON - På - - - - - OFF - Av - - - - GEA - LAN - - - - ID0 - ID0 - - - - ID1 - ID1 - - - - ID2 - ID2 - - - - - TriggerB - Utlösare - - - - - Enable - Slå på - - - - Altimetry / Vario - Höjdmätare / Vario - - - - Vario source - Vario-källa - - - - Vario limits - Vario-gränser - - - - Use GPS as altitude source - Använd GPS som höjdmätare - - - - Display altitude in toolbar - - - - - - Volts (V) - Volt (V) - - - - - Amps (A) - Ampere (A) - - - - - Speed (m/s or ft/s) - Hastighet (m/s eller ft/s) - - - - - Speed (km/h or miles/h) - Hastighet (Km/h eller miles/h) - - - - - Meters (m or ft) - Meter (m eller ft) - - - - - Temp (°) - Temp (°) - - - - - Fuel (%) - Tank (%) - - - - - mAmps (mA) - mAmpere (mA) - - - - No Trim - Ingen Trim - - - - Really clear existing mixes on CH6? - Vill du nollställa alla mixar på kanal 6? - - - - Really clear existing mixes on CH5? - Vill du nollställa alla mixar på kanal 5? - - - - Model Voice - Röst för modell - - - - - Sym - Sym - - - - - Curve type - Kurvtyp - - - - 3 points - 3-punkts - - - - 3 points custom - 3-punkts special - - - - 5 points - 5-punkts - - - - 5 points custom - 5-punkts special - - - - 9 points - 9-punkts - - - - 9 points custom - 9-punkts special - - - - 17 points - 17-punkts - - - - 17 points custom - 17-punkts special - - - - - Duration - Varaktighet - - - - - Delay - Fördröjning - - - - Volt source - Volt-källa - - - - Current source - Ström-källa - - - - NONE - Ingen - - - - - FAS - FAS - - - - CEL - BAT - - - - Telemetry screen 1 - Telemetriskärm 1 - - - - Telemetry screen 2 - Telemetriskärm 2 - - - - Rud - Rod - - - - Ele - Höj - - - - Thr - Gas - - - - Ail - Ske - - - - - DISABLED - INAKTIV - - - - No DR/Expo - Ingen DR/Expo - - - - CF%1 - CF%1 - - - - Simple 4-CH - Enkel 4-KN - - - - T-Cut - Gas-Klippning - - - - Sticky T-Cut - Seg Gasklippning - - - - V-Tail - V-stjärt - - - - Elevon\Delta - Deltavinge - - - - Heli Setup with gyro gain control - Helikopter med gyro gain kontroll - - - - Gyro gain control - Gyro gain kontroll - - - - Heli Setup (Futaba's channel assignment style) - Helikopterinställning (Futabas kanalordning) - - - - Heli Setup with gyro gain control (Futaba's channel assignment style) - Helikopterinställning med gyro gain kontroll (Futabas kanalordning) - - - - Gyro gain control (Futaba's channel assignment style) - Gyro gain kontroll (Futabas kanalordning) - - - - Servo Test - Servotest - - - - MultiCopter - Multikopter - - - - Use Model Config Wizard - Använd modell-guiden - - - - Are you sure you want to delete curve %1 ? - Vill du verkligen ta bort kurvan %1 ? - - - - - - - AIL2 - SKE2 - - - - - - - ELE2 - HÖJ2 - - - - - - - - - FLAPS - FLAPS - - - - - - - - - FLAP%1 - FLAP%1 - - - - - - - PITCH - PITCH - - - - - - - - - - - GYRO - GYRO - - - - - SPOIL - SPOIL - - - - - SPOIL%1 - SPOIL%1 - - - - - RUD2 - ROD2 - - - - Not enough free points in eeprom to store the curve. - Kurvan får inte plats i minnet. - - - - - - - - - - - - GVAR1 - GVAR1 - - - - - - - - - - - - GVAR2 - GVAR2 - - - - - - - - - - - - GVAR3 - GVAR3 - - - - - - - - - - - - GVAR4 - GVAR4 - - - - - - - - - - - - GVAR5 - GVAR5 - - - - - - - - - - - - Rotary encoder B - Inmatningshjul B - - - - - - - - - - - - Rotary encoder A - Inmatningshjul A - - - - Custom Functions - Specialfunktioner - - - - Vario - Vario - - - - - - Nums - Nummer - - - - - - Bars - Staplar - - - - Telemetry screen 3 - Telemetriskärm 3 - - - - - - X%1 - X%1 - - - - Error - Fel - - - - Unable to find sound file %1! - Kan inte hitta ljudfilen %1! - - - - Invert Collective - Invertera collective - - - - - AND - OCH - - - - Alti - Höjd - - - - Alti+ - Höjd+ - - - - - - Custom Screen Type - Visa data som - - - - ModelSetup - Modelinställningar - - - - Model Image - Modell-ikon - - - - - Persistent - Bestående - - - - - MinuteBeep - Minutpip - - - - - CountDownBeep - Nedräkningspip - - - - SB - SB - - - - SD - SD - - - - SA - SA - - - - SC - SC - - - - SG - SG - - - - SE - SE - - - - SF - SF - - - - RS - RS - - - - Reverse Throttle Operation - Inverterad gas - - - - Reverse throttle operation. -If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. - - - Inverterad gas. -Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och gasvarning reverseras också. - - - - - - RF Module 1 - RF-modul 1 - - - - - - Start - Start - - - - RF Module 2 - RF-modul 2 - - - - Trainer Mode - Trainerläge - - - - Master - Lärare - - - - Slave - Elev - - - - Master/Trainer Port - Trainer-port - - - - Failsafe - Failsafe - - - - External module - Extern modul - - - - Internal Module - Intern modul - - - + Flight Modes Flyglägen - - - Flight Mode 0 (Default) - Flygläge 0 (Default) - - - - - - - - - - - - Flight Mode Name - Flyglägets namn - - - - GVAR6 - GVAR6 - - - - GVAR7 - GVAR7 - - - - FM 1 - FL 1 - - - - FM 2 - FL 2 - - - - FM 3 - FL 3 - - - - FM 4 - FL 4 - - - - FM 5 - FL 5 - - - - FM 6 - FL 6 - - - - FM 7 - FL 7 - - - - FM 8 - FL 8 - - - - Curve name - Kurvans namn - - - - S1 - S1 - - - - S2 - S2 - - - - LS - LS - - - - - Flight modes - Flygmoder - - - - - Flight mode - Flygmod - - - - - - - CH %1 - KN %1 - - - - - Polarity - Polaritet - - - - - (00:00:00) - (00:00:00) - - - - - Failsafe Mode - Failsafe-läge - - - - - Hold - Håll senaste - - - - - Custom - Special - - - - - No Pulses - Inga pulser - - - - Sticks - Spakar - - - - Show channels names in mixes - Visa kanalnamn i mixar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - ---- - - - - - Center - Centrum - - - - Curve Creator - Kurveditor - - - - Y at X=100 - Y vid X=100 - - - - Both - Båda - - - - x>0 - x>0 - - - - x<0 - - - - - Linear - Linjär - - - - Single Expo - Single Expo - - - - Symmetrical f(x)=-f(-x) - Symmetrisk f(x)=-f(-x) - - - - Symmetrical f(x)=f(-x) - Symmetrisk f(x)=f(-x) - - - - Apply - Tillämpa - - - - Side - Sida - - - - Y at X=-100 - Y vid X=100 - - - - Y at X=0 - Y vid X=0 - - - - Coefficient - Koeffecient - - - - CS9 - LB9 - - - - CSF - LBF - - - - CSD - LBD - - - - CS6 - LB6 - - - - CS1 - LB1 - - - - CS8 - LB8 - - - - CS7 - LB7 - - - - CSA - LBA - - - - CSB - LBB - - - - CSC - LBC - - - - CS5 - LB5 - - - - CS3 - LB3 - - - - CS2 - LB2 - - - - CSE - LBE - - - - CSG - LBG - - - - CS4 - LB4 - - - - CST - LBT - - - - CSM - LBM - - - - CSP - LBP - - - - CSH - LBH - - - - CSO - LBO - - - - CSN - LBN - - - - CSQ - LBQ - - - - CSR - LBR - - - - CSS - LBS - - - - CSL - LBL - - - - CSK - LBK - - - - CSJ - LBJ - - - - CSI - LBI - - - - CSU - LBU - - - - CSV - LBV - - - - CSW - LBW - - - - Sink Max - Sunk Max - Sjunk Max - - - - Climb Max - Raise Max - Höj Max - - - - Sink Min - Sunk Min - Sjunk Min - - - - Climb Min - Raise Min - Höj Min - ModelsListWidget - + &Edit &Redigera @@ -5204,11 +3592,143 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Det går inte att klippa ut standard-modellen. + + Module + + + Form + Form + + + + Failsafe Mode + Failsafe-läge + + + + Start + Start + + + + PPM delay + PPM-fördröjning + + + + usec + usec + + + + Negative + Negativ + + + + Positive + Positiv + + + + RX Number + Mottagarnummer + + + + Master + Lärare + + + + Slave + Elev + + + + Polarity + Polaritet + + + + Trainer Mode + Trainerläge + + + + mSec + mSec + + + + PPM Frame Length + Längd för PPM-ram + + + + Label + Etikett + + + + + ch + kn + + + + Channels + Kanaler + + + + Hold + Håll senaste + + + + Custom + Special + + + + No Pulses + Inga pulser + + + + Failsafe Positions + Failsafe-lägen + + + + Protocol + Protokoll + + + + ModulePanel + + + Trainer Output + TrainerUttag + + + + Internal Radio System + Intern Radosändare + + + + External Radio Module + Extern Sändarmodul + + QObject - - + + P1 P1 @@ -5228,12 +3748,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga P3 - + MAX MAX - + A1 A1 @@ -5253,57 +3773,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga T2 - - Curve - Kurva - - - - gruvin9x only accepts %1 expos - gruvin9x accepterar enbart %1 expos - - - - - - - - - - - - - - - - - - - - - Open9x doesn't accept this protocol - Open9x accepterar inte detta protokoll - - - - - - - - - - - - - - - - open9x only accepts %1 expos - Gruvin9x firmware only accepts %1 expos - open9x accepterar enbart %1 expos - - - + th9x th9x @@ -5313,13 +3783,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga er9x - - - Er9x doesn't accept this protocol - Er9x accepterar inte detta protokoll - - - + Trainer Trainer @@ -5359,16 +3823,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Starta loggning - - + + - + ---- ---- - - + + Rud Rod @@ -5391,13 +3855,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Ske - - 3POS - 3POS - - - - + + Timer1 Timer1 @@ -5410,80 +3869,44 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Timer2 - - - - Open9x doesn't allow Curve%1 in expos - Open9x accepterar inte kurvan %1 i expos - - - - + - - + + Warning Varning - EEPROM saved with these warnings: Modelldata sparades, men med dessa varningar: - + ersky9x ersky9x - - er9x doesn't have Rotary Encoders - er9x saknar inställningshjul - - - - - ersky9x doesn't have Rotary Encoders - ersky9x saknar inställningshjul - - - - - Ersky9x doesn't accept this protocol - Er9x saknar inställningshjul - - - - - + + + Simulator for this firmware is not yet available Det finns ännu ingen simulator för denna typ av firmware - - - - - - - - - Open9x on this board doesn't have Rotary Encoders - Open9x for detta kort saknar inställningshjul - - - + + REa REa + REb REb - + Alt Höj @@ -5518,7 +3941,204 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Batt - + + + LS1 + LB1 + + + + + LS2 + LB2 + + + + + LS3 + LB3 + + + + + LS4 + LB4 + + + + + LS5 + LB5 + + + + + LS6 + LB6 + + + + + LS7 + LB7 + + + + + LS8 + LB8 + + + + + LS9 + LB9 + + + + + LSA + LBA + + + + + LSB + LBB + + + + + LSC + LBC + + + + + LSD + LBD + + + + + LSE + LBE + + + + + LSF + LBF + + + + + LSG + LBG + + + + + LSH + LBH + + + + + LSI + LBI + + + + + LSJ + LBJ + + + + + LSK + LBK + + + + + LSL + LBL + + + + + LSM + LBM + + + + + LSN + LBN + + + + + LSO + LBO + + + + + LSP + LBP + + + + + LSQ + LBQ + + + + + LSR + LBR + + + + + LSS + LBS + + + + + LST + LBT + + + + + LSU + LBU + + + + + LSV + LBV + + + + + LSW + LBW + + + + Input %1 + Filter %1 + + + CYC%1 CYC%1 @@ -5528,22 +4148,19 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga PPM%1 - - - + + THR GAS - - + RUD ROD - - + ELE HÖJ @@ -5563,26 +4180,23 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga ID2 - - + AIL SKE - - + GEA LAN - - + TRN TRN - + ON På @@ -5593,35 +4207,17 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Av - - - - er9x on this board doesn't have Rotary Encoders - er9x stödjer inte inställningshjul för detta sändarkort - - - - gruvin9x on this board doesn't have Rotary Encoders - gruvin9x stödjer inte inställningshjul för detta sändarkort - - - + Safety %1 Säkring %1 - - - open9x on this board doesn't have Rotary Encoders - open9x stödjer inte inställningshjul för detta sändarkort - - - + th9x on this board doesn't have Rotary Encoders th9x stödjer inte inställningshjul för detta sändarkort - + TrmR TrmR @@ -5640,48 +4236,6 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga TrmA TrmA - - - er9x doesn't have trims as source - er9x kan inte använda trimmar som källa - - - - - - er9x doesn't have swappable trims - er9x saknar trimmar som kan bytas ut - - - - - - er9x does not support this range for A1/A2 - er9x saknar stöd för angivet område för A1/A2 - - - - - - er9x does not support this telemetry units - er9x saknar stöd för denna telemetri-enhet - - - - - ersky9x doesn't have trims as source - ersky9x kan inte använda trimmar som källa - - - - gruvin9x doesn't have trims as source - gruvin9x kan inte använda trimmar som källa - - - - gruvin9x doesn't have swappable trims - gruvin9x saknar trimmar som kan bytas ut - Play Haptic @@ -5698,7 +4252,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Vario - + All För alla händelser @@ -5710,12 +4264,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Telemetri - + Play Value Spela Värde - + Cels Celsius @@ -5794,62 +4348,6 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Time Tid - - - er9x does not support Custom Switch function %1 - er9x stöder inte LB-funktionen %1 - - - - - Er9x doesn't support custom curves as curve%1, curve as been exported as fixed point - Er9x stöder inte specialkurvor som kurva %1. Kurvan har exporterats som en punktkurva - - - - - Er9x doesn't support curve with %1 point as curve%2 - Er9x stödjer inte %1-punktskurvor som kurva %2 - - - - - ersky9x does not support Custom Switch function %1 - ersky9x stöder inte LB-funktionen %1 - - - - - - - ErSky9x doesn't support custom curves as curve%1, curve as been exported as fixed point - ErSky9x stöder inte specialkurvor som kurva %1. Kurvan har exporterats som en punktkurva - - - - - - - ErSky9x doesn't support curve with %1 point as curve%2 - ErSky9x stödjer inte %1-punktskurvor som kurva %2 - - - - gruvin9x does not support Custom Switch function %1 - gruvin9x stöder inte LB-funktionen %1 - - - - - gruvin9x doesn't support custom curves as curve%1, curve as been exported as fixed point - gruvin9x stöder inte specialkurvor som kurva %1. Kurvan har exporterats som en punktkurva - - - - - gruvin9x doesn't support curve with %1 point as curve%2 - gruvin9x stödjer inte %1-punktskurvor som kurva %2 - No @@ -5896,22 +4394,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Belysning - - Diff - Diff - - - - Expo - Expo - - - + Own trim Egen trim - + Keys Knappar @@ -5926,36 +4414,18 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Knappar + Spakar - - + + Simultaneous usage of expo and curves is no longer supported Expo och pspecialkurva kan inte längre kombineras - - - - - This version of open9x does not support Custom Switch function %1 - Denna verion ov open9x stödjer inte LB-funktion %1 - - - - - - - - - open9x only accepts %1 points in all curves - open9x kan bara ha %1 punkter i kurvor - - - + Simultaneous usage of expo and curves is no longer supported in open9x Det går inte att använda Expo på en specialkurva i open9x - + Support for frsky telemetry mod Stöd för FrSky telemeri @@ -5980,7 +4450,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - + @@ -5988,8 +4458,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Slå på helikoptermenyn och stöd för cyklisk mix - - + + @@ -5998,16 +4468,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Slå på menyn Mallar - - + + No splash screen Ingen startbild - - + + @@ -6016,16 +4486,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Slå av menyn för kurvor - - + + Support for radio modified with regular speaker Stöd för sändare modifierad med en vanlig högtalare - - + + @@ -6033,8 +4503,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Används om en röstmodul monterats i sändaren - - + + Used if you have modified your radio with haptic mode @@ -6046,8 +4516,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Stöd för FrSky PXX-protokoll - - + + @@ -6055,8 +4525,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Stöd för DSM2-moduler - - + + @@ -6065,8 +4535,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Justering av PPM-centrum i menyn för Gränser - - + + @@ -6075,8 +4545,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Symetriska Gränser - - + + @@ -6084,14 +4554,14 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Använd potentiometrar förr menyskrollning - - + + SmartieParts 2.2 Backlight support Stöd för belysning mha. SmartieParts v2.2 - - + + @@ -6100,16 +4570,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Använd brytarna för att ställa brytarvärden i menyer - - + + Enable resetting values by pressing up and down at the same time Slå på nollställning av värden genom att hålla ned upp- och ned-knappen samtidigt - - + + @@ -6118,8 +4588,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Använd inte grafiska kontroller - - + + @@ -6136,8 +4606,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Visa skrivning av modelldata - - + + @@ -6145,8 +4615,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga British Imperial Units - - + + @@ -6170,26 +4640,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Slå på helikoptermenyn och stöd för cyklisk mix - - th9x does not support Custom Switch function %1 - th9x stöder inte LB-funktionen %1 - - - - - - th9x doesn't support custom curves as curve%1, curve as been exported as fixed point - th9x stöder inte specialkurvor som kurva %1. Kurvan har exporterats som en punktkurva - - - - - - th9x doesn't support curve with %1 point as curve%2 - th9x stödjer inte %1-punktskurvor som kurva %2 - - - + CH%1%2 KN%1%2 @@ -6200,18 +4651,19 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - + + GV%1 GV%1 - - + + --- ---- - + Rud Trim Rod.Trim @@ -6241,7 +4693,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Svenska - + + CH%1 + KN%1 + + + Background Music Bakgrundsmusik @@ -6251,32 +4708,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Paus i bakgrundsmusiken - - Adjust GV1 - Justera GV1 - - - - Adjust GV2 - Justera GV2 - - - - Adjust GV3 - Justera GV3 - - - - Adjust GV4 - Justera GV4 - - - - Adjust GV5 - Justera GV5 - - - + Delay %1 sec Fördröjning %1 s @@ -6286,33 +4718,29 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Varaktighet %1 s - + + Rotary Encoder + Inmatningshjul + + + Own value Eget värde - + + -GV%1 -GV%1 - - (-GV%1) - (-GV%1) - - - - (GV%1) - (GV%1) - - - + Support for telemetry easy board Stöd för TelemetryEZ-kort - + @@ -6328,8 +4756,8 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Blåtandsinterface - - + + S1 S1 @@ -6352,7 +4780,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga RS - + Batt Batt @@ -6398,12 +4826,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - + No repeat Repetera ej - + %1 sec %1 sek @@ -6413,7 +4841,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Spela båda - + + Adjust GV%1 + Justera GV%1 + + + <font color=red><b>Inconsistent parameter</b></font> @@ -6435,12 +4868,17 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Öka: - + + Played once, not during startup + Spelas en gång, ej vid uppstart + + + %1s %1s - + Value Värde @@ -6460,7 +4898,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Ökning - + Yellow Gul @@ -6491,11 +4929,12 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga + None Ingen - + Imperial Imperial @@ -6550,7 +4989,17 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga : %1 Kanaler, %2msec Fördröjning - + + Flight modes(%1) + Flyglägen(%1) + + + + Flight mode(%1) + Flygläge(%1) + + + Rudder Sidroder @@ -6570,7 +5019,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Skevroder - + Rotary Encoder use in menus navigation Använd inmatningshjul för att navigera i menyer @@ -6581,7 +5030,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - + @@ -6610,47 +5059,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga openTx för FrSky Taranis - - SA - SA - - - - SB - SB - - - - SC - SC - - - - SD - SD - - - - SE - SE - - - - SF - SF - - - - SG - SG - - - - SH - SH - - - + SWR SWR @@ -6665,199 +5074,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - - - CS1 - LB1 - - - - - CS2 - LB2 - - - - - CS3 - LB3 - - - - - CS4 - LB4 - - - - - CS5 - LB5 - - - - - CS6 - LB6 - - - - - CS7 - LB7 - - - - - CS8 - LB8 - - - - - CS9 - LB9 - - - - - CSA - LBA - - - - - CSB - LBB - - - - - CSC - LBC - - - - - CSD - LBD - - - - - CSE - LBE - - - - - CSF - LBF - - - - - CSG - LBG - - - - - CSH - LBH - - - - - CSI - LBI - - - - - CSJ - LBJ - - - - - CSK - LBK - - - - - CSL - LBL - - - - - CSM - LBM - - - - - CSN - LBN - - - - - CSO - LBO - - - - - CSP - LBP - - - - - CSQ - LBQ - - - - - CSR - LBR - - - - - CSS - LBS - - - - - CST - LBT - - - - - CSU - LBU - - - - - CSV - LBV - - - - - CSW - LBW - - - + ONE ONE @@ -6887,31 +5104,43 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga REAl - - er9x doesn't have negative gvars as weight - er9x kan inte använda negativa gvar-värden som vikter + + Diff(%1) + Diff(%1) - - er9x doesn't have negative gvars as offset - er9x kan inte använda negativa gvar-värden som offset + + Expo(%1) + Expo(%1) - - - - - Flight modes settings on expos not exported - Flygmod-inställningar för expos stöds inte + + Function(%1) + Funktion(%1) - + + Curve(%1) + Kurva(%1) + + + + !Curve(%1) + !Kurva(%1) + + + FM%1 FM%1 - + + Input%1 + Filter%1 + + + English Engelska @@ -6951,97 +5180,74 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Portugisiska - - CH - KN - - - + !Flight mode %1 - !Flygmod %1 + !Flygläge %1 Flight mode %1 - Flygmod %1 + Flygläge %1 - + Flight mode %1 trim Fligmod %1 trim - + Flight mode %1 value - Flygmod %1 värde + Flygläge %1 värde - - - Flight Mode 0 (Default) - Flygmod 0 (Default) - - - - - FM %1 - FM %1 - - - + openTx only accepts %1 points in all curves openTX accepterar bar %1 punkter i alla kurvor - + OpenTX on this board doesn't accept this function OpenTX stödjer inte funktionen för den aktuella hårdvaran - - + + OpenTX doesn't accept this protocol OpenTX accepterar inte detta protokoll - + OpenTX doesn't allow this number of channels OpenTX accepterar inte detta antal kanaler - - - Flight mode settings on mixers not exported - Flygmod-inställningar för expos stöds inte - - - + Your radio probably uses a wrong firmware, eeprom size is 4096 but only the first 2048 are used Din sändare har antagligen laddats med felaktig programvara. eeprom-storleken är 4096, men enbart den första hälften används - + Support for MAVLINK devices Stöd för MAVLINK-enheter - + No flight modes - Inga flygmoder + Inga flyglägen - - + + @@ -7050,8 +5256,8 @@ eeprom-storleken är 4096, men enbart den första hälften användsVälj automatisk kontroller i menyn för modelinställningar genom att använda dem - - + + @@ -7062,44 +5268,49 @@ eeprom-storleken är 4096, men enbart den första hälften användsAnvänd SQT5-typsnittet - - + + Enable the throttle trace in Statistics Slå på gasspårning i statistiken - + EEprom write progress bar Grafisk visning av skrivning till eeprom - + No Winged Shadow How High support Inget stöd för Winged Shadow How High - - + + No vario support Vario stöds ej - - + + No GPS support GPS-stöd saknas - - + + No gauges in the custom telemetry screen Inga mätare i på telemetri-skärmen - + + Allow compensating for offset errors in FrSky FAS current sensors + Tillåt justering av offsett-fel i FrSkys FAS ström-sensorer + + + openTx for 9XR openTX för 9XR @@ -7137,18 +5348,7 @@ eeprom-storleken är 4096, men enbart den första hälften användsopenTX för FrSky Taranis Rev 4a - - - - - - - - Flight modes settings on mixers not exported - Mixerinställningar för flygmoder exporteras inte - - - + Possibility to enable FAI MODE at field Möjlighet att slå på FAI-LÄGE före pflygning @@ -7171,6 +5371,634 @@ Vi uppskattar ert stöd! Gruppen bakom OpenTX/Companion. + + Setup + + + Form + Form + + + + Model Name + Modellnamn + + + + Timer2 + Timer2 + + + + Timer1 + Timer1 + + + + Throttle Source + Gas-kontroll + + + + Switch startup Warning + Brytarvarning vid start + + + + Center beep + Centrumpip + + + + Trim Increment + Trimsteg + + + + ON + På + + + + OFF + Av + + + + Check + Kontrollera + + + + Model Image + Modell-ikon + + + + Exponential + Exponentiella + + + + Extra Fine + Extrafina + + + + Fine + Fina + + + + Medium + Medium + + + + Coarse + Grova + + + + Extended Limits + Utökade gränser + + + + Extended Trims + Utökade trimmar + + + + Throttle Trim + Gastrim + + + + Throttle Warning + Gas-varning + + + + Reverse throttle operation. +If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. + + + Inverterad gas. +Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och gasvarning reverseras också. + + + + + + Reverse Throttle + Inverterad gas + + + + Telemetry + + + Form + Form + + + + + + + A1 + A1 + + + + + + + A2 + A2 + + + + RSSI + RSSI + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Gul + + + + + Orange + Orange + + + + + Red + Röd + + + + Alarm 2 + Alarm 2 + + + + Serial Protocol + Serieprotokoll + + + + Volt source + Volt-källa + + + + Metric + Metriska + + + + Imperial + Imperial + + + + Current source + Ström-källa + + + + Protocol + Protokoll + + + + NONE + Inget + + + + + FAS + FAS + + + + None + Ingen + + + + FrSky Sensor Hub + FrSky Sensor-hub + + + + CEL + BAT + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + Units + Enheter + + + + Blades + Blad + + + + Altimetry / Vario + Höjdmätare / Vario + + + + Alti + Höjd + + + + Alti+ + Höjd+ + + + + Vario + Vario + + + + Sink Max + Sjunk Max + + + + Off + Av + + + + Climb Max + Höj Max + + + + Sink Min + Sjunk Min + + + + Climb Min + Höj Min + + + + Vario source + Vario-källa + + + + Vario limits + Vario-gränser + + + + Use GPS as altitude source + Använd GPS som höjdmätare + + + + Display altitude in toolbar + Visa höjden i verktygslisten + + + + Various + Diverse + + + + mAh count + mAh-antal + + + + FAS Offset + FAS-offset + + + + Persistent mAh + Bestående mAh + + + + Telemetry screen 1 + Telemetriskärm 1 + + + + + + Custom Screen Type + Visa data som + + + + + + Nums + Nummer + + + + + + Bars + Staplar + + + + + + Source + Källa + + + + + + Min + Min + + + + + + Gauge + Mätare + + + + + + Max + Max + + + + + + Gauge 1 + Mätare 1 + + + + + + Gauge 2 + Mätare 2 + + + + + + Gauge 3 + Mätare 3 + + + + + + Gauge 4 + Mätare 4 + + + + Telemetry screen 2 + Telemetriskärm 2 + + + + Telemetry screen 3 + Telemetriskärm 3 + + + + TelemetryAnalog + + + Form + Form + + + + Unit + Enhet + + + + Max Value + Maxvärde + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Gul + + + + + Orange + Orange + + + + + Red + Röd + + + + + < + < + + + + + > + > + + + + Alarm 2 + Alarm 2 + + + + Min Value + Minvärde + + + + Volts (V) + Volt (V) + + + + Amps (A) + Ampere (A) + + + + Speed (m/s or ft/s) + Hastighet (m/s eller ft/s) + + + + Raw (-) + Rå (-) + + + + Speed (km/h or miles/h) + Hastighet (Km/h eller miles/h) + + + + Meters (m or ft) + Meter (m eller ft) + + + + Temp (°) + Temp (°) + + + + Fuel (%) + Tank (%) + + + + mAmps (mA) + mAmpere (mA) + + + + Range + Räckvidd + + + + TelemetryPanel + + + Winged Shadow How High + Winged Shadow How High + + + + Winged Shadow How High (not supported) + Winged Shadow How High (stöds ej) + + + + Timer + + + Form + Form + + + + mm:ss + mm:ss + + + + Countdown + Nedräkning + + + + MinuteBeep + Minutpip + + + + Persistent + Bestående + + + + (00:00:00) + (00:00:00) + + + + TimerPanel + + + None + Ingen + + + + Beeps + Pip + + + + Countdown + Nedräkning + + avrOutputDialog @@ -7436,7 +6264,7 @@ OBS. Fyll enbart i detta fällt om du är säker på vad du gör. Ingen kontroll Sökväg till AVRDUDE - + Select Location @@ -7459,7 +6287,7 @@ m2560 for v4.1 boards m2560 för v4.1-kort - + <b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue? <b><u>VARNING!</u></b><br>Detta åerställer säkringarna för %1 till deras ursprungliga värden.<br>Att ändra dessa värden kan skapa allvarliga problem med din sändare.<br>Ändra säkringarna bara om du är helt säker på att de har fel värde!<br>Är du säker på att du vill fortsätta? @@ -7512,7 +6340,7 @@ m2560 för v4.1-kort Använd avancerade kontroller - + <b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent. <b><u>VARNING!</u></b><br>I vanliga fall väljs CPU-typ utgående från den programvara som valts för skrivning.<br>Om du ändrar CPU-typ så kan resultetet bli ett ogiltigt eeprom. @@ -7522,7 +6350,7 @@ m2560 för v4.1-kort Inställningar för Programmerare - + DFU-UTIL Configuration Inställningar för DFU-UTIL @@ -7537,8 +6365,8 @@ m2560 för v4.1-kort Inställningar för AVRDUDE - - + + Companion Companion @@ -7587,7 +6415,7 @@ m2560 för v4.1-kort - + Write to TX Skriv till sändaren @@ -7612,18 +6440,18 @@ m2560 för v4.1-kort Avbryt - + Write firmware to TX Skriv firmware till sändaren - + Open Öppna - - + + @@ -7632,12 +6460,12 @@ m2560 för v4.1-kort Varning - + Burn anyway ! Starta bränningen! - + Open Image to load Öppna bilden som skall laddas @@ -7647,13 +6475,13 @@ m2560 för v4.1-kort Bilder (%1) - + - - + + - + @@ -7661,30 +6489,30 @@ m2560 för v4.1-kort Fel - + Write Models and Settings to TX Skriv Modeller och Inställningar till sändaren - + Write Models and Settings in %1 to TX Skriv Modeller och Inställningar från %1 till sändaren - + Choose file to load Models and Settings from Välj fil att ladda Modeller och Inställningar från - + - + Invalid binary Models and Settings File %1, Proceed anyway ? Ogiltig binärfil med Modeller och Inställningar: %1. Fortsätt i alla fall ? - + Cannot load %1. Det går inte att ladda %1. @@ -7714,7 +6542,7 @@ m2560 för v4.1-kort Felaktig information i profilen, sändarens inställningar kunde inte läsas in - + %1 is not a known firmware %1 är inte en fimware-fil @@ -7740,7 +6568,7 @@ m2560 för v4.1-kort - + Browse for file Välj fil @@ -7755,19 +6583,19 @@ m2560 för v4.1-kort Nuvarande Profil - + Current profile Nuvarande profil - + Unable to find file %1! Kan inte hitta filen %1 ! - - + + Error opening file %1: %2. Fel vid öppning av filen %1: @@ -7781,7 +6609,7 @@ m2560 för v4.1-kort %2. - + Cannot write file %1: %2. @@ -7930,11 +6758,11 @@ m2560 för v4.1-kort - - - - - + + + + + @@ -7942,7 +6770,7 @@ m2560 för v4.1-kort Brytare - + IN IN @@ -7962,33 +6790,33 @@ m2560 för v4.1-kort - - - + + + Offset Offset - + - + Min Min - + - + Max Max - + Invert @@ -7999,13 +6827,13 @@ m2560 för v4.1-kort - - + + CH KN - + INV INV @@ -8023,64 +6851,42 @@ m2560 för v4.1-kort - + Weight Vikt - - - Expo - Expo - - - - - - - + Curve Kurva - + Mixers Mixar - + noTrim ingenTrim - - - FMTrim - FMTrim - - - - - Diff - Diff - - - - + + Delay(u%1:d%2) Fördröjning(u%1:d%2) - - + + Slow(u%1:d%2) Tröghet(u%1:d%2) - - + + Warn Varn @@ -8108,12 +6914,7 @@ m2560 för v4.1-kort 9-punktskurva - - Custom Switches - Logiska Brytare - - - + Function Funktion @@ -8193,7 +6994,23 @@ m2560 för v4.1-kort Värde - + + Logical Switches + Logiska Brytare + + + + + LS + LB + + + + Switch Assignment + BrytarEffekter + + + RSSI Alarm RSSI-alarm @@ -8233,27 +7050,21 @@ m2560 för v4.1-kort Välj PDF-fil att skriva till - + No name Inget namn - + + + - - DISABLED INAKTIV - - - CS - LB - - - + Param Param @@ -8265,7 +7076,7 @@ m2560 för v4.1-kort Slå på - + Gvars Gvars @@ -8288,12 +7099,7 @@ m2560 för v4.1-kort GV - - Custom Functions - Specialfunktioner - - - + Repeat Upprepa @@ -8304,9 +7110,9 @@ m2560 för v4.1-kort Säkerhetsbrytare - + Flight modes Settings - Inställningar för flygmod + Inställningar för flyglägen @@ -8314,7 +7120,7 @@ m2560 för v4.1-kort Flight mode name - Namn för flygmod + Namn för flygläget @@ -8331,20 +7137,20 @@ m2560 för v4.1-kort FM - + + + - - Flight modes - Flygmoder + Flyglägen - + + + - - Flight mode - Flygmod + Flygläge @@ -8355,41 +7161,37 @@ m2560 för v4.1-kort Dialog - + People who have contributed to this project De som har bidragit till detta projekt - + Coders Programmerare - - Honors go to Rafal Tomczak (RadioClone) and Thomas Husterer (th9x) -of course. Also to Erez Raviv (er9x) and the fantastic eePe program -which was the staring point for OpenTX Companion. - All heder åt Rafal Tomczak (RadioClone) och Thomas Husterer (th9x) naturligtvis. -Dessutom till Erez Raviv (er9x) och hans fantastiska eePe, från vilken -OpenTX Companion grenades av. - - - + Companion Release Notes Companion Release Notes - + Thank you all !!! Tack till er alla !!! - + + Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe) + All ära åt Rafal Tomczak (RadioClone), Thomas Husterer (th9x) och Erez Raviv (er9x and eePe) + + + Contributors Bidragande - + OpenTX Release Notes OpenTX Release Notes @@ -8427,37 +7229,37 @@ OpenTX Companion grenades av. Öppna bildbibliotek - - + + Select an original firmware file Välj original-firmware - + Open Öppna - + Select an image to customize your splash <br />or save actual firmware splash Välj vilken bild som skall visas när sändaren slås på<br/>eller spara bilden som finns i firmware - + Error Fel - + Could not find bitmap to replace in file Det finns ingen bild att byta i firmware-filen - + Open Image to load Öppna bild för laddning @@ -8523,7 +7325,7 @@ p, li { white-space: pre-wrap; } <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> - + Save Firmware Spara Firmware @@ -8974,7 +7776,7 @@ Tryck på Avbryt för att avburyta kalibreringen %2. - + Select your log file Välj loggfil @@ -8997,7 +7799,7 @@ Tryck på Avbryt för att avburyta kalibreringen mdiChild - + Simulate Tx Simulera sändare @@ -9447,33 +8249,28 @@ Tryck på Avbryt för att avburyta kalibreringen Inställningar - + Language (requires restart) Språk (kräver omstart) - - Show Splash Screen - Visa Startbild - - - + Recent History Size Loggstorlek - + Download Nedladdning - + Default Channel Order Kanalordning - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -9482,7 +8279,12 @@ This is used by the templated to determine which channel goes to what number out Detta används av mallen för att koppla kanal till output-nummer. - + + Show Splash At Start + Visa Startbild + + + Default Stick Mode Spaktilldelning @@ -9548,61 +8350,117 @@ Mode 4: Mode 4 (SKE GAS HÖJ ROD) - + Automatic Backup Folder Säkerhetskopiera till folder - + Firmware Firmware - + + Theme + Tema + + + + + Requires restart + Kräver omstart + + + + Classic + Klassiskt + + + + Monochrome + Monokromt + + + + MonoWhite + Monokromt Vitt + + + + MonoBlue + Monokromt Blått + + + + Icon size + Ikonstorlek + + + + Small + Liten + + + + Normal + Normal + + + + Big + Stor + + + + Huge + Enorm + + + Find Executable Sök Program - + Google Earth Executable Sökväg till Google Earth - + Check for updates on startup Sök efter uppdateringar vid start - - + + ... ... - + Splash library behaviour Beteende för bildbibliotek - + Personal splash library Personligt bildbibliotek - + Joystick Joystick - - - - + + + + Open Folder Öppna katalog - + @@ -9648,12 +8506,12 @@ Mode 4: Kryssruta - + Check for updates Sök efter uppdateringar - + Blue Blu Blå @@ -9679,7 +8537,7 @@ Mode 4: Gul - + Enable Slå på @@ -9689,27 +8547,27 @@ Mode 4: Kalibrera - + Open Image Öppna bild - + Invert Pixels Invertera bild - + FwInfo Firmware-info - + Last downloaded release: %1 Senast nedladdade release: %1 - + No joysticks found Ingen joystick hittades @@ -9741,7 +8599,7 @@ Mode 4: Fel - + The selected firmware has never been downloaded by Companion. Firmware-filen har aldrig laddats ned av Companion. @@ -9751,7 +8609,7 @@ Mode 4: Firmware-filen kan inte laddas ned av Companion. - + Cannot load %1. %1 kunde inte laddas. @@ -9762,7 +8620,7 @@ Mode 4: Bilden lagras i inställningar - + Include companion splashes Användarens bilder och companion-bilder @@ -9772,22 +8630,22 @@ Mode 4: Enbart användarens bilder - + Custom TX splash screen Egen uppstartsbild - + Ask for flashing after Download Fråga om skrivning efter Nedladdning - + Language Språk - + Profile Name Profilnamn @@ -9797,12 +8655,12 @@ Mode 4: Spara Profil - + Profile slot Profilplats - + auto backup before write säkerhetskopiera innan skrivning @@ -9812,7 +8670,7 @@ Mode 4: Välj bibliotekskatalog - + Export Profile Exportera Profil @@ -9822,7 +8680,7 @@ Mode 4: Importera Profil - + Automatically add version number to the filename after download Lägg automatiskt till ett versionsnummer till filnamnet @@ -9854,22 +8712,22 @@ Får skilja från språket för mjukvaran Öppna profil för import - + Simu BackLight Simulatorbelysning - + Processor ID Processortyp - + Simulator capture folder Katalog för simulator-data - + Use clipboard only Använd bara clipboard @@ -9884,22 +8742,22 @@ Får skilja från språket för mjukvaran Profilnamn saknas, profilplats %1 kommer att raderas.<br> Är du säker? - + Check for selected Fw updates Sök efter updatering av vald FW - + Ask use of wizard for new models Använd modell-guiden för nya modeller - + Remember switches in simulator Minns brytare i simulator - + SD Structure path Sökväg till SD-struktur @@ -9938,14 +8796,14 @@ Får skilja från språket för mjukvaran - + Name Namn - + printed on: %1 Utskriven: %1 @@ -9987,12 +8845,12 @@ Får skilja från språket för mjukvaran - + Enabled Aktiv - + Disabled Inaktiv @@ -10023,7 +8881,7 @@ Får skilja från språket för mjukvaran Centrumpip - + Delay(u%1:d%2) Fördröjning(u%1:d%2) @@ -10033,42 +8891,56 @@ Får skilja från språket för mjukvaran Tröghet(u%1:d%2) - - - + pt %1 pt %1 - + + Logical Switches + Logiska Brytare + + + + + LS + LB + + + + Switch Assignments + BrytarEffekter + + + Source Källa - - + + - + Offset Offset - + Function Funktion - - - - - + + + + + Switch Brytare - + IN IN @@ -10083,50 +8955,33 @@ Får skilja från språket för mjukvaran Viktning - - - - - Expo - Expo - - - - - - - + Curve Kurva - + Mixers Mixar - + - + CH KN - + noTrim ingenTrim - - FMTrim - FMTrim - - - + Warn Varn @@ -10139,20 +8994,20 @@ Får skilja från språket för mjukvaran - + Min Minimum - + - + Max Maximum - + Invert @@ -10178,28 +9033,13 @@ Får skilja från språket för mjukvaran Kurvor - - 5 Points Curves - 5-punktskurva - - - - 9 Points Curves - 9-punktskurva - - - - Custom Switches - Logiska Brytare - - - + Safety Switches Säkerhetsbrytare - + @@ -10207,17 +9047,7 @@ Får skilja från språket för mjukvaran Värde - - Function Switches - Brytarfunktioner - - - - CF - CF - - - + Telemetry Settings Inställningar för Telemetri @@ -10295,17 +9125,12 @@ Får skilja från språket för mjukvaran Välj PDF-fil att skriva till - + OUT UT - - Diff - Diff - - - + A%1 A%1 @@ -10326,24 +9151,18 @@ Får skilja från språket för mjukvaran Egna inställning av telemetriskärmen - - + + DISABLED INAKTIV - - - CS - LB - - - + Parameter Parameter - + Gvars Gvars @@ -10353,7 +9172,7 @@ Får skilja från språket för mjukvaran Inm.Hjul. - + Global Variables Globala Variabler @@ -10363,19 +9182,19 @@ Får skilja från språket för mjukvaran GV - + Repeat Upprepa - + Flight modes Settings - Inställningar för flygmod + Inställningar för flyglägen Flight mode name - Namn på flygmode + Namn på flygläget @@ -10386,19 +9205,19 @@ Får skilja från språket för mjukvaran FM - - + + Flight modes - Flygmoder + Flyglägen - - + + Flight mode - Flygmod + Flygläge - + ODF files (*.odt);;PDF Files(*.pdf);;HTML-Files (*.htm *.html);;All Files (*) ODF filer (*.odt);;PDF Filer(*.pdf);;HTML-Filer (*.htm *.html);;Alla Filer (*) @@ -10521,12 +9340,12 @@ Får skilja från språket för mjukvaran Simulator för 9x - + Outputs Utgångar - + CH1 KN1 @@ -10657,7 +9476,7 @@ Får skilja från språket för mjukvaran Simulerar - + 0 % @@ -10669,7 +9488,7 @@ Får skilja från språket för mjukvaran - Fligmod: %1(%2) - + CS1 LB1 @@ -10759,7 +9578,7 @@ Får skilja från språket för mjukvaran LBI - + CSJ LBJ @@ -10832,13 +9651,13 @@ Får skilja från språket för mjukvaran splashLibrary - - + + ... ... - + Splash Library - page %1 of %2 Bildbibliotek - Sida %1 av %2 @@ -10969,7 +9788,7 @@ Får skilja från språket för mjukvaran - + @@ -10983,7 +9802,7 @@ Får skilja från språket för mjukvaran -100.1 - + CH9 KN9 @@ -11013,7 +9832,7 @@ Får skilja från språket för mjukvaran KN4 - + CH12 KN12 @@ -11074,7 +9893,7 @@ Får skilja från språket för mjukvaran Joysticken kan inte hittas. Joysticken stängs av - + Firmware %1 error: %2 Firmware %1 fel: %2 @@ -11089,7 +9908,7 @@ Får skilja från språket för mjukvaran Simulerar - + SF @@ -11130,7 +9949,7 @@ Får skilja från språket för mjukvaran - Fligmod: %1(%2) - + CSK LBK diff --git a/companion/src/version.h.in b/companion/src/version.h.in index cbd6b87f2..e0770040e 100644 --- a/companion/src/version.h.in +++ b/companion/src/version.h.in @@ -1,3 +1,2 @@ #define C9X_VERSION "@C9X_VERSION@" -#define C9X_REVISION @C9X_WC_REVISION@ diff --git a/companion/src/xsimulatordialog.cpp b/companion/src/xsimulatordialog.cpp index d2200e9bf..488439715 100644 --- a/companion/src/xsimulatordialog.cpp +++ b/companion/src/xsimulatordialog.cpp @@ -30,7 +30,7 @@ xsimulatorDialog::xsimulatorDialog(QWidget *parent) : ui->setupUi(this); ui->lcd->setFocus(); - QSettings settings("companion9x", "companion9x"); + QSettings settings; ui->lcd->setBackgroundColor(47, 123, 227); setupSticks(); resize(0, 0); // to force min height, min width @@ -179,7 +179,7 @@ void xsimulatorDialog::setupTimer() void xsimulatorDialog::onButtonPressed(int value) { if (value==Qt::Key_Print) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool(); QString fileName =""; if (!toclipboard) { diff --git a/companion/src/xsimulatordialog.ui b/companion/src/xsimulatordialog.ui index d8f7d3f6f..4a5454c5d 100644 --- a/companion/src/xsimulatordialog.ui +++ b/companion/src/xsimulatordialog.ui @@ -27,7 +27,7 @@ - :/images/simulate.png:/images/simulate.png + :/icon.png:/icon.png @@ -2053,8 +2053,6 @@ border-radius: 4px; 16777215 18 - - QSlider::sub-page:horizontal:disabled { diff --git a/radio/src/.gitignore b/radio/src/.gitignore index 31c048a1d..0f2d1136d 100644 --- a/radio/src/.gitignore +++ b/radio/src/.gitignore @@ -6,3 +6,4 @@ /opentx.map /simu.d /snapshot_*.png +/*.sh diff --git a/radio/src/Makefile b/radio/src/Makefile index 7e49bf5ab..4ce991777 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -159,6 +159,10 @@ PPM_UNIT = PERCENT_PREC1 # Values = YES, NO FRSKY_HUB = YES +# FrSky FAS current sensor offset compensation +# Values = YES, NO +FAS_OFFSET = NO + # WS HowHigh # Values = YES, NO WS_HOW_HIGH = YES @@ -256,7 +260,7 @@ MENUS_LOCK == NO SHELL = sh IMG2LBM = -python ../util/img2lbm.py TRANSLATE = -python ../util/translate.py -SVNREV = $(shell sh -c "svnversion | egrep -o '[[:digit:]]+[[:alpha:]]*$$'") +VERSION = 2.0 SRC = CPPSRC = @@ -332,6 +336,10 @@ ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR)) ifeq ($(SP22), YES) CPPDEFS += -DSP22 endif + + ifeq ($(FAS_OFFSET), YES) + CPPDEFS += -DFAS_OFFSET + endif endif ifeq ($(PCB), $(filter $(PCB), STD128 9X128 9XR128)) @@ -779,10 +787,8 @@ ifneq ($(PCB), TARANIS) endif ifneq ($(FONT), STD) - CPPDEFS += -DFONT_$(FONT) INCDIRS += fonts/$(shell sh -c "echo $(FONT) | tr '[:upper:]' '[:lower:]'") endif - INCDIRS += fonts/std ifeq ($(THR_TRACE), YES) @@ -1063,91 +1069,83 @@ stamp_header: @echo "//Automatically generated file (Makefile) - do not edit" > stamp-opentx.h @echo "#define DATE_STR \"`date +%Y-%m-%d | tr -d '\r\n'`\"" >> stamp-opentx.h @echo "#define TIME_STR \"`date +%H:%M:%S | tr -d '\r\n'`\"" >> stamp-opentx.h - @echo "#define SVN_STR \"opentx-r$(SVNREV)\"" >> stamp-opentx.h + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx.h @cat stamp-opentx.h -stock-stamp: - @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock.txt - @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock.txt - @cat stamp-opentx-stock.txt +9x-stamp: + @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x.txt + @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x.txt + @cat stamp-opentx-9x.txt -stock128-stamp: - @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock128.txt - @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock128.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock128.txt - @cat stamp-opentx-stock128.txt +9x128-stamp: + @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x128.txt + @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x128.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x128.txt + @cat stamp-opentx-9x128.txt -stock2561-stamp: - @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock2561.txt - @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock2561.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock2561.txt - @cat stamp-opentx-stock2561.txt +9x2561-stamp: + @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x2561.txt + @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x2561.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x2561.txt + @cat stamp-opentx-9x2561.txt -v4-stamp: - @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-v4.txt - @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-v4.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-v4.txt - @cat stamp-opentx-v4.txt +gruvin9x-stamp: + @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-gruvin9x.txt + @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-gruvin9x.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-gruvin9x.txt + @cat stamp-opentx-9x.txt -arm-stamp: - @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-arm.txt - @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-arm.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-arm.txt - @cat stamp-opentx-arm.txt +sky9x-stamp: + @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-sky9x.txt + @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-sky9x.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-sky9x.txt + @cat stamp-opentx-sky9x.txt taranis-stamp: @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-taranis.txt @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-taranis.txt - @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-taranis.txt + @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-taranis.txt @cat stamp-opentx-taranis.txt translations/cz.h: translations/cz.h.txt @echo - @echo "Create language specific header files" - @echo "Czech" + @echo "Create Czech language specific header files" $(TRANSLATE) translations/cz.h.txt translations/cz.h cz translations/de.h: translations/de.h.txt @echo - @echo "Create language specific header files" - @echo "German" + @echo "Create German language specific header files" $(TRANSLATE) translations/de.h.txt translations/de.h de translations/es.h: translations/es.h.txt @echo - @echo "Create language specific header files" - @echo "Spanish" + @echo "Create Spanish language specific header files" $(TRANSLATE) translations/es.h.txt translations/es.h es translations/fr.h: translations/fr.h.txt @echo - @echo "Create language specific header files" - @echo "French" + @echo "Create French language specific header files" $(TRANSLATE) translations/fr.h.txt translations/fr.h fr translations/it.h: translations/it.h.txt @echo - @echo "Create language specific header files" - @echo "Italian" + @echo "Create Italian language specific header files" $(TRANSLATE) translations/it.h.txt translations/it.h it translations/pl.h: translations/pl.h.txt @echo - @echo "Create language specific header files" - @echo "Polish" + @echo "Create Polish language specific header files" $(TRANSLATE) translations/pl.h.txt translations/pl.h pl translations/pt.h: translations/pt.h.txt @echo - @echo "Create language specific header files" - @echo "Portugese" + @echo "Create Portugese language specific header files" $(TRANSLATE) translations/pt.h.txt translations/pt.h pt translations/se.h: translations/se.h.txt @echo - @echo "Create language specific header files" - @echo "Swedish" + @echo "Create Swedish language specific header files" $(TRANSLATE) translations/se.h.txt translations/se.h se .PHONY: fonts @@ -1363,11 +1361,11 @@ GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) # conservative and not optimized. This is fine as Google Test # compiles fast and for ordinary users its source rarely changes. gtest-all.o : $(GTEST_SRCS_) - $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -c \ + $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GTEST_DIR)/include -c \ $(GTEST_DIR)/src/gtest-all.cc gtest_main.o : $(GTEST_SRCS_) - $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -c \ + $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GTEST_DIR)/include -c \ $(GTEST_DIR)/src/gtest_main.cc gtest.a : gtest-all.o @@ -1381,4 +1379,4 @@ gtest_main.a : gtest-all.o gtest_main.o # function. gtests: $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp *.h gtest_main.a - g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp -I$(GTEST_DIR) -o gtests -lpthread -MD -DSIMU gtest_main.a + g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp -I$(GTEST_DIR) ${INCFLAGS} -I$(GTEST_DIR)/include -o gtests -lpthread -MD -DSIMU gtest_main.a diff --git a/radio/src/bitmaps/.gitignore b/radio/src/bitmaps/.gitignore new file mode 100644 index 000000000..82b82bcbf --- /dev/null +++ b/radio/src/bitmaps/.gitignore @@ -0,0 +1 @@ +/*.lbm diff --git a/radio/src/bitmaps/about_9x.lbm b/radio/src/bitmaps/about_9x.lbm deleted file mode 100644 index 8b45bad17..000000000 --- a/radio/src/bitmaps/about_9x.lbm +++ /dev/null @@ -1,4 +0,0 @@ -11,17, -0x00,0x80,0x80,0xbe,0xe3,0xc1,0xc1,0xc1,0xe3,0xff,0xff, -0x00,0xe7,0x24,0x3c,0x00,0x00,0x00,0x00,0x3f,0x3f,0xff, -0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, diff --git a/radio/src/bitmaps/about_taranis.lbm b/radio/src/bitmaps/about_taranis.lbm deleted file mode 100644 index b7a363165..000000000 --- a/radio/src/bitmaps/about_taranis.lbm +++ /dev/null @@ -1,9 +0,0 @@ -60,64, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xe0,0xe0,0x70,0xf8,0xf0,0xf0,0xf8,0xf0,0xf8,0xf8,0xf8,0xf0,0xf8,0xf8,0xf8,0xf0,0xf0,0xf0,0xf8,0x00,0xe0,0xe0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x00,0x01,0x00,0x01,0x03,0x16,0x0c,0x0b,0x07,0x1e,0x32,0x2c,0x1f,0xb6,0x03,0x7b,0xfc,0xb8,0x2f,0xcf,0xf0,0x20,0xbf,0x3f,0xc0,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x02,0xfe,0xfe,0x01,0x12,0xf6,0xf1,0x0f,0x37,0xd1,0xce,0x3f,0x7c,0xea,0xd2,0x3c,0x40,0xc8,0xf8,0x30,0x40,0xc0,0xf0,0x30,0x40,0xc0,0xf0,0x30,0x40,0xc0,0xf0,0x30,0x40,0xc0,0xf0,0x30,0x60,0xc0,0x30,0xf0,0xc0,0x10,0xe0,0xf0,0x20,0xc0,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x10,0x18,0x18,0x58,0x30,0x38,0x18,0xf8,0xf0,0xf8,0xf8,0xf8,0xf1,0xf9,0xf8,0xf8,0xf0,0xf9,0xf9,0xf9,0xf1,0xf8,0xf9,0xf9,0xf0,0xf9,0xf8,0xf8,0xf0,0xf8,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x09,0x01,0x00,0xf9,0xf8,0x07,0xff,0x71,0x01,0xfe,0xff,0x23,0x03,0x03,0xfc,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x06,0x01,0x00,0xff,0xff,0x00,0xff,0xff,0xf5,0xf6,0x08,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x80,0x60,0xa0,0xc0,0xea,0x84,0x74,0xf8,0xfd,0xa1,0x9e,0x7f,0x26,0xee,0xe1,0x1f,0x06,0xfe,0xfe,0x01,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x40,0x7f,0x7f,0x80,0x60,0x5f,0x9f,0xe0,0x70,0x3f,0xdf,0xe0,0x70,0xbf,0xdf,0x60,0x50,0x1f,0x7f,0x60,0x50,0x1f,0x7f,0x60,0x50,0x1f,0x7f,0x60,0x10,0x1f,0x7f,0x60,0x72,0x1c,0x60,0x7f,0x1f,0x40,0x3f,0x7f,0x0d,0x3b,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x40,0x20,0xe0,0xc0,0xa0,0x00,0x80,0xc0,0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x00,0x00,0x06,0x06,0x04,0x06,0x04,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x80,0xa0,0x00,0x80,0xc0,0x40,0x20,0xe0,0xc0,0x40,0x90,0x70,0xe0,0xa0,0xc8,0xb8,0x70,0x52,0xe4,0xdc,0x38,0x2c,0xf0,0xec,0x1e,0x1b,0xf1,0xf6,0x0f,0x03,0xfa,0xf9,0x07,0x03,0xfe,0xfe,0x01,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xff,0x00,0x00,0xbf,0x3f,0xc0,0x80,0x2f,0xcf,0xf0,0xe2,0x0b,0x73,0xfc,0x1e,0xe3,0x5c,0x3f,0x3f,0x04,0x13,0x0f,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xfe,0xfe,0x01,0x03,0xff,0xfe,0x01,0x03,0xfc,0xfd,0x03,0x05,0xfc,0xff,0x03,0x06,0xf9,0xfa,0x07,0x0e,0xfd,0xfb,0x06,0x00,0xf0,0xf6,0x0e,0x06,0xf8,0xf4,0x0e,0x1c,0xfa,0xf6,0x0c,0x1a,0xf8,0xf4,0x0c,0x04,0xe4,0xe8,0x1c,0x04,0xe6,0xe8,0x1c,0x0e,0xe4,0xe8,0x1c,0x1e,0xe4,0xe8,0x1c,0x0e,0xe4,0xe8,0x1c,0x06,0xe4,0xe8,0x1c,0x04,0xe4,0xe8,0x1c,0x18,0xf8,0xf4,0x0c,0x1c,0xfa,0xf6,0x0c,0x06,0xf8,0xf4,0x0e,0x04,0xf0,0xf6,0x0e,0x0e,0xfd,0xfb,0x06,0x06,0xf9,0xfa,0x07,0x07,0xfe,0xfd,0x03,0x03,0xfc,0xfd,0x03,0x03,0xff,0xfe,0x01,0x00,0xfe,0xfe,0x01,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x03,0xff,0xff,0x00,0x04,0xfe,0xfd,0x03,0x0b,0xfc,0xfb,0x07,0x17,0x7b,0x75,0x8e,0x5e,0x14,0x8a,0xfc,0xdc,0x08,0xf4,0xf8,0xb8,0x90,0xe8,0x70,0x50,0x00,0x50,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x3f,0xbf,0xc0,0xc0,0xff,0x7f,0x80,0x00,0xff,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x80,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xff,0x00,0x00,0x7f,0x7f,0x80,0x00,0xff,0x7f,0x80,0xc0,0xff,0x7f,0x80,0x00,0x3f,0xbf,0xc0,0x80,0x7f,0xbf,0xc0,0x00,0x1f,0xdf,0xe0,0x40,0xbf,0x5f,0xe0,0x40,0x8f,0xef,0x70,0x20,0xdf,0x2f,0x70,0x68,0x4f,0x7f,0x30,0xe8,0x5f,0xaf,0x70,0xd0,0xbf,0x5f,0xe0,0xa0,0x7f,0xbf,0xc0,0xc0,0xff,0x7f,0x80,0x80,0xff,0xff,0x00,0x80,0x7f,0x7f,0x80,0x00,0x3f,0xbf,0xc0,0xc0,0x5f,0x9f,0xe0,0x70,0xbf,0x5f,0xe0,0x68,0xdf,0x2f,0x70,0x74,0x2f,0x57,0x38,0x2a,0x07,0x3b,0x1c,0x1e,0x0a,0x14,0x0f,0x0f,0x05,0x0a,0x07,0x05,0x06,0x01,0x03,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x01,0x01,0x00,0x01,0x01,0x02,0x03,0x01,0x03,0x00,0x01,0x03,0x02,0x06,0x05,0x03,0x07,0x01,0xfe,0xff,0x83,0x02,0xfc,0xff,0xfe,0xff,0x7f,0x80,0x00,0xff,0x7f,0x80,0x00,0xff,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x00,0x7f,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x00,0xff,0x7f,0x80,0x00,0xff,0x7f,0x80,0xfe,0xff,0x7f,0x80,0xbb,0x3a,0xc4,0xff,0x83,0x01,0xfe,0xff,0x02,0x06,0x05,0x03,0x03,0x00,0x01,0x03,0x01,0x02,0x03,0x01,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x03,0x01,0x02,0x01,0x07,0x02,0x05,0x03,0x02,0x00,0x03,0x07,0x05,0x00,0x07,0x03,0x03,0x02,0x03,0x01,0x01,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x02,0x02,0x01,0x01,0x01,0x02,0x03,0x01,0x03,0x02,0x03,0x01,0x03,0x00,0x01,0x03,0x01,0x02,0x01,0x03,0x03,0x02,0x01,0x03,0x03,0x02,0x01,0x03,0x03,0x02,0x01,0x03,0x00,0x00,0x03,0x03,0x02,0x02,0x01,0x03,0x03,0x02,0x01,0x03,0x03,0x02,0x01,0x03,0x01,0x02,0x01,0x03,0x03,0x00,0x01,0x03,0x03,0x02,0x03,0x01,0x01,0x02,0x03,0x01,0x02,0x02,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, diff --git a/radio/src/bitmaps/asterisk.lbm b/radio/src/bitmaps/asterisk.lbm deleted file mode 100644 index dcd2243b3..000000000 --- a/radio/src/bitmaps/asterisk.lbm +++ /dev/null @@ -1,5 +0,0 @@ -27,32, -0xfc,0x04,0x04,0x04,0x04,0x04,0x04,0x84,0xc4,0x84,0x04,0xe4,0xf4,0xe4,0x04,0x84,0xc4,0xc4,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xfc, -0xff,0x00,0x00,0x00,0xfc,0xfe,0x00,0xff,0xff,0xff,0x80,0xff,0xff,0xff,0x80,0xff,0xff,0xff,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0xff, -0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfc,0xff,0x3f,0x0f,0x03,0x00,0x00,0xff, -0x3f,0x20,0x20,0x20,0x21,0x27,0x27,0x2f,0x2f,0x2f,0x2b,0x27,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x27,0x23,0x20,0x20,0x20,0x20,0x20,0x20,0x3f, diff --git a/radio/src/bitmaps/asterisk_4bits.lbm b/radio/src/bitmaps/asterisk_4bits.lbm deleted file mode 100644 index 4bc1844d8..000000000 --- a/radio/src/bitmaps/asterisk_4bits.lbm +++ /dev/null @@ -1,9 +0,0 @@ -60,64, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x3f,0xbf,0x3f,0xbf,0xdf,0x9f,0xdf,0x9f,0xef,0xff,0xef,0xef,0xf7,0xf7,0xf7,0xf7,0xf3,0x73,0x73,0x7b,0x3b,0x3b,0x3b,0x3b,0x1b,0x1b,0x1b,0x3b,0x1b,0x1b,0x1b,0x3b,0x3b,0x3b,0x3b,0x3b,0x7b,0xfb,0xf3,0x7b,0xf7,0xf7,0xf7,0xf7,0xef,0xef,0xef,0xef,0x5f,0x9f,0x9f,0x1f,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0x3f,0xbf,0x3f,0x3f,0x7f,0x7f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0x7f,0x7f,0xbf,0xbf,0x3f,0x3f,0xdf,0xdf,0xdf,0xdf,0xcf,0xcf,0xcf,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xf7,0xe7,0xe7,0xe7,0xf3,0xfd,0xf1,0xf9,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0x0f,0x0f,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x1f,0xff,0x0f,0x07,0x03,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0f,0x03,0x07,0x03,0x1f,0x0f,0xff,0x0f,0xfe,0xff,0xfe,0xff,0xfe,0xfc,0xfe,0xfc,0xf9,0xf1,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0x80,0x80,0xff,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0x3f,0x3f,0xbf,0xbf,0x7f,0x7f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0xe0,0xc0,0xf9,0xf9,0xfe,0xf8,0xff,0xff,0xff,0xff,0x7f,0x3f,0x3f,0x1f,0x0f,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x5b,0xf7,0xa7,0xc7,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xfe,0x1f,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xc0,0xe0,0xe0,0xc0,0xc0,0xe0,0xe0,0xe0,0xe0,0xf0,0xe0,0xf0,0xe0,0x70,0x70,0x70,0x70,0x70,0x78,0x70,0x70,0x3f,0x3f,0x7e,0x7e,0x3f,0x3f,0x7f,0x3f,0x0f,0x0f,0x1f,0x0f,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x90,0x20,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x1f,0x3f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbf,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xe0,0xc0,0x00,0xf8,0xfc,0xfc,0xf8,0xff,0xff,0xfe,0xfe,0x1d,0x7f,0x3f,0x1f,0x07,0x07,0x07,0x07,0x01,0x03,0x03,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xdf,0x1f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x07,0x07,0x03,0x0f,0x1f,0x1f,0x0f,0x3f,0x3f,0x3f,0x3f,0xfc,0x7c,0x78,0x7c,0xf0,0xf0,0xf0,0xf0,0xe0,0xe0,0xe0,0xe0,0xc0,0xc0,0xc0,0xc0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0xc0,0xc0,0xc0,0xc0,0xe0,0xe0,0xe0,0xe0,0xf0,0xf0,0xf0,0xf0,0xfc,0x7c,0x7c,0x78,0x3f,0x3f,0x3e,0x3f,0x0f,0x07,0x0f,0x0f,0x03,0x01,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x03,0x07,0x07,0x07,0x07,0x06,0x07,0x06,0x0f,0x0e,0x0e,0x0e,0x0e,0x1c,0x0e,0x0e,0x0e,0x1c,0x1e,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x3c,0x18,0x1c,0x1c,0x1c,0x38,0x1c,0x18,0x18,0x18,0x3c,0x18,0x18,0x1c,0x38,0x18,0x1c,0x1c,0x38,0x18,0x1c,0x18,0x3c,0x18,0x3c,0x1c,0x1c,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x0c,0x1e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x0f,0x07,0x01,0x07,0x07,0x07,0x03,0x03,0x07,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, diff --git a/radio/src/bitmaps/icons.lbm b/radio/src/bitmaps/icons.lbm deleted file mode 100644 index b111790e1..000000000 --- a/radio/src/bitmaps/icons.lbm +++ /dev/null @@ -1,2 +0,0 @@ -111,8, -0xff,0xff,0x00,0x00,0xff,0xff,0x1c,0x1c,0x6b,0xff,0xb6,0x22,0xbf,0xff,0xc0,0x80,0xff,0xff,0xe8,0xe8,0xbf,0xff,0xc0,0x80,0x6b,0xff,0xb6,0x22,0xff,0xff,0x1c,0x1c,0xff,0xff,0x00,0x00,0xff,0xff,0x38,0x38,0xbb,0xff,0x7c,0x38,0x7d,0xff,0xfe,0x7c,0xff,0xff,0xfe,0xfe,0xff,0xff,0x00,0x00,0xff,0xff,0x50,0x50,0xff,0xff,0x20,0x20,0xff,0xff,0x50,0x50,0xff,0xff,0x38,0x38,0xbb,0xff,0x7c,0x38,0x7d,0xff,0xfe,0x7c,0xff,0xff,0xfe,0xfe,0xff,0xff,0x00,0x00,0xff,0xff,0x40,0x40,0xff,0xff,0x40,0x40,0xff,0xff,0x40,0x40,0xff,0xff,0x38,0x38,0xbb,0xff,0x7c,0x38,0x7d,0xff,0xfe,0x7c,0xff,0xff,0xfe,0xfe,0xff,0xff,0x00,0x00,0xff,0xff,0x50,0x50,0xff,0xff,0x50,0x50,0xff,0xff,0x50,0x50,0xff,0xff,0x38,0x38,0xbb,0xff,0x7c,0x38,0x7d,0xff,0xfe,0x7c,0xff,0xff,0xfe,0xfe,0xff,0xff,0x00,0x00,0xff,0xff,0x54,0x54,0xff,0xff,0x54,0x54,0xff,0xff,0x54,0x54,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xff,0xc1,0x41,0x41,0xff,0xfd,0x7d,0x7d,0xff,0xfd,0x7d,0x7d,0xff,0xfd,0x7d,0x7d,0xff,0xfd,0x7d,0x7d,0xfd,0xfb,0x7b,0x79,0xfb,0xc7,0x47,0x43,0xff,0xff,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xe3,0xff,0x77,0x63,0xdd,0xff,0x63,0x41,0xdd,0xff,0x41,0x41,0xdd,0xff,0x63,0x41,0xe3,0xff,0x77,0x63,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0xff,0xff,0xfd,0xff,0x43,0x41,0xff,0xff,0x7d,0x7d,0xff,0xff,0x73,0x73,0xff,0xff,0x7d,0x7d,0xdd,0xff,0x63,0x41,0xff,0xff,0x5f,0x5f,0xff,0xff,0x59,0x59,0xdd,0xff,0x63,0x41,0xff,0xff,0x79,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0x79,0xdd,0xff,0x63,0x41,0xff,0xff,0x59,0x59,0xff,0xff,0x5f,0x5f,0xf5,0xff,0x5b,0x51,0xff,0xff,0x55,0x55,0xff,0xff,0x55,0x55,0xff,0xff,0x55,0x55,0xd7,0xff,0x6d,0x45,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x63,0xff,0xff,0x63,0x63,0xff,0xff,0x77,0x77,0xff,0xff,0x73,0x73,0xff,0xff,0x65,0x65,0xfd,0xff,0x57,0x55,0xff,0xff,0x77,0x77,0xff,0xff,0x63,0x63,0xeb,0xff,0x77,0x63,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0x51,0x51,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x40,0x40,0xff,0xff,0x20,0x20,0xff,0xff,0x10,0x10,0xff,0xff,0x08,0x08,0xff,0xff,0x10,0x10,0xff,0xff,0x08,0x08,0xff,0xff,0x06,0x06,0xff,0xff,0x18,0x18,0xff,0xff,0xe0,0xe0, diff --git a/radio/src/bitmaps/logo_taranis.lbm b/radio/src/bitmaps/logo_taranis.lbm deleted file mode 100644 index abf5d8db6..000000000 --- a/radio/src/bitmaps/logo_taranis.lbm +++ /dev/null @@ -1,5 +0,0 @@ -64,32, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0x09,0x0b,0x02,0x46,0x1a,0x49,0x2b,0x0d,0x53,0x48,0x2b,0x28,0x2c,0x52,0x4b,0x9f,0x84,0xdb,0x52,0xaa,0x14,0xb2,0x96,0x38,0x2e,0x66,0x24,0xf0,0x48,0xcc,0xcc,0xb4,0x98,0x98,0x18,0xf8,0x20,0x30,0x70,0xe0,0xe0,0xe0,0xc0,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xe0,0xc0,0xe0,0xc0,0xf8,0xf8,0xf8,0xf0,0xfd,0xfd,0xfc,0xfe,0xbe,0x7e,0xff,0x7f,0x1e,0x3e,0x3f,0x3f,0x0a,0x36,0x37,0x33,0x32,0x11,0x33,0x33,0x32,0x31,0x33,0x33,0x12,0x11,0x33,0x33,0x92,0x03,0x83,0x03,0xc1,0xe3,0xe0,0xc3,0xfc,0xfc,0xf0,0xf8,0xfc,0xf8,0xf8,0xfc,0x7c,0xf8,0x38,0x7c,0x38,0x18,0x18,0x1c,0x18,0x08,0x0c,0x18,0x1c,0x1c,0x1c,0x08,0x0c,0x18,0x08,0x1c,0x04,0x00,0x00,0x0c,0x00,0x00,0x03,0x01,0x00,0x04,0x03,0x02,0x00,0x01,0x00,0x00,0x07,0x03,0x03,0x03,0x01,0x03,0x00,0x00,0x05,0x03,0x03,0x03,0x53,0x23,0x40,0x23,0x30,0x78,0x70,0x78,0x3e,0x7e,0x7e,0x7c,0x3e,0x7f,0x7f,0x7e,0x3f,0x7f,0x7e,0x7f,0xfe,0x7a,0xf7,0xfb,0xf2,0xf9,0xf3,0xfb,0xf2,0xf9,0xf3,0xfb,0xfa,0xf9,0xf3,0xfb,0x5a,0x71,0x33,0x3b,0x02,0x13,0x03,0x03,0xc3,0xe0,0x83,0xc0,0xf0,0xe0,0xf8,0xf0,0xfa,0xfd,0xfe,0xfc,0x7e,0x7e,0x7f,0xff,0x3e,0x3e,0x7f,0x3f,0xf2,0x36,0x3b,0xf7,0xf9,0xf9,0xfa,0xf1,0xf8,0xfc,0xfc,0xf8,0xfe,0xfe,0xfc,0xfc,0xf2,0xa7,0xc2,0x06,0x02,0x03,0x03,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x86,0xf6,0xef,0x9f,0xfe,0xfe,0xff,0xff,0xfe,0xfe,0xff,0xff,0x7e,0xfe,0xff,0xff,0x31,0x71,0x36,0x38,0x18,0x30,0x10,0x18,0x08,0x1c,0x08,0x0c,0x06,0x04,0x0c,0x06,0x06,0x03,0x06,0x03,0x03,0x03,0x03,0x01,0x00,0x00,0x01,0x00, -0xf8,0xfa,0xfa,0xf8,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xf9,0xf9,0xfb,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xfa,0xfa,0xf8,0xfb,0xfb,0xfb,0xfb,0x7b,0xfb,0xfb,0x7b,0xbb,0x7b,0xfb,0x3b,0x7a,0xb8,0xbb,0xb9,0x78,0xb8,0xb8,0xb8,0xb8,0x78,0xf8,0x38,0x78,0xf8,0xf8,0x78,0xf8,0xf8,0xf8,0xf8,0x38,0x38,0x38,0x38,0xb8,0xb8,0xb8,0xb8,0x78,0x38,0xb8,0xb8,0xb8,0x78,0x38,0x78,0xf8,0xf8,0xf8,0xf8,0x38,0x38,0x38,0x38,0xba,0xb8,0xb8,0xb8,0xbb,0xba,0xbb,0xbb,0xba,0xba,0xbb,0xbb,0xfa,0xfb,0xfa,0xfb,0x3a,0x3b,0x3a,0x3b,0x7a,0x7b,0x7a,0x3b,0x7b,0xfb,0xfa,0x7b,0xfb,0xfb,0xfb,0xfb,0xf9,0xfb,0xfb,0xfb,0x3b,0x39,0x3b,0x39,0xf9,0xf9,0xf8,0xf8,0xf8,0xfa,0xf8,0x78,0xfb,0xfb,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0x9b,0x99,0x99,0x9b,0x9b,0x98,0x98,0x98,0x98,0x18,0x18,0x18,0x18,0x1a,0x1b,0x1a,0x19,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0xfb,0xfb,0xfb,0x9b,0xfa,0xf9,0xfa,0xdb,0xd8,0x58,0x98,0x98,0x18,0x18,0x18,0x18,0x78,0x78,0x18,0x38,0x7a,0x78,0xf8,0x78,0x58,0x1b,0x1b,0x3a,0x9b,0x1b,0x1b,0x1b,0x5b,0x9b,0xdb,0x9b,0xdb,0xfb,0xdb,0xfb,0xfa,0xf8,0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfc,0xfc,0xd8,0xf4,0xfb,0xff,0xd3,0xfb,0xf7,0xf7,0xd7,0xfb,0xf7,0xf7,0xd7,0xf4,0xfb,0xff,0xd3,0xfb,0xfc,0xfc,0xd8,0xff,0xff,0xff,0xdf,0xf0,0xf0,0xf0,0xd0,0xfd,0xfd,0xfd,0xdd,0xfc,0xfc,0xfd,0xdd,0xfc,0xfc,0xfc,0xde,0xff,0xff,0xff,0xdf,0xf0,0xf0,0xf0,0xd0,0xf6,0xf6,0xf6,0xd6,0xf6,0xf6,0xf6,0xd6,0xf6,0xf7,0xf6,0xd6,0xff,0xff,0xff,0xdf,0xf0,0xf0,0xf0,0xd0,0xff,0xfe,0xff,0xde,0xfe,0xfc,0xfe,0xdc,0xf9,0xfc,0xfd,0xd8,0xfb,0xf9,0xfb,0xd1,0xf0,0xf0,0xf0,0xd0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xf8,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xdf,0xff,0xdf,0xd7,0xcf,0xc7,0xcf,0xc7,0xe0,0xc6,0xc3,0xe8,0xe0,0xe0,0xf0,0xf8,0xf8,0xf0,0xf8,0xc2,0xf0,0xf0,0xe0,0xc7,0xc7,0xc6,0xc3,0xd7,0xc7,0xcf,0xcf,0xff,0xdf,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, diff --git a/radio/src/bitmaps/splash_9x.lbm b/radio/src/bitmaps/splash_9x.lbm deleted file mode 100644 index 4441422ee..000000000 --- a/radio/src/bitmaps/splash_9x.lbm +++ /dev/null @@ -1,9 +0,0 @@ -128,64, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0xff,0xff,0xe7,0xc7,0x07,0x07,0x07,0x07,0x07,0x07,0x1f,0x7f,0xff,0xff,0xff,0x3f,0x0f,0x07,0x07,0x07,0x07,0x07,0x87,0xe7,0xf7,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x07,0x03,0x03,0xc1,0xf1,0xf8,0xf8,0xf8,0xf8,0xf0,0xf1,0xc1,0x03,0x03,0x07,0x1f,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xf8,0xf8,0xf8,0x70,0x00,0x01,0x03,0x07,0xff,0xff,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x38,0x38,0xff,0xff,0x00,0x00,0x00,0x00,0x81,0x03,0x0f,0x1f,0x3f,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xf8,0xf0,0xc0,0x80,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0xc0,0xe0,0xf8,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xe0,0xc0,0xc0,0x83,0x8f,0x1f,0x1f,0x1f,0x1f,0x1f,0x8f,0x83,0xc0,0xc0,0xe0,0xf8,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xf8,0xf8,0xf8,0xf8,0xf8,0xfc,0xfc,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xf8,0xf0,0xc0,0x81,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x1f,0x0f,0x03,0x01,0x00,0x00,0x80,0xe0,0xf0,0xc0,0x00,0x00,0x00,0x03,0x07,0x1f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xe7,0xe1,0xe0,0xe0,0xe0,0xe0,0xe0,0xf0,0xf8,0xfe,0xff,0xff,0xff,0xff,0xff,0xfc,0xf8,0xe0,0xe0,0xe0,0xe0,0xe0,0xe1,0xe7,0xef,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, diff --git a/radio/src/bitmaps/splash_taranis.lbm b/radio/src/bitmaps/splash_taranis.lbm deleted file mode 100644 index 87b04381a..000000000 --- a/radio/src/bitmaps/splash_taranis.lbm +++ /dev/null @@ -1,9 +0,0 @@ -212,64, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0x7f,0x3f,0x3f,0x7f,0x1f,0x3f,0x3f,0x1f,0x1f,0x0f,0x0f,0x1f,0x1f,0x07,0x0f,0x0f,0x07,0x0f,0x0f,0x07,0x07,0x03,0x07,0x07,0x03,0x03,0x03,0x07,0x07,0x03,0x07,0x03,0x83,0x07,0x83,0x03,0x03,0x03,0x03,0x83,0x03,0x03,0x03,0x83,0x83,0x07,0x83,0x03,0x07,0x03,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x03,0x07,0x07,0x07,0x0f,0x0f,0x07,0x1f,0x07,0x0f,0x0f,0x1f,0x0f,0x0f,0x1f,0x1f,0x3f,0x3f,0x1f,0x7f,0x3f,0x3f,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x03,0x03,0xff,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0xc3,0xc3,0xc3,0x83,0x83,0xc3,0x83,0x83,0x03,0x83,0x87,0x03,0x07,0x03,0x07,0x03,0x07,0x03,0x03,0x07,0x07,0x0f,0x07,0x07,0x1f,0x0f,0x07,0x0f,0x0f,0x2f,0x1f,0x1f,0x3f,0x7f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x43,0x03,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0x83,0x83,0x83,0xc3,0x83,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x03,0x03,0xff,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0b,0x07,0x03,0x07,0x0f,0x07,0x1f,0x0f,0x1f,0x1f,0x1f,0x3f,0xbf,0xbf,0x7f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0x03,0xff,0xff,0xff,0xff,0xfb,0x07,0xf7,0xf7,0xff,0x0f,0xcf,0xdf,0xdf,0x3f,0xdf,0xbf,0xbf,0x7f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfb,0xff,0xff,0xf3,0xf3,0xf3,0xfb,0xf3,0xd3,0xe3,0xe3,0xc3,0x83,0x83,0xc3,0x83,0x03,0x83,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x0b,0x03,0x07,0x3f,0x0f,0x0f,0x1f,0xff,0x3f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0x7f,0xff,0x5f,0x1f,0x1f,0x3f,0x17,0x07,0x07,0x0f,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x83,0x43,0x83,0x83,0xe3,0xe3,0xe3,0xc3,0xe3,0xeb,0xf3,0xf3,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x09,0x7b,0x87,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x38,0x74,0xf8,0xfc,0xfc,0xfc,0xfe,0xff,0xfe,0xff,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xfc,0xfc,0xfc,0xfe,0xf0,0x38,0x74,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x4f,0x09,0x7b,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x1f,0x0f,0x1f,0x17,0x0e,0x07,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0xc0,0xc0,0x80,0xe0,0xc8,0xef,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x07,0x07,0x07,0x0f,0x07,0x07,0x07,0x0f,0x07,0x07,0x07,0x0f,0x07,0x07,0x07,0x0f,0x07,0x07,0x07,0x0f,0x07,0x0f,0x0f,0xff,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xf8,0xf8,0xf0,0xd0,0xd0,0xe0,0xe0,0xa0,0x80,0x80,0xc0,0x80,0x00,0x80,0x00,0x01,0x01,0x01,0x00,0x05,0x03,0x01,0x03,0x03,0x07,0x0f,0x07,0x0f,0x0f,0x0f,0x1f,0x5f,0x5f,0x3f,0x3f,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xfe,0xfe,0xff,0x01,0xfb,0xf9,0xfb,0x07,0xfb,0xf7,0xf7,0x0f,0xef,0xff,0xef,0x1f,0x5f,0xdf,0x7f,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfe,0xfc,0xfe,0xf8,0xfc,0xfc,0xf8,0xe0,0xe8,0xf0,0xf0,0xc0,0xc0,0xc0,0xe0,0xc0,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x07,0x03,0x03,0x07,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0xa0,0xc0,0x80,0xc0,0xc0,0xe0,0xf0,0xe0,0xf8,0xf0,0xf0,0xf8,0xfe,0xfa,0xfc,0xfc,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfe,0xff,0xfa,0xf4,0xfc,0xf8,0xf8,0xe0,0xe0,0xf0,0xc0,0xe0,0xe0,0xc0,0x80,0x80,0x80,0xc0,0x00,0x00,0x80,0x80,0x00,0x01,0x80,0x00,0x01,0x03,0x03,0x01,0x07,0x03,0x07,0x03,0x07,0x03,0x07,0x07,0x0f,0x07,0x0f,0x07,0x07,0x07,0x07,0x0f,0x07,0x07,0x07,0x0f,0x0f,0x07,0x0f,0x07,0x07,0x03,0x07,0x07,0x07,0x03,0x07,0x03,0x01,0x03,0x03,0x01,0x00,0x01,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0xc0,0xc0,0xe0,0xe0,0xc0,0xf8,0xe0,0xe0,0xf0,0xfa,0xf4,0xfc,0xf8,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfe,0xfc,0xfc,0xfc,0xfe,0xfc,0xfc,0xfc,0xfe,0xfc,0xfc,0xfc,0xfe,0xfc,0xfc,0xfc,0xfe,0xfe,0xfe,0xfc,0xfe,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x0f,0x0f,0x0f,0x1f,0x0f,0x0f,0x0f,0x1f,0x0f,0x0f,0x0f,0x1f,0x0f,0x0f,0x0f,0x1f,0x0f,0x0f,0x0f,0x1f,0x0f,0x0f,0x0f,0x1f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfd,0xfe,0xfc,0xfe,0xf4,0xfc,0xfc,0xf8,0xe8,0xe8,0xf0,0xf0,0xc0,0xc0,0xc0,0xe0,0x00,0x80,0xc0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x7f,0x7f,0x7f,0x80,0x3f,0xff,0xbf,0xc0,0xcf,0xcf,0xef,0xf0,0xef,0xf7,0xf7,0xf8,0xff,0xff,0xfb,0xfc,0xfe,0xfc,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x7f,0x7f,0x1f,0x3f,0x1f,0x3f,0x1f,0x0f,0x1f,0x0f,0x03,0x0b,0x07,0x07,0x01,0x01,0x01,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xc0,0xc0,0xe0,0x00,0xc0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x01,0x01,0x03,0x03,0x03,0x07,0x07,0x17,0x0f,0x0f,0x1f,0x3f,0x3f,0x1f,0xff,0x7f,0x3f,0x7f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x1f,0xff,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xee,0xff,0x1f,0xee,0xee,0xfe,0x1f,0xee,0xee,0xff,0x1e,0xee,0xef,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xef,0xfe,0x1e,0xee,0xee,0xff,0x1e,0xee,0xee,0xfe,0x1f,0xef,0xee,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xee,0xee,0xfe,0x1f,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xee,0xee,0xfe,0x1f,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xef,0xef,0xff,0x1f,0xee,0xef,0xfe,0x1f,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xee,0xee,0xfe,0x1e,0xfe,0x0e,0x1e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xe0,0xff,0xff,0xe7,0xe7,0xf7,0xf8,0xf7,0xfb,0xfb,0xfc,0xff,0xff,0xfd,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0x7f,0x1f,0x5f,0x3f,0x3f,0x0f,0x0f,0x0f,0x1f,0x03,0x07,0x0f,0x07,0x07,0x03,0x01,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0xc0,0xc0,0xf0,0xf0,0xe0,0xf4,0xf4,0xf8,0xf8,0xfc,0xff,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xf8,0xfe,0xf8,0xfc,0xe8,0xe8,0xf0,0xf0,0xa0,0xc0,0xe0,0xc0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x01,0x01,0x03,0x0f,0x0b,0x07,0x07,0x1f,0x1f,0x1f,0x0f,0x5f,0x1f,0x3f,0x3f,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, diff --git a/radio/src/bitmaps/sticks.lbm b/radio/src/bitmaps/sticks.lbm deleted file mode 100644 index 55cbe58ef..000000000 --- a/radio/src/bitmaps/sticks.lbm +++ /dev/null @@ -1,5 +0,0 @@ -18,8, -0x00,0x10,0x38,0x10,0x10,0x10,0x38,0x10,0x00,0x00,0x10,0x44,0x00,0x92,0x00,0x44,0x10,0x00, -0x00,0x00,0x00,0x00,0x44,0xfe,0x44,0x00,0x00,0x00,0x10,0x44,0x00,0x92,0x00,0x44,0x10,0x00, -0x00,0x10,0x44,0x00,0x92,0x00,0x44,0x10,0x00,0x00,0x00,0x44,0xfe,0x44,0x00,0x00,0x00,0x00, -0x00,0x10,0x44,0x00,0x92,0x00,0x44,0x10,0x00,0x00,0x10,0x38,0x10,0x10,0x10,0x38,0x10,0x00, diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index 942433dc3..8b3de2718 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -195,6 +195,21 @@ void ConvertGeneralSettings_215_to_216(EEGeneral &settings) settings.version = 216; } +#if defined(PCBTARANIS) +int ConvertSwitch_215_to_216(int swtch) +{ + if (swtch < SWSRC_ON) + return swtch; + else + return swtch + (2*6); // 2 * 6-pos pots added as switches +} +#else +inline int ConvertSwitch_215_to_216(int swtch) +{ + return swtch; +} +#endif + void ConvertModel_215_to_216(ModelData &model) { // Virtual inputs added instead of Expo/DR @@ -206,6 +221,7 @@ void ConvertModel_215_to_216(ModelData &model) // Custom Switches: better precision for x when A comes from telemetry // Main View: altitude in top bar // Mixes: GVARS in weight moved from 512 to 4096 and -512 to -4096, because GVARS may be used in limits [-1250:1250] + // Switches: two 6-pos pots added TRACE("Model conversion from v215 to v216"); @@ -226,7 +242,7 @@ void ConvertModel_215_to_216(ModelData &model) } g_model.protocol = oldModel.protocol; g_model.thrTrim = oldModel.thrTrim; - g_model.trimInc = oldModel.trimInc; + g_model.trimInc = oldModel.trimInc - 2; g_model.disableThrottleWarning = oldModel.disableThrottleWarning; g_model.extendedLimits = oldModel.extendedLimits; g_model.extendedTrims = oldModel.extendedTrims; @@ -239,7 +255,7 @@ void ConvertModel_215_to_216(ModelData &model) g_model.mixData[i].phases = oldModel.mixData[i].phases; g_model.mixData[i].mltpx = oldModel.mixData[i].mltpx; g_model.mixData[i].weight = oldModel.mixData[i].weight; - g_model.mixData[i].swtch = oldModel.mixData[i].swtch; + g_model.mixData[i].swtch = ConvertSwitch_215_to_216(oldModel.mixData[i].swtch); if (oldModel.mixData[i].curveMode==0/*differential*/) { g_model.mixData[i].curve.type = CURVE_REF_DIFF; g_model.mixData[i].curve.value = oldModel.mixData[i].curveParam; @@ -299,7 +315,7 @@ void ConvertModel_215_to_216(ModelData &model) } g_model.expoData[i].srcRaw = MIXSRC_Rud+chn; g_model.expoData[i].chn = chn; - g_model.expoData[i].swtch = oldModel.expoData[i].swtch; + g_model.expoData[i].swtch = ConvertSwitch_215_to_216(oldModel.expoData[i].swtch); g_model.expoData[i].phases = oldModel.expoData[i].phases; g_model.expoData[i].weight = oldModel.expoData[i].weight; memcpy(&g_model.expoData[i].name, &oldModel.expoData[i].name, LEN_EXPOMIX_NAME); diff --git a/radio/src/fonts/.gitignore b/radio/src/fonts/.gitignore new file mode 100644 index 000000000..6deff3475 --- /dev/null +++ b/radio/src/fonts/.gitignore @@ -0,0 +1 @@ +/*/*.lbm diff --git a/radio/src/fonts/sqt5/font_04x06.lbm b/radio/src/fonts/sqt5/font_04x06.lbm deleted file mode 100644 index 14e2a2c69..000000000 --- a/radio/src/fonts/sqt5/font_04x06.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x14,0x3e,0x14,0x3e,0x14,0x04,0x2a,0x3e,0x2a,0x10,0x13,0x08,0x04,0x32,0x00,0x14,0x2a,0x14,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x1e,0x21,0x00,0x00,0x00,0x21,0x1e,0x00,0x00,0x00,0x2a,0x1c,0x2a,0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x40,0x30,0x10,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x30,0x30,0x00,0x00,0x10,0x08,0x04,0x02,0x00, -0x00,0x1e,0x21,0x1e,0x00,0x00,0x22,0x3f,0x20,0x00,0x22,0x31,0x29,0x26,0x00,0x21,0x25,0x25,0x1a,0x00,0x0c,0x0a,0x3f,0x08,0x00,0x17,0x25,0x25,0x19,0x00,0x1e,0x25,0x25,0x18,0x00,0x01,0x31,0x0d,0x03,0x00,0x1a,0x25,0x25,0x1a,0x00,0x06,0x29,0x29,0x1e,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x36,0x16,0x00,0x00,0x00,0x08,0x14,0x22,0x00,0x14,0x14,0x14,0x14,0x00,0x00,0x22,0x14,0x08,0x00,0x00,0x02,0x29,0x06,0x00, -0x00,0x02,0x05,0x02,0x00,0x3e,0x09,0x09,0x3e,0x00,0x3f,0x25,0x27,0x3c,0x00,0x1e,0x21,0x21,0x21,0x00,0x3f,0x21,0x21,0x1e,0x00,0x3f,0x25,0x25,0x21,0x00,0x3f,0x05,0x05,0x01,0x00,0x1e,0x21,0x29,0x39,0x00,0x3f,0x04,0x04,0x3f,0x00,0x00,0x21,0x3f,0x21,0x00,0x10,0x20,0x21,0x1f,0x00,0x3f,0x0c,0x12,0x21,0x00,0x3f,0x20,0x20,0x20,0x00,0x3f,0x01,0x07,0x01,0x3f,0x3f,0x01,0x01,0x3e,0x00,0x1e,0x21,0x21,0x1e,0x00, -0x3f,0x09,0x09,0x0f,0x00,0x3f,0x21,0x31,0x3f,0x00,0x3f,0x09,0x0f,0x38,0x00,0x22,0x25,0x25,0x19,0x00,0x00,0x01,0x3f,0x01,0x00,0x1f,0x20,0x20,0x1f,0x00,0x3f,0x20,0x10,0x0f,0x00,0x3f,0x20,0x18,0x20,0x3f,0x37,0x08,0x08,0x37,0x00,0x00,0x07,0x38,0x07,0x00,0x31,0x29,0x25,0x23,0x00,0x00,0x3f,0x21,0x21,0x00,0x02,0x04,0x08,0x10,0x00,0x00,0x21,0x21,0x3f,0x00,0x00,0x02,0x01,0x02,0x00,0x20,0x20,0x20,0x20,0x00, -0x00,0x01,0x02,0x00,0x00,0x3a,0x2a,0x2a,0x3e,0x00,0x3f,0x22,0x22,0x3e,0x00,0x3e,0x22,0x22,0x22,0x00,0x3e,0x22,0x22,0x3f,0x00,0x3e,0x2a,0x2a,0x2e,0x00,0x28,0x3f,0x29,0x01,0x00,0x2e,0x2a,0x2a,0x3e,0x00,0x3f,0x02,0x02,0x3e,0x00,0x00,0x24,0x3d,0x20,0x00,0x00,0x40,0x44,0x3d,0x00,0x3f,0x08,0x14,0x22,0x00,0x00,0x21,0x3f,0x20,0x00,0x3e,0x02,0x3e,0x02,0x3c,0x3e,0x02,0x02,0x3c,0x00,0x1c,0x22,0x22,0x1c,0x00, -0x3e,0x12,0x12,0x1e,0x00,0x1e,0x12,0x12,0x3e,0x00,0x3e,0x02,0x02,0x04,0x00,0x2e,0x2a,0x2a,0x3a,0x00,0x00,0x1f,0x24,0x20,0x00,0x3e,0x20,0x20,0x3e,0x00,0x3e,0x20,0x10,0x0e,0x00,0x3e,0x20,0x10,0x20,0x3e,0x36,0x08,0x08,0x36,0x00,0x2e,0x28,0x28,0x3e,0x00,0x22,0x32,0x2a,0x26,0x00,0x00,0x04,0x1e,0x21,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x21,0x1e,0x04,0x00,0x08,0x2a,0x1c,0x08,0x00,0x00,0x08,0x1c,0x2a,0x08, diff --git a/radio/src/fonts/sqt5/font_04x06.png b/radio/src/fonts/sqt5/font_04x06.png index f60c60c5a..07cdcbddd 100644 Binary files a/radio/src/fonts/sqt5/font_04x06.png and b/radio/src/fonts/sqt5/font_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_05x07.lbm b/radio/src/fonts/sqt5/font_05x07.lbm deleted file mode 100644 index 8cca7ef14..000000000 --- a/radio/src/fonts/sqt5/font_05x07.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6f,0x00,0x00,0x07,0x00,0x07,0x00,0x18,0x30,0x18,0x0c,0x06,0x3e,0x7f,0x7b,0x7f,0x3e,0x23,0x13,0x08,0x64,0x62,0x36,0x49,0x55,0x22,0x50,0x00,0x05,0x03,0x00,0x00,0x00,0x1c,0x22,0x41,0x00,0x00,0x41,0x22,0x1c,0x00,0x14,0x08,0x3e,0x08,0x14,0x08,0x08,0x3e,0x08,0x08,0x00,0x50,0x30,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x60,0x60,0x00,0x00,0x20,0x10,0x08,0x04,0x02, -0x00,0x3e,0x41,0x41,0x3e,0x00,0x00,0x42,0x7f,0x40,0x00,0x62,0x51,0x49,0x46,0x00,0x41,0x49,0x49,0x36,0x00,0x18,0x14,0x12,0x7f,0x00,0x27,0x45,0x45,0x39,0x00,0x3e,0x49,0x49,0x32,0x00,0x01,0x79,0x05,0x03,0x00,0x36,0x49,0x49,0x36,0x00,0x06,0x49,0x29,0x1e,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x56,0x36,0x00,0x00,0x08,0x14,0x22,0x41,0x14,0x14,0x14,0x14,0x14,0x41,0x22,0x14,0x08,0x00,0x03,0x01,0x51,0x09,0x07, -0x06,0x09,0x09,0x06,0x00,0x7e,0x09,0x09,0x09,0x7e,0x7f,0x49,0x49,0x4f,0x78,0x3e,0x41,0x41,0x41,0x41,0x7f,0x41,0x41,0x41,0x3e,0x7f,0x49,0x49,0x49,0x41,0x7f,0x09,0x09,0x09,0x01,0x3e,0x41,0x49,0x49,0x79,0x7f,0x08,0x08,0x08,0x7f,0x00,0x41,0x7f,0x41,0x00,0x00,0x40,0x41,0x3f,0x01,0x7f,0x08,0x14,0x22,0x41,0x7f,0x40,0x40,0x40,0x40,0x7f,0x01,0x0f,0x01,0x7f,0x7f,0x01,0x01,0x01,0x7e,0x3e,0x41,0x41,0x41,0x3e, -0x7f,0x09,0x09,0x09,0x06,0x3e,0x41,0x51,0x21,0x5e,0x7f,0x09,0x09,0x0f,0x78,0x46,0x49,0x49,0x49,0x31,0x01,0x01,0x7f,0x01,0x01,0x3f,0x40,0x40,0x40,0x3f,0x7f,0x40,0x20,0x10,0x0f,0x7f,0x40,0x30,0x40,0x7f,0x63,0x14,0x08,0x14,0x63,0x0f,0x08,0x78,0x08,0x0f,0x61,0x51,0x49,0x45,0x43,0x00,0x7f,0x41,0x41,0x00,0x02,0x04,0x08,0x10,0x20,0x00,0x41,0x41,0x7f,0x00,0x04,0x02,0x01,0x02,0x04,0x40,0x40,0x40,0x40,0x40, -0x00,0x01,0x02,0x04,0x00,0x74,0x54,0x54,0x54,0x7c,0x7f,0x44,0x44,0x44,0x7c,0x7c,0x44,0x44,0x44,0x44,0x7c,0x44,0x44,0x44,0x7f,0x7c,0x54,0x54,0x54,0x5c,0x00,0x44,0x7f,0x45,0x01,0x5c,0x54,0x54,0x54,0x7c,0x7f,0x04,0x04,0x04,0x7c,0x00,0x44,0x7d,0x40,0x00,0x00,0x40,0x44,0x3d,0x00,0x7f,0x10,0x28,0x44,0x00,0x00,0x41,0x7f,0x40,0x00,0x7c,0x04,0x1c,0x04,0x7c,0x7c,0x04,0x04,0x04,0x78,0x38,0x44,0x44,0x44,0x38, -0x7c,0x14,0x14,0x14,0x1c,0x1c,0x14,0x14,0x14,0x7c,0x7c,0x04,0x04,0x04,0x0c,0x5c,0x54,0x54,0x54,0x74,0x00,0x3f,0x44,0x40,0x00,0x7c,0x40,0x40,0x40,0x7c,0x7c,0x40,0x20,0x10,0x0c,0x7c,0x40,0x20,0x40,0x7c,0x44,0x28,0x10,0x28,0x44,0x5c,0x50,0x50,0x50,0x7c,0x44,0x64,0x54,0x4c,0x44,0x10,0x08,0x10,0x08,0x00,0x7f,0x00,0x00,0x00,0x00,0x41,0x22,0x54,0x28,0x00,0x08,0x08,0x22,0x1c,0x08,0x08,0x1c,0x22,0x08,0x08, diff --git a/radio/src/fonts/sqt5/font_05x07.png b/radio/src/fonts/sqt5/font_05x07.png index c1ff4651b..01f19e8ea 100644 Binary files a/radio/src/fonts/sqt5/font_05x07.png and b/radio/src/fonts/sqt5/font_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_05x07_B_compressed.png b/radio/src/fonts/sqt5/font_05x07_B_compressed.png new file mode 100644 index 000000000..8e4ac6632 Binary files /dev/null and b/radio/src/fonts/sqt5/font_05x07_B_compressed.png differ diff --git a/radio/src/fonts/sqt5/font_08x10.lbm b/radio/src/fonts/sqt5/font_08x10.lbm deleted file mode 100644 index 030669b28..000000000 --- a/radio/src/fonts/sqt5/font_08x10.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x05,0xfe,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0xfc,0x03,0xfc,0x03,0x90,0x00,0xfc,0x03,0xfc,0x03,0x90,0x00,0x00,0x00,0x38,0x02,0x7c,0x06,0x64,0x04,0xfe,0x0f,0xc4,0x04,0xcc,0x07,0x88,0x03,0x1c,0x02,0x14,0x03,0x9c,0x01,0xc0,0x00,0x60,0x00,0xb0,0x03,0x98,0x02,0x88,0x03,0x80,0x03,0xdc,0x07,0x7e,0x04,0x72,0x04,0xde,0x06,0x8c,0x03,0x80,0x07,0xc0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xfc,0x03,0x0e,0x07,0x03,0x0c,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x03,0x0c,0x0e,0x07,0xfc,0x03,0xf0,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x50,0x01,0xf0,0x01,0xe0,0x00,0xf0,0x01,0x50,0x01,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xf8,0x03,0xf8,0x03,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x80,0x0f,0x80,0x07,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0e,0x00,0x0e,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x03,0x80,0x01,0xc0,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x08,0x00, -0xfc,0x03,0xfe,0x07,0x02,0x04,0x02,0x04,0xfe,0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x07,0xce,0x07,0x62,0x04,0x22,0x04,0x3e,0x04,0x1c,0x04,0x00,0x00,0x00,0x00,0x02,0x04,0x02,0x04,0x22,0x04,0x22,0x04,0xfe,0x07,0xdc,0x03,0x00,0x00,0x00,0x00,0x1e,0x00,0x3e,0x00,0x20,0x00,0x20,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x00,0x00,0x1e,0x03,0x3e,0x07,0x22,0x04,0x22,0x04,0xe2,0x07,0xc2,0x03,0x00,0x00,0x00,0x00,0xfc,0x03,0xfe,0x07,0x22,0x04,0x22,0x04,0xee,0x07,0xcc,0x03,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0xc2,0x07,0xe2,0x07,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0xdc,0x03,0xfe,0x07,0x22,0x04,0x22,0x04,0xfe,0x07,0xdc,0x03,0x00,0x00,0x00,0x00,0x3c,0x03,0x7e,0x07,0x42,0x04,0x42,0x04,0xfe,0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x03,0x9c,0x03,0x9c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x9c,0x09,0x9c,0x0f,0x88,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x98,0x01,0x0c,0x03,0x06,0x06,0x02,0x04,0x00,0x00,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x00,0x00,0x02,0x04,0x06,0x06,0x0c,0x03,0x98,0x01,0xf0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0e,0x00,0x82,0x06,0xc2,0x06,0x62,0x00,0x3e,0x00,0x1c,0x00, -0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x12,0x00,0x12,0x00,0x1e,0x00,0x0c,0x00,0xfc,0x07,0xfe,0x07,0x86,0x00,0x86,0x00,0x86,0x00,0x86,0x00,0xfe,0x07,0xfc,0x07,0xfe,0x07,0xfe,0x07,0x22,0x04,0x22,0x04,0x22,0x04,0x3e,0x04,0xfc,0x07,0xc0,0x03,0xfc,0x03,0xfe,0x07,0x02,0x04,0x02,0x04,0x02,0x04,0x02,0x04,0x02,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x02,0x04,0x02,0x04,0x02,0x04,0x06,0x06,0xfe,0x07,0xfc,0x03,0xfe,0x07,0xfe,0x07,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0x02,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x22,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x02,0x00,0x02,0x00,0xfc,0x03,0xfe,0x07,0x02,0x04,0x02,0x04,0x42,0x04,0x42,0x04,0xc2,0x07,0xc2,0x03,0xfe,0x07,0xfe,0x07,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x02,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x02,0x04,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x07,0x02,0x04,0x02,0x04,0xfe,0x07,0xfe,0x03,0x02,0x00,0xfe,0x07,0xfe,0x07,0x60,0x00,0xf0,0x00,0x98,0x01,0x0c,0x03,0x06,0x06,0x02,0x04,0xfe,0x07,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0xfc,0x07,0xfe,0x07,0x02,0x00,0x7e,0x00,0x7e,0x00,0x02,0x00,0xfe,0x07,0xfc,0x07,0xfe,0x07,0xfe,0x07,0x02,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0xfc,0x07,0xf8,0x07,0xfc,0x03,0xfe,0x07,0x02,0x04,0x02,0x04,0x02,0x04,0x02,0x04,0xfe,0x07,0xfc,0x03, -0xfe,0x07,0xfe,0x07,0x22,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x3e,0x00,0x1c,0x00,0xfc,0x03,0xfe,0x07,0x02,0x04,0x82,0x04,0x82,0x05,0x02,0x03,0xfe,0x06,0xfc,0x05,0xfe,0x07,0xfe,0x07,0x22,0x00,0x22,0x00,0x22,0x00,0x3e,0x00,0xfc,0x07,0xc0,0x07,0x1c,0x02,0x3e,0x06,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0xe6,0x07,0xc4,0x03,0x02,0x00,0x02,0x00,0x02,0x00,0xfe,0x07,0xfe,0x07,0x02,0x00,0x02,0x00,0x02,0x00,0xfe,0x03,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0xfe,0x07,0xfe,0x03,0xfe,0x07,0xfe,0x07,0x00,0x06,0x00,0x03,0x80,0x01,0xc0,0x00,0x7e,0x00,0x3e,0x00,0xfe,0x07,0xfe,0x07,0x00,0x06,0xe0,0x03,0xe0,0x03,0x00,0x06,0xfe,0x07,0xfe,0x07,0x06,0x06,0x0e,0x07,0x98,0x01,0xf0,0x00,0xf0,0x00,0x98,0x01,0x0e,0x07,0x06,0x06,0x3e,0x00,0x3e,0x00,0x20,0x00,0xe0,0x07,0xe0,0x07,0x20,0x00,0x3e,0x00,0x3e,0x00,0x02,0x07,0x82,0x07,0xc2,0x04,0x62,0x04,0x32,0x04,0x1a,0x04,0x0e,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0xff,0x0f,0xff,0x0f,0x01,0x08,0x01,0x08,0x01,0x08,0x00,0x00,0x0c,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x08,0x01,0x08,0xff,0x0f,0xff,0x0f,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08, -0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x90,0x07,0x90,0x07,0x90,0x04,0x90,0x04,0x90,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00,0xfe,0x07,0xfe,0x07,0x10,0x04,0x10,0x04,0x10,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x00,0x00,0xf0,0x07,0xf0,0x07,0x10,0x04,0x10,0x04,0x10,0x04,0xfe,0x07,0xfe,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x90,0x04,0x90,0x04,0x90,0x04,0xf0,0x04,0xf0,0x04,0x00,0x00,0x40,0x00,0x40,0x04,0xfe,0x07,0xfe,0x07,0x42,0x04,0x06,0x04,0x06,0x00,0x00,0x00,0xf0,0x09,0xf0,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0xf0,0x0f,0xf0,0x0f,0x00,0x00,0xfe,0x07,0xfe,0x07,0x10,0x00,0x10,0x00,0x10,0x00,0xf0,0x07,0xf0,0x07,0x00,0x00,0x10,0x04,0x10,0x04,0xf6,0x07,0xf6,0x07,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x08,0x10,0x08,0xf6,0x0f,0xf6,0x0f,0x00,0x00,0x00,0x00,0xfe,0x07,0xfe,0x07,0xc0,0x00,0xe0,0x01,0x30,0x03,0x18,0x06,0x08,0x04,0x00,0x00,0x00,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0xf0,0x07,0xf0,0x07,0x10,0x00,0xf0,0x07,0x10,0x00,0xf0,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x10,0x00,0x10,0x00,0x10,0x00,0xf0,0x07,0xe0,0x07,0x00,0x00,0xe0,0x03,0xf0,0x07,0x10,0x04,0x10,0x04,0x10,0x04,0xf0,0x07,0xe0,0x03,0x00,0x00, -0xf0,0x0f,0xf0,0x0f,0x10,0x01,0x10,0x01,0x10,0x01,0xf0,0x01,0xf0,0x01,0x00,0x00,0xf0,0x01,0xf0,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0xf0,0x0f,0xf0,0x0f,0x00,0x00,0xf0,0x07,0xf0,0x07,0x10,0x00,0x10,0x00,0x10,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0xf0,0x04,0xf0,0x04,0x90,0x04,0x90,0x04,0x90,0x04,0x90,0x07,0x90,0x07,0x00,0x00,0x10,0x00,0xfc,0x07,0xfc,0x07,0x10,0x04,0x00,0x04,0x00,0x06,0x00,0x06,0x00,0x00,0xf0,0x07,0xf0,0x07,0x00,0x04,0x00,0x04,0x00,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x00,0x06,0x00,0x03,0x80,0x01,0xf0,0x00,0x70,0x00,0x00,0x00,0xf0,0x07,0xf0,0x07,0x00,0x06,0x80,0x03,0x00,0x06,0xf0,0x07,0xf0,0x07,0x00,0x00,0x10,0x04,0x30,0x06,0xe0,0x03,0xc0,0x01,0xe0,0x03,0x30,0x06,0x10,0x04,0x00,0x00,0xf0,0x09,0xf0,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0xf0,0x0f,0xf0,0x0f,0x00,0x00,0x10,0x04,0x10,0x06,0x10,0x07,0x90,0x05,0xd0,0x04,0x70,0x04,0x30,0x04,0x00,0x00,0x00,0x00,0x60,0x00,0xfe,0x07,0x9f,0x0f,0x01,0x08,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x08,0x9f,0x0f,0xfe,0x07,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x64,0x02,0x08,0x01,0xf0,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x08,0x01,0x64,0x02,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00, diff --git a/radio/src/fonts/sqt5/font_08x10.png b/radio/src/fonts/sqt5/font_08x10.png index b6af45c27..377882c2a 100644 Binary files a/radio/src/fonts/sqt5/font_08x10.png and b/radio/src/fonts/sqt5/font_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_10x14.lbm b/radio/src/fonts/sqt5/font_10x14.lbm deleted file mode 100644 index a53a3e8f0..000000000 --- a/radio/src/fonts/sqt5/font_10x14.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x71,0xfe,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0x06,0xfe,0x7f,0xfe,0x7f,0x60,0x06,0x60,0x06,0xfe,0x7f,0xfe,0x7f,0x60,0x06,0x60,0x06,0x60,0x18,0xf0,0x18,0x98,0x19,0x98,0x19,0xfe,0x7f,0xfe,0x7f,0x98,0x19,0x98,0x19,0x18,0x0f,0x18,0x06,0x0c,0x18,0x1e,0x1c,0x1e,0x0e,0x0c,0x07,0x80,0x03,0xc0,0x01,0xe0,0x30,0x70,0x78,0x38,0x78,0x18,0x30,0x78,0x1e,0xfc,0x3f,0x8e,0x71,0xc6,0x63,0xe6,0x67,0x76,0x66,0x3c,0x3c,0x18,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0xf0,0x0f,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0x06,0xc0,0x03,0x80,0x01,0xf8,0x1f,0xf8,0x1f,0x80,0x01,0xc0,0x03,0x60,0x06,0x60,0x06,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xf8,0x1f,0xf8,0x1f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x0e,0x00,0x07,0x80,0x03,0xc0,0x01,0xe0,0x00,0x70,0x00,0x38,0x00,0x18,0x00, -0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x7e,0x0e,0x7f,0x8e,0x7f,0x86,0x63,0x86,0x61,0xfe,0x61,0xfe,0x61,0xfc,0x60,0x00,0x00,0x00,0x00,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0xfe,0x00,0xfe,0x01,0xfe,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0xfe,0x30,0xfe,0x71,0xfe,0x71,0x86,0x61,0x86,0x61,0x86,0x7f,0x86,0x7f,0x06,0x3f,0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x8e,0x7f,0x8e,0x7f,0x0c,0x3f,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x86,0x7f,0xc6,0x7f,0xfe,0x7f,0x7e,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x7c,0x30,0xfe,0x71,0xfe,0x71,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x78,0x1e,0x78,0x1e,0x78,0x1e,0x78,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x66,0x78,0x76,0x78,0x3e,0x30,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0x70,0x0e,0xe0,0x07,0xc0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x0e,0x00,0x06,0x00,0x06,0x66,0x06,0x67,0x86,0x03,0xce,0x01,0xfc,0x00,0x78,0x00, -0x78,0x00,0xfc,0x00,0xce,0x01,0x86,0x01,0x86,0x01,0xce,0x01,0xfc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x7f,0xfe,0x7f,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0xfe,0x61,0xfe,0x7f,0xfc,0x7f,0x00,0x3f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x06,0x00,0x06,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x7f,0x86,0x7f,0x80,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x78,0x00,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x3f,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xc0,0x03,0xe0,0x07,0xf0,0x0f,0x78,0x1e,0x3c,0x3c,0x1e,0x78,0x0e,0x70,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0xfe,0x01,0xfe,0x01,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0xfc,0x7f,0xf8,0x7f,0xf0,0x7f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f, -0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x01,0xfe,0x01,0xfc,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x66,0x06,0x6e,0x06,0x1c,0xfe,0x39,0xfe,0x73,0xfc,0x67,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x01,0xfe,0x7f,0xfc,0x7f,0x00,0x7f,0xfc,0x38,0xfe,0x79,0xfe,0x79,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x9e,0x7f,0x9e,0x7f,0x1c,0x3f,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x3f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x07,0xfe,0x03,0xfe,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x70,0x00,0x3e,0x00,0x3e,0x00,0x70,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x1e,0x78,0x3e,0x7c,0x7e,0x7e,0xe0,0x07,0xc0,0x03,0xc0,0x03,0xe0,0x07,0x7e,0x7e,0x3e,0x7c,0x1e,0x78,0xfe,0x00,0xfe,0x01,0xfe,0x03,0x00,0x7f,0x00,0x7e,0x00,0x7e,0x00,0x7f,0xfe,0x03,0xfe,0x01,0xfe,0x00,0x06,0x78,0x06,0x7c,0x06,0x7e,0x06,0x67,0x86,0x63,0xc6,0x61,0xe6,0x60,0x7e,0x60,0x3e,0x60,0x1e,0x60,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0e,0x00,0x1c,0x00,0x18,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60, -0x00,0x00,0x00,0x00,0x06,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x80,0x01,0x80,0x61,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x06,0x60,0x06,0x00,0x1e,0x00,0x1e,0x00,0xe0,0xcf,0xe0,0xcf,0xe0,0xcf,0x60,0xcc,0x60,0xcc,0x60,0xcc,0x60,0xcc,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe6,0x7f,0xe6,0x7f,0xe0,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0xf0,0x00,0xf0,0x00,0xf0,0x00,0xc0,0x60,0xc0,0x60,0xc0,0xe6,0xff,0xe6,0xff,0xe0,0x7f,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x70,0x60,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x00,0xe0,0x07,0xe0,0x07,0xe0,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x7f,0xe0,0x7f,0xc0,0x7f,0xc0,0x3f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xc0,0x3f, -0xe0,0xff,0xe0,0xff,0xe0,0xff,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xc0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x01,0xe0,0x01,0xe0,0x01,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x00,0x60,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x60,0x00,0x60,0x00,0x78,0x00,0x78,0x00,0x78,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x07,0xe0,0x03,0xe0,0x01,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x70,0x00,0x3c,0x00,0x3c,0x00,0x70,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0xe0,0x70,0xe0,0x79,0xc0,0x3f,0x80,0x1f,0x80,0x1f,0xc0,0x3f,0xe0,0x79,0xe0,0x70,0x60,0x60,0xe0,0xcf,0xe0,0xcf,0xe0,0xcf,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0x60,0x60,0x60,0x70,0x60,0x78,0x60,0x7c,0x60,0x7e,0x60,0x6f,0xe0,0x67,0xe0,0x63,0xe0,0x61,0xe0,0x60,0x00,0x00,0x00,0x00,0x80,0x01,0xc0,0x03,0x78,0x1e,0x7c,0x3e,0x0e,0x70,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x0e,0x70,0x7c,0x3e,0x78,0x1e,0xc0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x18,0x18,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0xc0,0x03,0x80,0x01,0x80,0x01,0xc0,0x03,0xe0,0x07,0xf0,0x0f,0x38,0x1c,0x18,0x18,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01, diff --git a/radio/src/fonts/sqt5/font_10x14_compressed.lbm b/radio/src/fonts/sqt5/font_10x14_compressed.lbm deleted file mode 100644 index 4cb8fa302..000000000 --- a/radio/src/fonts/sqt5/font_10x14_compressed.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x7e,0x0e,0x7f,0x8e,0x7f,0x86,0x63,0x86,0x61,0xfe,0x61,0xfe,0x61,0xfc,0x60,0x00,0x00,0x00,0x00,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0xfe,0x00,0xfe,0x01,0xfe,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0xfe,0x30,0xfe,0x71,0xfe,0x71,0x86,0x61,0x86,0x61,0x86,0x7f,0x86,0x7f,0x06,0x3f,0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x8e,0x7f,0x8e,0x7f,0x0c,0x3f,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x86,0x7f,0xc6,0x7f,0xfe,0x7f,0x7e,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x7c,0x30,0xfe,0x71,0xfe,0x71,0x86,0x61,0x86,0x61,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0x00,0x00,0x00,0x00,0x78,0x1e,0x78,0x1e,0x78,0x1e,0x78,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x7f,0xfe,0x7f,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0xfe,0x61,0xfe,0x7f,0xfc,0x7f,0x00,0x3f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x06,0x00,0x06,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x7f,0x86,0x7f,0x80,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x78,0x00,0x78,0x00,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x3f,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xc0,0x03,0xe0,0x07,0xf0,0x0f,0x78,0x1e,0x3c,0x3c,0x1e,0x78,0x0e,0x70,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0xfe,0x01,0xfe,0x01,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfc,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0xfc,0x7f,0xf8,0x7f,0xf0,0x7f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x01,0xfe,0x01,0xfc,0x00,0xfc,0x3f,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x66,0x06,0x6e,0x06,0x1c,0xfe,0x39,0xfe,0x73,0xfc,0x67,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0xfe,0x01,0xfe,0x7f,0xfc,0x7f,0x00,0x7f,0xfc,0x38,0xfe,0x79,0xfe,0x79,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x9e,0x7f,0x9e,0x7f,0x1c,0x3f,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x3f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x3f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x07,0xfe,0x03,0xfe,0x01,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x70,0x00,0x3e,0x00,0x3e,0x00,0x70,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x1e,0x78,0x3e,0x7c,0x7e,0x7e,0xe0,0x07,0xc0,0x03,0xc0,0x03,0xe0,0x07,0x7e,0x7e,0x3e,0x7c,0x1e,0x78,0xfe,0x00,0xfe,0x01,0xfe,0x03,0x00,0x7f,0x00,0x7e,0x00,0x7e,0x00,0x7f,0xfe,0x03,0xfe,0x01,0xfe,0x00,0x06,0x78,0x06,0x7c,0x06,0x7e,0x06,0x67,0x86,0x63,0xc6,0x61,0xe6,0x60,0x7e,0x60,0x3e,0x60,0x1e,0x60,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x80,0x01,0x80,0x61,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x06,0x60,0x06,0x00,0x1e,0x00,0x1e,0x00,0xe0,0xcf,0xe0,0xcf,0xe0,0xcf,0x60,0xcc,0x60,0xcc,0x60,0xcc,0x60,0xcc,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe6,0x7f,0xe6,0x7f,0xe0,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0xf0,0x00,0xf0,0x00,0xf0,0x00,0xc0,0x60,0xc0,0x60,0xc0,0xe6,0xff,0xe6,0xff,0xe0,0x7f,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x70,0x60,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x00,0xe0,0x07,0xe0,0x07,0xe0,0x00,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x7f,0xe0,0x7f,0xc0,0x7f,0xc0,0x3f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xc0,0x3f,0xe0,0xff,0xe0,0xff,0xe0,0xff,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0xff,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xc0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x01,0xe0,0x01,0xe0,0x01,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x00,0x60,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x60,0x60,0x00,0x60,0x00,0x78,0x00,0x78,0x00,0x78,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x07,0xe0,0x03,0xe0,0x01,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x70,0x00,0x3c,0x00,0x3c,0x00,0x70,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0xe0,0x70,0xe0,0x79,0xc0,0x3f,0x80,0x1f,0x80,0x1f,0xc0,0x3f,0xe0,0x79,0xe0,0x70,0x60,0x60,0xe0,0xcf,0xe0,0xcf,0xe0,0xcf,0x00,0xcc,0x00,0xcc,0x00,0xcc,0x00,0xcc,0xe0,0xff,0xe0,0xff,0xe0,0x7f,0x60,0x60,0x60,0x70,0x60,0x78,0x60,0x7c,0x60,0x7e,0x60,0x6f,0xe0,0x67,0xe0,0x63,0xe0,0x61,0xe0,0x60, diff --git a/radio/src/fonts/sqt5/font_10x14_compressed.png b/radio/src/fonts/sqt5/font_10x14_compressed.png index a8ff6a6f3..89db1e233 100644 Binary files a/radio/src/fonts/sqt5/font_10x14_compressed.png and b/radio/src/fonts/sqt5/font_10x14_compressed.png differ diff --git a/radio/src/fonts/sqt5/font_cz_04x06.lbm b/radio/src/fonts/sqt5/font_cz_04x06.lbm deleted file mode 100644 index 15c586b31..000000000 --- a/radio/src/fonts/sqt5/font_cz_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3a,0x2a,0x2a,0x3e,0x01,0x3e,0x23,0x22,0x23,0x00,0x3e,0x2a,0x2a,0x2e,0x01,0x3e,0x2b,0x2a,0x2f,0x00,0x00,0x24,0x3c,0x22,0x01,0x1c,0x22,0x22,0x1d,0x00,0x3e,0x03,0x02,0x05,0x00,0x2e,0x2b,0x2a,0x3b,0x00,0x3e,0x20,0x20,0x3e,0x01,0x3c,0x23,0x23,0x3c,0x00,0x2e,0x28,0x28,0x3e,0x01,0x3c,0x12,0x12,0x3d,0x00,0x00,0x22,0x3e,0x22,0x01,0x3e,0x13,0x1e,0x31,0x00,0x00,0x0e,0x30,0x0e,0x01,0x22,0x33,0x2a,0x27,0x00,0x3e,0x2a,0x2a,0x22,0x01, diff --git a/radio/src/fonts/sqt5/font_cz_04x06.png b/radio/src/fonts/sqt5/font_cz_04x06.png index 1f1bc6106..6e72a100e 100644 Binary files a/radio/src/fonts/sqt5/font_cz_04x06.png and b/radio/src/fonts/sqt5/font_cz_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_cz_05x07.lbm b/radio/src/fonts/sqt5/font_cz_05x07.lbm deleted file mode 100644 index 0b4cd2838..000000000 --- a/radio/src/fonts/sqt5/font_cz_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x74,0x54,0x56,0x55,0x7c,0x7c,0x45,0x46,0x46,0x45,0x7c,0x54,0x56,0x55,0x5c,0x7c,0x55,0x56,0x56,0x5d,0x00,0x44,0x7e,0x41,0x00,0x38,0x44,0x46,0x45,0x38,0x7c,0x05,0x06,0x06,0x0d,0x5c,0x55,0x56,0x56,0x75,0x7c,0x40,0x42,0x41,0x7c,0x7c,0x40,0x43,0x43,0x7c,0x5c,0x50,0x52,0x51,0x7c,0x78,0x14,0x16,0x15,0x78,0x00,0x44,0x7e,0x45,0x00,0x7c,0x15,0x16,0x1e,0x71,0x1c,0x10,0x72,0x11,0x1c,0x44,0x65,0x56,0x4e,0x45,0x7c,0x54,0x56,0x55,0x44,0x3c,0x3c,0x24,0x42,0xff,0x24,0x18,0x81,0x42,0x3c, diff --git a/radio/src/fonts/sqt5/font_cz_05x07.png b/radio/src/fonts/sqt5/font_cz_05x07.png index c9c7443e8..f7018789e 100644 Binary files a/radio/src/fonts/sqt5/font_cz_05x07.png and b/radio/src/fonts/sqt5/font_cz_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_cz_08x10.lbm b/radio/src/fonts/sqt5/font_cz_08x10.lbm deleted file mode 100644 index 4b28f3ded..000000000 --- a/radio/src/fonts/sqt5/font_cz_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x90,0x07,0x90,0x07,0x90,0x04,0x94,0x04,0x93,0x04,0xf1,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf1,0x07,0x13,0x04,0x16,0x04,0x13,0x04,0x11,0x04,0x10,0x04,0x00,0x00,0xf0,0x07,0xf0,0x07,0x90,0x04,0x94,0x04,0x93,0x04,0xf1,0x04,0xf0,0x04,0x00,0x00,0xf0,0x07,0xf1,0x07,0x93,0x04,0x96,0x04,0x93,0x04,0xf1,0x04,0xf0,0x04,0x00,0x00,0x10,0x04,0x10,0x04,0xf4,0x07,0xf3,0x07,0x01,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0xe0,0x03,0xf0,0x07,0x10,0x04,0x14,0x04,0x13,0x04,0xf1,0x07,0xe0,0x03,0x00,0x00,0xf1,0x07,0xf3,0x07,0x16,0x00,0x13,0x00,0x11,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0xf0,0x04,0xf1,0x04,0x93,0x04,0x96,0x04,0x93,0x04,0x91,0x07,0x90,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x00,0x04,0x04,0x04,0x03,0x04,0xf1,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x02,0x04,0x05,0x04,0x05,0x04,0xf2,0x07,0xf0,0x07,0x00,0x00,0xf0,0x09,0xf0,0x09,0x00,0x09,0x04,0x09,0x03,0x09,0xf1,0x0f,0xf0,0x0f,0x00,0x00,0xf0,0x07,0xf8,0x07,0x98,0x00,0x9c,0x00,0x9b,0x00,0x99,0x00,0xf8,0x07,0xf0,0x07,0x00,0x00,0x08,0x04,0x08,0x04,0xfc,0x07,0xfb,0x07,0x09,0x04,0x08,0x04,0x00,0x00,0xf8,0x07,0xf9,0x07,0x8b,0x00,0x8e,0x00,0x8b,0x00,0xf9,0x00,0xf0,0x07,0x00,0x07,0xf8,0x00,0xf8,0x00,0x80,0x00,0x84,0x07,0x83,0x07,0x81,0x00,0xf8,0x00,0xf8,0x00,0x08,0x06,0x09,0x07,0x8b,0x05,0xce,0x04,0x6b,0x04,0x39,0x04,0x18,0x04,0x00,0x00,0xf8,0x07,0xf8,0x07,0x48,0x04,0x4c,0x04,0x4b,0x04,0x49,0x04,0x08,0x04,0x08,0x04, diff --git a/radio/src/fonts/sqt5/font_cz_08x10.png b/radio/src/fonts/sqt5/font_cz_08x10.png index 056e38735..25570dedb 100644 Binary files a/radio/src/fonts/sqt5/font_cz_08x10.png and b/radio/src/fonts/sqt5/font_cz_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_cz_10x14.lbm b/radio/src/fonts/sqt5/font_cz_10x14.lbm deleted file mode 100644 index 89321208d..000000000 --- a/radio/src/fonts/sqt5/font_cz_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x66,0x68,0x66,0x6c,0x66,0x67,0x66,0xe3,0x7f,0xe1,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x67,0x60,0x6f,0x60,0x6c,0x60,0x66,0x60,0x63,0x60,0x61,0x60,0x60,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x66,0x68,0x66,0x6c,0x66,0x67,0x66,0xe3,0x67,0xe1,0x67,0xe0,0x67,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x67,0x66,0x6f,0x66,0x6c,0x66,0x66,0x66,0xe3,0x67,0xe1,0x67,0xe0,0x67,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe8,0x7f,0xec,0x7f,0xe7,0x7f,0x03,0x60,0x01,0x60,0x00,0x00,0xc0,0x3f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x68,0x60,0x6c,0x60,0x67,0x60,0xe3,0x7f,0xe1,0x7f,0xc0,0x3f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xc7,0x00,0x6f,0x00,0x6c,0x00,0x66,0x00,0xe3,0x01,0xe1,0x01,0xe0,0x01,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x67,0x66,0x6f,0x66,0x6c,0x66,0x66,0x66,0x63,0x7e,0x61,0x7e,0x60,0x7e,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x60,0x08,0x60,0x0c,0x60,0x07,0x60,0xe3,0x7f,0xe1,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x06,0x60,0x09,0x60,0x09,0x60,0x0f,0x60,0xe6,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0xcf,0xe0,0xcf,0xe0,0xcf,0x00,0xcc,0x08,0xcc,0x0c,0xcc,0x07,0xcc,0xe3,0xff,0xe1,0xff,0xe0,0x7f,0xf0,0x7f,0xf8,0x7f,0xf8,0x7f,0x18,0x06,0x18,0x06,0x18,0x06,0x1c,0x06,0xff,0x7f,0xfb,0x7f,0xf1,0x7f,0x00,0x00,0x18,0x60,0x18,0x60,0xf8,0x7f,0xfc,0x7f,0xff,0x7f,0x1b,0x60,0x19,0x60,0x00,0x00,0x00,0x00,0xf8,0x7f,0xf8,0x7f,0xf8,0x7f,0x1f,0x06,0x1f,0x06,0x1c,0x06,0xfe,0x07,0xfb,0x7f,0xf1,0x7f,0x00,0x7c,0xf8,0x01,0xf8,0x03,0xf8,0x07,0x00,0x7e,0x00,0x7c,0x04,0x7c,0x07,0x7e,0xfb,0x07,0xf9,0x03,0xf8,0x01,0x18,0x70,0x18,0x78,0x18,0x7c,0x17,0x6e,0x0f,0x67,0x8c,0x63,0xd6,0x61,0xfb,0x60,0x79,0x60,0x38,0x60,0xf8,0x7f,0xf8,0x7f,0xf8,0x7f,0x18,0x63,0x1c,0x63,0x1f,0x63,0x1b,0x63,0x19,0x63,0x18,0x60,0x18,0x60, diff --git a/radio/src/fonts/sqt5/font_cz_10x14.png b/radio/src/fonts/sqt5/font_cz_10x14.png index e71755dbc..505a8b194 100644 Binary files a/radio/src/fonts/sqt5/font_cz_10x14.png and b/radio/src/fonts/sqt5/font_cz_10x14.png differ diff --git a/radio/src/fonts/sqt5/font_de_04x06.lbm b/radio/src/fonts/sqt5/font_de_04x06.lbm deleted file mode 100644 index 962a76588..000000000 --- a/radio/src/fonts/sqt5/font_de_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3d,0x0a,0x0a,0x3d,0x00,0x3a,0x2b,0x2a,0x3f,0x00,0x1d,0x22,0x22,0x1d,0x00,0x18,0x25,0x24,0x19,0x00,0x3d,0x20,0x20,0x3d,0x00,0x3d,0x20,0x20,0x3d,0x00,0x7e,0x05,0x25,0x1a,0x00, diff --git a/radio/src/fonts/sqt5/font_de_04x06.png b/radio/src/fonts/sqt5/font_de_04x06.png index 644bed0b6..920d81533 100644 Binary files a/radio/src/fonts/sqt5/font_de_04x06.png and b/radio/src/fonts/sqt5/font_de_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_de_05x07.lbm b/radio/src/fonts/sqt5/font_de_05x07.lbm deleted file mode 100644 index 363e4f48e..000000000 --- a/radio/src/fonts/sqt5/font_de_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x7c,0x13,0x12,0x13,0x7c,0x74,0x55,0x54,0x55,0x7c,0x3c,0x43,0x42,0x43,0x3c,0x38,0x45,0x44,0x45,0x38,0x3e,0x41,0x40,0x41,0x3e,0x7c,0x41,0x40,0x41,0x7c,0x7e,0x01,0x49,0x56,0x20, diff --git a/radio/src/fonts/sqt5/font_de_08x10.lbm b/radio/src/fonts/sqt5/font_de_08x10.lbm deleted file mode 100644 index 8f8f45e39..000000000 --- a/radio/src/fonts/sqt5/font_de_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x07,0xfb,0x07,0x9b,0x00,0x98,0x00,0x98,0x00,0x9b,0x00,0xfb,0x07,0xf0,0x07,0x90,0x07,0x96,0x07,0x96,0x04,0x90,0x04,0x96,0x04,0xf6,0x07,0xf0,0x07,0x00,0x00,0xf0,0x03,0xfb,0x07,0x0b,0x04,0x08,0x04,0x08,0x04,0x0b,0x04,0xfb,0x07,0xf0,0x03,0xe0,0x03,0xf6,0x07,0x16,0x04,0x10,0x04,0x16,0x04,0xf6,0x07,0xe0,0x03,0x00,0x00,0xf8,0x03,0xfb,0x07,0x03,0x04,0x00,0x04,0x03,0x04,0x03,0x04,0xf8,0x07,0xf8,0x03,0xf0,0x07,0xf6,0x07,0x06,0x04,0x00,0x04,0x06,0x04,0xf6,0x07,0xf0,0x07,0x00,0x00,0xfc,0x07,0xfe,0x07,0x86,0x00,0x86,0x00,0x86,0x00,0x86,0x00,0xfe,0x07,0xfc,0x07, diff --git a/radio/src/fonts/sqt5/font_de_08x10.png b/radio/src/fonts/sqt5/font_de_08x10.png index 4a781904c..292093e24 100644 Binary files a/radio/src/fonts/sqt5/font_de_08x10.png and b/radio/src/fonts/sqt5/font_de_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_de_10x14.lbm b/radio/src/fonts/sqt5/font_de_10x14.lbm deleted file mode 100644 index cba41d1c0..000000000 --- a/radio/src/fonts/sqt5/font_de_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x7f,0xfa,0x7f,0xfa,0x7f,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0xfa,0x7f,0xfa,0x7f,0xf0,0x7f,0x60,0x7e,0x66,0x7e,0x66,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe6,0x7f,0xe6,0x7f,0xe0,0x7f,0xf0,0x3f,0xfa,0x7f,0xfa,0x7f,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0xfa,0x7f,0xfa,0x7f,0xf0,0x3f,0xc0,0x3f,0xe6,0x7f,0xe6,0x7f,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe6,0x7f,0xe6,0x7f,0xc0,0x3f,0xf8,0x3f,0xfa,0x7f,0xfa,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfa,0x7f,0xfa,0x7f,0xf8,0x3f,0xe0,0x7f,0xe6,0x7f,0xe6,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xe6,0x7f,0xe6,0x7f,0xe0,0x7f,0xf8,0x7f,0xfc,0x7f,0x0e,0x00,0x06,0x00,0x66,0x30,0x6e,0x30,0xfc,0x38,0xd8,0x1f,0x00,0x0f,0x00,0x00, diff --git a/radio/src/fonts/sqt5/font_de_10x14.png b/radio/src/fonts/sqt5/font_de_10x14.png index 607e97b4b..3085d22d3 100644 Binary files a/radio/src/fonts/sqt5/font_de_10x14.png and b/radio/src/fonts/sqt5/font_de_10x14.png differ diff --git a/radio/src/fonts/sqt5/font_es_04x06.lbm b/radio/src/fonts/sqt5/font_es_04x06.lbm deleted file mode 100644 index 7e5b76783..000000000 --- a/radio/src/fonts/sqt5/font_es_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3c,0x05,0x06,0x39,0x00,0x3a,0x09,0x0a,0x31,0x00, diff --git a/radio/src/fonts/sqt5/font_es_04x06.png b/radio/src/fonts/sqt5/font_es_04x06.png index 849fc790c..23425282a 100644 Binary files a/radio/src/fonts/sqt5/font_es_04x06.png and b/radio/src/fonts/sqt5/font_es_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_es_05x07.lbm b/radio/src/fonts/sqt5/font_es_05x07.lbm deleted file mode 100644 index ade3235f7..000000000 --- a/radio/src/fonts/sqt5/font_es_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x7c,0x06,0x05,0x06,0x79,0x78,0x0a,0x09,0x0a,0x71, diff --git a/radio/src/fonts/sqt5/font_es_08x10.lbm b/radio/src/fonts/sqt5/font_es_08x10.lbm deleted file mode 100644 index 80e23388e..000000000 --- a/radio/src/fonts/sqt5/font_es_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf8,0x07,0xfa,0x07,0x0b,0x00,0x09,0x00,0x0b,0x00,0x1a,0x00,0xf3,0x07,0xe1,0x07,0xf0,0x07,0xf4,0x07,0x16,0x00,0x12,0x00,0x16,0x00,0x34,0x00,0xe6,0x07,0xc2,0x07, diff --git a/radio/src/fonts/sqt5/font_es_10x14.lbm b/radio/src/fonts/sqt5/font_es_10x14.lbm deleted file mode 100644 index 19065f688..000000000 --- a/radio/src/fonts/sqt5/font_es_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf4,0x7f,0xf6,0x7f,0xf3,0x7f,0x31,0x00,0x32,0x00,0x34,0x00,0x76,0x00,0xe3,0x7f,0xc1,0x7f,0x80,0x7f,0xe0,0x7f,0xe8,0x7f,0xec,0x7f,0x66,0x00,0x62,0x00,0x64,0x00,0x68,0x00,0xec,0x7f,0xe6,0x7f,0xc2,0x7f, diff --git a/radio/src/fonts/sqt5/font_fr_04x06.lbm b/radio/src/fonts/sqt5/font_fr_04x06.lbm deleted file mode 100644 index 0009fbcec..000000000 --- a/radio/src/fonts/sqt5/font_fr_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3e,0x2a,0x2b,0x2e,0x00,0x3e,0x2b,0x2a,0x2e,0x00,0x3a,0x2b,0x2a,0x3e,0x00,0x00,0x26,0x3d,0x22,0x00,0x1e,0x52,0x32,0x12,0x00, diff --git a/radio/src/fonts/sqt5/font_fr_04x06.png b/radio/src/fonts/sqt5/font_fr_04x06.png index 3b5db5110..0b15e63a3 100644 Binary files a/radio/src/fonts/sqt5/font_fr_04x06.png and b/radio/src/fonts/sqt5/font_fr_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_fr_05x07.lbm b/radio/src/fonts/sqt5/font_fr_05x07.lbm deleted file mode 100644 index 689859b1c..000000000 --- a/radio/src/fonts/sqt5/font_fr_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x7c,0x54,0x56,0x55,0x5c,0x7c,0x55,0x56,0x54,0x5c,0x74,0x55,0x56,0x54,0x7c,0x00,0x4a,0x79,0x42,0x00,0x3c,0xa4,0x64,0x24,0x24, diff --git a/radio/src/fonts/sqt5/font_fr_05x07.png b/radio/src/fonts/sqt5/font_fr_05x07.png index eb6451648..0ad3bcf67 100644 Binary files a/radio/src/fonts/sqt5/font_fr_05x07.png and b/radio/src/fonts/sqt5/font_fr_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_fr_08x10.lbm b/radio/src/fonts/sqt5/font_fr_08x10.lbm deleted file mode 100644 index 62285c702..000000000 --- a/radio/src/fonts/sqt5/font_fr_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x07,0xf0,0x07,0x94,0x04,0x96,0x04,0x93,0x04,0xf1,0x04,0xf0,0x04,0x00,0x00,0xf0,0x07,0xf0,0x07,0x91,0x04,0x93,0x04,0x96,0x04,0xf4,0x04,0xf0,0x04,0x00,0x00,0x90,0x07,0x90,0x07,0x91,0x04,0x93,0x04,0x96,0x04,0xf4,0x07,0xf0,0x07,0x00,0x00,0x14,0x04,0x16,0x04,0xf3,0x07,0xf6,0x07,0x04,0x04,0x00,0x04,0x00,0x00,0xf0,0x03,0xf0,0x03,0x10,0x0a,0x10,0x0e,0x10,0x06,0x10,0x02,0x10,0x02,0x00,0x00,0x00,0x00, diff --git a/radio/src/fonts/sqt5/font_fr_08x10.png b/radio/src/fonts/sqt5/font_fr_08x10.png index 59ed95c85..56fc32b08 100644 Binary files a/radio/src/fonts/sqt5/font_fr_08x10.png and b/radio/src/fonts/sqt5/font_fr_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_fr_10x14.lbm b/radio/src/fonts/sqt5/font_fr_10x14.lbm deleted file mode 100644 index 94843b6e9..000000000 --- a/radio/src/fonts/sqt5/font_fr_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x68,0x66,0x6c,0x66,0x66,0x66,0x62,0x66,0xe0,0x67,0xe0,0x67,0xe0,0x67,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x00,0x00,0x00,0x6c,0x60,0x6c,0x60,0xe3,0x7f,0xe3,0x7f,0xec,0x7f,0x0c,0x60,0x00,0x60,0x00,0x00,0xf0,0x3f,0xf0,0x3f,0xf0,0xbf,0x30,0xf0,0x30,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, diff --git a/radio/src/fonts/sqt5/font_fr_10x14.png b/radio/src/fonts/sqt5/font_fr_10x14.png index 16fd4788b..cdea50b52 100644 Binary files a/radio/src/fonts/sqt5/font_fr_10x14.png and b/radio/src/fonts/sqt5/font_fr_10x14.png differ diff --git a/radio/src/fonts/sqt5/font_it_04x06.lbm b/radio/src/fonts/sqt5/font_it_04x06.lbm deleted file mode 100644 index 5557a1b10..000000000 --- a/radio/src/fonts/sqt5/font_it_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3a,0x2b,0x2a,0x3e,0x00,0x3c,0x21,0x22,0x3c,0x00, diff --git a/radio/src/fonts/sqt5/font_it_04x06.png b/radio/src/fonts/sqt5/font_it_04x06.png index f1fd48265..34f75a77b 100644 Binary files a/radio/src/fonts/sqt5/font_it_04x06.png and b/radio/src/fonts/sqt5/font_it_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_it_05x07.lbm b/radio/src/fonts/sqt5/font_it_05x07.lbm deleted file mode 100644 index 7e4ed004e..000000000 --- a/radio/src/fonts/sqt5/font_it_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x74,0x55,0x56,0x54,0x7c,0x7c,0x41,0x42,0x40,0x7c, diff --git a/radio/src/fonts/sqt5/font_it_08x10.lbm b/radio/src/fonts/sqt5/font_it_08x10.lbm deleted file mode 100644 index e219884ac..000000000 --- a/radio/src/fonts/sqt5/font_it_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x90,0x07,0x90,0x07,0x92,0x04,0x96,0x04,0x94,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x02,0x04,0x06,0x04,0x04,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00, diff --git a/radio/src/fonts/sqt5/font_it_08x10.png b/radio/src/fonts/sqt5/font_it_08x10.png index 0f402499f..3329886b7 100644 Binary files a/radio/src/fonts/sqt5/font_it_08x10.png and b/radio/src/fonts/sqt5/font_it_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_it_10x14.lbm b/radio/src/fonts/sqt5/font_it_10x14.lbm deleted file mode 100644 index 6f8fbcc11..000000000 --- a/radio/src/fonts/sqt5/font_it_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x60,0x7e,0x60,0x7e,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x02,0x60,0x06,0x60,0x0c,0x60,0x08,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f, diff --git a/radio/src/fonts/sqt5/font_pl_04x06.png b/radio/src/fonts/sqt5/font_pl_04x06.png new file mode 100644 index 000000000..9eb7251fe Binary files /dev/null and b/radio/src/fonts/sqt5/font_pl_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_pl_05x07.png b/radio/src/fonts/sqt5/font_pl_05x07.png new file mode 100644 index 000000000..6c088c03f Binary files /dev/null and b/radio/src/fonts/sqt5/font_pl_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_pl_08x10.png b/radio/src/fonts/sqt5/font_pl_08x10.png new file mode 100644 index 000000000..760d2f850 Binary files /dev/null and b/radio/src/fonts/sqt5/font_pl_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_pl_10x14.png b/radio/src/fonts/sqt5/font_pl_10x14.png new file mode 100644 index 000000000..33888bfd1 Binary files /dev/null and b/radio/src/fonts/sqt5/font_pl_10x14.png differ diff --git a/radio/src/fonts/sqt5/font_pt_04x06.png b/radio/src/fonts/sqt5/font_pt_04x06.png new file mode 100644 index 000000000..b3bc84800 Binary files /dev/null and b/radio/src/fonts/sqt5/font_pt_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_pt_05x07.lbm b/radio/src/fonts/sqt5/font_pt_05x07.lbm deleted file mode 100644 index 19aac799d..000000000 --- a/radio/src/fonts/sqt5/font_pt_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x78,0x14,0x16,0x15,0x78,0x74,0x54,0x56,0x55,0x7c,0x78,0x16,0x15,0x16,0x78,0x74,0x56,0x55,0x56,0x7c,0x7a,0x15,0x16,0x15,0x78,0x74,0x56,0x55,0x56,0x7d,0x78,0x15,0x16,0x14,0x78,0x74,0x55,0x56,0x54,0x7c,0x1c,0xa2,0x62,0x22,0x22,0x3c,0xa4,0x64,0x24,0x24,0x7c,0x54,0x56,0x55,0x44,0x7c,0x54,0x56,0x55,0x5c,0x7c,0x56,0x55,0x56,0x44,0x7c,0x56,0x55,0x56,0x5c,0x00,0x44,0x7e,0x45,0x00,0x00,0x48,0x7a,0x41,0x00,0x3c,0x42,0x42,0x43,0x3c,0x38,0x44,0x46,0x45,0x38,0x3c,0x42,0x43,0x42,0x3c,0x38,0x44,0x46,0x44,0x38,0x3c,0x43,0x42,0x43,0x3c,0x38,0x46,0x44,0x46,0x38,0x3c,0x40,0x42,0x41,0x3c,0x78,0x40,0x44,0x42,0x78, diff --git a/radio/src/fonts/sqt5/font_pt_05x07.png b/radio/src/fonts/sqt5/font_pt_05x07.png index d973c436b..cd92fc7ab 100644 Binary files a/radio/src/fonts/sqt5/font_pt_05x07.png and b/radio/src/fonts/sqt5/font_pt_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_pt_08x10.lbm b/radio/src/fonts/sqt5/font_pt_08x10.lbm deleted file mode 100644 index 7971cf6a9..000000000 --- a/radio/src/fonts/sqt5/font_pt_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x07,0xf8,0x07,0x88,0x00,0x8c,0x00,0x8b,0x00,0x89,0x00,0xf8,0x07,0xf0,0x07,0x90,0x07,0x90,0x07,0x90,0x04,0x90,0x04,0x98,0x04,0xf6,0x07,0xf2,0x07,0x00,0x00,0xf0,0x07,0xfa,0x07,0x8b,0x00,0x89,0x00,0x89,0x00,0x8b,0x00,0xfa,0x07,0xf0,0x07,0x90,0x07,0x94,0x07,0x96,0x04,0x93,0x04,0x96,0x04,0xf4,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xfa,0x07,0x89,0x00,0x89,0x00,0x8b,0x00,0x8a,0x00,0xfa,0x07,0xf1,0x07,0x90,0x07,0x90,0x07,0x94,0x04,0x92,0x04,0x96,0x04,0xf4,0x07,0xf2,0x07,0x00,0x00,0xf0,0x07,0xf8,0x07,0x89,0x00,0x8b,0x00,0x8c,0x00,0x88,0x00,0xf8,0x07,0xf0,0x07,0x90,0x07,0x90,0x07,0x92,0x04,0x96,0x04,0x98,0x04,0xf0,0x07,0xf0,0x07,0x00,0x00,0xf8,0x01,0xfc,0x03,0x04,0x0a,0x04,0x0e,0x04,0x06,0x04,0x02,0x04,0x02,0x04,0x02,0xf8,0x03,0xf8,0x03,0x08,0x0a,0x08,0x0e,0x08,0x06,0x08,0x02,0x08,0x02,0x00,0x00,0xf8,0x07,0xf8,0x07,0x48,0x04,0x4c,0x04,0x4b,0x04,0x49,0x04,0x08,0x04,0x00,0x00,0xf0,0x07,0xf0,0x07,0x90,0x04,0x9c,0x04,0x96,0x04,0xf2,0x04,0xf0,0x04,0x00,0x00,0xf8,0x07,0xfa,0x07,0x4b,0x04,0x49,0x04,0x49,0x04,0x4b,0x04,0x0a,0x04,0x00,0x00,0xf0,0x07,0xf4,0x07,0x96,0x04,0x93,0x04,0x96,0x04,0xf4,0x04,0xf0,0x04,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0xfc,0x07,0xfb,0x07,0x09,0x04,0x08,0x04,0x00,0x00,0x00,0x00,0x10,0x04,0x10,0x04,0xf4,0x07,0xf3,0x07,0x01,0x04,0x00,0x04,0x00,0x00,0xf0,0x03,0xf8,0x07,0x08,0x04,0x08,0x04,0x0c,0x04,0x0b,0x04,0xf9,0x07,0xf0,0x03,0xe0,0x03,0xf0,0x07,0x10,0x04,0x18,0x04,0x16,0x04,0xf2,0x07,0xe0,0x03,0x00,0x00,0xf0,0x03,0xfa,0x07,0x0b,0x04,0x09,0x04,0x09,0x04,0x0b,0x04,0xfa,0x07,0xf0,0x03,0xe0,0x03,0xf4,0x07,0x16,0x04,0x13,0x04,0x16,0x04,0xf4,0x07,0xe0,0x03,0x00,0x00,0xf2,0x03,0xf9,0x07,0x09,0x04,0x0b,0x04,0x0a,0x04,0x0a,0x04,0xf9,0x07,0xf0,0x03,0xe0,0x03,0xf4,0x07,0x12,0x04,0x16,0x04,0x14,0x04,0xf2,0x07,0xe0,0x03,0x00,0x00,0xf8,0x03,0xf8,0x07,0x00,0x04,0x04,0x04,0x03,0x04,0x01,0x04,0xf8,0x07,0xf8,0x03,0xf0,0x07,0xf0,0x07,0x00,0x04,0x04,0x04,0x03,0x04,0xf1,0x07,0xf0,0x07,0x00,0x00, diff --git a/radio/src/fonts/sqt5/font_pt_08x10.png b/radio/src/fonts/sqt5/font_pt_08x10.png index 5b833f108..309890901 100644 Binary files a/radio/src/fonts/sqt5/font_pt_08x10.png and b/radio/src/fonts/sqt5/font_pt_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_pt_10x14.lbm b/radio/src/fonts/sqt5/font_pt_10x14.lbm deleted file mode 100644 index edbb018a6..000000000 --- a/radio/src/fonts/sqt5/font_pt_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x7f,0xf8,0x7f,0xf8,0x7f,0x18,0x06,0x18,0x06,0x18,0x06,0x1c,0x06,0xfe,0x7f,0xfb,0x7f,0xf1,0x7f,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x60,0x66,0x60,0x66,0x68,0x66,0x6c,0x66,0xe6,0x7f,0xe2,0x7f,0xe0,0x7f,0xf0,0x7f,0xf8,0x7f,0xf8,0x7f,0x1a,0x06,0x19,0x06,0x19,0x06,0x1a,0x06,0xf8,0x7f,0xf8,0x7f,0xf0,0x7f,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x68,0x66,0x6c,0x66,0x66,0x66,0x6c,0x66,0xe8,0x7f,0xe0,0x7f,0xe0,0x7f,0xf0,0x7f,0xfa,0x7f,0xf9,0x7f,0x19,0x06,0x1b,0x06,0x1a,0x06,0x1a,0x06,0xf9,0x7f,0xf8,0x7f,0xf0,0x7f,0x60,0x7e,0x60,0x7e,0x68,0x7e,0x64,0x66,0x64,0x66,0x6c,0x66,0x68,0x66,0xe8,0x7f,0xe4,0x7f,0xe0,0x7f,0xf1,0x7f,0xfb,0x7f,0xfe,0x7f,0x1c,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0xf8,0x7f,0xf8,0x7f,0xf0,0x7f,0x60,0x7e,0x60,0x7e,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xf8,0x0f,0xfc,0x1f,0xfc,0x5f,0x0c,0x78,0x0c,0x38,0x0c,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x18,0xf8,0x1f,0xf8,0x1f,0xf8,0x5f,0x18,0x78,0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x7f,0xf8,0x7f,0xf8,0x7f,0x18,0x63,0x1c,0x63,0x1e,0x63,0x1b,0x63,0x19,0x63,0x18,0x60,0x18,0x60,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x66,0x68,0x66,0x6c,0x66,0x66,0x66,0xe2,0x67,0xe0,0x67,0xe0,0x67,0xf0,0x7f,0xf4,0x7f,0xf6,0x7f,0x33,0x66,0x31,0x66,0x33,0x66,0x36,0x66,0x34,0x66,0x30,0x60,0x30,0x60,0xe0,0x7f,0xe0,0x7f,0xe8,0x7f,0x6c,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x67,0xe0,0x67,0xe0,0x67,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0xf4,0x7f,0xf6,0x7f,0xf3,0x7f,0x31,0x60,0x30,0x60,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe0,0x7f,0xe8,0x7f,0xec,0x7f,0x06,0x60,0x02,0x60,0x00,0x00,0x00,0x00,0xf0,0x3f,0xf8,0x7f,0xf8,0x7f,0x18,0x60,0x1c,0x60,0x1e,0x60,0x1b,0x60,0xf9,0x7f,0xf8,0x7f,0xf0,0x3f,0xc0,0x3f,0xe0,0x7f,0xe0,0x7f,0x60,0x60,0x68,0x60,0x6c,0x60,0x66,0x60,0xe2,0x7f,0xe0,0x7f,0xc0,0x3f,0xf0,0x3f,0xf8,0x7f,0xf8,0x7f,0x1a,0x60,0x19,0x60,0x19,0x60,0x1a,0x60,0xf8,0x7f,0xf8,0x7f,0xf0,0x3f,0xc0,0x3f,0xe0,0x7f,0xe8,0x7f,0x6c,0x60,0x66,0x60,0x6c,0x60,0x68,0x60,0xe0,0x7f,0xe0,0x7f,0xc0,0x3f,0xf0,0x3f,0xfa,0x7f,0xf9,0x7f,0x19,0x60,0x1b,0x60,0x1a,0x60,0x1a,0x60,0xf9,0x7f,0xf8,0x7f,0xf0,0x3f,0xc0,0x3f,0xe8,0x7f,0xe4,0x7f,0x64,0x60,0x6c,0x60,0x68,0x60,0x68,0x60,0xe4,0x7f,0xe0,0x7f,0xc0,0x3f,0xf8,0x3f,0xf8,0x7f,0xf8,0x7f,0x00,0x60,0x04,0x60,0x06,0x60,0x03,0x60,0xf9,0x7f,0xf8,0x7f,0xf8,0x3f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x00,0x60,0x10,0x60,0x18,0x60,0x0c,0x60,0xe4,0x7f,0xe0,0x7f,0xe0,0x7f, diff --git a/radio/src/fonts/sqt5/font_pt_10x14.png b/radio/src/fonts/sqt5/font_pt_10x14.png index 97f12d998..d9d29f071 100644 Binary files a/radio/src/fonts/sqt5/font_pt_10x14.png and b/radio/src/fonts/sqt5/font_pt_10x14.png differ diff --git a/radio/src/fonts/sqt5/font_se_04x06.lbm b/radio/src/fonts/sqt5/font_se_04x06.lbm deleted file mode 100644 index 147fba42d..000000000 --- a/radio/src/fonts/sqt5/font_se_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3a,0x2b,0x2b,0x3e,0x00,0x3a,0x2b,0x2a,0x3f,0x00,0x18,0x25,0x24,0x19,0x00,0x3c,0x0b,0x0b,0x3c,0x00,0x3d,0x0a,0x0a,0x3d,0x00,0x1d,0x22,0x22,0x1d,0x00, diff --git a/radio/src/fonts/sqt5/font_se_04x06.png b/radio/src/fonts/sqt5/font_se_04x06.png index 00e8fb47d..39346ec75 100644 Binary files a/radio/src/fonts/sqt5/font_se_04x06.png and b/radio/src/fonts/sqt5/font_se_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_se_05x07.lbm b/radio/src/fonts/sqt5/font_se_05x07.lbm deleted file mode 100644 index ef8fc9c71..000000000 --- a/radio/src/fonts/sqt5/font_se_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x74,0x57,0x55,0x57,0x7c,0x74,0x55,0x54,0x55,0x7c,0x38,0x45,0x44,0x45,0x38,0x78,0x17,0x15,0x17,0x78,0x78,0x15,0x14,0x15,0x78,0x38,0x45,0x44,0x45,0x38, diff --git a/radio/src/fonts/sqt5/font_se_08x10.lbm b/radio/src/fonts/sqt5/font_se_08x10.lbm deleted file mode 100644 index bd9f19b29..000000000 --- a/radio/src/fonts/sqt5/font_se_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x90,0x07,0x90,0x07,0x92,0x04,0x95,0x04,0x95,0x04,0xf2,0x07,0xf0,0x07,0x00,0x00,0x90,0x07,0x96,0x07,0x96,0x04,0x90,0x04,0x96,0x04,0xf6,0x07,0xf0,0x07,0x00,0x00,0xe0,0x03,0xf6,0x07,0x16,0x04,0x10,0x04,0x16,0x04,0xf6,0x07,0xe0,0x03,0x00,0x00,0xf0,0x07,0xf8,0x07,0x9a,0x00,0x9d,0x00,0x9d,0x00,0x9a,0x00,0xf8,0x07,0xf0,0x07,0xf0,0x07,0xfb,0x07,0x9b,0x00,0x98,0x00,0x98,0x00,0x9b,0x00,0xfb,0x07,0xf0,0x07,0xf0,0x03,0xfb,0x07,0x0b,0x04,0x08,0x04,0x08,0x04,0x0b,0x04,0xfb,0x07,0xf0,0x03, diff --git a/radio/src/fonts/sqt5/font_se_08x10.png b/radio/src/fonts/sqt5/font_se_08x10.png index c82cb8320..3602d7811 100644 Binary files a/radio/src/fonts/sqt5/font_se_08x10.png and b/radio/src/fonts/sqt5/font_se_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_se_10x14.lbm b/radio/src/fonts/sqt5/font_se_10x14.lbm deleted file mode 100644 index e1fa337cc..000000000 --- a/radio/src/fonts/sqt5/font_se_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x60,0x7e,0x60,0x7e,0x60,0x7e,0x64,0x66,0x6a,0x66,0x6a,0x66,0x64,0x66,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x60,0x7e,0x60,0x7e,0x6c,0x7e,0x6c,0x66,0x60,0x66,0x60,0x66,0x6c,0x66,0xec,0x7f,0xe0,0x7f,0xe0,0x7f,0xc0,0x3f,0xe0,0x7f,0xec,0x7f,0x6c,0x60,0x60,0x60,0x60,0x60,0x6c,0x60,0xec,0x7f,0xe0,0x7f,0xc0,0x3f,0xf0,0x7f,0xf8,0x7f,0xf8,0x7f,0x1a,0x06,0x1d,0x06,0x1d,0x06,0x1a,0x06,0xf8,0x7f,0xf8,0x7f,0xf0,0x7f,0xf0,0x7f,0xfb,0x7f,0xfb,0x7f,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0xfb,0x7f,0xfb,0x7f,0xf0,0x7f,0xf0,0x3f,0xfb,0x7f,0xfb,0x7f,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0xfb,0x7f,0xfb,0x7f,0xf0,0x3f, diff --git a/radio/src/fonts/std/font_03x05.lbm b/radio/src/fonts/std/font_03x05.lbm deleted file mode 100644 index 1e163ee0d..000000000 --- a/radio/src/fonts/std/font_03x05.lbm +++ /dev/null @@ -1 +0,0 @@ -0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x11,0x0e,0x12,0x1f,0x10,0x19,0x15,0x13,0x11,0x15,0x1f,0x07,0x04,0x1f,0x17,0x15,0x1d,0x1f,0x15,0x1d,0x01,0x1d,0x03,0x1f,0x15,0x1f,0x17,0x15,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x1f,0x11, diff --git a/radio/src/fonts/std/font_03x05.png b/radio/src/fonts/std/font_03x05.png index c378d30f0..59357bafd 100644 Binary files a/radio/src/fonts/std/font_03x05.png and b/radio/src/fonts/std/font_03x05.png differ diff --git a/radio/src/fonts/std/font_04x06.lbm b/radio/src/fonts/std/font_04x06.lbm deleted file mode 100644 index d4c2686e5..000000000 --- a/radio/src/fonts/std/font_04x06.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x14,0x3e,0x14,0x3e,0x14,0x04,0x2a,0x3e,0x2a,0x10,0x13,0x08,0x04,0x32,0x00,0x14,0x2a,0x14,0x20,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x1e,0x21,0x00,0x00,0x00,0x21,0x1e,0x00,0x00,0x00,0x2a,0x1c,0x2a,0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x40,0x30,0x10,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x30,0x30,0x00,0x00,0x10,0x08,0x04,0x02,0x00, -0x00,0x1e,0x21,0x1e,0x00,0x00,0x22,0x3f,0x20,0x00,0x22,0x31,0x29,0x26,0x00,0x11,0x25,0x25,0x1b,0x00,0x0c,0x0a,0x3f,0x08,0x00,0x17,0x25,0x25,0x19,0x00,0x1e,0x25,0x25,0x18,0x00,0x01,0x31,0x0d,0x03,0x00,0x1a,0x25,0x25,0x1a,0x00,0x06,0x29,0x29,0x1e,0x00,0x00,0x36,0x36,0x00,0x00,0x40,0x36,0x16,0x00,0x00,0x00,0x08,0x14,0x22,0x00,0x14,0x14,0x14,0x14,0x00,0x00,0x22,0x14,0x08,0x00,0x00,0x02,0x29,0x06,0x00, -0x00,0x02,0x05,0x02,0x00,0x3e,0x09,0x09,0x3e,0x00,0x3f,0x25,0x25,0x1a,0x00,0x1e,0x21,0x21,0x12,0x00,0x3f,0x21,0x21,0x1e,0x00,0x3f,0x25,0x25,0x21,0x00,0x3f,0x05,0x05,0x01,0x00,0x1e,0x21,0x29,0x3a,0x00,0x3f,0x04,0x04,0x3f,0x00,0x00,0x21,0x3f,0x21,0x00,0x10,0x20,0x20,0x1f,0x00,0x3f,0x0c,0x12,0x21,0x00,0x3f,0x20,0x20,0x20,0x00,0x3f,0x02,0x04,0x02,0x3f,0x3f,0x06,0x18,0x3f,0x00,0x1e,0x21,0x21,0x1e,0x00, -0x3f,0x09,0x09,0x06,0x00,0x1e,0x31,0x21,0x5e,0x00,0x3f,0x09,0x19,0x26,0x00,0x12,0x25,0x29,0x12,0x00,0x00,0x01,0x3f,0x01,0x00,0x1f,0x20,0x20,0x1f,0x00,0x0f,0x30,0x30,0x0f,0x00,0x3f,0x18,0x0c,0x18,0x3f,0x33,0x0c,0x0c,0x33,0x00,0x00,0x07,0x38,0x07,0x00,0x31,0x29,0x25,0x23,0x00,0x00,0x3f,0x21,0x21,0x00,0x02,0x04,0x08,0x10,0x00,0x00,0x21,0x21,0x3f,0x00,0x00,0x02,0x01,0x02,0x00,0x20,0x20,0x20,0x20,0x00, -0x00,0x01,0x02,0x00,0x00,0x18,0x24,0x14,0x3c,0x00,0x3f,0x24,0x24,0x18,0x00,0x18,0x24,0x24,0x00,0x00,0x18,0x24,0x24,0x3f,0x00,0x18,0x34,0x2c,0x08,0x00,0x08,0x3e,0x09,0x02,0x00,0x28,0x54,0x54,0x4c,0x00,0x3f,0x04,0x04,0x38,0x00,0x00,0x24,0x3d,0x20,0x00,0x00,0x20,0x40,0x3d,0x00,0x3f,0x08,0x14,0x20,0x00,0x00,0x21,0x3f,0x20,0x00,0x3c,0x08,0x38,0x0c,0x38,0x3c,0x04,0x04,0x38,0x00,0x18,0x24,0x24,0x18,0x00, -0x7c,0x24,0x24,0x18,0x00,0x18,0x24,0x24,0x7c,0x00,0x3c,0x04,0x04,0x08,0x00,0x28,0x2c,0x34,0x14,0x00,0x04,0x1f,0x24,0x20,0x00,0x1c,0x20,0x20,0x3c,0x00,0x00,0x1c,0x20,0x1c,0x00,0x3c,0x30,0x18,0x30,0x3c,0x24,0x18,0x18,0x24,0x00,0x0c,0x50,0x20,0x1c,0x00,0x24,0x34,0x2c,0x24,0x00,0x00,0x04,0x1e,0x21,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x21,0x1e,0x04,0x00,0x08,0x2a,0x1c,0x08,0x00,0x00,0x08,0x1c,0x2a,0x08, diff --git a/radio/src/fonts/std/font_04x06.png b/radio/src/fonts/std/font_04x06.png index 40e4ae995..ebbfa7a10 100644 Binary files a/radio/src/fonts/std/font_04x06.png and b/radio/src/fonts/std/font_04x06.png differ diff --git a/radio/src/fonts/std/font_04x06_extra.lbm b/radio/src/fonts/std/font_04x06_extra.lbm deleted file mode 100644 index cce1e9d68..000000000 --- a/radio/src/fonts/std/font_04x06_extra.lbm +++ /dev/null @@ -1 +0,0 @@ -0x04,0x02,0x3b,0x02,0x04,0x08,0x10,0x37,0x10,0x08,0x20,0x12,0x0a,0x02,0x1e,0x02,0x24,0x28,0x20,0x3c,0x3c,0x20,0x28,0x24,0x02,0x1e,0x02,0x0a,0x12,0x20, diff --git a/radio/src/fonts/std/font_05x07.lbm b/radio/src/fonts/std/font_05x07.lbm deleted file mode 100644 index f6df4bd17..000000000 --- a/radio/src/fonts/std/font_05x07.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6f,0x00,0x00,0x07,0x00,0x07,0x00,0x18,0x30,0x18,0x0c,0x06,0x08,0x7f,0x7f,0x7f,0x08,0x23,0x13,0x08,0x64,0x62,0x36,0x49,0x55,0x22,0x50,0x00,0x05,0x03,0x00,0x00,0x00,0x1c,0x22,0x41,0x00,0x00,0x41,0x22,0x1c,0x00,0x14,0x08,0x3e,0x08,0x14,0x08,0x08,0x3e,0x08,0x08,0x00,0x50,0x30,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x60,0x60,0x00,0x00,0x20,0x10,0x08,0x04,0x02, -0x00,0x3e,0x41,0x41,0x3e,0x00,0x00,0x42,0x7f,0x40,0x00,0x62,0x51,0x49,0x46,0x00,0x41,0x49,0x49,0x36,0x00,0x18,0x14,0x12,0x7f,0x00,0x27,0x45,0x45,0x39,0x00,0x3e,0x49,0x49,0x32,0x00,0x01,0x79,0x05,0x03,0x00,0x36,0x49,0x49,0x36,0x00,0x06,0x49,0x29,0x1e,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x56,0x36,0x00,0x00,0x08,0x14,0x22,0x41,0x14,0x14,0x14,0x14,0x14,0x41,0x22,0x14,0x08,0x00,0x02,0x01,0x51,0x09,0x06, -0x06,0x09,0x09,0x06,0x00,0x7e,0x09,0x09,0x09,0x7e,0x7f,0x49,0x49,0x49,0x36,0x3e,0x41,0x41,0x41,0x22,0x7f,0x41,0x41,0x22,0x1c,0x7f,0x49,0x49,0x49,0x41,0x7f,0x09,0x09,0x09,0x01,0x3e,0x41,0x49,0x49,0x7a,0x7f,0x08,0x08,0x08,0x7f,0x00,0x41,0x7f,0x41,0x00,0x20,0x40,0x41,0x3f,0x01,0x7f,0x08,0x14,0x22,0x41,0x7f,0x40,0x40,0x40,0x40,0x7f,0x02,0x0c,0x02,0x7f,0x7f,0x04,0x08,0x10,0x7f,0x3e,0x41,0x41,0x41,0x3e, -0x7f,0x09,0x09,0x09,0x06,0x3e,0x41,0x51,0x21,0x5e,0x7f,0x09,0x19,0x29,0x46,0x26,0x49,0x49,0x49,0x32,0x01,0x01,0x7f,0x01,0x01,0x3f,0x40,0x40,0x40,0x3f,0x1f,0x20,0x40,0x20,0x1f,0x3f,0x40,0x30,0x40,0x3f,0x63,0x14,0x08,0x14,0x63,0x07,0x08,0x70,0x08,0x07,0x61,0x51,0x49,0x45,0x43,0x00,0x7f,0x41,0x41,0x00,0x02,0x04,0x08,0x10,0x20,0x00,0x41,0x41,0x7f,0x00,0x04,0x02,0x01,0x02,0x04,0x40,0x40,0x40,0x40,0x40, -0x00,0x01,0x02,0x04,0x00,0x20,0x54,0x54,0x54,0x78,0x7f,0x48,0x44,0x44,0x38,0x38,0x44,0x44,0x44,0x20,0x38,0x44,0x44,0x48,0x7f,0x38,0x54,0x54,0x54,0x18,0x08,0x7e,0x09,0x01,0x02,0x0c,0x52,0x52,0x52,0x3e,0x7f,0x08,0x04,0x04,0x78,0x00,0x44,0x7d,0x40,0x00,0x20,0x40,0x44,0x3d,0x00,0x7f,0x10,0x28,0x44,0x00,0x00,0x41,0x7f,0x40,0x00,0x7c,0x04,0x18,0x04,0x78,0x7c,0x08,0x04,0x04,0x78,0x38,0x44,0x44,0x44,0x38, -0x7c,0x14,0x14,0x14,0x08,0x08,0x14,0x14,0x18,0x7c,0x7c,0x08,0x04,0x04,0x08,0x48,0x54,0x54,0x54,0x20,0x04,0x3f,0x44,0x40,0x20,0x3c,0x40,0x40,0x20,0x7c,0x1c,0x20,0x40,0x20,0x1c,0x3c,0x40,0x20,0x40,0x3c,0x44,0x28,0x10,0x28,0x44,0x0c,0x50,0x50,0x50,0x3c,0x44,0x64,0x54,0x4c,0x44,0x10,0x08,0x10,0x08,0x00,0x7f,0x00,0x00,0x00,0x00,0x41,0x22,0x54,0x28,0x00,0x08,0x08,0x22,0x1c,0x08,0x08,0x1c,0x22,0x08,0x08, diff --git a/radio/src/fonts/std/font_05x07.png b/radio/src/fonts/std/font_05x07.png index 33e9e7825..71a4d36eb 100644 Binary files a/radio/src/fonts/std/font_05x07.png and b/radio/src/fonts/std/font_05x07.png differ diff --git a/radio/src/fonts/std/font_05x07_B_compressed.png b/radio/src/fonts/std/font_05x07_B_compressed.png new file mode 100644 index 000000000..985ded8a1 Binary files /dev/null and b/radio/src/fonts/std/font_05x07_B_compressed.png differ diff --git a/radio/src/fonts/std/font_05x07_extra.lbm b/radio/src/fonts/std/font_05x07_extra.lbm deleted file mode 100644 index ea644215a..000000000 --- a/radio/src/fonts/std/font_05x07_extra.lbm +++ /dev/null @@ -1 +0,0 @@ -0x04,0x02,0x7b,0x02,0x04,0x10,0x20,0x6f,0x20,0x10,0x20,0x12,0x0a,0x02,0x1e,0x02,0x24,0x28,0x20,0x3c,0x3c,0x20,0x28,0x24,0x02,0x1e,0x02,0x0a,0x12,0x20, diff --git a/radio/src/fonts/std/font_08x10.lbm b/radio/src/fonts/std/font_08x10.lbm deleted file mode 100644 index 786c5f3d6..000000000 --- a/radio/src/fonts/std/font_08x10.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x05,0xfe,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0xfc,0x03,0xfc,0x03,0x90,0x00,0xfc,0x03,0xfc,0x03,0x90,0x00,0x00,0x00,0x38,0x02,0x7c,0x06,0x64,0x04,0xfe,0x0f,0xc4,0x04,0xcc,0x07,0x88,0x03,0x0c,0x04,0x1e,0x07,0x8c,0x03,0xe0,0x00,0x70,0x00,0x1c,0x03,0x8e,0x07,0x02,0x03,0x80,0x03,0xdc,0x07,0x7e,0x04,0x72,0x04,0xde,0x06,0x8c,0x03,0x80,0x07,0xc0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xfc,0x03,0x0e,0x07,0x03,0x0c,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x03,0x0c,0x0e,0x07,0xfc,0x03,0xf0,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x50,0x01,0xf0,0x01,0xe0,0x00,0xf0,0x01,0x50,0x01,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xf8,0x03,0xf8,0x03,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x80,0x0f,0x80,0x07,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0e,0x00,0x0e,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x07,0x80,0x03,0xe0,0x00,0x70,0x00,0x1c,0x00,0x0e,0x00,0x02,0x00, -0xfc,0x03,0xfe,0x07,0x02,0x04,0x02,0x04,0xfe,0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x08,0x04,0x0c,0x04,0xfe,0x07,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x0c,0x06,0x0e,0x07,0x82,0x05,0xe2,0x04,0x7e,0x04,0x1c,0x04,0x00,0x00,0x00,0x00,0x0c,0x03,0x0e,0x07,0x22,0x04,0x22,0x04,0xfe,0x07,0xdc,0x03,0x00,0x00,0x00,0x00,0xc0,0x01,0xe0,0x01,0x30,0x01,0xfc,0x07,0xfe,0x07,0x00,0x01,0x00,0x00,0x00,0x00,0x3e,0x03,0x3e,0x07,0x12,0x04,0x12,0x04,0xf2,0x07,0xe2,0x03,0x00,0x00,0x00,0x00,0xf8,0x03,0xfc,0x07,0x26,0x04,0x22,0x04,0xee,0x07,0xcc,0x03,0x00,0x00,0x00,0x00,0x0e,0x00,0x0e,0x00,0xe2,0x07,0xfa,0x07,0x1e,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x9c,0x03,0xfe,0x07,0x62,0x04,0x62,0x04,0xfe,0x07,0x9c,0x03,0x00,0x00,0x00,0x00,0x3c,0x03,0x7e,0x07,0x42,0x04,0x42,0x06,0xfe,0x03,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x9c,0x03,0x9c,0x03,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x9c,0x09,0x9c,0x0f,0x88,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x98,0x01,0x0c,0x03,0x06,0x06,0x02,0x04,0x00,0x00,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x00,0x00,0x02,0x04,0x06,0x06,0x0c,0x03,0x98,0x01,0xf0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0e,0x00,0x82,0x06,0xc2,0x06,0x62,0x00,0x3e,0x00,0x1c,0x00, -0x00,0x00,0x00,0x00,0x0c,0x00,0x1e,0x00,0x12,0x00,0x12,0x00,0x1e,0x00,0x0c,0x00,0xf0,0x07,0xf8,0x07,0x8c,0x00,0x86,0x00,0x86,0x00,0x8c,0x00,0xf8,0x07,0xf0,0x07,0xfe,0x07,0xfe,0x07,0x22,0x04,0x22,0x04,0x22,0x04,0x76,0x06,0xdc,0x03,0x88,0x01,0xf8,0x01,0xfc,0x03,0x06,0x06,0x02,0x04,0x02,0x04,0x02,0x04,0x06,0x06,0x0c,0x03,0xfe,0x07,0xfe,0x07,0x02,0x04,0x02,0x04,0x02,0x04,0x06,0x06,0xfc,0x03,0xf8,0x01,0x00,0x00,0xfe,0x07,0xfe,0x07,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x22,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x02,0x00,0x02,0x00,0xf8,0x01,0xfc,0x03,0x06,0x06,0x02,0x04,0x02,0x04,0x42,0x04,0xc6,0x07,0xc4,0x03,0xfe,0x07,0xfe,0x07,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x02,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x02,0x04,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x02,0x04,0x02,0x06,0xfe,0x03,0xfe,0x01,0x00,0x00,0xfe,0x07,0xfe,0x07,0x60,0x00,0xf0,0x00,0x98,0x01,0x0c,0x03,0x06,0x06,0x02,0x04,0x00,0x00,0xfe,0x07,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0xfe,0x07,0xfe,0x07,0x0c,0x00,0x78,0x00,0x78,0x00,0x0c,0x00,0xfe,0x07,0xfe,0x07,0xfe,0x07,0xfe,0x07,0x1c,0x00,0x78,0x00,0xe0,0x00,0x80,0x03,0xfe,0x07,0xfe,0x07,0xf8,0x01,0xfc,0x03,0x06,0x06,0x02,0x04,0x02,0x04,0x06,0x06,0xfc,0x03,0xf8,0x01, -0xfe,0x07,0xfe,0x07,0x22,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x3e,0x00,0x1c,0x00,0xf8,0x01,0xfc,0x03,0x06,0x06,0x82,0x04,0x82,0x05,0x06,0x07,0xfc,0x03,0xf8,0x05,0xfe,0x07,0xfe,0x07,0x62,0x00,0x62,0x00,0xe2,0x00,0xa2,0x01,0x3e,0x07,0x1c,0x06,0x1c,0x02,0x3e,0x06,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0xe6,0x07,0xc4,0x03,0x02,0x00,0x02,0x00,0x02,0x00,0xfe,0x07,0xfe,0x07,0x02,0x00,0x02,0x00,0x02,0x00,0xfe,0x01,0xfe,0x03,0x00,0x06,0x00,0x04,0x00,0x04,0x00,0x06,0xfe,0x03,0xfe,0x01,0x0e,0x00,0x7e,0x00,0xf0,0x01,0x80,0x07,0x80,0x07,0xf0,0x01,0x7e,0x00,0x0e,0x00,0xfe,0x07,0xfe,0x07,0x00,0x03,0xe0,0x01,0xe0,0x01,0x00,0x03,0xfe,0x07,0xfe,0x07,0x06,0x06,0x0e,0x07,0x98,0x01,0xf0,0x00,0xf0,0x00,0x98,0x01,0x0e,0x07,0x06,0x06,0x06,0x00,0x0e,0x00,0x18,0x00,0xf0,0x07,0xf0,0x07,0x18,0x00,0x0e,0x00,0x06,0x00,0x00,0x00,0x02,0x07,0x82,0x07,0xc2,0x04,0x62,0x04,0x32,0x04,0x1e,0x04,0x0e,0x04,0x00,0x00,0x00,0x00,0xff,0x0f,0xff,0x0f,0x01,0x08,0x01,0x08,0x01,0x08,0x00,0x00,0x02,0x00,0x0e,0x00,0x1c,0x00,0x70,0x00,0xe0,0x00,0x80,0x03,0x00,0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x08,0x01,0x08,0xff,0x0f,0xff,0x0f,0x00,0x00,0x00,0x00,0x18,0x00,0x0c,0x00,0x06,0x00,0x06,0x00,0x0c,0x00,0x18,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08, -0x00,0x00,0x01,0x00,0x03,0x00,0x06,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xa0,0x07,0xb0,0x04,0x90,0x04,0x90,0x02,0xf0,0x07,0xe0,0x07,0x00,0x00,0xfe,0x07,0xfe,0x07,0x20,0x02,0x10,0x04,0x30,0x06,0xe0,0x03,0xc0,0x01,0x00,0x00,0xc0,0x01,0xe0,0x03,0x30,0x06,0x10,0x04,0x10,0x04,0x30,0x06,0x20,0x02,0x00,0x00,0xc0,0x01,0xe0,0x03,0x30,0x06,0x10,0x04,0x20,0x02,0xfe,0x07,0xfe,0x07,0x00,0x00,0xc0,0x01,0xe0,0x03,0xb0,0x06,0x90,0x04,0xb0,0x04,0xe0,0x06,0xc0,0x02,0x00,0x00,0x40,0x00,0x40,0x00,0xfc,0x07,0xfe,0x07,0x42,0x00,0x0e,0x00,0x0c,0x00,0x00,0x00,0x60,0x05,0xf0,0x0f,0x90,0x0a,0x90,0x0a,0xf0,0x0a,0x60,0x0e,0x30,0x04,0x00,0x00,0xfe,0x07,0xfe,0x07,0x20,0x00,0x10,0x00,0x30,0x00,0xe0,0x07,0xc0,0x07,0x00,0x00,0x00,0x04,0x10,0x04,0xf6,0x07,0xf6,0x07,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x0f,0x00,0x08,0x10,0x08,0x10,0x08,0xf6,0x0f,0xf6,0x07,0x00,0x00,0x00,0x00,0xfe,0x07,0xfe,0x07,0xc0,0x01,0x60,0x03,0x30,0x06,0x00,0x04,0x00,0x00,0x00,0x04,0x02,0x04,0xfe,0x07,0xfe,0x07,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0xf0,0x07,0xe0,0x07,0x10,0x00,0xe0,0x07,0x10,0x00,0xf0,0x07,0xe0,0x07,0x00,0x00,0xf0,0x07,0xf0,0x07,0x20,0x00,0x10,0x00,0x30,0x00,0xe0,0x07,0xc0,0x07,0x00,0x00,0xc0,0x01,0xe0,0x03,0x30,0x06,0x10,0x04,0x30,0x06,0xe0,0x03,0xc0,0x01,0x00,0x00, -0xf0,0x0f,0xf0,0x0f,0x10,0x01,0x10,0x01,0xb0,0x01,0xe0,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0xe0,0x00,0xb0,0x01,0x10,0x01,0x10,0x01,0xf0,0x0f,0xf0,0x0f,0x00,0x00,0x10,0x00,0xf0,0x07,0xe0,0x07,0x30,0x00,0x10,0x00,0x30,0x00,0x20,0x00,0x00,0x00,0x60,0x02,0xf0,0x06,0x90,0x04,0x90,0x04,0x90,0x04,0xb0,0x07,0x20,0x03,0x00,0x00,0x10,0x00,0x10,0x00,0xfc,0x03,0xfc,0x07,0x10,0x04,0x10,0x06,0x00,0x02,0x00,0x00,0xf0,0x01,0xf0,0x03,0x00,0x06,0x00,0x04,0x00,0x02,0xf0,0x07,0xf0,0x07,0x00,0x00,0x30,0x00,0xf0,0x00,0xc0,0x03,0x00,0x07,0xc0,0x03,0xf0,0x00,0x30,0x00,0x00,0x00,0xf0,0x03,0xf0,0x07,0x00,0x06,0xc0,0x03,0x00,0x06,0xf0,0x07,0xf0,0x03,0x00,0x00,0x10,0x04,0x30,0x06,0x60,0x03,0xc0,0x01,0x60,0x03,0x30,0x06,0x10,0x04,0x00,0x00,0xf0,0x04,0xf0,0x0c,0x00,0x09,0x00,0x09,0x80,0x0c,0xf0,0x07,0xf0,0x03,0x00,0x00,0x10,0x06,0x10,0x07,0x90,0x05,0xd0,0x04,0x70,0x04,0x30,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xfe,0x07,0x9f,0x0f,0x01,0x08,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x07,0xfe,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x08,0x9f,0x0f,0xfe,0x07,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x64,0x02,0x68,0x01,0xf0,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0xf0,0x00,0x68,0x01,0x64,0x02,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00, diff --git a/radio/src/fonts/std/font_08x10.png b/radio/src/fonts/std/font_08x10.png index 7f01e370c..1d7080a48 100644 Binary files a/radio/src/fonts/std/font_08x10.png and b/radio/src/fonts/std/font_08x10.png differ diff --git a/radio/src/fonts/std/font_10x14.lbm b/radio/src/fonts/std/font_10x14.lbm deleted file mode 100644 index cd6e036ed..000000000 --- a/radio/src/fonts/std/font_10x14.lbm +++ /dev/null @@ -1,6 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x71,0xfe,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0x06,0xfe,0x7f,0xfe,0x7f,0x60,0x06,0x60,0x06,0xfe,0x7f,0xfe,0x7f,0x60,0x06,0x60,0x06,0x60,0x18,0xf0,0x18,0x98,0x19,0x98,0x19,0xfe,0x7f,0xfe,0x7f,0x98,0x19,0x98,0x19,0x18,0x0f,0x18,0x06,0x0c,0x18,0x1e,0x1c,0x1e,0x0e,0x0c,0x07,0x80,0x03,0xc0,0x01,0xe0,0x30,0x70,0x78,0x38,0x78,0x18,0x30,0x78,0x1e,0xfc,0x3f,0x8e,0x71,0xc6,0x63,0xe6,0x67,0x76,0x66,0x3c,0x3c,0x18,0x3c,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0xf0,0x0f,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0x00,0x00,0x00,0x00,0x60,0x06,0x60,0x06,0xc0,0x03,0x80,0x01,0xf8,0x1f,0xf8,0x1f,0x80,0x01,0xc0,0x03,0x60,0x06,0x60,0x06,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xf8,0x1f,0xf8,0x1f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x0e,0x00,0x07,0x80,0x03,0xc0,0x01,0xe0,0x00,0x70,0x00,0x38,0x00,0x18,0x00, -0x00,0x00,0x00,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x0e,0x70,0xfc,0x3f,0xf8,0x1f,0x00,0x00,0x00,0x00,0x18,0x60,0x1c,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0x1c,0x7c,0x0e,0x6e,0x06,0x67,0x86,0x63,0xce,0x61,0xfc,0x60,0x78,0x60,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0x00,0x00,0x00,0x00,0x80,0x07,0xc0,0x07,0xe0,0x06,0x70,0x06,0x38,0x06,0x1c,0x06,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x7e,0x18,0x7e,0x38,0x66,0x70,0x66,0x60,0x66,0x60,0xe6,0x70,0xc6,0x3f,0x86,0x1f,0x00,0x00,0x00,0x00,0xf8,0x1f,0xfc,0x3f,0x8e,0x71,0x86,0x61,0x86,0x61,0x8e,0x73,0x1c,0x3f,0x18,0x1e,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x86,0x7f,0xc6,0x7f,0xe6,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x78,0x1e,0xfc,0x3f,0xce,0x73,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0x00,0x00,0x00,0x00,0x78,0x00,0xfc,0x00,0xce,0x61,0x86,0x71,0x86,0x39,0xce,0x1d,0xfc,0x0f,0xf8,0x07,0x00,0x00,0x00,0x00,0x30,0x0c,0x78,0x1e,0x78,0x1e,0x30,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x66,0x78,0x76,0x78,0x3e,0x30,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0x70,0x0e,0xe0,0x07,0xc0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x18,0x00,0x1c,0x00,0x0e,0x00,0x06,0x00,0x06,0x66,0x06,0x67,0x86,0x03,0xce,0x01,0xfc,0x00,0x78,0x00, -0x78,0x00,0xfc,0x00,0xce,0x01,0x86,0x01,0x86,0x01,0xce,0x01,0xfc,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xe0,0x7f,0xf0,0x7f,0xb8,0x01,0x9c,0x01,0x8e,0x01,0x8e,0x01,0x9c,0x01,0xb8,0x01,0xf0,0x7f,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0x1c,0x38,0x18,0x18,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x06,0x00,0x06,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x8e,0x71,0x9c,0x7f,0x98,0x3f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0x60,0x06,0x60,0x06,0x70,0xfe,0x3f,0xfe,0x1f,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfe,0x7f,0xfe,0x7f,0x1c,0x00,0x38,0x00,0xf0,0x01,0xf0,0x01,0x38,0x00,0x1c,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0e,0xfe,0x7f,0xfe,0x7f,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0xfc,0x3f,0xf8,0x1f, -0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xce,0x01,0xfc,0x00,0x78,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x66,0x06,0x6e,0x06,0x3c,0x0e,0x38,0xfc,0x7f,0xf8,0x67,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x07,0x86,0x0f,0x86,0x1d,0xce,0x39,0xfc,0x70,0x78,0x60,0x78,0x18,0xfc,0x38,0xce,0x71,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x8e,0x73,0x1c,0x3f,0x18,0x1e,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x1f,0xfe,0x3f,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x70,0xfe,0x3f,0xfe,0x1f,0xfe,0x07,0xfe,0x0f,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x1c,0xfe,0x0f,0xfe,0x07,0xfe,0x1f,0xfe,0x3f,0x00,0x70,0x00,0x70,0x00,0x3e,0x00,0x3e,0x00,0x70,0x00,0x70,0xfe,0x3f,0xfe,0x1f,0x1e,0x78,0x3e,0x7c,0x70,0x0e,0xe0,0x07,0xc0,0x03,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x3e,0x7c,0x1e,0x78,0x7e,0x00,0xfe,0x00,0xc0,0x01,0x80,0x03,0x00,0x7f,0x00,0x7f,0x80,0x03,0xc0,0x01,0xfe,0x00,0x7e,0x00,0x06,0x78,0x06,0x7c,0x06,0x6e,0x06,0x67,0x86,0x63,0xc6,0x61,0xe6,0x60,0x76,0x60,0x3e,0x60,0x1e,0x60,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0e,0x00,0x1c,0x00,0x18,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60, -0x00,0x00,0x00,0x00,0x06,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x3c,0x60,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0xfe,0x7f,0xfe,0x7f,0x80,0x61,0xc0,0x61,0xe0,0x60,0x60,0x60,0x60,0x60,0xe0,0x70,0xc0,0x3f,0x80,0x1f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x70,0x00,0x38,0x00,0x18,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0xe0,0x60,0xc0,0x61,0x80,0x61,0xfe,0x7f,0xfe,0x7f,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x66,0xc0,0x07,0x80,0x07,0x80,0x01,0x80,0x01,0xf8,0x7f,0xfc,0x7f,0x8e,0x01,0x86,0x01,0x06,0x00,0x0e,0x00,0x1c,0x00,0x18,0x00,0xe0,0x01,0xf0,0x03,0x38,0x67,0x18,0x66,0x18,0x66,0x18,0x66,0x18,0x66,0x18,0x76,0xf8,0x3f,0xf8,0x1f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe6,0x7f,0xe6,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0x60,0x60,0x60,0x60,0x70,0xe6,0x3f,0xe6,0x1f,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x00,0x06,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xe0,0x7f,0xe0,0x7f,0x60,0x00,0xe0,0x00,0xc0,0x07,0xc0,0x07,0xe0,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0xe0,0x7f,0xe0,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x70,0xc0,0x3f,0x80,0x1f, -0xe0,0x7f,0xe0,0x7f,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0x07,0xc0,0x03,0x80,0x01,0x80,0x01,0xc0,0x03,0xe0,0x07,0x60,0x06,0x60,0x06,0x60,0x06,0xc0,0x07,0x80,0x07,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x01,0x80,0x01,0x80,0x61,0xc0,0x63,0xe0,0x67,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x7e,0x00,0x3c,0x00,0x18,0x60,0x00,0x60,0x00,0xfe,0x1f,0xfe,0x3f,0x60,0x70,0x60,0x60,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x18,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x18,0xe0,0x7f,0xe0,0x7f,0xe0,0x07,0xe0,0x0f,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x1c,0xe0,0x0f,0xe0,0x07,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x38,0x00,0x70,0x00,0x70,0xe0,0x3f,0xe0,0x1f,0x60,0x60,0xe0,0x70,0xc0,0x39,0x80,0x1f,0x00,0x0f,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x60,0x60,0xe0,0x01,0xe0,0x03,0x00,0x67,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x76,0xe0,0x3f,0xe0,0x1f,0x60,0x60,0x60,0x70,0x60,0x78,0x60,0x7c,0x60,0x6e,0x60,0x67,0xe0,0x63,0xe0,0x61,0xe0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x80,0x01,0xc0,0x03,0x78,0x1e,0x7c,0x3e,0x0e,0x70,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x0e,0x70,0x7c,0x3e,0x78,0x1e,0xc0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x18,0x18,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0xc0,0x03,0x80,0x01,0x80,0x01,0xc0,0x03,0xe0,0x07,0xf0,0x0f,0x38,0x1c,0x18,0x18,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01, diff --git a/radio/src/fonts/std/font_10x14.png b/radio/src/fonts/std/font_10x14.png index 1849cc0eb..35ad65ed4 100644 Binary files a/radio/src/fonts/std/font_10x14.png and b/radio/src/fonts/std/font_10x14.png differ diff --git a/radio/src/fonts/std/font_10x14_compressed.lbm b/radio/src/fonts/std/font_10x14_compressed.lbm deleted file mode 100644 index 48525daac..000000000 --- a/radio/src/fonts/std/font_10x14_compressed.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x78,0x00,0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x0e,0x70,0xfc,0x3f,0xf8,0x1f,0x00,0x00,0x00,0x00,0x18,0x60,0x1c,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0x1c,0x7c,0x0e,0x6e,0x06,0x67,0x86,0x63,0xce,0x61,0xfc,0x60,0x78,0x60,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0x00,0x00,0x00,0x00,0x80,0x07,0xc0,0x07,0xe0,0x06,0x70,0x06,0x38,0x06,0x1c,0x06,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x7e,0x18,0x7e,0x38,0x66,0x70,0x66,0x60,0x66,0x60,0xe6,0x70,0xc6,0x3f,0x86,0x1f,0x00,0x00,0x00,0x00,0xf8,0x1f,0xfc,0x3f,0x8e,0x71,0x86,0x61,0x86,0x61,0x8e,0x73,0x1c,0x3f,0x18,0x1e,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x86,0x7f,0xc6,0x7f,0xe6,0x00,0x76,0x00,0x3e,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x78,0x1e,0xfc,0x3f,0xce,0x73,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0x00,0x00,0x00,0x00,0x78,0x00,0xfc,0x00,0xce,0x61,0x86,0x71,0x86,0x39,0xce,0x1d,0xfc,0x0f,0xf8,0x07,0x00,0x00,0x00,0x00,0x30,0x0c,0x78,0x1e,0x78,0x1e,0x30,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x7f,0xf0,0x7f,0xb8,0x01,0x9c,0x01,0x8e,0x01,0x8e,0x01,0x9c,0x01,0xb8,0x01,0xf0,0x7f,0xe0,0x7f,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0xce,0x73,0xfc,0x3f,0x78,0x1e,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0x1c,0x38,0x18,0x18,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0x1c,0x38,0x38,0x1c,0xf0,0x0f,0xe0,0x07,0xfe,0x7f,0xfe,0x7f,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x06,0x00,0x06,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x86,0x61,0x86,0x61,0x86,0x61,0x8e,0x71,0x9c,0x7f,0x98,0x3f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xfe,0x7f,0xfe,0x7f,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0x60,0x06,0x60,0x06,0x70,0xfe,0x3f,0xfe,0x1f,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x38,0x1c,0x1c,0x38,0x0e,0x70,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xfe,0x7f,0xfe,0x7f,0x1c,0x00,0x38,0x00,0xf0,0x01,0xf0,0x01,0x38,0x00,0x1c,0x00,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0e,0xfe,0x7f,0xfe,0x7f,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0e,0x70,0xfc,0x3f,0xf8,0x1f,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0x86,0x01,0xce,0x01,0xfc,0x00,0x78,0x00,0xf8,0x1f,0xfc,0x3f,0x0e,0x70,0x06,0x60,0x06,0x66,0x06,0x6e,0x06,0x3c,0x0e,0x38,0xfc,0x7f,0xf8,0x67,0xfe,0x7f,0xfe,0x7f,0x86,0x01,0x86,0x01,0x86,0x07,0x86,0x0f,0x86,0x1d,0xce,0x39,0xfc,0x70,0x78,0x60,0x78,0x18,0xfc,0x38,0xce,0x71,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x8e,0x73,0x1c,0x3f,0x18,0x1e,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x7f,0xfe,0x7f,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xfe,0x1f,0xfe,0x3f,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x70,0xfe,0x3f,0xfe,0x1f,0xfe,0x07,0xfe,0x0f,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x1c,0xfe,0x0f,0xfe,0x07,0xfe,0x1f,0xfe,0x3f,0x00,0x70,0x00,0x70,0x00,0x3e,0x00,0x3e,0x00,0x70,0x00,0x70,0xfe,0x3f,0xfe,0x1f,0x1e,0x78,0x3e,0x7c,0x70,0x0e,0xe0,0x07,0xc0,0x03,0xc0,0x03,0xe0,0x07,0x70,0x0e,0x3e,0x7c,0x1e,0x78,0x7e,0x00,0xfe,0x00,0xc0,0x01,0x80,0x03,0x00,0x7f,0x00,0x7f,0x80,0x03,0xc0,0x01,0xfe,0x00,0x7e,0x00,0x06,0x78,0x06,0x7c,0x06,0x6e,0x06,0x67,0x86,0x63,0xc6,0x61,0xe6,0x60,0x76,0x60,0x3e,0x60,0x1e,0x60,0x00,0x18,0x00,0x3c,0x60,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0xfe,0x7f,0xfe,0x7f,0x80,0x61,0xc0,0x61,0xe0,0x60,0x60,0x60,0x60,0x60,0xe0,0x70,0xc0,0x3f,0x80,0x1f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x70,0x00,0x38,0x00,0x18,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0xe0,0x60,0xc0,0x61,0x80,0x61,0xfe,0x7f,0xfe,0x7f,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe0,0x66,0xc0,0x07,0x80,0x07,0x80,0x01,0x80,0x01,0xf8,0x7f,0xfc,0x7f,0x8e,0x01,0x86,0x01,0x06,0x00,0x0e,0x00,0x1c,0x00,0x18,0x00,0xe0,0x01,0xf0,0x03,0x38,0x67,0x18,0x66,0x18,0x66,0x18,0x66,0x18,0x66,0x18,0x76,0xf8,0x3f,0xf8,0x1f,0xfe,0x7f,0xfe,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe6,0x7f,0xe6,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x38,0x00,0x70,0x00,0x60,0x60,0x60,0x60,0x70,0xe6,0x3f,0xe6,0x1f,0x00,0x00,0x00,0x00,0xfe,0x7f,0xfe,0x7f,0x00,0x06,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0xfe,0x7f,0xfe,0x7f,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0xe0,0x7f,0xe0,0x7f,0x60,0x00,0xe0,0x00,0xc0,0x07,0xc0,0x07,0xe0,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0xe0,0x7f,0xe0,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x7f,0x80,0x7f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x70,0xc0,0x3f,0x80,0x1f,0xe0,0x7f,0xe0,0x7f,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0xe0,0x07,0xc0,0x03,0x80,0x01,0x80,0x01,0xc0,0x03,0xe0,0x07,0x60,0x06,0x60,0x06,0x60,0x06,0xc0,0x07,0x80,0x07,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0xe0,0x7f,0x80,0x01,0xc0,0x01,0xe0,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x01,0x80,0x01,0x80,0x61,0xc0,0x63,0xe0,0x67,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x7e,0x00,0x3c,0x00,0x18,0x60,0x00,0x60,0x00,0xf8,0x1f,0xf8,0x3f,0x60,0x70,0x60,0x60,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x18,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x38,0x00,0x18,0xe0,0x7f,0xe0,0x7f,0xe0,0x07,0xe0,0x0f,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x1c,0xe0,0x0f,0xe0,0x07,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x70,0x00,0x38,0x00,0x38,0x00,0x70,0x00,0x70,0xe0,0x3f,0xe0,0x1f,0x60,0x60,0xe0,0x70,0xc0,0x39,0x80,0x1f,0x00,0x0f,0x00,0x0f,0x80,0x1f,0xc0,0x39,0xe0,0x70,0x60,0x60,0xe0,0x01,0xe0,0x03,0x00,0x67,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x76,0xe0,0x3f,0xe0,0x1f,0x60,0x60,0x60,0x70,0x60,0x78,0x60,0x7c,0x60,0x6e,0x60,0x67,0xe0,0x63,0xe0,0x61,0xe0,0x60,0x60,0x60, diff --git a/radio/src/fonts/std/font_10x14_compressed.png b/radio/src/fonts/std/font_10x14_compressed.png index 07e890ee2..0549696db 100644 Binary files a/radio/src/fonts/std/font_10x14_compressed.png and b/radio/src/fonts/std/font_10x14_compressed.png differ diff --git a/radio/src/fonts/std/font_10x14_extra.lbm b/radio/src/fonts/std/font_10x14_extra.lbm deleted file mode 100644 index c71947df1..000000000 --- a/radio/src/fonts/std/font_10x14_extra.lbm +++ /dev/null @@ -1 +0,0 @@ -0x60,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0xce,0x7f,0xce,0x7f,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00,0x00,0x06,0x00,0x0e,0x00,0x1c,0x00,0x38,0xfe,0x73,0xfe,0x73,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x06,0x00,0x18,0x00,0x1c,0x00,0x0e,0x18,0x07,0x98,0x03,0xd8,0x01,0xd8,0x00,0x18,0x00,0xf8,0x03,0xf8,0x03,0x18,0x00,0x38,0x00,0x70,0x00,0xe0,0x18,0xc0,0x19,0x80,0x1b,0x00,0x1b,0x00,0x18,0xc0,0x1f,0xc0,0x1f,0xc0,0x1f,0xc0,0x1f,0x00,0x18,0x00,0x1b,0x80,0x1b,0xc0,0x19,0xe0,0x18,0x70,0x00,0x38,0x00,0x18,0x00,0xf8,0x03,0xf8,0x03,0x18,0x00,0xd8,0x00,0xd8,0x01,0x98,0x03,0x18,0x07,0x00,0x0e,0x00,0x1c,0x00,0x18, diff --git a/radio/src/fonts/std/font_cz_04x06.lbm b/radio/src/fonts/std/font_cz_04x06.lbm deleted file mode 100644 index 450f6b219..000000000 --- a/radio/src/fonts/std/font_cz_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x18,0x24,0x16,0x3d,0x00,0x18,0x24,0x25,0x02,0x01,0x18,0x34,0x2c,0x0a,0x01,0x18,0x34,0x2d,0x0a,0x01,0x00,0x24,0x3c,0x22,0x01,0x18,0x24,0x24,0x1a,0x01,0x3c,0x04,0x05,0x0a,0x01,0x28,0x2d,0x36,0x15,0x00,0x1c,0x20,0x22,0x3d,0x00,0x1c,0x21,0x21,0x3c,0x00,0x0c,0x50,0x22,0x1d,0x00,0x38,0x14,0x14,0x3a,0x01,0x00,0x24,0x3e,0x25,0x00,0x3c,0x15,0x16,0x2d,0x00,0x00,0x0c,0x32,0x0d,0x00,0x24,0x35,0x2e,0x25,0x00,0x3e,0x2a,0x2a,0x22,0x01, diff --git a/radio/src/fonts/std/font_cz_04x06.png b/radio/src/fonts/std/font_cz_04x06.png index d43f5b05c..176c827b8 100644 Binary files a/radio/src/fonts/std/font_cz_04x06.png and b/radio/src/fonts/std/font_cz_04x06.png differ diff --git a/radio/src/fonts/std/font_cz_05x07.lbm b/radio/src/fonts/std/font_cz_05x07.lbm deleted file mode 100644 index 1cb949cdc..000000000 --- a/radio/src/fonts/std/font_cz_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x20,0x54,0x56,0x55,0x78,0x38,0x45,0x46,0x45,0x20,0x38,0x54,0x56,0x55,0x18,0x38,0x55,0x56,0x55,0x18,0x00,0x44,0x7e,0x41,0x00,0x38,0x44,0x46,0x45,0x38,0x7c,0x09,0x06,0x05,0x08,0x48,0x55,0x56,0x55,0x20,0x3c,0x40,0x42,0x21,0x7c,0x3c,0x40,0x43,0x23,0x7c,0x0c,0x50,0x52,0x51,0x3c,0x78,0x14,0x16,0x15,0x78,0x00,0x44,0x7e,0x45,0x00,0x7c,0x15,0x16,0x35,0x48,0x0c,0x10,0x62,0x11,0x0c,0x44,0x65,0x56,0x4d,0x44,0x7c,0x54,0x56,0x55,0x44,0x3c,0x3c,0x24,0x42,0xff,0x24,0x18,0x81,0x42,0x3c, diff --git a/radio/src/fonts/std/font_cz_05x07.png b/radio/src/fonts/std/font_cz_05x07.png index 19ab8e4d1..a0ef49a4b 100644 Binary files a/radio/src/fonts/std/font_cz_05x07.png and b/radio/src/fonts/std/font_cz_05x07.png differ diff --git a/radio/src/fonts/std/font_cz_08x10.lbm b/radio/src/fonts/std/font_cz_08x10.lbm deleted file mode 100644 index 63fbb75db..000000000 --- a/radio/src/fonts/std/font_cz_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x03,0xa0,0x07,0xb0,0x04,0x94,0x04,0x93,0x02,0xf1,0x07,0xe0,0x07,0x00,0x00,0xc0,0x01,0xe1,0x03,0x33,0x06,0x16,0x04,0x13,0x04,0x31,0x06,0x20,0x02,0x00,0x00,0xc0,0x01,0xe0,0x03,0xb0,0x06,0x94,0x04,0xb3,0x04,0xe1,0x06,0xc0,0x02,0x00,0x00,0xc0,0x01,0xe1,0x03,0xb3,0x06,0x96,0x04,0xb3,0x04,0xe1,0x06,0xc0,0x02,0x00,0x00,0x00,0x04,0x10,0x04,0xf4,0x07,0xf3,0x07,0x01,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0xc0,0x01,0xe0,0x03,0x30,0x06,0x14,0x04,0x33,0x06,0xe1,0x03,0xc0,0x01,0x00,0x00,0x11,0x00,0xf3,0x07,0xe6,0x07,0x33,0x00,0x11,0x00,0x30,0x00,0x20,0x00,0x00,0x00,0x60,0x02,0xf1,0x06,0x93,0x04,0x96,0x04,0x93,0x04,0xb1,0x07,0x20,0x03,0x00,0x00,0xf0,0x01,0xf0,0x03,0x00,0x06,0x04,0x04,0x03,0x02,0xf1,0x07,0xf0,0x07,0x00,0x00,0xf0,0x01,0xf0,0x03,0x02,0x06,0x05,0x04,0x05,0x02,0xf2,0x07,0xf0,0x07,0x00,0x00,0xf0,0x04,0xf0,0x0c,0x00,0x09,0x04,0x09,0x83,0x0c,0xf1,0x07,0xf0,0x03,0x00,0x00,0xf0,0x07,0xf8,0x07,0x88,0x00,0x8c,0x00,0x8b,0x00,0x89,0x00,0xf8,0x07,0xf0,0x07,0x00,0x00,0x08,0x04,0x08,0x04,0xfc,0x07,0xfb,0x07,0x09,0x04,0x08,0x04,0x00,0x00,0xf8,0x07,0xf9,0x07,0xcb,0x00,0xce,0x00,0xcb,0x01,0x49,0x03,0x78,0x06,0x30,0x04,0x18,0x00,0x18,0x00,0x30,0x00,0xe4,0x07,0xe3,0x07,0x31,0x00,0x18,0x00,0x18,0x00,0x08,0x06,0x09,0x07,0x8b,0x05,0xce,0x04,0x6b,0x04,0x39,0x04,0x18,0x04,0x00,0x00,0xf8,0x07,0xf8,0x07,0x48,0x04,0x4c,0x04,0x4b,0x04,0x49,0x04,0x08,0x04,0x00,0x00, diff --git a/radio/src/fonts/std/font_cz_08x10.png b/radio/src/fonts/std/font_cz_08x10.png index 912588acb..34c985f8e 100644 Binary files a/radio/src/fonts/std/font_cz_08x10.png and b/radio/src/fonts/std/font_cz_08x10.png differ diff --git a/radio/src/fonts/std/font_cz_10x14.lbm b/radio/src/fonts/std/font_cz_10x14.lbm deleted file mode 100644 index 2e96bc3f2..000000000 --- a/radio/src/fonts/std/font_cz_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x18,0x00,0x3c,0x60,0x7e,0x60,0x66,0x68,0x66,0x6c,0x66,0x67,0x66,0xe3,0x66,0xc1,0x7f,0x80,0x7f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x67,0x60,0x6f,0x60,0x6c,0x60,0x66,0x60,0x63,0x70,0x01,0x38,0x00,0x18,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x60,0x66,0x68,0x66,0x6c,0x66,0x67,0x66,0xe3,0x66,0xc1,0x07,0x80,0x07,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x67,0x66,0x6f,0x66,0x6c,0x66,0x66,0x66,0xe3,0x66,0xc1,0x07,0x80,0x07,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe8,0x7f,0xec,0x7f,0x07,0x60,0x03,0x60,0x01,0x00,0x00,0x00,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x68,0x60,0x6c,0x60,0x67,0x60,0xe3,0x70,0xc1,0x3f,0x80,0x1f,0xe0,0x7f,0xe0,0x7f,0x80,0x01,0xc7,0x01,0xef,0x00,0x6c,0x00,0x66,0x00,0xe3,0x00,0xc1,0x01,0x80,0x01,0x80,0x61,0xc0,0x63,0xe0,0x67,0x67,0x66,0x6f,0x66,0x6c,0x66,0x66,0x66,0x63,0x7e,0x01,0x3c,0x00,0x18,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x60,0x08,0x60,0x0c,0x70,0x07,0x38,0x03,0x18,0xe1,0x7f,0xe0,0x7f,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x06,0x60,0x09,0x60,0x09,0x70,0x0f,0x38,0x06,0x18,0xe0,0x7f,0xe0,0x7f,0xe0,0x01,0xe0,0x03,0x00,0x67,0x00,0x66,0x08,0x66,0x0c,0x66,0x07,0x66,0x03,0x76,0xe1,0x3f,0xe0,0x1f,0x80,0x7f,0xc0,0x7f,0xe0,0x06,0x70,0x06,0x38,0x06,0x38,0x06,0x74,0x06,0xe7,0x06,0xc3,0x7f,0x81,0x7f,0x00,0x00,0x00,0x00,0x18,0x60,0x18,0x60,0xfc,0x7f,0xff,0x7f,0x1b,0x60,0x19,0x60,0x00,0x00,0x00,0x00,0xf8,0x7f,0xf8,0x7f,0x18,0x03,0x17,0x03,0x0f,0x07,0x0c,0x0f,0x16,0x1f,0xbb,0x3b,0xf1,0x71,0xe0,0x60,0xf8,0x00,0xf8,0x01,0x80,0x03,0x00,0x07,0x00,0x7e,0x04,0x7e,0x07,0x07,0x83,0x03,0xf9,0x01,0xf8,0x00,0x18,0x70,0x18,0x70,0x18,0x78,0x17,0x7c,0x0f,0x6e,0x0c,0x67,0x96,0x63,0xdb,0x61,0xf9,0x60,0x78,0x60,0xf8,0x7f,0xf8,0x7f,0x18,0x63,0x18,0x63,0x1c,0x63,0x1f,0x63,0x1b,0x63,0x19,0x63,0x18,0x60,0x18,0x60, diff --git a/radio/src/fonts/std/font_cz_10x14.png b/radio/src/fonts/std/font_cz_10x14.png index bc97e13be..4ffed2ed4 100644 Binary files a/radio/src/fonts/std/font_cz_10x14.png and b/radio/src/fonts/std/font_cz_10x14.png differ diff --git a/radio/src/fonts/std/font_de_04x06.lbm b/radio/src/fonts/std/font_de_04x06.lbm deleted file mode 100644 index fcdfd7962..000000000 --- a/radio/src/fonts/std/font_de_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3d,0x0a,0x0a,0x3d,0x00,0x18,0x25,0x14,0x3d,0x00,0x1d,0x22,0x22,0x1d,0x00,0x18,0x25,0x24,0x19,0x00,0x1d,0x20,0x20,0x1d,0x00,0x1a,0x20,0x10,0x3a,0x00,0x7e,0x05,0x25,0x1a,0x00, diff --git a/radio/src/fonts/std/font_de_04x06.png b/radio/src/fonts/std/font_de_04x06.png index d9c1fa058..b24705fa9 100644 Binary files a/radio/src/fonts/std/font_de_04x06.png and b/radio/src/fonts/std/font_de_04x06.png differ diff --git a/radio/src/fonts/std/font_de_05x07.lbm b/radio/src/fonts/std/font_de_05x07.lbm deleted file mode 100644 index d6b5a02e6..000000000 --- a/radio/src/fonts/std/font_de_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x7c,0x13,0x12,0x13,0x7c,0x20,0x55,0x54,0x55,0x78,0x3c,0x43,0x42,0x43,0x3c,0x38,0x45,0x44,0x45,0x38,0x3e,0x41,0x40,0x41,0x3e,0x3c,0x41,0x40,0x21,0x7c,0x7e,0x01,0x49,0x56,0x20, diff --git a/radio/src/fonts/std/font_de_08x10.lbm b/radio/src/fonts/std/font_de_08x10.lbm deleted file mode 100644 index 91e1ae1e4..000000000 --- a/radio/src/fonts/std/font_de_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xe0,0x07,0xf6,0x07,0x96,0x00,0x88,0x00,0x88,0x00,0x96,0x00,0xf6,0x07,0xe0,0x07,0x00,0x03,0xa0,0x07,0xb6,0x04,0x96,0x04,0x90,0x02,0xf6,0x07,0xe6,0x07,0x00,0x00,0xe0,0x01,0xf6,0x03,0x16,0x06,0x08,0x04,0x08,0x04,0x16,0x06,0xf6,0x03,0xe0,0x01,0xc0,0x01,0xe6,0x03,0x36,0x06,0x10,0x04,0x36,0x06,0xe6,0x03,0xc0,0x01,0x00,0x00,0xf8,0x01,0xfb,0x03,0x03,0x06,0x00,0x04,0x03,0x04,0x03,0x06,0xf8,0x03,0xf8,0x01,0xf0,0x01,0xf6,0x03,0x06,0x06,0x00,0x04,0x06,0x02,0xf6,0x07,0xf0,0x07,0x00,0x00,0xf0,0x07,0xf8,0x07,0x8c,0x00,0x86,0x00,0x86,0x00,0x8c,0x00,0xf8,0x07,0xf0,0x07, diff --git a/radio/src/fonts/std/font_de_08x10.png b/radio/src/fonts/std/font_de_08x10.png index 6cc400f77..35962a5ae 100644 Binary files a/radio/src/fonts/std/font_de_08x10.png and b/radio/src/fonts/std/font_de_08x10.png differ diff --git a/radio/src/fonts/std/font_de_10x14.lbm b/radio/src/fonts/std/font_de_10x14.lbm deleted file mode 100644 index ed3d1da5f..000000000 --- a/radio/src/fonts/std/font_de_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x80,0x7f,0xc2,0x7f,0xe2,0x06,0x70,0x06,0x38,0x06,0x38,0x06,0x70,0x06,0xe2,0x06,0xc2,0x7f,0x80,0x7f,0x00,0x18,0x06,0x3c,0x66,0x7e,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0xe6,0x66,0xc6,0x7f,0x80,0x7f,0xe0,0x1f,0xf2,0x3f,0x3a,0x70,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x3a,0x70,0xf2,0x3f,0xe0,0x1f,0x80,0x1f,0xc6,0x3f,0xe6,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe6,0x70,0xc6,0x3f,0x80,0x1f,0xf8,0x1f,0xfa,0x3f,0x02,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x02,0x70,0xfa,0x3f,0xf8,0x1f,0xe0,0x1f,0xe6,0x3f,0x06,0x70,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x38,0x06,0x18,0xe6,0x7f,0xe0,0x7f,0xf8,0x7f,0xfc,0x7f,0x0e,0x00,0x06,0x00,0x66,0x30,0x6e,0x30,0xfc,0x38,0xd8,0x1f,0x00,0x0f,0x00,0x00, diff --git a/radio/src/fonts/std/font_de_10x14.png b/radio/src/fonts/std/font_de_10x14.png index 22ae54efc..f32214fed 100644 Binary files a/radio/src/fonts/std/font_de_10x14.png and b/radio/src/fonts/std/font_de_10x14.png differ diff --git a/radio/src/fonts/std/font_es_04x06.lbm b/radio/src/fonts/std/font_es_04x06.lbm deleted file mode 100644 index 9c8fdb698..000000000 --- a/radio/src/fonts/std/font_es_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x3e,0x09,0x12,0x3d,0x00,0x3a,0x11,0x0a,0x39,0x00, diff --git a/radio/src/fonts/std/font_es_04x06.png b/radio/src/fonts/std/font_es_04x06.png index ee36412ee..2c5db9a63 100644 Binary files a/radio/src/fonts/std/font_es_04x06.png and b/radio/src/fonts/std/font_es_04x06.png differ diff --git a/radio/src/fonts/std/font_es_05x07.lbm b/radio/src/fonts/std/font_es_05x07.lbm deleted file mode 100644 index 99f4cd1a2..000000000 --- a/radio/src/fonts/std/font_es_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x7c,0x0a,0x11,0x22,0x7d,0x78,0x12,0x09,0x0a,0x71, diff --git a/radio/src/fonts/std/font_es_08x10.lbm b/radio/src/fonts/std/font_es_08x10.lbm deleted file mode 100644 index f3bb8184c..000000000 --- a/radio/src/fonts/std/font_es_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x07,0xf4,0x07,0x66,0x00,0xc2,0x00,0x86,0x01,0x04,0x07,0xf6,0x07,0xf2,0x07,0xf4,0x07,0xf6,0x07,0x22,0x00,0x16,0x00,0x34,0x00,0xe6,0x07,0xc2,0x07,0x00,0x00, diff --git a/radio/src/fonts/std/font_es_08x10.png b/radio/src/fonts/std/font_es_08x10.png index c05c1f406..783dc7c84 100644 Binary files a/radio/src/fonts/std/font_es_08x10.png and b/radio/src/fonts/std/font_es_08x10.png differ diff --git a/radio/src/fonts/std/font_es_10x14.lbm b/radio/src/fonts/std/font_es_10x14.lbm deleted file mode 100644 index 92d200c51..000000000 --- a/radio/src/fonts/std/font_es_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0xe8,0x7f,0xec,0x7f,0xc6,0x01,0x82,0x03,0x04,0x07,0x08,0x0e,0x0c,0x1c,0x06,0x38,0xe2,0x7f,0xe0,0x7f,0xe0,0x7f,0xe8,0x7f,0x8c,0x01,0xc6,0x01,0xe2,0x00,0x64,0x00,0x68,0x00,0xec,0x00,0xc6,0x7f,0x82,0x7f, diff --git a/radio/src/fonts/std/font_fr_04x06.lbm b/radio/src/fonts/std/font_fr_04x06.lbm deleted file mode 100644 index afd789ef6..000000000 --- a/radio/src/fonts/std/font_fr_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x18,0x36,0x2d,0x08,0x00,0x18,0x35,0x2e,0x08,0x00,0x18,0x25,0x16,0x3c,0x00,0x00,0x26,0x3d,0x22,0x00,0x00,0x4c,0x32,0x12,0x00, diff --git a/radio/src/fonts/std/font_fr_04x06.png b/radio/src/fonts/std/font_fr_04x06.png index da9f758ff..44f058292 100644 Binary files a/radio/src/fonts/std/font_fr_04x06.png and b/radio/src/fonts/std/font_fr_04x06.png differ diff --git a/radio/src/fonts/std/font_fr_05x07.lbm b/radio/src/fonts/std/font_fr_05x07.lbm deleted file mode 100644 index 52e6a2605..000000000 --- a/radio/src/fonts/std/font_fr_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x38,0x54,0x56,0x55,0x18,0x38,0x55,0x56,0x54,0x18,0x20,0x55,0x56,0x54,0x78,0x00,0x4a,0x79,0x42,0x00,0x1c,0xa2,0x62,0x22,0x10, diff --git a/radio/src/fonts/std/font_fr_05x07.png b/radio/src/fonts/std/font_fr_05x07.png index dbc042f66..547418b16 100644 Binary files a/radio/src/fonts/std/font_fr_05x07.png and b/radio/src/fonts/std/font_fr_05x07.png differ diff --git a/radio/src/fonts/std/font_fr_08x10.lbm b/radio/src/fonts/std/font_fr_08x10.lbm deleted file mode 100644 index 5be2553c5..000000000 --- a/radio/src/fonts/std/font_fr_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xc0,0x01,0xe0,0x03,0xb4,0x06,0x96,0x04,0xb3,0x04,0xe1,0x06,0xc0,0x02,0x00,0x00,0xc0,0x01,0xe0,0x03,0xb1,0x06,0x93,0x04,0xb6,0x04,0xe4,0x06,0xc0,0x02,0x00,0x00,0x00,0x03,0xa0,0x07,0xb1,0x04,0x93,0x04,0x96,0x02,0xf4,0x07,0xe0,0x07,0x00,0x00,0x04,0x04,0x16,0x04,0xf3,0x07,0xf6,0x07,0x04,0x04,0x00,0x04,0x00,0x00,0xe0,0x00,0xf0,0x01,0x18,0x0b,0x08,0x0e,0x08,0x06,0x18,0x03,0x10,0x01,0x00,0x00,0x00,0x00, diff --git a/radio/src/fonts/std/font_fr_08x10.png b/radio/src/fonts/std/font_fr_08x10.png index f9ad08c8b..327b8c27e 100644 Binary files a/radio/src/fonts/std/font_fr_08x10.png and b/radio/src/fonts/std/font_fr_08x10.png differ diff --git a/radio/src/fonts/std/font_fr_10x14.lbm b/radio/src/fonts/std/font_fr_10x14.lbm deleted file mode 100644 index 081e4fe70..000000000 --- a/radio/src/fonts/std/font_fr_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x68,0x66,0x6c,0x66,0x66,0x66,0x62,0x66,0xe0,0x66,0xc0,0x07,0x80,0x07,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x66,0xc0,0x07,0x80,0x07,0x00,0x18,0x00,0x3c,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0x00,0x00,0x00,0x00,0x98,0x61,0x98,0x61,0x86,0x7f,0x86,0x7f,0x18,0x60,0x18,0x60,0x00,0x00,0x00,0x00,0xe0,0x07,0xf0,0x0f,0x38,0x9c,0x18,0xd8,0x18,0x78,0x18,0x38,0x18,0x18,0x18,0x1c,0x00,0x0e,0x00,0x06, diff --git a/radio/src/fonts/std/font_fr_10x14.png b/radio/src/fonts/std/font_fr_10x14.png index 39ca61147..c1c2dede7 100644 Binary files a/radio/src/fonts/std/font_fr_10x14.png and b/radio/src/fonts/std/font_fr_10x14.png differ diff --git a/radio/src/fonts/std/font_it_04x06.lbm b/radio/src/fonts/std/font_it_04x06.lbm deleted file mode 100644 index c6a470f29..000000000 --- a/radio/src/fonts/std/font_it_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x18,0x25,0x16,0x3c,0x00,0x1c,0x21,0x22,0x3c,0x00, diff --git a/radio/src/fonts/std/font_it_04x06.png b/radio/src/fonts/std/font_it_04x06.png index 365940249..44b4ca560 100644 Binary files a/radio/src/fonts/std/font_it_04x06.png and b/radio/src/fonts/std/font_it_04x06.png differ diff --git a/radio/src/fonts/std/font_it_05x07.lbm b/radio/src/fonts/std/font_it_05x07.lbm deleted file mode 100644 index 17d52fd9b..000000000 --- a/radio/src/fonts/std/font_it_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x20,0x55,0x56,0x54,0x78,0x3c,0x41,0x42,0x20,0x7c, diff --git a/radio/src/fonts/std/font_it_08x10.lbm b/radio/src/fonts/std/font_it_08x10.lbm deleted file mode 100644 index 8d92e52ad..000000000 --- a/radio/src/fonts/std/font_it_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x03,0xa0,0x07,0xb2,0x04,0x96,0x04,0x94,0x02,0xf0,0x07,0xe0,0x07,0x00,0x00,0xf0,0x01,0xf0,0x03,0x02,0x06,0x06,0x04,0x04,0x02,0xf0,0x07,0xf0,0x07,0x00,0x00, diff --git a/radio/src/fonts/std/font_it_08x10.png b/radio/src/fonts/std/font_it_08x10.png index a1753b5b7..ebd2cfc5f 100644 Binary files a/radio/src/fonts/std/font_it_08x10.png and b/radio/src/fonts/std/font_it_08x10.png differ diff --git a/radio/src/fonts/std/font_it_10x14.lbm b/radio/src/fonts/std/font_it_10x14.lbm deleted file mode 100644 index b25268b4e..000000000 --- a/radio/src/fonts/std/font_it_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x18,0x00,0x3c,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x02,0x60,0x06,0x60,0x0c,0x60,0x08,0x60,0x00,0x30,0xe0,0x7f,0xe0,0x7f, diff --git a/radio/src/fonts/std/font_pl_04x06.png b/radio/src/fonts/std/font_pl_04x06.png new file mode 100644 index 000000000..5f0355deb Binary files /dev/null and b/radio/src/fonts/std/font_pl_04x06.png differ diff --git a/radio/src/fonts/std/font_pl_05x07.png b/radio/src/fonts/std/font_pl_05x07.png new file mode 100644 index 000000000..b545570fc Binary files /dev/null and b/radio/src/fonts/std/font_pl_05x07.png differ diff --git a/radio/src/fonts/std/font_pl_08x10.png b/radio/src/fonts/std/font_pl_08x10.png new file mode 100644 index 000000000..5e447506c Binary files /dev/null and b/radio/src/fonts/std/font_pl_08x10.png differ diff --git a/radio/src/fonts/std/font_pl_10x14.png b/radio/src/fonts/std/font_pl_10x14.png new file mode 100644 index 000000000..b37d221ee Binary files /dev/null and b/radio/src/fonts/std/font_pl_10x14.png differ diff --git a/radio/src/fonts/std/font_pt_04x06.lbm b/radio/src/fonts/std/font_pt_04x06.lbm deleted file mode 100644 index bb2db6d13..000000000 --- a/radio/src/fonts/std/font_pt_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, diff --git a/radio/src/fonts/std/font_pt_05x07.lbm b/radio/src/fonts/std/font_pt_05x07.lbm deleted file mode 100644 index 8f2c832a2..000000000 --- a/radio/src/fonts/std/font_pt_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x78,0x14,0x16,0x15,0x78,0x20,0x54,0x56,0x55,0x78,0x78,0x16,0x15,0x16,0x78,0x20,0x56,0x55,0x56,0x78,0x7a,0x15,0x16,0x15,0x78,0x20,0x56,0x55,0x56,0x79,0x78,0x15,0x16,0x14,0x78,0x20,0x55,0x56,0x54,0x78,0x1e,0xa1,0x61,0x21,0x12,0x1c,0xa2,0x62,0x22,0x10,0x7c,0x54,0x56,0x55,0x44,0x38,0x54,0x56,0x55,0x18,0x7c,0x56,0x55,0x56,0x44,0x38,0x56,0x55,0x56,0x18,0x00,0x44,0x7e,0x45,0x00,0x00,0x4c,0x7a,0x40,0x00,0x3c,0x42,0x42,0x43,0x3c,0x38,0x44,0x46,0x45,0x38,0x3c,0x42,0x43,0x42,0x3c,0x38,0x44,0x46,0x44,0x38,0x3c,0x43,0x42,0x43,0x3c,0x38,0x46,0x44,0x46,0x38,0x3c,0x40,0x42,0x41,0x3c,0x38,0x40,0x44,0x22,0x78, diff --git a/radio/src/fonts/std/font_pt_05x07.png b/radio/src/fonts/std/font_pt_05x07.png index 768ff309f..b6d68899b 100644 Binary files a/radio/src/fonts/std/font_pt_05x07.png and b/radio/src/fonts/std/font_pt_05x07.png differ diff --git a/radio/src/fonts/std/font_pt_08x10.lbm b/radio/src/fonts/std/font_pt_08x10.lbm deleted file mode 100644 index ac3c9fafb..000000000 --- a/radio/src/fonts/std/font_pt_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0xf0,0x07,0xf8,0x07,0x88,0x00,0x8c,0x00,0x8b,0x00,0x89,0x00,0xf8,0x07,0xf0,0x07,0x00,0x03,0xa0,0x07,0xb0,0x04,0x90,0x04,0x98,0x02,0xf6,0x07,0xe2,0x07,0x00,0x00,0xf0,0x07,0xfa,0x07,0x8b,0x00,0x89,0x00,0x89,0x00,0x8b,0x00,0xfa,0x07,0xf0,0x07,0x00,0x03,0xa4,0x07,0xb6,0x04,0x93,0x04,0x96,0x02,0xf4,0x07,0xe0,0x07,0x00,0x00,0xf0,0x07,0xfa,0x07,0x89,0x00,0x89,0x00,0x8b,0x00,0x8a,0x00,0xfa,0x07,0xf1,0x07,0x00,0x03,0xa0,0x07,0xb4,0x04,0x92,0x04,0x96,0x02,0xf4,0x07,0xe2,0x07,0x00,0x00,0xf0,0x07,0xf8,0x07,0x89,0x00,0x8b,0x00,0x8c,0x00,0x88,0x00,0xf8,0x07,0xf0,0x07,0x00,0x03,0xa0,0x07,0xb2,0x04,0x96,0x04,0x98,0x02,0xf0,0x07,0xe0,0x07,0x00,0x00,0xf8,0x00,0xfc,0x01,0x8e,0x0b,0x06,0x0f,0x02,0x06,0x02,0x02,0x06,0x03,0x04,0x01,0xe0,0x00,0xf0,0x01,0x18,0x0b,0x08,0x0e,0x08,0x06,0x18,0x03,0x10,0x01,0x00,0x00,0xf8,0x07,0xf8,0x07,0x48,0x04,0x4c,0x04,0x4b,0x04,0x49,0x04,0x08,0x04,0x00,0x00,0xc0,0x01,0xe0,0x03,0xb0,0x06,0x9c,0x04,0xb6,0x04,0xe2,0x06,0xc0,0x02,0x00,0x00,0xf8,0x07,0xfa,0x07,0x4b,0x04,0x49,0x04,0x49,0x04,0x4b,0x04,0x0a,0x04,0x00,0x00,0xc0,0x01,0xe4,0x03,0xb6,0x06,0x93,0x04,0xb6,0x04,0xe4,0x06,0xc0,0x02,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0xfc,0x07,0xfb,0x07,0x09,0x04,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x04,0xf4,0x07,0xf3,0x07,0x01,0x04,0x00,0x04,0x00,0x00,0xe0,0x01,0xf0,0x03,0x18,0x06,0x08,0x04,0x0c,0x04,0x1b,0x06,0xf1,0x03,0xe0,0x01,0xc0,0x01,0xe0,0x03,0x30,0x06,0x18,0x04,0x36,0x06,0xe2,0x03,0xc0,0x01,0x00,0x00,0xe0,0x01,0xf2,0x03,0x1b,0x06,0x09,0x04,0x09,0x04,0x1b,0x06,0xf2,0x03,0xe0,0x01,0xc0,0x01,0xe4,0x03,0x36,0x06,0x13,0x04,0x36,0x06,0xe4,0x03,0xc0,0x01,0x00,0x00,0xe2,0x01,0xf1,0x03,0x19,0x06,0x0b,0x04,0x0a,0x04,0x1a,0x06,0xf1,0x03,0xe0,0x01,0xc0,0x01,0xe4,0x03,0x32,0x06,0x16,0x04,0x34,0x06,0xe2,0x03,0xc0,0x01,0x00,0x00,0xfc,0x01,0xfc,0x03,0x00,0x06,0x04,0x04,0x03,0x04,0x01,0x06,0xfc,0x03,0xfc,0x01,0xf0,0x01,0xf0,0x03,0x00,0x06,0x04,0x04,0x03,0x02,0xf1,0x07,0xf0,0x07,0x00,0x00, diff --git a/radio/src/fonts/std/font_pt_08x10.png b/radio/src/fonts/std/font_pt_08x10.png index fe2f3adda..da686a28b 100644 Binary files a/radio/src/fonts/std/font_pt_08x10.png and b/radio/src/fonts/std/font_pt_08x10.png differ diff --git a/radio/src/fonts/std/font_pt_10x14.lbm b/radio/src/fonts/std/font_pt_10x14.lbm deleted file mode 100644 index 3c2ee4a30..000000000 --- a/radio/src/fonts/std/font_pt_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x80,0x7f,0xc0,0x7f,0xe0,0x06,0x70,0x06,0x38,0x06,0x38,0x06,0x74,0x06,0xe6,0x06,0xc3,0x7f,0x81,0x7f,0x00,0x18,0x00,0x3c,0x60,0x7e,0x60,0x66,0x60,0x66,0x68,0x66,0x6c,0x66,0xe6,0x66,0xc2,0x7f,0x80,0x7f,0x80,0x7f,0xc0,0x7f,0xe4,0x06,0x76,0x06,0x3b,0x06,0x3b,0x06,0x76,0x06,0xe4,0x06,0xc0,0x7f,0x80,0x7f,0x00,0x18,0x00,0x3c,0x60,0x7e,0x68,0x66,0x6c,0x66,0x66,0x66,0x6c,0x66,0xe8,0x66,0xc0,0x7f,0x80,0x7f,0x80,0x7f,0xc2,0x7f,0xe1,0x06,0x71,0x06,0x3b,0x06,0x3a,0x06,0x72,0x06,0xe1,0x06,0xc0,0x7f,0x80,0x7f,0x00,0x18,0x00,0x3c,0x68,0x7e,0x64,0x66,0x64,0x66,0x6c,0x66,0x68,0x66,0xe8,0x66,0xc4,0x7f,0x80,0x7f,0x81,0x7f,0xc3,0x7f,0xe6,0x06,0x74,0x06,0x38,0x06,0x38,0x06,0x70,0x06,0xe0,0x06,0xc0,0x7f,0x80,0x7f,0x00,0x18,0x00,0x3c,0x60,0x7e,0x62,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0xf8,0x03,0xfc,0x07,0x0e,0x4e,0x06,0x6c,0x06,0x3c,0x06,0x1c,0x06,0x0c,0x0e,0x0e,0x1c,0x07,0x18,0x03,0xf0,0x03,0xf8,0x07,0x1c,0x4e,0x0c,0x6c,0x0c,0x3c,0x0c,0x1c,0x0c,0x0c,0x0c,0x0e,0x00,0x07,0x00,0x03,0xf8,0x7f,0xf8,0x7f,0x18,0x63,0x18,0x63,0x1c,0x63,0x1e,0x63,0x1b,0x63,0x19,0x63,0x18,0x60,0x18,0x60,0x80,0x1f,0xc0,0x3f,0xe0,0x76,0x60,0x66,0x68,0x66,0x6c,0x66,0x66,0x66,0xe2,0x66,0xc0,0x07,0x80,0x07,0xf0,0x7f,0xf4,0x7f,0x36,0x66,0x33,0x66,0x31,0x66,0x33,0x66,0x36,0x66,0x34,0x66,0x30,0x60,0x30,0x60,0x80,0x1f,0xc0,0x3f,0xe8,0x76,0x6c,0x66,0x66,0x66,0x6c,0x66,0x68,0x66,0xe0,0x66,0xc0,0x07,0x80,0x07,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0x60,0xf4,0x7f,0xf6,0x7f,0x33,0x60,0x31,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0xe8,0x7f,0xec,0x7f,0x06,0x60,0x02,0x60,0x00,0x00,0x00,0x00,0xe0,0x1f,0xf0,0x3f,0x38,0x70,0x18,0x60,0x1c,0x60,0x1e,0x60,0x1b,0x60,0x39,0x70,0xf0,0x3f,0xe0,0x1f,0x80,0x1f,0xc0,0x3f,0xe0,0x70,0x60,0x60,0x68,0x60,0x6c,0x60,0x66,0x60,0xe2,0x70,0xc0,0x3f,0x80,0x1f,0xc0,0x1f,0xe0,0x3f,0x74,0x70,0x36,0x60,0x33,0x60,0x33,0x60,0x36,0x60,0x74,0x70,0xe0,0x3f,0xc0,0x1f,0x80,0x1f,0xc0,0x3f,0xe8,0x70,0x6c,0x60,0x66,0x60,0x6c,0x60,0x68,0x60,0xe0,0x70,0xc0,0x3f,0x80,0x1f,0xe0,0x1f,0xf2,0x3f,0x39,0x70,0x19,0x60,0x1b,0x60,0x1a,0x60,0x1a,0x60,0x39,0x70,0xf0,0x3f,0xe0,0x1f,0x80,0x1f,0xc8,0x3f,0xe4,0x70,0x64,0x60,0x6c,0x60,0x68,0x60,0x68,0x60,0xe4,0x70,0xc0,0x3f,0x80,0x1f,0xf8,0x1f,0xf8,0x3f,0x00,0x70,0x00,0x60,0x04,0x60,0x06,0x60,0x03,0x60,0x01,0x70,0xf8,0x3f,0xf8,0x1f,0xe0,0x1f,0xe0,0x3f,0x00,0x70,0x00,0x60,0x10,0x60,0x18,0x70,0x0c,0x38,0x04,0x18,0xe0,0x7f,0xe0,0x7f, diff --git a/radio/src/fonts/std/font_pt_10x14.png b/radio/src/fonts/std/font_pt_10x14.png index 9a18913ec..fb9fd010c 100644 Binary files a/radio/src/fonts/std/font_pt_10x14.png and b/radio/src/fonts/std/font_pt_10x14.png differ diff --git a/radio/src/fonts/std/font_se_04x06.lbm b/radio/src/fonts/std/font_se_04x06.lbm deleted file mode 100644 index 8888b2f6b..000000000 --- a/radio/src/fonts/std/font_se_04x06.lbm +++ /dev/null @@ -1 +0,0 @@ -0x18,0x25,0x15,0x3c,0x00,0x18,0x25,0x14,0x3d,0x00,0x18,0x25,0x24,0x19,0x00,0x3c,0x0b,0x0b,0x3c,0x00,0x3d,0x0a,0x0a,0x3d,0x00,0x1d,0x22,0x22,0x1d,0x00, diff --git a/radio/src/fonts/std/font_se_04x06.png b/radio/src/fonts/std/font_se_04x06.png index aeba5aded..83a45306a 100644 Binary files a/radio/src/fonts/std/font_se_04x06.png and b/radio/src/fonts/std/font_se_04x06.png differ diff --git a/radio/src/fonts/std/font_se_05x07.lbm b/radio/src/fonts/std/font_se_05x07.lbm deleted file mode 100644 index 8d767a82b..000000000 --- a/radio/src/fonts/std/font_se_05x07.lbm +++ /dev/null @@ -1 +0,0 @@ -0x20,0x54,0x56,0x54,0x78,0x20,0x56,0x54,0x56,0x78,0x38,0x46,0x44,0x46,0x38,0x7c,0x13,0x13,0x12,0x7c,0x7c,0x13,0x12,0x13,0x7c,0x3c,0x43,0x42,0x43,0x3c, diff --git a/radio/src/fonts/std/font_se_08x10.lbm b/radio/src/fonts/std/font_se_08x10.lbm deleted file mode 100644 index f31490f1a..000000000 --- a/radio/src/fonts/std/font_se_08x10.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x03,0xa0,0x07,0xb4,0x04,0x9a,0x04,0x9a,0x02,0xf4,0x07,0xe0,0x07,0x00,0x00,0x00,0x03,0xa0,0x07,0xb6,0x04,0x96,0x04,0x90,0x02,0xf6,0x07,0xe6,0x07,0x00,0x00,0xc0,0x01,0xe6,0x03,0x36,0x06,0x10,0x04,0x36,0x06,0xe6,0x03,0xc0,0x01,0x00,0x00,0xe0,0x07,0xf0,0x07,0x9c,0x00,0x9a,0x00,0x9a,0x00,0x9c,0x00,0xf0,0x07,0xe0,0x07,0xe0,0x07,0xf6,0x07,0x96,0x00,0x88,0x00,0x88,0x00,0x96,0x00,0xf6,0x07,0xe0,0x07,0xe0,0x01,0xf6,0x03,0x16,0x06,0x08,0x04,0x08,0x04,0x16,0x06,0xf6,0x03,0xe0,0x01, diff --git a/radio/src/fonts/std/font_se_08x10.png b/radio/src/fonts/std/font_se_08x10.png index 330fa77a2..70fbdbcfd 100644 Binary files a/radio/src/fonts/std/font_se_08x10.png and b/radio/src/fonts/std/font_se_08x10.png differ diff --git a/radio/src/fonts/std/font_se_10x14.lbm b/radio/src/fonts/std/font_se_10x14.lbm deleted file mode 100644 index 20ce6d8df..000000000 --- a/radio/src/fonts/std/font_se_10x14.lbm +++ /dev/null @@ -1 +0,0 @@ -0x00,0x18,0x00,0x3c,0x60,0x7e,0x60,0x66,0x6e,0x66,0x6a,0x66,0x6e,0x66,0xe0,0x66,0xc0,0x7f,0x80,0x7f,0x00,0x18,0x00,0x3c,0x6c,0x7e,0x6c,0x66,0x60,0x66,0x60,0x66,0x6c,0x66,0xec,0x66,0xc0,0x7f,0x80,0x7f,0x80,0x1f,0xc0,0x3f,0xec,0x70,0x6c,0x60,0x60,0x60,0x60,0x60,0x6c,0x60,0xec,0x70,0xc0,0x3f,0x80,0x1f,0xe0,0x7f,0xf0,0x7f,0xb8,0x01,0x9e,0x01,0x9a,0x01,0x9a,0x01,0x9e,0x01,0xb8,0x01,0xf0,0x7f,0xe0,0x7f,0xe0,0x7f,0xf6,0x7f,0xba,0x01,0x9c,0x01,0x8e,0x01,0x8e,0x01,0x9c,0x01,0xba,0x01,0xf6,0x7f,0xe0,0x7f,0xe0,0x1f,0xf6,0x3f,0x36,0x70,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x36,0x70,0xf6,0x3f,0xe0,0x1f, diff --git a/radio/src/gtests.cpp b/radio/src/gtests.cpp index 2b8d8f2e8..fe6cb1a0a 100644 --- a/radio/src/gtests.cpp +++ b/radio/src/gtests.cpp @@ -295,8 +295,8 @@ TEST(FrSkySPORT, checkCrc) TEST(getSwitch, undefCSW) { MODEL_RESET(); - EXPECT_EQ(getSwitch(MAX_PSWITCH), false); - EXPECT_EQ(getSwitch(-MAX_PSWITCH), true); // no good answer there! + EXPECT_EQ(getSwitch(NUM_PSWITCH), false); + EXPECT_EQ(getSwitch(-NUM_PSWITCH), true); // no good answer there! } #endif diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index e6b7956ca..e422861fd 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -62,7 +62,7 @@ LanguagePack * languagePacks[] = { &itLanguagePack, &plLanguagePack, &ptLanguagePack, - &skLanguagePack, + &skLanguagePack, &seLanguagePack, NULL }; @@ -75,7 +75,7 @@ enum EnumTabDiag { e_Vers, e_Keys, e_Ana, - IF_PCBSKY9X(e_Hardware) + IF_CPUARM(e_Hardware) e_Calib }; @@ -95,7 +95,7 @@ const MenuFuncP_PROGMEM menuTabDiag[] PROGMEM = { menuGeneralVersion, menuGeneralDiagKeys, menuGeneralDiagAna, - IF_PCBSKY9X(menuGeneralHardware) + IF_CPUARM(menuGeneralHardware) menuGeneralCalib }; @@ -258,7 +258,7 @@ void menuGeneralSetup(uint8_t event) case ITEM_SETUP_TIME: lcd_putsLeft(y, STR_TIME); - lcd_putc(RADIO_SETUP_TIME_COLUMN-1, y, ':'); lcd_putc(RADIO_SETUP_TIME_COLUMN+3*FW-4, y, ':'); + lcd_putc(RADIO_SETUP_TIME_COLUMN+1, y, ':'); lcd_putc(RADIO_SETUP_TIME_COLUMN+3*FW-2, y, ':'); for (uint8_t j=0; j<3; j++) { uint8_t rowattr = (m_posHorz==j ? attr : 0); switch (j) { @@ -1065,13 +1065,14 @@ void menuGeneralDiagKeys(uint8_t event) lcd_puts(14*FW, 3*FH, STR_VTRIM); for(uint8_t i=0; i<9; i++) { - uint8_t y = i*FH; //+FH; #if !defined(PCBTARANIS) - if(i>(SW_ID0-SW_BASE)) y-=FH; //overwrite ID0 + uint8_t y = i*FH-FH; + if(i==(SW_ID0-SW_BASE)) continue; //ignore ID0 putsSwitches(8*FW, y, i+1, 0); //ohne off,on displayKeyState(11*FW+2, y, (EnumKeys)(SW_BASE+i)); -#endif - +#else + uint8_t y = i*FH; +#endif if (i<8) { y = i/2*FH+FH*4; lcd_img(14*FW, y, sticks, i/2, 0); @@ -1113,7 +1114,7 @@ void menuGeneralDiagAna(uint8_t event) uint8_t y = 1+FH+(i/2)*FH; uint8_t x = i&1 ? 64+5 : 0; putsStrIdx(x, y, PSTR("A"), i+1); - lcd_putc(x+2*FWNUM, y, ':'); + lcd_putc(lcdNextPos, y, ':'); lcd_outhex4(x+3*FW-1, y, anaIn(i)); lcd_outdez8(x+10*FW-1, y, (int16_t)calibratedStick[CONVERT_MODE(i)]*25/256); } @@ -1165,7 +1166,48 @@ void menuGeneralDiagAna(uint8_t event) #endif } -#if defined(PCBSKY9X) +#if defined(PCBTARANIS) +enum menuGeneralHwItems { + ITEM_SETUP_HW_POT1, + ITEM_SETUP_HW_POT2, + ITEM_SETUP_HW_UART3_MODE, + ITEM_SETUP_HW_MAX +}; + +#define HW_SETTINGS_COLUMN 15*FW + +void menuGeneralHardware(uint8_t event) +{ + MENU(STR_HARDWARE, menuTabDiag, e_Hardware, ITEM_SETUP_HW_MAX+1, {0}); + + uint8_t sub = m_posVert - 1; + + for (uint8_t i=0; i0) ? BLINK|INVERS : INVERS) : 0); + switch(i) { + case ITEM_SETUP_HW_POT1: + case ITEM_SETUP_HW_POT2: + { + int idx = i - ITEM_SETUP_HW_POT1; + uint8_t mask = (1<> idx, 0, 1, attr, event); + if (potType) + g_eeGeneral.potsType |= mask; + else + g_eeGeneral.potsType &= ~mask; + break; + } + + case ITEM_SETUP_HW_UART3_MODE: + g_eeGeneral.hw_uartMode = selectMenuItem(HW_SETTINGS_COLUMN, y, STR_UART3MODE, STR_UART3MODES, g_eeGeneral.hw_uartMode, 0, 2, attr, event); + break; + } + } + +} + +#elif defined(PCBSKY9X) enum menuGeneralHwItems { ITEM_SETUP_HW_OPTREX_DISPLAY, ITEM_SETUP_HW_STICKS_GAINS_LABELS, @@ -1238,19 +1280,48 @@ void menuGeneralHardware(uint8_t event) } #endif +#define XPOT_DELTA 5 void menuCommonCalib(uint8_t event) { - for (uint8_t i=0; i= NUM_STICKS && i < NUM_STICKS+NUM_POTS-2) { -#else - if (i >= NUM_STICKS) { -#endif + if (i >= POT1 && i <= POT_LAST) { reusableBuffer.calib.midVals[i] = (reusableBuffer.calib.hiVals[i] + reusableBuffer.calib.loVals[i]) / 2; +#if defined(PCBTARANIS) + uint8_t idx = i - POT1; + int count = reusableBuffer.calib.xpotsCalib[idx].stepsCount; + if (IS_MULTIPOS_POT(i) && count <= POTS_POS_COUNT) { + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == 0 || vt < reusableBuffer.calib.xpotsCalib[idx].lastPosition - XPOT_DELTA || vt > reusableBuffer.calib.xpotsCalib[idx].lastPosition + XPOT_DELTA) { + reusableBuffer.calib.xpotsCalib[idx].lastPosition = vt; + reusableBuffer.calib.xpotsCalib[idx].lastCount = 1; + } + else { + if (reusableBuffer.calib.xpotsCalib[idx].lastCount < 255) reusableBuffer.calib.xpotsCalib[idx].lastCount++; + } + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == 8/*80ms*/) { + int16_t position = reusableBuffer.calib.xpotsCalib[idx].lastPosition; + bool found = false; + for (int j=0; j= reusableBuffer.calib.xpotsCalib[idx].steps[j]-XPOT_DELTA && position <= reusableBuffer.calib.xpotsCalib[idx].steps[j]+XPOT_DELTA) { + found = true; + break; + } + } + if (!found) { + if (count < POTS_POS_COUNT) { + reusableBuffer.calib.xpotsCalib[idx].steps[count] = position; + } + else { + g_eeGeneral.potsType &= !(1<50) { - g_eeGeneral.calibMid[i] = reusableBuffer.calib.midVals[i]; + if (abs(reusableBuffer.calib.loVals[i]-reusableBuffer.calib.hiVals[i]) > 50) { + g_eeGeneral.calib[i].mid = reusableBuffer.calib.midVals[i]; int16_t v = reusableBuffer.calib.midVals[i] - reusableBuffer.calib.loVals[i]; - g_eeGeneral.calibSpanNeg[i] = v - v/STICK_TOLERANCE; + g_eeGeneral.calib[i].spanNeg = v - v/STICK_TOLERANCE; v = reusableBuffer.calib.hiVals[i] - reusableBuffer.calib.midVals[i]; - g_eeGeneral.calibSpanPos[i] = v - v/STICK_TOLERANCE; + g_eeGeneral.calib[i].spanPos = v - v/STICK_TOLERANCE; } } break; case 3: +#if defined(PCBTARANIS) + for (uint8_t i=POT1; i<=POT_LAST; i++) { + int idx = i - POT1; + int count = reusableBuffer.calib.xpotsCalib[idx].stepsCount; + if (IS_MULTIPOS_POT(i) && count > 1 && count <= POTS_POS_COUNT) { + for (int j=0; jcount = count - 1; + for (int j=0; jcount; j++) { + calib->steps[j] = (reusableBuffer.calib.xpotsCalib[idx].steps[j+1] + reusableBuffer.calib.xpotsCalib[idx].steps[j]) >> 5; + } + } + } +#endif g_eeGeneral.chkSum = evalChkSum(); eeDirty(EE_GENERAL); reusableBuffer.calib.state = 4; @@ -1316,8 +1413,22 @@ void menuCommonCalib(uint8_t event) } doMainScreenGraphics(); + #if defined(PCBTARANIS) drawPotsBars(); + for (int i=POT1; i<=POT_LAST; i++) { + uint8_t steps = 0; + if (reusableBuffer.calib.state == 2) { + steps = reusableBuffer.calib.xpotsCalib[i-POT1].stepsCount; + } + else if (IS_MULTIPOS_POT(i)) { + StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[i]; + steps = calib->count + 1; + } + if (steps > 0 && steps <= POTS_POS_COUNT) { + lcd_outdezAtt(LCD_W/2-2+(i-POT1)*5, LCD_H-6, steps, TINSIZE); + } + } #endif } diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 4b0fca4df..518239fa8 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -769,7 +769,12 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin lcd_putsLeft(y, STR_NAME); #endif - lcd_putsnAtt(x, y, name, size, ZCHAR | ((active && s_editMode <= 0) ? INVERS : 0)); + uint8_t mode = 0; + if (active) { + if (s_editMode <= 0) mode = INVERS+FIXEDWIDTH; + else mode = FIXEDWIDTH; + } + lcd_putsnAtt(x, y, name, size, ZCHAR | mode); if (active) { uint8_t cur = editNameCursorPos; @@ -832,7 +837,7 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin name[cur] = v; eeDirty(EE_MODEL); } - lcd_putcAtt(x+editNameCursorPos*FW, y, idx2char(v), INVERS); + lcd_putcAtt(x+editNameCursorPos*FW, y, idx2char(v), INVERS+FIXEDWIDTH); } else { cur = 0; @@ -1061,7 +1066,7 @@ void menuModelSetup(uint8_t event) div_t qr = div(timer->start, 60); switch (m_posHorz) { case 0: - CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(MAX_PSWITCH+NUM_CSW), TMR_VAROFS-1+2*(MAX_PSWITCH+NUM_CSW)); + CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(NUM_PSWITCH+NUM_CSW), TMR_VAROFS-1+2*(NUM_PSWITCH+NUM_CSW)); break; case 1: CHECK_INCDEC_MODELVAR_ZERO(event, qr.quot, 59); @@ -1113,7 +1118,7 @@ void menuModelSetup(uint8_t event) break; case ITEM_MODEL_TRIM_INC: - g_model.trimInc = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_TRIMINC, STR_VTRIMINC, g_model.trimInc, 0, 4, attr, event); + g_model.trimInc = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_TRIMINC, STR_VTRIMINC, g_model.trimInc, -2, 2, attr, event); break; case ITEM_MODEL_THROTTLE_REVERSED: @@ -1910,7 +1915,7 @@ void menuModelFlightModesAll(uint8_t event) } else { putsSwitches((5+LEN_FP_NAME)*FW+FW/2, y, p->swtch, attr); - if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -MAX_SWITCH, MAX_SWITCH); + if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -NUM_SWITCH, NUM_SWITCH); } break; @@ -2958,7 +2963,7 @@ void menuModelExpoOne(uint8_t event) { #if defined(PCBTARANIS) case EXPO_FIELD_INPUT_NAME: - editSingleName(EXPO_ONE_2ND_COLUMN, y, "Input Name", g_model.inputNames[ed->chn], sizeof(g_model.inputNames[ed->chn]), event, attr); + editSingleName(EXPO_ONE_2ND_COLUMN, y, STR_INPUTNAME, g_model.inputNames[ed->chn], sizeof(g_model.inputNames[ed->chn]), event, attr); break; #endif @@ -3384,8 +3389,8 @@ void displayHeaderChannelName(uint8_t ch) uint8_t len = zlen(g_model.limitData[ch-1].name, sizeof(g_model.limitData[ch-1].name)); if (len) { lcd_putc(17*FW, 0, ' '); - lcd_putsnAtt(18*FW, 0, g_model.limitData[ch-1].name, len, ZCHAR); - lcd_putc(18*FW+len*FW, 0, ' '); + lcd_putsnAtt(lcdNextPos, 0, g_model.limitData[ch-1].name, len, ZCHAR); + lcd_putc(lcdNextPos, 0, ' '); } } #endif @@ -3627,9 +3632,9 @@ void menuModelExpoMix(uint8_t expo, uint8_t event) if (mixCnt > 0) lcd_putsiAtt(FW, y, STR_VMLTPX2, md->mltpx, 0); - putsMixerSource(MIX_LINE_SRC_POS, y, md->srcRaw, isMixActive(i) ? BOLD : 0); + putsMixerSource(MIX_LINE_SRC_POS, y, md->srcRaw, 0); - gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr, event); + gvarWeightItem(MIX_LINE_WEIGHT_POS, y, md, attr | (isMixActive(i) ? BOLD : 0), event); #if LCD_W >= 212 displayFlightModes(EXPO_LINE_FM_POS, y, md->phases); @@ -3820,8 +3825,10 @@ enum LimitsItems { #define MIN_MAX_DISPLAY(x) CONVERT_US_MIN_MAX(x) #undef MIN_MAX_ATTR #define MIN_MAX_ATTR attr -#else +#elif defined(CPUARM) #define MIN_MAX_DISPLAY(x) (x) +#else + #define MIN_MAX_DISPLAY(x) ((int8_t)(x)) #endif #if defined(PCBTARANIS) @@ -4365,7 +4372,7 @@ void menuModelCustomSwitchOne(uint8_t event) case CSW_FIELD_ANDSW: lcd_putsLeft(y, STR_AND_SWITCH); putsSwitches(CSWONE_2ND_COLUMN, y, cs->andsw, attr); - if (attr) CHECK_INCDEC_MODELVAR(event, cs->andsw, -MAX_SWITCH, MAX_SWITCH); + if (attr) CHECK_INCDEC_MODELVAR(event, cs->andsw, -NUM_SWITCH, NUM_SWITCH); break; case CSW_FIELD_DURATION: lcd_putsLeft(y, STR_DURATION); @@ -5008,11 +5015,13 @@ void menuModelCustomFunctions(uint8_t event) break; case 3: - if (sd->swtch && (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM + if (sd->swtch && (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM || CFN_FUNC(sd) == FUNC_RESET #if defined(GVARS) + // TODO #define || CFN_FUNC(sd) >= FUNC_ADJUST_GV1 #endif #if defined(CPUARM) + // TODO #define || CFN_FUNC(sd) == FUNC_VOLUME #endif )) { @@ -5242,6 +5251,9 @@ enum menuModelTelemetryItems { #endif ITEM_TELEMETRY_USR_VOLTAGE_SOURCE, ITEM_TELEMETRY_USR_CURRENT_SOURCE, +#if defined(FAS_OFFSET) || !defined(CPUM64) + ITEM_TELEMETRY_FAS_OFFSET, +#endif #if defined(CPUARM) ITEM_TELEMTETRY_PERSISTENT_MAH, #endif @@ -5322,9 +5334,15 @@ enum menuModelTelemetryItems { #define VARIO_RANGE_ROWS 3 #endif +#if defined(FAS_OFFSET) || !defined(CPUM64) + #define IF_FAS_OFFSET(x) x, +#else + #define IF_FAS_OFFSET(x) +#endif + void menuModelTelemetry(uint8_t event) { - MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, CHANNEL_ROWS CHANNEL_ROWS RSSI_ROWS USRDATA_LINES 0, 0, IF_CPUARM(0) IF_VARIO(LABEL(Vario)) IF_VARIO(0) IF_VARIO(VARIO_RANGE_ROWS) CASE_PCBTARANIS(LABEL(TopBar)) CASE_PCBTARANIS(0) SCREEN_TYPE_ROWS, 2, 2, 2, 2, SCREEN_TYPE_ROWS, 2, 2, 2, 2, IF_CPUARM(SCREEN_TYPE_ROWS) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) }); + MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, CHANNEL_ROWS CHANNEL_ROWS RSSI_ROWS USRDATA_LINES 0, 0, IF_FAS_OFFSET(0) IF_CPUARM(0) IF_VARIO(LABEL(Vario)) IF_VARIO(0) IF_VARIO(VARIO_RANGE_ROWS) CASE_PCBTARANIS(LABEL(TopBar)) CASE_PCBTARANIS(0) SCREEN_TYPE_ROWS, 2, 2, 2, 2, SCREEN_TYPE_ROWS, 2, 2, 2, 2, IF_CPUARM(SCREEN_TYPE_ROWS) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) }); uint8_t sub = m_posVert - 1; @@ -5478,8 +5496,12 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_USR_BLADES: lcd_putsLeft(y, STR_BLADES); - lcd_outdezAtt(TELEM_COL2+FWNUM, y, 2+g_model.frsky.blades, attr); - if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.blades, 3); + lcd_outdezAtt(TELEM_COL2+FWNUM, y, 1+g_model.frsky.blades, attr); +#if defined(CPUARM) + if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.blades, MIN_BLADES, MAX_BLADES); +#else + if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.blades, MAX_BLADES); +#endif break; #endif @@ -5494,6 +5516,16 @@ void menuModelTelemetry(uint8_t event) lcd_putsiAtt(TELEM_COL2, y, STR_VOLTSRC, g_model.frsky.currentSource, attr); if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.currentSource, 3); break; + +#if defined(FAS_OFFSET) || !defined(CPUM64) + case ITEM_TELEMETRY_FAS_OFFSET: + lcd_putsLeft(y, STR_FAS_OFFSET); + lcd_outdezAtt(TELEM_COL2, y, g_model.frsky.fasOffset, attr|LEFT|PREC1); + lcd_outdezAtt(TELEM_COL2+6*FW, y, frskyData.hub.current, LEFT|PREC1); + lcd_putc(TELEM_COL2+8*FW, y, 'A'); + if (attr) g_model.frsky.fasOffset = checkIncDec(event, g_model.frsky.fasOffset, -15, 15, EE_MODEL); + break; +#endif #if defined(CPUARM) case ITEM_TELEMTETRY_PERSISTENT_MAH: @@ -5625,18 +5657,14 @@ void menuModelTelemetry(uint8_t event) lineIndex = k-ITEM_TELEMETRY_SCREEN_LINE5; } -#if 0 - putsStrIdx(0, y, PSTR(INDENT"Line"), lineIndex+1, m_posHorz<0 ? attr : 0); -#endif - #if defined(GAUGES) if (IS_BARS_SCREEN(screenIndex)) { FrSkyBarData & bar = g_model.frsky.screens[screenIndex].bars[lineIndex]; uint8_t barSource = bar.source; lcd_putsiAtt(TELEM_COL1, y, STR_VTELEMCHNS, barSource, m_posHorz==0 ? attr : 0); if (barSource) { - putsTelemetryChannel(TELEM_BARS_COLMIN, y, barSource-1, convertTelemValue(barSource, bar.barMin), (m_posHorz==1 ? attr : 0) | LEFT); - putsTelemetryChannel(TELEM_BARS_COLMAX, y, barSource-1, convertTelemValue(barSource, 255-bar.barMax), (m_posHorz==2 ? attr : 0) | LEFT); + putsTelemetryChannel(TELEM_BARS_COLMIN, y, barSource-1, convertBarTelemValue(barSource, bar.barMin), (m_posHorz==1 ? attr : 0) | LEFT); + putsTelemetryChannel(TELEM_BARS_COLMAX, y, barSource-1, convertBarTelemValue(barSource, 255-bar.barMax), (m_posHorz==2 ? attr : 0) | LEFT); } else if (attr) { MOVE_CURSOR_FROM_HERE(); @@ -5647,14 +5675,14 @@ void menuModelTelemetry(uint8_t event) bar.source = checkIncDecModel(event, barSource, 0, TELEM_DISPLAY_MAX); if (checkIncDec_Ret) { bar.barMin = 0; - bar.barMax = 255-maxTelemValue(bar.source); + bar.barMax = 255 - maxBarTelemValue(bar.source); } break; case 1: bar.barMin = checkIncDec(event, bar.barMin, 0, 254-bar.barMax, EE_MODEL|NO_INCDEC_MARKS); break; case 2: - bar.barMax = 255 - checkIncDec(event, 255-bar.barMax, bar.barMin+1, maxTelemValue(barSource), EE_MODEL|NO_INCDEC_MARKS); + bar.barMax = 255 - checkIncDec(event, 255-bar.barMax, bar.barMin+1, maxBarTelemValue(barSource), EE_MODEL|NO_INCDEC_MARKS); break; } } diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 5580a998d..9277f05b3 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -232,13 +232,13 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui if (event == EVT_KEY_LONG(KEY_ENTER) && i_max > SWSRC_ON) { s_editMode = !s_editMode; if (newval > SWSRC_ON) - newval -= (MAX_SWITCH+1); + newval -= (NUM_SWITCH+1); else if (newval > 0) - newval += (MAX_SWITCH+1); + newval += (NUM_SWITCH+1); else if (newval < SWSRC_OFF) - newval += (MAX_SWITCH+1); + newval += (NUM_SWITCH+1); else if (newval < 0) - newval -= (MAX_SWITCH+1); + newval -= (NUM_SWITCH+1); } } #endif @@ -976,7 +976,7 @@ int8_t switchMenuItem(uint8_t x, uint8_t y, int8_t value, LcdFlags attr, uint8_t { lcd_putsColumnLeft(x, y, STR_SWITCH); putsSwitches(x, y, value, attr); - if (attr) CHECK_INCDEC_MODELSWITCH(event, value, -MAX_SWITCH, MAX_SWITCH); + if (attr) CHECK_INCDEC_MODELSWITCH(event, value, -NUM_SWITCH, NUM_SWITCH); return value; } @@ -1263,7 +1263,20 @@ bool isSwitchAvailable(int16_t swtch) swtch = -swtch; } - if (swtch>=SWSRC_FIRST_CSW && swtch<=SWSRC_LAST_CSW) { +#if defined(PCBTARANIS) + if (swtch >= SWSRC_P11 && swtch <= SWSRC_P26) { + int index = (swtch - SWSRC_P11) / POTS_POS_COUNT; + if (g_eeGeneral.potsType & (1<count >= ((swtch - SWSRC_P11) % POTS_POS_COUNT)); + } + else { + return false; + } + } +#endif + + if (swtch >= SWSRC_FIRST_CSW && swtch <= SWSRC_LAST_CSW) { CustomSwData * cs = cswAddress(swtch-SWSRC_FIRST_CSW); return (cs->func != CS_OFF); } diff --git a/radio/src/gui/view_main.cpp b/radio/src/gui/view_main.cpp index 51465631d..93c6e0dfa 100644 --- a/radio/src/gui/view_main.cpp +++ b/radio/src/gui/view_main.cpp @@ -120,9 +120,9 @@ void drawPotsBars() { // Optimization by Mike Blandford - uint8_t x, y, len ; // declare temporary variables - for (x=LCD_W/2-5, y=NUM_STICKS; y=0; i--) { FrSkyBarData & bar = screen.bars[i]; uint8_t source = bar.source; - getvalue_t barMin = convertTelemValue(source, bar.barMin); - getvalue_t barMax = convertTelemValue(source, 255-bar.barMax); + getvalue_t barMin = convertBarTelemValue(source, bar.barMin); + getvalue_t barMax = convertBarTelemValue(source, 255-bar.barMax); if (source && barMax > barMin) { uint8_t y = barHeight+6+i*(barHeight+6); lcd_putsiAtt(0, y+barHeight-5, STR_VTELEMCHNS, source, 0); @@ -234,7 +234,7 @@ void menuTelemetryFrsky(uint8_t event) threshold = g_model.frsky.channels[source-TELEM_A1].alarms_value[0]; #if defined(FRSKY_HUB) else - threshold = convertTelemValue(source, barsThresholds[source-TELEM_ALT]); + threshold = convertBarTelemValue(source, barsThresholds[source-TELEM_ALT]); #endif if (threshold) { diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index b8702878d..e1de61641 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -85,17 +85,21 @@ void lcd_img(xcoord_t x, uint8_t y, const pm_uchar * img, uint8_t idx, LcdFlags } uint8_t lcdLastPos; +uint8_t lcdNextPos; void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, LcdFlags flags) { uint8_t *p = &displayBuf[ y / 8 * LCD_W + x ]; #if defined(CPUARM) - const pm_uchar *q = (c < 0xC0) ? &font_5x7[(c-0x20)*5+4] : &font_5x7_extra[(c-0xC0)*5+4]; + const pm_uchar *q = (c < 0xC0) ? &font_5x7[(c-0x20)*5] : &font_5x7_extra[(c-0xC0)*5]; #else - const pm_uchar *q = &font_5x7[(c-0x20)*5+4]; + const pm_uchar *q = &font_5x7[(c-0x20)*5]; #endif + lcdNextPos = x-1; + p--; + bool inv = false; if (flags & BLINK) { if (BLINK_ON_PHASE) { @@ -109,10 +113,14 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, LcdFlags flags) inv = true; } + unsigned char c_remapped = 0; +#if defined(BOLD_FONT) && !defined(CPUM64) || defined(EXTSTD) + if (flags & (DBLSIZE+BOLD)) { +#else if (flags & DBLSIZE) { - // To save space only some DBLSIZE chars are available +#endif + // To save space only some DBLSIZE and BOLD chars are available // c has to be remapped. All non existing chars mapped to 0 (space) - unsigned char c_remapped; if (c>=',' && c<=':') c_remapped = c - ',' + 1; @@ -122,23 +130,37 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, LcdFlags flags) c_remapped = c - 'a' + 42; else if (c=='_') c_remapped = 4; -#if defined(CPUARM) - else if (c>= 128 ) +#if defined(BOLD_FONT) && !defined(CPUM64) || defined(EXTSTD) + else if (c!=' ') + flags &= ~BOLD; +#endif +#if defined(CPUARM) + else if ((c>= 128) && (flags & DBLSIZE)) c_remapped = c - 60; -#endif - else - c_remapped = 0; +#endif + +#if defined(BOLD_FONT) && !defined(CPUM64) || defined(EXTSTD) + } + if (flags & DBLSIZE) { +#endif /* each letter consists of ten top bytes followed by * by ten bottom bytes (20 bytes per * char) */ q = &font_10x14[((uint16_t)c_remapped)*20]; - for (int8_t i=11; i>=0; i--) { - if ((flags & CONDENSED) && i<=1) break; + for (int8_t i=0; i<=11; i++) { uint8_t b1=0, b2=0; - if (i>1) { - b1 = pgm_read_byte(q++); /*top byte*/ - b2 = pgm_read_byte(q++); /*top byte*/ + if (!i) { + if (!x || !inv) { + lcdNextPos++; + p++; + continue; + } } + else if (i <= 10) { + b1 = pgm_read_byte(q++); /*top byte*/ + b2 = pgm_read_byte(q++); + } + if ((b1 & b2) == 0xff) continue; if (inv) { b1 = ~b1; b2 = ~b2; @@ -149,21 +171,30 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, LcdFlags flags) LCD_BYTE_FILTER(p, 0, b1); LCD_BYTE_FILTER(p+LCD_W, 0, b2); p++; + lcdNextPos++; } } } + #if defined(CPUARM) else if (flags & MIDSIZE) { /* each letter consists of ten top bytes followed by * by ten bottom bytes (20 bytes per * char) */ q = &font_8x10[((uint16_t)c-0x20)*16]; - for (int8_t i=9; i>=0; i--) { + for (int8_t i=0; i<=9; i++) { uint8_t b1=0, b2=0; - if ((flags & CONDENSED) && i<=1) break; - if (i!=0 && i!=9) { - b1 = pgm_read_byte(q++); /*top byte*/ - b2 = pgm_read_byte(q++); /*top byte*/ + if (!i) { + if (!x || !inv) { + lcdNextPos++; + p++; + continue; + } } + if (i <= 8) { + b1 = pgm_read_byte(q++); /*top byte*/ + b2 = pgm_read_byte(q++); + } + if ((b1 == 0xff) && (b2 == 0x0f)) continue; if (inv) { b1 = ~b1; b2 = ~b2; @@ -183,15 +214,24 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, LcdFlags flags) } } p++; + lcdNextPos++; } } } else if (flags & SMLSIZE) { - q = (c < 0xC0) ? &font_4x6[(c-0x20)*5+4] : &font_4x6_extra[(c-0xC0)*5+4]; + q = (c < 0xC0) ? &font_4x6[(c-0x20)*5] : &font_4x6_extra[(c-0xC0)*5]; uint8_t ym8 = (y & 0x07); - p += 4; - for (int8_t i=4; i>=0; i--) { - uint8_t b = pgm_read_byte(q--); + for (int8_t i=0; i<=6; i++) { + uint8_t b = 0; + if (!i) { + if (!x || !inv) { + lcdNextPos++; + p++; + continue; + } + } + else if (i <= 5) b = pgm_read_byte(q++); + if (b == 0x7f) continue; if (inv) b = ~b & 0x7f; if (p> (8-ym8)), b >> (8-ym8)); } } - p--; + p++; + lcdNextPos++; } } else if (flags & TINSIZE) { - q = &font_3x5[((uint16_t)c-0x2D)*3+2]; + q = &font_3x5[((uint16_t)c-0x2D)*3]; uint8_t ym8 = (y & 0x07); - p += 3; - for (int8_t i=3; i>=0; i--) { - uint8_t b = (i!=3 ? pgm_read_byte(q--) : 0); + for (int8_t i=0; i<=4; i++) { + uint8_t b = 0; + if (!i) { + if (!x || !inv) { + lcdNextPos++; + p++; + continue; + } + } + else if (i <= 3) b= pgm_read_byte(q++); if (inv) b = ~b & 0x3f; if (p> (8-ym8)), b >> (8-ym8)); } } - p--; + p++; + lcdNextPos++; } } #endif else { - uint8_t condense=0; - - if (flags & CONDENSED) { - *p = inv ? ~0 : 0; - condense=1; - } - uint8_t ym8 = (y & 0x07); - p += 5; - for (uint8_t i=6, b=0; i>0; i--, b=pgm_read_byte(q--)) { +#if defined(BOLD_FONT) && defined(CPUM64) && !defined(EXTSTD) + uint8_t bb = 0; + if (inv) bb = 0xff; +#else + if (flags & BOLD) { + q = &font_5x7_B[(c_remapped)*5]; + } +#endif + for (int8_t i=0; i<=6; i++) { + uint8_t b = 0; + if (i==0) { + if ( !x || !inv ) { + lcdNextPos++; + p++; + continue; + } + } + else if (i <= 5) { + b = pgm_read_byte(q++); + } + if (b == 0xff) { + if (flags & FIXEDWIDTH) + b = 0; + else + continue; + } if (inv) b = ~b; - - if (condense && i==2) { - /*condense the letter by skipping column 4 */ + if ((flags & CONDENSED) && i==2) { + /*condense the letter by skipping column 3 */ continue; } +#if defined(BOLD_FONT) && defined(CPUM64) && !defined(EXTSTD) + if (flags & BOLD) { + uint8_t a; + if (inv) + a = b & bb; + else + a = b | bb; + bb = b; + b = a; + } +#endif + if (p> (8-ym8)), b >> (8-ym8)); + LCD_BYTE_FILTER(r, ~mask, b >> (8-ym8)); } -#if defined(BOLD_FONT) - if (flags & BOLD) { - ASSERT_IN_DISPLAY(p+1); - if (inv) - LCD_BYTE_FILTER(p+1, b << ym8, 0); - else - LCD_BYTE_FILTER(p+1, 0xff, b << ym8); -#if defined(CPUARM) - if (ym8) { - uint8_t *r = p+1 + LCD_W; - if (r> (8-ym8), 0); - else - LCD_BYTE_FILTER(r, 0xff, b >> (8-ym8)); - } - } -#endif + +#if defined(PCBTARANIS) + if (inv) { + if (ym8) lcd_mask(p, 0x01 << (ym8-1), FORCE); + else if (y) { + ASSERT_IN_DISPLAY(p - LCD_W); + lcd_mask(p - LCD_W, 0x80, FORCE); + } } +#else + if (inv && (ym8 == 1)) *p |= 0x01; #endif } - p--; + p++; + lcdNextPos++; } } } @@ -288,6 +360,10 @@ void lcd_putsiAtt(xcoord_t x, uint8_t y,const pm_char * s,uint8_t idx, LcdFlags void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlags mode) { +#if defined(CPUARM) + xcoord_t orig_x = x; +#endif + bool setx = false; while(len!=0) { unsigned char c; switch (mode & (BSS+ZCHAR)) { @@ -301,29 +377,41 @@ void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlag c = pgm_read_byte(s); break; } - if (!c || x>LCD_W-6) break; - if (c >= 0x20) { -#if defined(CPUARM) - if ((mode & MIDSIZE) && ((c>='a'&&c<='z')||(c>='0'&&c<='9'))) { - lcd_putcAtt(x, y, c, mode); - x-=1; - } - else -#endif - lcd_putcAtt(x, y, c, mode); - x += FW; - if (c == '|') x -= 4; - if (mode&DBLSIZE) x += FW-1; - else if (mode&MIDSIZE) x += FW-3; - else if (mode&SMLSIZE) x -= 1; + + if (setx) { + x = c; + setx = false; } + else if (!c || x>LCD_W-6) break; + else if (c >= 0x20) { + lcd_putcAtt(x, y, c, mode); + x = lcdNextPos; + } + else if (setx) { + x = c; + setx = false; + } + else if (c == 0x1F) { //X-coord prefix + setx = true; + } +#if defined(CPUARM) + else if (c == 0x1E) { //NEWLINE + x = orig_x; + y += FH; + if (mode & DBLSIZE) y += FH; + else if (mode & MIDSIZE) y += 4; + else if (mode & SMLSIZE) y--; + if (y >= LCD_H) break; + } +#endif else { - x += (c*FW/2); + x += (c*FW/2); //EXTENDED SPACE } s++; len--; } lcdLastPos = x; + lcdNextPos = x; #if defined(CPUARM) if (mode&MIDSIZE) lcdLastPos += 1; @@ -352,7 +440,7 @@ void lcd_putsLeft(uint8_t y, const pm_char * s) void lcd_outhex4(xcoord_t x, uint8_t y, uint16_t val) { - x+=FWNUM*4; + x+=FWNUM*4+1; for(int i=0; i<4; i++) { x-=FWNUM; @@ -377,6 +465,7 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t { uint8_t fw = FWNUM; int8_t mode = MODE(flags); + flags &= ~LEADING0; bool dblsize = flags & DBLSIZE; #if defined(CPUARM) bool midsize = flags & MIDSIZE; @@ -408,22 +497,24 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t len = mode + 1; } + if (dblsize) { fw += FWNUM; } else if (midsize) { - flags |= CONDENSED; fw += FWNUM-3; } else if (tinsize) { fw -= 1; - x += 1; } else { if (flags & LEFT) { if (mode > 0) x += 2; } +#if defined(BOLD_FONT) && !defined(CPUM64) || defined(EXTSTD) + if (flags & BOLD) fw += 1; +#endif } if (flags & LEFT) { @@ -433,7 +524,8 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t } lcdLastPos = x; - x -= fw + 1; + x -= fw; + if (dblsize) x++; for (uint8_t i=1; i<=len; i++) { div_t qr = div((uint16_t)val, 10); @@ -441,7 +533,7 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t LcdFlags f = flags; #if !defined(PCBTARANIS) if (dblsize) { - if (c=='1' && i==len && xn>x+10) { x+=2; f|=CONDENSED; } + if (c=='1' && i==len && xn>x+10) { x+=1; } if ((uint16_t)val >= 1000) { x+=FWNUM; f&=~DBLSIZE; } } #endif @@ -449,7 +541,7 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t if (mode==i) { flags &= ~PREC2; // TODO not needed but removes 20bytes, could be improved for sure, check asm if (dblsize) { - xn = x; + xn = x - 2; if (c>='1' && c<='3') ln++; uint8_t tn = (qr.quot) % 10; if (tn==2 || tn==4) { @@ -471,12 +563,8 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t x--; } else { - x--; - lcd_plot(x, y+6); - if ((flags&INVERS) && ((~flags & BLINK) || BLINK_ON_PHASE)) { - lcd_vline(x, y, 8); - } - x--; + x -= 2; + lcd_putcAtt(x, y, '.', f); } } #if !defined(PCBTARANIS) @@ -484,6 +572,9 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t #endif val = qr.quot; x-=fw; +#if defined(BOLD_FONT) && !defined(CPUM64) || defined(EXTSTD) + if (i==len && (flags & BOLD)) x += 1; +#endif } if (xn) { @@ -501,7 +592,6 @@ void lcd_outdezNAtt(xcoord_t x, uint8_t y, lcdint_t val, LcdFlags flags, uint8_t lcd_hline(xn, y+2*FH-2, ln); } } - if (neg) lcd_putcAtt(x, y, '-', flags); } @@ -772,15 +862,15 @@ void lcdDrawTelemetryTopBar() { putsModelName(0, 0, g_model.header.name, g_eeGeneral.currModel, 0); uint8_t att = (g_vbat100mV < g_eeGeneral.vBatWarn ? BLINK : 0); - putsVBat(16*FW+2,0,att); + putsVBat(16*FW+1,0,att); if (g_model.timers[0].mode) { att = (timersStates[0].val<0 ? BLINK : 0); - putsTime(22*FW+5*FWNUM+1, 0, timersStates[0].val, att, att); + putsTime(22*FW+5*FWNUM+3, 0, timersStates[0].val, att, att); lcd_putsiAtt(18*FW+2, 1, STR_VTELEMCHNS, TELEM_TM1, SMLSIZE); } if (g_model.timers[1].mode) { att = (timersStates[1].val<0 ? BLINK : 0); - putsTime(31*FW+5*FWNUM+1, 0, timersStates[1].val, att, att); + putsTime(31*FW+5*FWNUM+3, 0, timersStates[1].val, att, att); lcd_putsiAtt(27*FW+2, 1, STR_VTELEMCHNS, TELEM_TM2, SMLSIZE); } lcd_invert_line(0); @@ -813,21 +903,21 @@ void putsTime(xcoord_t x, uint8_t y, putstime_t tme, LcdFlags att, LcdFlags att2 } if (tme < 0) { - lcd_putcAtt(x - ((att & DBLSIZE) ? FW+3 : ((att & MIDSIZE) ? FW+1 : FWNUM)), y, '-', att); + lcd_putcAtt(x - ((att & DBLSIZE) ? FW+2 : ((att & MIDSIZE) ? FW+0 : FWNUM)), y, '-', att); tme = -tme; } qr = div(tme, 60); #if defined(PCBTARANIS) +#define separator ':' if (att & MIDSIZE) { div_t qr2 = div(qr.quot, 60); - LCD_2DOTS(x+2*8-6, y, att); lcd_outdezNAtt(x, y, qr2.quot, att|LEADING0|LEFT, 2); + lcd_putcAtt(lcdLastPos, y, separator, att&att2); qr.quot = qr2.rem; x += 2*8+1; } -#define separator ':' #elif defined(CPUARM) char separator = ':'; if (tme >= 3600 && (~att & DBLSIZE)) { @@ -837,30 +927,9 @@ void putsTime(xcoord_t x, uint8_t y, putstime_t tme, LcdFlags att, LcdFlags att2 #else #define separator ':' #endif - - uint8_t x2, x3; - if (att & DBLSIZE) { - x2 = x+2*(FW+FWNUM)-3; - x3 = x+2*(FW+FWNUM)+FW-2; - } - else if (att & MIDSIZE) { - x2 = x+2*8-6; - x3 = x+2*8+1; - } - else { - x2 = x+2*FWNUM-1; - x3 = x+2*FWNUM-1+FW; - } - -#if defined(CPUARM) - if (att & MIDSIZE) { - LCD_2DOTS(x2, y, att); - } - else -#endif - lcd_putcAtt(x2, y, separator, att&att2); lcd_outdezNAtt(x, y, qr.quot, att|LEADING0|LEFT, 2); - lcd_outdezNAtt(x3, y, qr.rem, att2|LEADING0|LEFT, 2); + lcd_putcAtt(lcdLastPos, y, separator, att&att2); + lcd_outdezNAtt(lcdNextPos, y, qr.rem, att2|LEADING0|LEFT, 2); } // TODO to be optimized with putsTelemetryValue @@ -877,22 +946,8 @@ void putsVBat(xcoord_t x, uint8_t y, LcdFlags att) void putsStrIdx(xcoord_t x, uint8_t y, const pm_char *str, uint8_t idx, LcdFlags att) { - lcd_putsAtt(x, y, str, att); - - if (att & SMLSIZE) - lcd_outdezNAtt(lcdLastPos+1, y, idx, att|LEFT, 2); - else - lcd_outdezNAtt(lcdLastPos, y, idx, att|LEFT, 2); - -#if defined(CPUARM) - uint8_t lastPos = lcdLastPos; -#endif - - lcd_putsAtt(x, y, str, att); - -#if defined(CPUARM) - lcdLastPos = lastPos; -#endif + lcd_putsAtt(x, y, str, att & ~LEADING0); + lcd_outdezNAtt(lcdNextPos, y, idx, att|LEFT, 2); } void putsMixerSource(xcoord_t x, uint8_t y, uint8_t idx, LcdFlags att) @@ -902,7 +957,7 @@ void putsMixerSource(xcoord_t x, uint8_t y, uint8_t idx, LcdFlags att) lcd_putsiAtt(x, y, STR_VSRCRAW, 0, att); } else if (idx <= MIXSRC_LAST_INPUT) { - lcd_putcAtt(x+2, y+1, 'I', TINSIZE); + lcd_putcAtt(x+2, y+1, CHR_INPUT, TINSIZE); lcd_filled_rect(x, y, 7, 7); if (ZEXIST(g_model.inputNames[idx-MIXSRC_FIRST_INPUT])) lcd_putsnAtt(x+8, y, g_model.inputNames[idx-MIXSRC_FIRST_INPUT], 4, ZCHAR|att); @@ -993,32 +1048,35 @@ void putsSwitches(xcoord_t x, uint8_t y, int8_t idx, LcdFlags att) else if (idx >= SWSRC_FIRST_ROTENC_SWITCH) { idx -= SWSRC_FIRST_ROTENC_SWITCH; char suffix = (idx & 1) ? CHR_LONG : CHR_SHORT; - lcd_putcAtt(x+3*FW, y, suffix, att); - return lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); + lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); + return lcd_putcAtt(lcdLastPos, y, suffix, att); } #endif #if !defined(PCBSTD) else if (idx >= SWSRC_TRAINER_SHORT) { idx -= SWSRC_TRAINER_SHORT; - lcd_putcAtt(x+3*FW, y, (idx & 1) ? CHR_LONG : CHR_SHORT, att); + char suffix = (idx & 1) ? CHR_LONG : CHR_SHORT; #if ROTARY_ENCODERS > 0 if (idx >= 2) { idx -= 2; - return lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); + lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); } else #endif { - return lcd_putsiAtt(x, y, STR_VSWITCHES, SWSRC_TRAINER-1, att); + lcd_putsiAtt(x, y, STR_VSWITCHES, SWSRC_TRAINER-1, att); } + return lcd_putcAtt(lcdLastPos, y, suffix, att); } #endif if (idx > SWSRC_ON) { idx -= SWSRC_ON; - char suffix = CHR_TOGGLE; - if (idx != SWSRC_ON && (~att & STRCONDENSED)) lcd_putcAtt(x+3*FW, y, suffix, att); + if (idx != SWSRC_ON && (~att & STRCONDENSED)) { + lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); + return lcd_putcAtt(lcdLastPos, y, CHR_TOGGLE, att); + } } lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); } @@ -1097,7 +1155,7 @@ void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att) return; } - if (mode >= TMR_VAROFS+MAX_PSWITCH+NUM_CSW) { + if (mode >= TMR_VAROFS+NUM_PSWITCH+NUM_CSW) { mode++; } diff --git a/radio/src/lcd.h b/radio/src/lcd.h index 52a9ae8ce..223901be7 100644 --- a/radio/src/lcd.h +++ b/radio/src/lcd.h @@ -78,12 +78,12 @@ /* lcd putc flags */ #define CONDENSED 0x08 - +#define FIXEDWIDTH 0x10 /* lcd puts flags */ /* no 0x80 here because of "GV"1 which is aligned LEFT */ /* no 0x10 here because of "MODEL"01 which uses LEADING0 */ #define BSS 0x20 -#define STRCONDENSED 0x40 /* means that THRm will be displayed as THR */ +#define STRCONDENSED 0x80 /* means that THRm will be displayed as THR */ #define ZCHAR 0x80 /* lcd outdez flags */ @@ -139,6 +139,7 @@ extern uint8_t displayBuf[DISPLAY_BUF_SIZE]; extern uint8_t lcdLastPos; +extern uint8_t lcdNextPos; #if defined(PCBSTD) && defined(VOICE) extern volatile uint8_t LcdLock ; @@ -198,6 +199,7 @@ void putsTime(xcoord_t x, uint8_t y, putstime_t tme, LcdFlags att, LcdFlags att2 #define DOTTED 0x55 void lcd_plot(xcoord_t x, uint8_t y, LcdFlags att=0); +void lcd_mask(uint8_t *p, uint8_t mask, LcdFlags att=0); void lcd_hline(xcoord_t x, uint8_t y, xcoord_t w, LcdFlags att=0); void lcd_hlineStip(xcoord_t x, uint8_t y, xcoord_t w, uint8_t pat, LcdFlags att=0); void lcd_vline(xcoord_t x, int8_t y, int8_t h); @@ -226,14 +228,14 @@ void lcdDrawTelemetryTopBar(); lcd_vline(xx-1,yy-ll,ll); \ lcd_vline(xx ,yy-ll,ll); \ lcd_vline(xx+1,yy-ll,ll); - +/* #define LCD_2DOTS(x, y, att) \ lcd_putcAtt(x, y, ' ', att); \ lcd_vline(x+4, y+3, 2); \ lcd_vline(x+5, y+3, 2); \ lcd_vline(x+4, y+8, 2); \ lcd_vline(x+5, y+8, 2); - +*/ void lcd_img(xcoord_t x, uint8_t y, const pm_uchar * img, uint8_t idx, LcdFlags att=0); void lcd_bmp(xcoord_t x, uint8_t y, const pm_uchar * img, uint8_t offset=0, uint8_t width=0); #define LCD_ICON(x, y, icon) lcd_bmp(x, y, icons, icon) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 09282d605..7ec2e1856 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -221,7 +221,7 @@ enum BeeperMode { }; #if defined(CPUARM) - #define EXTRA_GENERAL_FIELDS \ + #define EXTRA_GENERAL_FIELDS_ARM \ uint8_t backlightBright; \ int8_t currentCalib; \ int8_t temperatureWarn; \ @@ -240,6 +240,15 @@ enum BeeperMode { int8_t wavVolume; \ int8_t varioVolume; \ int8_t backgroundVolume; +#endif + +#if defined(PCBTARANIS) +#define EXTRA_GENERAL_FIELDS \ + EXTRA_GENERAL_FIELDS_ARM \ + uint8_t hw_uartMode; \ + uint8_t potsType; +#elif defined(CPUARM) + #define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM #elif defined(PXX) #define EXTRA_GENERAL_FIELDS uint8_t countryCode; #else @@ -303,13 +312,25 @@ enum BacklightMode { #define SPLASH_MODE uint8_t splashMode:1; uint8_t spare4:2 #endif +#if defined(PCBTARANIS) +#define POTS_POS_COUNT 6 +PACK(typedef struct { + uint8_t count; + uint8_t steps[POTS_POS_COUNT-1]; +}) StepsCalibData; +#endif + +PACK(typedef struct { + int16_t mid; + int16_t spanNeg; + int16_t spanPos; +}) CalibData; + #define ALTERNATE_VIEW 0x10 PACK(typedef struct t_EEGeneral { uint8_t version; uint16_t variant; - int16_t calibMid[NUM_STICKS+NUM_POTS]; - int16_t calibSpanNeg[NUM_STICKS+NUM_POTS]; - int16_t calibSpanPos[NUM_STICKS+NUM_POTS]; + CalibData calib[NUM_STICKS+NUM_POTS]; uint16_t chkSum; int8_t currModel; uint8_t contrast; @@ -639,7 +660,7 @@ PACK( union u_int8int16_t { #if defined(CPUARM) #define MAX_CSW_DURATION 120 /*60s*/ #define MAX_CSW_DELAY 120 /*60s*/ -#define MAX_CSW_ANDSW MAX_SWITCH +#define MAX_CSW_ANDSW NUM_SWITCH typedef int16_t csw_telemetry_value_t; PACK(typedef struct t_CustomSwData { // Custom Switches data int16_t v1; @@ -976,7 +997,7 @@ PACK(typedef struct t_FrSkyData { uint8_t usrProto; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh, 3=Halcyon uint8_t voltsSource:7; uint8_t altitudeDisplayed:1; - uint8_t blades; // How many blades for RPMs, 0=2 blades, 1=3 blades + int8_t blades; // How many blades for RPMs, 0=2 blades uint8_t currentSource; uint8_t screensType; FrSkyScreenData screens[MAX_FRSKY_SCREENS]; @@ -990,12 +1011,14 @@ PACK(typedef struct t_FrSkyData { uint16_t storedMah:15; int8_t fasOffset; }) FrSkyData; +#define MIN_BLADES -1 // 1 blade +#define MAX_BLADES 3 // 5 blades #else #define MAX_FRSKY_SCREENS 2 PACK(typedef struct t_FrSkyData { FrSkyChannelData channels[2]; uint8_t usrProto:2; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh, 3=Halcyon - uint8_t blades:2; // How many blades for RPMs, 0=2 blades, 1=3 blades + uint8_t blades:2; // How many blades for RPMs, 0=2 blades uint8_t screensType:2; uint8_t voltsSource:2; int8_t varioMin:4; @@ -1008,6 +1031,8 @@ PACK(typedef struct t_FrSkyData { int8_t varioCenterMax:5; int8_t fasOffset; }) FrSkyData; +#define MIN_BLADES 0 // 2 blades +#define MAX_BLADES 3 // 5 blades #endif #if defined(MAVLINK) @@ -1138,6 +1163,8 @@ enum SwitchSources { #endif SWSRC_FIRST_CSW, + SWSRC_LAST_SWITCH = SWSRC_FIRST_CSW-1, + SWSRC_SW1 = SWSRC_FIRST_CSW, SWSRC_SW2, SWSRC_SW3, @@ -1152,10 +1179,17 @@ enum SwitchSources { SWSRC_SWC, SWSRC_LAST_CSW = SWSRC_SW1+NUM_CSW-1, +#if defined(PCBTARANIS) + SWSRC_P11, + SWSRC_P16 = SWSRC_P11+5, + SWSRC_P21, + SWSRC_P26 = SWSRC_P21+5, +#endif + SWSRC_ON, SWSRC_FIRST_MOMENT_SWITCH, - SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_ON-1, + SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_LAST_CSW, #if !defined(PCBSTD) SWSRC_TRAINER_SHORT, @@ -1424,7 +1458,7 @@ PACK(typedef struct t_ModelData { uint8_t thrTrim:1; // Enable Throttle Trim AVR_FIELD(int8_t ppmNCH:4) ARM_FIELD(int8_t spare2:4) - uint8_t trimInc:3; // Trim Increments + int8_t trimInc:3; // Trim Increments uint8_t disableThrottleWarning:1; ARM_FIELD(uint8_t displayText:1) AVR_FIELD(uint8_t pulsePol:1) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index f8e8790de..b087d25da 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -503,12 +503,18 @@ void generalDefault() uint16_t evalChkSum() { uint16_t sum = 0; - const int16_t *calibValues = &g_eeGeneral.calibMid[0]; + const int16_t *calibValues = (const int16_t *) &g_eeGeneral.calib[0]; for (int i=0; icount>0 && calib->countcount); + uint8_t previousPos = potsPos[i] >> 4; + if (pos != previousPos) { + potsLastposStart[i] = get_tmr10ms(); + potsPos[i] = (pos << 4) | (potsPos[i] & 0x0f); + } + else if ((tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { + potsLastposStart[i] = 0; + potsPos[i] = (pos << 4) | (pos); + } + } + } + } +#endif } +#define SWITCH_POSITION(sw) (switchesPos & (1<<(sw))) +#define POT_POSITION(sw) ((potsPos[(sw)/POTS_POS_COUNT] & 0x0f) == ((sw) % POTS_POS_COUNT)) #else -#define get3POSSwitchesPosition() +#define getSwitchesPosition() +#define SWITCH_POSITION(idx) switchState((EnumKeys)(SW_BASE+(idx))) #endif int16_t csLastValue[NUM_CSW]; @@ -1357,15 +1388,16 @@ bool getSwitch(int8_t swtch) if (cs_idx == SWSRC_ON) { result = true; } - else if (cs_idx <= MAX_PSWITCH) { -#if defined(PCBTARANIS) - result = SWITCH_POSITION(cs_idx-SWSRC_SA0); -#else - result = switchState((EnumKeys)(SW_BASE+cs_idx-1)); -#endif + else if (cs_idx <= SWSRC_LAST_SWITCH) { + result = SWITCH_POSITION(cs_idx-SWSRC_FIRST_SWITCH); } +#if defined(PCBTARANIS) + else if (cs_idx >= SWSRC_P11 && cs_idx <= SWSRC_P26) { + result = POT_POSITION(cs_idx-SWSRC_P11); + } +#endif else { - cs_idx -= MAX_PSWITCH+1; + cs_idx -= SWSRC_FIRST_CSW; GETSWITCH_RECURSIVE_TYPE mask = ((GETSWITCH_RECURSIVE_TYPE)1 << cs_idx); if (s_last_switch_used & mask) { @@ -1549,7 +1581,7 @@ int8_t getMovedSwitch() } } #else - for (uint8_t i=MAX_PSWITCH; i>0; i--) { + for (uint8_t i=NUM_PSWITCH; i>0; i--) { bool prev; swstate_t mask = 0; if (i <= 3) { @@ -1561,7 +1593,7 @@ int8_t getMovedSwitch() } bool next = getSwitch(i); if (prev != next) { - if (i!=MAX_PSWITCH || next==true) + if (i!=NUM_PSWITCH || next==true) result = next ? i : -i; if (mask) switches_states ^= mask; @@ -1851,7 +1883,7 @@ csw_telemetry_value_t maxTelemValue(uint8_t channel) #endif #if defined(CPUARM) -getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value) +getvalue_t convert16bitsTelemValue(uint8_t channel, csw_telemetry_value_t value) { getvalue_t result; switch (channel) { @@ -1864,8 +1896,14 @@ getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value) } return result; } -#else -getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value) + +csw_telemetry_value_t max8bitsTelemValue(uint8_t channel) +{ + return min(255, maxTelemValue(channel)); +} +#endif + +getvalue_t convert8bitsTelemValue(uint8_t channel, csw_telemetry_value_t value) { getvalue_t result; switch (channel) { @@ -1875,6 +1913,10 @@ getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value) break; #if defined(FRSKY) case TELEM_ALT: +#if defined(CPUARM) + result = 100 * (value * 8 - 500); + break; +#endif case TELEM_GPSALT: case TELEM_MAX_ALT: case TELEM_MIN_ALT: @@ -1912,18 +1954,17 @@ getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value) } return result; } -#endif getvalue_t convertCswTelemValue(CustomSwData * cs) { getvalue_t val; #if defined(CPUARM) - val = convertTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, cs->v2); + val = convert16bitsTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, cs->v2); #else if (cswFamily(cs->func)==CS_VOFS) - val = convertTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128+cs->v2); + val = convert8bitsTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128+cs->v2); else - val = convertTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128+cs->v2) - convertTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128); + val = convert8bitsTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128+cs->v2) - convert8bitsTelemValue(cs->v1 - MIXSRC_FIRST_TELEM + 1, 128); #endif return val; } @@ -2146,8 +2187,9 @@ void checkTHR() int16_t lowLim = THRCHK_DEADBAND - 1024 ; #else getADC(); // if thr is down - do not display warning at all - int16_t lowLim = g_eeGeneral.calibMid[thrchn]; - lowLim = (g_model.throttleReversed ? - lowLim - g_eeGeneral.calibSpanPos[thrchn] : lowLim - g_eeGeneral.calibSpanNeg[thrchn]); + CalibData * calib = &g_eeGeneral.calib[thrchn]; + int16_t lowLim = calib->mid; + lowLim = (g_model.throttleReversed ? - lowLim - calib->spanPos : lowLim - calib->spanNeg); lowLim += THRCHK_DEADBAND; #endif int16_t v = thrAnaIn(thrchn); @@ -2266,7 +2308,7 @@ void checkSwitches() if (last_bad_switches != switches_states) { MESSAGE(STR_SWITCHWARN, NULL, STR_PRESSANYKEYTOSKIP, last_bad_switches == 0xff ? AU_SWITCH_ALERT : AU_NONE); uint8_t x = 2; - for (uint8_t i=1; i2?(i+1):1+(states&0x3)), attr); if (i == 1 && attr) i++; @@ -2361,12 +2403,10 @@ void checkTrims() uint8_t event = getEvent(true); if (event && !IS_KEY_BREAK(event)) { int8_t k = EVT_KEY_MASK(event) - TRM_BASE; - int8_t s = g_model.trimInc; #else uint8_t checkTrim(uint8_t event) { int8_t k = EVT_KEY_MASK(event) - TRM_BASE; - int8_t s = g_model.trimInc; if (k>=0 && k<8 && !IS_KEY_BREAK(event)) { #endif // LH_DWN LH_UP LV_DWN LV_UP RV_DWN RV_UP RH_DWN RH_UP @@ -2397,7 +2437,8 @@ uint8_t checkTrim(uint8_t event) before = getRawTrimValue(phase, idx); thro = (idx==THR_STICK && g_model.thrTrim); #endif - int8_t v = (s==0) ? min(32, abs(before)/4+1) : 1 << (s-1); // 1=>1 2=>2 3=>4 4=>8 + int8_t trimInc = g_model.trimInc + 1; + int8_t v = (trimInc==-1) ? min(32, abs(before)/4+1) : (1 << trimInc); if (thro) v = 4; // if throttle trim and trim trottle then step=4 int16_t after = (k&1) ? before + v : before - v; // positive = k&1 #if defined(CPUARM) @@ -2536,10 +2577,29 @@ void getADC() for (uint32_t x=0; x> 3; + uint16_t v = temp[x] >> 3; +#if defined(PCBTARANIS) + if (s_noScroll) v = temp[x] >> 1; + StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[x]; + if (IS_MULTIPOS_POT(x) && calib->count>0 && calib->count> 4); + s_anaFilt[x] = 2*RESX; + for (int i=0; icount; i++) { + if (vShifted < calib->steps[i]) { + s_anaFilt[x] = i*2*RESX/calib->count; + break; + } + } + } + else +#endif + s_anaFilt[x] = v; } } #else @@ -2787,10 +2847,14 @@ void evalInputs(uint8_t mode) #ifndef SIMU if (i < NUM_STICKS+NUM_POTS) { - v -= g_eeGeneral.calibMid[i]; - v = v * (int32_t)RESX / (max((int16_t)100,(v>0 ? - g_eeGeneral.calibSpanPos[i] : - g_eeGeneral.calibSpanNeg[i]))); + if (IS_MULTIPOS_POT(i)) { + v -= RESX; + } + else { + CalibData * calib = &g_eeGeneral.calib[i]; + v -= calib->mid; + v = v * (int32_t)RESX / (max((int16_t)100, (v>0 ? calib->spanPos : calib->spanNeg))); + } } #endif @@ -3116,13 +3180,13 @@ void evalFunctions() #endif - if (swtch > MAX_SWITCH+1) { + if (swtch > NUM_SWITCH+1) { momentary = 1; - swtch -= MAX_SWITCH+1; + swtch -= NUM_SWITCH+1; } - if (swtch < -MAX_SWITCH-1) { + if (swtch < -NUM_SWITCH-1) { momentary = 1; - swtch += MAX_SWITCH+1; + swtch += NUM_SWITCH+1; } bool active = getSwitch(swtch); @@ -3197,7 +3261,7 @@ void evalFunctions() } } } - else if (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM) { + else if (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM || CFN_FUNC(sd) == FUNC_RESET) { active = false; } @@ -3471,6 +3535,8 @@ void perOut(uint8_t mode, uint8_t tick10ms) if (md->srcRaw == 0) break; + uint8_t stickIndex = md->srcRaw - MIXSRC_Rud; + if (!(dirtyChannels & ((bitfield_channels_t)1 << md->destCh))) continue; // if this is the first calculation for the destination channel, initialize it with 0 (otherwise would be random) @@ -3483,7 +3549,6 @@ void perOut(uint8_t mode, uint8_t tick10ms) delayval_t mixEnabled = !(md->phases & (1 << s_perout_flight_phase)) && getSwitch(md->swtch); //========== VALUE =============== - uint8_t stickIndex = md->srcRaw - MIXSRC_Rud; getvalue_t v = 0; if (mode > e_perout_mode_inactive_phase) { if (!mixEnabled || stickIndex >= NUM_STICKS || (stickIndex == THR_STICK && g_model.thrTrim)) { @@ -3501,12 +3566,14 @@ void perOut(uint8_t mode, uint8_t tick10ms) else #endif { - v = getValue(md->srcRaw); - if (md->srcRaw>=MIXSRC_CH1 && md->srcRaw<=MIXSRC_LAST_CH && md->destCh != md->srcRaw-MIXSRC_CH1) { - if (dirtyChannels & ((bitfield_channels_t)1 << (md->srcRaw-MIXSRC_CH1)) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1))) + int8_t srcRaw = MIXSRC_Rud + stickIndex; + v = getValue(srcRaw); + srcRaw -= MIXSRC_CH1; + if (srcRaw>=0 && srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) { + if (dirtyChannels & ((bitfield_channels_t)1 << srcRaw) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1))) passDirtyChannels |= (bitfield_channels_t) 1 << md->destCh; - if (md->srcRaw-MIXSRC_CH1 < md->destCh || pass > 0) - v = chans[md->srcRaw-MIXSRC_CH1] >> 8; + if (srcRaw < md->destCh || pass > 0) + v = chans[srcRaw] >> 8; } } if (!mixCondition) { @@ -3747,10 +3814,10 @@ void doMixerCalculations() // therefore forget the exact calculation and use only 1 instead; good compromise lastTMR = tmr10ms; - get3POSSwitchesPosition(); - getADC(); + getSwitchesPosition(); + #if defined(PCBSKY9X) && !defined(REVA) && !defined(SIMU) Current_analogue = (Current_analogue*31 + s_anaFilt[8] ) >> 5 ; if (Current_analogue > Current_max) @@ -3934,9 +4001,9 @@ void doMixerCalculations() timerState->sum+=val; } - if (atm>=(TMR_VAROFS+MAX_SWITCH)){ // toggeled switch + if (atm>=(TMR_VAROFS+NUM_SWITCH)){ // toggeled switch if(!(timerState->toggled | timerState->sum | timerState->cnt | timerState->lastPos)) { timerState->lastPos = tm < 0; timerState->sum = 1; } // if initializing then init the lastPos - uint8_t swPos = getSwitch(tm>0 ? tm-(TMR_VAROFS+MAX_SWITCH-1) : tm+MAX_SWITCH); + uint8_t swPos = getSwitch(tm>0 ? tm-(TMR_VAROFS+NUM_SWITCH-1) : tm+NUM_SWITCH); if (swPos && !timerState->lastPos) timerState->toggled = !timerState->toggled; // if switch is flipped first time -> change counter state timerState->lastPos = swPos; } @@ -3973,7 +4040,7 @@ void doMixerCalculations() newTimerVal++; } else { - if (atm<(TMR_VAROFS+MAX_SWITCH)) + if (atm<(TMR_VAROFS+NUM_SWITCH)) timerState->toggled = tm>0 ? getSwitch(tm-(TMR_VAROFS-1)) : !getSwitch(-tm); // normal switch if (timerState->toggled) newTimerVal++; diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 1ce0294b7..981d360bd 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -376,8 +376,8 @@ enum EnumKeys { #if defined(PCBTARANIS) #define NUM_SWITCHES 8 #define IS_3POS(sw) ((sw) != 5 && (sw) != 7) - #define MAX_PSWITCH (SW_SH2-SW_SA0+1) #define NUM_POTS 4 + #define NUM_XPOTS 2 #define NUM_SW_SRCRAW 8 #define SWSRC_THR SWSRC_SF2 #define SWSRC_GEA SWSRC_SG2 @@ -389,27 +389,35 @@ enum EnumKeys { #define NUM_SWITCHES 7 #define IS_3POS(sw) ((sw) == 0) #define IS_MOMENTARY(sw) (sw == SWSRC_TRN) - #define MAX_PSWITCH (SW_TRN-SW_ID0+1) // 9 physical switches #define NUM_POTS 3 + #define NUM_XPOTS 0 #define NUM_SW_SRCRAW 1 #define SW_DSM2_BIND SW_TRN #endif -#define MAX_SWITCH (MAX_PSWITCH+NUM_CSW) +#define NUM_PSWITCH (SWSRC_LAST_SWITCH-SWSRC_FIRST_SWITCH+1) +#define NUM_POTSSW (NUM_XPOTS*6) +#define NUM_SWITCH (NUM_PSWITCH+NUM_CSW+NUM_POTSSW) #if defined(PCBTARANIS) -#define KEY_RIGHT KEY_PLUS -#define KEY_LEFT KEY_MINUS -#define KEY_UP KEY_PLUS -#define KEY_DOWN KEY_MINUS + #define KEY_RIGHT KEY_PLUS + #define KEY_LEFT KEY_MINUS + #define KEY_UP KEY_PLUS + #define KEY_DOWN KEY_MINUS #else -#define KEY_ENTER KEY_MENU -#define KEY_PLUS KEY_RIGHT -#define KEY_MINUS KEY_LEFT + #define KEY_ENTER KEY_MENU + #define KEY_PLUS KEY_RIGHT + #define KEY_MINUS KEY_LEFT #endif #include "myeeprom.h" +#if defined(PCBTARANIS) + #define IS_MULTIPOS_POT(x) ((x)>=POT1 && (x)<=POT_LAST && (g_eeGeneral.potsType & (1 << ((x)-POT1)))) +#else + #define IS_MULTIPOS_POT(x) (false) +#endif + #if ROTARY_ENCODERS > 0 #define IF_ROTARY_ENCODERS(x) x, #else @@ -1041,12 +1049,14 @@ enum Analogs { #if defined(PCBTARANIS) POT1, POT2, + POT_LAST = POT2, SLIDER1, SLIDER2, #else POT1, POT2, POT3, + POT_LAST = POT3, #endif TX_VOLTAGE, #if defined(PCBSKY9X) && !defined(REVA) @@ -1094,6 +1104,7 @@ template FORCEINLINE t min(t a, t b) { return a FORCEINLINE t max(t a, t b) { return a>b?a:b; } template FORCEINLINE t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); } template FORCEINLINE t limit(t mi, t x, t ma) { return min(max(mi,x),ma); } +template void swap(t & a, t & b) { t tmp = b; b = a; a = tmp; } #if defined(HELI) || defined(FRSKY_HUB) uint16_t isqrt32(uint32_t n); @@ -1564,6 +1575,14 @@ union ReusableBuffer int16_t loVals[NUM_STICKS+NUM_POTS]; int16_t hiVals[NUM_STICKS+NUM_POTS]; uint8_t state; +#if defined(PCBTARANIS) + struct { + uint8_t stepsCount; + int16_t steps[POTS_POS_COUNT]; + uint8_t lastCount; + int16_t lastPosition; + } xpotsCalib[NUM_XPOTS]; +#endif } calib; #if defined(SDCARD) @@ -1632,9 +1651,24 @@ extern uint8_t barsThresholds[THLD_MAX]; #define maxTelemValue(channel) 255 #endif -getvalue_t convertTelemValue(uint8_t channel, csw_telemetry_value_t value); +#if defined(CPUARM) +getvalue_t convert16bitsTelemValue(uint8_t channel, csw_telemetry_value_t value); +csw_telemetry_value_t max8bitsTelemValue(uint8_t channel); +#endif + +getvalue_t convert8bitsTelemValue(uint8_t channel, csw_telemetry_value_t value); getvalue_t convertCswTelemValue(CustomSwData * cs); +#if defined(CPUARM) + #define convertTelemValue(channel, value) convert16bitsTelemValue(channel, value) + #define convertBarTelemValue(channel, value) convert8bitsTelemValue(channel, value) + #define maxBarTelemValue(channel) max8bitsTelemValue(channel) +#else + #define convertTelemValue(channel, value) convert8bitsTelemValue(channel, value) + #define convertBarTelemValue(channel, value) convert8bitsTelemValue(channel, value) + #define maxBarTelemValue(channel) maxTelemValue(channel) +#endif + #if defined(FRSKY) || defined(CPUARM) lcdint_t applyChannelRatio(uint8_t channel, lcdint_t val); #endif diff --git a/radio/src/simpgmspace.h b/radio/src/simpgmspace.h index cda058487..b177d82a0 100644 --- a/radio/src/simpgmspace.h +++ b/radio/src/simpgmspace.h @@ -359,6 +359,8 @@ void eeprom_read_block (void *pointer_ram, const void *pointer_eeprom, size_t si #define boardInit() #define OS_MutexID pthread_mutex_t +extern OS_MutexID audioMutex; + #define OS_FlagID int #define OS_TID int #define OS_TCID int diff --git a/radio/src/stamp.cpp b/radio/src/stamp.cpp index 7200b60b9..72e1208bd 100644 --- a/radio/src/stamp.cpp +++ b/radio/src/stamp.cpp @@ -40,7 +40,7 @@ #define STR2(s) #s #define DEFNUMSTR(s) STR2(s) -const pm_char stamp1[] PROGMEM = " SVN: " SVN_STR; +const pm_char stamp1[] PROGMEM = "VERS: " VERS_STR; const pm_char stamp2[] PROGMEM = "DATE: " DATE_STR; const pm_char stamp3[] PROGMEM = "TIME: " TIME_STR; #if defined(PCBSTD) diff --git a/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c b/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c index e1d39a223..654bb5fcf 100644 --- a/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c +++ b/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c @@ -3,7 +3,7 @@ * @file system_stm32f2xx.c * @author MCD Application Team * @version V1.1.0 - * @date 09-January-2013 + * @date 05-January-2014 * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. * This file contains the system clock configuration for STM32F2xx devices, * and is generated by the clock configuration tool @@ -46,15 +46,15 @@ *----------------------------------------------------------------------------- * System Clock source | PLL (HSE) *----------------------------------------------------------------------------- - * SYSCLK(Hz) | 60000000 + * SYSCLK(Hz) | 120000000 *----------------------------------------------------------------------------- - * HCLK(Hz) | 60000000 + * HCLK(Hz) | 120000000 *----------------------------------------------------------------------------- * AHB Prescaler | 1 *----------------------------------------------------------------------------- - * APB1 Prescaler | 2 + * APB1 Prescaler | 4 *----------------------------------------------------------------------------- - * APB2 Prescaler | 1 + * APB2 Prescaler | 2 *----------------------------------------------------------------------------- * HSE Frequency(Hz) | 12000000 *----------------------------------------------------------------------------- @@ -62,7 +62,7 @@ *----------------------------------------------------------------------------- * PLL_N | 240 *----------------------------------------------------------------------------- - * PLL_P | 4 + * PLL_P | 2 *----------------------------------------------------------------------------- * PLL_Q | 5 *----------------------------------------------------------------------------- @@ -74,7 +74,7 @@ *----------------------------------------------------------------------------- * VDD(V) | 3.3 *----------------------------------------------------------------------------- - * Flash Latency(WS) | 2 + * Flash Latency(WS) | 3 *----------------------------------------------------------------------------- * Prefetch Buffer | ON *----------------------------------------------------------------------------- @@ -146,7 +146,7 @@ #define PLL_N 240 /* SYSCLK = PLL_VCO / PLL_P */ -#define PLL_P 4 +#define PLL_P 2 /* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */ #define PLL_Q 5 @@ -167,7 +167,7 @@ * @{ */ - uint32_t SystemCoreClock = 60000000; + uint32_t SystemCoreClock = 120000000; __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; @@ -359,11 +359,11 @@ static void SetSysClock(void) /* HCLK = SYSCLK / 1*/ RCC->CFGR |= RCC_CFGR_HPRE_DIV1; - /* PCLK2 = HCLK / 1*/ - RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; + /* PCLK2 = HCLK / 2*/ + RCC->CFGR |= RCC_CFGR_PPRE2_DIV2; - /* PCLK1 = HCLK / 2*/ - RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; + /* PCLK1 = HCLK / 4*/ + RCC->CFGR |= RCC_CFGR_PPRE1_DIV4; /* Configure the main PLL */ RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) | @@ -378,7 +378,7 @@ static void SetSysClock(void) } /* Configure Flash prefetch, Instruction cache, Data cache and wait state */ - FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS; + FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_3WS; /* Select the main PLL as system clock source */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index 9c492c32d..1de2f354d 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -60,7 +60,7 @@ extern "C" { #define PERI1_FREQUENCY 30000000 #define PERI2_FREQUENCY 60000000 #define TIMER_MULT_APB1 2 -#define TIMER_MULT_APB2 1 +#define TIMER_MULT_APB2 2 #define JACK_PPM_OUT() #define JACK_PPM_IN() diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index f2e7f7905..8e2a4bda2 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -191,6 +191,12 @@ void parseTelemHubByte(uint8_t byte) break; case offsetof(FrskySerialData, current): +#if defined(FAS_OFFSET) || !defined(CPUM64) + if(((int16_t)frskyData.hub.current + g_model.frsky.fasOffset)>0) + frskyData.hub.current += g_model.frsky.fasOffset; + else + frskyData.hub.current = 0; +#endif if (frskyData.hub.current > frskyData.hub.maxCurrent) frskyData.hub.maxCurrent = frskyData.hub.current; break; diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index 8499cb5f8..ca4eb2858 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -653,7 +653,7 @@ void telemetryWakeup() alarmsCheckTime = get_tmr10ms() + 100; /* next check in 1second */ if (alarmsCheckStep == 0) { - if (frskyData.rssi[1].value > 0x33) { + if ((IS_MODULE_XJT(0) || IS_MODULE_XJT(1)) && frskyData.rssi[1].value > 0x33) { AUDIO_SWR_RED(); s_global_warning = STR_ANTENNAPROBLEM; alarmsCheckTime = get_tmr10ms() + 300; /* next check in 3seconds */ diff --git a/radio/src/telemetry/mavlink.cpp b/radio/src/telemetry/mavlink.cpp index eb7166dbc..094c94ec3 100644 --- a/radio/src/telemetry/mavlink.cpp +++ b/radio/src/telemetry/mavlink.cpp @@ -113,7 +113,7 @@ void MAVLINK_reset(uint8_t warm_reset) { memset(&telemetry_data, 0, sizeof(telemetry_data)); telemetry_data.rcv_control_mode = ERROR_NUM_MODES; telemetry_data.req_mode = ERROR_NUM_MODES; - + telemetry_data.type = MAV_TYPE_ENUM_END; telemetry_data.autopilot = MAV_AUTOPILOT_ENUM_END; telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; @@ -139,7 +139,7 @@ void MAVLINK_Init(void) { * characters are used. To get the full message you can use the commented * funtion below. */ - + static inline void REC_MAVLINK_MSG_ID_STATUSTEXT(const mavlink_message_t* msg) { _MAV_RETURN_char_array(msg, mav_statustext, LEN_STATUSTEXT, 1); } @@ -152,7 +152,7 @@ static inline void REC_MAVLINK_MSG_ID_STATUSTEXT(const mavlink_message_t* msg) { * \todo Add battery remaining variable in telemetry_data struct for estimated * remaining battery. Decoding funtion allready in place. */ - + static inline void REC_MAVLINK_MSG_ID_SYS_STATUS(const mavlink_message_t* msg) { telemetry_data.vbat = mavlink_msg_sys_status_get_voltage_battery(msg) / 100; // Voltage * 10 telemetry_data.ibat = mavlink_msg_sys_status_get_current_battery(msg) / 10; @@ -204,48 +204,48 @@ static inline void REC_MAVLINK_MSG_ID_VFR_HUD(const mavlink_message_t* msg) { /*! \brief Heartbeat message * \details Heartbeat message is used for the following information: - * type and autopilot is used to determain if the UAV is a ArduPlane or Arducopter + * type and autopilot is used to determine if the UAV is an ArduPlane or Arducopter */ -static inline void REC_MAVLINK_MSG_ID_HEARTBEAT(const mavlink_message_t* msg) { +static inline void REC_MAVLINK_MSG_ID_HEARTBEAT(const mavlink_message_t* msg) { telemetry_data.mode = mavlink_msg_heartbeat_get_base_mode(msg); - telemetry_data.custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg); + telemetry_data.custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg); telemetry_data.status = mavlink_msg_heartbeat_get_system_status(msg); telemetry_data.mav_sysid = msg->sysid; telemetry_data.mav_compid = msg->compid; uint8_t type = mavlink_msg_heartbeat_get_type(msg); uint8_t autopilot = mavlink_msg_heartbeat_get_autopilot(msg); - if ((type != telemetry_data.type) || (autopilot != telemetry_data.autopilot)) - { + if (type != telemetry_data.type || autopilot != telemetry_data.autopilot) { telemetry_data.type = mavlink_msg_heartbeat_get_type(msg); telemetry_data.autopilot = mavlink_msg_heartbeat_get_autopilot(msg); - if (autopilot == MAV_AUTOPILOT_ARDUPILOTMEGA) - { - if ((type == MAV_TYPE_QUADROTOR) || - (type == MAV_TYPE_COAXIAL) || - (type == MAV_TYPE_HELICOPTER) || - (type == MAV_TYPE_HEXAROTOR) || - (type == MAV_TYPE_OCTOROTOR) || - (type == MAV_TYPE_TRICOPTER)) - { - telemetry_data.type_autopilot = MAVLINK_ARDUCOPTER; - } - else if (type == MAV_TYPE_FIXED_WING) - { - telemetry_data.type_autopilot = MAVLINK_ARDUPLANE; - } - else + if (autopilot == MAV_AUTOPILOT_ARDUPILOTMEGA) { + if (type == MAV_TYPE_QUADROTOR || + type == MAV_TYPE_COAXIAL || + type == MAV_TYPE_HELICOPTER || + type == MAV_TYPE_HEXAROTOR || + type == MAV_TYPE_OCTOROTOR || + type == MAV_TYPE_TRICOPTER) { + telemetry_data.type_autopilot = MAVLINK_ARDUCOPTER; + } + else if (type == MAV_TYPE_FIXED_WING) { + telemetry_data.type_autopilot = MAVLINK_ARDUPLANE; + } + else { telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; + } } - else + else { telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE; + } } - telemetry_data.active = (telemetry_data.mode & MAV_MODE_FLAG_SAFETY_ARMED) ? true : false; + telemetry_data.active = (telemetry_data.mode & MAV_MODE_FLAG_SAFETY_ARMED) ? true : false; mav_heartbeat = 3; // 450ms display '*' mav_heartbeat_recv = 1; } + static inline void REC_MAVLINK_MSG_ID_HIL_CONTROLS(const mavlink_message_t* msg) { telemetry_data.nav_mode = mavlink_msg_hil_controls_get_mode(msg); } + /*! \brief Process GPS raw intger message * \details This message contains the following data: * - fix type: 0-1: no fix, 2: 2D fix, 3: 3D fix. @@ -257,7 +257,7 @@ static inline void REC_MAVLINK_MSG_ID_HIL_CONTROLS(const mavlink_message_t* msg) */ static inline void REC_MAVLINK_MSG_ID_GPS_RAW_INT(const mavlink_message_t* msg) { telemetry_data.fix_type = mavlink_msg_gps_raw_int_get_fix_type(msg); - telemetry_data.loc_current.lat = mavlink_msg_gps_raw_int_get_lat(msg) / 1E7; + telemetry_data.loc_current.lat = mavlink_msg_gps_raw_int_get_lat(msg) / 1E7; telemetry_data.loc_current.lon = mavlink_msg_gps_raw_int_get_lon(msg) / 1E7; telemetry_data.loc_current.gps_alt = mavlink_msg_gps_raw_int_get_alt(msg) / 1E3; telemetry_data.eph = mavlink_msg_gps_raw_int_get_eph(msg) / 100.0; @@ -266,26 +266,25 @@ static inline void REC_MAVLINK_MSG_ID_GPS_RAW_INT(const mavlink_message_t* msg) telemetry_data.satellites_visible = mavlink_msg_gps_raw_int_get_satellites_visible(msg); } - #ifdef MAVLINK_PARAMS -const pm_char * getParamId(uint8_t idx) { - const pm_char *mav_params_id [((NB_PID_PARAMS / 2) + 4)] = { // - // - PSTR("RATE_YAW"), // Rate Yaw - PSTR("STB_YAW"), // Stabilize Yaw - PSTR("RATE_PIT"), // Rate Pitch - PSTR("STB_PIT"), // Stabilize Pitch - PSTR("RATE_RLL"), // Rate Roll - PSTR("STB_RLL"), // Stabilize Roll - PSTR("THR_ALT"), // PSTR("THR_BAR"), // Altitude Hold - PSTR("HLD_LON"), // Loiter - PSTR("HLD_LAT"), // Loiter - PSTR("NAV_LON"), // Nav WP - PSTR("NAV_LAT"), // Nav WP - PSTR("LOW_VOLT"), // Battery low voltage - PSTR("VOLT_DIVIDER"), // - PSTR("BATT_MONITOR"), // - PSTR("BATT_CAPACITY") }; +const pm_char *getParamId(uint8_t idx) { + const pm_char *mav_params_id [((NB_PID_PARAMS / 2) + 4)] = { + PSTR("RATE_YAW"), // Rate Yaw + PSTR("STB_YAW"), // Stabilize Yaw + PSTR("RATE_PIT"), // Rate Pitch + PSTR("STB_PIT"), // Stabilize Pitch + PSTR("RATE_RLL"), // Rate Roll + PSTR("STB_RLL"), // Stabilize Roll + PSTR("THR_ALT"), // PSTR("THR_BAR"), // Altitude Hold + PSTR("HLD_LON"), // Loiter + PSTR("HLD_LAT"), // Loiter + PSTR("NAV_LON"), // Nav WP + PSTR("NAV_LAT"), // Nav WP + PSTR("LOW_VOLT"), // Battery low voltage + PSTR("VOLT_DIVIDER"), // + PSTR("BATT_MONITOR"), // + PSTR("BATT_CAPACITY") + }; uint8_t i; if (idx < NB_PID_PARAMS) { i = idx / 2; @@ -433,7 +432,7 @@ static inline void handleMessage(mavlink_message_t* p_rxmsg) { break; case MAVLINK_MSG_ID_VFR_HUD: REC_MAVLINK_MSG_ID_VFR_HUD(p_rxmsg); - break; + break; case MAVLINK_MSG_ID_HIL_CONTROLS: REC_MAVLINK_MSG_ID_HIL_CONTROLS(p_rxmsg); break; @@ -453,8 +452,8 @@ static inline void handleMessage(mavlink_message_t* p_rxmsg) { /*! \brief Mavlink message parser * \details Parses the characters in to a mavlink message. - * Case statement parses each character as it is recieved. - * \attention One big change form the 0.9 to 1.0 version is the + * Case statement parses each character as it is recieved. + * \attention One big change form the 0.9 to 1.0 version is the * MAVLINK_CRC_EXTRA. This requires the mavlink_message_crcs array of 256 bytes. * \todo create dot for the statemachine */ @@ -464,9 +463,9 @@ static void MAVLINK_parse_char(uint8_t c) { //! The currently decoded message static mavlink_message_t* p_rxmsg = &m_mavlink_message; //! The current decode status - mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0); - - + mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0); + + #if MAVLINK_CRC_EXTRA static const uint8_t mavlink_message_crcs[256] PROGMEM = MAVLINK_MESSAGE_CRCS; #define MAVLINK_MESSAGE_CRC(msgid) mavlink_message_crcs[msgid] @@ -715,7 +714,7 @@ static inline void MAVLINK_msg_set_mode_send(uint8_t mode) { #endif /*! \brief Telemetry monitoring, calls \link MAVLINK10mspoll. * \todo Reimplemnt \link MAVLINK10mspoll - * + * */ void telemetryWakeup() { uint16_t tmr10ms = get_tmr10ms(); diff --git a/radio/src/templates.cpp b/radio/src/templates.cpp index e5b10dad1..aad22a8c1 100644 --- a/radio/src/templates.cpp +++ b/radio/src/templates.cpp @@ -64,8 +64,9 @@ MixData* setDest(uint8_t dch, uint8_t src, bool clear=false) while (1) { mix = mixAddress(i); if (mix->srcRaw && mix->destCh <= dch) { - if (clear && mix->destCh == dch) + if (clear && mix->destCh == dch) { deleteExpoMix(0, i); + } else { if (++i==MAX_MIXERS) { // TODO should return null pointer but needs to be tested then @@ -106,10 +107,14 @@ void defaultInputs() clearInputs(); for (int i=0; isrcRaw = MIXSRC_Rud - 1 + stick_index; + expo->curve.type = CURVE_REF_EXPO; + expo->chn = i; + expo->weight = 100; for (int c=0; c<4; c++) { - g_model.inputNames[i][c] = char2idx(STR_VSRCRAW[1+STR_VSRCRAW[0]*(expoAddress(i)->srcRaw-MIXSRC_Rud+1)+c]); + g_model.inputNames[i][c] = char2idx(STR_VSRCRAW[1+STR_VSRCRAW[0]*stick_index+c]); } } eeDirty(EE_MODEL); @@ -163,7 +168,7 @@ void applyTemplate(uint8_t idx) uint8_t icc[4] = {0}; for (uint8_t i=0; i<4; i++) { //generate inverse array for(uint8_t j=0; j<4; j++) - if(CC(i+1)==j+1) icc[j]=i; + if(CC(i+1)==j+MIXSRC_Rud) icc[j]=i; } switch (idx) { @@ -177,8 +182,14 @@ void applyTemplate(uint8_t idx) switch (idx) { // Simple 4-Ch case TMPL_SIMPLE_4CH: - clearInputs(); - applyDefaultTemplate(); + defaultInputs(); +#if defined(PCBTARANIS) + #pragma message("Templates with virtual inputs (FrSky Taranis) are not implemented!") +#endif + setDest(ICC(STK_RUD), MIXSRC_Rud); + setDest(ICC(STK_ELE), MIXSRC_Ele); + setDest(ICC(STK_THR), MIXSRC_Thr); + setDest(ICC(STK_AIL), MIXSRC_Ail); break; // Sticky-T-Cut @@ -203,9 +214,6 @@ void applyTemplate(uint8_t idx) // Elevon\\Delta case TMPL_ELEVON_DELTA: defaultInputs(); -#if defined(PCBTARANIS) - #pragma message("Templates below are not implemented (only V-TAIL has been done). Feel free to help!") -#endif setDest(ICC(STK_ELE), MIXSRC_Ele, true); setDest(ICC(STK_ELE), MIXSRC_Ail); setDest(ICC(STK_AIL), MIXSRC_Ele, true); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 98a09f777..91ed7bc6a 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -55,6 +55,10 @@ const pm_char STR_OPEN9X[] PROGMEM = #endif ISTR(TRNMODE) ISTR(TRNCHN) +#if defined(PCBTARANIS) + ISTR(UART3MODES) + ISTR(POTTYPES) +#endif ISTR(VTRIMINC) ISTR(RETA123) ISTR(VPROTOS) @@ -267,6 +271,10 @@ const pm_char STR_EEPROMOVERFLOW[] PROGMEM = TR_EEPROMOVERFLOW; const pm_char STR_TRIMS2OFFSETS[] PROGMEM = TR_TRIMS2OFFSETS; const pm_char STR_MENURADIOSETUP[] PROGMEM = TR_MENURADIOSETUP; +#if defined(FAS_OFFSET) || !defined(CPUM64) +const pm_char STR_FAS_OFFSET[] PROGMEM = TR_FAS_OFFSET; +#endif + #if defined(CPUM2560) || defined(CPUARM) const pm_char STR_MENUDATEANDTIME[] PROGMEM = TR_MENUDATEANDTIME; #endif @@ -455,6 +463,7 @@ const pm_char STR_VIEW_TEXT[] PROGMEM = "View text"; const pm_char STR_MODELNAME[] PROGMEM = TR_MODELNAME; const pm_char STR_PHASENAME[] PROGMEM = TR_PHASENAME; const pm_char STR_MIXNAME[] PROGMEM = TR_MIXNAME; + const pm_char STR_INPUTNAME[] PROGMEM = TR_INPUTNAME; const pm_char STR_EXPONAME[] PROGMEM = TR_EXPONAME; #endif @@ -482,13 +491,16 @@ const pm_char STR_VIEW_TEXT[] PROGMEM = "View text"; 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_TOP_BAR[] PROGMEM = "Top Bar"; - const pm_char STR_ALTITUDE[] PROGMEM = INDENT "Altitude"; + 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_POTWARNING[] PROGMEM = TR_POTWARNING; const pm_char STR_CHECKLIST[] PROGMEM = TR_CHECKLIST; + const pm_char STR_UART3MODE[] PROGMEM = TR_UART3MODE; + const pm_char STR_POT1TYPE[] PROGMEM = TR_POT1TYPE; + const pm_char STR_POT2TYPE[] PROGMEM = TR_POT2TYPE; #endif #if MENUS_LOCK == 1 @@ -588,6 +600,12 @@ const pm_uchar font_5x7[] PROGMEM = { #endif }; +#if !defined(CPUM64) || defined(EXTSTD) +const pm_uchar font_5x7_B[] PROGMEM = { +#include "font_05x07_B_compressed.lbm" +}; +#endif + const pm_uchar font_10x14[] PROGMEM = { #include "font_10x14_compressed.lbm" #if defined(CPUARM) diff --git a/radio/src/translations.h b/radio/src/translations.h index c21004212..411432ab2 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -99,7 +99,13 @@ extern const pm_char STR_OPEN9X[]; #define OFS_TRNMODE (OFS_VBEEPMODE + sizeof(TR_VBEEPMODE)) #endif #define OFS_TRNCHN (OFS_TRNMODE + sizeof(TR_TRNMODE)) -#define OFS_VTRIMINC (OFS_TRNCHN + sizeof(TR_TRNCHN)) +#if defined(PCBTARANIS) + #define OFS_UART3MODES (OFS_TRNCHN + sizeof(TR_TRNCHN)) + #define OFS_POTTYPES (OFS_UART3MODES + sizeof(TR_UART3MODES)) + #define OFS_VTRIMINC (OFS_POTTYPES + sizeof(TR_POTTYPES)) +#else + #define OFS_VTRIMINC (OFS_TRNCHN + sizeof(TR_TRNCHN)) +#endif #define OFS_RETA123 (OFS_VTRIMINC + sizeof(TR_VTRIMINC)) #define OFS_VPROTOS (OFS_RETA123 + sizeof(TR_RETA123)) #define OFS_POSNEG (OFS_VPROTOS + sizeof(TR_VPROTOS)) @@ -190,6 +196,8 @@ extern const pm_char STR_OPEN9X[]; #define STR_VBEEPMODE (STR_OPEN9X + OFS_VBEEPMODE) #define STR_TRNMODE (STR_OPEN9X + OFS_TRNMODE) #define STR_TRNCHN (STR_OPEN9X + OFS_TRNCHN) +#define STR_UART3MODES (STR_OPEN9X + OFS_UART3MODES) +#define STR_POTTYPES (STR_OPEN9X + OFS_POTTYPES) #define STR_VTRIMINC (STR_OPEN9X + OFS_VTRIMINC) #define STR_RETA123 (STR_OPEN9X + OFS_RETA123) #define STR_VPROTOS (STR_OPEN9X + OFS_VPROTOS) @@ -448,6 +456,10 @@ extern const pm_char STR_INVERT_THR[]; extern const pm_char STR_AND_SWITCH[]; extern const pm_char STR_CF[]; +#if defined(FAS_OFFSET) || !defined(CPUM64) +extern const pm_char STR_FAS_OFFSET[]; +#endif + #if defined(DSM2) || defined(PXX) extern const pm_char STR_RXNUM[]; #endif @@ -536,6 +548,9 @@ extern const pm_char STR_RESET_BTN[]; extern const pm_uchar font_5x7[]; extern const pm_uchar font_10x14[]; +#if !defined(CPUM64) || defined(EXTSTD) +extern const pm_uchar font_5x7_B[]; +#endif #if defined(CPUARM) extern const pm_uchar font_3x5[]; @@ -631,6 +646,7 @@ extern const pm_char STR_VIEW_TEXT[]; extern const pm_char STR_MODELNAME[]; extern const pm_char STR_PHASENAME[]; extern const pm_char STR_MIXNAME[]; + extern const pm_char STR_INPUTNAME[]; extern const pm_char STR_EXPONAME[]; #else #define STR_MODELNAME STR_NAME @@ -670,6 +686,9 @@ extern const pm_char STR_VIEW_TEXT[]; extern const pm_char STR_VIEW_NOTES[]; extern const pm_char STR_POTWARNING[]; extern const pm_char STR_CHECKLIST[]; + extern const pm_char STR_UART3MODE[]; + extern const pm_char STR_POT1TYPE[]; + extern const pm_char STR_POT2TYPE[]; #endif #if MENUS_LOCK == 1 @@ -752,5 +771,6 @@ extern const pm_char STR_VIEW_TEXT[]; #define CHR_LONG TR_CHR_LONG #define CHR_TOGGLE TR_CHR_TOGGLE #define CHR_HOUR TR_CHR_HOUR +#define CHR_INPUT TR_CHR_INPUT #endif diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 1930e080c..5c386cadf 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -24,6 +24,7 @@ * * * + * * !!!!! DO NOT EDIT cz.h - EDIT cz.h.txt INSTEAD !!!!!!! * * In order to make translations easier cz.h.txt is parsed and national @@ -31,7 +32,12 @@ * See translate.py in the util catalog for the list of character codes * * !!!!! DO NOT EDIT cz.h - EDIT cz.h.txt INSTEAD !!!!!!! - * + */ + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string */ // NON ZERO TERMINATED STRINGS @@ -62,6 +68,9 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + #define LEN_DATETIME "\006" #define TR_DATETIME "DATUM:""ČAS: " @@ -206,23 +215,23 @@ #define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Podsvětlení" TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET "\005" +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM "Telem" -#else + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") +#else #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else -#define TR_FSW_RESET_ROTENC + #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET "Tmr1\0""Tmr2\0""Vše\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +331,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "*1 " + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "*1 " #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "*1 " #endif @@ -355,12 +365,12 @@ #define TR_VFAILSAFE "Držet\0 ""Vlastní\0 ""Bez pulzů" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -384,11 +394,16 @@ #define TR_MOVINGMODEL "Přesouvám model." #define TR_LOADINGMODEL "Aktivuji model.." #define TR_NAME "Jméno" -#define TR_MODELNAME "Název modelu" -#define TR_PHASENAME "Jméno" -#define TR_MIXNAME "Jméno" -#define TR_EXPONAME "Jméno" -#define TR_BITMAP "Obrázek" +#define TR_MODELNAME "Název modelu" +#define TR_PHASENAME "Jméno" +#define TR_MIXNAME "Jméno" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Line Name" +#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") @@ -485,22 +500,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET CENTER TR_ENTER" >> Reset" #define TR_PPM "PPM" #define TR_CH "CH" @@ -534,6 +549,9 @@ // Alignment + + + #define TR_MENUINPUTS "DR/EXPO" #define TR_MENULIMITS "LIMITY" @@ -662,6 +680,10 @@ #define TR_CRITICALALARM INDENT "Kritický Alarm" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -745,8 +767,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Pípání" #define TR_WAV_VOLUME "Zvuky WAV" #define TR_VARIO_VOLUME "Vario" #define TR_BG_VOLUME "WAV na pozadí" + +#define TR_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 306778d2b..a8787b4a4 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -23,6 +23,7 @@ * GNU General Public License for more details. * * + * * !!!!! DO NOT EDIT de.h - EDIT de.h.txt INSTEAD !!!!!!! * * In order to make translations easier de.h.txt is parsed and national @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT de.h - EDIT de.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""ZEIT:" @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Sicher\0 ""Lehrer \0 ""Inst. Trim" TR_SOUND TR_HAPTIC "R\205cksetz.\0" TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "LCD Licht\0" TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET TR("\005", "\011") +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM TR("Telem", "Telemetrie ") //\200nderung + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else - #define TR_FSW_RESET_TELEM + #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET TR("Tmr1\0""Tmr2\0""Alle\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1 ""Timer 2 ""Alle Tmr." TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Piep1\0""Piep2\0""Piep3\0""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "ONE" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "ONE" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "ONE" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Hold\0 ""Custom\0 ""No pulses" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,7 +400,12 @@ #define TR_MODELNAME "Modell Name" #define TR_PHASENAME "Phase Name" #define TR_MIXNAME "Mix Name" -#define TR_EXPONAME "Expo Name" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Linie Name" +#else + #define TR_EXPONAME "Expo Name" +#endif #define TR_BITMAP "Modell Bild" #define TR_TIMER TR("Stoppuhr","Stoppuhr ") #define TR_ELIMITS TR("Erw.Limit","Erweit. Limits") @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET CENTER TR_ENTER" f\205r Reset" #define TR_PPM "PPM" #define TR_CH "CH" @@ -664,6 +682,11 @@ #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Kritisch Alarm" #define TR_PERSISTENT_MAH INDENT "Store mAh" +#define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -747,8 +770,14 @@ #define TR_CHR_LONG 'l' //Taste long #define TR_CHR_TOGGLE 't' //Taste als togglefunktion = Ein Aus Ein #define TR_CHR_HOUR 'h' //Stunden +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Beep Lautst" #define TR_WAV_VOLUME "Wav Lautst" #define TR_VARIO_VOLUME "Vario Lautst" #define TR_BG_VOLUME "Bg Lautst" + +#define TR_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 1d9bbb809..9d8288b58 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -33,6 +33,12 @@ * GNU General Public License for more details. * */ + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""TIME:" @@ -71,8 +83,8 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") -#define LEN_VTRIMINC TR("\006","\013") -#define TR_VTRIMINC TR("Expo ""ExFine""Fine ""Medium""Coarse","Exponential""Extra Fine ""Fine ""Medium ""Coarse ") +#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" @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Backlight\0" TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET TR("\005", "\011") +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM TR("Telem", "Telemetry") + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET TR("Tmr1\0""Tmr2\0""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1 ""Timer 2 ""All " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "One" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Hold\0 ""Custom\0 ""No pulses" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,6 +400,7 @@ #define TR_MODELNAME "Model Name" #define TR_PHASENAME "Mode Name" #define TR_MIXNAME "Mix Name" +#define TR_INPUTNAME "Input Name" #if defined(PCBTARANIS) #define TR_EXPONAME "Line Name" #else @@ -489,20 +503,20 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) #define TR_TMIXMAXMS "Tmix max" #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" - #define TR_FREESTACKMINB "Free Stack\010b" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif #define TR_MENUTORESET CENTER TR_ENTER " to reset" @@ -669,35 +683,37 @@ #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODE" + #define TR_MAVLINK_CUR_MODE "Current Mode" + #define TR_MAVLINK_ARMED "Armed" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Course" + #define TR_MAVLINK_HEADING "Heading" + #define TR_MAVLINK_BEARING "Bearing" + #define TR_MAVLINK_ALTITUDE "Altitude" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif - - // Taranis column headers #define TR_PHASES_HEADERS { " Name ", " Switch ", " Trims ", " Fade In ", " Fade Out " } #define TR_LIMITS_HEADERS { " Name ", " Subtrim ", " Min ", " Max ", " Direction ", " Curve ", " PPM Center ", " Subtrim mode " } @@ -754,6 +770,7 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Beep Volume" #define TR_WAV_VOLUME "Wav Volume" @@ -764,4 +781,3 @@ #define TR_ALTITUDE INDENT "Altitude" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" - diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index da487df5f..89d717e9b 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1,4 +1,4 @@ -/* +/* * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre @@ -23,6 +23,7 @@ * GNU General Public License for more details. * * + * * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! * * In order to make translations easier es.h.txt is parsed and national @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""HORA:" @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Luz fondo\0" TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET TR("\005", "\011") +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM TR("Telem", "Telemetria") + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET TR("Tmr1\0""Tmr2\0""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Reloj 1 ""Reloj 2 ""Todo " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "Uno" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "Uno" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "ACE""DIR""ELE""ALE""GEA""TRN" TR_CUSTOMSW "Uno" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Guardar\0 ""Adaptar\0 ""Sin pulsos" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Estabilizar""Acrobat. ""Alt Hold ""Auto ""Guiado ""Loiter ""RTL ""Circulo ""Pos Hold ""Tierra ""OF Loiter""Toy A ""Toy M ""INVALIDO " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Estabilizar""Acrobat. ""Alt Hold ""Auto ""Guiado ""Loiter ""RTL ""Circulo ""Pos Hold ""Tierra ""OF Loiter""Toy A ""Toy M ""INVALIDO " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,7 +400,12 @@ #define TR_MODELNAME "Nom.Modelo" #define TR_PHASENAME "Nom.Fase " #define TR_MIXNAME "Nom.Mezcla" -#define TR_EXPONAME "Nom. Expo" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Line Name" +#else + #define TR_EXPONAME "Nom. Expo" +#endif #define TR_BITMAP "Imagen Modelo" #define TR_TIMER TR("Reloj","Reloj ") #define TR_ELIMITS TR("E.Limite","Ampliar Limites") @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "SIN DATOS" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Pila LIbre\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Pila LIbre\010b" #define TR_MENUTORESET CENTER TR_ENTER "Resetear" #define TR_PPM "PPM" #define TR_CH "CH" @@ -530,6 +548,9 @@ #define TR_MENUFLIGHTPHASES "MODOS VUELO" #define TR_MENUHELISETUP "CONF. HELI" + +// Alignment + #if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "STICKS" #define TR_MENULIMITS "SERVOS" @@ -660,33 +681,37 @@ #define TR_CHANNELRANGE INDENT "Gama de canales" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma Critica" -#define TR_PERSISTENT_MAH INDENT "Valor mAh" #define TR_CHECKLIST "Display Checklist" +#define TR_PERSISTENT_MAH INDENT "Valor mAh" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODO" - #define TR_MAVLINK_CUR_MODE "Modo actual" - #define TR_MAVLINK_ARMED "Armad0" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Estado Bateria de vuelo" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Carrera" - #define TR_MAVLINK_HEADING "Titulo" - #define TR_MAVLINK_BEARING "Soporte" - #define TR_MAVLINK_ALTITUDE "Altitud" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODO" + #define TR_MAVLINK_CUR_MODE "Modo actual" + #define TR_MAVLINK_ARMED "Armad0" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Estado Bateria de vuelo" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Carrera" + #define TR_MAVLINK_HEADING "Titulo" + #define TR_MAVLINK_BEARING "Soporte" + #define TR_MAVLINK_ALTITUDE "Altitud" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif // Taranis column headers @@ -745,8 +770,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Volumen Beep" #define TR_WAV_VOLUME "Volumen Wav" #define TR_VARIO_VOLUME "Volumen Vario" #define TR_BG_VOLUME "Volumen Bg" + +#define TR_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 90b637c71..5952f858d 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1,4 +1,4 @@ -/* +/* * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre @@ -23,6 +23,7 @@ * * * + * * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! * * In order to make translations easier fr.h.txt is parsed and national @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""HEURE" @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Sécur.\0 ""Ecolage\0 ""Trim instant." TR_SOUND TR_HAPTIC "Remise à 0\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Rétroécl.\0 " TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET "\006" +#define LEN_VFSWRESET TR("\004","\012") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM "Télém." + #define TR_FSW_RESET_TELEM TR("Télm","Télémesure") #else #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("ERa\0 ""ERb\0 ", "EncRot A\0""EncRot B\0") + #define TR_FSW_RESET_ROTENC TR("ERa\0""ERb\0","Enc.Rot.A\0""Enc.Rot.B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("Enc.r", "EncRot\0 ") + #define TR_FSW_RESET_ROTENC TR("EncR", "Enc.Rot\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET "Timer1""Timer2""Timers" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC +#define TR_VFSWRESET TR("Chr1""Chr2""Tout" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC,"Chrono 1\0 ""Chrono 2\0 ""Tout\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "1*\0" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Maintien\0""Prédéfini""Pas d'imp" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,7 +400,12 @@ #define TR_MODELNAME TR("Nom modèle","Nom du modèle") #define TR_PHASENAME "Nom phase" #define TR_MIXNAME TR("Nom mix.","Nom du mixeur") -#define TR_EXPONAME "Nom expo" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Nom ligne" +#else + #define TR_EXPONAME "Nom expo" +#endif #define TR_BITMAP "Image du modèle" #define TR_TIMER "Chrono " #define TR_ELIMITS TR("Limites ét","Limites étendues") @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA "NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET CENTER TR_ENTER" pour reset" #define TR_PPM "PPM" #define TR_CH "CH" @@ -530,7 +548,10 @@ #define TR_MENUFLIGHTPHASES "PHASES DE VOL" #define TR_MENUHELISETUP TR("CONF.HELI","CONFIGURATION HELICO") -#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... +#if defined(PCBTARANIS) + #define TR_MENUINPUTS "ENTREES" + #define TR_MENULIMITS "SORTIES" +#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "MANCHES" #define TR_MENULIMITS "SORTIES" #else @@ -662,31 +683,35 @@ #define TR_CRITICALALARM INDENT "Alarme critique" #define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh",INDENT "Enregistrer mAh") #define TR_CHECKLIST "Afficher notes" +#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") +#define TR_UART3MODE "Port série" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Config Mavlink" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODE" + #define TR_MAVLINK_CUR_MODE "Mode courant" + #define TR_MAVLINK_ARMED "Armé" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Accu propulsion" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Course" + #define TR_MAVLINK_HEADING "Cap" + #define TR_MAVLINK_BEARING "Relèv." + #define TR_MAVLINK_ALTITUDE "Altitude" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif // Taranis column headers @@ -745,8 +770,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // 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_TOP_BAR "Barre titre" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications désactivées!" +#define TR_UNLOCKED "Déverrouillé" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 4ddc543a0..48f3ae15b 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -6,6 +6,7 @@ * - Martin Hotar * - Romolo Manfredini * + * * opentx is based on code named * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, * er9x by Erez Raviv: http://code.google.com/p/er9x/, @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT it.h - EDIT it.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,14 +68,20 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "ch1ch2ch3ch4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""ORA :" #define LEN_VLCD "\006" #define TR_VLCD "NormalOptrex" -#define LEN_COUNTRYCODES TR("\002", "\007") -#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") +#define LEN_COUNTRYCODES TR("\002", "\007") +#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio " @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant " TR_SOUND TR_HAPTIC "Azzera\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Retroillum.\0 " TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET "\006" +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM "Telem." + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else - #define TR_FSW_RESET_TELEM + #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET "Timer1""Timer2""Tutto " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Mantieni\0 ""Personali\0""No impulsi" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,7 +400,12 @@ #define TR_MODELNAME "Nome modello" #define TR_PHASENAME "Nome fase" #define TR_MIXNAME "Nome mix" -#define TR_EXPONAME "Nome expo" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Nome expo" +#else + #define TR_EXPONAME "Expo Name" +#endif #define TR_BITMAP "Immagine" #define TR_TIMER TR("Timer","Timer ") #define TR_ELIMITS TR("Limiti.E","Limiti Estesi") @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"DATI ASSENTI" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif -#define TR_T10MSUS "T10ms\007us" -#define TR_FREESTACKMINB "Free Stack\004b" #define TR_MENUTORESET CENTER TR_ENTER" x Azzerare" #define TR_PPM "PPM" #define TR_CH "CH" @@ -530,6 +548,9 @@ #define TR_MENUFLIGHTPHASES "FASI DI VOLO" #define TR_MENUHELISETUP "SETUP ELI" +// Alignment + + #if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "STICK" #define TR_MENULIMITS "USCITE" @@ -661,32 +682,36 @@ #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" #define TR_PERSISTENT_MAH INDENT "Store mAh" -#define TR_CHECKLIST "Display Checklist" +#define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODE" + #define TR_MAVLINK_CUR_MODE "Current Mode" + #define TR_MAVLINK_ARMED "Armed" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Course" + #define TR_MAVLINK_HEADING "Heading" + #define TR_MAVLINK_BEARING "Bearing" + #define TR_MAVLINK_ALTITUDE "Altitude" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif // Taranis column headers @@ -745,8 +770,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // 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_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 89affe3e0..96b2e0147 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1,11 +1,11 @@ /* - * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre * - Kjell Kernen * - Martin Hotar * - Romolo Manfredini + * - Jacek Drewniak * * opentx is based on code named * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, @@ -24,7 +24,6 @@ * * * - * * !!!!! DO NOT EDIT pl.h - EDIT pl.h.txt INSTEAD !!!!!!! * * In order to make translations easier pl.h.txt is parsed and national @@ -34,6 +33,12 @@ * !!!!! DO NOT EDIT pl.h - EDIT pl.h.txt INSTEAD !!!!!!! * */ + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -43,7 +48,7 @@ #define TR_MMMINV "---""INV" #define LEN_NCHANNELS "\004" -#define TR_NCHANNELS "\0014CH\0016CH\0018CH10CH12CH14CH16CH" +#define TR_NCHANNELS "\0014KN\0016KN\0018KN10KN12KN14KN16KN" #define LEN_VBEEPMODE TR("\007","\016") #define TR_VBEEPMODE TR("Cichy\0 ""Alarm\0 ""BezPrz\0""Wszytko", "Cichy\0 ""Tylko alarm\0 ""Bez Przycisków""Wszystko\0 ") @@ -63,6 +68,9 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + #define LEN_DATETIME "\006" #define TR_DATETIME "DANA:""Czas:\0 " @@ -207,26 +215,26 @@ #define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim " TR_SOUND TR_HAPTIC "Reset " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Podświetl. " TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET "\005" +#define LEN_VFSWRESET TR("\004", "\012") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM "Telem" -#else + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetria") +#else #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0 ""RotEnc B\0 ") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else -#define TR_FSW_RESET_ROTENC + #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET "Tmr1\0""Tmr2\0""ALL\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") -#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 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) @@ -236,7 +244,7 @@ #define TR_RSSI_0 "Tx\0 " #define TR_RSSI_1 "Rx\0 " #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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cur+""Pwr+""Acc\0""Time" +#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""A1-\0""A2-\0""Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cur+""Moc+""Acc\0""Time" #if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\012") @@ -276,7 +284,7 @@ #if defined(FRSKY_SPORT) #define TR_VARIOSRC "Vario""A1\0 ""A2\0" #else - #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" + #define TR_VARIOSRC "Wys.\0""Wys.+""Vario""A1\0 ""A2\0" #endif #define LEN_VSCREEN "\006" @@ -287,13 +295,13 @@ #define LEN2_VTEMPLATES 17 #define LEN_VTEMPLATES "\021" -#define TR_VTEMPLATES "Wyczyść miksery\0 ""Prosty. 4kanal\0 ""Przełącznik-T-Cut""V-Tail \0 ""Elevon-Delta\0 ""eCCPM \0 ""Heli Setup \0 ""Test serwa \0 " +#define TR_VTEMPLATES "Wyczyść miksery\0 ""Prosty. 4kanal\0 ""Przełącznik-T-Cut""V-Tail \0 ""Elevon-Delta\0 ""eCCPM \0 ""Ustaw. Heli \0 ""Test serwa \0 " #define LEN_VSWASHTYPE "\004" #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit""W dół""Wgórę""Wpraw""Wlewo", " Menu"" Exit""W dół""Wgórę""Wpraw""Wlewo") +#define TR_VKEYS TR(" Menu""Wyjdź""W dół""Wgórę""Wpraw""Wlewo", " Menu""Wyjdź""W dół""Wgórę""Wpraw""Wlewo") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" @@ -323,7 +331,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW " * " + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS " * " #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "GAZ""SK ""LOT""SW ""GEA""TRN" TR_CUSTOMSW " * " #endif @@ -356,12 +365,12 @@ #define TR_VFAILSAFE "Utrzymuj\0""Własne\0 ""0 sygnału" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilizacja""Akro ""Alt Hold ""Auto ""Sterowany ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabiliz.""Akro ""Alt Hold ""Auto ""Sterowany""Loiter ""RTL ""Koło ""Utrzymuj ""Ląduj ""OF Loiter""Toy A ""Toy M ""BŁĘDNY " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Ręczny ""Koło ""Stabilizacja ""Trening ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Sterowany ""Inicjalizacja""BŁĘDNY " #endif // ZERO TERMINATED STRINGS @@ -375,7 +384,7 @@ #define TR_ENTER "[MENU]" #endif -#define TR_POPUPS TR_ENTER"\010[EXIT]" +#define TR_POPUPS TR_ENTER"\010[WYJŚCIE]" #define OFS_EXIT sizeof(TR_ENTER) #define TR_MENUWHENDONE CENTER "\007"TR_ENTER" > DALEJ" @@ -388,7 +397,12 @@ #define TR_MODELNAME "Nazwa modelu" #define TR_PHASENAME "Nazwa" #define TR_MIXNAME "Nazwa" -#define TR_EXPONAME "Nazwa" +#define TR_INPUTNAME "Wpisz Nazw" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Linia Nazw" +#else + #define TR_EXPONAME "Nazwa" +#endif #define TR_BITMAP "Obrazek" #define TR_TIMER "Timer " #define TR_ELIMITS TR("Limit+25%", "Kanał +/- 125%") @@ -398,21 +412,21 @@ #define TR_TTRIM TR("Trymer gazu", "Trymer gazu") #define TR_BEEPCTR "(\043)Pikanie środka" #define TR_PROTO INDENT"Protokól" -#define TR_PPMFRAME "PPM frame" +#define TR_PPMFRAME "Ramka PPM" #define TR_MS "ms" #define TR_SWITCH "Przełącznik" #define TR_TRIMS "Trymery" #define TR_FADEIN "Pojawianie" #define TR_FADEOUT "Zanikanie" #define TR_DEFAULT "(Bazowa)" -#define TR_CHECKTRIMS "\006Sprawdź \012 Trymery" +#define TR_CHECKTRIMS "\006Spr \012 Trymery" #define OFS_CHECKTRIMS (9*FW) #define TR_SWASHTYPE "Typ tarczy" #define TR_COLLECTIVE "Kolektyw" #define TR_SWASHRING "Tarcza" #define TR_ELEDIRECTION "Ster Wysokości" #define TR_AILDIRECTION "\012Lotki" -#define TR_COLDIRECTION "\012Kolektwy" +#define TR_COLDIRECTION "\012Kolektyw" #define TR_MODE INDENT"Tryb" #define TR_NOFREEEXPO "Brak wolnych expo!" #define TR_NOFREEMIXER "Brak wolnych mix!" @@ -424,7 +438,7 @@ #define TR_SIDE "Strona" #define TR_DIFFERENTIAL "Różn.wychyleń" #define TR_OFFSET INDENT"Ofset" -#define TR_TRIM "Trim" +#define TR_TRIM "Trymer" #define TR_DREX "DRex" #define TR_CURVE "Krzywa" #define TR_FLMODE "Tryb" @@ -472,11 +486,11 @@ #define TR_POTWARNING TR("Pot Warn.","Pot Warning") #define TR_TIMEZONE "Strefa czasowa" #define TR_RXCHANNELORD TR("Kolejność kanałów", "Bazowa kolejność kanałów") -#define TR_SLAVE "Podrzędny" +#define TR_SLAVE "Uczeń" #define TR_MODESRC " Tryb\006% Źródło" #define TR_MULTIPLIER "Połącznie" #define TR_CAL "Kal." -#define TR_VTRIM "Trim- +" +#define TR_VTRIM "Trymer- +" #define TR_BG "BG:" #define TR_MENUTOSTART CENTER "\007" TR_ENTER " = START" #define TR_SETMIDPOINT TR(CENTER "\001Ustaw drążki/potencj na środku","\005Ustaw drązki/potencj na środku") @@ -486,25 +500,25 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Wolny stos" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Wolny stos\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET CENTER TR_ENTER" >> Reset" #define TR_PPM "PPM" -#define TR_CH "Kan" +#define TR_CH "KN" #define TR_MODEL "MODEL" #define TR_FP "FL" #define TR_MIX "MIX" @@ -531,18 +545,21 @@ #define TR_MENUFLIGHTPHASES "FAZY LOTU" #define TR_MENUHELISETUP "HELI" - -// Alignment - - -#define TR_MENUINPUTS "DR/EXPO" -#define TR_MENULIMITS "LIMITY" - +#if defined(PCBTARANIS) + #define TR_MENUINPUTS "WEJŚCIA" + #define TR_MENULIMITS "SERWA" +#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... + #define TR_MENUINPUTS "DRĄŻKI" + #define TR_MENULIMITS "SERWA" +#else + #define TR_MENUINPUTS "DR/EXPO" + #define TR_MENULIMITS "LIMITY" +#endif #define TR_MENUCURVES "KRZYWE" -#define TR_MENUCURVE "\002k" -#define TR_MENUCUSTOMSWITCH "PRZEŁĄCZNIK LOGICZNY" -#define TR_MENUCUSTOMSWITCHES "Przełączniki logiczne" +#define TR_MENUCURVE "KRZYWA" +#define TR_MENUCUSTOMSWITCH "PRZEŁ. LOGICZNY" +#define TR_MENUCUSTOMSWITCHES TR("PRZEŁ. LOG.", "PRZEŁ. LOGICZNE") #define TR_MENUCUSTOMFUNC "FUNKCJE SPECJALNE" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "SZABLONY" @@ -620,7 +637,7 @@ #define TR_GLOBAL_VARS "Zmienne globalne" #define TR_GLOBAL_VAR "Zmienna globalna" #define TR_MENUGLOBALVARS "ZMIENNE GLOBALNE" -#define TR_OWN " Własność " +#define TR_OWN "Własność" #define TR_DATE "Data" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW" @@ -651,43 +668,47 @@ #define TR_BUZZER INDENT"Brzęczyk" #define TR_BYTES "[B]" #define TR_MODULE_BIND "[Bind]" -#define TR_MODULE_RANGE "[Zasieg]" +#define TR_MODULE_RANGE "Zasięg" #define TR_RESET_BTN "[Reset]" #define TR_SET "[Ustaw]" #define TR_TRAINER "Trener" #define TR_ANTENNAPROBLEM CENTER "Problem z anteną TX" -#define TR_MODELIDUSED TR("ID już użyte","ID modelu już użyte") +#define TR_MODELIDUSED TR("ID zajęte","ID modelu zajęte") #define TR_MODULE INDENT "Moduł" #define TR_CHANNELRANGE INDENT "Zakres kanału" #define TR_LOWALARM INDENT "Alarm niski" #define TR_CRITICALALARM INDENT "Alarm krytyczny" -#define TR_PERSISTENT_MAH INDENT "Store mAh" +#define TR_PERSISTENT_MAH INDENT "Zapisz mAh" #define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Port szreg." +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Status baterii " - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Kurs" - #define TR_MAVLINK_HEADING "Kierunek" - #define TR_MAVLINK_BEARING "Orientacja" - #define TR_MAVLINK_ALTITUDE "Wysokość" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFO" + #define TR_MAVLINK_MODE "TRYB" + #define TR_MAVLINK_CUR_MODE "Aktualy Tryb" + #define TR_MAVLINK_ARMED "Armed" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Status baterii " + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Kurs" + #define TR_MAVLINK_HEADING "Kierunek" + #define TR_MAVLINK_BEARING "Orientacja" + #define TR_MAVLINK_ALTITUDE "Wysokość" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "SZER" + #define TR_MAVLINK_LON "DLUG" #endif // Taranis column headers @@ -696,7 +717,7 @@ #define TR_CSW_HEADERS { " Funkcja ", " Param. 1 ", " Param 2 ", " AND Przełącznik ", " Czas trwania ", " Opóźnienie " } //Taranis About screen -#define TR_ABOUTUS TR(" ABOUT ", "ABOUT") +#define TR_ABOUTUS TR(" O ", " O") #define TR_ABOUT_OPENTX_1 TR("OpenTX\001is\001open\001source,\001non", "OpenTX is open source, non-") #define TR_ABOUT_OPENTX_2 TR("commercial,\001wo\001warranties.", "commercial and comes with no") @@ -705,21 +726,21 @@ #define TR_ABOUT_OPENTX_5 TR("is welcome!", "donations is welcome!") #define TR_ABOUT_BERTRAND_1 "Bertrand Songis" -#define TR_ABOUT_BERTRAND_2 "OpenTX main author" -#define TR_ABOUT_BERTRAND_3 "Companion9x co-author" +#define TR_ABOUT_BERTRAND_2 "OpenTX główny autor" +#define TR_ABOUT_BERTRAND_3 "Companion9x współ-autor" #define TR_ABOUT_MIKE_1 "Mike Blandford" -#define TR_ABOUT_MIKE_2 "Code and drivers guru" +#define TR_ABOUT_MIKE_2 "Guru kodu i driwerów" #define TR_ABOUT_MIKE_3 TR("Arguably,\001one\001of\001the\001best", "Arguably, one of the best") #define TR_ABOUT_MIKE_4 "Inspirational" #define TR_ABOUT_ROMOLO_1 "Romolo Manfredini" -#define TR_ABOUT_ROMOLO_2 "Companion9x co-author" +#define TR_ABOUT_ROMOLO_2 "Companion9x współ-autor" #define TR_ABOUT_ROMOLO_3 "" #define TR_ABOUT_ANDRE_1 "Andre Bernet" -#define TR_ABOUT_ANDRE_2 "Functionality, usability," -#define TR_ABOUT_ANDRE_3 "debugging, documentation" +#define TR_ABOUT_ANDRE_2 "Funkcjonalność, użytkowość," +#define TR_ABOUT_ANDRE_3 "debugging, documentacja" #define TR_ABOUT_ROB_1 "Rob Thomson" #define TR_ABOUT_ROB_2 "openrcforums webmaster" @@ -733,7 +754,7 @@ #define TR_ABOUT_HARDWARE_3 "Współautor firmware" #else #define TR_ABOUT_HARDWARE_1 "Brent Nelson" - #define TR_ABOUT_HARDWARE_2 "Sky9x designer/producent" + #define TR_ABOUT_HARDWARE_2 "Sky9x twórca/producent" #define TR_ABOUT_HARDWARE_3 "" #endif @@ -746,8 +767,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Głośność pikania" #define TR_WAV_VOLUME "Głośność wav" #define TR_VARIO_VOLUME "Głośność wario" #define TR_BG_VOLUME "Głośnośc tła " + +#define TR_TOP_BAR "Górny Pasek" +#define TR_ALTITUDE INDENT "Wysokość" +#define TR_MODS_FORBIDDEN "Modyfikacje zabronione!" +#define TR_UNLOCKED "Odblokowane" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index fe9c983d4..07a39ce74 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -23,6 +23,7 @@ * * * + * * !!!!! DO NOT EDIT pt.h - EDIT pt.h.txt INSTEAD !!!!!!! * * In order to make translations easier pt.h.txt is parsed and national @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT pt.h - EDIT pt.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "CH1CH2CH3CH4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""HORA:" @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Backlight\0 " TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET "\006" +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM "Telem." + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else - #define TR_FSW_RESET_TELEM + #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET "Tempo1""Tempo2""Todo " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -322,7 +334,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "1*\0" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" #endif @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Hold\0 ""Custom\0 ""No pulses" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " #endif // ZERO TERMINATED STRINGS @@ -387,7 +400,12 @@ #define TR_MODELNAME "Model Name" #define TR_PHASENAME "Phase Name" #define TR_MIXNAME "Mix Name" -#define TR_EXPONAME "Expo Name" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Line Name" +#else + #define TR_EXPONAME "Expo Name" +#endif #define TR_BITMAP "Model Image" #define TR_TIMER "Cronom" #define TR_ELIMITS "E.Limits" @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"SEM DADOS" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "MTR\032MT%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Pilha Livre\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Pilha Livre\010b" #define TR_MENUTORESET CENTER TR_ENTER" Reinicia" #define TR_PPM "PPM" #define TR_CH "CH" @@ -530,6 +548,9 @@ #define TR_MENUFLIGHTPHASES "MODOS DE VOO" #define TR_MENUHELISETUP "HELI SETUP" + +// Alignment + #if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "STICKS" #define TR_MENULIMITS "SAIDAS" @@ -660,33 +681,37 @@ #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" -#define TR_PERSISTENT_MAH INDENT "Store mAh" -#define TR_CHECKLIST "Display Checklist" +#define TR_PERSISTENT_MAH INDENT "Store mAh" +#define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Current Mode" - #define TR_MAVLINK_ARMED "Armed" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Heading" - #define TR_MAVLINK_BEARING "Bearing" - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODE" + #define TR_MAVLINK_CUR_MODE "Current Mode" + #define TR_MAVLINK_ARMED "Armed" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Flight Battery status" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Course" + #define TR_MAVLINK_HEADING "Heading" + #define TR_MAVLINK_BEARING "Bearing" + #define TR_MAVLINK_ALTITUDE "Altitude" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif // Taranis column headers @@ -745,8 +770,14 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // 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_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index c579bc219..bca04dad5 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -23,6 +23,7 @@ * * * + * * !!!!! DO NOT EDIT se.h - EDIT se.h.txt INSTEAD !!!!!!! * * In order to make translations easier se.h.txt is parsed and national @@ -32,7 +33,12 @@ * * !!!!! DO NOT EDIT se.h - EDIT se.h.txt INSTEAD !!!!!!! */ - + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline (ARM boards only) + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" @@ -62,6 +68,12 @@ #define LEN_TRNCHN "\003" #define TR_TRNCHN "KN1KN2KN3KN4" +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "Av\0 ""SPORT-spegel\0 ""VirtuellSP2UART" + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DAG: ""TID: " @@ -206,23 +218,23 @@ #define TR_VFSWFUNC "Säkra\0 ""Trainer\0 ""Sätt Trim\0" TR_SOUND TR_HAPTIC "Nollställ\0" TR_VVARIO TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE "Belysning\0" TR_CFN_ADJUST_GVAR TR_CFN_TEST #endif -#define LEN_VFSWRESET TR("\005", "\011") +#define LEN_VFSWRESET TR("\004", "\011") #if defined(FRSKY) - #define TR_FSW_RESET_TELEM TR("Telem", "Telemetri") + #define TR_FSW_RESET_TELEM TR("Telm", "Telemetry") #else - #define TR_FSW_RESET_TELEM + #define TR_FSW_RESET_TELEM #endif #if ROTARY_ENCODERS == 2 - #define TR_FSW_RESET_ROTENC TR("REa\0 ""REb\0 ", "RotEnc A\0""RotEnc B\0") + #define TR_FSW_RESET_ROTENC TR("REa\0""REb\0", "RotEnc A\0""RotEnc B\0") #elif ROTARY_ENCODERS == 1 - #define TR_FSW_RESET_ROTENC TR("R.Enc", "RotEnc\0 ") + #define TR_FSW_RESET_ROTENC TR("R.E.", "RotEnc\0 ") #else #define TR_FSW_RESET_ROTENC #endif -#define TR_VFSWRESET TR("Tmr1\0""Tmr2\0""Allt\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1 ""Timer 2 ""Allt " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) +#define TR_VFSWRESET TR("Tmr1""Tmr2""All\0" TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC, "Timer 1\0 ""Timer 2\0 ""All\0 " TR_FSW_RESET_TELEM TR_FSW_RESET_ROTENC) #define LEN_FUNCSOUNDS TR("\004", "\006") #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") @@ -314,15 +326,16 @@ #endif #if defined(CPUARM) - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW" + #define TR_CUSTOMSW "LB1""LB2""LB3""LB4""LB5""LB6""LB7""LB8""LB9""LBA""LBB""LBC""LBD""LBE""LBF""LBG""LBH""LBI""LBJ""LBK""LBL""LBM""LBN""LBO""LBP""LBQ""LBR""LBS""LBT""LBU""LBV""LBW" #elif defined(PCBGRUVIN9X) || defined(CPUM2561) || defined(CPUM128) - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF" + #define TR_CUSTOMSW "LB1""LB2""LB3""LB4""LB5""LB6""LB7""LB8""LB9""LBA""LBB""LBC""LBD""LBE""LBF" #else - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC" + #define TR_CUSTOMSW "LB1""LB2""LB3""LB4""LB5""LB6""LB7""LB8""LB9""LBA""LBB""LBC" #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "One" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif @@ -338,9 +351,9 @@ #endif #if defined(HELI) - #define TR_CYC_VSRCRAW "CYK1""CYK2""CYK3" + #define TR_CYC_VSRCRAW "CYK1""CYK2""CYK3" #else - #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" + #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif #define TR_VSRCRAW "---\0""Rod\0""Höj\0""Gas\0""Ske\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "MAX " TR_CYC_VSRCRAW "TrmR" "TrmH" "TrmG" "TrmS" TR_SW_VSRCRAW @@ -355,12 +368,12 @@ #define TR_VFAILSAFE "Håll\0 ""Special\0 ""Pulsfritt" #if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabil ""Akrobat ""Lås Höjd ""Automat ""Guidad ""Hovra ""Flyg Hem ""Cirkla ""Håll Pos.""Landa ""OF Hovra ""Leksak A ""Leksak M ""OGILTIG " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manuell ""Cirkla ""Stabilisera ""Övning ""Fly by Wire A""Fly by Wire A""Automatisk ""Flyg Hem ""Hovra ""Guidad ""Initialiserar""OGILTIG " + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabil ""Akrobat ""Lås Höjd ""Automat ""Guidad ""Hovra ""Flyg Hem ""Cirkla ""Håll Pos.""Landa ""OF Hovra ""Leksak A ""Leksak M ""OGILTIG " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manuell ""Cirkla ""Stabilisera ""Övning ""Fly by Wire A""Fly by Wire A""Automatisk ""Flyg Hem ""Hovra ""Guidad ""Initialiserar""OGILTIG " #endif // ZERO TERMINATED STRINGS @@ -385,9 +398,14 @@ #define TR_LOADINGMODEL "Laddar Modell " #define TR_NAME "Namn" #define TR_MODELNAME "Modellnamn" -#define TR_PHASENAME "Modnamn " +#define TR_PHASENAME "Lägesnamn " #define TR_MIXNAME "Mixnamn " -#define TR_EXPONAME "Exponamn " +#define TR_INPUTNAME "Filternamn" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Linjenamn" +#else + #define TR_EXPONAME "Exponamn" +#endif #define TR_BITMAP "Modellikon" #define TR_TIMER TR("Timer","Timer ") #define TR_ELIMITS TR("Gränser++","Utökade Gränser") @@ -485,22 +503,22 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\032TM2" -#define TR_THRTHP "THR\032TH%" +#define TR_TM1TM2 "TM1\037\146TM2" +#define TR_THRTHP "THR\037\146TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "Tmr1Lat max\006us" -#define STR_US (STR_TMR1LATMAXUS+12) -#define TR_TMR1LATMINUS "Tmr1Lat min\006us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\006us" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" #if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max\012ms" + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" #else - #define TR_TMIXMAXMS "Tmix max\014ms" + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" #endif -#define TR_T10MSUS "T10ms\016us" -#define TR_FREESTACKMINB "Free Stack\010b" #define TR_MENUTORESET CENTER TR_ENTER " Nollar" #define TR_PPM "PPM" #define TR_CH "KN" @@ -531,7 +549,7 @@ #define TR_MENUHELISETUP "Helikopter" #if defined(PCBTARANIS) - #define TR_MENUINPUTS "INPUTS" + #define TR_MENUINPUTS "Filter" #define TR_MENULIMITS "Gränser" #elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "Spakar" @@ -663,37 +681,39 @@ #define TR_CHANNELRANGE INDENT "Kanalområde" #define TR_LOWALARM INDENT "Låg-alarm" #define TR_CRITICALALARM INDENT "Kritiskt alarm" -#define TR_PERSISTENT_MAH INDENT "Store mAh" -#define TR_CHECKLIST "Display Checklist" +#define TR_PERSISTENT_MAH INDENT "Store mAh" +#define TR_CHECKLIST "Display Checklist" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serieport" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "MavlinkInställningar" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "LÄGE" - #define TR_MAVLINK_CUR_MODE "Nuvarande Läge" - #define TR_MAVLINK_ARMED "Osäkrad" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Status för flygbatteri" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Kurs" - #define TR_MAVLINK_HEADING "Riktning" - #define TR_MAVLINK_BEARING "Bäring" - #define TR_MAVLINK_ALTITUDE "Höjd" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "MavlinkInställningar" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "LÄGE" + #define TR_MAVLINK_CUR_MODE "Nuvarande Läge" + #define TR_MAVLINK_ARMED "Osäkrad" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Status för flygbatteri" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Kurs" + #define TR_MAVLINK_HEADING "Riktning" + #define TR_MAVLINK_BEARING "Bäring" + #define TR_MAVLINK_ALTITUDE "Höjd" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" #endif - - // Taranis column headers #define TR_PHASES_HEADERS { " Namn ", " Brytare ", " Trimmar ", " Tona Upp ", " Tona Ned " } #define TR_LIMITS_HEADERS { " Namn ", " Offset ", " Min ", " Max ", " Riktning ", " PPM-centrum ", " Symmetriskt " } @@ -746,12 +766,18 @@ #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_TOGGLE 't' -#define TR_CHR_HOUR 'h' +#define TR_CHR_SHORT 's' +#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_BEEP_VOLUME "Volym Pip" #define TR_WAV_VOLUME "Volym Wav" #define TR_VARIO_VOLUME "Volym Vario" #define TR_BG_VOLUME "Volym Bg" + +#define TR_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Höjd" +#define TR_MODS_FORBIDDEN "Modifikationer förbjudna!" +#define TR_UNLOCKED "Olåst"