diff --git a/DONATIONS.txt b/DONATIONS.txt index f3bf27e41..c85c6de97 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -325,3 +325,5 @@ Reginald H Millsom Emanuel Stassar Pierluigi Sommaruga Rafael Eric Suarez Nordlow +A Harris +Stefan Grunenberg diff --git a/companion/src/appdata.cpp b/companion/src/appdata.cpp index 21145f978..ec634da4d 100644 --- a/companion/src/appdata.cpp +++ b/companion/src/appdata.cpp @@ -188,17 +188,17 @@ void CompStoreObj::getset( int &number, const QString tag, const int def, const } // ** FwRevision class******************** -int FwRevision::get( const QString fwName ) +int FwRevision::get( const QString fwType ) { QString result; - retrieve( result, fwName, "", "FwRevisions" ); + retrieve( result, fwType, "", "FwRevisions" ); return result.toInt(); } -void FwRevision::set( const QString fwName, const int fwRevision ) +void FwRevision::set( const QString fwType, const int fwRevision ) { QString tempString= QString("%1").arg(fwRevision); - store( tempString, tempString, fwName, "FwRevisions" ); + store( tempString, tempString, fwType, "FwRevisions" ); } void FwRevision::remove( const QString tag ) @@ -280,13 +280,13 @@ void JStickData::flush() // ** Profile class******************** // Get declarations -QString Profile::firmware() const { return _firmware; } +QString Profile::fwName() const { return _fwName; } +QString Profile::fwType() const { return _fwType; } QString Profile::name() const { return _name; } QString Profile::sdPath() const { return _sdPath; } QString Profile::splashFile() const { return _splashFile; } bool Profile::burnFirmware() const { return _burnFirmware; } bool Profile::renameFwFiles() const { return _renameFwFiles; } -bool Profile::patchImage() const { return _patchImage; } int Profile::channelOrder() const { return _channelOrder; } int Profile::defaultMode() const { return _defaultMode; } @@ -305,12 +305,12 @@ int Profile::vBatWarn() const { return _vBatWarn; } // Set declarations void Profile::name (const QString x) { store(x, _name, "Name" ,"Profiles", QString("profile%1").arg(index));} -void Profile::firmware (const QString x) { store(x, _firmware, "firmware" ,"Profiles", QString("profile%1").arg(index));} +void Profile::fwName (const QString x) { store(x, _fwName, "fwName" ,"Profiles", QString("profile%1").arg(index));} +void Profile::fwType (const QString x) { store(x, _fwType, "fwType" ,"Profiles", QString("profile%1").arg(index));} void Profile::sdPath (const QString x) { store(x, _sdPath, "sdPath" ,"Profiles", QString("profile%1").arg(index));} void Profile::splashFile (const QString x) { store(x, _splashFile, "SplashFileName" ,"Profiles", QString("profile%1").arg(index));} void Profile::burnFirmware (const bool x) { store(x, _burnFirmware, "burnFirmware" ,"Profiles", QString("profile%1").arg(index));} void Profile::renameFwFiles (const bool x) { store(x, _renameFwFiles, "rename_firmware_files" ,"Profiles", QString("profile%1").arg(index));} -void Profile::patchImage (const bool x) { store(x, _patchImage, "patchImage" ,"Profiles", QString("profile%1").arg(index));} void Profile::channelOrder (const int x) { store(x, _channelOrder, "default_channel_order" ,"Profiles", QString("profile%1").arg(index));} void Profile::defaultMode (const int x) { store(x, _defaultMode, "default_mode" ,"Profiles", QString("profile%1").arg(index));} @@ -337,12 +337,12 @@ Profile::Profile() Profile& Profile::operator=(const Profile& rhs) { name ( rhs.name() ); - firmware ( rhs.firmware() ); + fwName ( rhs.fwName() ); + fwType ( rhs.fwType() ); sdPath ( rhs.sdPath() ); splashFile ( rhs.splashFile() ); burnFirmware ( rhs.burnFirmware() ); renameFwFiles( rhs.renameFwFiles() ); - patchImage ( rhs.patchImage() ); channelOrder ( rhs.channelOrder() ); defaultMode ( rhs.defaultMode() ); beeper ( rhs.beeper() ); @@ -389,13 +389,13 @@ void Profile::init(int newIndex) { index = newIndex; - _firmware = ""; + _fwName = ""; + _fwType = ""; _name = ""; _sdPath = ""; _splashFile = ""; _burnFirmware = false; _renameFwFiles = false; - _patchImage = false; _channelOrder = 0; _defaultMode = 1; @@ -423,13 +423,13 @@ void Profile::init(int newIndex) void Profile::flush() { // Load and store all variables. Use default values if setting values are missing - getset( _firmware, "firmware" ,"" ,"Profiles", QString("profile%1").arg(index)); + getset( _fwName, "fwName" ,"" ,"Profiles", QString("profile%1").arg(index)); + getset( _fwType, "fwType" ,"" ,"Profiles", QString("profile%1").arg(index)); getset( _name, "Name" ,"" ,"Profiles", QString("profile%1").arg(index)); getset( _sdPath, "sdPath" ,"" ,"Profiles", QString("profile%1").arg(index)); getset( _splashFile, "SplashFileName" ,"" ,"Profiles", QString("profile%1").arg(index)); getset( _burnFirmware, "burnFirmware" ,false ,"Profiles", QString("profile%1").arg(index)); getset( _renameFwFiles, "rename_firmware_files" ,false ,"Profiles", QString("profile%1").arg(index)); - getset( _patchImage, "patchImage" ,false ,"Profiles", QString("profile%1").arg(index)); getset( _channelOrder, "default_channel_order" ,0 ,"Profiles", QString("profile%1").arg(index)); getset( _defaultMode, "default_mode" ,1 ,"Profiles", QString("profile%1").arg(index)); @@ -464,7 +464,6 @@ QString AppData::compileServer() { return _compileServer; } QString AppData::cpuId() { return _cpuId; } QString AppData::dfuArguments() { return _dfuArguments; } QString AppData::dfuLocation() { return _dfuLocation; } -QString AppData::lastFw() { return _lastFw; } QString AppData::locale() { return _locale; } QString AppData::mcu() { return _mcu; } QString AppData::programmer() { return _programmer; } @@ -519,7 +518,6 @@ void AppData::compileServer (const QString x) { store(x, _compileServer, void AppData::cpuId (const QString x) { store(x, _cpuId, "cpu_id" );} void AppData::dfuArguments (const QString x) { store(x, _dfuArguments, "dfu_arguments" );} void AppData::dfuLocation (const QString x) { store(x, _dfuLocation, "dfu_location" );} -void AppData::lastFw (const QString x) { store(x, _lastFw, "lastFw" );} void AppData::locale (const QString x) { store(x, _locale, "locale" );} void AppData::mcu (const QString x) { store(x, _mcu, "mcu" );} void AppData::programmer (const QString x) { store(x, _programmer, "programmer" );} @@ -586,11 +584,11 @@ AppData::AppData() // Store old values in new locations autoCheckApp(settings.value("startup_check_companion9x", true).toBool()); - // Convert and store the firmware name - QString firmware = settings.value("firmware", "").toString(); - firmware.replace("open9x","opentx"); - firmware.replace("x9da","taranis"); - profile[0].firmware( firmware ); + // Convert and store the firmware type + QString fwType = settings.value("firmware", "").toString(); + fwType.replace("open9x","opentx"); + fwType.replace("x9da","taranis"); + profile[0].fwType( fwType ); // Move the Companion9x profile settings to profile0, the new default profile profile[0].name( settings.value( "Name", "" ).toString()); @@ -598,7 +596,6 @@ AppData::AppData() profile[0].splashFile( settings.value( "SplashFileName", "" ).toString()); profile[0].burnFirmware( settings.value( "burnFirmware", false ).toBool()); profile[0].renameFwFiles( settings.value( "rename_firmware_files", false ).toBool()); - profile[0].patchImage( settings.value( "patchImage", false ).toBool()); profile[0].channelOrder( settings.value( "default_channel_order", "0" ).toInt()); profile[0].defaultMode( settings.value( "default_mode", "1" ).toInt()); @@ -613,6 +610,7 @@ AppData::AppData() settings.remove("default_channel_order"); settings.remove("default_mode"); settings.remove("firmware"); + settings.remove("lastFw"); settings.remove("Name"); settings.remove("patchImage"); settings.remove("rename_firmware_files"); @@ -638,7 +636,6 @@ AppData::AppData() getset( _cpuId, "cpu_id" ,"" ); getset( _dfuArguments, "dfu_arguments" ,"-a 0" ); getset( _dfuLocation, "dfu_location" ,"" ); - getset( _lastFw, "lastFw" ,"" ); getset( _locale, "locale" ,"" ); getset( _mcu, "mcu" ,"m64" ); getset( _programmer, "programmer" ,"usbasp" ); diff --git a/companion/src/appdata.h b/companion/src/appdata.h index 210b8ae8f..479229221 100644 --- a/companion/src/appdata.h +++ b/companion/src/appdata.h @@ -92,13 +92,13 @@ class Profile: protected CompStoreObj int index; // Application Variables - QString _firmware; + QString _fwName; + QString _fwType; QString _name; QString _sdPath; QString _splashFile; bool _burnFirmware; bool _renameFwFiles; - bool _patchImage; int _channelOrder; int _defaultMode; @@ -118,13 +118,13 @@ class Profile: protected CompStoreObj public: // All the get definitions - QString firmware() const; + QString fwName() const; + QString fwType() const; QString name() const; QString sdPath() const; QString splashFile() const; bool burnFirmware() const; bool renameFwFiles() const; - bool patchImage() const; int channelOrder() const; int defaultMode() const; @@ -143,12 +143,12 @@ class Profile: protected CompStoreObj // All the set definitions void name (const QString); - void firmware (const QString); + void fwName (const QString); + void fwType (const QString); void sdPath (const QString); void splashFile (const QString); void burnFirmware (const bool); void renameFwFiles (const bool); - void patchImage (const bool); void channelOrder (const int); void defaultMode (const int); @@ -195,7 +195,6 @@ class AppData: protected CompStoreObj QString _cpuId; QString _dfuArguments; QString _dfuLocation; - QString _lastFw; QString _locale; QString _mcu; QString _programmer; @@ -251,7 +250,7 @@ class AppData: protected CompStoreObj QString cpuId(); QString dfuArguments(); QString dfuLocation(); - QString lastFw(); + QString lastFw(); QString locale(); QString mcu(); QString programmer(); @@ -287,7 +286,7 @@ class AppData: protected CompStoreObj int iconSize(); int historySize(); int jsCtrl(); - int modelEditTab(); + int modelEditTab(); // This variable is unused an can be removed int id(); int theme(); int warningId(); diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp index 5215fda5e..96f5268c3 100644 --- a/companion/src/apppreferencesdialog.cpp +++ b/companion/src/apppreferencesdialog.cpp @@ -63,7 +63,8 @@ void appPreferencesDialog::writeValues() g.profile[g.id()].name(ui->profileNameLE->text()); g.profile[g.id()].sdPath(ui->sdPath->text()); g.profile[g.id()].splashFile(ui->SplashFileName->text()); - g.profile[g.id()].firmware(ui->firmwareLE->text()); + g.profile[g.id()].fwName(ui->fwNameLE->text()); + g.profile[g.id()].fwType(ui->fwTypeLE->text()); saveProfile(); } @@ -145,7 +146,8 @@ void appPreferencesDialog::initSettings() ui->renameFirmware->setChecked(g.profile[g.id()].renameFwFiles()); ui->sdPath->setText(g.profile[g.id()].sdPath()); ui->profileNameLE->setText(g.profile[g.id()].name()); - ui->firmwareLE->setText(g.profile[g.id()].firmware()); + ui->fwNameLE->setText(g.profile[g.id()].fwName()); + ui->fwTypeLE->setText(g.profile[g.id()].fwType()); ui->SplashFileName->setText(g.profile[g.id()].splashFile()); displayImage( g.profile[g.id()].splashFile() ); @@ -248,7 +250,8 @@ void appPreferencesDialog::saveProfile() g.profile[g.id()].renameFwFiles( ui->renameFirmware->isChecked()); g.profile[g.id()].sdPath( ui->sdPath->text()); g.profile[g.id()].splashFile( ui->SplashFileName->text()); - g.profile[g.id()].firmware( ui->firmwareLE->text()); + g.profile[g.id()].fwName( ui->fwNameLE->text()); + g.profile[g.id()].fwType( ui->fwTypeLE->text()); } void appPreferencesDialog::on_removeProfileButton_clicked() @@ -274,31 +277,11 @@ bool appPreferencesDialog::displayImage( QString fileName ) // Use the firmware name to determine splash width int width = SPLASH_WIDTH; - if (g.profile[g.id()].firmware().contains("taranis")) + if (g.profile[g.id()].fwType().contains("taranis")) width = SPLASHX9D_WIDTH; - - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(width, SPLASH_HEIGHT))); - if (width==SPLASHX9D_WIDTH) { - image=image.convertToFormat(QImage::Format_RGB32); - QRgb col; - int gray, 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)); - } - } - ui->imageLabel->setPixmap(QPixmap::fromImage(image)); - } - else { - ui->imageLabel->setPixmap(QPixmap::fromImage(image.convertToFormat(QImage::Format_Mono))); - } - if (width == SPLASH_WIDTH) - ui->imageLabel->setFixedSize(SPLASH_WIDTH, SPLASH_HEIGHT); - else - ui->imageLabel->setFixedSize(SPLASHX9D_WIDTH, SPLASHX9D_HEIGHT); - + + ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType())); + ui->imageLabel->setFixedSize(width, SPLASH_HEIGHT); return true; } diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui index 98824f3b5..bdaaff9d4 100644 --- a/companion/src/apppreferencesdialog.ui +++ b/companion/src/apppreferencesdialog.ui @@ -502,7 +502,7 @@ Radio Settings Profile - + @@ -556,7 +556,7 @@ Mode 4: - + @@ -706,7 +706,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -726,7 +726,7 @@ This is used by the templated to determine which channel goes to what number out - + Qt::Vertical @@ -739,7 +739,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -752,7 +752,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -768,14 +768,14 @@ This is used by the templated to determine which channel goes to what number out - + Append version number to FW file name - + @@ -791,7 +791,7 @@ This is used by the templated to determine which channel goes to what number out - + true @@ -813,7 +813,7 @@ This is used by the templated to determine which channel goes to what number out - + Qt::Horizontal @@ -826,35 +826,35 @@ This is used by the templated to determine which channel goes to what number out - + Offer to write FW to Tx after download - + Remove Profile - + Open Folder - + Qt::Horizontal - + true @@ -879,12 +879,12 @@ This is used by the templated to determine which channel goes to what number out - Firmware + Firmware Variant - + false @@ -902,14 +902,14 @@ This is used by the templated to determine which channel goes to what number out - + Select Image - + Clear Image @@ -932,7 +932,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -956,7 +956,10 @@ This is used by the templated to determine which channel goes to what number out QFrame::Panel - QFrame::Raised + QFrame::Plain + + + 1 @@ -966,13 +969,39 @@ This is used by the templated to determine which channel goes to what number out - + Qt::Horizontal + + + + Firmware File + + + + + + + false + + + + 350 + 0 + + + + + 350 + 16777215 + + + + diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp index 764f84ab8..617c7ea9e 100644 --- a/companion/src/burndialog.cpp +++ b/companion/src/burndialog.cpp @@ -9,6 +9,7 @@ #include "hexinterface.h" #include "appdata.h" +// Type 1 = Burn EEPROM, Type 2= Burn Flash burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * backupEE, QString DocName): QDialog(parent), ui(new Ui::burnDialog), @@ -17,17 +18,25 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac hexType(Type) { ui->setupUi(this); - ui->libraryButton->setIcon(CompanionIcon("library.png")); + + if(!g.profile[g.id()].splashFile().isEmpty()){ + imageSource=PROFILE; + imageFile=g.profile[g.id()].splashFile(); + } + else{ + ui->useProfileImageCB->setDisabled(true); + imageSource=FIRMWARE; + imageFile=""; + } ui->SplashFrame->hide(); ui->FramFWInfo->hide(); ui->EEbackupCB->hide(); ui->EEbackupCB->setCheckState(*backup ? Qt::Checked : Qt::Unchecked); - if (Type == 2) { + if (Type == FLASH_FILE_TYPE ) { ui->EEpromCB->hide(); ui->profile_label->hide(); ui->patchcalib_CB->hide(); ui->patchhw_CB->hide(); - ui->InvertColorButton->setDisabled(true); setWindowTitle(tr("Write firmware to TX")); if (IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->hide(); @@ -39,12 +48,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->patchcalib_CB->hide(); ui->patchhw_CB->hide(); ui->EEpromCB->hide(); - ui->ImageLoadButton->setDisabled(true); - ui->libraryButton->setDisabled(true); - ui->InvertColorButton->setDisabled(true); ui->BurnFlashButton->setDisabled(true); - ui->ImageFileName->clear(); - ui->FwImage->clear(); ui->FWFileName->clear(); ui->DateField->clear(); ui->SVNField->clear(); @@ -63,7 +67,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac } if (!hexfileName->isEmpty()) { ui->FWFileName->setText(*hexfileName); - if (Type==2) { + if (Type==FLASH_FILE_TYPE) { checkFw(*hexfileName); } else { @@ -104,14 +108,14 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->FlashLoadButton->hide(); hexfileName->clear(); } - else if (Type==2) { - QString FileName; - FileName = g.lastFw(); + else if (Type==FLASH_FILE_TYPE) { + QString FileName = g.profile[g.id()].fwName(); QFile file(FileName); if (file.exists()) { checkFw(FileName); } } + updateUI(); resize(0, 0); } @@ -124,12 +128,7 @@ void burnDialog::on_FlashLoadButton_clicked() { QString fileName; - ui->ImageLoadButton->setDisabled(true); - ui->libraryButton->setDisabled(true); - ui->InvertColorButton->setDisabled(true); ui->BurnFlashButton->setDisabled(true); - ui->ImageFileName->clear(); - ui->FwImage->clear(); ui->FWFileName->clear(); ui->DateField->clear(); ui->SVNField->clear(); @@ -139,8 +138,10 @@ void burnDialog::on_FlashLoadButton_clicked() ui->BurnFlashButton->setDisabled(true); ui->EEbackupCB->hide(); QTimer::singleShot(0, this, SLOT(shrink())); - if (hexType==2) { + if (hexType==FLASH_FILE_TYPE) { fileName = QFileDialog::getOpenFileName(this, tr("Open Firmware File"), g.flashDir(), FLASH_FILES_FILTER); + if(fileName.isEmpty()) + return; checkFw(fileName); } else { @@ -169,6 +170,7 @@ void burnDialog::on_FlashLoadButton_clicked() QTimer::singleShot(0, this, SLOT(shrink())); } } + updateUI(); } void burnDialog::checkFw(QString fileName) @@ -176,6 +178,7 @@ void burnDialog::checkFw(QString fileName) if (fileName.isEmpty()) { return; } + if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->show(); } @@ -190,60 +193,17 @@ void burnDialog::checkFw(QString fileName) ui->DateField->setText(flash.getDate() + " " + flash.getTime()); ui->SVNField->setText(flash.getSvn()); ui->ModField->setText(flash.getBuild()); - ui->BurnFlashButton->setEnabled(true); - ui->BurnFlashButton->setText(tr("Write to TX")); + + ui->SplashFrame->hide(); if (flash.hasSplash()) { ui->SplashFrame->show(); - ui->ImageLoadButton->setEnabled(true); - ui->libraryButton->setEnabled(true); - ui->FwImage->setFixedSize(flash.getSplashWidth(), flash.getSplashHeight()); ui->imageLabel->setFixedSize(flash.getSplashWidth(), flash.getSplashHeight()); - ui->FwImage->show(); - ui->FwImage->setPixmap(QPixmap::fromImage(flash.getSplash())); - QString ImageStr = g.profile[g.id()].splashFile(); - bool PatchFwCB = g.profile[g.id()].patchImage(); - if (!ImageStr.isEmpty()) { - QImage Image; - Image.load(ImageStr); - ui->imageLabel->setPixmap(QPixmap::fromImage(Image.convertToFormat(flash.getSplashFormat()))); - ui->InvertColorButton->setEnabled(true); - ui->PreferredImageCB->setChecked(true); - ui->PatchFWCB->setChecked(PatchFwCB); - } - else { - QString fileName=ui->ImageFileName->text(); - if (!fileName.isEmpty()) { - QImage image(fileName); - if (!image.isNull()) { - ui->InvertColorButton->setEnabled(true); - 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 { - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - ui->PreferredImageCB->setDisabled(true); - } - } - else { - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - ui->PreferredImageCB->setDisabled(true); - } - } - } - else { - ui->FwImage->hide(); - ui->ImageFileName->setText(""); - ui->SplashFrame->hide(); } } 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); + QMessageBox::warning(this, tr("Warning"), tr("%1 may not be a valid firmware file").arg(fileName)); } + ui->BurnFlashButton->setEnabled(true); QTimer::singleShot(0, this, SLOT(shrink())); g.flashDir( QFileInfo(fileName).dir().absolutePath() ); } @@ -338,51 +298,92 @@ bool burnDialog::checkeEprom(QString fileName) return true; } -void burnDialog::on_ImageLoadButton_clicked() +void burnDialog::displaySplash() +{ + QImage image; + if (imageSource == FIRMWARE){ + FlashInterface flash(ui->FWFileName->text()); + image = flash.getSplash(); + } + else{ + image.load(imageFile); + } + if (image.isNull()) { + return; + } + ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType())); +} + +void burnDialog::updateUI() +{ + if (hexType==EEPROM_FILE_TYPE) + return; + + ui->useProfileImageCB->setChecked( imageSource == PROFILE ); + ui->useFwImageCB->setChecked( imageSource == FIRMWARE ); + ui->useLibraryImageCB->setChecked( imageSource == LIBRARY ); + ui->useAnotherImageCB->setChecked( imageSource == ANOTHER ); + + displaySplash(); +} + +void burnDialog::on_useFwImageCB_clicked() +{ + QString fileName = ui->FWFileName->text(); + FlashInterface flash(fileName); + if (!flash.isValid()) { + QMessageBox::critical(this, tr("Error"), tr( "The firmware file is not valid." )); + } + else { + if (!flash.hasSplash()) { + QMessageBox::critical(this, tr("Error"), tr( "There is no start screen image in the firmware file." )); + } + else{ + imageSource = FIRMWARE; + imageFile = fileName; + } + } + updateUI(); +} + +void burnDialog::on_useProfileImageCB_clicked() +{ + QString fileName = g.profile[g.id()].splashFile(); + if (!fileName.isEmpty()){ + QImage image(fileName); + if (image.isNull()) { + QMessageBox::critical(this, tr("Error"), tr("The profile image %1 does not contain an image.").arg(fileName)); + } + else { + imageSource = PROFILE; + imageFile = fileName; + } + } + updateUI(); +} + +void burnDialog::on_useAnotherImageCB_clicked() { QString supportedImageFormats; for (int formatIndex = 0; formatIndex < QImageReader::supportedImageFormats().count(); formatIndex++) { supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex]; } - - QString fileName = QFileDialog::getOpenFileName(this, - tr("Open Image to load"), g.imagesDir(), tr("Images (%1)").arg(supportedImageFormats)); - - if (!fileName.isEmpty()) { + QString fileName = QFileDialog::getOpenFileName(this, tr("Open image file to use as Tx start screen"), g.imagesDir(), tr("Images (%1)").arg(supportedImageFormats)); + if (!fileName.isEmpty()){ g.imagesDir( QFileInfo(fileName).dir().absolutePath() ); QImage image(fileName); if (image.isNull()) { - QMessageBox::critical(this, tr("Error"), tr("Cannot load %1.").arg(fileName)); - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - ui->InvertColorButton->setDisabled(true); - return; + QMessageBox::critical(this, tr("Error"), tr("Image could not be loaded from %1").arg(fileName)); } - ui->ImageFileName->setText(fileName); - ui->InvertColorButton->setEnabled(true); - if (ui->imageLabel->width()!=128) { - image=image.convertToFormat(QImage::Format_RGB32); - QRgb col; - 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)); - } - } - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()))); - } - else { - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono))); - } - ui->PatchFWCB->setEnabled(true); + else{ + imageSource = ANOTHER; + imageFile = fileName; + } } + updateUI(); } -void burnDialog::on_libraryButton_clicked() +void burnDialog::on_useLibraryImageCB_clicked() { QString fileName; splashLibrary *ld = new splashLibrary(this,&fileName); @@ -390,49 +391,26 @@ void burnDialog::on_libraryButton_clicked() if (!fileName.isEmpty()) { QImage image(fileName); if (image.isNull()) { - QMessageBox::critical(this, tr("Error"), tr("Cannot load %1.").arg(fileName)); - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - ui->InvertColorButton->setDisabled(true); - return; + QMessageBox::critical(this, tr("Error"), tr("The library image could not be loaded")); } - ui->ImageFileName->setText(fileName); - ui->InvertColorButton->setEnabled(true); - if (ui->imageLabel->width()!=128) { - image=image.convertToFormat(QImage::Format_RGB32); - QRgb col; - 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)); - } - } - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()))); - } else { - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono))); + else{ + imageSource = LIBRARY; + imageFile = fileName; } - ui->PatchFWCB->setEnabled(true); } + updateUI(); } void burnDialog::on_BurnFlashButton_clicked() { - if (hexType==2) { + if (hexType==FLASH_FILE_TYPE) { QString fileName=ui->FWFileName->text(); if (!fileName.isEmpty()) { g.flashDir( QFileInfo(fileName).dir().absolutePath() ); - g.lastFw( fileName ); - if (ui->PatchFWCB->isChecked()) { - g.profile[g.id()].patchImage( true ); + if (!ui->useFwImageCB->isChecked()) { QImage image = ui->imageLabel->pixmap()->toImage().scaled(ui->imageLabel->width(), ui->imageLabel->height()); if (!image.isNull()) { - QString tempDir = QDir::tempPath(); + QString tempDir = QDir::tempPath(); QString tempFile; if (getFileType(fileName) == FILE_TYPE_HEX) tempFile = tempDir + "/flash.hex"; @@ -452,7 +430,6 @@ void burnDialog::on_BurnFlashButton_clicked() QMessageBox::critical(this, tr("Warning"), tr("Custom image not found")); } } else { - g.profile[g.id()].patchImage( false ); hexfileName->clear(); hexfileName->append(fileName); } @@ -461,7 +438,7 @@ void burnDialog::on_BurnFlashButton_clicked() hexfileName->clear(); } } - if (hexType==1) { + if (hexType==EEPROM_FILE_TYPE) { QString calib = g.profile[g.id()].stickPotCalib(); QString trainercalib = g.profile[g.id()].trainerCalib(); int potsnum=GetEepromInterface()->getCapability(Pots); @@ -610,99 +587,9 @@ void burnDialog::on_cancelButton_clicked() this->close(); } -void burnDialog::on_InvertColorButton_clicked() -{ - if (ui->imageLabel->pixmap()) { - QImage image = ui->imageLabel->pixmap()->toImage(); - image.invertPixels(); - ui->imageLabel->setPixmap(QPixmap::fromImage(image)); - } -} - void burnDialog::on_EEpromCB_toggled(bool checked) { - if (ui->EEpromCB->isChecked()) { - *backup=true; - } else { - *backup=false; - } -} - -void burnDialog::on_PreferredImageCB_toggled(bool checked) -{ - QString tmpFileName; - if (checked) { - QString ImageStr = g.profile[g.id()].splashFile(); - if (!ImageStr.isEmpty()) { - QImage Image; - Image.load( ImageStr ); - if (ui->imageLabel->width()!=128) { - Image=Image.convertToFormat(QImage::Format_RGB32); - QRgb col; - 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)); - } - } - } else { - Image=Image.convertToFormat(QImage::Format_Mono); - } - ui->imageLabel->setPixmap(QPixmap::fromImage(Image)); - ui->InvertColorButton->setEnabled(true); - ui->PreferredImageCB->setChecked(true); - ui->ImageFileName->setDisabled(true); - ui->ImageLoadButton->setDisabled(true); - ui->libraryButton->setDisabled(true); - ui->PatchFWCB->setEnabled(true); - } - } else { - ui->imageLabel->clear(); - ui->ImageLoadButton->setEnabled(true); - ui->libraryButton->setEnabled(true); - tmpFileName = ui->ImageFileName->text(); - if (!tmpFileName.isEmpty()) { - QImage image(tmpFileName); - if (!image.isNull()) { - if (ui->imageLabel->width()!=128) { - image=image.convertToFormat(QImage::Format_RGB32); - QRgb col; - 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)); - } - } - } else { - image=image.convertToFormat(QImage::Format_Mono); - } - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()))); - ui->InvertColorButton->setEnabled(true); - ui->ImageFileName->setEnabled(true); - ui->PatchFWCB->setDisabled(false); - } else { - ui->InvertColorButton->setDisabled(true); - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - } - } else { - ui->InvertColorButton->setDisabled(true); - ui->PatchFWCB->setDisabled(true); - ui->PatchFWCB->setChecked(false); - } - } + *backup = ui->EEpromCB->isChecked(); } void burnDialog::shrink() @@ -712,9 +599,5 @@ void burnDialog::shrink() void burnDialog::on_EEbackupCB_clicked() { - if (ui->EEbackupCB->isChecked()) { - *backup=true; - } else { - *backup=false; - } + *backup = ui->EEbackupCB->isChecked(); } diff --git a/companion/src/burndialog.h b/companion/src/burndialog.h index 40068f3ac..1ffac2b92 100644 --- a/companion/src/burndialog.h +++ b/companion/src/burndialog.h @@ -19,6 +19,8 @@ #define ER9X_EEPROM_FILE_TYPE "ER9X_EEPROM_FILE" #define EEPE_EEPROM_FILE_HEADER "EEPE EEPROM FILE" #define EEPE_MODEL_FILE_HEADER "EEPE MODEL FILE" +#define EEPROM_FILE_TYPE 1 +#define FLASH_FILE_TYPE 2 namespace Ui @@ -36,18 +38,22 @@ public: private slots: void on_FlashLoadButton_clicked(); - void on_ImageLoadButton_clicked(); - void on_libraryButton_clicked(); void on_BurnFlashButton_clicked(); void on_cancelButton_clicked(); - void on_InvertColorButton_clicked(); void on_EEbackupCB_clicked(); - void on_PreferredImageCB_toggled(bool checked); - void on_EEpromCB_toggled(bool checked); - void checkFw(QString fileName); + void on_EEpromCB_toggled(bool checked); bool checkeEprom(QString fileName); + void on_useProfileImageCB_clicked(); + void on_useFwImageCB_clicked(); + void on_useLibraryImageCB_clicked(); + void on_useAnotherImageCB_clicked(); + + void checkFw(QString fileName); + void displaySplash(); + void updateUI(); void shrink(); + private: Ui::burnDialog *ui; QString * hexfileName; @@ -55,6 +61,9 @@ private: int hexType; RadioData radioData; bool burnraw; + enum ImageSource {FIRMWARE, PROFILE, LIBRARY, ANOTHER}; + ImageSource imageSource; + QString imageFile; }; #endif // BURNDIALOG_H diff --git a/companion/src/burndialog.ui b/companion/src/burndialog.ui index e86634e9a..772304390 100644 --- a/companion/src/burndialog.ui +++ b/companion/src/burndialog.ui @@ -7,7 +7,7 @@ 0 0 440 - 418 + 423 @@ -30,21 +30,8 @@ :/icon.png:/icon.png - + - - - - Qt::Vertical - - - - 20 - 0 - - - - @@ -71,19 +58,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -100,19 +74,6 @@ - - - - Qt::Horizontal - - - - 48 - 20 - - - - @@ -152,56 +113,22 @@ QFrame::Raised - - - - - 0 - 0 - - - - - 128 - 64 - - - - - 212 - 64 - - - - QFrame::Panel - - - QFrame::Raised - - - - - - true - - - - - + + true - - + + - Date & Time + Variant - - + + true @@ -214,17 +141,17 @@ - - - - true + + + + Date & Time - - - - Variant + + + + true @@ -325,17 +252,10 @@ - - - - - - - Invert Color - - - - + + + + @@ -359,7 +279,7 @@ QFrame::Panel - QFrame::Raised + QFrame::Plain @@ -369,10 +289,50 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + - + + + Use firmware start screen + + + + + + + Use another start screen + + + + + 0 @@ -380,86 +340,14 @@ - Use image in settings - - - - - - - Substitute image in firmware + Use profile start screen - - - Qt::Vertical - - - - 20 - 13 - - - - - - - - Qt::Vertical - - - - 20 - 13 - - - - - - - - - - - - true - - - - 0 - 0 - - - - true - - - - - - - false - + - Load Image - - - - - - - Open Splash Library - - - ... - - - - 16 - 16 - + Use library start screen @@ -470,18 +358,37 @@ + + + + Qt::Vertical + + + + 20 + 0 + + + + + BurnFlashButton FWFileName FlashLoadButton - ImageFileName - ImageLoadButton - libraryButton + DateField + SVNField + ModField + useProfileImageCB + useFwImageCB + useLibraryImageCB + useAnotherImageCB EEbackupCB + patchcalib_CB + patchhw_CB EEpromCB cancelButton - BurnFlashButton diff --git a/companion/src/companion.cpp b/companion/src/companion.cpp index 96a6d5597..37a988273 100644 --- a/companion/src/companion.cpp +++ b/companion/src/companion.cpp @@ -95,15 +95,18 @@ int main(int argc, char *argv[]) QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); - if (g.profile[g.id()].firmware().isEmpty()) - g.profile[g.id()].firmware(default_firmware_variant.id); + if (g.profile[g.id()].fwType().isEmpty()){ + g.profile[g.id()].fwType(default_firmware_variant.id); + g.profile[g.id()].fwName(""); + } + - QPixmap pixmap = QPixmap(g.profile[g.id()].firmware().contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png"); + QPixmap pixmap = QPixmap(g.profile[g.id()].fwType().contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png"); QSplashScreen *splash = new QSplashScreen(pixmap); RegisterFirmwares(); - current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].firmware()); + current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].fwType()); MainWindow *mainWin = new MainWindow(); if (g.showSplash()) { diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 1c4550d1a..c6246f314 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -168,131 +168,57 @@ images/library/00009.png images/library/00010.png images/library/00011.png - images/library/00012.png images/library/00013.png images/library/00014.png images/library/00015.png images/library/00016.png - images/library/01001.png - images/library/01002.png - images/library/01003.png - images/library/01004.png - images/library/01005.png - images/library/01006.png - images/library/01007.png - images/library/01008.png + images/library/00017.png + images/library/00018.png + images/library/00019.png + images/library/00020.png + images/library/00021.png + images/library/00022.png + images/library/00023.png + images/library/00024.png + images/library/00051.png + images/library/00100.png + images/library/00101.png + images/library/00102.png + images/library/00103.png + images/library/00104.png + images/library/00105.png + images/library/00106.png + images/library/00201.png + images/library/00202.png + images/library/00203.png + images/library/00204.png + images/library/00301.png + images/library/00302.png + images/library/00303.png + images/library/00304.png + images/library/00401.png + images/library/00402.png + images/library/00403.png + images/library/00404.png + images/library/00501.png images/library/10001.png images/library/10002.png images/library/10003.png - images/library/10004.png - images/library/10005.png - images/library/10006.png - images/library/10007.png - images/library/10008.png - images/library/10009.png - images/library/10010.png - images/library/10011.png - images/library/10012.png - images/library/10013.png - images/library/10014.png - images/library/10015.png - images/library/10016.png - images/library/10017.png - images/library/10018.png - images/library/10019.png - images/library/10020.png - images/library/10021.png - images/library/10022.png - images/library/10023.png - images/library/10024.png - images/library/10033.png - images/library/10034.png - images/library/10035.png - images/library/10036.png - images/library/10049.png - images/library/10050.png - images/library/10051.png - images/library/10052.png - images/library/10037.png - images/library/10038.png - images/library/10039.png - images/library/10040.png - images/library/10053.png - images/library/10054.png - images/library/10055.png - images/library/10056.png - images/library/10025.png - images/library/10026.png - images/library/10027.png - images/library/10028.png - images/library/10029.png - images/library/10030.png - images/library/10031.png - images/library/10032.png - images/library/10041.png - images/library/10042.png - images/library/10043.png - images/library/10044.png - images/library/10057.png - images/library/10058.png - images/library/10059.png - images/library/10060.png - images/library/10045.png - images/library/10046.png - images/library/10047.png - images/library/10048.png - images/library/10061.png - images/library/10062.png - images/library/10063.png - images/library/10064.png - images/library/10065.png - images/library/10066.png - images/library/10067.png - images/library/10068.png - images/library/10081.png - images/library/10082.png - images/library/10083.png - images/library/10084.png - images/library/10069.png - images/library/10070.png - images/library/10071.png - images/library/10072.png - images/library/10085.png - images/library/10086.png - images/library/10087.png - images/library/10088.png - images/library/10073.png - images/library/10074.png - images/library/10075.png - images/library/10076.png - images/library/10089.png - images/library/10090.png - images/library/10091.png - images/library/10092.png - images/library/10077.png - images/library/10078.png - images/library/10079.png - images/library/10080.png - images/library/10093.png - images/library/10094.png - images/library/10095.png - images/library/10096.png - images/library/10097.png - images/library/10098.png - images/library/10099.png - images/library/10100.png images/library/10101.png images/library/10102.png images/library/10103.png - images/library/10104.png - images/library/20001.png - images/library/20002.png - images/library/20003.png - images/library/20004.png - images/library/30001.png - images/library/30002.png - images/library/30003.png - images/library/30004.png + images/library/10501.png + images/library/10502.png + images/library/10503.png + images/library/10504.png + images/library/10505.png + images/library/10506.png + images/library/10508.png + images/library/10601.png + images/library/10701.png + images/library/10702.png + images/library/10801.png + images/library/10802.png themes/monochrome/16/paintbrush.png themes/monochrome/16/open.png themes/monochrome/16/edit.png diff --git a/companion/src/customizesplashdialog.cpp b/companion/src/customizesplashdialog.cpp index 1be93d4a5..42bf463da 100644 --- a/companion/src/customizesplashdialog.cpp +++ b/companion/src/customizesplashdialog.cpp @@ -41,7 +41,7 @@ bool Side::displayImage( QString fileName, Source pictSource ) if (fileName.isEmpty()) return false; - + // Determine which picture format to use if (pictSource == FW ){ FlashInterface flash(fileName); @@ -49,60 +49,46 @@ bool Side::displayImage( QString fileName, Source pictSource ) return false; else image = flash.getSplash(); - *format = (flash.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X); + *format = (flash.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X); } else { image.load(fileName); if (pictSource== PICT) *format = image.width()>WIDTH_9X ? LCDTARANIS : LCD9X; else if (pictSource == PROFILE) - *format = (g.profile[g.id()].firmware().contains("taranis")) ? LCDTARANIS : LCD9X; + *format = (g.profile[g.id()].fwType().contains("taranis")) ? LCDTARANIS : LCD9X; } if (image.isNull()) { return false; } - // Prepare and display image + // Load image if (*format==LCDTARANIS) { - image=image.convertToFormat(QImage::Format_RGB32); - QRgb col; - 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)); - } - } - imageLabel->setPixmap(QPixmap::fromImage(image.scaled(imageLabel->width()/2, imageLabel->height()/2))); + imageLabel->setPixmap( makePixMap( image, "taranis" )); + imageLabel->setFixedSize(WIDTH_TARANIS*2, HEIGHT_TARANIS*2); } - else - imageLabel->setPixmap(QPixmap::fromImage(image.scaled(imageLabel->width()/2, imageLabel->height()/2).convertToFormat(QImage::Format_Mono))); - - if (*format == LCD9X) - imageLabel->setFixedSize(WIDTH_9X*2, HEIGHT_9X*2); - else - imageLabel->setFixedSize(WIDTH_TARANIS*2, HEIGHT_TARANIS*2); - + else { + imageLabel->setPixmap( makePixMap( image, "9x" )); + imageLabel->setFixedSize(WIDTH_9X*2, HEIGHT_9X*2); + } + switch (pictSource){ - case FW: - fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName)); - *saveToFileName = fileName; - *source=FW; - break; - case PICT: - fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName)); - *saveToFileName = fileName; - *source=PICT; - break; - case PROFILE: - fileNameEdit->setText(QObject::tr("Profile image")); - *saveToFileName = fileName; - *source=PROFILE; - break; - default: - break; + case FW: + fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName)); + *saveToFileName = fileName; + *source=FW; + break; + case PICT: + fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName)); + *saveToFileName = fileName; + *source=PICT; + break; + case PROFILE: + fileNameEdit->setText(QObject::tr("Profile image")); + *saveToFileName = fileName; + *source=PROFILE; + break; + default: + break; } saveButton->setEnabled(true); libraryButton->setEnabled(true); diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 07919466c..6a85f8cf9 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -74,7 +74,7 @@ const uint8_t modn12x3[4][4]= { #define C9X_MAX_ENCODERS 2 #define C9X_NUM_CHNOUT 32 // number of real output channels #define C9X_NUM_CSW 32 // number of custom switches -#define C9X_MAX_CUSTOM_FUNCTIONS 32 // number of functions assigned to switches +#define C9X_MAX_CUSTOM_FUNCTIONS 64 // number of functions assigned to switches #define C9X_NUM_MODULES 2 #define STK_RUD 1 @@ -856,7 +856,7 @@ class ModuleData { void clear() { memset(this, 0, sizeof(ModuleData)); } }; -#define C9X_MAX_SCRIPTS 3 +#define C9X_MAX_SCRIPTS 7 #define C9X_MAX_SCRIPT_INPUTS 10 class ScriptData { public: diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 37f148900..ebbc010ec 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -20,7 +20,7 @@ #define MAX_CHANNELS(board, version) (IS_ARM(board) ? 32 : 16) #define MAX_EXPOS(board, version) (IS_ARM(board) ? ((IS_TARANIS(board) && version >= 216) ? 64 : 32) : (IS_DBLRAM(board, version) ? 16 : 14)) #define MAX_CUSTOM_SWITCHES(board, version) (IS_ARM(board) ? 32 : (IS_DBLEEPROM(board, version) ? 15 : 12)) -#define MAX_CUSTOM_FUNCTIONS(board, version) (IS_ARM(board) ? 32 : (IS_DBLEEPROM(board, version) ? 24 : 16)) +#define MAX_CUSTOM_FUNCTIONS(board, version) (IS_ARM(board) ? (version >= 216 ? 64 : 32) : (IS_DBLEEPROM(board, version) ? 24 : 16)) #define MAX_CURVES(board, version) (IS_ARM(board) ? ((IS_TARANIS(board) && version >= 216) ? 32 : 16) : O9X_MAX_CURVES) #define MAX_GVARS(board, version) ((IS_ARM(board) && version >= 216) ? 9 : 5) @@ -164,7 +164,7 @@ class SourcesConversionTable: public ConversionTable { if (IS_TARANIS(board) && version >= 216) { for (int i=0; i<32; i++) addConversion(RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i), val++); - for (int i=0; i<3; i++) { + for (int i=0; i<7; i++) { for (int j=0; j<6; j++) { addConversion(RawSource(SOURCE_TYPE_LUA_INPUT, i*16+j), val++); } @@ -1429,7 +1429,9 @@ class ArmCustomFunctionField: public TransformedField { internalField.Append(new SwitchField<8>(fn.swtch, board, version)); internalField.Append(new ConversionField< UnsignedField<8> >((unsigned int &)fn.func, &functionsConversionTable, "Function", ::QObject::tr("OpenTX on this board doesn't accept this function"))); - if (IS_TARANIS(board)) + if (IS_TARANIS(board) && version >= 216) + internalField.Append(new CharField<8>(_param, false)); + else if (IS_TARANIS(board)) internalField.Append(new CharField<10>(_param, false)); else internalField.Append(new CharField<6>(_param, false)); @@ -2208,7 +2210,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u } if (IS_TARANIS(board) && version >= 216) { - for (int i=0; i<3; i++) { + for (int i=0; i<7; i++) { ScriptData & script = modelData.scriptData[i]; internalField.Append(new ZCharField<10>(script.filename)); internalField.Append(new ZCharField<10>(script.name)); diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 0b832e086..2f4b0409b 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -517,7 +517,7 @@ int OpenTxInterface::getCapability(const Capability capability) return (IS_TARANIS(board) ? 22 : 9); case CustomFunctions: if (IS_ARM(board)) - return 32; + return 64; else if (board==BOARD_GRUVIN9X||board==BOARD_M128) return 24; else @@ -550,7 +550,7 @@ int OpenTxInterface::getCapability(const Capability capability) case VoicesAsNumbers: return (IS_ARM(board) ? 0 : 1); case VoicesMaxLength: - return (IS_ARM(board) ? (IS_TARANIS(board) ? 10 : 6) : 0); + return (IS_ARM(board) ? (IS_TARANIS(board) ? 8 : 6) : 0); case MultiLangVoice: return (IS_ARM(board) ? 1 : 0); case SoundPitch: diff --git a/companion/src/fwpreferencesdialog.cpp b/companion/src/fwpreferencesdialog.cpp index 17c7c6caf..ec2585ddc 100644 --- a/companion/src/fwpreferencesdialog.cpp +++ b/companion/src/fwpreferencesdialog.cpp @@ -213,7 +213,7 @@ void fwPreferencesDialog::writeValues() { g.cpuId( ui->CPU_ID_LE->text() ); current_firmware_variant = getFirmwareVariant(); - g.profile[g.id()].firmware( current_firmware_variant.id ); + g.profile[g.id()].fwType( current_firmware_variant.id ); } void fwPreferencesDialog::populateFirmwareOptions(const FirmwareInfo * firmware) @@ -290,7 +290,7 @@ void fwPreferencesDialog::on_checkFWUpdates_clicked() FirmwareVariant variant = getFirmwareVariant(); if (g.profile[g.id()].burnFirmware()) { current_firmware_variant = variant; - g.profile[g.id()].firmware( variant.id ); + g.profile[g.id()].fwType( variant.id ); } MainWindow * mw = (MainWindow *)this->parent(); mw->checkForUpdates(true, variant.id); @@ -305,7 +305,7 @@ void fwPreferencesDialog::on_fw_dnld_clicked() if (!variant.firmware->getUrl(variant.id).isNull()) { if (g.profile[g.id()].burnFirmware()) { current_firmware_variant = getFirmwareVariant(); - g.profile[g.id()].firmware( current_firmware_variant.id ); + g.profile[g.id()].fwType( current_firmware_variant.id ); } mw->downloadLatestFW(current_firmware_variant.firmware, current_firmware_variant.id); } diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp index 6e96e0368..8cccc654c 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(CompanionIcon("open.png")); - QString firmware_id = g.profile[g.id()].firmware(); + QString firmware_id = g.profile[g.id()].fwType(); ui->tabWidget->setCurrentIndex( g.generalEditTab() ); QString name=g.profile[g.id()].name(); if (name.isEmpty()) { @@ -74,7 +74,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : if (!name.isEmpty()) { ui->profile_CB->addItem(name, i); if (i==g.id()) { - ui->profile_CB->setCurrentIndex(ui->profile_CB->count()); + ui->profile_CB->setCurrentIndex(ui->profile_CB->count()-1); } } } diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index 99dec9a63..2c7f9fc0c 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -2,6 +2,7 @@ #include "appdata.h" #include "helpers.h" #include "simulatordialog.h" +#include "flashinterface.h" QString getPhaseName(int val, char * phasename) { @@ -946,3 +947,24 @@ void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx) QObject::tr("Simulator for this firmware is not yet available")); } } + +QPixmap makePixMap( QImage image, QString firmwareType ) +{ + if (firmwareType.contains( "taranis" )) { + image = image.convertToFormat(QImage::Format_RGB32); + QRgb col; + int gray; + for (int i = 0; i < image.width(); ++i) { + for (int j = 0; j < image.height(); ++j) { + col = image.pixel(i, j); + gray = qGray(col); + image.setPixel(i, j, qRgb(gray, gray, gray)); + } + } + image = image.scaled(SPLASHX9D_WIDTH, SPLASHX9D_HEIGHT); + } + else { + image = image.scaled(SPLASH_WIDTH, SPLASH_HEIGHT).convertToFormat(QImage::Format_Mono); + } + return(QPixmap::fromImage(image)); +} diff --git a/companion/src/helpers.h b/companion/src/helpers.h index fdebcb170..5d667e5d8 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -128,4 +128,6 @@ QString getFrSkySrc(int index); void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx); +QPixmap makePixMap( QImage image, QString firmwareType ); + #endif // HELPERS_H diff --git a/companion/src/images/library/00001.png b/companion/src/images/library/00001.png index 57c8485a9..43cd387dc 100644 Binary files a/companion/src/images/library/00001.png and b/companion/src/images/library/00001.png differ diff --git a/companion/src/images/library/00002.png b/companion/src/images/library/00002.png index d7f9c54b0..37b24b0d7 100644 Binary files a/companion/src/images/library/00002.png and b/companion/src/images/library/00002.png differ diff --git a/companion/src/images/library/00003.png b/companion/src/images/library/00003.png index 9f3c5d78e..a179deadf 100644 Binary files a/companion/src/images/library/00003.png and b/companion/src/images/library/00003.png differ diff --git a/companion/src/images/library/00004.png b/companion/src/images/library/00004.png index 60858b556..5982d425c 100644 Binary files a/companion/src/images/library/00004.png and b/companion/src/images/library/00004.png differ diff --git a/companion/src/images/library/00005.png b/companion/src/images/library/00005.png index 6d5a1d93d..34e83f860 100644 Binary files a/companion/src/images/library/00005.png and b/companion/src/images/library/00005.png differ diff --git a/companion/src/images/library/00006.png b/companion/src/images/library/00006.png index 64eca2f66..7a9064c93 100644 Binary files a/companion/src/images/library/00006.png and b/companion/src/images/library/00006.png differ diff --git a/companion/src/images/library/00007.png b/companion/src/images/library/00007.png index fa384d1e6..802e9885a 100644 Binary files a/companion/src/images/library/00007.png and b/companion/src/images/library/00007.png differ diff --git a/companion/src/images/library/00008.png b/companion/src/images/library/00008.png index ed7a1c01f..802e9885a 100644 Binary files a/companion/src/images/library/00008.png and b/companion/src/images/library/00008.png differ diff --git a/companion/src/images/library/00009.png b/companion/src/images/library/00009.png index 6d199bb6f..802e9885a 100644 Binary files a/companion/src/images/library/00009.png and b/companion/src/images/library/00009.png differ diff --git a/companion/src/images/library/00010.png b/companion/src/images/library/00010.png index 2b2081c88..0218d0570 100644 Binary files a/companion/src/images/library/00010.png and b/companion/src/images/library/00010.png differ diff --git a/companion/src/images/library/00012.png b/companion/src/images/library/00012.png index f054a15d8..64eca2f66 100644 Binary files a/companion/src/images/library/00012.png and b/companion/src/images/library/00012.png differ diff --git a/companion/src/images/library/00017.png b/companion/src/images/library/00017.png new file mode 100644 index 000000000..678355ae0 Binary files /dev/null and b/companion/src/images/library/00017.png differ diff --git a/companion/src/images/library/00018.png b/companion/src/images/library/00018.png new file mode 100644 index 000000000..fa384d1e6 Binary files /dev/null and b/companion/src/images/library/00018.png differ diff --git a/companion/src/images/library/00019.png b/companion/src/images/library/00019.png new file mode 100644 index 000000000..6d5a1d93d Binary files /dev/null and b/companion/src/images/library/00019.png differ diff --git a/companion/src/images/library/00020.png b/companion/src/images/library/00020.png new file mode 100644 index 000000000..9f3c5d78e Binary files /dev/null and b/companion/src/images/library/00020.png differ diff --git a/companion/src/images/library/00021.png b/companion/src/images/library/00021.png new file mode 100644 index 000000000..f054a15d8 Binary files /dev/null and b/companion/src/images/library/00021.png differ diff --git a/companion/src/images/library/00022.png b/companion/src/images/library/00022.png new file mode 100644 index 000000000..ed7a1c01f Binary files /dev/null and b/companion/src/images/library/00022.png differ diff --git a/companion/src/images/library/00023.png b/companion/src/images/library/00023.png new file mode 100644 index 000000000..6d199bb6f Binary files /dev/null and b/companion/src/images/library/00023.png differ diff --git a/companion/src/images/library/00024.png b/companion/src/images/library/00024.png new file mode 100644 index 000000000..2b2081c88 Binary files /dev/null and b/companion/src/images/library/00024.png differ diff --git a/companion/src/images/library/00031.png b/companion/src/images/library/00031.png new file mode 100644 index 000000000..4a92323e5 Binary files /dev/null and b/companion/src/images/library/00031.png differ diff --git a/companion/src/images/library/00051.png b/companion/src/images/library/00051.png new file mode 100644 index 000000000..c1f70cd82 Binary files /dev/null and b/companion/src/images/library/00051.png differ diff --git a/companion/src/images/library/00100.png b/companion/src/images/library/00100.png new file mode 100644 index 000000000..12fd5b70f Binary files /dev/null and b/companion/src/images/library/00100.png differ diff --git a/companion/src/images/library/00101.png b/companion/src/images/library/00101.png new file mode 100644 index 000000000..277f90714 Binary files /dev/null and b/companion/src/images/library/00101.png differ diff --git a/companion/src/images/library/00102.png b/companion/src/images/library/00102.png new file mode 100644 index 000000000..5319738e6 Binary files /dev/null and b/companion/src/images/library/00102.png differ diff --git a/companion/src/images/library/00103.png b/companion/src/images/library/00103.png new file mode 100644 index 000000000..ededfb8ac Binary files /dev/null and b/companion/src/images/library/00103.png differ diff --git a/companion/src/images/library/00104.png b/companion/src/images/library/00104.png new file mode 100644 index 000000000..c2649499d Binary files /dev/null and b/companion/src/images/library/00104.png differ diff --git a/companion/src/images/library/00105.png b/companion/src/images/library/00105.png new file mode 100644 index 000000000..c109f03f1 Binary files /dev/null and b/companion/src/images/library/00105.png differ diff --git a/companion/src/images/library/00106.png b/companion/src/images/library/00106.png new file mode 100644 index 000000000..01476b196 Binary files /dev/null and b/companion/src/images/library/00106.png differ diff --git a/companion/src/images/library/00201.png b/companion/src/images/library/00201.png new file mode 100644 index 000000000..a5e6349a3 Binary files /dev/null and b/companion/src/images/library/00201.png differ diff --git a/companion/src/images/library/10011.png b/companion/src/images/library/00202.png similarity index 100% rename from companion/src/images/library/10011.png rename to companion/src/images/library/00202.png diff --git a/companion/src/images/library/10007.png b/companion/src/images/library/00203.png similarity index 100% rename from companion/src/images/library/10007.png rename to companion/src/images/library/00203.png diff --git a/companion/src/images/library/10015.png b/companion/src/images/library/00204.png similarity index 100% rename from companion/src/images/library/10015.png rename to companion/src/images/library/00204.png diff --git a/companion/src/images/library/10094.png b/companion/src/images/library/00301.png similarity index 100% rename from companion/src/images/library/10094.png rename to companion/src/images/library/00301.png diff --git a/companion/src/images/library/10096.png b/companion/src/images/library/00302.png similarity index 100% rename from companion/src/images/library/10096.png rename to companion/src/images/library/00302.png diff --git a/companion/src/images/library/10070.png b/companion/src/images/library/00303.png similarity index 100% rename from companion/src/images/library/10070.png rename to companion/src/images/library/00303.png diff --git a/companion/src/images/library/00304.png b/companion/src/images/library/00304.png new file mode 100644 index 000000000..936732b2e Binary files /dev/null and b/companion/src/images/library/00304.png differ diff --git a/companion/src/images/library/00401.png b/companion/src/images/library/00401.png new file mode 100644 index 000000000..553abc70b Binary files /dev/null and b/companion/src/images/library/00401.png differ diff --git a/companion/src/images/library/00402.png b/companion/src/images/library/00402.png new file mode 100644 index 000000000..ec94b1a34 Binary files /dev/null and b/companion/src/images/library/00402.png differ diff --git a/companion/src/images/library/00403.png b/companion/src/images/library/00403.png new file mode 100644 index 000000000..71e3824f6 Binary files /dev/null and b/companion/src/images/library/00403.png differ diff --git a/companion/src/images/library/00404.png b/companion/src/images/library/00404.png new file mode 100644 index 000000000..9715eb04c Binary files /dev/null and b/companion/src/images/library/00404.png differ diff --git a/companion/src/images/library/00501.png b/companion/src/images/library/00501.png new file mode 100644 index 000000000..44bb7ad5a Binary files /dev/null and b/companion/src/images/library/00501.png differ diff --git a/companion/src/images/library/01001.png b/companion/src/images/library/01001.png deleted file mode 100644 index 47fec20ff..000000000 Binary files a/companion/src/images/library/01001.png and /dev/null differ diff --git a/companion/src/images/library/01002.png b/companion/src/images/library/01002.png deleted file mode 100644 index e83381a48..000000000 Binary files a/companion/src/images/library/01002.png and /dev/null differ diff --git a/companion/src/images/library/01003.png b/companion/src/images/library/01003.png deleted file mode 100644 index 88f5676db..000000000 Binary files a/companion/src/images/library/01003.png and /dev/null differ diff --git a/companion/src/images/library/01004.png b/companion/src/images/library/01004.png deleted file mode 100644 index bc2a06103..000000000 Binary files a/companion/src/images/library/01004.png and /dev/null differ diff --git a/companion/src/images/library/01005.png b/companion/src/images/library/01005.png deleted file mode 100644 index b4aea5dfe..000000000 Binary files a/companion/src/images/library/01005.png and /dev/null differ diff --git a/companion/src/images/library/01006.png b/companion/src/images/library/01006.png deleted file mode 100644 index 448f590da..000000000 Binary files a/companion/src/images/library/01006.png and /dev/null differ diff --git a/companion/src/images/library/01007.png b/companion/src/images/library/01007.png deleted file mode 100644 index cb9a53702..000000000 Binary files a/companion/src/images/library/01007.png and /dev/null differ diff --git a/companion/src/images/library/01008.png b/companion/src/images/library/01008.png deleted file mode 100644 index da3346f7d..000000000 Binary files a/companion/src/images/library/01008.png and /dev/null differ diff --git a/companion/src/images/library/10001.png b/companion/src/images/library/10001.png index 51e85006a..8abdaba2a 100644 Binary files a/companion/src/images/library/10001.png and b/companion/src/images/library/10001.png differ diff --git a/companion/src/images/library/10002.png b/companion/src/images/library/10002.png index 47b108be9..ac46509c2 100644 Binary files a/companion/src/images/library/10002.png and b/companion/src/images/library/10002.png differ diff --git a/companion/src/images/library/10003.png b/companion/src/images/library/10003.png index ad62abd01..0fa584dbb 100644 Binary files a/companion/src/images/library/10003.png and b/companion/src/images/library/10003.png differ diff --git a/companion/src/images/library/10004.png b/companion/src/images/library/10004.png deleted file mode 100644 index 1a93226b7..000000000 Binary files a/companion/src/images/library/10004.png and /dev/null differ diff --git a/companion/src/images/library/10005.png b/companion/src/images/library/10005.png deleted file mode 100644 index b25163b8c..000000000 Binary files a/companion/src/images/library/10005.png and /dev/null differ diff --git a/companion/src/images/library/10006.png b/companion/src/images/library/10006.png deleted file mode 100644 index ca77bbd87..000000000 Binary files a/companion/src/images/library/10006.png and /dev/null differ diff --git a/companion/src/images/library/10008.png b/companion/src/images/library/10008.png deleted file mode 100644 index 9616e2c12..000000000 Binary files a/companion/src/images/library/10008.png and /dev/null differ diff --git a/companion/src/images/library/10009.png b/companion/src/images/library/10009.png deleted file mode 100644 index 1919fc94b..000000000 Binary files a/companion/src/images/library/10009.png and /dev/null differ diff --git a/companion/src/images/library/10010.png b/companion/src/images/library/10010.png deleted file mode 100644 index 0ef805645..000000000 Binary files a/companion/src/images/library/10010.png and /dev/null differ diff --git a/companion/src/images/library/10012.png b/companion/src/images/library/10012.png deleted file mode 100644 index 6007e75d4..000000000 Binary files a/companion/src/images/library/10012.png and /dev/null differ diff --git a/companion/src/images/library/10013.png b/companion/src/images/library/10013.png deleted file mode 100644 index dc8a5efc7..000000000 Binary files a/companion/src/images/library/10013.png and /dev/null differ diff --git a/companion/src/images/library/10014.png b/companion/src/images/library/10014.png deleted file mode 100644 index 6a306d3b2..000000000 Binary files a/companion/src/images/library/10014.png and /dev/null differ diff --git a/companion/src/images/library/10016.png b/companion/src/images/library/10016.png deleted file mode 100644 index d02cb5ceb..000000000 Binary files a/companion/src/images/library/10016.png and /dev/null differ diff --git a/companion/src/images/library/10017.png b/companion/src/images/library/10017.png deleted file mode 100644 index 13f6ed481..000000000 Binary files a/companion/src/images/library/10017.png and /dev/null differ diff --git a/companion/src/images/library/10018.png b/companion/src/images/library/10018.png deleted file mode 100644 index 552c96540..000000000 Binary files a/companion/src/images/library/10018.png and /dev/null differ diff --git a/companion/src/images/library/10019.png b/companion/src/images/library/10019.png deleted file mode 100644 index fcdc73964..000000000 Binary files a/companion/src/images/library/10019.png and /dev/null differ diff --git a/companion/src/images/library/10020.png b/companion/src/images/library/10020.png deleted file mode 100644 index c40348ee7..000000000 Binary files a/companion/src/images/library/10020.png and /dev/null differ diff --git a/companion/src/images/library/10021.png b/companion/src/images/library/10021.png deleted file mode 100644 index 69ea3ad14..000000000 Binary files a/companion/src/images/library/10021.png and /dev/null differ diff --git a/companion/src/images/library/10022.png b/companion/src/images/library/10022.png deleted file mode 100644 index cb746eb74..000000000 Binary files a/companion/src/images/library/10022.png and /dev/null differ diff --git a/companion/src/images/library/10023.png b/companion/src/images/library/10023.png deleted file mode 100644 index 784dbf355..000000000 Binary files a/companion/src/images/library/10023.png and /dev/null differ diff --git a/companion/src/images/library/10024.png b/companion/src/images/library/10024.png deleted file mode 100644 index 4066cd8e0..000000000 Binary files a/companion/src/images/library/10024.png and /dev/null differ diff --git a/companion/src/images/library/10025.png b/companion/src/images/library/10025.png deleted file mode 100644 index 8a1562e52..000000000 Binary files a/companion/src/images/library/10025.png and /dev/null differ diff --git a/companion/src/images/library/10026.png b/companion/src/images/library/10026.png deleted file mode 100644 index 704865b0c..000000000 Binary files a/companion/src/images/library/10026.png and /dev/null differ diff --git a/companion/src/images/library/10027.png b/companion/src/images/library/10027.png deleted file mode 100644 index b872dd0b2..000000000 Binary files a/companion/src/images/library/10027.png and /dev/null differ diff --git a/companion/src/images/library/10028.png b/companion/src/images/library/10028.png deleted file mode 100644 index 842a14dd5..000000000 Binary files a/companion/src/images/library/10028.png and /dev/null differ diff --git a/companion/src/images/library/10029.png b/companion/src/images/library/10029.png deleted file mode 100644 index 800465056..000000000 Binary files a/companion/src/images/library/10029.png and /dev/null differ diff --git a/companion/src/images/library/10030.png b/companion/src/images/library/10030.png deleted file mode 100644 index 705741cea..000000000 Binary files a/companion/src/images/library/10030.png and /dev/null differ diff --git a/companion/src/images/library/10031.png b/companion/src/images/library/10031.png deleted file mode 100644 index 41d3a526f..000000000 Binary files a/companion/src/images/library/10031.png and /dev/null differ diff --git a/companion/src/images/library/10032.png b/companion/src/images/library/10032.png deleted file mode 100644 index 1ed9a3801..000000000 Binary files a/companion/src/images/library/10032.png and /dev/null differ diff --git a/companion/src/images/library/10033.png b/companion/src/images/library/10033.png deleted file mode 100644 index 1e39ed5b4..000000000 Binary files a/companion/src/images/library/10033.png and /dev/null differ diff --git a/companion/src/images/library/10034.png b/companion/src/images/library/10034.png deleted file mode 100644 index cc8b37afb..000000000 Binary files a/companion/src/images/library/10034.png and /dev/null differ diff --git a/companion/src/images/library/10035.png b/companion/src/images/library/10035.png deleted file mode 100644 index 2e14bc941..000000000 Binary files a/companion/src/images/library/10035.png and /dev/null differ diff --git a/companion/src/images/library/10036.png b/companion/src/images/library/10036.png deleted file mode 100644 index e4eb4667f..000000000 Binary files a/companion/src/images/library/10036.png and /dev/null differ diff --git a/companion/src/images/library/10037.png b/companion/src/images/library/10037.png deleted file mode 100644 index 7e85d9fb4..000000000 Binary files a/companion/src/images/library/10037.png and /dev/null differ diff --git a/companion/src/images/library/10038.png b/companion/src/images/library/10038.png deleted file mode 100644 index 69425a5d3..000000000 Binary files a/companion/src/images/library/10038.png and /dev/null differ diff --git a/companion/src/images/library/10039.png b/companion/src/images/library/10039.png deleted file mode 100644 index 586fae0a5..000000000 Binary files a/companion/src/images/library/10039.png and /dev/null differ diff --git a/companion/src/images/library/10040.png b/companion/src/images/library/10040.png deleted file mode 100644 index a6f575c6f..000000000 Binary files a/companion/src/images/library/10040.png and /dev/null differ diff --git a/companion/src/images/library/10041.png b/companion/src/images/library/10041.png deleted file mode 100644 index d7c509449..000000000 Binary files a/companion/src/images/library/10041.png and /dev/null differ diff --git a/companion/src/images/library/10042.png b/companion/src/images/library/10042.png deleted file mode 100644 index 6f4aa2b68..000000000 Binary files a/companion/src/images/library/10042.png and /dev/null differ diff --git a/companion/src/images/library/10043.png b/companion/src/images/library/10043.png deleted file mode 100644 index 7ff6f4bc7..000000000 Binary files a/companion/src/images/library/10043.png and /dev/null differ diff --git a/companion/src/images/library/10044.png b/companion/src/images/library/10044.png deleted file mode 100644 index 0f5ec33dc..000000000 Binary files a/companion/src/images/library/10044.png and /dev/null differ diff --git a/companion/src/images/library/10045.png b/companion/src/images/library/10045.png deleted file mode 100644 index 4e195cbb4..000000000 Binary files a/companion/src/images/library/10045.png and /dev/null differ diff --git a/companion/src/images/library/10046.png b/companion/src/images/library/10046.png deleted file mode 100644 index 99cbb9bb7..000000000 Binary files a/companion/src/images/library/10046.png and /dev/null differ diff --git a/companion/src/images/library/10047.png b/companion/src/images/library/10047.png deleted file mode 100644 index 263ef7508..000000000 Binary files a/companion/src/images/library/10047.png and /dev/null differ diff --git a/companion/src/images/library/10048.png b/companion/src/images/library/10048.png deleted file mode 100644 index 4f1ddcb8f..000000000 Binary files a/companion/src/images/library/10048.png and /dev/null differ diff --git a/companion/src/images/library/10049.png b/companion/src/images/library/10049.png deleted file mode 100644 index 1b00b73b3..000000000 Binary files a/companion/src/images/library/10049.png and /dev/null differ diff --git a/companion/src/images/library/10050.png b/companion/src/images/library/10050.png deleted file mode 100644 index 13f2c3748..000000000 Binary files a/companion/src/images/library/10050.png and /dev/null differ diff --git a/companion/src/images/library/10051.png b/companion/src/images/library/10051.png deleted file mode 100644 index 00ef00a9e..000000000 Binary files a/companion/src/images/library/10051.png and /dev/null differ diff --git a/companion/src/images/library/10052.png b/companion/src/images/library/10052.png deleted file mode 100644 index 00adf5621..000000000 Binary files a/companion/src/images/library/10052.png and /dev/null differ diff --git a/companion/src/images/library/10054.png b/companion/src/images/library/10054.png deleted file mode 100644 index 149e35ada..000000000 Binary files a/companion/src/images/library/10054.png and /dev/null differ diff --git a/companion/src/images/library/10055.png b/companion/src/images/library/10055.png deleted file mode 100644 index 52ae8827b..000000000 Binary files a/companion/src/images/library/10055.png and /dev/null differ diff --git a/companion/src/images/library/10056.png b/companion/src/images/library/10056.png deleted file mode 100644 index 7c9be6730..000000000 Binary files a/companion/src/images/library/10056.png and /dev/null differ diff --git a/companion/src/images/library/10057.png b/companion/src/images/library/10057.png deleted file mode 100644 index ffe4fd58b..000000000 Binary files a/companion/src/images/library/10057.png and /dev/null differ diff --git a/companion/src/images/library/10058.png b/companion/src/images/library/10058.png deleted file mode 100644 index b8a0117fb..000000000 Binary files a/companion/src/images/library/10058.png and /dev/null differ diff --git a/companion/src/images/library/10059.png b/companion/src/images/library/10059.png deleted file mode 100644 index 3d5e9bfc0..000000000 Binary files a/companion/src/images/library/10059.png and /dev/null differ diff --git a/companion/src/images/library/10060.png b/companion/src/images/library/10060.png deleted file mode 100644 index 2837c5398..000000000 Binary files a/companion/src/images/library/10060.png and /dev/null differ diff --git a/companion/src/images/library/10061.png b/companion/src/images/library/10061.png deleted file mode 100644 index 2aec8a703..000000000 Binary files a/companion/src/images/library/10061.png and /dev/null differ diff --git a/companion/src/images/library/10062.png b/companion/src/images/library/10062.png deleted file mode 100644 index 810efb9a9..000000000 Binary files a/companion/src/images/library/10062.png and /dev/null differ diff --git a/companion/src/images/library/10063.png b/companion/src/images/library/10063.png deleted file mode 100644 index 2cd293505..000000000 Binary files a/companion/src/images/library/10063.png and /dev/null differ diff --git a/companion/src/images/library/10064.png b/companion/src/images/library/10064.png deleted file mode 100644 index 6354a2a18..000000000 Binary files a/companion/src/images/library/10064.png and /dev/null differ diff --git a/companion/src/images/library/10065.png b/companion/src/images/library/10065.png deleted file mode 100644 index 87010d65e..000000000 Binary files a/companion/src/images/library/10065.png and /dev/null differ diff --git a/companion/src/images/library/10066.png b/companion/src/images/library/10066.png deleted file mode 100644 index db4917113..000000000 Binary files a/companion/src/images/library/10066.png and /dev/null differ diff --git a/companion/src/images/library/10067.png b/companion/src/images/library/10067.png deleted file mode 100644 index f188c03a8..000000000 Binary files a/companion/src/images/library/10067.png and /dev/null differ diff --git a/companion/src/images/library/10068.png b/companion/src/images/library/10068.png deleted file mode 100644 index b70eb70d7..000000000 Binary files a/companion/src/images/library/10068.png and /dev/null differ diff --git a/companion/src/images/library/10069.png b/companion/src/images/library/10069.png deleted file mode 100644 index 3eb68b5b2..000000000 Binary files a/companion/src/images/library/10069.png and /dev/null differ diff --git a/companion/src/images/library/10071.png b/companion/src/images/library/10071.png deleted file mode 100644 index fa9c6cde7..000000000 Binary files a/companion/src/images/library/10071.png and /dev/null differ diff --git a/companion/src/images/library/10072.png b/companion/src/images/library/10072.png deleted file mode 100644 index 82189cd46..000000000 Binary files a/companion/src/images/library/10072.png and /dev/null differ diff --git a/companion/src/images/library/10073.png b/companion/src/images/library/10073.png deleted file mode 100644 index 37f11ea34..000000000 Binary files a/companion/src/images/library/10073.png and /dev/null differ diff --git a/companion/src/images/library/10074.png b/companion/src/images/library/10074.png deleted file mode 100644 index abf8c3ae2..000000000 Binary files a/companion/src/images/library/10074.png and /dev/null differ diff --git a/companion/src/images/library/10075.png b/companion/src/images/library/10075.png deleted file mode 100644 index e17abfdf7..000000000 Binary files a/companion/src/images/library/10075.png and /dev/null differ diff --git a/companion/src/images/library/10076.png b/companion/src/images/library/10076.png deleted file mode 100644 index 30bd5f62f..000000000 Binary files a/companion/src/images/library/10076.png and /dev/null differ diff --git a/companion/src/images/library/10077.png b/companion/src/images/library/10077.png deleted file mode 100644 index 5cdddbb0b..000000000 Binary files a/companion/src/images/library/10077.png and /dev/null differ diff --git a/companion/src/images/library/10078.png b/companion/src/images/library/10078.png deleted file mode 100644 index 3dc842400..000000000 Binary files a/companion/src/images/library/10078.png and /dev/null differ diff --git a/companion/src/images/library/10079.png b/companion/src/images/library/10079.png deleted file mode 100644 index 387dc81be..000000000 Binary files a/companion/src/images/library/10079.png and /dev/null differ diff --git a/companion/src/images/library/10080.png b/companion/src/images/library/10080.png deleted file mode 100644 index 46a46e9a4..000000000 Binary files a/companion/src/images/library/10080.png and /dev/null differ diff --git a/companion/src/images/library/10081.png b/companion/src/images/library/10081.png deleted file mode 100644 index 66019bb70..000000000 Binary files a/companion/src/images/library/10081.png and /dev/null differ diff --git a/companion/src/images/library/10082.png b/companion/src/images/library/10082.png deleted file mode 100644 index 5ba72eb8f..000000000 Binary files a/companion/src/images/library/10082.png and /dev/null differ diff --git a/companion/src/images/library/10083.png b/companion/src/images/library/10083.png deleted file mode 100644 index 4619aba26..000000000 Binary files a/companion/src/images/library/10083.png and /dev/null differ diff --git a/companion/src/images/library/10084.png b/companion/src/images/library/10084.png deleted file mode 100644 index d82770ff4..000000000 Binary files a/companion/src/images/library/10084.png and /dev/null differ diff --git a/companion/src/images/library/10085.png b/companion/src/images/library/10085.png deleted file mode 100644 index 644b1d006..000000000 Binary files a/companion/src/images/library/10085.png and /dev/null differ diff --git a/companion/src/images/library/10086.png b/companion/src/images/library/10086.png deleted file mode 100644 index 2f16b8b80..000000000 Binary files a/companion/src/images/library/10086.png and /dev/null differ diff --git a/companion/src/images/library/10087.png b/companion/src/images/library/10087.png deleted file mode 100644 index dedee12ff..000000000 Binary files a/companion/src/images/library/10087.png and /dev/null differ diff --git a/companion/src/images/library/10088.png b/companion/src/images/library/10088.png deleted file mode 100644 index b24fe1a05..000000000 Binary files a/companion/src/images/library/10088.png and /dev/null differ diff --git a/companion/src/images/library/10089.png b/companion/src/images/library/10089.png deleted file mode 100644 index 133c90972..000000000 Binary files a/companion/src/images/library/10089.png and /dev/null differ diff --git a/companion/src/images/library/10090.png b/companion/src/images/library/10090.png deleted file mode 100644 index d45f27e5b..000000000 Binary files a/companion/src/images/library/10090.png and /dev/null differ diff --git a/companion/src/images/library/10091.png b/companion/src/images/library/10091.png deleted file mode 100644 index 192d3304e..000000000 Binary files a/companion/src/images/library/10091.png and /dev/null differ diff --git a/companion/src/images/library/10093.png b/companion/src/images/library/10093.png deleted file mode 100644 index cff628eb3..000000000 Binary files a/companion/src/images/library/10093.png and /dev/null differ diff --git a/companion/src/images/library/10095.png b/companion/src/images/library/10095.png deleted file mode 100644 index 5c03253c8..000000000 Binary files a/companion/src/images/library/10095.png and /dev/null differ diff --git a/companion/src/images/library/10097.png b/companion/src/images/library/10097.png deleted file mode 100644 index 88aecde84..000000000 Binary files a/companion/src/images/library/10097.png and /dev/null differ diff --git a/companion/src/images/library/10098.png b/companion/src/images/library/10098.png deleted file mode 100644 index 0d4249608..000000000 Binary files a/companion/src/images/library/10098.png and /dev/null differ diff --git a/companion/src/images/library/10099.png b/companion/src/images/library/10099.png deleted file mode 100644 index 2d99e224f..000000000 Binary files a/companion/src/images/library/10099.png and /dev/null differ diff --git a/companion/src/images/library/10100.png b/companion/src/images/library/10100.png deleted file mode 100644 index 14001a79a..000000000 Binary files a/companion/src/images/library/10100.png and /dev/null differ diff --git a/companion/src/images/library/10101.png b/companion/src/images/library/10101.png index 1f21c62ea..073c3197b 100644 Binary files a/companion/src/images/library/10101.png and b/companion/src/images/library/10101.png differ diff --git a/companion/src/images/library/10102.png b/companion/src/images/library/10102.png index 28ef0617b..7bfefdce6 100644 Binary files a/companion/src/images/library/10102.png and b/companion/src/images/library/10102.png differ diff --git a/companion/src/images/library/10103.png b/companion/src/images/library/10103.png index 8fd5c2897..d44f974b5 100644 Binary files a/companion/src/images/library/10103.png and b/companion/src/images/library/10103.png differ diff --git a/companion/src/images/library/10104.png b/companion/src/images/library/10104.png deleted file mode 100644 index 17b0c12a0..000000000 Binary files a/companion/src/images/library/10104.png and /dev/null differ diff --git a/companion/src/images/library/10501.png b/companion/src/images/library/10501.png new file mode 100644 index 000000000..51e85006a Binary files /dev/null and b/companion/src/images/library/10501.png differ diff --git a/companion/src/images/library/10502.png b/companion/src/images/library/10502.png new file mode 100644 index 000000000..47b108be9 Binary files /dev/null and b/companion/src/images/library/10502.png differ diff --git a/companion/src/images/library/10503.png b/companion/src/images/library/10503.png new file mode 100644 index 000000000..1ba8ec880 Binary files /dev/null and b/companion/src/images/library/10503.png differ diff --git a/companion/src/images/library/10504.png b/companion/src/images/library/10504.png new file mode 100644 index 000000000..e64ecb348 Binary files /dev/null and b/companion/src/images/library/10504.png differ diff --git a/companion/src/images/library/10505.png b/companion/src/images/library/10505.png new file mode 100644 index 000000000..a623d3376 Binary files /dev/null and b/companion/src/images/library/10505.png differ diff --git a/companion/src/images/library/10506.png b/companion/src/images/library/10506.png new file mode 100644 index 000000000..2fbda686e Binary files /dev/null and b/companion/src/images/library/10506.png differ diff --git a/companion/src/images/library/10508.png b/companion/src/images/library/10508.png new file mode 100644 index 000000000..ed3ce466d Binary files /dev/null and b/companion/src/images/library/10508.png differ diff --git a/companion/src/images/library/10601.png b/companion/src/images/library/10601.png new file mode 100644 index 000000000..782dd9653 Binary files /dev/null and b/companion/src/images/library/10601.png differ diff --git a/companion/src/images/library/10092.png b/companion/src/images/library/10701.png similarity index 100% rename from companion/src/images/library/10092.png rename to companion/src/images/library/10701.png diff --git a/companion/src/images/library/10053.png b/companion/src/images/library/10702.png similarity index 100% rename from companion/src/images/library/10053.png rename to companion/src/images/library/10702.png diff --git a/companion/src/images/library/10801.png b/companion/src/images/library/10801.png new file mode 100644 index 000000000..1ad61712b Binary files /dev/null and b/companion/src/images/library/10801.png differ diff --git a/companion/src/images/library/10802.png b/companion/src/images/library/10802.png new file mode 100644 index 000000000..bbf26657e Binary files /dev/null and b/companion/src/images/library/10802.png differ diff --git a/companion/src/images/library/20001.png b/companion/src/images/library/20001.png deleted file mode 100644 index aaed01ccc..000000000 Binary files a/companion/src/images/library/20001.png and /dev/null differ diff --git a/companion/src/images/library/20002.png b/companion/src/images/library/20002.png deleted file mode 100644 index 3f3d21866..000000000 Binary files a/companion/src/images/library/20002.png and /dev/null differ diff --git a/companion/src/images/library/20003.png b/companion/src/images/library/20003.png deleted file mode 100644 index 166fd4c94..000000000 Binary files a/companion/src/images/library/20003.png and /dev/null differ diff --git a/companion/src/images/library/20004.png b/companion/src/images/library/20004.png deleted file mode 100644 index df09efa35..000000000 Binary files a/companion/src/images/library/20004.png and /dev/null differ diff --git a/companion/src/images/library/30001.png b/companion/src/images/library/30001.png deleted file mode 100644 index a699fad95..000000000 Binary files a/companion/src/images/library/30001.png and /dev/null differ diff --git a/companion/src/images/library/30002.png b/companion/src/images/library/30002.png deleted file mode 100644 index b90ee4ca8..000000000 Binary files a/companion/src/images/library/30002.png and /dev/null differ diff --git a/companion/src/images/library/30003.png b/companion/src/images/library/30003.png deleted file mode 100644 index fe4548967..000000000 Binary files a/companion/src/images/library/30003.png and /dev/null differ diff --git a/companion/src/images/library/30004.png b/companion/src/images/library/30004.png deleted file mode 100644 index 4db2f79bb..000000000 Binary files a/companion/src/images/library/30004.png and /dev/null differ diff --git a/companion/src/images/library/30005.png b/companion/src/images/library/30005.png deleted file mode 100644 index ceeb0b358..000000000 Binary files a/companion/src/images/library/30005.png and /dev/null differ diff --git a/companion/src/images/library/30006.png b/companion/src/images/library/30006.png deleted file mode 100644 index de6493b1c..000000000 Binary files a/companion/src/images/library/30006.png and /dev/null differ diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index e4bb27f80..596f6b78c 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -308,7 +308,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw if (!fileName.isEmpty()) { downloadedFW = firmwareId; needRename=true; - downloadedFWFilename = fileName; + g.profile[g.id()].fwName( fileName ); if (!cpuid.isEmpty()) { url.append("&cpuid="); url.append(cpuid); @@ -323,7 +323,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw void MainWindow::reply1Accepted() { QString errormsg; - if (downloadedFWFilename.isEmpty()) { + if (g.profile[g.id()].fwName().isEmpty()) { if (!(downloadedFW.isEmpty())) { QFile file(downloadedFW); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file @@ -364,11 +364,11 @@ void MainWindow::reply1Accepted() g.fwRev.set(downloadedFW, currentFWrev); } } else { - QFile file(downloadedFWFilename); + QFile file(g.profile[g.id()].fwName()); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file QMessageBox::critical(this, tr("Error"), tr("Error opening file %1:\n%2.") - .arg(downloadedFWFilename) + .arg(g.profile[g.id()].fwName()) .arg(file.errorString())); return; } @@ -399,13 +399,13 @@ void MainWindow::reply1Accepted() return; } file.close(); - FlashInterface flash(downloadedFWFilename); + FlashInterface flash(g.profile[g.id()].fwName()); QString rev=flash.getSvn(); int pos=rev.lastIndexOf("-r"); if (pos>0) { currentFWrev=rev.mid(pos+2).toInt(); if (g.profile[g.id()].renameFwFiles() && needRename) { - QFileInfo fi(downloadedFWFilename); + QFileInfo fi(g.profile[g.id()].fwName()); QString path=fi.path()+QDir::separator (); path.append(fi.completeBaseName()); path.append(rev.mid(pos)); @@ -413,14 +413,14 @@ void MainWindow::reply1Accepted() path.append(fi.suffix()); QDir qd; qd.remove(path); - qd.rename(downloadedFWFilename,path); - downloadedFWFilename=path; + qd.rename(g.profile[g.id()].fwName(),path); + g.profile[g.id()].fwName(path); } g.fwRev.set(downloadedFW, currentFWrev); if (g.profile[g.id()].burnFirmware()) { int ret = QMessageBox::question(this, "Companion", tr("Do you want to write the firmware to the transmitter now ?"), QMessageBox::Yes | QMessageBox::No); if (ret == QMessageBox::Yes) { - writeFlash(downloadedFWFilename); + writeFlash(g.profile[g.id()].fwName()); } } } @@ -560,7 +560,7 @@ void MainWindow::reply1Finished(QNetworkReply * reply) url.append("&cpuid="); url.append(cpuid); } - downloadedFWFilename = fileName; + g.profile[g.id()].fwName( fileName ); g.flashDir(QFileInfo(fileName).dir().absolutePath()); downloadDialog * dd = new downloadDialog(this, url, fileName); currentFWrev_temp = NewFwRev; @@ -702,7 +702,7 @@ void MainWindow::loadProfile() //TODO Load all variables - Also HW! g.id( profnum ); // TODO Get rid of this global variable - The profile.firmware is the real source - current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].firmware()); + current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].fwType()); foreach (QMdiSubWindow *window, mdiArea->subWindowList()) { MdiChild *mdiChild = qobject_cast(window->widget()); diff --git a/companion/src/mainwindow.h b/companion/src/mainwindow.h index f746b1eb8..8bfca1fa8 100644 --- a/companion/src/mainwindow.h +++ b/companion/src/mainwindow.h @@ -197,7 +197,6 @@ private: QString installer_fileName; QString downloadedFW; - QString downloadedFWFilename; downloadDialog * downloadDialog_forWait; bool needRename; diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index 099ba56ab..e06fe96a3 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -457,7 +457,7 @@ TelemetryPanel::~TelemetryPanel() void TelemetryPanel::setup() { - QString firmware_id = g.profile[g.id()].firmware(); + QString firmware_id = g.profile[g.id()].fwType(); lock=true; diff --git a/companion/src/splashlibrary.cpp b/companion/src/splashlibrary.cpp index 5685406b7..d35dd48a6 100644 --- a/companion/src/splashlibrary.cpp +++ b/companion/src/splashlibrary.cpp @@ -3,7 +3,6 @@ #include "appdata.h" #include #include "helpers.h" -//#include "splashlabel.h" #include "flashinterface.h" #include "helpers.h" @@ -23,7 +22,6 @@ splashLibrary::splashLibrary(QWidget *parent, QString * fileName) : QDialog(pare foreach(splashLabel *sl, findChildren()) { connect(sl, SIGNAL(buttonPressed(int)), this, SLOT(onButtonPressed(int))); } - resize(0, 0); } splashLibrary::~splashLibrary() { @@ -40,7 +38,7 @@ void splashLibrary::setupPage(int page) { if ((i + 20 * page) < imageList.size()) { QImage image(imageList.at(i + 20 * page)); if (!image.isNull()) { - sl[i]->setPixmap(QPixmap::fromImage(image.scaled(SPLASH_WIDTH, SPLASH_HEIGHT).convertToFormat(QImage::Format_Mono))); + sl[i]->setPixmap(makePixMap(image, g.profile[g.id()].fwType())); sl[i]->setEnabled(true); sl[i]->setId((i + 20 * page)); sl[i]->setStyleSheet("border:1px solid; border-color:#999999;"); @@ -104,10 +102,6 @@ void splashLibrary::getFileList() { } } -void splashLibrary::shrink() { - resize(0, 0); -} - void splashLibrary::dclose() { close(); } diff --git a/companion/src/splashlibrary.h b/companion/src/splashlibrary.h index 9da9d58e4..0d9123a74 100644 --- a/companion/src/splashlibrary.h +++ b/companion/src/splashlibrary.h @@ -17,7 +17,6 @@ public: ~splashLibrary(); private slots: - void shrink() ; void dclose(); void onButtonPressed(int button); void on_nextPage_clicked(); diff --git a/companion/src/splashlibrary.ui b/companion/src/splashlibrary.ui index 15e1b54a0..5ce1e2502 100644 --- a/companion/src/splashlibrary.ui +++ b/companion/src/splashlibrary.ui @@ -6,22 +6,16 @@ 0 0 - 662 - 356 + 650 + 374 - + 0 0 - - - 662 - 356 - - @@ -39,10 +33,16 @@ - 50 + 34 0 + + + 34 + 16777215 + + ... @@ -54,12 +54,15 @@ - + + + QLayout::SetNoConstraint + - + 0 0 @@ -72,7 +75,7 @@ - 130 + 214 66 @@ -105,7 +108,7 @@ - + 0 0 @@ -113,55 +116,12 @@ 130 - 66 + 0 - 130 - 66 - - - - true - - - border:1px; - - - QFrame::Panel - - - QFrame::Plain - - - 0 - - - - - - true - - - - - - - - 0 - 0 - - - - - 130 - 66 - - - - - 130 + 214 66 @@ -191,7 +151,7 @@ - + 0 0 @@ -199,12 +159,12 @@ 130 - 66 + 0 - 130 + 214 66 @@ -234,20 +194,20 @@ - + 0 0 - 130 + 0 66 - 130 + 214 66 @@ -277,20 +237,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -320,20 +274,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -363,20 +311,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -406,20 +348,20 @@ - + 0 0 - 130 + 0 66 - 130 + 214 66 @@ -449,20 +391,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -492,20 +428,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -535,20 +465,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -578,20 +502,20 @@ - + 0 0 - 130 + 0 66 - 130 + 214 66 @@ -621,20 +545,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -664,20 +582,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -707,20 +619,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -750,20 +656,20 @@ - + 0 0 - 130 + 0 66 - 130 + 214 66 @@ -793,20 +699,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -836,20 +736,14 @@ - + 0 0 - - - 130 - 66 - - - 130 + 214 66 @@ -879,7 +773,44 @@ - + + 0 + 0 + + + + + 214 + 66 + + + + true + + + border:1px; + + + QFrame::Panel + + + QFrame::Plain + + + 0 + + + + + + true + + + + + + + 0 0 @@ -887,12 +818,12 @@ 130 - 66 + 0 - 130 + 214 66 @@ -921,7 +852,7 @@ - + false @@ -934,10 +865,16 @@ - 50 + 34 0 + + + 34 + 16777215 + + ... @@ -949,6 +886,32 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index 1715ded6f..ab649090f 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -57,22 +57,22 @@ CurveGroup - + Diff Róźnicowość - + Expo Expo - + Func Funkcja - + Curve Krzywa @@ -168,57 +168,57 @@ FS%1 - + 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 @@ -2064,7 +2064,7 @@ Jesteś pewien ? - + File loaded Plik załadowany @@ -2123,23 +2123,23 @@ Jesteś pewien ? - - - - - - - - + + + + + + + + Error Błąd - - - + + + Error opening file %1: %2. Błąd otwarcia pliku %1: @@ -2309,21 +2309,56 @@ Chcesz pobrać teraz? OpenTX Companion - FW: %1 - Profile: %2 OpenTX Companion - FW: %1 - Profil: %2 + + + About... + O aplikacji... + + + + Print... + Drukuj... + + + + Simulate... + Symulacja... + + + + Simulate current model + Symulacja aktualnego modelu + + + + Load Backup... + Załaduj backup... + + + + View Log File... + Obejrzyj plik logów... + + + + Open and view log file + Otwórz i obejrzyj plik logów + Edit Settings Edycja Ustawień + + + Settings... + Ustawienia... + Download firmware and voice files Pobierz firmware i pliki dźwiękowe - - - New Profile - Nowy Profil - Create a new Radio Setting Profile @@ -2334,6 +2369,78 @@ Chcesz pobrać teraz? A monochrome black icon theme Monochromatyczny czarny wygląd ikon + + + + Open Models and Settings file + Otwórz plik Modeli i Ustawień + + + + New Models+Settings + Nowe Modele+Ustawienia + + + + Create a new Models and Settings file + Utwórz nowy plik Modeli i Ustawień + + + + Open Models+Settings... + Otwórz Modele i Ustawienia... + + + + Save Models+Settings... + Zapisz Modele i Ustawienia... + + + + + Save Models and Settings file + Zapisz plik Modeli i Ustawień + + + + Save Models+Settings as... + Zapisz Modele+Ustawienia jako... + + + + Cut Model + Wytnij Model + + + + Cut current model to the clipboard + Wytnij aktualny model do schowka + + + + Copy Model... + Kopiuj Model... + + + + Copy current model to the clipboard + Wytnij aktualny model do schowka + + + + Paste Model... + Wklej Model... + + + + Paste model from clipboard + Wklaj Model ze schowka + + + + The classic companion9x icon theme + Klasyczny zestaw ikon Companion + A monochrome white icon theme @@ -2495,55 +2602,21 @@ Chcesz pobrać teraz? Użyj Rosyjskiego w menu - - About - O aplikacji + + + Radio Settings Profile + Profil Ustawień Radia - - Print - Drukuj + + Show recent Models+Settings documents + Pokaż ostatanie dokumenty Modeli i Ustawień Print current model Drukuj aktualny model - - - Simulate - Symulacja - - - - Simulate selected model - Symulacja wybranego modelu - - - - loadBackup... - Załaduj backup... - - - - Logs - Logi - - - - Setting... - Ustawienia... - - - - Downloads... - Pobieranie... - - - - Check for updates... - Sprawdź aktualizacje... - Check OpenTX and Companion updates @@ -2554,16 +2627,6 @@ Chcesz pobrać teraz? Edit Tx Splash Image... Edytor erkanu startowego radia... - - - edit the splash screen of your TX - Edytuj ekran startowy swojego radia - - - - List programmers - Lista programatorów - Fuses... @@ -2579,11 +2642,6 @@ Chcesz pobrać teraz? Open the OpenTX document page in a web browser Otwórz stronę dokumentacji OpenTX w przeglądarce - - - Configure connection software... - Ustawienia oprogramowania łączącego... - Save Tx Models and Settings to file @@ -2591,13 +2649,19 @@ Chcesz pobrać teraz? - Contributors - Współpracownicy + A tribute to those who have contributed to OpenTX and Companion + Hołd dla tych, którzy przyczynili się do rozwoju OpenTX i Companion - A tribute to those who have contributed to OpenTX and Companion - Hołd dla tych, którzy przyczynili się do rozwoju OpenTX i Companion + Contributors... + Współpracownicy... + + + + + Recent Models+Settings + Ostatnie Modele+Ustawienia @@ -2609,11 +2673,6 @@ Chcesz pobrać teraz? Set Icon Size Ustaw wielkość ikon - - - Radio Settings Profiles - Profile Ustawień Radia - A new version of Companion is available (version %1)<br>Would you like to download it? @@ -2667,11 +2726,6 @@ Chcesz pobrać teraz? The icon size will be used the next time you start Companion. Wybrana wiekość ikon będzie użyta po ponownym uruchomieniu Comapnion. - - - Open - Otwórz - @@ -2802,37 +2856,11 @@ Czy mimo wszystko zapisać? About Companion O aplikacji Companion - - - Create a new file - Utwórz nowy plik - - - - Open an existing file - Otwórz istniejący plik - Load backup from file Załaduj backup z pliku - - - - Save the document to disk - Zapisz dokument na dysku - - - - Open log file - Otwórz plik logów - - - - Show Companion changelog - Zobacz zmiany w Companion - Write Models and Settings to transmitter @@ -2848,56 +2876,11 @@ Czy mimo wszystko zapisać? Write Firmware Zapisz firmware - - - Open... - Otwórz... - - - - Save... - Zapisz... - - - - Save As... - Zapisz jako... - Exit Zakończ - - - Cut - Wytnij - - - - Cut current selection to the clipboard - Wytnij zaznaczenie do schowka - - - - Copy... - Kopiuj... - - - - Copy current selection to the clipboard - Wytnij zaznaczenie do schowka - - - - Paste... - Wklej... - - - - Paste clipboard into current selection - Wytnij zaznaczenie do schowka - Monochrome @@ -2923,11 +2906,71 @@ Czy mimo wszystko zapisać? Use system language in menus Użyj języka systemu w menu + + + Download... + Pobieranie... + + + + Check for Updates... + Sprawdź aktualizacje... + + + + Companion Changes... + Zmiany w Companion... + + + + Show Companion change log + Pokaż log zmian Companion + + + + Firmware Changes... + Zmiany w Firmware... + + + + Show firmware change log + Pokaż log zmian Firmware + + + + Compare Models... + Porównaj modele... + + + + Edit the splash image of your TX + Edytuj ekran startowy swojego radia + + + + List programmers... + Lista programistów... + Write firmware to transmitter Zapisz firmware do radia + + + Add Radio Profile + Dodaj profil radia + + + + Configure Communications... + Ustaw komunikację... + + + + Configure software for communicating with the transmitter + Ustaw oprogramowanie komunikacyjne z radiem + Write Models and Settings from file to Tx @@ -2964,46 +3007,26 @@ Czy mimo wszystko zapisać? Wczytaj Firmware z radia - - Configure software for reading from and writing to the transmitter - Ustawienia oprogramowania do odczytu i zapisu radia - - - + Write Zapis - - + + %2 + %2 + + + + 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ń - - - ChangeLog... - Zmiany... - - - - Firmware ChangeLog... - Zmiany firmware... - - - - Show firmware changelog - Zobacz zmiany w firmware - - - - Compare... - Porównaj... - Compare models @@ -3034,22 +3057,6 @@ Czy mimo wszystko zapisać? Classical Klasyczny - - - The classical Companion icon theme - Klasyczny zestaw ikon Companion - - - - New - Nowy - - - - - Recent Files - Poprzednie pliki - Set Menu Language @@ -3062,13 +3069,13 @@ Czy mimo wszystko zapisać? Plik - - + + Edit Edycja - + Settings Ustawienia @@ -3079,42 +3086,27 @@ Czy mimo wszystko zapisać? - + Help Pomoc - - - Show a selection list of recent documents - Pokaż listę wyboru poprzednich dokumentów - - - - Radio Profiles - Profile Radia - Show a selection list of radio settings profiles Pokaż listę wyboru profili ustawiań radia - + Ready Gotowe - - &%1: %2 - &%1: %2 - - - + Unable to find file %1! Nie mogę znaleźć pliku %1! - + Error reading file %1: %2. Błąd odczytu pliku %1: @@ -3149,16 +3141,17 @@ Czy mimo wszystko zapisać? - - - - + + + + + Error Błąd - + Unable to find file %1! Nie mogę odnaleźć pliku %1! @@ -3166,7 +3159,7 @@ Czy mimo wszystko zapisać? - + Error opening file %1: %2. Błąd otwarcia pliku %1: @@ -3228,7 +3221,7 @@ Czy mimo wszystko zapisać? - + Error reading file %1: %2. Błąd odczytu pliku %1: @@ -3258,58 +3251,58 @@ Zapisać? - - + + 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 + + Open backup Models and Settings file + Otwórz plik backupu Modeli i Ustawień - + Invalid binary backup File %1 nieprawidłowy binarny plik %1 @@ -4112,70 +4105,70 @@ p, li { white-space: pre-wrap; } 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 @@ -4202,14 +4195,14 @@ p, li { white-space: pre-wrap; } - + REa Pokrętło :a - + REb Pokrętło :b @@ -4694,26 +4687,26 @@ p, li { white-space: pre-wrap; } - + ---- - + THR THR - + ON Włącz - + OFF Wyłącz @@ -5160,7 +5153,7 @@ p, li { white-space: pre-wrap; } - + Warning Ostrzeżenie @@ -5170,94 +5163,94 @@ p, li { white-space: pre-wrap; } 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 - + Polish Polski - + Finnish Fiński - + 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 @@ -5280,22 +5273,22 @@ p, li { white-space: pre-wrap; } ASpd - + ASpd dTE - + dTE Cel- - + Cel- Vfs- - + Vfs- @@ -5340,22 +5333,22 @@ p, li { white-space: pre-wrap; } ABS - + ABS THs - + THs TH% - + TH% THt - + THt @@ -5574,138 +5567,138 @@ p, li { white-space: pre-wrap; } <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 @@ -5716,43 +5709,43 @@ p, li { white-space: pre-wrap; } - - + + --- - + 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 @@ -5780,7 +5773,7 @@ p, li { white-space: pre-wrap; } - + Timer1 @@ -5788,21 +5781,21 @@ p, li { white-space: pre-wrap; } - + Timer2 - + All Wszystkie - + Telemetry Telemetria @@ -5835,66 +5828,66 @@ p, li { white-space: pre-wrap; } - + Value Wartość - + Source Źródło - + GVAR Zmienna - + Increment Zwiększanie - + 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 @@ -5972,17 +5965,17 @@ Zespół OpenTX/Companion. Użyj trymerów dla Fazy Lotu %1 + Własne trymery jako offset - + FW: %1 FW:%1 - + Pict: %1 Obrazek:%1 - + Profile image Obrazek Profilu @@ -6219,27 +6212,27 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również TRN - + TRN GEA - + GEA ID0 - + ID0 ID1 - + DI1 ID2 - + ID2 @@ -6314,13 +6307,13 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również SD - + SD SC - + SC @@ -6334,25 +6327,25 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również S2 - + S2 SG - + SG RS - + RS SH - + SH @@ -6366,38 +6359,38 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również S1 - + S1 SB - + SB SA - + SA SE - + SE SF - + SF LS - + LS @@ -6873,25 +6866,25 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również appPreferencesDialog - + Simulator capture folder Katalog zapisu symulatora - + Remember simulator switch values Zapamiętaj ustawienia przełączników w symulatorze - - - - + + + + Open Folder Otwórz katalog - + User Splash Screens Użyj ekranu powitalnego @@ -6901,47 +6894,52 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również Edycja Ustawień - + Application Settings Ustawienia Aplikacji - + + Only show user splash images + Pokaż tylko ekrany powitalne użytkownika + + + + Show user and companion splash images + Pokaż ekrany powitalne użytkownika i Companion + + + Simulator Settings Ustawienia Symulatora - + Blue Niebieskie - + Green Zielone - + Red Czerwone - + Orange Pomarańczowe - + Yellow Żółte - - Radio Settings - Ustawienia Radia - - - + Mode selection: Mode 1: @@ -6964,27 +6962,27 @@ Mode 4: - + 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) - + Mode 4 (AIL THR ELE RUD) Mod 4 (Lot.Gaz.SW.SK) - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -6993,313 +6991,317 @@ This is used by the templated to determine which channel goes to what number out To ustawienie jest używane przez szablony, określa jakie wyjście przypisane jest do kanału. - + R E T A K W G L - + R E A T K W L G - + R T E A - + R T A E K G L W - + R A E T K L W G - + R A T E K L G W - + E R T A W K G L - + E R A T W K L G - + E T R A W G K L - + E T A R W G L K - + E A R T W L K G - + E A T R W L G K - + T R E A G K W L - + T R A E G K L W - + T E R A G W K L - + T E A R G W L K - + T A R E G L K W - + T A E R G L W K - + A R E T L K W G - + A R T E L R G W - + A E R T L W K G - + A E T R L W G K - + A T R E L G K W - + A T E R L G W K - + Default Stick Mode Bazowy mod drążków - - Settings Profile - Ustawienia Profilu - - - + Splash Screen Ekran startowy - + Channel Order Kolejność kanałów - + Append version number to FW file name Dodaj numer Firmware do nazwy pliku - + SD Structure path Struktura karty SD + Firmware Variant + Wariant Firmware + + + Select Image Wybierz obrazek - + + Firmware File + Plik Firmware + + + Offer to write FW to Tx after download Zaproponuj zapisanie FirmWare do radia po pobraniu - + + Radio Settings Profile + Profil Ustawień Radia + + + + Profile Name + Nazwa profilu + + + Remove Profile Usuń Profil - + Clear Image Wyczyść obrazek - Firmware - Firmware + Firmware - - Include companion splashes - Załącz ekrany powitalne - - - - Only user defined splashes - Tylko własne ekrany powitalne - - - + Splash Screen Library Biblioteka ekranół powitalnych - + Files to keep Pkili to zapamiętania - + Simulator BackLight Podświetlenie symularota - + Automatic Backup Folder Automatyczny Katalog Backupów - + Only capture to clipboard Przechwyć tylko do schowka - + Joystick Joystick - + Find Executable Znajdź plik wykonywalny - + Google Earth Executable Plik wykonywalny Google Earth - + Calibrate Kalibracja - + Enable Aktywowany - + Show splash screen when Companion starts Pokaz ekran startowy przy uruchamianiu Companion - + Automatic check for OpenTX firmware updates Automatycznie sprawdź aktualizacje firmware OpenTX - + Automatic check for Companion updates Automatycznie sprawdź aktualizacje Companion - + Offer to use wizard for new models Zaproponuj użycie konfiguratora dla nowych modeli - + Enable automatic backup before writing firmware Uaktywnij automatyczny backup przed zapisem firmware - + Select your snapshot folder Katalog zrzutów - - + + No joysticks found Brak oysticka - + Select your library folder Wybierz katalog bibliteki - + Select your Models and Settings backup folder Wybierz folder do backupowania Modeli i Ustawień - + Select Google Earth executable Wybierz wykonywalny plik Google Earth - + Select the folder replicating your SD structure Wybierz folder do zreplikowania struktury Twojej karty SD - + Not possible to remove profile Usunięcie profilu jest niemożliwe - + The default profile can not be removed. Podstawowy profil nie moze być usunięty. - + Open Image to load Otwórz obrazek do załadowania - + Images (%1) Obrazki (%1) @@ -7683,250 +7685,292 @@ m2560 dla platformy V4 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 - + + Use firmware start screen + Użyj ekranu startowego z firmware + + + + Use another start screen + Użyj innego ekranu startowego + + + + Use profile start screen + Użyj ekranu startowego z profilu + + + + Use library start screen + Użyj ekranu startowego z biblioteki + + + SVN - + Variant Wariant - Invert Color - Odwróć kolory + Odwróć kolory - Load Image - Otwórz logo + Otwórz logo - Open Splash Library - Otwórz bibliotekę obrazków + Otwórz bibliotekę obrazków - - ... - - - - Substitute image in firmware - Zmień logo w 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 + 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 + %1 nie jest znanym firmware - Burn anyway ! - Wypiecz mimo wszystko ! + 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 - + + Open Firmware File + Otwórz plik Firmware + + + Choose file to load Models and Settings from Wybierz plik Modeli i Ustawien do wczytania - - - + + %1 may not be a valid firmware file + %1 moze nie być prawidłowym plikiem firmware + + + + + 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 + + The firmware file is not valid. + Plik firmware jest błedny. - + + There is no start screen image in the firmware file. + Brak obrazka ekranu startowego w firmware. + + + + The profile image %1 does not contain an image. + Obraz profilu %1 nie zawiera obrazka. + + + + Open image file to use as Tx start screen + Otwórz plik obrazka by użyć go jako ekran startowy radia + + + + Image could not be loaded from %1 + Obrazek nie moze być załadowany z %1 + + + + The library image could not be loaded + Obrazek z biblioteki nie może być załadowany + + + Open Image to load + Otwórz plik z logo + + + Images (%1) Obrazki (%1) - - Cannot load %1. - Nie mogę załadować %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: @@ -8501,118 +8545,118 @@ m2560 dla platformy V4 - + Invert Odwróć - - + + Load FW Otwórz firmware - - + + Load Pict Otwórz obrazek - + Load Profile Załaduj profil - - + + Save Zapisz - + Open Splash Library Otwórz bibliotekę obrazków - - - + + + ... - - Open - Otwórz - - - - - - + + + + Error Błąd - - Cannot load embedded FW image from %1. - Nie mogę załadować wstawionego obrazu FW z %1. - - - + Cannot load the image file %1. Nie mogę załadować pliku obrazka %1. - + Cannot load the profile image %1. Nie mogę załadować obrazu Profilu %1. - + Cannot load the library image %1. Nie mogę załadować obrazu biblioteki %1. - + File Saved Plik Zapisany - + The image was saved to the file %1 Obraz został zapisany do pliku %1 - + Image Refresh Error Błąd odświeżenia obrazka - + Failed to refresh image from file %1 Nieudane odswieżenie obrazka z pliku %1 - + File Save Error Błąd zapisu pliku - + Failed to write image to %1 Nieudany zapis obrazka do %1 - + Open Image to load Otwórz obrazek do załadowania - + + Open Firmware File + Otwórz plik Firmware + + + + Can not load embedded image from firmware file %1. + Nie mogę załądować wbudowanego obrazka z pliku Firmware %1. + + + Images (%1) Obrazki (%1) @@ -10621,32 +10665,32 @@ Mode 4: 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 diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index 9b2636f07..091cd0560 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -57,7 +57,7 @@ CurveGroup - + Diff Diff @@ -143,7 +143,7 @@ CustomFunctionsPanel - + Switch Brytare @@ -163,17 +163,17 @@ Effekt - + CF%1 - + - + ON - + Error Fel @@ -183,7 +183,7 @@ Kan inte hitta ljudfilen %1! - + &Delete &Ta bort @@ -601,7 +601,7 @@ Om fältet lämnas tomt så är filtret aktivt hela tiden. Allmänna inställningar - + General settings used throught the transmitter. These will be relevant for all models in the same EEPROM. Allmänna inställningar för sändaren @@ -1541,7 +1541,7 @@ Mode 4: Spänning - + Warning Varning @@ -1557,12 +1557,12 @@ Mode 4: Felaktig information i profilen, hårdvaruinställningar lästes inte in - + Do you want to store calibration in %1 profile<br>overwriting existing calibration? Vill du skriva över existerande kalibreringsdata<br>i profilen %1 med de nuvarande? - + Calibration and HW parameters saved. Kalibrering ojch hårdvaruinställningar sparades. @@ -1677,7 +1677,7 @@ Mode 4: PPMSim - + 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 ? @@ -1844,25 +1844,25 @@ FAI-funktionen kan inte slås av i sändaren. InputsPanel - + Move Up Flytta uppåt - - + + Ctrl+Up Ctrl+Up - - + + Move Down Flytta nedåt - - + + Ctrl+Down Ctrl+Down @@ -1887,12 +1887,12 @@ FAI-funktionen kan inte slås av i sändaren. Brytare(%1) - + Clear All Settings Radera alla inställningar - + Not enough available inputs! För få filter är tillgängliga! @@ -2064,39 +2064,39 @@ FAI-funktionen kan inte slås av i sändaren. MainWindow - - - - + + + + File loaded Filen har laddats - + - - + + Save As Spara Som - - + + No updates available at this time. Inga updateringar finns tillgängliga. - - - - + + + + Unable to check for updates. Det gick inte att söka efter uppdateringar. - + Executable (*.exe) Program (*.exe) @@ -2106,110 +2106,96 @@ FAI-funktionen kan inte slås av i sändaren. Vill du starta installationsprogrammet? - + Do you want to write the firmware to the transmitter now ? Vill du skriva firmware till sändaren nu? - + A new version of %1 firmware is available (current %2 - newer %3). Do you want to download it now ? En ny version finns tillgänglig av %1 fimware (Din version %2 - Ny version %3). Vill du ladda ned den nya versionen nu ? - Open - Öppna + Öppna - + File saved Filen sparades - + Copyright Copyright - New - Ny + Ny - Open... - Öppna... + Öppna... - Save... - Spara... + Spara... - Save As... - Spara Som... + Spara Som... - + Exit Avsluta - Cut - Klipp Ut + Klipp Ut - Cut current selection to the clipboard - Klipp ut markeringens innehåll till klippbordet + Klipp ut markeringens innehåll till klippbordet - Copy... - Kopiera... + Kopiera... - Copy current selection to the clipboard - Kopiera markeringens innehåll till klippbordet + Kopiera markeringens innehåll till klippbordet - Paste... - Klistra In... + Klistra In... - Paste clipboard into current selection - Klistra in klippbokens innehåll i det valda avsnittet + Klistra in klippbokens innehåll i det valda avsnittet - + Classical Klassiskt - The classical Companion icon theme - Det klassiska Companion-temat + Det klassiska Companion-temat - The new Companion 2 icon theme - Det nya Companion2-temat + Det nya Companion2-temat - Companion2 - Companion2 + Companion2 - + Monochrome Monokromt @@ -2234,137 +2220,119 @@ Vill du ladda ned den nya versionen nu ? Använd systemspråket i menyerna - About - Om + Om - Print - Skriv ut + Skriv ut - + Print current model Skriv ut modell - Simulate - Simulera + Simulera - Simulate selected model - Simulera modell + Simulera modell loadBackup... Ladda backup från fil... - Logs - Loggar + Loggar - Setting... - Inställningar... + Inställningar... - Downloads... - Nedladdningar... + Nedladdningar... - Check for updates... - Sök efter uppdateringar... + Sök efter uppdateringar... - + Edit Tx Splash Image... Startbildsredigerare... - edit the splash screen of your TX - Editera startbilder för din sändare + Editera startbilder för din sändare - List programmers - Programmerare + Programmerare - + Fuses... Säkringar... - Configure connection software... - Inställningar för kommunikation... + Inställningar för kommunikation... - + Save Tx Models and Settings to file Spara sändarens Modeller och Inställningar till fil - Contributors - Bidragande + Bidragande - + A tribute to those who have contributed to OpenTX and Companion Ett tack till alla de som bidragit till OpenTX och Companion - + Settings Inställningar - + Read/Write Läs/Skriv - - &%1 %2 - &%1 %2 + &%1 %2 &New &Ny - Create a new file - Skapa ny fil + Skapa ny fil &Open... &Öppna... - Open an existing file - Öppna en existerande fil + Öppna en existerande fil &Save &Spara - - Save the document to disk - Spara dokumentet till fil + Spara dokumentet till fil Save &As... @@ -2379,12 +2347,12 @@ 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 ? - + Firmware does not longer fit in the Tx, due to selected firmware options Firmware får inte rum i minnet på grund av att för många funktioner aktiverats @@ -2394,12 +2362,12 @@ Vill du ladda ned den nya versionen nu ? Tillfälligt fel i byggservern. Försök igen senare - + Firmware does not fit in the Tx, due to selected firmware options Firmware får inte rum i minnet på grund av att för många funktioner aktiverats - + Firmware %1 does not seem to have ever been downloaded. Version %2 is available. Do you want to download it now ? @@ -2408,12 +2376,12 @@ 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 @@ -2428,7 +2396,7 @@ Vill du ladda ned den nu ? Säkerhetskopieringen misslyckades - + OpenTX Companion - FW: %1 - Profile: %2 OpenTX Companion - FW: %1 - Profil: %2 @@ -2437,7 +2405,7 @@ Vill du ladda ned den nu ? &Inställningar... - + Edit Settings Redigera Inställningar @@ -2459,7 +2427,7 @@ Vill du ladda ned den nu ? &Avsluta - + Exit the application Avsluta programmet @@ -2496,16 +2464,15 @@ Vill du ladda ned den nu ? Ctrl+Alt+R - Configure software for reading from and writing to the transmitter - Inställningar för mjukvaran som kommunicerar med sändaren + Inställningar för mjukvaran som kommunicerar med sändaren &List programmers &Programmerare - + List available programmers Lista upp tillgängliga prorammerare @@ -2552,10 +2519,8 @@ Vill du ladda ned den nu ? Visa information om programmet - - Recent Files - Senaste Filer + Senaste Filer &File @@ -2570,22 +2535,22 @@ Vill du ladda ned den nu ? 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> @@ -2621,16 +2586,15 @@ Vill du ladda ned den nu ? Redigera programmets inställningar - Show Companion changelog - Visa en lista med förändringar av Companion + Visa en lista med förändringar av Companion &Write Models and Settings To Tx &Skriv Modeller och Inställningar till sändaren - + Write Models and Settings to transmitter Skriv Modeller och Inställningar till sändaren @@ -2648,8 +2612,84 @@ Vill du ladda ned den nu ? Write Firmware Skriv Firmware + + + New Models+Settings + Ny Modeller+Inställningar + + Create a new Models and Settings file + Skapa en ny Modeller och Inställningar-fil + + + + Open Models+Settings... + Öppna MOdeller+Inställningar... + + + + Save Models+Settings... + Spara Modeller+Inställningar... + + + + + Save Models and Settings file + Spara Modeller och Inställningar-fil + + + + Save Models+Settings as... + Spara Modeller+Inställningar som... + + + + Cut Model + Klipp ut Modell + + + + Cut current model to the clipboard + Klipp ut vald modell till klippbordet + + + + Copy Model... + Kopera Modell... + + + + Copy current model to the clipboard + Kopiera vald modell till klippbordet + + + + Paste Model... + Klistra in Modell... + + + + Paste model from clipboard + Klistra in modell från klippbordet + + + + The classic companion9x icon theme + Det klassiska companion9x-temat + + + + Yerico + Yerico + + + + Yellow round honey sweet icon theme + Yellow round honey sweet icon theme + + + Write firmware to transmitter Skriv firmware till sändaren @@ -2697,24 +2737,40 @@ Vill du ladda ned den nu ? - + File Arkiv - + Edit Redigera - - + + Help Hjälp - + + + Radio Settings Profile + Radioprofil + + + + Show recent Models+Settings documents + Visa senaste Modeller+Inställningar-dokument + + + + Show a selection list of radio settings profiles + Visa en lista med radioprofiler + + + Ready Redo @@ -2723,17 +2779,17 @@ Vill du ladda ned den nu ? &Bidragsgivare... - + Display previous warning again at startup ? SKall föregående varning visas igen vid uppstart ? - + - + - - + + @@ -2745,21 +2801,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: @@ -2768,68 +2824,72 @@ Vill du ladda ned den nu ? %2. - + Compilation server termporary failure, try later Tillfälligt fel i byggservern. Försök igen senare - - + + Compilation server too busy, try later Byggservern är upptagen. Försök igen senare - - + + Unknown server failure, try later Okänt server-fel. Försök igen senare - Compare... - Jämför... + Jämför... - + Compare models 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 + Profiler för Firmware &Read/Write &Läs/Skriv - + Write Skriv - + + %2 + %2 + + + + Unable to find file %1! Kan inte hitta filen %1 ! @@ -2845,7 +2905,7 @@ Vill du ladda ned den nu ? ladda&Backup... - + Load backup from file Ladda backup från fil @@ -2858,46 +2918,45 @@ Vill du ladda ned den nu ? Ctrl+G - Open log file - Öppna loggfil + Ö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 - + A new version of Companion is available (version %1)<br>Would you like to download it? An ny version av Companion finns tillgänglig (version %1)<br>Vill du ladda ned den? - - + + Compilation server requires registration, please check OpenTX web site Byggservern kräver registrering. Var god kontrollera OpenTX webbsida - + No Nej @@ -2915,34 +2974,40 @@ Vill du ladda ned den nu ? Vill du ladda ned firmware %1 nu ? - + Release notes contain very important informations. Do you want to see them now ? Release notes innehåller väldigt viktig information. Vill du läsa dem nu? - + The selected language will be used the next time you start Companion. Språket som valts kommer att användas nästa gång Companion startas. - - + + OK OK - + The new theme will be loaded the next time you start Companion. De nya ikonerna kommer att användas nästa gång Companion startas. - + The icon size will be used the next time you start Companion. Ikonernas storlek kommer att justeras nästa gång Companion startas. - + + + Open Models and Settings file + Öppna Modeller och Inställningar-fil + + + Firmware updates Firmware-uppdatering @@ -2954,14 +3019,14 @@ 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 ? @@ -2974,13 +3039,13 @@ 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? @@ -2996,12 +3061,12 @@ Starta skrivningen i alla fall ? - + Write Models and Settings To Tx Skriv Modeller och Inställningar till sändaren - + Write Firmware To Tx Skriv firmware till sändaren @@ -3037,7 +3102,7 @@ Starta skrivningen i alla fall ? 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 @@ -3047,12 +3112,12 @@ 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 - + About Companion Om Companion @@ -3065,28 +3130,24 @@ Starta skrivningen i alla fall ? Ladda ned firmware och röstfiler. Definera profildata. - Check for new version of Companion - Sök efter ny version av Companion + Sök efter ny version av Companion Show Companion contributors list Visa vilka som bidragit till Companion - ChangeLog... - Förändringar... + Förändringar... - Firmware ChangeLog... - Firmware-förändringar... + Firmware-förändringar... - Show firmware changelog - Visa firmware-förändringar + Visa firmware-förändringar Configure transmitter start screen... @@ -3097,12 +3158,11 @@ Starta skrivningen i alla fall ? Inställningar för &kommunikation... - New Profile - Ny Profil + Ny Profil - + Create a new Radio Setting Profile Lägg till en ny profil med radio-inställningar @@ -3115,7 +3175,7 @@ Starta skrivningen i alla fall ? Det flerfärgade klassiska Companion-temat - + A monochrome black icon theme Ett monokromt svart tema @@ -3207,6 +3267,16 @@ Starta skrivningen i alla fall ? Use English in menus Använd Engelska i menyerna + + + Finnish + Finska + + + + Use Finnish in menus + Använd Finska i menyerna + French @@ -3278,12 +3348,102 @@ Starta skrivningen i alla fall ? Använd Ryska i menyerna - + + About... + Om... + + + + Print... + Skriv Ut... + + + + Simulate... + Simulera... + + + + Simulate current model + Simulera vald modell + + + Load Backup... Ladda backup från fil... - + + View Log File... + Visa loggfil... + + + + Open and view log file + Öppna och visa loggfil + + + + Settings... + Inställningar... + + + + Download... + Nedladdning... + + + + Check for Updates... + Sök efter uppdateringar... + + + + Check OpenTX and Companion updates + Sök efter uppdateringar av Companion och OpenTX + + + + Companion Changes... + Förändringar i Companion... + + + + Show Companion change log + Visa en lista med förändringar av Companion + + + + Firmware Changes... + OpenTX-förändringar... + + + + Show firmware change log + Visa en lista med förändringar av OpenTX + + + + Compare Models... + Jämför modeller... + + + + Edit the splash image of your TX + Editera startbilden' för din sändare + + + + List programmers... + Visa programmerare... + + + + Add Radio Profile + Lägg till Radioprofil + + + Manuals and other Documents Manualer och andra Dokument @@ -3293,7 +3453,28 @@ Starta skrivningen i alla fall ? Öppna OpenTX dokumentsida i en webbläsare - + + Configure Communications... + Kommunikations-inställningar... + + + + Configure software for communicating with the transmitter + Ställ in mjukvara för kommunikation med sändaren + + + + Contributors... + Bidragande... + + + + + Recent Models+Settings + Senaste Modell+Inställnings-filer + + + Set Icon Theme Ställ in Ikontema @@ -3307,12 +3488,11 @@ Starta skrivningen i alla fall ? &Inställningar - Radio Settings Profiles - Profiler för Radioinställningar + Profiler för Radioinställningar - + Invalid Models and Settings File %1 Filen innehåller inte Modeller och Inställningar: %1 @@ -3326,7 +3506,7 @@ Starta skrivningen i alla fall ? MdiChild - + @@ -3334,14 +3514,15 @@ Starta skrivningen i alla fall ? - + - - + + + @@ -3349,36 +3530,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. - + @@ -3404,12 +3585,12 @@ Starta skrivningen i alla fall ? %2. - + free bytes bytes lediga - + Invalid EEPROM File %1 Ogiltig modelldatafil %1 @@ -3420,48 +3601,48 @@ Starta skrivningen i alla fall ? Ogiltig binär modelldatafil %1 - + %1 has been modified. Do you want to save your changes? %1 har förändrats. Vill du spara förändringarna? - + Cannot write temporary file! En temporär fil kunde inte skrivas! - + Backup is impossible Säkerhetskopierin kan ej utföras - + - + Companion Companion - + The backup dir set in preferences does not exist Den katalog som konfigurerats för säkerhetskopiering existerar inte - - - + + + 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 @@ -3477,9 +3658,13 @@ Vill du spara förändringarna? Firmware i flashminnet är föråldrat. Var god uppgradera! - + + Open backup Models and Settings file + Öppna Modeller och Inställningar-fil + + Open - Öppna + Öppna @@ -3487,16 +3672,16 @@ 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. @@ -3506,7 +3691,7 @@ Vill du spara förändringarna? Skriv EEPROM till sändaren - + Do you want to use model wizard? Vill du använda modell-guiden? @@ -4295,7 +4480,7 @@ p, li { white-space: pre-wrap; } ModulePanel - + Trainer Output TrainerUttag @@ -4313,7 +4498,7 @@ p, li { white-space: pre-wrap; } QObject - + P1 @@ -4359,17 +4544,15 @@ p, li { white-space: pre-wrap; } T2 - th9x - th9x + th9x - er9x - er9x + er9x - + Trainer Trainer @@ -4457,10 +4640,8 @@ p, li { white-space: pre-wrap; } Timer2 - - - - + + Warning Varning @@ -4470,19 +4651,16 @@ p, li { white-space: pre-wrap; } Modelldata sparades, men med dessa varningar: - ersky9x - ersky9x + ersky9x - - - + Simulator for this firmware is not yet available Det finns ännu ingen simulator för denna typ av firmware - + REa @@ -4738,7 +4916,7 @@ p, li { white-space: pre-wrap; } PPM%1 - + THR GAS @@ -4972,7 +5150,7 @@ p, li { white-space: pre-wrap; } Det går inte att använda Expo på en specialkurva i open9x - + Support for frsky telemetry mod Stöd för FrSky telemeri @@ -5088,12 +5266,12 @@ p, li { white-space: pre-wrap; } Stöd för FrSky PXX-protokoll - + OpenTX for FrSky Taranis Rev4a OpenTX för FrSky Taranis Rev4a - + @@ -5232,21 +5410,21 @@ p, li { white-space: pre-wrap; } X%1 - + + - GV%1 GV%1 - - + + --- ---- - + Rud Trim Rod.Trim @@ -5316,8 +5494,8 @@ p, li { white-space: pre-wrap; } Eget värde - - + + -GV%1 -GV%1 @@ -5334,18 +5512,18 @@ p, li { white-space: pre-wrap; } - + PPM values displayed in us PPM-värden visade i ms - + Bluetooth interface Blåtandsinterface - - + + S1 S1 @@ -5697,7 +5875,7 @@ p, li { white-space: pre-wrap; } Ökning - + Yellow Gul @@ -5933,7 +6111,7 @@ p, li { white-space: pre-wrap; } !Kurva(%1) - + FM%1 FM%1 @@ -5983,6 +6161,11 @@ p, li { white-space: pre-wrap; } Portuguese Portugisiska + + + Finnish + Finska + !Flight mode %1 @@ -5999,7 +6182,7 @@ p, li { white-space: pre-wrap; } Flygläge %1 värde - + openTx only accepts %1 points in all curves openTX accepterar bar %1 punkter i alla kurvor @@ -6023,14 +6206,14 @@ p, li { white-space: pre-wrap; } OpenTX accepterar inte detta antal kanaler - + 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 @@ -6063,12 +6246,12 @@ eeprom-storleken är 4096, men enbart den första hälften används - + Use alternative SQT5 font Använd SQT5-typsnittet - + @@ -6121,24 +6304,24 @@ eeprom-storleken är 4096, men enbart den första hälften används - + Disable HELI menu and cyclic mix support Slå av HELI-menyn och stöd för cykliska mixar - - + + Disable TEMPLATES menu Slå av menyn för Mallar - - + + Disable Global variables Slå av Globala Variabler - + Possibility to enable FAI MODE at field Möjlighet att slå på FAI-LÄGE före pflygning @@ -6181,7 +6364,7 @@ Gruppen bakom OpenTX/Companion. Använd trim från flygläge %1 + Eget trim som offset - + FW: %1 FW: %1 @@ -6342,6 +6525,296 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Automatiska + + SimulatorDialog + + + + Warning + Varning + + + + Joystick enabled but not configured correctly + Joysticken påslagen, men ej rätt inställd + + + + Cannot open joystick, joystick disabled + Joysticken kan inte hittas. Joysticken stängs av + + + + Simulating Tx (%1) + Simulerar sändare (%1) + + + + Firmware %1 error: %2 + Firmware %1 fel: %2 + + + + SimulatorDialog9X + + + Companion Simulator + Companion Simulator + + + + + + + Right Double Click to Reset + Höger dubbelklick nollställer + + + + THR + GAS + + + + RUD + ROD + + + + ELE + HÖJ + + + + AIL + SKE + + + + + Hold X + Håll X + + + + + Fix X + Fixera X + + + + + Fix Y + Fixera Y + + + + + Hold Y + Håll Y + + + + + + + TextLabel + Textettikett + + + + TRN + TRN + + + + GEA + LAN + + + + ID0 + ID0 + + + + ID1 + ID1 + + + + ID2 + ID2 + + + + BEEP + Summer + + + + P1 + P1 + + + + + + 0 % + 0 % + + + + P2 + P2 + + + + P3 + P3 + + + + 9x Simulator + Simulator för 9x + + + + Outputs + Utgångar + + + + SimulatorDialogTaranis + + + Companion Simulator + Companion Simulator + + + + + Hold Y + Håll Y + + + + + Fix Y + Fixera Y + + + + + Fix X + Fixera X + + + + + Hold X + Håll X + + + + + SD + SD + + + + + SC + SC + + + + + + + Right Double Click to Reset + Höger dubbelklick nollställer + + + + + S2 + S2 + + + + + SG + SG + + + + + RS + RS + + + + + SH + SH + + + + + + + TextLabel + Textettikett + + + + + S1 + S1 + + + + + SB + SB + + + + + SA + SA + + + + + SE + SE + + + + + + SF + SF + + + + + LS + LS + + + + Taranis Simulator + Taranissimulator + + + + Outputs + Utgångar + + Telemetry @@ -6685,7 +7158,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga mAmpere (mA) - + Range Räckvidd @@ -6741,7 +7214,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Telemetriskärm %1 - + Winged Shadow How High Winged Shadow How High @@ -6809,7 +7282,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Programmets Inställningar - + Simulator capture folder Lagra simulatorbilder i @@ -6822,27 +7295,37 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga - + Open Folder Öppna katalog - + User Splash Screens Egna Startbilder - + Edit Settings Redigera Inställningar - + Application Settings Programmet - + + Only show user splash images + Enbart användarens bilder + + + + Show user and companion splash images + Både användarens bilder och Companion-bilder + + + Simulator Settings Simulatorn @@ -6872,12 +7355,11 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Gul - Radio Settings - Radion + Radion - + Mode selection: Mode 1: @@ -7067,17 +7549,21 @@ Detta används av mallen för att koppla kanal till output-nummer. S G H R - + Default Stick Mode Spaktilldelning - - Settings Profile - Profil + + Firmware File + Firmware - + Settings Profile + Profil + + + Splash Screen Startbild @@ -7097,42 +7583,54 @@ Detta används av mallen för att koppla kanal till output-nummer. Sökväg till SD-struktur - + + Firmware Variant + Firmware-typ + + + Select Image Välj Bild - + Offer to write FW to Tx after download Skriv FW till Tx efter nedladdning - + + Radio Settings Profile + Radioprofile + + + + Profile Name + Profilnamn + + + Remove Profile Ta bort Profil - + Clear Image Ta bort Bild - Firmware - Firmware + Firmware - Include companion splashes - Användarens bilder och Companion-bilder + Användarens bilder och Companion-bilder - Only user defined splashes - Enbart användarens bilder + Enbart användarens bilder - + Splash Screen Library Bibliotek för startbilder @@ -7207,38 +7705,38 @@ Detta används av mallen för att koppla kanal till output-nummer. Säkerhetskopiera innan firmware-skrivning - + Select your snapshot folder Välj katalog för snapshots av Tx-simulatorn - - + + No joysticks found Ingen joystick hittades - + Select your library folder Välj bibliotekskatalog - + Select your Models and Settings backup folder Välj folder för automatisk säkerhetskopiering - + Select Google Earth executable Sökväg till Google Earth - + Select the folder replicating your SD structure Välj katalog med en kopia av din SD-struktur - + Not possible to remove profile Det går inte att ta bort profilen @@ -7256,7 +7754,7 @@ Detta används av mallen för att koppla kanal till output-nummer. Det går inte att ladda %1. - + Open Image to load Öppna bild för laddning @@ -7531,7 +8029,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 @@ -7617,7 +8115,7 @@ m2560 för v4.1-kort Inställningar för Programmerare - + DFU-UTIL Configuration Inställningar för DFU-UTIL @@ -7632,7 +8130,7 @@ m2560 för v4.1-kort Inställningar för AVRDUDE - + Companion Companion @@ -7646,12 +8144,12 @@ m2560 för v4.1-kort Välj Sändarens Startbild - + Date & Time Dag & Tid - + SVN Subversion @@ -7661,102 +8159,95 @@ m2560 för v4.1-kort Tillåter Companon att skriva till äldre firmware-versioner - Load Image - Ladda Bild + Ladda Bild - Open Splash Library - Öppna bildbibliotek + Öppna bildbibliotek - ... - ... + ... - Substitute image in firmware - Byt ut bilden i firmware-filen + Byt ut bilden i firmware-filen - - + Write to TX Skriv till sändaren - Use image in settings - Använd bilden från inställningarna + Använd bilden från inställningarna - Invert Color - Invertera Bilden + Invertera Bilden - + Check Firmware compatibility Kontrollera att firmware-filen är kompatibel - + Cancel Avbryt - + Write firmware to TX Skriv firmware till sändaren - Open - Öppna + Öppna - - + + - - + + Warning Varning - Burn anyway ! - Starta bränningen! + Starta bränningen! - Open Image to load - Öppna bilden som skall laddas + Öppna bilden som skall laddas - + Images (%1) Bilder (%1) - + - - - + + + + + + Error Fel - + Write Models and Settings to TX Skriv Modeller och Inställningar till sändaren @@ -7766,25 +8257,23 @@ m2560 för v4.1-kort 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. + Det går inte att ladda %1. - + Cannot save customized firmware Det gick inte att spara den modifierade firmware-filen @@ -7794,12 +8283,12 @@ m2560 för v4.1-kort Bildfilen hittades inte - + No firmware selected Ingen firmware har valts - + Wrong radio calibration data in profile, Settings not patched Felaktig information i profilen, sändarens-kalibrering kunde inte läsas in @@ -7809,12 +8298,11 @@ 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 + %1 är inte en fimware-fil - + <html><head/><body><p>Modify calibration parameters using settings from current profile</p></body></html> <html><head/><body><p>Uppdatera kalibrerings-parametrarna med data från nuvarande profil</p></body></html> @@ -7834,8 +8322,8 @@ m2560 för v4.1-kort Uppdatera med HW-inställningar från profilen - - + + Browse for file Välj fil @@ -7850,12 +8338,42 @@ m2560 för v4.1-kort Nuvarande Profil - + + Use firmware start screen + Använd firmware-startskärmen + + + + Use another start screen + Använd en annan startskärm + + + + Use profile start screen + Använd profilens startskärm + + + + Use library start screen + Använd biblioteks-startskärm + + + Current profile Nuvarande profil - + + Open Firmware File + Öppna firmware-fil + + + + %1 may not be a valid firmware file + %1 är kanske inte en giltig firmware-fil + + + Unable to find file %1! Kan inte hitta filen %1 ! @@ -7876,7 +8394,37 @@ m2560 för v4.1-kort %2. - + + The firmware file is not valid. + Firmware-filen är inte giltig. + + + + There is no start screen image in the firmware file. + Firmware-filen innehåller inte någon startbild. + + + + The profile image %1 does not contain an image. + Profil-bilden %1 innehåller inte någon startbild. + + + + Open image file to use as Tx start screen + Öppna bildfil för användning som radions startsskärm + + + + Image could not be loaded from %1 + Det gick inte att ladda en bild från %1 + + + + The library image could not be loaded + Bild-biblioteket kunde inte öppnas + + + Cannot write file %1: %2. @@ -7891,7 +8439,7 @@ m2560 för v4.1-kort %2. - + Variant Variant @@ -7899,12 +8447,16 @@ m2560 för v4.1-kort compareDialog - Dialog - Dialog + Dialog - + + Compare Models + Jämför Modeller + + + Drag first model here Dra hit första modellen @@ -7929,7 +8481,7 @@ m2560 för v4.1-kort Skriv till fil - + General Model Settings Generella modell-inställningar @@ -8418,7 +8970,7 @@ m2560 för v4.1-kort Dialog - + People who have contributed to this project De som har bidragit till detta projekt @@ -8428,12 +8980,12 @@ m2560 för v4.1-kort Programmerare - + Companion Release Notes Companion Release Notes - + Thank you all !!! Tack till er alla !!! @@ -8448,7 +9000,7 @@ m2560 för v4.1-kort Bidragande - + OpenTX Release Notes OpenTX Release Notes @@ -8461,58 +9013,66 @@ m2560 för v4.1-kort Startbildsredigerare - - + + Invert Invertera - - + + Load FW Ladda FW - - + + Load Pict Ladda Bild - - + + Load Profile Ladda Profil - - + + Save Spara - - + + Open Splash Library Öppna bildbibliotek - Open - Öppna + Öppna - + - + Error Fel - Cannot load embedded FW image from %1. - Det gick inte att ladda bild från FW-filen %1. + Det gick inte att ladda bild från FW-filen %1. + + + + Open Firmware File + Öppna firmware-fil + + + + Can not load embedded image from firmware file %1. + Det gick inte att ladda bild från firmware-filen %1. @@ -8525,7 +9085,7 @@ m2560 för v4.1-kort Det gick inte att ladda profilbilden %1. - + Cannot load the library image %1. Det gick inte att ladda biblioteks-bilden %1. @@ -8564,7 +9124,7 @@ m2560 för v4.1-kort Det finns ingen bild att byta i firmware-filen - + Open Image to load Öppna bild för laddning @@ -8586,9 +9146,10 @@ m2560 för v4.1-kort Det gick inte att spara bilden i filen %1 - - - + + + + ... ... @@ -8601,7 +9162,7 @@ m2560 för v4.1-kort Nedladdning: - + Unable to save the file %1: %2. Kan ej spara filen %1: %2. @@ -8624,7 +9185,7 @@ m2560 för v4.1-kort Säkringar - + Read Fuses Läs in säkringarna @@ -8760,7 +9321,12 @@ p, li { white-space: pre-wrap; } fwPreferencesDialog - + + Downloads + Nedladdningar + + + @@ -8907,16 +9473,15 @@ Används av mallarna för att koppla ihop kanaler med numrerade utgångar.Skriv FW till Tx efter nedladdning - Downloads and Profiles - Nedladdning och Profiler + Nedladdning och Profiler Save Profile Spara Profil - + Menu Language Menyspråk @@ -8967,7 +9532,7 @@ Används av mallarna för att koppla ihop kanaler med numrerade utgångar.Sök efter uppdateringar - + Last downloaded release: %1 Senast nedladdade release: %1 @@ -9009,7 +9574,7 @@ Används av mallarna för att koppla ihop kanaler med numrerade utgångar. joystickDialog - + Configure Joystick Ställ in Joystick @@ -9158,7 +9723,7 @@ Används av mallarna för att koppla ihop kanaler med numrerade utgångar.OK - + Move sticks and pots in every direction making full movement Press next when finished Rör spakar och pottentiometrar. Ge fulla utslag. @@ -9209,7 +9774,7 @@ Tryck på Avbryt för att avburyta kalibreringen Dubblerad koppling av spak - + @@ -9241,7 +9806,7 @@ Tryck på Avbryt för att avburyta kalibreringen Companion Logg-läsare - + Filename Filnamn @@ -9251,7 +9816,7 @@ Tryck på Avbryt för att avburyta kalibreringen Öppna Loggfil - + Zoom Zoom @@ -9266,7 +9831,7 @@ Tryck på Avbryt för att avburyta kalibreringen Y - + Telemetry logs Telemetriloggar @@ -9276,7 +9841,7 @@ Tryck på Avbryt för att avburyta kalibreringen Tid - + Error Fel @@ -9288,7 +9853,7 @@ Tryck på Avbryt för att avburyta kalibreringen %2. - + Select your log file Välj loggfil @@ -9311,7 +9876,7 @@ Tryck på Avbryt för att avburyta kalibreringen mdiChild - + Simulate Tx Simulera sändare @@ -9324,7 +9889,7 @@ Tryck på Avbryt för att avburyta kalibreringen Guide för modellkonfiguaration - + Engine Motor @@ -9738,7 +10303,7 @@ Tryck på Avbryt för att avburyta kalibreringen Dubbla Sidoroder (med 2 servon) - + Apply configuration ? Tillämpa inställningarna? @@ -10155,62 +10720,48 @@ Mode 4: Firmware-info - Last downloaded release: %1 - Senast nedladdade release: %1 + Senast nedladdade release: %1 - - No joysticks found - Ingen joystick hittades + Ingen joystick hittades - Select your Models and Settings backup folder - Välj folder för automatisk säkerhetskopiering + Välj folder för automatisk säkerhetskopiering - Select Google Earth executable - Sökväg till Google Earth + Sökväg till Google Earth - Open Image to load - Öppna bild för laddning + Öppna bild för laddning - Images (%1) - Bilder (%1) + Bilder (%1) - - Error - Fel + Fel - The selected firmware has never been downloaded by Companion. - Firmware-filen har aldrig laddats ned av Companion. + Firmware-filen har aldrig laddats ned av Companion. - The selected firmware cannot be downloaded by Companion. - Firmware-filen kan inte laddas ned av Companion. + Firmware-filen kan inte laddas ned av Companion. - - Cannot load %1. - %1 kunde inte laddas. + %1 kunde inte laddas. - Image stored in settings - Bilden lagras i inställningar + Bilden lagras i inställningar @@ -10261,12 +10812,11 @@ Mode 4: säkerhetskopiera innan skrivning - Select your library folder - Välj bibliotekskatalog + Välj bibliotekskatalog - + Export Profile Exportera Profil @@ -10293,19 +10843,16 @@ May be different from firmware language Får skilja från språket för mjukvaran - Export profile As - Exportera profil som + Exportera profil som - Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? - Det finns redan en profil i position %1,. Den kommer att skrivas över.<br> Är du säker ? + Det finns redan en profil i position %1,. Den kommer att skrivas över.<br> Är du säker ? - Open Profile to import - Öppna profil för import + Öppna profil för import @@ -10331,14 +10878,12 @@ Får skilja från språket för mjukvaran Använd bara clipboard - Select your snapshot folder - Välj katalog för snapshots + Välj katalog för snapshots - Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? - Profilnamn saknas, profilplats %1 kommer att raderas.<br> Är du säker? + Profilnamn saknas, profilplats %1 kommer att raderas.<br> Är du säker? @@ -10361,9 +10906,8 @@ Får skilja från språket för mjukvaran Sökväg till SD-struktur - Select the folder replicating your SD structure - Välj katalog som härmar din SD-struktur + Välj katalog som härmar din SD-struktur @@ -10374,7 +10918,7 @@ Får skilja från språket för mjukvaran Dialog - + Close Stäng @@ -10389,7 +10933,7 @@ Får skilja från språket för mjukvaran Skriv till fil - + Setup for: Inställningar för: @@ -10816,434 +11360,327 @@ Får skilja från språket för mjukvaran simulatorDialog - P1 - P1 + P1 - P2 - P2 + P2 - P3 - P3 + P3 - THR - GAS + GAS - RUD - ROD + ROD - ELE - HÖJ + HÖJ - AIL - SKE + SKE - - Hold X - Håll X + Håll X - - Fix X - Fixera X + Fixera X - - Fix Y - Fixera Y + Fixera Y - - Hold Y - Håll Y + Håll Y - - - - TextLabel - Textettikett + Textettikett - TRN - TRN + TRN - GEA - LAN + LAN - ID0 - ID0 + ID0 - ID1 - ID1 + ID1 - ID2 - ID2 + ID2 - BEEP - Summer + Summer - - - - Right Double Click to Reset - Höger dubbelklick nollställer + Höger dubbelklick nollställer - Companion Simulator - Companion Simulator + Companion Simulator - 9x Simulator - Simulator för 9x + Simulator för 9x - Outputs - Utgångar + Utgångar - LS1 - LB1 + LB1 - LS2 - LB2 + LB2 - LS3 - LB3 + LB3 - LS4 - LB4 + LB4 - LS5 - LB5 + LB5 - LS6 - LB6 + LB6 - LS7 - LB7 + LB7 - LS8 - LB8 + LB8 - LS9 - LB9 + LB9 - LSA - LBA + LBA - LSB - LBB + LBB - LSC - LBC + LBC - LSD - LBD + LBD - LSE - LBE + LBE - LSF - LBF + LBF - LSG - LBG + LBG - LSH - LBH + LBH - LSI - LBI + LBI - LSJ - LBJ + LBJ - LSK - LBK + LBK - LSL - LBL + LBL - LSM - LBM + LBM - LSN - LBN + LBN - LSO - LBO + LBO - LSP - LBP + LBP - LSQ - LBQ + LBQ - LSR - LBR + LBR - LSS - LBS + LBS - LST - LBT + LBT - LSU - LBU + LBU - LSV - LBV + LBV - LSW - LBW + LBW - CH1 - KN1 + KN1 - CH9 - KN9 + KN9 - CH2 - KN2 + KN2 - CH10 - KN10 + KN10 - CH3 - KN3 + KN3 - CH11 - KN11 + KN11 - CH4 - KN4 + KN4 - CH12 - KN12 + KN12 - CH5 - KN5 + KN5 - CH13 - KN13 + KN13 - CH6 - KN6 + KN6 - CH14 - KN14 + KN14 - CH7 - KN7 + KN7 - CH15 - KN15 + KN15 - CH8 - KN8 + KN8 - CH16 - KN16 + KN16 - - - - - - - - - - - - - - - - -100.1 - -100.1 + -100.1 - - Warning - Varning + Varning - Joystick enabled but not configured correctly - Joysticken påslagen, men ej rätt inställd + Joysticken påslagen, men ej rätt inställd - Cannot open joystick, joystick disabled - Joysticken kan inte hittas. Joysticken stängs av + Joysticken kan inte hittas. Joysticken stängs av - Firmware %1 error: %2 - Firmware %1 fel: %2 + Firmware %1 fel: %2 - Simulating Tx (%1) - Simulerar sändare (%1) + Simulerar sändare (%1) - Simulating - Simulerar + Simulerar - - - 0 % - 0 % + 0 % - - Flight mode: %1(%2) - - Fligmod: %1(%2) + - Fligmod: %1(%2) splashLibrary - - + + ... ... @@ -11253,7 +11690,7 @@ Får skilja från språket för mjukvaran Bildbibliotek - Sida %1 av %2 - + Warning Varning @@ -11276,428 +11713,312 @@ Får skilja från språket för mjukvaran xsimulatorDialog - - SE - SE + SE - - SA - SA + SA - - SB - SB + SB - - - - Right Double Click to Reset - Höger dubbelklick nollställer + Höger dubbelklick nollställer - - - - TextLabel - Textettikett + Textettikett - - Hold X - Håll X + Håll X - - Fix X - Fixera X + Fixera X - - Fix Y - Fixera Y + Fixera Y - - Hold Y - Håll Y + Håll Y - - SH - SH + SH - - SG - SG + SG - Companion Simulator - Companion Simulator + Companion Simulator - - SD - SD + SD - - SC - SC + SC - Outputs - Utgångar + Utgångar - CH1 - KN1 + KN1 - - - - - - - - - - - - - - - - -100.1 - -100.1 + -100.1 - CH9 - KN9 + KN9 - CH2 - KN2 + KN2 - CH10 - KN10 + KN10 - CH3 - KN3 + KN3 - CH11 - KN11 + KN11 - CH4 - KN4 + KN4 - CH12 - KN12 + KN12 - CH5 - KN5 + KN5 - CH13 - KN13 + KN13 - CH6 - KN6 + KN6 - CH14 - KN14 + KN14 - CH7 - KN7 + KN7 - CH15 - KN15 + KN15 - CH8 - KN8 + KN8 - CH16 - KN16 + KN16 - LSK - LBK + LBK - LSC - LBC + LBC - LSD - LBD + LBD - LS7 - LB7 + LB7 - LSL - LBL + LBL - LSB - LBB + LBB - LS1 - LB1 + LB1 - LSH - LBH + LBH - LSG - LBG + LBG - LSE - LBE + LBE - LSF - LBF + LBF - LS8 - LB8 + LB8 - LS9 - LB9 + LB9 - LSA - LBA + LBA - LSM - LBM + LBM - LSJ - LBJ + LBJ - LSI - LBI + LBI - LS4 - LB4 + LB4 - LS5 - LB5 + LB5 - LS2 - LB2 + LB2 - LS3 - LB3 + LB3 - LS6 - LB6 + LB6 - LSN - LBN + LBN - LSO - LBO + LBO - LSP - LBP + LBP - LSQ - LBQ + LBQ - LSR - LBR + LBR - LSS - LBS + LBS - LST - LBT + LBT - LSU - LBU + LBU - LSV - LBV + LBV - LSW - LBW + LBW - - Warning - Varning + Varning - Joystick enabled but not configured correctly - Joysticken påslagen, men ej rätt inställd + Joysticken påslagen, men ej rätt inställd - Cannot open joystick, joystick disabled - Joysticken kan inte hittas. Joysticken stängs av + Joysticken kan inte hittas. Joysticken stängs av - Firmware %1 error: %2 - Firmware %1 fel: %2 + Firmware %1 fel: %2 - Simulating Tx (%1) - Simulerar sändare (%1) + Simulerar sändare (%1) - Simulating - Simulerar + Simulerar - - - SF - SF + SF - - S2 - S2 + S2 - - RS - RS + RS - - S1 - S1 + S1 - - LS - LS + LS - Taranis Simulator - Taranissimulator + Taranissimulator - - Flight mode: %1(%2) - - Fligmod: %1(%2) + - Fligmod: %1(%2) diff --git a/radio/src/audio_arm.cpp b/radio/src/audio_arm.cpp index 5d2fb1be9..8e9f4a741 100644 --- a/radio/src/audio_arm.cpp +++ b/radio/src/audio_arm.cpp @@ -117,132 +117,260 @@ const char * audioFilenames[] = { }; uint64_t sdAvailableSystemAudioFiles = 0; -uint8_t sdAvailablePhaseAudioFiles[MAX_PHASES] = { 0 }; -uint8_t sdAvailableMixerAudioFiles[MAX_MIXERS] = { 0 }; +uint32_t sdAvailablePhaseAudioFiles = 0; +uint64_t sdAvailableSwitchAudioFiles = 0; +uint64_t sdAvailableLogicalSwitchAudioFiles = 0; -void refreshSystemAudioFiles() +#define MASK_SYSTEM_AUDIO_FILE(index) ((uint64_t)1 << index) +#define MASK_PHASE_AUDIO_FILE(index, event) ((uint32_t)1 << (2*index+event)) +#define MASK_SWITCH_AUDIO_FILE(index) ((uint64_t)1 << index) +#define MASK_LOGICAL_SWITCH_AUDIO_FILE(index, event) ((uint64_t)1 << (2*index+event)) + +bool isFileAvailable(const char * filename) { FILINFO info; -#if _USE_LFN TCHAR lfn[_MAX_LFN + 1]; info.lfname = lfn; info.lfsize = sizeof(lfn); -#endif + return f_stat(filename, &info) == FR_OK; +} - char filename[32] = SYSTEM_SOUNDS_PATH "/"; - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); +char * getAudioPath(char * path) +{ + strcpy(path, SOUNDS_PATH "/"); + strncpy(path+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); + return path + sizeof(SOUNDS_PATH); +} + +char * getSystemAudioPath(char * path) +{ + char * str = getAudioPath(path); + strcpy(str, SYSTEM_SUBDIR "/"); + return str + sizeof(SYSTEM_SUBDIR); +} + +void getSystemAudioFile(char * filename, int index) +{ + char * str = getSystemAudioPath(filename); + strcpy(str, audioFilenames[index]); + strcat(str, SOUNDS_EXT); +} + +void referenceSystemAudioFiles() +{ + char path[AUDIO_FILENAME_MAXLEN+1]; + FILINFO fno; + DIR dir; + char *fn; /* This function is assuming non-Unicode cfg. */ + TCHAR lfn[_MAX_LFN + 1]; + fno.lfname = lfn; + fno.lfsize = sizeof(lfn); + + uint64_t availableAudioFiles = 0; assert(sizeof(audioFilenames)==AU_FRSKY_FIRST*sizeof(char *)); assert(sizeof(sdAvailableSystemAudioFiles)*8 >= AU_FRSKY_FIRST); - uint64_t availableAudioFiles = 0; + char * filename = getSystemAudioPath(path); + *(filename-1) = '\0'; - for (uint32_t i=0; iid, 2); + char * result = strcat_modelname(path+sizeof(SOUNDS_PATH), g_eeGeneral.currModel); + *result++ = '/'; + *result = '\0'; return result; } -void refreshModelAudioFiles() +void getPhaseAudioFile(char * filename, int index, unsigned int event) { - FILINFO info; + char * str = getModelPath(filename); + char * tmp = strcat_phasename(str, index); + strcpy(tmp, suffixes[event]); + strcat(tmp, SOUNDS_EXT); +} + +void getSwitchAudioFile(char * filename, int index) +{ + char * str = getModelPath(filename); + int len = STR_VSWITCHES[0]; + strncpy(str, &STR_VSWITCHES[1+len*index], len); + str += len-1; + if (*str == '\300') { + strcpy(str, "-up"); + str += 3; + } + else if (*str == '-') { + strcpy(str, "-mid"); + str += 4; + } + else if (*str == '\301') { + strcpy(str, "-down"); + str += 5; + } + else { + str += 1; + } + strcat(str, SOUNDS_EXT); +} + +void getLogicalSwitchAudioFile(char * filename, int index, unsigned int event) +{ + char * str = getModelPath(filename); + int len = STR_VSWITCHES[0]; + strncpy(str, &STR_VSWITCHES[1+len*(index+SWSRC_FIRST_CSW-1)], len); + str += len; + strcpy(str, suffixes[event]); + strcat(str, SOUNDS_EXT); +} + +void referenceModelAudioFiles() +{ + char path[AUDIO_FILENAME_MAXLEN+1]; + FILINFO fno; + DIR dir; + char *fn; /* This function is assuming non-Unicode cfg. */ TCHAR lfn[_MAX_LFN + 1]; - info.lfname = lfn; - info.lfsize = sizeof(lfn); + fno.lfname = lfn; + fno.lfsize = sizeof(lfn); - char filename[AUDIO_FILENAME_MAXLEN+1] = SOUNDS_PATH "/"; - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - - if (sdMounted()) { - char *buf = strcat_modelname(&filename[sizeof(SOUNDS_PATH)], g_eeGeneral.currModel); - *buf++ = '/'; + sdAvailablePhaseAudioFiles = 0; + sdAvailableSwitchAudioFiles = 0; + sdAvailableLogicalSwitchAudioFiles = 0; - for (uint32_t i=0; i-[on|off].wav + for (int i=0; i-[up|mid|down].wav + for (int i=0; i-[on|off].wav + for (int i=0; i> 24); uint8_t index = (i >> 16) & 0xFF; uint8_t event = i & 0xFF; #if 0 - printf("isAudioFileAvailable(%08x)\n", i); fflush(stdout); + printf("isAudioFileReferenced(%08x)\n", i); fflush(stdout); #endif if (category == SYSTEM_AUDIO_CATEGORY) { - if (sdAvailableSystemAudioFiles & ((uint64_t)1 << event)) { - strcpy(filename, SYSTEM_SOUNDS_PATH "/"); - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - strcpy(filename+sizeof(SYSTEM_SOUNDS_PATH), audioFilenames[i]); - strcat(filename+sizeof(SYSTEM_SOUNDS_PATH), SOUNDS_EXT); + if (sdAvailableSystemAudioFiles & MASK_SYSTEM_AUDIO_FILE(event)) { + getSystemAudioFile(filename, event); return true; } } else if (category == PHASE_AUDIO_CATEGORY) { - if (sdAvailablePhaseAudioFiles[index] & ((uint32_t)1 << event)) { - strcpy(filename, SOUNDS_PATH "/"); - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - char *str = strcat_modelname(filename+sizeof(SOUNDS_PATH), g_eeGeneral.currModel); - *str++ = '/'; - char * tmp = strcat_phasename(str, index); - if (tmp != str) { - strcpy(tmp, suffixes[event]); - strcat(tmp, SOUNDS_EXT); - return true; - } + if (sdAvailablePhaseAudioFiles & MASK_PHASE_AUDIO_FILE(index, event)) { + getPhaseAudioFile(filename, index, event); + return true; } } - else if (category == MIXER_AUDIO_CATEGORY) { - if (sdAvailableMixerAudioFiles[index] & ((uint32_t)1 << event)) { - strcpy(filename, SOUNDS_PATH "/"); - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - char *str = strcat_modelname(filename+sizeof(SOUNDS_PATH), g_eeGeneral.currModel); - *str++ = '/'; - char * tmp = strcat_mixername(str, index); - if (tmp != str) { - strcpy(tmp, suffixes[event]); - strcat(tmp, SOUNDS_EXT); - return true; - } + else if (category == SWITCH_AUDIO_CATEGORY) { + if (sdAvailableSwitchAudioFiles & MASK_SWITCH_AUDIO_FILE(index)) { + getSwitchAudioFile(filename, index); + return true; + } + } + else if (category == LOGICAL_SWITCH_AUDIO_CATEGORY) { + if (sdAvailableLogicalSwitchAudioFiles & MASK_LOGICAL_SWITCH_AUDIO_FILE(index, event)) { + getLogicalSwitchAudioFile(filename, index, event); + return true; } } return false; } + +tmr10ms_t timeAutomaticPromptsSilence = 0; + +void playModelEvent(uint8_t category, uint8_t index, uint8_t event) +{ + char filename[AUDIO_FILENAME_MAXLEN+1]; + if ((get_tmr10ms()-timeAutomaticPromptsSilence > 50) && isAudioFileReferenced((category << 24) + (index << 16) + event, filename)) { + audioQueue.playFile(filename); + } +} #else -#define isAudioFileAvailable(i, f) false + +#define isAudioFileReferenced(i, f) false + #endif +// TODO should be generated and in flash rather than in ram int16_t alawTable[256]; int16_t ulawTable[256]; @@ -757,10 +885,6 @@ void AudioQueue::reset() void audioEvent(uint8_t e, uint16_t f) { -#if defined(SDCARD) - char filename[AUDIO_FILENAME_MAXLEN+1]; -#endif - #if defined(HAPTIC) haptic.event(e); //do this before audio to help sync timings #endif @@ -773,7 +897,8 @@ void audioEvent(uint8_t e, uint16_t f) if (g_eeGeneral.beepMode>0 || (g_eeGeneral.beepMode==0 && e>=AU_TRIM_MOVE) || (g_eeGeneral.beepMode>=-1 && e<=AU_ERROR)) { #if defined(SDCARD) - if (e < AU_FRSKY_FIRST && isAudioFileAvailable(e, filename)) { + char filename[AUDIO_FILENAME_MAXLEN+1]; + if (e < AU_FRSKY_FIRST && isAudioFileReferenced(e, filename)) { audioQueue.playFile(filename); } else @@ -982,16 +1107,13 @@ void audioEvent(uint8_t e, uint16_t f) void pushPrompt(uint16_t prompt, uint8_t id) { #if defined(SDCARD) - - char filename[] = SYSTEM_SOUNDS_PATH "/0000" SOUNDS_EXT; - strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - + char filename[AUDIO_FILENAME_MAXLEN+1]; + char * str = getSystemAudioPath(filename); + strcpy(str, "0000" SOUNDS_EXT); for (int8_t i=3; i>=0; i--) { - filename[sizeof(SYSTEM_SOUNDS_PATH)+i] = '0' + (prompt%10); + str[i] = '0' + (prompt%10); prompt /= 10; } - audioQueue.playFile(filename, 0, id); - #endif } diff --git a/radio/src/audio_arm.h b/radio/src/audio_arm.h index 9b45187b0..3f5ee974c 100644 --- a/radio/src/audio_arm.h +++ b/radio/src/audio_arm.h @@ -277,16 +277,21 @@ void audioStart(); #define AUDIO_HEARTBEAT() -#define SYSTEM_AUDIO_CATEGORY 0 -#define MODEL_AUDIO_CATEGORY 1 -#define PHASE_AUDIO_CATEGORY 2 -#define MIXER_AUDIO_CATEGORY 3 +enum AutomaticPromptsCategories { + SYSTEM_AUDIO_CATEGORY, + MODEL_AUDIO_CATEGORY, + PHASE_AUDIO_CATEGORY, + SWITCH_AUDIO_CATEGORY, + LOGICAL_SWITCH_AUDIO_CATEGORY, +}; -#define AUDIO_EVENT_OFF 0 -#define AUDIO_EVENT_ON 1 -#define AUDIO_EVENT_BG 2 +enum AutomaticPromptsEvents { + AUDIO_EVENT_OFF, + AUDIO_EVENT_ON, + AUDIO_EVENT_MID, +}; -extern void pushPrompt(uint16_t prompt, uint8_t id=0); +void pushPrompt(uint16_t prompt, uint8_t id=0); #define I18N_PLAY_FUNCTION(lng, x, ...) void lng ## _ ## x(__VA_ARGS__, uint8_t id) #define PLAY_FUNCTION(x, ...) void x(__VA_ARGS__, uint8_t id) @@ -300,15 +305,26 @@ extern void pushPrompt(uint16_t prompt, uint8_t id=0); #define AUDIO_RESET() audioQueue.reset() #if defined(SDCARD) - #define PLAY_PHASE_OFF(phase) do { char filename[AUDIO_FILENAME_MAXLEN+1]; if (isAudioFileAvailable((PHASE_AUDIO_CATEGORY << 24) + (phase << 16) + AUDIO_EVENT_OFF, filename)) audioQueue.playFile(filename); } while (0) - #define PLAY_PHASE_ON(phase) do { char filename[AUDIO_FILENAME_MAXLEN+1]; if (isAudioFileAvailable((PHASE_AUDIO_CATEGORY << 24) + (phase << 16) + AUDIO_EVENT_ON, filename)) audioQueue.playFile(filename); } while (0) + extern tmr10ms_t timeAutomaticPromptsSilence; + void playModelEvent(uint8_t category, uint8_t index, uint8_t event=0); + #define PLAY_PHASE_OFF(phase) playModelEvent(PHASE_AUDIO_CATEGORY, phase, AUDIO_EVENT_OFF) + #define PLAY_PHASE_ON(phase) playModelEvent(PHASE_AUDIO_CATEGORY, phase, AUDIO_EVENT_ON) + #define PLAY_SWITCH_MOVED(sw) playModelEvent(SWITCH_AUDIO_CATEGORY, sw) + #define PLAY_LOGICAL_SWITCH_OFF(sw) playModelEvent(LOGICAL_SWITCH_AUDIO_CATEGORY, sw, AUDIO_EVENT_OFF) + #define PLAY_LOGICAL_SWITCH_ON(sw) playModelEvent(LOGICAL_SWITCH_AUDIO_CATEGORY, sw, AUDIO_EVENT_ON) + #define SKIP_AUTOMATIC_PROMPTS() timeAutomaticPromptsSilence = get_tmr10ms() #else #define PLAY_PHASE_OFF(phase) #define PLAY_PHASE_ON(phase) + #define PLAY_SWITCH_MOVED(sw) + #define PLAY_LOGICAL_SWITCH_OFF(sw) + #define PLAY_LOGICAL_SWITCH_ON(sw) + #define SKIP_AUTOMATIC_PROMPTS() #endif -extern void refreshSystemAudioFiles(); -extern void refreshModelAudioFiles(); -extern bool isAudioFileAvailable(uint32_t i, char * filename); +void referenceSystemAudioFiles(); +void referenceModelAudioFiles(); + +bool isAudioFileReferenced(uint32_t i, char * filename/*at least AUDIO_FILENAME_MAXLEN+1 long*/); #endif diff --git a/radio/src/audio_avr.h b/radio/src/audio_avr.h index 6302c13f4..691305655 100644 --- a/radio/src/audio_avr.h +++ b/radio/src/audio_avr.h @@ -157,5 +157,9 @@ void audioDefevent(uint8_t e); #define PLAY_PHASE_OFF(phase) #define PLAY_PHASE_ON(phase) +#define PLAY_SWITCH_MOVED(sw) +#define PLAY_LOGICAL_SWITCH_OFF(sw) +#define PLAY_LOGICAL_SWITCH_ON(sw) +#define SKIP_AUTOMATIC_PROMPTS() #endif diff --git a/radio/src/buzzer.h b/radio/src/buzzer.h index cbb4d5717..6d901bbbb 100644 --- a/radio/src/buzzer.h +++ b/radio/src/buzzer.h @@ -102,6 +102,10 @@ void beep(uint8_t val); #define PLAY_PHASE_OFF(phase) #define PLAY_PHASE_ON(phase) + #define PLAY_SWITCH_MOVED(sw) + #define PLAY_LOGICAL_SWITCH_OFF(sw) + #define PLAY_LOGICAL_SWITCH_ON(sw) + #define SKIP_AUTOMATIC_PROMPTS() #endif #if !defined(CPUARM) diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index f12353cb0..e575f4c1c 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -144,7 +144,7 @@ PACK(typedef struct { int8_t swtch; uint8_t func; PACK(union { - char name[LEN_CFN_NAME]; + char name[10]; struct { int16_t val; int16_t ext1; @@ -193,7 +193,7 @@ PACK(typedef struct { int8_t points[NUM_POINTS]; LogicalSwitchData_v215 customSw[NUM_CSW]; - CustomFnData_v215 funcSw[NUM_CFN]; + CustomFnData_v215 funcSw[32]; SwashRingData swashR; PhaseData_v215 phaseData[MAX_PHASES]; @@ -593,7 +593,7 @@ void ConvertModel_215_to_216(ModelData &model) } if (fn.func == FUNC_PLAY_TRACK || fn.func == FUNC_BACKGND_MUSIC) { - memcpy(fn.play.name, oldModel.funcSw[i].param.name, LEN_CFN_NAME); + memcpy(fn.play.name, oldModel.funcSw[i].param.name, 8); } else { fn.all.val = oldModel.funcSw[i].param.composite.val; diff --git a/radio/src/eeprom_raw.cpp b/radio/src/eeprom_raw.cpp index 718fe3558..5050f7cbb 100644 --- a/radio/src/eeprom_raw.cpp +++ b/radio/src/eeprom_raw.cpp @@ -404,7 +404,7 @@ void eeLoadModel(uint8_t id) #endif #if defined(CPUARM) && defined(SDCARD) - refreshModelAudioFiles(); + referenceModelAudioFiles(); #endif LOAD_MODEL_BITMAP(); diff --git a/radio/src/eeprom_rlc.cpp b/radio/src/eeprom_rlc.cpp index f6f62502e..190dcdbe8 100644 --- a/radio/src/eeprom_rlc.cpp +++ b/radio/src/eeprom_rlc.cpp @@ -978,7 +978,7 @@ void eeLoadModel(uint8_t id) #endif #if defined(CPUARM) && defined(SDCARD) - refreshModelAudioFiles(); + referenceModelAudioFiles(); #endif LOAD_MODEL_BITMAP(); diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 18614a044..bd2e542c2 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -5155,8 +5155,8 @@ void onModelCustomScriptMenu(const char *result) ScriptData &sd = g_model.scriptsData[s_currIdx]; if (result == STR_UPDATE_LIST) { - if (!listSdFiles(SCRIPTS_PATH, MIXES_EXT, sizeof(sd.file), NULL)) { - POPUP_WARNING(STR_NO_BITMAPS_ON_SD); + if (!listSdFiles(SCRIPTS_PATH, SCRIPTS_EXT, sizeof(sd.file), NULL)) { + POPUP_WARNING(STR_NO_SCRIPTS_ON_SD); s_menu_flags = 0; } } @@ -5203,7 +5203,7 @@ void menuModelCustomScriptOne(uint8_t event) lcd_putsiAtt(SCRIPT_ONE_2ND_COLUMN_POS, y, STR_VCSWFUNC, 0, attr); if (attr && event==EVT_KEY_BREAK(KEY_ENTER) && !READ_ONLY()) { s_editMode = 0; - if (listSdFiles(SCRIPTS_PATH, MIXES_EXT, sizeof(sd.file), sd.file, LIST_NONE_SD_FILE)) { + if (listSdFiles(SCRIPTS_PATH, SCRIPTS_EXT, sizeof(sd.file), sd.file, LIST_NONE_SD_FILE)) { menuHandler = onModelCustomScriptMenu; } else { diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index 0e18824fa..1a2ab9e1a 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -935,10 +935,10 @@ void luaLoadModelScript(uint8_t index) sid.state = SCRIPT_NOFILE; if (ZEXIST(sd.file)) { - char filename[sizeof(SCRIPTS_PATH)+sizeof(sd.file)+sizeof(MIXES_EXT)] = SCRIPTS_PATH "/"; + char filename[sizeof(SCRIPTS_PATH)+sizeof(sd.file)+sizeof(SCRIPTS_EXT)] = SCRIPTS_PATH "/"; strncpy(filename+sizeof(SCRIPTS_PATH), sd.file, sizeof(sd.file)); filename[sizeof(SCRIPTS_PATH)+sizeof(sd.file)] = '\0'; - strcat(filename+sizeof(SCRIPTS_PATH), MIXES_EXT); + strcat(filename+sizeof(SCRIPTS_PATH), SCRIPTS_EXT); luaLoad(filename, sid); } } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 94b6cbb9e..39608c17b 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -74,8 +74,8 @@ #define MAX_MIXERS 64 #define MAX_EXPOS 64 #define NUM_CSW 32 // number of custom switches - #define NUM_CFN 32 // number of functions assigned to switches - #define MAX_SCRIPTS 3 + #define NUM_CFN 64 // number of functions assigned to switches + #define MAX_SCRIPTS 7 #define MAX_INPUTS 32 #elif defined(CPUARM) #define MAX_MODELS 60 @@ -84,7 +84,7 @@ #define MAX_MIXERS 64 #define MAX_EXPOS 32 #define NUM_CSW 32 // number of custom switches - #define NUM_CFN 32 // number of functions assigned to switches + #define NUM_CFN 64 // number of functions assigned to switches #elif defined(CPUM2560) || defined(CPUM2561) #define MAX_MODELS 30 #define NUM_CHNOUT 16 // number of real output channels CH1-CH16 @@ -323,8 +323,9 @@ enum BacklightMode { #define SPLASH_MODE uint8_t splashMode:1; uint8_t spare4:2 #endif -#if defined(PCBTARANIS) #define POTS_POS_COUNT 6 + +#if defined(PCBTARANIS) PACK(typedef struct { uint8_t count; uint8_t steps[POTS_POS_COUNT-1]; @@ -822,7 +823,7 @@ enum AdjustGvarFunctionParam { #if defined(CPUARM) #if defined(PCBTARANIS) - #define LEN_CFN_NAME 10 + #define LEN_CFN_NAME 8 #else #define LEN_CFN_NAME 6 #endif diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 36d95d213..cbca81765 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1314,7 +1314,6 @@ getvalue_t getValue(uint8_t i) volatile GETSWITCH_RECURSIVE_TYPE s_last_switch_used = 0; volatile GETSWITCH_RECURSIVE_TYPE s_last_switch_value = 0; -/* recursive function. stack as of today (16/03/2012) grows by 8bytes at each call, which is ok! */ #if defined(CPUARM) uint32_t cswDelays[NUM_CSW]; @@ -1327,27 +1326,66 @@ tmr10ms_t switchesMidposStart[6] = { 0 }; uint32_t switchesPos = 0; tmr10ms_t potsLastposStart[NUM_XPOTS]; uint8_t potsPos[NUM_XPOTS]; + +uint32_t check2PosSwitchPosition(EnumKeys sw) +{ + uint32_t result; + uint32_t index; + + if (switchState(sw)) + index = sw - SW_SA0; + else + index = sw - SW_SA0 + 1; + + result = (1 << index); + + if (!(switchesPos & result)) { + PLAY_SWITCH_MOVED(index); + } + + return result; +} + #define DELAY_SWITCH_3POS 10/*100ms*/ -#define CHECK_2POS(sw) newPos |= (switchState(sw ## 0) ? (1 << (sw ## 0 - SW_SA0)) : (1 << (sw ## 0 - SW_SA0 + 1))) -#define CHECK_3POS(idx, sw) if (switchState(sw ## 0)) { \ - newPos |= (1 << (sw ## 0 - SW_SA0)); \ - switchesMidposStart[idx] = 0; \ - } \ - else if (switchState(sw ## 2)) { \ - newPos |= (1 << (sw ## 0 - SW_SA0 + 2)); \ - switchesMidposStart[idx] = 0; \ - } \ - else if ((switchesPos & (1 << (sw ## 0 - SW_SA0 + 1))) || (switchesMidposStart[idx] && (tmr10ms_t)(get_tmr10ms() - switchesMidposStart[idx]) > DELAY_SWITCH_3POS)) { \ - newPos |= (1 << (sw ## 0 - SW_SA0 + 1)); \ - switchesMidposStart[idx] = 0; \ - } \ - else { \ - if (!switchesMidposStart[idx]) { \ - switchesMidposStart[idx] = get_tmr10ms(); \ - } \ - newPos |= (switchesPos & (0x7 << (sw ## 0 - SW_SA0))); \ - } -void getSwitchesPosition() +uint32_t check3PosSwitchPosition(uint8_t idx, EnumKeys sw, bool startup) +{ + uint32_t result; + uint32_t index; + + if (switchState(sw)) { + index = sw - SW_SA0; + result = (1 << index); + switchesMidposStart[idx] = 0; + } + else if (switchState(EnumKeys(sw+2))) { + index = sw - SW_SA0 + 2; + result = (1 << index); + switchesMidposStart[idx] = 0; + } + else if (startup || (switchesPos & (1 << (sw - SW_SA0 + 1))) || (switchesMidposStart[idx] && (tmr10ms_t)(get_tmr10ms() - switchesMidposStart[idx]) > DELAY_SWITCH_3POS)) { + index = sw - SW_SA0 + 1; + result = (1 << index); + switchesMidposStart[idx] = 0; + } + else { + index = sw - SW_SA0 + 1; + if (!switchesMidposStart[idx]) { + switchesMidposStart[idx] = get_tmr10ms(); + } + result = (switchesPos & (0x7 << (sw - SW_SA0))); + } + + if (!(switchesPos & result)) { + PLAY_SWITCH_MOVED(index); + } + + return result; +} + +#define CHECK_2POS(sw) newPos |= check2PosSwitchPosition(sw ## 0) +#define CHECK_3POS(idx, sw) newPos |= check3PosSwitchPosition(idx, sw ## 0, startup) + +void getSwitchesPosition(bool startup) { uint32_t newPos = 0; CHECK_3POS(0, SW_SA); @@ -1366,13 +1404,17 @@ void getSwitchesPosition() if (calib->count>0 && calib->countcount); uint8_t previousPos = potsPos[i] >> 4; + uint8_t previousStoredPos = potsPos[i] & 0x0F; if (pos != previousPos) { potsLastposStart[i] = get_tmr10ms(); - potsPos[i] = (pos << 4) | (potsPos[i] & 0x0f); + potsPos[i] = (pos << 4) | previousStoredPos; } - else if ((tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { + else if (startup || (tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { potsLastposStart[i] = 0; - potsPos[i] = (pos << 4) | (pos); + potsPos[i] = (pos << 4) | pos; + if (previousStoredPos != pos) { + PLAY_SWITCH_MOVED(SWSRC_LAST_SWITCH+i*POTS_POS_COUNT+pos); + } } } } @@ -1381,16 +1423,14 @@ void getSwitchesPosition() #define SWITCH_POSITION(sw) (switchesPos & (1<<(sw))) #define POT_POSITION(sw) ((potsPos[(sw)/POTS_POS_COUNT] & 0x0f) == ((sw) % POTS_POS_COUNT)) #else -#define getSwitchesPosition() +#define getSwitchesPosition(...) #define SWITCH_POSITION(idx) switchState((EnumKeys)(SW_BASE+(idx))) #endif int16_t csLastValue[NUM_CSW]; #define CS_LAST_VALUE_INIT -32768 -// param swtch may be (negativ sign ignored) -// 0 --> no source -// 1 .. 9 (or max switches) --> returns switch value including 3pos -// others internal switches etc. + +/* recursive function. stack as of today (16/03/2012) grows by 8bytes at each call, which is ok! */ bool getSwitch(int8_t swtch) { bool result; @@ -1610,10 +1650,14 @@ bool getSwitch(int8_t swtch) } #endif - if (result) + if (result) { + if (!(s_last_switch_value&mask)) PLAY_LOGICAL_SWITCH_ON(cs_idx); s_last_switch_value |= mask; - else + } + else { + if (s_last_switch_value&mask) PLAY_LOGICAL_SWITCH_OFF(cs_idx); s_last_switch_value &= ~mask; + } } } @@ -1644,53 +1688,24 @@ int8_t getMovedSwitch() } } #else - // saves about 50 bytes flash // return delivers 1 to 3 for ID1 to ID3 // 4..8 for all other switches if changed to true // -4..-8 for all other switches if changed to false // 9 for Trainer switch if changed to true; Change to false is ignored - - swstate_t mask=0x80; + swstate_t mask = 0x80; for (uint8_t i=NUM_PSWITCH; i>1; i--) { bool prev; - // mask= (1<<(i-2)); - prev=(switches_states & mask); + prev = (switches_states & mask); // don't use getSwitch here to always get the proper value, even getSwitch manipulates - // bool next = getSwitch(i); - bool next = switchState((EnumKeys)(SW_BASE+i-1)); - if (prev!=next) { - if (((i3)) || next==true) - result = next ? i : -i; - if ((i<=3) && (result==0)) result=1; - switches_states ^= mask; - } - mask>>=1; - } //endfor - -/* - for (uint8_t i=NUM_PSWITCH; i>0; i--) { - bool prev; - swstate_t mask = 0; - if (i <= 3) { - prev = ((switches_states & 0x03) == (i-1)); - } - else { - mask = (1<<(i-2)); - prev = (switches_states & mask); - } - // don't use getSwitch here to always get the proper value, because getSwitch manipulates - // bool next = getSwitch(i); bool next = switchState((EnumKeys)(SW_BASE+i-1)); if (prev != next) { - if (i!=NUM_PSWITCH || next==true) + if (((i3)) || next==true) result = next ? i : -i; - if (mask) - switches_states ^= mask; - else { - switches_states = (switches_states & 0xFC) | (i-1); - } + if (i<=3 && result==0) result = 1; + switches_states ^= mask; } - } //endfor */ + mask >>= 1; + } #endif if ((tmr10ms_t)(get_tmr10ms() - s_move_last_time) > 10) @@ -2303,6 +2318,8 @@ void checkAll() #endif clearKeyEvents(); + + SKIP_AUTOMATIC_PROMPTS(); } #if defined(MODULE_ALWAYS_SEND_PULSES) @@ -2351,30 +2368,39 @@ void checkTHR() if (g_model.disableThrottleWarning) return; getADC(); evalInputs(e_perout_mode_notrainer); // let do evalInputs do the job + int16_t v = calibratedStick[thrchn]; if (v<=(THRCHK_DEADBAND-1024)) return; // prevent warning if throttle input OK + // first - display warning; also deletes inputs if any have been before MESSAGE(STR_THROTTLEWARN, STR_THROTTLENOTIDLE, STR_PRESSANYKEYTOSKIP, AU_THROTTLE_ALERT); - while (1) { - SIMU_SLEEP(1); - getADC(); + while (1) { + + SIMU_SLEEP(1); - evalInputs(e_perout_mode_notrainer); // let do evalInputs do the job - v = calibratedStick[thrchn]; - if (pwrCheck()==e_power_off || keyDown() || v<=(THRCHK_DEADBAND-1024)) - break; + getADC(); + + evalInputs(e_perout_mode_notrainer); // let do evalInputs do the job + v = calibratedStick[thrchn]; + + if (pwrCheck()==e_power_off || keyDown() || v<=(THRCHK_DEADBAND-1024)) + break; - checkBacklight(); - wdt_reset(); - }//endwhile + checkBacklight(); + + wdt_reset(); + } #endif } void checkAlarm() // added by Gohst { - if (g_eeGeneral.disableAlarmWarning) return; - if (IS_SOUND_OFF()) ALERT(STR_ALARMSWARN, STR_ALARMSDISABLED, AU_ERROR); + if (g_eeGeneral.disableAlarmWarning) + return; + + if (IS_SOUND_OFF()) + ALERT(STR_ALARMSWARN, STR_ALARMSDISABLED, AU_ERROR); } void checkSwitches() @@ -2405,19 +2431,21 @@ void checkSwitches() for (uint8_t i=0; i> 6; - if(potMode) { + if (potMode) { perOut(e_perout_mode_normal, 0); bad_pots = 0; - for (uint8_t i=0; i> 3)) > 2)) { - warn = true; - bad_pots |= (1<> 3)) > 2)) { + warn = true; + bad_pots |= (1<> (i*2)]; @@ -2455,7 +2483,7 @@ void checkSwitches() lcd_putcAtt(60+i*(2*FW+FW/2)+FW, 4*FH+3, c, attr); } } - if(potMode) { + if (potMode) { for (uint8_t i=0; i (getValue(MIXSRC_FIRST_POT+i) >> 3) ? 126 : 127); break; - case 2: - case 3: + case 2: + case 3: lcd_putc(60+i*(5*FW)+2*FW+2, 6*FH-2, g_model.potPosition[i] > (getValue(MIXSRC_FIRST_POT+i) >> 3) ? '\300' : '\301'); break; } @@ -2484,11 +2512,11 @@ void checkSwitches() for (uint8_t i=0; i0?(i+3):(states&0x3)+1), attr); + attr = (states & (1 << (i+1))) == (switches_states & (1 << (i+1))) ? 0 : INVERS; + if (!(g_model.nSwToWarn & (1<0?(i+3):(states&0x3)+1), attr); x += 3*FW+FW/2; } #endif @@ -2947,11 +2975,14 @@ void resetAll() #if defined(FRSKY) resetTelemetry(); #endif - for (uint8_t i=0; iHIGH signals start of mixer interrupt #endif - static tmr10ms_t lastTMR; + static tmr10ms_t lastTMR = 0; tmr10ms_t tmr10ms = get_tmr10ms(); - uint8_t tick10ms = (tmr10ms >= lastTMR ? tmr10ms - lastTMR : 1); // handle tick10ms overrun - //@@@ open.20.fsguruh: correct overflow handling costs a lot of code; happens only each 11 min; + uint8_t tick10ms = (tmr10ms >= lastTMR ? tmr10ms - lastTMR : 1); + // handle tick10ms overrun + // correct overflow handling costs a lot of code; happens only each 11 min; // therefore forget the exact calculation and use only 1 instead; good compromise + +#if !defined(CPUARM) lastTMR = tmr10ms; +#endif getADC(); - getSwitchesPosition(); + getSwitchesPosition(lastTMR == 0); + +#if defined(CPUARM) + lastTMR = tmr10ms; +#endif #if defined(PCBSKY9X) && !defined(REVA) && !defined(SIMU) Current_analogue = (Current_analogue*31 + s_anaFilt[8] ) >> 5 ; diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 87bbf18e9..786d0d069 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1639,8 +1639,7 @@ uint8_t zlen(const char *str, uint8_t size); bool zexist(const char *str, uint8_t size); char * strcat_zchar(char * dest, char * name, uint8_t size, const char *defaultName, uint8_t defaultNameSize, uint8_t defaultIdx); #define strcat_modelname(dest, idx) strcat_zchar(dest, modelHeaders[idx].name, LEN_MODEL_NAME, STR_MODEL, PSIZE(TR_MODEL), idx+1) -#define strcat_phasename(dest, idx) strcat_zchar(dest, g_model.phaseData[idx].name, LEN_FP_NAME, NULL, 0, 0) -#define strcat_mixername(dest, idx) strcat_zchar(dest, g_model.mixData[idx].name, LEN_EXPOMIX_NAME, NULL, 0, 0) +#define strcat_phasename(dest, idx) strcat_zchar(dest, g_model.phaseData[idx].name, LEN_FP_NAME, STR_FP, PSIZE(TR_FP), idx+1) #define ZLEN(s) zlen(s, sizeof(s)) #define ZEXIST(s) zexist(s, sizeof(s)) #endif diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 4e6c446d7..ccbad5fa6 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -44,7 +44,7 @@ #define LOGS_PATH ROOT_PATH "LOGS" // no trailing slash = important #define SOUNDS_PATH ROOT_PATH "SOUNDS/en" // no trailing slash = important #define SOUNDS_PATH_LNG_OFS (sizeof(SOUNDS_PATH)-3) -#define SYSTEM_SOUNDS_PATH SOUNDS_PATH "/SYSTEM" // no trailing slash = important +#define SYSTEM_SUBDIR "SYSTEM" // no trailing slash = important #define BITMAPS_PATH ROOT_PATH "BMP" #define SCRIPTS_PATH ROOT_PATH "SCRIPTS" @@ -53,7 +53,6 @@ #define SOUNDS_EXT ".wav" #define BITMAPS_EXT ".bmp" #define SCRIPTS_EXT ".lua" -#define MIXES_EXT ".mix" #define TEXT_EXT ".txt" extern FATFS g_FATFS_Obj; diff --git a/radio/src/simpgmspace.cpp b/radio/src/simpgmspace.cpp index ba52639a3..b00c96be7 100644 --- a/radio/src/simpgmspace.cpp +++ b/radio/src/simpgmspace.cpp @@ -300,7 +300,7 @@ void *main_thread(void *) eeReadAll(); // load general setup and selected model #if defined(CPUARM) && defined(SDCARD) - refreshSystemAudioFiles(); + referenceSystemAudioFiles(); #endif if (g_eeGeneral.backlightMode != e_backlight_mode_off) backlightOn(); // on Tx start turn the light on @@ -473,9 +473,10 @@ char *convertSimuPath(const char *path) FRESULT f_stat (const TCHAR * name, FILINFO *) { + char *path = convertSimuPath(name); struct stat tmp; - // printf("f_stat(%s)\n", path); fflush(stdout); - return stat(convertSimuPath(name), &tmp) ? FR_INVALID_NAME : FR_OK; + TRACE("f_stat(%s)", path); + return stat(path, &tmp) ? FR_INVALID_NAME : FR_OK; } FRESULT f_mount (BYTE, FATFS*) diff --git a/radio/src/targets/sky9x/diskio.cpp b/radio/src/targets/sky9x/diskio.cpp index d7f60e900..8d9ff5cfc 100644 --- a/radio/src/targets/sky9x/diskio.cpp +++ b/radio/src/targets/sky9x/diskio.cpp @@ -1014,7 +1014,7 @@ void sdMountPoll() case SD_ST_DATA: if (!usbPlugged() && f_mount(0, &g_FATFS_Obj) == FR_OK) { - refreshSystemAudioFiles(); + referenceSystemAudioFiles(); Card_state = SD_ST_MOUNTED; } break; @@ -1082,7 +1082,7 @@ void sdInit() Card_state = SD_ST_DATA; if (f_mount(0, &g_FATFS_Obj) == FR_OK) { - refreshSystemAudioFiles(); + referenceSystemAudioFiles(); Card_state = SD_ST_MOUNTED; } diff --git a/radio/src/targets/taranis/diskio.cpp b/radio/src/targets/taranis/diskio.cpp index b1d2dea7e..d9586804f 100644 --- a/radio/src/targets/taranis/diskio.cpp +++ b/radio/src/targets/taranis/diskio.cpp @@ -969,7 +969,7 @@ FIL g_telemetryFile = {0}; void sdInit() { if (f_mount(0, &g_FATFS_Obj) == FR_OK) { - refreshSystemAudioFiles(); + referenceSystemAudioFiles(); #if defined(DEBUG) f_open(&g_telemetryFile, LOGS_PATH "/sport.log", FA_OPEN_ALWAYS | FA_WRITE); diff --git a/radio/src/targets/taranis/trainer_driver.cpp b/radio/src/targets/taranis/trainer_driver.cpp index 9319cc18b..f4b4e548c 100644 --- a/radio/src/targets/taranis/trainer_driver.cpp +++ b/radio/src/targets/taranis/trainer_driver.cpp @@ -124,7 +124,7 @@ extern "C" void TIM3_IRQHandler() val = (uint16_t)(capture - lastCapt) / 2 ; lastCapt = capture; - // We prcoess g_ppmInsright here to make servo movement as smooth as possible + // We process g_ppmInsright here to make servo movement as smooth as possible // while under trainee control if ((val>4000) && (val < 19000)) { // G: Prioritize reset pulse. (Needed when less than 8 incoming pulses) ppmInState = 1; // triggered