diff --git a/doc/img/ADSBDemod_plugin_notifications.png b/doc/img/ADSBDemod_plugin_notifications.png new file mode 100644 index 000000000..1c9a11816 Binary files /dev/null and b/doc/img/ADSBDemod_plugin_notifications.png differ diff --git a/plugins/channelrx/demodadsb/CMakeLists.txt b/plugins/channelrx/demodadsb/CMakeLists.txt index bdcceedd7..97b44af20 100644 --- a/plugins/channelrx/demodadsb/CMakeLists.txt +++ b/plugins/channelrx/demodadsb/CMakeLists.txt @@ -40,6 +40,8 @@ if(NOT SERVER_MODE) adsbdemodfeeddialog.ui adsbdemoddisplaydialog.cpp adsbdemoddisplaydialog.ui + adsbdemodnotificationdialog.cpp + adsbdemodnotificationdialog.ui csv.cpp airlinelogos.qrc flags.qrc @@ -51,13 +53,14 @@ if(NOT SERVER_MODE) adsbdemodgui.h adsbdemodfeeddialog.h adsbdemoddisplaydialog.h + adsbdemodnotificationdialog.h ourairports.h osndb.h csv.h ) set(TARGET_NAME demodadsb) - set(TARGET_LIB Qt5::Widgets Qt5::Quick Qt5::QuickWidgets Qt5::Positioning) + set(TARGET_LIB Qt5::Widgets Qt5::Quick Qt5::QuickWidgets Qt5::Positioning Qt5::TextToSpeech) set(TARGET_LIB_GUI "sdrgui") set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR}) else() diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index 94b3d1cb9..73fbc2b82 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include "SWGMapItem.h" @@ -48,35 +49,9 @@ #include "adsbdemodgui.h" #include "adsbdemodfeeddialog.h" #include "adsbdemoddisplaydialog.h" +#include "adsbdemodnotificationdialog.h" #include "adsb.h" -// ADS-B table columns -#define ADSB_COL_ICAO 0 -#define ADSB_COL_FLIGHT 1 -#define ADSB_COL_MODEL 2 -#define ADSB_COL_AIRLINE 3 -#define ADSB_COL_ALTITUDE 4 -#define ADSB_COL_SPEED 5 -#define ADSB_COL_HEADING 6 -#define ADSB_COL_VERTICALRATE 7 -#define ADSB_COL_RANGE 8 -#define ADSB_COL_AZEL 9 -#define ADSB_COL_LATITUDE 10 -#define ADSB_COL_LONGITUDE 11 -#define ADSB_COL_CATEGORY 12 -#define ADSB_COL_STATUS 13 -#define ADSB_COL_SQUAWK 14 -#define ADSB_COL_REGISTRATION 15 -#define ADSB_COL_COUNTRY 16 -#define ADSB_COL_REGISTERED 17 -#define ADSB_COL_MANUFACTURER 18 -#define ADSB_COL_OWNER 19 -#define ADSB_COL_OPERATOR_ICAO 20 -#define ADSB_COL_TIME 21 -#define ADSB_COL_FRAMECOUNT 22 -#define ADSB_COL_CORRELATION 23 -#define ADSB_COL_RSSI 24 - const char *Aircraft::m_speedTypeNames[] = { "GS", "TAS", "IAS" }; @@ -732,6 +707,8 @@ void ADSBDemodGUI::handleADSB( if (m_settings.m_autoResizeTableColumns) ui->adsbData->resizeColumnsToContents(); ui->adsbData->setSortingEnabled(true); + // Check to see if we need to emit a notification about this new aircraft + checkStaticNotification(aircraft); } aircraft->m_time = dateTime; QTime time = dateTime.time(); @@ -1124,6 +1101,152 @@ void ADSBDemodGUI::handleADSB( // TIS-B qDebug() << "TIS B message cf=" << ca << " icao: " << icao; } + + // Check to see if we need to emit a notification about this aircraft + checkDynamicNotification(aircraft); +} + +void ADSBDemodGUI::checkStaticNotification(Aircraft *aircraft) +{ + for (int i = 0; i < m_settings.m_notificationSettings.size(); i++) + { + QString match; + switch (m_settings.m_notificationSettings[i]->m_matchColumn) + { + case ADSB_COL_ICAO: + match = aircraft->m_icaoItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_MODEL: + match = aircraft->m_modelItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_REGISTRATION: + match = aircraft->m_registrationItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_MANUFACTURER: + match = aircraft->m_manufacturerNameItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_OWNER: + match = aircraft->m_ownerItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_OPERATOR_ICAO: + match = aircraft->m_operatorICAOItem->data(Qt::DisplayRole).toString(); + break; + default: + break; + } + if (!match.isEmpty()) + { + //QRegularExpression regExp(m_settings.m_notificationSettings[i]->m_regExp); + if (m_settings.m_notificationSettings[i]->m_regularExpression.isValid()) + { + if (m_settings.m_notificationSettings[i]->m_regularExpression.match(match).hasMatch()) + { + if (!m_settings.m_notificationSettings[i]->m_speech.isEmpty()) { + speechNotification(aircraft, m_settings.m_notificationSettings[i]->m_speech); + } + if (!m_settings.m_notificationSettings[i]->m_command.isEmpty()) { + commandNotification(aircraft, m_settings.m_notificationSettings[i]->m_command); + } + aircraft->m_notified = true; + } + } + } + } +} + +void ADSBDemodGUI::checkDynamicNotification(Aircraft *aircraft) +{ + if (!aircraft->m_notified) + { + for (int i = 0; i < m_settings.m_notificationSettings.size(); i++) + { + if ( (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_FLIGHT) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_ALTITUDE) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_SPEED) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_RANGE) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_CATEGORY) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_STATUS) + || (m_settings.m_notificationSettings[i]->m_matchColumn == ADSB_COL_SQUAWK) + ) + { + QString match; + switch (m_settings.m_notificationSettings[i]->m_matchColumn) + { + case ADSB_COL_FLIGHT: + match = aircraft->m_flightItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_ALTITUDE: + match = aircraft->m_altitudeItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_SPEED: + match = aircraft->m_speedItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_RANGE: + match = aircraft->m_rangeItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_CATEGORY: + match = aircraft->m_emitterCategoryItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_STATUS: + match = aircraft->m_statusItem->data(Qt::DisplayRole).toString(); + break; + case ADSB_COL_SQUAWK: + match = aircraft->m_squawkItem->data(Qt::DisplayRole).toString(); + break; + default: + break; + } + if (!match.isEmpty()) + { + if (m_settings.m_notificationSettings[i]->m_regularExpression.isValid()) + { + if (m_settings.m_notificationSettings[i]->m_regularExpression.match(match).hasMatch()) + { + if (!m_settings.m_notificationSettings[i]->m_speech.isEmpty()) { + speechNotification(aircraft, m_settings.m_notificationSettings[i]->m_speech); + } + if (!m_settings.m_notificationSettings[i]->m_command.isEmpty()) { + commandNotification(aircraft, m_settings.m_notificationSettings[i]->m_command); + } + aircraft->m_notified = true; + } + } + } + } + } + } +} + +void ADSBDemodGUI::speechNotification(Aircraft *aircraft, const QString &speech) +{ + m_speech->say(subAircraftString(aircraft, speech)); +} + +void ADSBDemodGUI::commandNotification(Aircraft *aircraft, const QString &command) +{ + QProcess::startDetached(subAircraftString(aircraft, command)); +} + +QString ADSBDemodGUI::subAircraftString(Aircraft *aircraft, const QString &string) +{ + QString s = string; + s = s.replace("${icao}", aircraft->m_icaoItem->data(Qt::DisplayRole).toString()); + s = s.replace("${flight}", aircraft->m_flightItem->data(Qt::DisplayRole).toString()); + s = s.replace("${aircraft}", aircraft->m_modelItem->data(Qt::DisplayRole).toString()); + s = s.replace("${latitude}", aircraft->m_latitudeItem->data(Qt::DisplayRole).toString()); + s = s.replace("${longitude}", aircraft->m_longitudeItem->data(Qt::DisplayRole).toString()); + s = s.replace("${altitude}", aircraft->m_altitudeItem->data(Qt::DisplayRole).toString()); + s = s.replace("${speed}", aircraft->m_speedItem->data(Qt::DisplayRole).toString()); + s = s.replace("${heading}", aircraft->m_headingItem->data(Qt::DisplayRole).toString()); + s = s.replace("${range}", aircraft->m_rangeItem->data(Qt::DisplayRole).toString()); + s = s.replace("${category}", aircraft->m_emitterCategoryItem->data(Qt::DisplayRole).toString()); + s = s.replace("${status}", aircraft->m_statusItem->data(Qt::DisplayRole).toString()); + s = s.replace("${squawk}", aircraft->m_squawkItem->data(Qt::DisplayRole).toString()); + s = s.replace("${registration}", aircraft->m_registrationItem->data(Qt::DisplayRole).toString()); + s = s.replace("${manufacturer}", aircraft->m_manufacturerNameItem->data(Qt::DisplayRole).toString()); + s = s.replace("${owner}", aircraft->m_ownerItem->data(Qt::DisplayRole).toString()); + s = s.replace("${operator}", aircraft->m_operatorICAOItem->data(Qt::DisplayRole).toString()); + return s; } bool ADSBDemodGUI::handleMessage(const Message& message) @@ -1233,6 +1356,14 @@ void ADSBDemodGUI::on_feed_clicked(bool checked) applySettings(); } +void ADSBDemodGUI::on_notifications_clicked() +{ + ADSBDemodNotificationDialog dialog(&m_settings); + if (dialog.exec() == QDialog::Accepted) { + applySettings(); + } +} + void ADSBDemodGUI::on_adsbData_cellClicked(int row, int column) { (void) column; @@ -1893,6 +2024,9 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb if (m_airportInfo != nullptr) updateAirports(); + // Initialise text to speech engine + m_speech = new QTextToSpeech(this); + updateDeviceSetList(); displaySettings(); applySettings(true); diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.h b/plugins/channelrx/demodadsb/adsbdemodgui.h index e6a7ac485..acc8bcb12 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.h +++ b/plugins/channelrx/demodadsb/adsbdemodgui.h @@ -25,6 +25,7 @@ #include #include #include +#include #include "channel/channelgui.h" #include "dsp/dsptypes.h" @@ -125,6 +126,8 @@ struct Aircraft { AircraftInformation *m_aircraftInfo; // Info about the aircraft from the database ADSBDemodGUI *m_gui; + bool m_notified; // Set when a notification has been made for this aircraft, so we don't repeat it + // GUI table items for above data QTableWidgetItem *m_icaoItem; QTableWidgetItem *m_flightItem; @@ -175,7 +178,8 @@ struct Aircraft { m_isHighlighted(false), m_showAll(false), m_aircraftInfo(nullptr), - m_gui(gui) + m_gui(gui), + m_notified(false) { for (int i = 0; i < 2; i++) { @@ -510,6 +514,7 @@ private: ADSBDemodSettings::AirportType m_currentAirportMinimumSize; bool m_currentDisplayHeliports; + QTextToSpeech *m_speech; QMenu *menu; // Column select context menu WebAPIAdapterInterface *m_webAPIAdapterInterface; @@ -531,6 +536,11 @@ private: const QDateTime dateTime, float correlation, float correlationOnes); + void checkStaticNotification(Aircraft *aircraft); + void checkDynamicNotification(Aircraft *aircraft); + void speechNotification(Aircraft *aircraft, const QString &speech); + void commandNotification(Aircraft *aircraft, const QString &command); + QString subAircraftString(Aircraft *aircraft, const QString &string); void resizeTable(); QString getDataDir(); QString getAirportDBFilename(); @@ -568,6 +578,7 @@ private slots: void on_correlateFullPreamble_clicked(bool checked); void on_demodModeS_clicked(bool checked); void on_feed_clicked(bool checked); + void on_notifications_clicked(); void on_getOSNDB_clicked(); void on_getAirportDB_clicked(); void on_flightPaths_clicked(bool checked); diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.ui b/plugins/channelrx/demodadsb/adsbdemodgui.ui index 02cdf07ba..88ae88ebd 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.ui +++ b/plugins/channelrx/demodadsb/adsbdemodgui.ui @@ -600,6 +600,23 @@ + + + + Open notifications dialog + + + ... + + + + :/mono.png:/mono.png + + + true + + + @@ -972,9 +989,10 @@ 1 - ButtonSwitch - QToolButton -
gui/buttonswitch.h
+ ValueDialZ + QWidget +
gui/valuedialz.h
+ 1
LevelMeterSignalDB @@ -983,10 +1001,9 @@ 1 - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 + ButtonSwitch + QToolButton +
gui/buttonswitch.h
diff --git a/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.cpp b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.cpp new file mode 100644 index 000000000..366006c7f --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.cpp @@ -0,0 +1,161 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include + +#include "adsbdemodnotificationdialog.h" + +// Map main ADS-B table column numbers to combo box indicies +std::vector ADSBDemodNotificationDialog::m_columnMap = { + ADSB_COL_ICAO, ADSB_COL_FLIGHT, ADSB_COL_MODEL, + ADSB_COL_ALTITUDE, ADSB_COL_SPEED, ADSB_COL_RANGE, + ADSB_COL_CATEGORY, ADSB_COL_STATUS, ADSB_COL_SQUAWK, + ADSB_COL_REGISTRATION, ADSB_COL_MANUFACTURER, ADSB_COL_OWNER, ADSB_COL_OPERATOR_ICAO +}; + +ADSBDemodNotificationDialog::ADSBDemodNotificationDialog(ADSBDemodSettings *settings, + QWidget* parent) : + QDialog(parent), + ui(new Ui::ADSBDemodNotificationDialog), + m_settings(settings) +{ + ui->setupUi(this); + + resizeTable(); + + for (int i = 0; i < m_settings->m_notificationSettings.size(); i++) { + addRow(m_settings->m_notificationSettings[i]); + } +} + +ADSBDemodNotificationDialog::~ADSBDemodNotificationDialog() +{ + delete ui; +} + +void ADSBDemodNotificationDialog::accept() +{ + qDeleteAll(m_settings->m_notificationSettings); + m_settings->m_notificationSettings.clear(); + for (int i = 0; i < ui->table->rowCount(); i++) + { + ADSBDemodSettings::NotificationSettings *notificationSettings = new ADSBDemodSettings::NotificationSettings(); + int idx = ((QComboBox *)ui->table->cellWidget(i, NOTIFICATION_COL_MATCH))->currentIndex(); + notificationSettings->m_matchColumn = m_columnMap[idx]; + notificationSettings->m_regExp = ui->table->item(i, NOTIFICATION_COL_REG_EXP)->data(Qt::DisplayRole).toString().trimmed(); + notificationSettings->m_speech = ui->table->item(i, NOTIFICATION_COL_SPEECH)->data(Qt::DisplayRole).toString().trimmed(); + notificationSettings->m_command = ui->table->item(i, NOTIFICATION_COL_COMMAND)->data(Qt::DisplayRole).toString().trimmed(); + notificationSettings->updateRegularExpression(); + m_settings->m_notificationSettings.append(notificationSettings); + } + QDialog::accept(); +} + +void ADSBDemodNotificationDialog::resizeTable() +{ + ADSBDemodSettings::NotificationSettings dummy; + dummy.m_matchColumn = ADSB_COL_MANUFACTURER; + dummy.m_regExp = "No emergency and some"; + dummy.m_speech = "${aircraft} ${reg} has entered your airspace"; + dummy.m_command = "/usr/home/sdrangel/myscript ${aircraft} ${reg}"; + addRow(&dummy); + ui->table->resizeColumnsToContents(); + ui->table->selectRow(0); + on_remove_clicked(); + ui->table->selectRow(-1); +} + +void ADSBDemodNotificationDialog::on_add_clicked() +{ + addRow(); +} + +// Remove selected row +void ADSBDemodNotificationDialog::on_remove_clicked() +{ + // Selection mode is single, so only a single row should be returned + QModelIndexList indexList = ui->table->selectionModel()->selectedRows(); + if (!indexList.isEmpty()) + { + int row = indexList.at(0).row(); + ui->table->removeRow(row); + } +} + +void ADSBDemodNotificationDialog::addRow(ADSBDemodSettings::NotificationSettings *settings) +{ + QComboBox *match = new QComboBox(); + QWidget *matchWidget = new QWidget(); + QHBoxLayout *pLayout = new QHBoxLayout(matchWidget); + pLayout->addWidget(match); + pLayout->setAlignment(Qt::AlignCenter); + pLayout->setContentsMargins(0, 0, 0, 0); + matchWidget->setLayout(pLayout); + + match->addItem("ICAO ID"); + match->addItem("Flight No."); + match->addItem("Aircraft"); + match->addItem("Alt (ft)"); + match->addItem("Spd (kn)"); + match->addItem("D (km)"); + match->addItem("Cat"); + match->addItem("Status"); + match->addItem("Squawk"); + match->addItem("Reg"); + match->addItem("Manufacturer"); + match->addItem("Owner"); + match->addItem("Operator"); + + QTableWidgetItem *regExpItem = new QTableWidgetItem(); + QTableWidgetItem *speechItem = new QTableWidgetItem(); + QTableWidgetItem *commandItem = new QTableWidgetItem(); + + if (settings != nullptr) + { + for (unsigned int i = 0; i < m_columnMap.size(); i++) + { + if (m_columnMap[i] == settings->m_matchColumn) + { + match->setCurrentIndex(i); + break; + } + } + regExpItem->setData(Qt::DisplayRole, settings->m_regExp); + speechItem->setData(Qt::DisplayRole, settings->m_speech); + commandItem->setData(Qt::DisplayRole, settings->m_command); + } + else + { + match->setCurrentIndex(2); + regExpItem->setData(Qt::DisplayRole, ".*"); + speechItem->setData(Qt::DisplayRole, "${aircraft} detected"); + } + + ui->table->setSortingEnabled(false); + int row = ui->table->rowCount(); + ui->table->setRowCount(row + 1); + ui->table->setCellWidget(row, NOTIFICATION_COL_MATCH, match); + ui->table->setItem(row, NOTIFICATION_COL_REG_EXP, regExpItem); + ui->table->setItem(row, NOTIFICATION_COL_SPEECH, speechItem); + ui->table->setItem(row, NOTIFICATION_COL_COMMAND, commandItem); + ui->table->setSortingEnabled(true); +} + diff --git a/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.h b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.h new file mode 100644 index 000000000..94cd5e972 --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.h @@ -0,0 +1,56 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ADSBDEMODNOTIFICATIONDIALOG_H +#define INCLUDE_ADSBDEMODNOTIFICATIONDIALOG_H + +#include + +#include "ui_adsbdemodnotificationdialog.h" +#include "adsbdemodsettings.h" + +class ADSBDemodNotificationDialog : public QDialog { + Q_OBJECT + +public: + explicit ADSBDemodNotificationDialog(ADSBDemodSettings* settings, QWidget* parent = 0); + ~ADSBDemodNotificationDialog(); + +private: + void resizeTable(); + +private slots: + void accept(); + void on_add_clicked(); + void on_remove_clicked(); + void addRow(ADSBDemodSettings::NotificationSettings *settings=nullptr); + +private: + Ui::ADSBDemodNotificationDialog* ui; + ADSBDemodSettings *m_settings; + + enum NotificationCol { + NOTIFICATION_COL_MATCH, + NOTIFICATION_COL_REG_EXP, + NOTIFICATION_COL_SPEECH, + NOTIFICATION_COL_COMMAND + }; + + static std::vector m_columnMap; +}; + +#endif // INCLUDE_ADSBDEMODNOTIFICATIONDIALOG_H diff --git a/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.ui b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.ui new file mode 100644 index 000000000..f8771d3ee --- /dev/null +++ b/plugins/channelrx/demodadsb/adsbdemodnotificationdialog.ui @@ -0,0 +1,165 @@ + + + ADSBDemodNotificationDialog + + + + 0 + 0 + 955 + 400 + + + + + Liberation Sans + 9 + + + + Qt::PreventContextMenu + + + Notifications + + + + + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + + Match + + + ADS-B data to match + + + + + Reg Exp + + + Regular expression to match with + + + + + Speech + + + Speech for the computer to read when a match is made + + + + + Command + + + Command/script to execute when a match is made + + + + + + + + + + Add device set control + + + + + + + + + + + Remove device set control + + + - + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + table + add + remove + + + + + + + buttonBox + accepted() + ADSBDemodNotificationDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ADSBDemodNotificationDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp index c8c24a0fa..199c4723f 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp @@ -17,6 +17,8 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include +#include #include "dsp/dspengine.h" #include "util/simpleserializer.h" @@ -112,6 +114,8 @@ QByteArray ADSBDemodSettings::serialize() const s.writeFloat(32, m_interpolatorTapsPerPhase); s.writeBool(33, m_allFlightPaths); + s.writeBlob(34, serializeNotificationSettings(m_notificationSettings)); + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) s.writeS32(100 + i, m_columnIndexes[i]); for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) @@ -135,6 +139,7 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) QByteArray bytetmp; qint32 tmp; uint32_t utmp; + QByteArray blob; if (m_channelMarker) { @@ -192,6 +197,9 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) d.readFloat(32, &m_interpolatorTapsPerPhase, 3.5f); d.readBool(33, &m_allFlightPaths, false); + d.readBlob(34, &blob); + deserializeNotificationSettings(blob, m_notificationSettings); + for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) d.readS32(100 + i, &m_columnIndexes[i], i); for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) @@ -205,3 +213,53 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) return false; } } + +QDataStream& operator<<(QDataStream& out, const ADSBDemodSettings::NotificationSettings* settings) +{ + out << settings->m_matchColumn; + out << settings->m_regExp; + out << settings->m_speech; + out << settings->m_command; + return out; +} + +QDataStream& operator>>(QDataStream& in, ADSBDemodSettings::NotificationSettings*& settings) +{ + settings = new ADSBDemodSettings::NotificationSettings(); + in >> settings->m_matchColumn; + in >> settings->m_regExp; + in >> settings->m_speech; + in >> settings->m_command; + settings->updateRegularExpression(); + return in; +} + +QByteArray ADSBDemodSettings::serializeNotificationSettings(QList notificationSettings) const +{ + QByteArray data; + QDataStream *stream = new QDataStream(&data, QIODevice::WriteOnly); + (*stream) << notificationSettings; + delete stream; + return data; +} + +void ADSBDemodSettings::deserializeNotificationSettings(const QByteArray& data, QList& notificationSettings) +{ + QDataStream *stream = new QDataStream(data); + (*stream) >> notificationSettings; + delete stream; +} + +ADSBDemodSettings::NotificationSettings::NotificationSettings() +{ + m_matchColumn = 0; +} + +void ADSBDemodSettings::NotificationSettings::updateRegularExpression() +{ + m_regularExpression.setPattern(m_regExp); + m_regularExpression.optimize(); + if (m_regularExpression.isValid()) { + qDebug() << "ADSBDemod: Regular expression is not valid: " << m_regExp; + } +} diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.h b/plugins/channelrx/demodadsb/adsbdemodsettings.h index 6514eb92a..72c919583 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.h +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.h @@ -21,6 +21,8 @@ #include #include +#include + #include #include "dsp/dsptypes.h" @@ -29,8 +31,46 @@ class Serializable; // Number of columns in the table #define ADSBDEMOD_COLUMNS 25 +// ADS-B table columns +#define ADSB_COL_ICAO 0 +#define ADSB_COL_FLIGHT 1 +#define ADSB_COL_MODEL 2 +#define ADSB_COL_AIRLINE 3 +#define ADSB_COL_ALTITUDE 4 +#define ADSB_COL_SPEED 5 +#define ADSB_COL_HEADING 6 +#define ADSB_COL_VERTICALRATE 7 +#define ADSB_COL_RANGE 8 +#define ADSB_COL_AZEL 9 +#define ADSB_COL_LATITUDE 10 +#define ADSB_COL_LONGITUDE 11 +#define ADSB_COL_CATEGORY 12 +#define ADSB_COL_STATUS 13 +#define ADSB_COL_SQUAWK 14 +#define ADSB_COL_REGISTRATION 15 +#define ADSB_COL_COUNTRY 16 +#define ADSB_COL_REGISTERED 17 +#define ADSB_COL_MANUFACTURER 18 +#define ADSB_COL_OWNER 19 +#define ADSB_COL_OPERATOR_ICAO 20 +#define ADSB_COL_TIME 21 +#define ADSB_COL_FRAMECOUNT 22 +#define ADSB_COL_CORRELATION 23 +#define ADSB_COL_RSSI 24 + struct ADSBDemodSettings { + struct NotificationSettings { + int m_matchColumn; + QString m_regExp; + QString m_speech; + QString m_command; + QRegularExpression m_regularExpression; + + NotificationSettings(); + void updateRegularExpression(); + }; + int32_t m_inputFrequencyOffset; Real m_rfBandwidth; Real m_correlationThreshold; //!< Correlation power threshold in dB @@ -78,11 +118,15 @@ struct ADSBDemodSettings int m_interpolatorPhaseSteps; float m_interpolatorTapsPerPhase; + QList m_notificationSettings; + ADSBDemodSettings(); void resetToDefaults(); void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; } QByteArray serialize() const; bool deserialize(const QByteArray& data); + QByteArray serializeNotificationSettings(QList notificationSettings) const; + void deserializeNotificationSettings(const QByteArray& data, QList& notificationSettings); }; #endif /* PLUGINS_CHANNELRX_DEMODADSB_ADSBDEMODSETTINGS_H_ */ diff --git a/plugins/channelrx/demodadsb/airlinelogos.qrc b/plugins/channelrx/demodadsb/airlinelogos.qrc index 8a00f5e60..a63c7d960 100644 --- a/plugins/channelrx/demodadsb/airlinelogos.qrc +++ b/plugins/channelrx/demodadsb/airlinelogos.qrc @@ -11,6 +11,7 @@ airlinelogos/AAY.bmp airlinelogos/AAZ.bmp airlinelogos/AB.bmp + airlinelogos/ABA.bmp airlinelogos/ABB.bmp airlinelogos/ABD.bmp airlinelogos/ABG.bmp @@ -29,6 +30,7 @@ airlinelogos/ACI.bmp airlinelogos/ACL.bmp airlinelogos/ACV.bmp + airlinelogos/ACW.bmp airlinelogos/ADN.bmp airlinelogos/ADO.bmp airlinelogos/ADR.bmp @@ -67,10 +69,12 @@ airlinelogos/AJD.bmp airlinelogos/AJI.bmp airlinelogos/AJK.bmp + airlinelogos/AJP.bmp airlinelogos/AJT.bmp airlinelogos/AKC.bmp airlinelogos/AKL.bmp airlinelogos/AKS.bmp + airlinelogos/AKY.bmp airlinelogos/ALK.bmp airlinelogos/ALN.bmp airlinelogos/ALV.bmp @@ -123,6 +127,7 @@ airlinelogos/ASY.bmp airlinelogos/ATC.bmp airlinelogos/ATG.bmp + airlinelogos/ATL.bmp airlinelogos/ATN.bmp airlinelogos/ATR.bmp airlinelogos/ATV.bmp @@ -189,6 +194,7 @@ airlinelogos/BEZ.bmp airlinelogos/BFD.bmp airlinelogos/BFL.bmp + airlinelogos/BFW.bmp airlinelogos/BGA.bmp airlinelogos/BGH.bmp airlinelogos/BGL.bmp @@ -211,12 +217,16 @@ airlinelogos/BNA.bmp airlinelogos/BNL.bmp airlinelogos/BOE.bmp + airlinelogos/BOG.bmp + airlinelogos/BOH.bmp + airlinelogos/BOL.bmp airlinelogos/BON.bmp airlinelogos/BOS.bmp airlinelogos/BOT.bmp airlinelogos/BOV.bmp airlinelogos/BOX.bmp airlinelogos/BPA.bmp + airlinelogos/BPAold.bmp airlinelogos/BQB.bmp airlinelogos/BRAVO.bmp airlinelogos/BRH.bmp @@ -226,6 +236,7 @@ airlinelogos/BRQ.bmp airlinelogos/BRU.bmp airlinelogos/BRXb.bmp + airlinelogos/BSC.bmp airlinelogos/BSK.bmp airlinelogos/BTI.bmp airlinelogos/BTK.bmp @@ -346,6 +357,7 @@ airlinelogos/CNF.bmp airlinelogos/CNK.bmp airlinelogos/CNP.bmp + airlinelogos/CNS.bmp airlinelogos/CNW.bmp airlinelogos/COB.bmp airlinelogos/COL.bmp @@ -422,6 +434,7 @@ airlinelogos/CXI.bmp airlinelogos/CXM.bmp airlinelogos/CXP.bmp + airlinelogos/CXPold.bmp airlinelogos/CYF.bmp airlinelogos/CYL.bmp airlinelogos/CYO.bmp @@ -482,6 +495,7 @@ airlinelogos/DOJ.bmp airlinelogos/DOK.bmp airlinelogos/DOM.bmp + airlinelogos/DONNINGTON.bmp airlinelogos/DOS.bmp airlinelogos/DOW.bmp airlinelogos/DPJ.bmp @@ -490,6 +504,7 @@ airlinelogos/DRK.bmp airlinelogos/DRM.bmp airlinelogos/DRU.bmp + airlinelogos/DRW.bmp airlinelogos/DRZ.bmp airlinelogos/DSM.bmp airlinelogos/DSV.bmp @@ -541,6 +556,7 @@ airlinelogos/EGJ.bmp airlinelogos/EGL.bmp airlinelogos/EGS.bmp + airlinelogos/EGT.bmp airlinelogos/EGU.bmp airlinelogos/EGW.bmp airlinelogos/EHR.bmp @@ -604,7 +620,9 @@ airlinelogos/ETS.bmp airlinelogos/EUC.bmp airlinelogos/EUG.bmp + airlinelogos/EUK.bmp airlinelogos/EUL.bmp + airlinelogos/EUP.bmp airlinelogos/EUS.bmp airlinelogos/EUW.bmp airlinelogos/EVA.bmp @@ -639,16 +657,19 @@ airlinelogos/EZE.bmp airlinelogos/EZS.bmp airlinelogos/EZY.bmp + airlinelogos/EZZ.bmp airlinelogos/FAB.bmp airlinelogos/FAD.bmp airlinelogos/FAG.bmp airlinelogos/FAH.bmp + airlinelogos/FAS.bmp airlinelogos/FAT.bmp airlinelogos/FBA.bmp airlinelogos/FBB.bmp airlinelogos/FBD.bmp airlinelogos/FBR.bmp airlinelogos/FBU.bmp + airlinelogos/FBZ.bmp airlinelogos/FC.bmp airlinelogos/FCM.bmp airlinelogos/FDA.bmp @@ -665,6 +686,7 @@ airlinelogos/FFT.bmp airlinelogos/FFV.bmp airlinelogos/FGW.bmp + airlinelogos/FHM.bmp airlinelogos/FHY.bmp airlinelogos/FIA.bmp airlinelogos/FIN.bmp @@ -675,22 +697,32 @@ airlinelogos/FLE.bmp airlinelogos/FLEXIFLY.bmp airlinelogos/FLI.bmp + airlinelogos/FLJ.bmp airlinelogos/FLO.bmp + airlinelogos/FLYINGSCHOOL.bmp airlinelogos/FLYPELICAN.bmp + airlinelogos/FLYR.bmp airlinelogos/FNA.bmp + airlinelogos/FOX.bmp + airlinelogos/FPC.bmp airlinelogos/FPK.bmp airlinelogos/FPO.bmp airlinelogos/FPY.bmp + airlinelogos/FPYa.bmp + airlinelogos/FREEDOM.bmp airlinelogos/FRF.bmp airlinelogos/FRG.bmp airlinelogos/FRH.bmp airlinelogos/FSK.bmp airlinelogos/FSQ.bmp airlinelogos/FSY.bmp + airlinelogos/FTC.bmp airlinelogos/FTH.bmp + airlinelogos/FTL.bmp airlinelogos/FTO.bmp airlinelogos/FTZ.bmp airlinelogos/FWI.bmp + airlinelogos/FWK.bmp airlinelogos/FXP.bmp airlinelogos/FXX.bmp airlinelogos/FYL.bmp @@ -701,6 +733,7 @@ airlinelogos/GAJ.bmp airlinelogos/GAL.bmp airlinelogos/GBB.bmp + airlinelogos/GBG.bmp airlinelogos/GBK.bmp airlinelogos/GBQ.bmp airlinelogos/GCL.bmp @@ -710,7 +743,9 @@ airlinelogos/GDE.bmp airlinelogos/GEA.bmp airlinelogos/GEC.bmp + airlinelogos/GEL.bmp airlinelogos/GEO.bmp + airlinelogos/GER.bmp airlinelogos/GFA.bmp airlinelogos/GFG.bmp airlinelogos/GGN.bmp @@ -724,9 +759,11 @@ airlinelogos/GLJ.bmp airlinelogos/GLO.bmp airlinelogos/GLR.bmp + airlinelogos/GLT.bmp airlinelogos/GMI.bmp airlinelogos/GMQ.bmp airlinelogos/GMR.bmp + airlinelogos/GOMAIR.bmp airlinelogos/GOW.bmp airlinelogos/GRL.bmp airlinelogos/GSW.bmp @@ -735,6 +772,7 @@ airlinelogos/GTV.bmp airlinelogos/GUG.bmp airlinelogos/GUY.bmp + airlinelogos/GWC.bmp airlinelogos/GWI.bmp airlinelogos/GXL.bmp airlinelogos/HAL.bmp @@ -767,6 +805,7 @@ airlinelogos/HXA.bmp airlinelogos/HYA.bmp airlinelogos/HYP.bmp + airlinelogos/HYS.bmp airlinelogos/HYT.bmp airlinelogos/HZS.bmp airlinelogos/IAD.bmp @@ -778,6 +817,7 @@ airlinelogos/IBS.bmp airlinelogos/IBX.bmp airlinelogos/ICE.bmp + airlinelogos/ICF.bmp airlinelogos/ICL.bmp airlinelogos/ICV.bmp airlinelogos/IFC.bmp @@ -789,6 +829,7 @@ airlinelogos/IJM.bmp airlinelogos/IKA.bmp airlinelogos/IMX.bmp + airlinelogos/INI.bmp airlinelogos/IOS.bmp airlinelogos/IRA.bmp airlinelogos/IRB.bmp @@ -799,6 +840,7 @@ airlinelogos/ISR.bmp airlinelogos/ISS.bmp airlinelogos/ISV.bmp + airlinelogos/ITL.bmp airlinelogos/IWY.bmp airlinelogos/IXR.bmp airlinelogos/IYA.bmp @@ -812,6 +854,7 @@ airlinelogos/JAT.bmp airlinelogos/JATnew.bmp airlinelogos/JAV.bmp + airlinelogos/JAW.bmp airlinelogos/JBE.bmp airlinelogos/JBU.bmp airlinelogos/JCC.bmp @@ -820,22 +863,29 @@ airlinelogos/JEI.bmp airlinelogos/JES.bmp airlinelogos/JET.bmp + airlinelogos/JFA.bmp airlinelogos/JFL.bmp airlinelogos/JG.bmp airlinelogos/JIA.bmp + airlinelogos/JIT.bmp airlinelogos/JJA.bmp airlinelogos/JJP.bmp + airlinelogos/JKH.bmp airlinelogos/JKR.bmp + airlinelogos/JLC.bmp airlinelogos/JLF.bmp airlinelogos/JLL.bmp + airlinelogos/JLN.bmp airlinelogos/JMA.bmp airlinelogos/JME.bmp airlinelogos/JML.bmp airlinelogos/JNA.bmp + airlinelogos/JNK.bmp airlinelogos/JNL.bmp airlinelogos/JON.bmp airlinelogos/JOR.bmp airlinelogos/JOY.bmp + airlinelogos/JPT.bmp airlinelogos/JRC.bmp airlinelogos/JRT.bmp airlinelogos/JSA.bmp @@ -844,6 +894,7 @@ airlinelogos/JTA.bmp airlinelogos/JTF.bmp airlinelogos/JTG.bmp + airlinelogos/JTL.bmp airlinelogos/JUS.bmp airlinelogos/JW.bmp airlinelogos/JYH.bmp @@ -855,12 +906,15 @@ airlinelogos/KAP.bmp airlinelogos/KAR.bmp airlinelogos/KAZ.bmp + airlinelogos/KBD.bmp airlinelogos/KBZ.bmp + airlinelogos/KCE.bmp airlinelogos/KDS.bmp airlinelogos/KEM.bmp airlinelogos/KEN.bmp airlinelogos/KFA.bmp airlinelogos/KFE.bmp + airlinelogos/KFR.bmp airlinelogos/KGL.bmp airlinelogos/KGO.bmp airlinelogos/KGS.bmp @@ -880,7 +934,9 @@ airlinelogos/KN.bmp airlinelogos/KNA.bmp airlinelogos/KNE.bmp + airlinelogos/KOC.bmp airlinelogos/KOR.bmp + airlinelogos/KPO.bmp airlinelogos/KQA.bmp airlinelogos/KRE.bmp airlinelogos/KRN.bmp @@ -909,12 +965,14 @@ airlinelogos/LDC.bmp airlinelogos/LDX.bmp airlinelogos/LER.bmp + airlinelogos/LET.bmp airlinelogos/LEX.bmp airlinelogos/LFO.bmp airlinelogos/LGF.bmp airlinelogos/LGL.bmp airlinelogos/LGT.bmp airlinelogos/LHA.bmp + airlinelogos/LHB.bmp airlinelogos/LIA.bmp airlinelogos/LIP.bmp airlinelogos/LJC.bmp @@ -938,18 +996,25 @@ airlinelogos/LPV.bmp airlinelogos/LRC.bmp airlinelogos/LRS.bmp + airlinelogos/LSJ.bmp airlinelogos/LSO.bmp airlinelogos/LTC.bmp + airlinelogos/LTG.bmp airlinelogos/LTR.bmp airlinelogos/LUR.bmp airlinelogos/LVR.bmp airlinelogos/LVT.bmp airlinelogos/LWA.bmp + airlinelogos/LWG.bmp airlinelogos/LXG.bmp airlinelogos/LXJ.bmp + airlinelogos/LYC.bmp + airlinelogos/LYD.bmp airlinelogos/LYM.bmp + airlinelogos/LYX.bmp airlinelogos/LZB.bmp airlinelogos/MAC.bmp + airlinelogos/MAD.bmp airlinelogos/MAI.bmp airlinelogos/MAL.bmp airlinelogos/MAR.bmp @@ -960,6 +1025,7 @@ airlinelogos/MAY.bmp airlinelogos/MBA.bmp airlinelogos/MCM.bmp + airlinelogos/MCS.bmp airlinelogos/MDA.bmp airlinelogos/MDG.bmp airlinelogos/MEA.bmp @@ -1008,17 +1074,23 @@ airlinelogos/MWI.bmp airlinelogos/MWM.bmp airlinelogos/MXD.bmp + airlinelogos/MXY.bmp airlinelogos/MYA.bmp airlinelogos/MYP.bmp + airlinelogos/MYU.bmp airlinelogos/MYW.bmp airlinelogos/MZN.bmp airlinelogos/NAA.bmp airlinelogos/NAC.bmp + airlinelogos/NAD.bmp airlinelogos/NAX.bmp airlinelogos/NCB.bmp airlinelogos/NCR.bmp + airlinelogos/NDL.bmp airlinelogos/NFA.bmp + airlinelogos/NFX.bmp airlinelogos/NGB.bmp + airlinelogos/NGL.bmp airlinelogos/NGT.bmp airlinelogos/NHX.bmp airlinelogos/NIA.bmp @@ -1027,6 +1099,7 @@ airlinelogos/NIN.bmp airlinelogos/NIS.bmp airlinelogos/NJE.bmp + airlinelogos/NJU.bmp airlinelogos/NKS.bmp airlinelogos/NKT.bmp airlinelogos/NLA.bmp @@ -1041,6 +1114,7 @@ airlinelogos/NRL.bmp airlinelogos/NRS.bmp airlinelogos/NSE.bmp + airlinelogos/NSH.bmp airlinelogos/NSJ.bmp airlinelogos/NSW.bmp airlinelogos/NTB.bmp @@ -1052,6 +1126,7 @@ airlinelogos/NWG.bmp airlinelogos/NWL.bmp airlinelogos/NWS.bmp + airlinelogos/NXU.bmp airlinelogos/NYS.bmp airlinelogos/NYT.bmp airlinelogos/NYX.bmp @@ -1060,13 +1135,17 @@ airlinelogos/OAW.bmp airlinelogos/OBS.bmp airlinelogos/OCA.bmp + airlinelogos/OCJ.bmp airlinelogos/OCL.bmp airlinelogos/OES.bmp + airlinelogos/OFL.bmp + airlinelogos/OHC.bmp airlinelogos/OHY.bmp airlinelogos/OIX.bmp airlinelogos/OKA.bmp airlinelogos/OKC.bmp airlinelogos/OKS.bmp + airlinelogos/OLA.bmp airlinelogos/OLC.bmp airlinelogos/OLS.bmp airlinelogos/OMA.bmp @@ -1091,10 +1170,12 @@ airlinelogos/PAM.bmp airlinelogos/PAO.bmp airlinelogos/PAPILLON.bmp + airlinelogos/PAS.bmp airlinelogos/PAV.bmp airlinelogos/PBD.bmp airlinelogos/PCO.bmp airlinelogos/PCP.bmp + airlinelogos/PDY.bmp airlinelogos/PER.bmp airlinelogos/PEV.bmp airlinelogos/PEX.bmp @@ -1118,11 +1199,13 @@ airlinelogos/PNX.bmp airlinelogos/POE.bmp airlinelogos/POT.bmp + airlinelogos/PPJ.bmp airlinelogos/PRF.bmp airlinelogos/PRI.bmp airlinelogos/PRW.bmp airlinelogos/PSC.bmp airlinelogos/PST.bmp + airlinelogos/PSU.bmp airlinelogos/PTB.bmp airlinelogos/PTH.bmp airlinelogos/PTR.bmp @@ -1130,20 +1213,27 @@ airlinelogos/PUE.bmp airlinelogos/PUN.bmp airlinelogos/PVD.bmp + airlinelogos/PVL.bmp airlinelogos/PVN.bmp airlinelogos/PVO.bmp airlinelogos/PVV.bmp airlinelogos/PWD.bmp airlinelogos/PXG.bmp + airlinelogos/QAI.bmp airlinelogos/QAJ.bmp airlinelogos/QAZ.bmp airlinelogos/QBA.bmp airlinelogos/QDA.bmp airlinelogos/QFA.bmp + airlinelogos/QHD.bmp airlinelogos/QLK.bmp + airlinelogos/QNT.bmp + airlinelogos/QQE.bmp airlinelogos/QSM.bmp + airlinelogos/QTG.bmp airlinelogos/QTR.bmp airlinelogos/QXE.bmp + airlinelogos/QZR.bmp airlinelogos/RAC.bmp airlinelogos/RAE.bmp airlinelogos/RAM.bmp @@ -1151,11 +1241,17 @@ airlinelogos/RBA.bmp airlinelogos/RBB.bmp airlinelogos/RBG.bmp + airlinelogos/RCH.bmp + airlinelogos/RDA.bmp airlinelogos/RDS.bmp + airlinelogos/REDAIR.bmp airlinelogos/REU.bmp + airlinelogos/REV.bmp airlinelogos/RGE.bmp + airlinelogos/RHH.bmp airlinelogos/RJA.bmp airlinelogos/RJD.bmp + airlinelogos/RJE.bmp airlinelogos/RKM.bmp airlinelogos/RKS.bmp airlinelogos/RLA.bmp @@ -1174,12 +1270,15 @@ airlinelogos/RPA.bmp airlinelogos/RPB.bmp airlinelogos/RPM.bmp + airlinelogos/RSB.bmp airlinelogos/RSI.bmp airlinelogos/RSY.bmp + airlinelogos/RTG.bmp airlinelogos/RTL.bmp airlinelogos/RUC.bmp airlinelogos/RUK.bmp airlinelogos/RUN.bmp + airlinelogos/RUT.bmp airlinelogos/RVP.bmp airlinelogos/RWD.bmp airlinelogos/RWG.bmp @@ -1201,8 +1300,10 @@ airlinelogos/SBM.bmp airlinelogos/SBS.bmp airlinelogos/SBU.bmp + airlinelogos/SCA.bmp airlinelogos/SCN.bmp airlinelogos/SCO.bmp + airlinelogos/SCU.bmp airlinelogos/SCX.bmp airlinelogos/SDA.bmp airlinelogos/SDG.bmp @@ -1225,6 +1326,7 @@ airlinelogos/SHH.bmp airlinelogos/SHI.bmp airlinelogos/SHU.bmp + airlinelogos/SHZ.bmp airlinelogos/SIA.bmp airlinelogos/SID.bmp airlinelogos/SIF.bmp @@ -1233,6 +1335,7 @@ airlinelogos/SIS.bmp airlinelogos/SIY.bmp airlinelogos/SJJ.bmp + airlinelogos/SJK.bmp airlinelogos/SJO.bmp airlinelogos/SJX.bmp airlinelogos/SJY.bmp @@ -1253,11 +1356,13 @@ airlinelogos/SLQ.bmp airlinelogos/SLX.bmp airlinelogos/SME.bmp + airlinelogos/SMF.bmp airlinelogos/SMJ.bmp airlinelogos/SMR.bmp airlinelogos/SNA.bmp airlinelogos/SNG.bmp airlinelogos/SNJ.bmp + airlinelogos/SNM.bmp airlinelogos/SOL.bmp airlinelogos/SONOCO.bmp airlinelogos/SOO.bmp @@ -1274,6 +1379,8 @@ airlinelogos/SRN.bmp airlinelogos/SRQ.bmp airlinelogos/SRR.bmp + airlinelogos/SRS.bmp + airlinelogos/SSE.bmp airlinelogos/SSF.bmp airlinelogos/SSQ.bmp airlinelogos/SSV.bmp @@ -1307,6 +1414,7 @@ airlinelogos/TAPexp.bmp airlinelogos/TAR.bmp airlinelogos/TAY.bmp + airlinelogos/TAYB752WHITE.bmp airlinelogos/TBA.bmp airlinelogos/TBM.bmp airlinelogos/TBN.bmp @@ -1327,10 +1435,12 @@ airlinelogos/THA.bmp airlinelogos/THD.bmp airlinelogos/THE.bmp + airlinelogos/THO.bmp airlinelogos/THT.bmp airlinelogos/THY.bmp airlinelogos/THYANA.bmp airlinelogos/TIA.bmp + airlinelogos/TIH.bmp airlinelogos/TIS.bmp airlinelogos/TIV.bmp airlinelogos/TIW.bmp @@ -1351,12 +1461,15 @@ airlinelogos/TNX.bmp airlinelogos/TOK.bmp airlinelogos/TOM.bmp + airlinelogos/TON.bmp airlinelogos/TOR.bmp + airlinelogos/TOS.bmp airlinelogos/TPA.bmp airlinelogos/TPC.bmp airlinelogos/TPU.bmp airlinelogos/TRA.bmp airlinelogos/TRJ.bmp + airlinelogos/TRQ.bmp airlinelogos/TSC.bmp airlinelogos/TSG.bmp airlinelogos/TSH.bmp @@ -1381,11 +1494,13 @@ airlinelogos/TWB.bmp airlinelogos/TWI.bmp airlinelogos/TWY.bmp + airlinelogos/TXA.bmp airlinelogos/TYA.bmp airlinelogos/UAE.bmp airlinelogos/UAL.bmp airlinelogos/UBA.bmp airlinelogos/UBD.bmp + airlinelogos/UBE.bmp airlinelogos/UBG.bmp airlinelogos/UCA.bmp airlinelogos/UDN.bmp @@ -1404,13 +1519,16 @@ airlinelogos/URS.bmp airlinelogos/USC.bmp airlinelogos/UTA.bmp + airlinelogos/UTAOLD.bmp airlinelogos/UTN.bmp airlinelogos/UTP.bmp airlinelogos/UTY.bmp airlinelogos/UVT.bmp + airlinelogos/UWD.bmp airlinelogos/UWJ.bmp airlinelogos/UZB.bmp airlinelogos/VAA.bmp + airlinelogos/VAG.bmp airlinelogos/VAJ.bmp airlinelogos/VAL.bmp airlinelogos/VAR.bmp @@ -1437,18 +1555,21 @@ airlinelogos/VJC.bmp airlinelogos/VJS.bmp airlinelogos/VJT.bmp + airlinelogos/VKA.bmp airlinelogos/VKG.bmp airlinelogos/VKGOLD.bmp airlinelogos/VLG.bmp airlinelogos/VLJ.bmp airlinelogos/VLK.bmp airlinelogos/VLM.bmp + airlinelogos/VLZ.bmp airlinelogos/VMP.bmp airlinelogos/VNE.bmp airlinelogos/VNL.bmp airlinelogos/VOC.bmp airlinelogos/VOE.bmp airlinelogos/VOI.bmp + airlinelogos/VOS.bmp airlinelogos/VOZ.bmp airlinelogos/VPA.bmp airlinelogos/VPC.bmp @@ -1456,6 +1577,7 @@ airlinelogos/VRD.bmp airlinelogos/VRE.bmp airlinelogos/VRG.bmp + airlinelogos/VRH.bmp airlinelogos/VSV.bmp airlinelogos/VTA.bmp airlinelogos/VTE.bmp @@ -1466,6 +1588,8 @@ airlinelogos/VUN.bmp airlinelogos/VVC.bmp airlinelogos/VVV.bmp + airlinelogos/VXP.bmp + airlinelogos/VYR.bmp airlinelogos/WAA.bmp airlinelogos/WAJ.bmp airlinelogos/WAL.bmp @@ -1474,6 +1598,7 @@ airlinelogos/WDE.bmp airlinelogos/WEN.bmp airlinelogos/WEW.bmp + airlinelogos/WFL.bmp airlinelogos/WFR.bmp airlinelogos/WGN.bmp airlinelogos/WHS.bmp @@ -1481,9 +1606,11 @@ airlinelogos/WIF.bmp airlinelogos/WIL.bmp airlinelogos/WJA.bmp + airlinelogos/WJT.bmp airlinelogos/WLB.bmp airlinelogos/WLC.bmp airlinelogos/WMN.bmp + airlinelogos/WMU.bmp airlinelogos/WON.bmp airlinelogos/WORLD2FLY.bmp airlinelogos/WOW.bmp @@ -1499,6 +1626,7 @@ airlinelogos/XAI.bmp airlinelogos/XAU.bmp airlinelogos/XAX.bmp + airlinelogos/XGE.bmp airlinelogos/XLF.bmp airlinelogos/XLK.bmp airlinelogos/XLR.bmp @@ -1506,6 +1634,7 @@ airlinelogos/XOJ.bmp airlinelogos/XRC.bmp airlinelogos/XRO.bmp + airlinelogos/XSR.bmp airlinelogos/YEL.bmp airlinelogos/YZR.bmp airlinelogos/ZOM.bmp diff --git a/plugins/channelrx/demodadsb/airlinelogos/ABA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ABA.bmp new file mode 100644 index 000000000..aa5c91b10 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/ABA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ACW.bmp b/plugins/channelrx/demodadsb/airlinelogos/ACW.bmp new file mode 100644 index 000000000..bc017ec93 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/ACW.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/AJP.bmp b/plugins/channelrx/demodadsb/airlinelogos/AJP.bmp new file mode 100644 index 000000000..49e4181c0 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/AJP.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/AKY.bmp b/plugins/channelrx/demodadsb/airlinelogos/AKY.bmp new file mode 100644 index 000000000..50c86ee5a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/AKY.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp b/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp index 0052982df..049947b04 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp and b/plugins/channelrx/demodadsb/airlinelogos/ANA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ART.bmp b/plugins/channelrx/demodadsb/airlinelogos/ART.bmp index f603b933a..8eb7adb4b 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/ART.bmp and b/plugins/channelrx/demodadsb/airlinelogos/ART.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ATL.bmp b/plugins/channelrx/demodadsb/airlinelogos/ATL.bmp new file mode 100644 index 000000000..d7d03683e Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/ATL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BBC.bmp b/plugins/channelrx/demodadsb/airlinelogos/BBC.bmp index c99c752c1..288f8a8d8 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/BBC.bmp and b/plugins/channelrx/demodadsb/airlinelogos/BBC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BFW.bmp b/plugins/channelrx/demodadsb/airlinelogos/BFW.bmp new file mode 100644 index 000000000..ff0e88c5c Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BFW.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOG.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOG.bmp new file mode 100644 index 000000000..c1ec0975c Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BOG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOH.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOH.bmp new file mode 100644 index 000000000..edef86bcb Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BOH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BOL.bmp b/plugins/channelrx/demodadsb/airlinelogos/BOL.bmp new file mode 100644 index 000000000..47c59a049 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BOL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BPA.bmp b/plugins/channelrx/demodadsb/airlinelogos/BPA.bmp index 4b1709ba0..e8ca29374 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/BPA.bmp and b/plugins/channelrx/demodadsb/airlinelogos/BPA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BPAold.bmp b/plugins/channelrx/demodadsb/airlinelogos/BPAold.bmp new file mode 100644 index 000000000..4b1709ba0 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BPAold.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BRO.bmp b/plugins/channelrx/demodadsb/airlinelogos/BRO.bmp index 2f23713a8..5f2c097ba 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/BRO.bmp and b/plugins/channelrx/demodadsb/airlinelogos/BRO.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/BSC.bmp b/plugins/channelrx/demodadsb/airlinelogos/BSC.bmp new file mode 100644 index 000000000..efe02455f Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/BSC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CDC.bmp b/plugins/channelrx/demodadsb/airlinelogos/CDC.bmp index b416086f7..238f2a11f 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CDC.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CDC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CLH.bmp b/plugins/channelrx/demodadsb/airlinelogos/CLH.bmp index 51f9f1f5c..114bbb236 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CLH.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CLH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CNS.bmp b/plugins/channelrx/demodadsb/airlinelogos/CNS.bmp new file mode 100644 index 000000000..7fe0d58a0 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/CNS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CRA.bmp b/plugins/channelrx/demodadsb/airlinelogos/CRA.bmp index 317a857b2..c371bcfb8 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CRA.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CRA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CTF.bmp b/plugins/channelrx/demodadsb/airlinelogos/CTF.bmp index b094919ca..7364093ab 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CTF.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CTF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CXP.bmp b/plugins/channelrx/demodadsb/airlinelogos/CXP.bmp index 3c5a3e3fb..0636ced8d 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CXP.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CXP.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CXPold.bmp b/plugins/channelrx/demodadsb/airlinelogos/CXPold.bmp new file mode 100644 index 000000000..3c5a3e3fb Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/CXPold.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/CYF.bmp b/plugins/channelrx/demodadsb/airlinelogos/CYF.bmp index 3083f711e..3291bb123 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/CYF.bmp and b/plugins/channelrx/demodadsb/airlinelogos/CYF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/DLH.bmp b/plugins/channelrx/demodadsb/airlinelogos/DLH.bmp index 777e94999..4ff7858d8 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/DLH.bmp and b/plugins/channelrx/demodadsb/airlinelogos/DLH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/DONNINGTON.bmp b/plugins/channelrx/demodadsb/airlinelogos/DONNINGTON.bmp new file mode 100644 index 000000000..0dd610564 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/DONNINGTON.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/DRW.bmp b/plugins/channelrx/demodadsb/airlinelogos/DRW.bmp new file mode 100644 index 000000000..2f3718ea0 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/DRW.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/EGT.bmp b/plugins/channelrx/demodadsb/airlinelogos/EGT.bmp new file mode 100644 index 000000000..1f145236e Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/EGT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ERF.bmp b/plugins/channelrx/demodadsb/airlinelogos/ERF.bmp index edbe4b215..ce130f9bb 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/ERF.bmp and b/plugins/channelrx/demodadsb/airlinelogos/ERF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/EUK.bmp b/plugins/channelrx/demodadsb/airlinelogos/EUK.bmp new file mode 100644 index 000000000..71d73fa28 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/EUK.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/EUL.bmp b/plugins/channelrx/demodadsb/airlinelogos/EUL.bmp index bbe2a6714..bd6101de9 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/EUL.bmp and b/plugins/channelrx/demodadsb/airlinelogos/EUL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/EUP.bmp b/plugins/channelrx/demodadsb/airlinelogos/EUP.bmp new file mode 100644 index 000000000..b1ea71aac Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/EUP.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/EZZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/EZZ.bmp new file mode 100644 index 000000000..9d4d9b8b6 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/EZZ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FAS.bmp b/plugins/channelrx/demodadsb/airlinelogos/FAS.bmp new file mode 100644 index 000000000..7508c7397 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FAS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FBZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/FBZ.bmp new file mode 100644 index 000000000..bd6afa90a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FBZ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FHM.bmp b/plugins/channelrx/demodadsb/airlinelogos/FHM.bmp new file mode 100644 index 000000000..f1f4958cb Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FHM.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FLJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/FLJ.bmp new file mode 100644 index 000000000..6c234d90f Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FLJ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FLYINGSCHOOL.bmp b/plugins/channelrx/demodadsb/airlinelogos/FLYINGSCHOOL.bmp new file mode 100644 index 000000000..7fbe99217 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FLYINGSCHOOL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FLYR.bmp b/plugins/channelrx/demodadsb/airlinelogos/FLYR.bmp new file mode 100644 index 000000000..020ccb4e3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FLYR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FOX.bmp b/plugins/channelrx/demodadsb/airlinelogos/FOX.bmp new file mode 100644 index 000000000..ac2231d41 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FOX.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FPC.bmp b/plugins/channelrx/demodadsb/airlinelogos/FPC.bmp new file mode 100644 index 000000000..8cf7cca4a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FPC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FPY.bmp b/plugins/channelrx/demodadsb/airlinelogos/FPY.bmp index 8ffaea718..5efd37a25 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/FPY.bmp and b/plugins/channelrx/demodadsb/airlinelogos/FPY.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FPYa.bmp b/plugins/channelrx/demodadsb/airlinelogos/FPYa.bmp new file mode 100644 index 000000000..8ffaea718 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FPYa.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FREEDOM.bmp b/plugins/channelrx/demodadsb/airlinelogos/FREEDOM.bmp new file mode 100644 index 000000000..b41f6e390 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FREEDOM.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FTC.bmp b/plugins/channelrx/demodadsb/airlinelogos/FTC.bmp new file mode 100644 index 000000000..fbcf02836 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FTC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FTL.bmp b/plugins/channelrx/demodadsb/airlinelogos/FTL.bmp new file mode 100644 index 000000000..77d3eb961 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FTL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/FWK.bmp b/plugins/channelrx/demodadsb/airlinelogos/FWK.bmp new file mode 100644 index 000000000..987ad6922 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/FWK.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GBB.bmp b/plugins/channelrx/demodadsb/airlinelogos/GBB.bmp index 88ce2ddb3..055d1f2c3 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/GBB.bmp and b/plugins/channelrx/demodadsb/airlinelogos/GBB.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GBG.bmp b/plugins/channelrx/demodadsb/airlinelogos/GBG.bmp new file mode 100644 index 000000000..fcdd09666 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GBG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GEL.bmp b/plugins/channelrx/demodadsb/airlinelogos/GEL.bmp new file mode 100644 index 000000000..f4b734bfa Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GEL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GER.bmp b/plugins/channelrx/demodadsb/airlinelogos/GER.bmp new file mode 100644 index 000000000..8f38bcb74 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GER.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GLT.bmp b/plugins/channelrx/demodadsb/airlinelogos/GLT.bmp new file mode 100644 index 000000000..ba6031f72 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GLT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GOMAIR.bmp b/plugins/channelrx/demodadsb/airlinelogos/GOMAIR.bmp new file mode 100644 index 000000000..713ec034b Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GOMAIR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/GWC.bmp b/plugins/channelrx/demodadsb/airlinelogos/GWC.bmp new file mode 100644 index 000000000..901d1c413 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/GWC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/HLF.bmp b/plugins/channelrx/demodadsb/airlinelogos/HLF.bmp index fafc6cb68..a67a2f24f 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/HLF.bmp and b/plugins/channelrx/demodadsb/airlinelogos/HLF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/HYS.bmp b/plugins/channelrx/demodadsb/airlinelogos/HYS.bmp new file mode 100644 index 000000000..7702ec611 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/HYS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ICF.bmp b/plugins/channelrx/demodadsb/airlinelogos/ICF.bmp new file mode 100644 index 000000000..fa98df80b Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/ICF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/IHO.bmp b/plugins/channelrx/demodadsb/airlinelogos/IHO.bmp index 1ff6c17b6..29a483522 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/IHO.bmp and b/plugins/channelrx/demodadsb/airlinelogos/IHO.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/INI.bmp b/plugins/channelrx/demodadsb/airlinelogos/INI.bmp new file mode 100644 index 000000000..79fe5073b Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/INI.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/ITL.bmp b/plugins/channelrx/demodadsb/airlinelogos/ITL.bmp new file mode 100644 index 000000000..be1a0d0d2 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/ITL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JAW.bmp b/plugins/channelrx/demodadsb/airlinelogos/JAW.bmp new file mode 100644 index 000000000..edb0ae517 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JAW.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JCL.bmp b/plugins/channelrx/demodadsb/airlinelogos/JCL.bmp index 74c2defc7..15e04136c 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/JCL.bmp and b/plugins/channelrx/demodadsb/airlinelogos/JCL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JFA.bmp b/plugins/channelrx/demodadsb/airlinelogos/JFA.bmp new file mode 100644 index 000000000..ca61d0faf Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JFA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JIT.bmp b/plugins/channelrx/demodadsb/airlinelogos/JIT.bmp new file mode 100644 index 000000000..cd4cd8584 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JIT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JKH.bmp b/plugins/channelrx/demodadsb/airlinelogos/JKH.bmp new file mode 100644 index 000000000..5ca941b74 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JKH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JLC.bmp b/plugins/channelrx/demodadsb/airlinelogos/JLC.bmp new file mode 100644 index 000000000..abc982fa6 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JLC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JLN.bmp b/plugins/channelrx/demodadsb/airlinelogos/JLN.bmp new file mode 100644 index 000000000..63265956a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JLN.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JNK.bmp b/plugins/channelrx/demodadsb/airlinelogos/JNK.bmp new file mode 100644 index 000000000..c604c95f6 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JNK.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JPT.bmp b/plugins/channelrx/demodadsb/airlinelogos/JPT.bmp new file mode 100644 index 000000000..d1e2bcdac Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JPT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JSA.bmp b/plugins/channelrx/demodadsb/airlinelogos/JSA.bmp index d8cccde6e..e0145ab39 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/JSA.bmp and b/plugins/channelrx/demodadsb/airlinelogos/JSA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JTL.bmp b/plugins/channelrx/demodadsb/airlinelogos/JTL.bmp new file mode 100644 index 000000000..689137895 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/JTL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/JYH.bmp b/plugins/channelrx/demodadsb/airlinelogos/JYH.bmp index acf34d1b0..6bb647fc1 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/JYH.bmp and b/plugins/channelrx/demodadsb/airlinelogos/JYH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/KBD.bmp b/plugins/channelrx/demodadsb/airlinelogos/KBD.bmp new file mode 100644 index 000000000..24ee1a613 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/KBD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/KCE.bmp b/plugins/channelrx/demodadsb/airlinelogos/KCE.bmp new file mode 100644 index 000000000..ebedfd2b8 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/KCE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/KFR.bmp b/plugins/channelrx/demodadsb/airlinelogos/KFR.bmp new file mode 100644 index 000000000..be39ea0e9 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/KFR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/KOC.bmp b/plugins/channelrx/demodadsb/airlinelogos/KOC.bmp new file mode 100644 index 000000000..7bf05a8de Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/KOC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/KPO.bmp b/plugins/channelrx/demodadsb/airlinelogos/KPO.bmp new file mode 100644 index 000000000..74bc544c5 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/KPO.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LET.bmp b/plugins/channelrx/demodadsb/airlinelogos/LET.bmp new file mode 100644 index 000000000..5786b0e08 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LET.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LHB.bmp b/plugins/channelrx/demodadsb/airlinelogos/LHB.bmp new file mode 100644 index 000000000..c713dbd64 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LHB.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LNK.bmp b/plugins/channelrx/demodadsb/airlinelogos/LNK.bmp index 806fba31d..751120e3a 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/LNK.bmp and b/plugins/channelrx/demodadsb/airlinelogos/LNK.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LSJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/LSJ.bmp new file mode 100644 index 000000000..d7fd82ea7 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LSJ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LTG.bmp b/plugins/channelrx/demodadsb/airlinelogos/LTG.bmp new file mode 100644 index 000000000..10f72eae8 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LTG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LWG.bmp b/plugins/channelrx/demodadsb/airlinelogos/LWG.bmp new file mode 100644 index 000000000..2b111016d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LWG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LYC.bmp b/plugins/channelrx/demodadsb/airlinelogos/LYC.bmp new file mode 100644 index 000000000..365320f46 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LYC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LYD.bmp b/plugins/channelrx/demodadsb/airlinelogos/LYD.bmp new file mode 100644 index 000000000..a8ceb456e Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LYD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/LYX.bmp b/plugins/channelrx/demodadsb/airlinelogos/LYX.bmp new file mode 100644 index 000000000..4be796e9d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/LYX.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/MAD.bmp b/plugins/channelrx/demodadsb/airlinelogos/MAD.bmp new file mode 100644 index 000000000..0b2a8570f Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/MAD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/MCS.bmp b/plugins/channelrx/demodadsb/airlinelogos/MCS.bmp new file mode 100644 index 000000000..b43493424 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/MCS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/MXY.bmp b/plugins/channelrx/demodadsb/airlinelogos/MXY.bmp new file mode 100644 index 000000000..fe233d263 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/MXY.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/MYU.bmp b/plugins/channelrx/demodadsb/airlinelogos/MYU.bmp new file mode 100644 index 000000000..e956e3656 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/MYU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NAD.bmp b/plugins/channelrx/demodadsb/airlinelogos/NAD.bmp new file mode 100644 index 000000000..e83ec85c3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NAD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NDL.bmp b/plugins/channelrx/demodadsb/airlinelogos/NDL.bmp new file mode 100644 index 000000000..b9213ffa3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NDL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NFX.bmp b/plugins/channelrx/demodadsb/airlinelogos/NFX.bmp new file mode 100644 index 000000000..6d8ed3199 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NFX.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NGL.bmp b/plugins/channelrx/demodadsb/airlinelogos/NGL.bmp new file mode 100644 index 000000000..89dd103a3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NGL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NJU.bmp b/plugins/channelrx/demodadsb/airlinelogos/NJU.bmp new file mode 100644 index 000000000..e124df5cf Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NJU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NSH.bmp b/plugins/channelrx/demodadsb/airlinelogos/NSH.bmp new file mode 100644 index 000000000..f43e99d2b Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NSH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/NXU.bmp b/plugins/channelrx/demodadsb/airlinelogos/NXU.bmp new file mode 100644 index 000000000..c359e9cde Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/NXU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/OCJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/OCJ.bmp new file mode 100644 index 000000000..9c3d3ca12 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/OCJ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/OFL.bmp b/plugins/channelrx/demodadsb/airlinelogos/OFL.bmp new file mode 100644 index 000000000..e4ecf5a72 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/OFL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/OHC.bmp b/plugins/channelrx/demodadsb/airlinelogos/OHC.bmp new file mode 100644 index 000000000..eae66e11c Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/OHC.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/OLA.bmp b/plugins/channelrx/demodadsb/airlinelogos/OLA.bmp new file mode 100644 index 000000000..dfb399a32 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/OLA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/PAS.bmp b/plugins/channelrx/demodadsb/airlinelogos/PAS.bmp new file mode 100644 index 000000000..fbe560995 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/PAS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/PDY.bmp b/plugins/channelrx/demodadsb/airlinelogos/PDY.bmp new file mode 100644 index 000000000..837d381b2 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/PDY.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/PPJ.bmp b/plugins/channelrx/demodadsb/airlinelogos/PPJ.bmp new file mode 100644 index 000000000..82d73f353 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/PPJ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/PSU.bmp b/plugins/channelrx/demodadsb/airlinelogos/PSU.bmp new file mode 100644 index 000000000..bc77bbec5 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/PSU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/PVL.bmp b/plugins/channelrx/demodadsb/airlinelogos/PVL.bmp new file mode 100644 index 000000000..fa6e531b3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/PVL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QAI.bmp b/plugins/channelrx/demodadsb/airlinelogos/QAI.bmp new file mode 100644 index 000000000..3003b4163 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QAI.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QHD.bmp b/plugins/channelrx/demodadsb/airlinelogos/QHD.bmp new file mode 100644 index 000000000..ad144dde7 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QHD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QNT.bmp b/plugins/channelrx/demodadsb/airlinelogos/QNT.bmp new file mode 100644 index 000000000..15b761615 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QNT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QQE.bmp b/plugins/channelrx/demodadsb/airlinelogos/QQE.bmp new file mode 100644 index 000000000..b0c7721dd Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QQE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QTG.bmp b/plugins/channelrx/demodadsb/airlinelogos/QTG.bmp new file mode 100644 index 000000000..9a413378d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QTG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/QZR.bmp b/plugins/channelrx/demodadsb/airlinelogos/QZR.bmp new file mode 100644 index 000000000..70c5467bb Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/QZR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RCH.bmp b/plugins/channelrx/demodadsb/airlinelogos/RCH.bmp new file mode 100644 index 000000000..5a6a9d302 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RCH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RDA.bmp b/plugins/channelrx/demodadsb/airlinelogos/RDA.bmp new file mode 100644 index 000000000..35ae45cce Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RDA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/REDAIR.bmp b/plugins/channelrx/demodadsb/airlinelogos/REDAIR.bmp new file mode 100644 index 000000000..422ab2c1d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/REDAIR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/REV.bmp b/plugins/channelrx/demodadsb/airlinelogos/REV.bmp new file mode 100644 index 000000000..0e1e49149 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/REV.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RHH.bmp b/plugins/channelrx/demodadsb/airlinelogos/RHH.bmp new file mode 100644 index 000000000..353ccec07 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RHH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RJE.bmp b/plugins/channelrx/demodadsb/airlinelogos/RJE.bmp new file mode 100644 index 000000000..5f8729408 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RJE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RSB.bmp b/plugins/channelrx/demodadsb/airlinelogos/RSB.bmp new file mode 100644 index 000000000..c8e81fbb2 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RSB.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RTG.bmp b/plugins/channelrx/demodadsb/airlinelogos/RTG.bmp new file mode 100644 index 000000000..946d3a405 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RTG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/RUT.bmp b/plugins/channelrx/demodadsb/airlinelogos/RUT.bmp new file mode 100644 index 000000000..354f31de3 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/RUT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SCA.bmp b/plugins/channelrx/demodadsb/airlinelogos/SCA.bmp new file mode 100644 index 000000000..c9e89e57a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SCA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SCU.bmp b/plugins/channelrx/demodadsb/airlinelogos/SCU.bmp new file mode 100644 index 000000000..084b97dc8 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SCU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SHZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/SHZ.bmp new file mode 100644 index 000000000..cdba0456d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SHZ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SJK.bmp b/plugins/channelrx/demodadsb/airlinelogos/SJK.bmp new file mode 100644 index 000000000..78ec6f8b4 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SJK.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SMF.bmp b/plugins/channelrx/demodadsb/airlinelogos/SMF.bmp new file mode 100644 index 000000000..67edadc36 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SMF.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SNM.bmp b/plugins/channelrx/demodadsb/airlinelogos/SNM.bmp new file mode 100644 index 000000000..30b48ec7d Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SNM.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SRS.bmp b/plugins/channelrx/demodadsb/airlinelogos/SRS.bmp new file mode 100644 index 000000000..59ac54030 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SRS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/SSE.bmp b/plugins/channelrx/demodadsb/airlinelogos/SSE.bmp new file mode 100644 index 000000000..c8bdf6350 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/SSE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TAYB752WHITE.bmp b/plugins/channelrx/demodadsb/airlinelogos/TAYB752WHITE.bmp new file mode 100644 index 000000000..b1fe39003 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TAYB752WHITE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TEU.bmp b/plugins/channelrx/demodadsb/airlinelogos/TEU.bmp index 37a1fcc49..8c9470b6c 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/TEU.bmp and b/plugins/channelrx/demodadsb/airlinelogos/TEU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TFL.bmp b/plugins/channelrx/demodadsb/airlinelogos/TFL.bmp index 7b71effd3..5deafc756 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/TFL.bmp and b/plugins/channelrx/demodadsb/airlinelogos/TFL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TGN.bmp b/plugins/channelrx/demodadsb/airlinelogos/TGN.bmp index 052742400..9299f08e5 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/TGN.bmp and b/plugins/channelrx/demodadsb/airlinelogos/TGN.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/THO.bmp b/plugins/channelrx/demodadsb/airlinelogos/THO.bmp new file mode 100644 index 000000000..1a93a923a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/THO.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TIH.bmp b/plugins/channelrx/demodadsb/airlinelogos/TIH.bmp new file mode 100644 index 000000000..59d32df32 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TIH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TOM.bmp b/plugins/channelrx/demodadsb/airlinelogos/TOM.bmp index 626a6c810..2fbde934a 100644 Binary files a/plugins/channelrx/demodadsb/airlinelogos/TOM.bmp and b/plugins/channelrx/demodadsb/airlinelogos/TOM.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TON.bmp b/plugins/channelrx/demodadsb/airlinelogos/TON.bmp new file mode 100644 index 000000000..9193f13db Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TON.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TOS.bmp b/plugins/channelrx/demodadsb/airlinelogos/TOS.bmp new file mode 100644 index 000000000..7472b2e50 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TOS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TRQ.bmp b/plugins/channelrx/demodadsb/airlinelogos/TRQ.bmp new file mode 100644 index 000000000..b196fbc13 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TRQ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/TXA.bmp b/plugins/channelrx/demodadsb/airlinelogos/TXA.bmp new file mode 100644 index 000000000..210620445 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/TXA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/UBE.bmp b/plugins/channelrx/demodadsb/airlinelogos/UBE.bmp new file mode 100644 index 000000000..10396f281 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/UBE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/UTAOLD.bmp b/plugins/channelrx/demodadsb/airlinelogos/UTAOLD.bmp new file mode 100644 index 000000000..3e0c36993 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/UTAOLD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/UWD.bmp b/plugins/channelrx/demodadsb/airlinelogos/UWD.bmp new file mode 100644 index 000000000..1e16961d7 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/UWD.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VAG.bmp b/plugins/channelrx/demodadsb/airlinelogos/VAG.bmp new file mode 100644 index 000000000..bd8561603 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VAG.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VKA.bmp b/plugins/channelrx/demodadsb/airlinelogos/VKA.bmp new file mode 100644 index 000000000..76c125292 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VKA.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VLZ.bmp b/plugins/channelrx/demodadsb/airlinelogos/VLZ.bmp new file mode 100644 index 000000000..2ee9f7003 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VLZ.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VOS.bmp b/plugins/channelrx/demodadsb/airlinelogos/VOS.bmp new file mode 100644 index 000000000..6c5c83607 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VOS.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VRH.bmp b/plugins/channelrx/demodadsb/airlinelogos/VRH.bmp new file mode 100644 index 000000000..457c65f58 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VRH.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VXP.bmp b/plugins/channelrx/demodadsb/airlinelogos/VXP.bmp new file mode 100644 index 000000000..95ff125af Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VXP.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/VYR.bmp b/plugins/channelrx/demodadsb/airlinelogos/VYR.bmp new file mode 100644 index 000000000..9dbb85661 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/VYR.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/WFL.bmp b/plugins/channelrx/demodadsb/airlinelogos/WFL.bmp new file mode 100644 index 000000000..d62bf6882 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/WFL.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/WJT.bmp b/plugins/channelrx/demodadsb/airlinelogos/WJT.bmp new file mode 100644 index 000000000..1956c879a Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/WJT.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/WMU.bmp b/plugins/channelrx/demodadsb/airlinelogos/WMU.bmp new file mode 100644 index 000000000..e6ed92a44 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/WMU.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/XGE.bmp b/plugins/channelrx/demodadsb/airlinelogos/XGE.bmp new file mode 100644 index 000000000..5a7e543fb Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/XGE.bmp differ diff --git a/plugins/channelrx/demodadsb/airlinelogos/XSR.bmp b/plugins/channelrx/demodadsb/airlinelogos/XSR.bmp new file mode 100644 index 000000000..dd2d64019 Binary files /dev/null and b/plugins/channelrx/demodadsb/airlinelogos/XSR.bmp differ diff --git a/plugins/channelrx/demodadsb/map.qrc b/plugins/channelrx/demodadsb/map.qrc index 879346af6..508a51eb7 100644 --- a/plugins/channelrx/demodadsb/map.qrc +++ b/plugins/channelrx/demodadsb/map.qrc @@ -9,6 +9,7 @@ map/aircraft_light.png map/aircraft_space.png map/aircraft_drone.png + map/aircraft_fighter.png map/airport_large.png map/airport_medium.png map/airport_small.png diff --git a/plugins/channelrx/demodadsb/readme.md b/plugins/channelrx/demodadsb/readme.md index 514613426..db7828cb7 100644 --- a/plugins/channelrx/demodadsb/readme.md +++ b/plugins/channelrx/demodadsb/readme.md @@ -83,6 +83,67 @@ The server hostname and port to send the frames to should be entered in the Serv The Beast binary and Hex formats are as detailed here: https://wiki.jetvision.de/wiki/Mode-S_Beast:Data_Output_Formats +

Open Notifications Dialog

+ +When clicked, opens the Notifications Dialog, which allows speech notifications or programs/scripts to be run when aircraft matching user-defined rules are seen. + +For example, you might want an audible notification when a particularly interesting aircraft is nearby or when an aircraft declares an emergency. +By running a program such as [cmail](https://www.inveigle.net/cmail/download), e-mail notifications can be sent. + +Here are a few examples: + +![Notifications Dialog](../../../doc/img/ADSBDemod_plugin_notifications.png) + +Aircraft categories are: + +* Light +* Small +* Large +* High vortex +* Heavy +* High performance +* Rotorcraft +* Glider/sailplane +* Lighter-than-air +* Parachutist +* Ultralight +* UAV +* Space vehicle +* Emergency vehicle +* Service vehicle +* Ground obstruction +* Cluster obstacle +* Line obstacle + +Emergency status are: + +* No emergency +* General emergency +* Lifeguard/Medical +* Minimum fuel +* No communications +* Unlawful interference +* Downed aircraft + +In the Speech and Command strings, variables can be used to substitute in ADS-B data for the aircraft: + +* ${icao}, +* ${flight} +* ${aircraft} +* ${latitude} +* ${longitude} +* ${altitude} +* ${speed} +* ${heading} +* ${range} +* ${category} +* ${status} +* ${squawk} +* ${registration} +* ${manufacturer} +* ${owner} +* ${operator} +

14: Refresh list of devices

Use this button to refresh the list of devices.