From 9ce0810a295c76ec47109c5489453d0b4cb05a8e Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 18 Nov 2023 06:36:53 +0100 Subject: [PATCH] Rewriting of copyright notices for plugins/channeltx. Part of #1893 --- plugins/channeltx/filesource/filesource.cpp | 4 +- plugins/channeltx/filesource/filesource.h | 7 +- .../filesource/filesourcebaseband.cpp | 3 +- .../channeltx/filesource/filesourcebaseband.h | 3 +- .../channeltx/filesource/filesourcegui.cpp | 3 +- plugins/channeltx/filesource/filesourcegui.h | 6 +- .../channeltx/filesource/filesourceplugin.cpp | 6 +- .../channeltx/filesource/filesourceplugin.h | 5 +- .../channeltx/filesource/filesourcereport.cpp | 6 +- .../channeltx/filesource/filesourcereport.h | 4 +- .../filesource/filesourcesettings.cpp | 3 +- .../channeltx/filesource/filesourcesettings.h | 5 +- .../channeltx/filesource/filesourcesource.cpp | 3 +- .../channeltx/filesource/filesourcesource.h | 2 +- .../filesource/filesourcewebapiadapter.cpp | 4 +- .../filesource/filesourcewebapiadapter.h | 2 +- plugins/channeltx/localsource/localsource.cpp | 3 +- plugins/channeltx/localsource/localsource.h | 3 +- .../localsource/localsourcebaseband.cpp | 3 +- .../localsource/localsourcebaseband.h | 3 +- .../channeltx/localsource/localsourcegui.cpp | 3 +- .../channeltx/localsource/localsourcegui.h | 6 +- .../localsource/localsourceplugin.cpp | 6 +- .../channeltx/localsource/localsourceplugin.h | 5 +- .../localsource/localsourcesettings.cpp | 3 +- .../localsource/localsourcesettings.h | 5 +- .../localsource/localsourcesource.cpp | 2 +- .../channeltx/localsource/localsourcesource.h | 5 +- .../localsource/localsourcewebapiadapter.cpp | 4 +- .../localsource/localsourcewebapiadapter.h | 2 +- .../localsource/localsourceworker.cpp | 4 +- .../channeltx/localsource/localsourceworker.h | 6 +- .../mod802.15.4/ieee_802_15_4_macframe.h | 2 +- .../mod802.15.4/ieee_802_15_4_mod.cpp | 6 +- .../channeltx/mod802.15.4/ieee_802_15_4_mod.h | 6 +- .../mod802.15.4/ieee_802_15_4_modbaseband.cpp | 5 +- .../mod802.15.4/ieee_802_15_4_modbaseband.h | 5 +- .../mod802.15.4/ieee_802_15_4_modgui.cpp | 4 +- .../mod802.15.4/ieee_802_15_4_modgui.h | 4 +- .../mod802.15.4/ieee_802_15_4_modplugin.cpp | 8 +- .../mod802.15.4/ieee_802_15_4_modplugin.h | 7 +- .../ieee_802_15_4_modrepeatdialog.cpp | 5 +- .../ieee_802_15_4_modrepeatdialog.h | 5 +- .../mod802.15.4/ieee_802_15_4_modsettings.cpp | 4 +- .../mod802.15.4/ieee_802_15_4_modsettings.h | 6 +- .../mod802.15.4/ieee_802_15_4_modsource.cpp | 4 +- .../mod802.15.4/ieee_802_15_4_modsource.h | 4 +- .../ieee_802_15_4_modtxsettingsdialog.cpp | 2 +- .../ieee_802_15_4_modtxsettingsdialog.h | 6 +- .../ieee_802_15_4_modwebapiadapter.cpp | 6 +- .../ieee_802_15_4_modwebapiadapter.h | 4 +- plugins/channeltx/modais/aismod.cpp | 5 +- plugins/channeltx/modais/aismod.h | 6 +- plugins/channeltx/modais/aismodbaseband.cpp | 5 +- plugins/channeltx/modais/aismodbaseband.h | 5 +- plugins/channeltx/modais/aismodgui.cpp | 4 +- plugins/channeltx/modais/aismodgui.h | 4 +- plugins/channeltx/modais/aismodplugin.cpp | 8 +- plugins/channeltx/modais/aismodplugin.h | 7 +- .../channeltx/modais/aismodrepeatdialog.cpp | 5 +- plugins/channeltx/modais/aismodrepeatdialog.h | 5 +- plugins/channeltx/modais/aismodsettings.cpp | 4 +- plugins/channeltx/modais/aismodsettings.h | 6 +- plugins/channeltx/modais/aismodsource.cpp | 4 +- plugins/channeltx/modais/aismodsource.h | 4 +- .../modais/aismodtxsettingsdialog.cpp | 5 +- .../channeltx/modais/aismodtxsettingsdialog.h | 5 +- .../channeltx/modais/aismodwebapiadapter.cpp | 6 +- .../channeltx/modais/aismodwebapiadapter.h | 4 +- plugins/channeltx/modam/ammod.cpp | 4 +- plugins/channeltx/modam/ammod.h | 4 +- plugins/channeltx/modam/ammodbaseband.cpp | 3 +- plugins/channeltx/modam/ammodbaseband.h | 3 +- plugins/channeltx/modam/ammodgui.cpp | 7 +- plugins/channeltx/modam/ammodgui.h | 3 +- plugins/channeltx/modam/ammodplugin.cpp | 6 +- plugins/channeltx/modam/ammodplugin.h | 5 +- plugins/channeltx/modam/ammodsettings.cpp | 5 +- plugins/channeltx/modam/ammodsettings.h | 5 +- plugins/channeltx/modam/ammodsource.cpp | 3 +- plugins/channeltx/modam/ammodsource.h | 3 +- .../channeltx/modam/ammodwebapiadapter.cpp | 4 +- plugins/channeltx/modam/ammodwebapiadapter.h | 2 +- plugins/channeltx/modatv/atvmod.cpp | 3 +- plugins/channeltx/modatv/atvmod.h | 3 +- plugins/channeltx/modatv/atvmodbaseband.cpp | 3 +- plugins/channeltx/modatv/atvmodbaseband.h | 3 +- plugins/channeltx/modatv/atvmodgui.cpp | 8 +- plugins/channeltx/modatv/atvmodgui.h | 3 +- plugins/channeltx/modatv/atvmodplugin.cpp | 6 +- plugins/channeltx/modatv/atvmodplugin.h | 5 +- plugins/channeltx/modatv/atvmodreport.cpp | 6 +- plugins/channeltx/modatv/atvmodreport.h | 2 +- plugins/channeltx/modatv/atvmodsettings.cpp | 3 +- plugins/channeltx/modatv/atvmodsettings.h | 3 +- plugins/channeltx/modatv/atvmodsource.cpp | 4 +- plugins/channeltx/modatv/atvmodsource.h | 3 +- .../channeltx/modatv/atvmodwebapiadapter.cpp | 4 +- .../channeltx/modatv/atvmodwebapiadapter.h | 2 +- .../channeltx/modchirpchat/chirpchatmod.cpp | 5 +- plugins/channeltx/modchirpchat/chirpchatmod.h | 5 +- .../modchirpchat/chirpchatmodbaseband.cpp | 4 +- .../modchirpchat/chirpchatmodbaseband.h | 3 +- .../modchirpchat/chirpchatmodencoder.cpp | 4 +- .../modchirpchat/chirpchatmodencoder.h | 4 +- .../modchirpchat/chirpchatmodencoderascii.cpp | 4 +- .../modchirpchat/chirpchatmodencoderascii.h | 4 +- .../modchirpchat/chirpchatmodencoderlora.cpp | 2 +- .../modchirpchat/chirpchatmodencoderlora.h | 2 +- .../modchirpchat/chirpchatmodencodertty.cpp | 2 +- .../modchirpchat/chirpchatmodencodertty.h | 6 +- .../modchirpchat/chirpchatmodgui.cpp | 3 +- .../channeltx/modchirpchat/chirpchatmodgui.h | 3 +- .../modchirpchat/chirpchatmodplugin.cpp | 6 +- .../modchirpchat/chirpchatmodplugin.h | 5 +- .../modchirpchat/chirpchatmodsettings.cpp | 5 +- .../modchirpchat/chirpchatmodsettings.h | 5 +- .../modchirpchat/chirpchatmodsource.cpp | 2 +- .../modchirpchat/chirpchatmodsource.h | 2 +- .../chirpchatmodwebapiadapter.cpp | 4 +- .../modchirpchat/chirpchatmodwebapiadapter.h | 2 +- plugins/channeltx/moddatv/dvb-s/dvb-s.cpp | 2 +- plugins/channeltx/moddatv/dvb-s/dvb-s.h | 2 +- plugins/channeltx/moddatv/dvb-s2/DVB2.cpp | 18 +- plugins/channeltx/moddatv/dvb-s2/DVB2.h | 16 + plugins/channeltx/moddatv/dvb-s2/DVBS2.cpp | 16 + plugins/channeltx/moddatv/dvb-s2/DVBS2.h | 18 +- .../moddatv/dvb-s2/dvb2_bbheader.cpp | 16 + plugins/channeltx/moddatv/dvb-s2/dvb2_bch.cpp | 16 + .../moddatv/dvb-s2/dvb2_ldpc_encode.cpp | 48 +- .../moddatv/dvb-s2/dvb2_ldpc_tables.cpp | 16 + .../moddatv/dvb-s2/dvb2_scrambler.cpp | 16 + .../moddatv/dvb-s2/dvbs2_interleave.cpp | 16 + .../moddatv/dvb-s2/dvbs2_modulator.cpp | 16 + .../moddatv/dvb-s2/dvbs2_physical.cpp | 16 + .../moddatv/dvb-s2/dvbs2_scrambler.cpp | 16 + .../channeltx/moddatv/dvb-s2/dvbs2_tables.cpp | 16 + plugins/channeltx/modfreedv/freedvmod.cpp | 4 +- plugins/channeltx/modfreedv/freedvmod.h | 4 +- .../channeltx/modfreedv/freedvmodbaseband.cpp | 3 +- .../channeltx/modfreedv/freedvmodbaseband.h | 3 +- plugins/channeltx/modfreedv/freedvmodgui.cpp | 7 +- plugins/channeltx/modfreedv/freedvmodgui.h | 3 +- .../channeltx/modfreedv/freedvmodplugin.cpp | 6 +- plugins/channeltx/modfreedv/freedvmodplugin.h | 5 +- .../channeltx/modfreedv/freedvmodsettings.cpp | 3 +- .../channeltx/modfreedv/freedvmodsettings.h | 5 +- .../channeltx/modfreedv/freedvmodsource.cpp | 3 +- plugins/channeltx/modfreedv/freedvmodsource.h | 3 +- .../modfreedv/freedvmodwebapiadapter.cpp | 2 +- .../modfreedv/freedvmodwebapiadapter.h | 2 +- plugins/channeltx/modm17/m17mod.cpp | 4 +- plugins/channeltx/modm17/m17mod.h | 4 +- plugins/channeltx/modm17/m17modax25.cpp | 2 +- plugins/channeltx/modm17/m17modax25.h | 5 +- plugins/channeltx/modm17/m17modbaseband.cpp | 3 +- plugins/channeltx/modm17/m17modbaseband.h | 3 +- plugins/channeltx/modm17/m17moddecimator.cpp | 16 + plugins/channeltx/modm17/m17moddecimator.h | 16 + plugins/channeltx/modm17/m17modfifo.cpp | 2 +- plugins/channeltx/modm17/m17modfifo.h | 4 +- plugins/channeltx/modm17/m17modgui.cpp | 7 +- plugins/channeltx/modm17/m17modgui.h | 3 +- plugins/channeltx/modm17/m17modplugin.cpp | 6 +- plugins/channeltx/modm17/m17modplugin.h | 5 +- plugins/channeltx/modm17/m17modprocessor.cpp | 3 +- plugins/channeltx/modm17/m17modprocessor.h | 6 +- plugins/channeltx/modm17/m17modsettings.cpp | 5 +- plugins/channeltx/modm17/m17modsettings.h | 5 +- plugins/channeltx/modm17/m17modsource.cpp | 4 +- plugins/channeltx/modm17/m17modsource.h | 3 +- .../channeltx/modm17/m17modwebapiadapter.cpp | 4 +- .../channeltx/modm17/m17modwebapiadapter.h | 2 +- plugins/channeltx/modnfm/nfmmod.cpp | 4 +- plugins/channeltx/modnfm/nfmmod.h | 4 +- plugins/channeltx/modnfm/nfmmodbaseband.cpp | 3 +- plugins/channeltx/modnfm/nfmmodbaseband.h | 3 +- plugins/channeltx/modnfm/nfmmoddcs.cpp | 2 +- plugins/channeltx/modnfm/nfmmoddcs.h | 4 +- plugins/channeltx/modnfm/nfmmodgui.cpp | 7 +- plugins/channeltx/modnfm/nfmmodgui.h | 3 +- plugins/channeltx/modnfm/nfmmodplugin.cpp | 6 +- plugins/channeltx/modnfm/nfmmodplugin.h | 5 +- plugins/channeltx/modnfm/nfmmodsettings.cpp | 5 +- plugins/channeltx/modnfm/nfmmodsettings.h | 5 +- plugins/channeltx/modnfm/nfmmodsource.cpp | 3 +- plugins/channeltx/modnfm/nfmmodsource.h | 3 +- .../channeltx/modnfm/nfmmodwebapiadapter.cpp | 2 +- .../channeltx/modnfm/nfmmodwebapiadapter.h | 2 +- plugins/channeltx/modpacket/packetmod.cpp | 6 +- plugins/channeltx/modpacket/packetmod.h | 6 +- .../channeltx/modpacket/packetmodbaseband.cpp | 5 +- .../channeltx/modpacket/packetmodbaseband.h | 5 +- .../modpacket/packetmodbpfdialog.cpp | 6 +- .../channeltx/modpacket/packetmodbpfdialog.h | 5 +- plugins/channeltx/modpacket/packetmodgui.cpp | 4 +- plugins/channeltx/modpacket/packetmodgui.h | 4 +- .../channeltx/modpacket/packetmodplugin.cpp | 8 +- plugins/channeltx/modpacket/packetmodplugin.h | 7 +- .../modpacket/packetmodrepeatdialog.cpp | 5 +- .../modpacket/packetmodrepeatdialog.h | 5 +- .../channeltx/modpacket/packetmodsettings.cpp | 4 +- .../channeltx/modpacket/packetmodsettings.h | 6 +- .../channeltx/modpacket/packetmodsource.cpp | 4 +- plugins/channeltx/modpacket/packetmodsource.h | 4 +- .../modpacket/packetmodtxsettingsdialog.cpp | 2 +- .../modpacket/packetmodtxsettingsdialog.h | 6 +- .../modpacket/packetmodwebapiadapter.cpp | 6 +- .../modpacket/packetmodwebapiadapter.h | 4 +- plugins/channeltx/modpsk31/psk31mod.cpp | 3 +- plugins/channeltx/modpsk31/psk31mod.h | 6 +- .../channeltx/modpsk31/psk31modbaseband.cpp | 5 +- plugins/channeltx/modpsk31/psk31modbaseband.h | 5 +- plugins/channeltx/modpsk31/psk31modgui.cpp | 3 +- plugins/channeltx/modpsk31/psk31modgui.h | 4 +- plugins/channeltx/modpsk31/psk31modplugin.cpp | 8 +- plugins/channeltx/modpsk31/psk31modplugin.h | 7 +- .../modpsk31/psk31modrepeatdialog.cpp | 5 +- .../channeltx/modpsk31/psk31modrepeatdialog.h | 5 +- .../channeltx/modpsk31/psk31modsettings.cpp | 3 +- plugins/channeltx/modpsk31/psk31modsettings.h | 6 +- plugins/channeltx/modpsk31/psk31modsource.cpp | 3 +- plugins/channeltx/modpsk31/psk31modsource.h | 4 +- .../modpsk31/psk31modtxsettingsdialog.cpp | 2 +- .../modpsk31/psk31modtxsettingsdialog.h | 5 +- .../modpsk31/psk31modwebapiadapter.cpp | 6 +- .../modpsk31/psk31modwebapiadapter.h | 4 +- plugins/channeltx/modrtty/rttymod.cpp | 3 +- plugins/channeltx/modrtty/rttymod.h | 6 +- plugins/channeltx/modrtty/rttymodbaseband.cpp | 5 +- plugins/channeltx/modrtty/rttymodbaseband.h | 5 +- plugins/channeltx/modrtty/rttymodgui.cpp | 3 +- plugins/channeltx/modrtty/rttymodgui.h | 4 +- plugins/channeltx/modrtty/rttymodplugin.cpp | 8 +- plugins/channeltx/modrtty/rttymodplugin.h | 7 +- .../channeltx/modrtty/rttymodrepeatdialog.cpp | 5 +- .../channeltx/modrtty/rttymodrepeatdialog.h | 5 +- plugins/channeltx/modrtty/rttymodsettings.cpp | 3 +- plugins/channeltx/modrtty/rttymodsettings.h | 6 +- plugins/channeltx/modrtty/rttymodsource.cpp | 3 +- plugins/channeltx/modrtty/rttymodsource.h | 4 +- .../modrtty/rttymodtxsettingsdialog.cpp | 2 +- .../modrtty/rttymodtxsettingsdialog.h | 5 +- .../modrtty/rttymodwebapiadapter.cpp | 6 +- .../channeltx/modrtty/rttymodwebapiadapter.h | 4 +- plugins/channeltx/modssb/ssbmod.cpp | 5 +- plugins/channeltx/modssb/ssbmod.h | 4 +- plugins/channeltx/modssb/ssbmodbaseband.cpp | 3 +- plugins/channeltx/modssb/ssbmodbaseband.h | 3 +- plugins/channeltx/modssb/ssbmodgui.cpp | 8 +- plugins/channeltx/modssb/ssbmodgui.h | 3 +- plugins/channeltx/modssb/ssbmodplugin.cpp | 6 +- plugins/channeltx/modssb/ssbmodplugin.h | 5 +- plugins/channeltx/modssb/ssbmodsettings.cpp | 3 +- plugins/channeltx/modssb/ssbmodsettings.h | 5 +- plugins/channeltx/modssb/ssbmodsource.cpp | 3 +- plugins/channeltx/modssb/ssbmodsource.h | 3 +- .../channeltx/modssb/ssbmodwebapiadapter.cpp | 2 +- .../channeltx/modssb/ssbmodwebapiadapter.h | 2 +- plugins/channeltx/modwfm/wfmmod.cpp | 1636 +++++++++-------- plugins/channeltx/modwfm/wfmmod.h | 608 +++--- plugins/channeltx/modwfm/wfmmodbaseband.cpp | 3 +- plugins/channeltx/modwfm/wfmmodbaseband.h | 3 +- plugins/channeltx/modwfm/wfmmodgui.cpp | 7 +- plugins/channeltx/modwfm/wfmmodgui.h | 3 +- plugins/channeltx/modwfm/wfmmodplugin.cpp | 6 +- plugins/channeltx/modwfm/wfmmodplugin.h | 5 +- plugins/channeltx/modwfm/wfmmodsettings.cpp | 5 +- plugins/channeltx/modwfm/wfmmodsettings.h | 5 +- plugins/channeltx/modwfm/wfmmodsource.cpp | 2 + plugins/channeltx/modwfm/wfmmodsource.h | 3 +- .../channeltx/modwfm/wfmmodwebapiadapter.cpp | 2 +- .../channeltx/modwfm/wfmmodwebapiadapter.h | 2 +- .../channeltx/remotesource/remotesource.cpp | 4 +- plugins/channeltx/remotesource/remotesource.h | 7 +- .../remotesource/remotesourcebaseband.cpp | 3 +- .../remotesource/remotesourcebaseband.h | 3 +- .../remotesource/remotesourcegui.cpp | 3 +- .../channeltx/remotesource/remotesourcegui.h | 6 +- .../remotesource/remotesourceplugin.cpp | 6 +- .../remotesource/remotesourceplugin.h | 5 +- .../remotesource/remotesourcesettings.cpp | 3 +- .../remotesource/remotesourcesettings.h | 5 +- .../remotesource/remotesourcesource.cpp | 2 +- .../remotesource/remotesourcesource.h | 2 +- .../remotesourcewebapiadapter.cpp | 4 +- .../remotesource/remotesourcewebapiadapter.h | 2 +- .../remotesource/remotesourceworker.cpp | 5 +- .../remotesource/remotesourceworker.h | 6 +- plugins/channeltx/udpsource/udpsource.cpp | 4 +- plugins/channeltx/udpsource/udpsource.h | 4 +- .../channeltx/udpsource/udpsourcebaseband.cpp | 3 +- .../channeltx/udpsource/udpsourcebaseband.h | 3 +- plugins/channeltx/udpsource/udpsourcegui.cpp | 3 +- plugins/channeltx/udpsource/udpsourcegui.h | 3 +- plugins/channeltx/udpsource/udpsourcemsg.cpp | 4 +- plugins/channeltx/udpsource/udpsourcemsg.h | 4 +- .../channeltx/udpsource/udpsourceplugin.cpp | 5 +- plugins/channeltx/udpsource/udpsourceplugin.h | 6 +- .../channeltx/udpsource/udpsourcesettings.cpp | 3 +- .../channeltx/udpsource/udpsourcesettings.h | 5 +- .../channeltx/udpsource/udpsourcesource.cpp | 4 +- plugins/channeltx/udpsource/udpsourcesource.h | 2 +- .../udpsource/udpsourceudphandler.cpp | 2 +- .../channeltx/udpsource/udpsourceudphandler.h | 5 +- .../udpsource/udpsourcewebapiadapter.cpp | 4 +- .../udpsource/udpsourcewebapiadapter.h | 2 +- 307 files changed, 2247 insertions(+), 1504 deletions(-) diff --git a/plugins/channeltx/filesource/filesource.cpp b/plugins/channeltx/filesource/filesource.cpp index cf058596f..088eec50e 100644 --- a/plugins/channeltx/filesource/filesource.cpp +++ b/plugins/channeltx/filesource/filesource.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/filesource/filesource.h b/plugins/channeltx/filesource/filesource.h index 940dfe3c7..b71a20165 100644 --- a/plugins/channeltx/filesource/filesource.h +++ b/plugins/channeltx/filesource/filesource.h @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcebaseband.cpp b/plugins/channeltx/filesource/filesourcebaseband.cpp index 623522c11..2451da96d 100644 --- a/plugins/channeltx/filesource/filesourcebaseband.cpp +++ b/plugins/channeltx/filesource/filesourcebaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcebaseband.h b/plugins/channeltx/filesource/filesourcebaseband.h index 5630537f9..976cd6006 100644 --- a/plugins/channeltx/filesource/filesourcebaseband.h +++ b/plugins/channeltx/filesource/filesourcebaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcegui.cpp b/plugins/channeltx/filesource/filesourcegui.cpp index 6ba162849..96ce65d93 100644 --- a/plugins/channeltx/filesource/filesourcegui.cpp +++ b/plugins/channeltx/filesource/filesourcegui.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/filesource/filesourcegui.h b/plugins/channeltx/filesource/filesourcegui.h index a72e57457..29bd4370d 100644 --- a/plugins/channeltx/filesource/filesourcegui.h +++ b/plugins/channeltx/filesource/filesourcegui.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/filesource/filesourceplugin.cpp b/plugins/channeltx/filesource/filesourceplugin.cpp index 1d3aa182b..834ace60d 100644 --- a/plugins/channeltx/filesource/filesourceplugin.cpp +++ b/plugins/channeltx/filesource/filesourceplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourceplugin.h b/plugins/channeltx/filesource/filesourceplugin.h index 731c950ad..0a51e8708 100644 --- a/plugins/channeltx/filesource/filesourceplugin.h +++ b/plugins/channeltx/filesource/filesourceplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcereport.cpp b/plugins/channeltx/filesource/filesourcereport.cpp index 734505186..dd956ae46 100644 --- a/plugins/channeltx/filesource/filesourcereport.cpp +++ b/plugins/channeltx/filesource/filesourcereport.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // // // // 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 // @@ -26,4 +28,4 @@ FileSourceReport::FileSourceReport() {} FileSourceReport::~FileSourceReport() -{} \ No newline at end of file +{} diff --git a/plugins/channeltx/filesource/filesourcereport.h b/plugins/channeltx/filesource/filesourcereport.h index c92a511ca..77d2baccc 100644 --- a/plugins/channeltx/filesource/filesourcereport.h +++ b/plugins/channeltx/filesource/filesourcereport.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // @@ -127,4 +127,4 @@ public: ~FileSourceReport(); }; -#endif // PLUGINS_CHANNELTX_FILESOURCE_FILESOURCEREPORT_H_ \ No newline at end of file +#endif // PLUGINS_CHANNELTX_FILESOURCE_FILESOURCEREPORT_H_ diff --git a/plugins/channeltx/filesource/filesourcesettings.cpp b/plugins/channeltx/filesource/filesourcesettings.cpp index 0a181dd36..bfc2b7a94 100644 --- a/plugins/channeltx/filesource/filesourcesettings.cpp +++ b/plugins/channeltx/filesource/filesourcesettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/filesource/filesourcesettings.h b/plugins/channeltx/filesource/filesourcesettings.h index 34c5cf882..74a2c0586 100644 --- a/plugins/channeltx/filesource/filesourcesettings.h +++ b/plugins/channeltx/filesource/filesourcesettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/filesource/filesourcesource.cpp b/plugins/channeltx/filesource/filesourcesource.cpp index 1b6bf7a7c..298d69307 100644 --- a/plugins/channeltx/filesource/filesourcesource.cpp +++ b/plugins/channeltx/filesource/filesourcesource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/filesource/filesourcesource.h b/plugins/channeltx/filesource/filesourcesource.h index 59ac65e92..27801820c 100644 --- a/plugins/channeltx/filesource/filesourcesource.h +++ b/plugins/channeltx/filesource/filesourcesource.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcewebapiadapter.cpp b/plugins/channeltx/filesource/filesourcewebapiadapter.cpp index cfcadb78a..b2ded1fc3 100644 --- a/plugins/channeltx/filesource/filesourcewebapiadapter.cpp +++ b/plugins/channeltx/filesource/filesourcewebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/filesource/filesourcewebapiadapter.h b/plugins/channeltx/filesource/filesourcewebapiadapter.h index 1045acbb1..a96ea09c5 100644 --- a/plugins/channeltx/filesource/filesourcewebapiadapter.h +++ b/plugins/channeltx/filesource/filesourcewebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsource.cpp b/plugins/channeltx/localsource/localsource.cpp index 84b5bcaec..c6940a61e 100644 --- a/plugins/channeltx/localsource/localsource.cpp +++ b/plugins/channeltx/localsource/localsource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/localsource/localsource.h b/plugins/channeltx/localsource/localsource.h index 9ee878cc6..bcd5e2258 100644 --- a/plugins/channeltx/localsource/localsource.h +++ b/plugins/channeltx/localsource/localsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2018-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcebaseband.cpp b/plugins/channeltx/localsource/localsourcebaseband.cpp index 580c7c5fd..1becad049 100644 --- a/plugins/channeltx/localsource/localsourcebaseband.cpp +++ b/plugins/channeltx/localsource/localsourcebaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcebaseband.h b/plugins/channeltx/localsource/localsourcebaseband.h index 804ceaf95..3eee5678b 100644 --- a/plugins/channeltx/localsource/localsourcebaseband.h +++ b/plugins/channeltx/localsource/localsourcebaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcegui.cpp b/plugins/channeltx/localsource/localsourcegui.cpp index cbc05e33b..78fe281d2 100644 --- a/plugins/channeltx/localsource/localsourcegui.cpp +++ b/plugins/channeltx/localsource/localsourcegui.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/localsource/localsourcegui.h b/plugins/channeltx/localsource/localsourcegui.h index 4d23fe05c..b48de3b24 100644 --- a/plugins/channeltx/localsource/localsourcegui.h +++ b/plugins/channeltx/localsource/localsourcegui.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/localsource/localsourceplugin.cpp b/plugins/channeltx/localsource/localsourceplugin.cpp index 8d9b34180..656529927 100644 --- a/plugins/channeltx/localsource/localsourceplugin.cpp +++ b/plugins/channeltx/localsource/localsourceplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourceplugin.h b/plugins/channeltx/localsource/localsourceplugin.h index 62336c887..e148443dd 100644 --- a/plugins/channeltx/localsource/localsourceplugin.h +++ b/plugins/channeltx/localsource/localsourceplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcesettings.cpp b/plugins/channeltx/localsource/localsourcesettings.cpp index 88754eb73..2111ae701 100644 --- a/plugins/channeltx/localsource/localsourcesettings.cpp +++ b/plugins/channeltx/localsource/localsourcesettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2018-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/localsource/localsourcesettings.h b/plugins/channeltx/localsource/localsourcesettings.h index f68b7e47f..a2cdb3872 100644 --- a/plugins/channeltx/localsource/localsourcesettings.h +++ b/plugins/channeltx/localsource/localsourcesettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/localsource/localsourcesource.cpp b/plugins/channeltx/localsource/localsourcesource.cpp index 5bd507a35..553cc6b70 100644 --- a/plugins/channeltx/localsource/localsourcesource.cpp +++ b/plugins/channeltx/localsource/localsourcesource.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcesource.h b/plugins/channeltx/localsource/localsourcesource.h index dd978327d..716512a24 100644 --- a/plugins/channeltx/localsource/localsourcesource.h +++ b/plugins/channeltx/localsource/localsourcesource.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcewebapiadapter.cpp b/plugins/channeltx/localsource/localsourcewebapiadapter.cpp index f07141189..7b5ef979d 100644 --- a/plugins/channeltx/localsource/localsourcewebapiadapter.cpp +++ b/plugins/channeltx/localsource/localsourcewebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourcewebapiadapter.h b/plugins/channeltx/localsource/localsourcewebapiadapter.h index 123f3cf07..848858150 100644 --- a/plugins/channeltx/localsource/localsourcewebapiadapter.h +++ b/plugins/channeltx/localsource/localsourcewebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourceworker.cpp b/plugins/channeltx/localsource/localsourceworker.cpp index 06b0664cb..bce460e09 100644 --- a/plugins/channeltx/localsource/localsourceworker.cpp +++ b/plugins/channeltx/localsource/localsourceworker.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/localsource/localsourceworker.h b/plugins/channeltx/localsource/localsourceworker.h index 5affce925..89a5735e1 100644 --- a/plugins/channeltx/localsource/localsourceworker.h +++ b/plugins/channeltx/localsource/localsourceworker.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2019 Davide Gerhard // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_macframe.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_macframe.h index a2c8b282a..3cd8ff614 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_macframe.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_macframe.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.cpp index afcf4c29a..c0de0f38c 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.h index d121b3214..ca5254107 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_mod.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.cpp index f3ed1b773..f75ad3aef 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019, 2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.h index b24f8126d..3c8b13634 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modbaseband.h @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp index 11083f0f0..2032478cb 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.h index 8579cab04..60b7d5355 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2022 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.cpp index 89f1ebd96..ec49ff2a9 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.cpp @@ -1,6 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.h index 4ac8dda53..66bc392ab 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modplugin.h @@ -1,6 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.cpp index 5dd3afbd2..86b3d1341 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.h index 4c4abb1be..2084324de 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modrepeatdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.cpp index 935f897a7..b273f5575 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2021-2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.h index 160c2d6e5..b7972bc09 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsettings.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.cpp index 90ec3c0fe..501ff8388 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2022 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.h index 4199fa111..79ff63937 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modsource.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.cpp index 67b8af0fb..9e3c667b0 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.h index 0175d5d86..05302033d 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modtxsettingsdialog.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2016-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.cpp index 0ae369b88..551e1d228 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.h b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.h index 58ab9cc7d..1d65d34d9 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.h +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modwebapiadapter.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modais/aismod.cpp b/plugins/channeltx/modais/aismod.cpp index 5729da8e4..7545d55d7 100644 --- a/plugins/channeltx/modais/aismod.cpp +++ b/plugins/channeltx/modais/aismod.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2021-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modais/aismod.h b/plugins/channeltx/modais/aismod.h index d22d6153f..bbc4d6a49 100644 --- a/plugins/channeltx/modais/aismod.h +++ b/plugins/channeltx/modais/aismod.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modais/aismodbaseband.cpp b/plugins/channeltx/modais/aismodbaseband.cpp index 9eed787c6..083825664 100644 --- a/plugins/channeltx/modais/aismodbaseband.cpp +++ b/plugins/channeltx/modais/aismodbaseband.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modais/aismodbaseband.h b/plugins/channeltx/modais/aismodbaseband.h index 8f9e7d84e..82d06000a 100644 --- a/plugins/channeltx/modais/aismodbaseband.h +++ b/plugins/channeltx/modais/aismodbaseband.h @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modais/aismodgui.cpp b/plugins/channeltx/modais/aismodgui.cpp index 99e879919..3f3029520 100644 --- a/plugins/channeltx/modais/aismodgui.cpp +++ b/plugins/channeltx/modais/aismodgui.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modais/aismodgui.h b/plugins/channeltx/modais/aismodgui.h index 155d7537f..7788670d0 100644 --- a/plugins/channeltx/modais/aismodgui.h +++ b/plugins/channeltx/modais/aismodgui.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2022 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 // diff --git a/plugins/channeltx/modais/aismodplugin.cpp b/plugins/channeltx/modais/aismodplugin.cpp index 8eb639aec..4f4ddc2a8 100644 --- a/plugins/channeltx/modais/aismodplugin.cpp +++ b/plugins/channeltx/modais/aismodplugin.cpp @@ -1,6 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // +// 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 // diff --git a/plugins/channeltx/modais/aismodplugin.h b/plugins/channeltx/modais/aismodplugin.h index 85da4230a..5d89054d8 100644 --- a/plugins/channeltx/modais/aismodplugin.h +++ b/plugins/channeltx/modais/aismodplugin.h @@ -1,6 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodrepeatdialog.cpp b/plugins/channeltx/modais/aismodrepeatdialog.cpp index 37eae2080..510e59d19 100644 --- a/plugins/channeltx/modais/aismodrepeatdialog.cpp +++ b/plugins/channeltx/modais/aismodrepeatdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodrepeatdialog.h b/plugins/channeltx/modais/aismodrepeatdialog.h index db8be0e7a..14db23a96 100644 --- a/plugins/channeltx/modais/aismodrepeatdialog.h +++ b/plugins/channeltx/modais/aismodrepeatdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodsettings.cpp b/plugins/channeltx/modais/aismodsettings.cpp index f14445f1d..098758b50 100644 --- a/plugins/channeltx/modais/aismodsettings.cpp +++ b/plugins/channeltx/modais/aismodsettings.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2021-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modais/aismodsettings.h b/plugins/channeltx/modais/aismodsettings.h index 127d9f3f3..44d485945 100644 --- a/plugins/channeltx/modais/aismodsettings.h +++ b/plugins/channeltx/modais/aismodsettings.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodsource.cpp b/plugins/channeltx/modais/aismodsource.cpp index 1fdf81b7f..972dcafdf 100644 --- a/plugins/channeltx/modais/aismodsource.cpp +++ b/plugins/channeltx/modais/aismodsource.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2021-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modais/aismodsource.h b/plugins/channeltx/modais/aismodsource.h index 4bcef38ba..5ca49810c 100644 --- a/plugins/channeltx/modais/aismodsource.h +++ b/plugins/channeltx/modais/aismodsource.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodtxsettingsdialog.cpp b/plugins/channeltx/modais/aismodtxsettingsdialog.cpp index 9612afdfb..fbf98d0d2 100644 --- a/plugins/channeltx/modais/aismodtxsettingsdialog.cpp +++ b/plugins/channeltx/modais/aismodtxsettingsdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodtxsettingsdialog.h b/plugins/channeltx/modais/aismodtxsettingsdialog.h index 28500d6fd..41041e845 100644 --- a/plugins/channeltx/modais/aismodtxsettingsdialog.h +++ b/plugins/channeltx/modais/aismodtxsettingsdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodwebapiadapter.cpp b/plugins/channeltx/modais/aismodwebapiadapter.cpp index 176dec150..3916ee916 100644 --- a/plugins/channeltx/modais/aismodwebapiadapter.cpp +++ b/plugins/channeltx/modais/aismodwebapiadapter.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modais/aismodwebapiadapter.h b/plugins/channeltx/modais/aismodwebapiadapter.h index ed04b918a..5a2aa8088 100644 --- a/plugins/channeltx/modais/aismodwebapiadapter.h +++ b/plugins/channeltx/modais/aismodwebapiadapter.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modam/ammod.cpp b/plugins/channeltx/modam/ammod.cpp index ecd400fe1..9bb0060b1 100644 --- a/plugins/channeltx/modam/ammod.cpp +++ b/plugins/channeltx/modam/ammod.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammod.h b/plugins/channeltx/modam/ammod.h index 27df0dcc6..647b4a446 100644 --- a/plugins/channeltx/modam/ammod.h +++ b/plugins/channeltx/modam/ammod.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammodbaseband.cpp b/plugins/channeltx/modam/ammodbaseband.cpp index 2d72f7962..605b2f09e 100644 --- a/plugins/channeltx/modam/ammodbaseband.cpp +++ b/plugins/channeltx/modam/ammodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammodbaseband.h b/plugins/channeltx/modam/ammodbaseband.h index 9f526170b..ef2bde946 100644 --- a/plugins/channeltx/modam/ammodbaseband.h +++ b/plugins/channeltx/modam/ammodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammodgui.cpp b/plugins/channeltx/modam/ammodgui.cpp index d648e1e47..33c5f42b5 100644 --- a/plugins/channeltx/modam/ammodgui.cpp +++ b/plugins/channeltx/modam/ammodgui.cpp @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modam/ammodgui.h b/plugins/channeltx/modam/ammodgui.h index 3bb9a4600..7c4220c52 100644 --- a/plugins/channeltx/modam/ammodgui.h +++ b/plugins/channeltx/modam/ammodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modam/ammodplugin.cpp b/plugins/channeltx/modam/ammodplugin.cpp index 4d9d8314e..5a8cd4ceb 100644 --- a/plugins/channeltx/modam/ammodplugin.cpp +++ b/plugins/channeltx/modam/ammodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modam/ammodplugin.h b/plugins/channeltx/modam/ammodplugin.h index bf8142aac..25feb8fe3 100644 --- a/plugins/channeltx/modam/ammodplugin.h +++ b/plugins/channeltx/modam/ammodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modam/ammodsettings.cpp b/plugins/channeltx/modam/ammodsettings.cpp index aa87ed811..061ec3b45 100644 --- a/plugins/channeltx/modam/ammodsettings.cpp +++ b/plugins/channeltx/modam/ammodsettings.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modam/ammodsettings.h b/plugins/channeltx/modam/ammodsettings.h index 78c2839e2..be4c16c13 100644 --- a/plugins/channeltx/modam/ammodsettings.h +++ b/plugins/channeltx/modam/ammodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modam/ammodsource.cpp b/plugins/channeltx/modam/ammodsource.cpp index fa31baef6..b25e5e343 100644 --- a/plugins/channeltx/modam/ammodsource.cpp +++ b/plugins/channeltx/modam/ammodsource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammodsource.h b/plugins/channeltx/modam/ammodsource.h index 5cd4c1669..f10ef226e 100644 --- a/plugins/channeltx/modam/ammodsource.h +++ b/plugins/channeltx/modam/ammodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modam/ammodwebapiadapter.cpp b/plugins/channeltx/modam/ammodwebapiadapter.cpp index 8cf59cf67..d65d40e12 100644 --- a/plugins/channeltx/modam/ammodwebapiadapter.cpp +++ b/plugins/channeltx/modam/ammodwebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modam/ammodwebapiadapter.h b/plugins/channeltx/modam/ammodwebapiadapter.h index 6a4e55aac..f4c276227 100644 --- a/plugins/channeltx/modam/ammodwebapiadapter.h +++ b/plugins/channeltx/modam/ammodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmod.cpp b/plugins/channeltx/modatv/atvmod.cpp index 705b55120..0abc135d1 100644 --- a/plugins/channeltx/modatv/atvmod.cpp +++ b/plugins/channeltx/modatv/atvmod.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmod.h b/plugins/channeltx/modatv/atvmod.h index 4577c0586..7f8f04c49 100644 --- a/plugins/channeltx/modatv/atvmod.h +++ b/plugins/channeltx/modatv/atvmod.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodbaseband.cpp b/plugins/channeltx/modatv/atvmodbaseband.cpp index d3b816bd7..38a499031 100644 --- a/plugins/channeltx/modatv/atvmodbaseband.cpp +++ b/plugins/channeltx/modatv/atvmodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodbaseband.h b/plugins/channeltx/modatv/atvmodbaseband.h index 72e2faef9..68dca07c9 100644 --- a/plugins/channeltx/modatv/atvmodbaseband.h +++ b/plugins/channeltx/modatv/atvmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodgui.cpp b/plugins/channeltx/modatv/atvmodgui.cpp index 950e060d3..1c27df55b 100644 --- a/plugins/channeltx/modatv/atvmodgui.cpp +++ b/plugins/channeltx/modatv/atvmodgui.cpp @@ -1,5 +1,11 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodgui.h b/plugins/channeltx/modatv/atvmodgui.h index dcd68af47..f2f7ee676 100644 --- a/plugins/channeltx/modatv/atvmodgui.h +++ b/plugins/channeltx/modatv/atvmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modatv/atvmodplugin.cpp b/plugins/channeltx/modatv/atvmodplugin.cpp index b8a9739d0..c36c35b64 100644 --- a/plugins/channeltx/modatv/atvmodplugin.cpp +++ b/plugins/channeltx/modatv/atvmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodplugin.h b/plugins/channeltx/modatv/atvmodplugin.h index 043ea0c61..085f5d73e 100644 --- a/plugins/channeltx/modatv/atvmodplugin.h +++ b/plugins/channeltx/modatv/atvmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodreport.cpp b/plugins/channeltx/modatv/atvmodreport.cpp index d358ce935..c3fff3aa6 100644 --- a/plugins/channeltx/modatv/atvmodreport.cpp +++ b/plugins/channeltx/modatv/atvmodreport.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // // // // 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 // @@ -26,4 +28,4 @@ ATVModReport::ATVModReport() { } ATVModReport::~ATVModReport() -{ } \ No newline at end of file +{ } diff --git a/plugins/channeltx/modatv/atvmodreport.h b/plugins/channeltx/modatv/atvmodreport.h index ec3a6594c..ad653af1d 100644 --- a/plugins/channeltx/modatv/atvmodreport.h +++ b/plugins/channeltx/modatv/atvmodreport.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodsettings.cpp b/plugins/channeltx/modatv/atvmodsettings.cpp index c3176cfa6..45ef5cbde 100644 --- a/plugins/channeltx/modatv/atvmodsettings.cpp +++ b/plugins/channeltx/modatv/atvmodsettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modatv/atvmodsettings.h b/plugins/channeltx/modatv/atvmodsettings.h index 59984d633..07276d9de 100644 --- a/plugins/channeltx/modatv/atvmodsettings.h +++ b/plugins/channeltx/modatv/atvmodsettings.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modatv/atvmodsource.cpp b/plugins/channeltx/modatv/atvmodsource.cpp index fdd6ac711..0a8f50e97 100644 --- a/plugins/channeltx/modatv/atvmodsource.cpp +++ b/plugins/channeltx/modatv/atvmodsource.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Vort // +// Copyright (C) 2020 Sergei I. Korolev // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodsource.h b/plugins/channeltx/modatv/atvmodsource.h index 17d369b8a..c28f9d712 100644 --- a/plugins/channeltx/modatv/atvmodsource.h +++ b/plugins/channeltx/modatv/atvmodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 CRD716 // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodwebapiadapter.cpp b/plugins/channeltx/modatv/atvmodwebapiadapter.cpp index 36ecd28d5..d177a9fe6 100644 --- a/plugins/channeltx/modatv/atvmodwebapiadapter.cpp +++ b/plugins/channeltx/modatv/atvmodwebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modatv/atvmodwebapiadapter.h b/plugins/channeltx/modatv/atvmodwebapiadapter.h index 6dc0ed0f8..9a825f410 100644 --- a/plugins/channeltx/modatv/atvmodwebapiadapter.h +++ b/plugins/channeltx/modatv/atvmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmod.cpp b/plugins/channeltx/modchirpchat/chirpchatmod.cpp index 91c270021..6315542fd 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmod.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmod.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmod.h b/plugins/channeltx/modchirpchat/chirpchatmod.h index 490b9a666..c1f8bc22a 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmod.h +++ b/plugins/channeltx/modchirpchat/chirpchatmod.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodbaseband.cpp b/plugins/channeltx/modchirpchat/chirpchatmodbaseband.cpp index bf6acee63..bfbb72257 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodbaseband.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodbaseband.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodbaseband.h b/plugins/channeltx/modchirpchat/chirpchatmodbaseband.h index 9a5277a77..81049962c 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodbaseband.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencoder.cpp b/plugins/channeltx/modchirpchat/chirpchatmodencoder.cpp index eb2c3ce5d..71b68180c 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencoder.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodencoder.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // // // // 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 // @@ -91,4 +91,4 @@ void ChirpChatModEncoder::encodeBytesLoRa(const QByteArray& bytes, std::vector // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.cpp b/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.cpp index d4258fd49..6bb5f834f 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.h b/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.h index 6c83acdc1..12c5f23f6 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodencoderascii.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.cpp b/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.cpp index 6f44f9fab..29c1fa26e 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // // // // Inspired by: https://github.com/myriadrf/LoRa-SDR // // // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.h b/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.h index 6b47a5354..e952f8eab 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodencoderlora.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // // // // Inspired by: https://github.com/myriadrf/LoRa-SDR // // // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencodertty.cpp b/plugins/channeltx/modchirpchat/chirpchatmodencodertty.cpp index 490cc9e01..1c4c2a68f 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencodertty.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodencodertty.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodencodertty.h b/plugins/channeltx/modchirpchat/chirpchatmodencodertty.h index ede968710..68256bd27 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodencodertty.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodencodertty.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // @@ -39,4 +41,4 @@ private: static const char ttyFigures = 0x1b; }; -#endif // PLUGINS_CHANNELTX_MODCHIRPCHAT_CHIRPCHATMODENCODERTTY_H_ \ No newline at end of file +#endif // PLUGINS_CHANNELTX_MODCHIRPCHAT_CHIRPCHATMODENCODERTTY_H_ diff --git a/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp b/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp index 6e2fccc79..f7215e70d 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodgui.h b/plugins/channeltx/modchirpchat/chirpchatmodgui.h index 5390c3967..8e32a1022 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodgui.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2022 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodplugin.cpp b/plugins/channeltx/modchirpchat/chirpchatmodplugin.cpp index 7456dbe52..46a292abb 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodplugin.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodplugin.h b/plugins/channeltx/modchirpchat/chirpchatmodplugin.h index a9d9bd44e..f8753d8de 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodplugin.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodsettings.cpp b/plugins/channeltx/modchirpchat/chirpchatmodsettings.cpp index e2a37cd75..2592f4676 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodsettings.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodsettings.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodsettings.h b/plugins/channeltx/modchirpchat/chirpchatmodsettings.h index 15e46323e..263fddb13 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodsettings.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodsource.cpp b/plugins/channeltx/modchirpchat/chirpchatmodsource.cpp index d09b2df8f..900f1b4e1 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodsource.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodsource.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodsource.h b/plugins/channeltx/modchirpchat/chirpchatmodsource.h index aa8edc4a8..aa1e6a983 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodsource.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodsource.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.cpp b/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.cpp index bf6d94d89..65f186be7 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.h b/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.h index af00be7be..d17ff8ce5 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/moddatv/dvb-s/dvb-s.cpp b/plugins/channeltx/moddatv/dvb-s/dvb-s.cpp index c3307e831..640d27e57 100644 --- a/plugins/channeltx/moddatv/dvb-s/dvb-s.cpp +++ b/plugins/channeltx/moddatv/dvb-s/dvb-s.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2021 Jon Beniston, M7RCE // +// 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 // diff --git a/plugins/channeltx/moddatv/dvb-s/dvb-s.h b/plugins/channeltx/moddatv/dvb-s/dvb-s.h index cd195c838..54cfc906d 100644 --- a/plugins/channeltx/moddatv/dvb-s/dvb-s.h +++ b/plugins/channeltx/moddatv/dvb-s/dvb-s.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2021 Jon Beniston, M7RCE // +// 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 // diff --git a/plugins/channeltx/moddatv/dvb-s2/DVB2.cpp b/plugins/channeltx/moddatv/dvb-s2/DVB2.cpp index 7c5ca39a7..6d8a47ec5 100644 --- a/plugins/channeltx/moddatv/dvb-s2/DVB2.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/DVB2.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "memory.h" #include "DVB2.h" @@ -250,7 +266,7 @@ int DVB2::next_ts_frame_base( u8 *ts ) } } } - // Need to send a new transport packet + // Need to send a new transport packet res = add_ts_frame_base( ts ); if( res ) m_dnp = 0;// Clear the DNP counter // return whether it is time to transmit a new frame diff --git a/plugins/channeltx/moddatv/dvb-s2/DVB2.h b/plugins/channeltx/moddatv/dvb-s2/DVB2.h index befb66cc5..0d71b00c1 100644 --- a/plugins/channeltx/moddatv/dvb-s2/DVB2.h +++ b/plugins/channeltx/moddatv/dvb-s2/DVB2.h @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021-2022 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 DVB2_H #define DVB2_H #include diff --git a/plugins/channeltx/moddatv/dvb-s2/DVBS2.cpp b/plugins/channeltx/moddatv/dvb-s2/DVBS2.cpp index 8fef268f6..9d0ec765e 100644 --- a/plugins/channeltx/moddatv/dvb-s2/DVBS2.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/DVBS2.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "memory.h" #include "DVBS2.h" diff --git a/plugins/channeltx/moddatv/dvb-s2/DVBS2.h b/plugins/channeltx/moddatv/dvb-s2/DVBS2.h index 4faaef400..2bcf4a87c 100644 --- a/plugins/channeltx/moddatv/dvb-s2/DVBS2.h +++ b/plugins/channeltx/moddatv/dvb-s2/DVBS2.h @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVB2.h" #ifndef __SCMPLX__ @@ -51,7 +67,7 @@ private: void end_of_frame_actions(void); public: - int is_valid(int mod, int coderate); + int is_valid(int mod, int coderate); double s2_get_efficiency( void ); void physical(void); int s2_set_configure( DVB2FrameFormat *f ); diff --git a/plugins/channeltx/moddatv/dvb-s2/dvb2_bbheader.cpp b/plugins/channeltx/moddatv/dvb-s2/dvb2_bbheader.cpp index eb90bab7f..86c427a40 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvb2_bbheader.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvb2_bbheader.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVB2.h" #include "memory.h" // diff --git a/plugins/channeltx/moddatv/dvb-s2/dvb2_bch.cpp b/plugins/channeltx/moddatv/dvb-s2/dvb2_bch.cpp index 6326cdccc..4be67b6f5 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvb2_bch.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvb2_bch.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 . // +/////////////////////////////////////////////////////////////////////////////////////// // polymult.cpp : Defines the entry point for the console application. // #include "stdio.h" diff --git a/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_encode.cpp b/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_encode.cpp index 36224d224..a92b41a51 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_encode.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_encode.cpp @@ -1,22 +1,38 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "memory.h" #include "DVB2.h" /* -for( int row = 0; row < rows; row++ ) -{ - for( int n = 0; n < 360; n++ ) - { - for( int col = 1; col <= table_name[row][0]; col++ ) - { - // parity bit location, position from start of block - m_ldpc_encode.p[index] = m_format.kldpc + (table_name[row][col] + (n*m_format.q_val))%pbits; - // data bit to be accumulated - m_ldpc_encode.d[index] = im; - index++; - } - im++; - } -} +for( int row = 0; row < rows; row++ ) +{ + for( int n = 0; n < 360; n++ ) + { + for( int col = 1; col <= table_name[row][0]; col++ ) + { + // parity bit location, position from start of block + m_ldpc_encode.p[index] = m_format.kldpc + (table_name[row][col] + (n*m_format.q_val))%pbits; + // data bit to be accumulated + m_ldpc_encode.d[index] = im; + index++; + } + im++; + } +} */ #define LDPC_BF( TABLE_NAME, ROWS ) \ @@ -32,7 +48,7 @@ for( int row = 0; row < ROWS; row++ ) \ } \ im++; \ } \ -} +} /* // diff --git a/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_tables.cpp b/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_tables.cpp index 58fe13cb4..87f49e569 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_tables.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvb2_ldpc_tables.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVB2.h" const int DVB2::ldpc_tab_1_4N[45][13]= diff --git a/plugins/channeltx/moddatv/dvb-s2/dvb2_scrambler.cpp b/plugins/channeltx/moddatv/dvb-s2/dvb2_scrambler.cpp index e5537be1e..9e8136afe 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvb2_scrambler.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvb2_scrambler.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVB2.h" void DVB2::init_bb_randomiser(void) diff --git a/plugins/channeltx/moddatv/dvb-s2/dvbs2_interleave.cpp b/plugins/channeltx/moddatv/dvb-s2/dvbs2_interleave.cpp index 819a9e008..2205a064b 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvbs2_interleave.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvbs2_interleave.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "memory.h" #include "DVBS2.h" // diff --git a/plugins/channeltx/moddatv/dvb-s2/dvbs2_modulator.cpp b/plugins/channeltx/moddatv/dvb-s2/dvbs2_modulator.cpp index 189ca9556..d16901713 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvbs2_modulator.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvbs2_modulator.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "math.h" #include "DVBS2.h" diff --git a/plugins/channeltx/moddatv/dvb-s2/dvbs2_physical.cpp b/plugins/channeltx/moddatv/dvb-s2/dvbs2_physical.cpp index a054a2925..e2a33d780 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvbs2_physical.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvbs2_physical.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVBS2.h" void DVBS2::b_64_7_code( unsigned char in, int *out ) diff --git a/plugins/channeltx/moddatv/dvb-s2/dvbs2_scrambler.cpp b/plugins/channeltx/moddatv/dvb-s2/dvbs2_scrambler.cpp index 21bf6e5c9..ac67d1115 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvbs2_scrambler.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvbs2_scrambler.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVBS2.h" int DVBS2::parity_chk( long a, long b) diff --git a/plugins/channeltx/moddatv/dvb-s2/dvbs2_tables.cpp b/plugins/channeltx/moddatv/dvb-s2/dvbs2_tables.cpp index e05861812..84017712b 100644 --- a/plugins/channeltx/moddatv/dvb-s2/dvbs2_tables.cpp +++ b/plugins/channeltx/moddatv/dvb-s2/dvbs2_tables.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// 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 "DVBS2.h" // // Modcod error correction diff --git a/plugins/channeltx/modfreedv/freedvmod.cpp b/plugins/channeltx/modfreedv/freedvmod.cpp index 88a01ac86..2fe797d5c 100644 --- a/plugins/channeltx/modfreedv/freedvmod.cpp +++ b/plugins/channeltx/modfreedv/freedvmod.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmod.h b/plugins/channeltx/modfreedv/freedvmod.h index 905702deb..d050e219e 100644 --- a/plugins/channeltx/modfreedv/freedvmod.h +++ b/plugins/channeltx/modfreedv/freedvmod.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodbaseband.cpp b/plugins/channeltx/modfreedv/freedvmodbaseband.cpp index 7f64a18b3..e3a077635 100644 --- a/plugins/channeltx/modfreedv/freedvmodbaseband.cpp +++ b/plugins/channeltx/modfreedv/freedvmodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodbaseband.h b/plugins/channeltx/modfreedv/freedvmodbaseband.h index b5900e6e4..b2f57c608 100644 --- a/plugins/channeltx/modfreedv/freedvmodbaseband.h +++ b/plugins/channeltx/modfreedv/freedvmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodgui.cpp b/plugins/channeltx/modfreedv/freedvmodgui.cpp index e20211628..2a7ff5de2 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.cpp +++ b/plugins/channeltx/modfreedv/freedvmodgui.cpp @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodgui.h b/plugins/channeltx/modfreedv/freedvmodgui.h index 7faf2584d..3e404c6b9 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.h +++ b/plugins/channeltx/modfreedv/freedvmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodplugin.cpp b/plugins/channeltx/modfreedv/freedvmodplugin.cpp index b83c58296..759d537f1 100644 --- a/plugins/channeltx/modfreedv/freedvmodplugin.cpp +++ b/plugins/channeltx/modfreedv/freedvmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodplugin.h b/plugins/channeltx/modfreedv/freedvmodplugin.h index 7af5e9c00..76a5f6562 100644 --- a/plugins/channeltx/modfreedv/freedvmodplugin.h +++ b/plugins/channeltx/modfreedv/freedvmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodsettings.cpp b/plugins/channeltx/modfreedv/freedvmodsettings.cpp index f2b1ea565..3eddae21c 100644 --- a/plugins/channeltx/modfreedv/freedvmodsettings.cpp +++ b/plugins/channeltx/modfreedv/freedvmodsettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodsettings.h b/plugins/channeltx/modfreedv/freedvmodsettings.h index 4f7bcf96d..4c73e2efd 100644 --- a/plugins/channeltx/modfreedv/freedvmodsettings.h +++ b/plugins/channeltx/modfreedv/freedvmodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodsource.cpp b/plugins/channeltx/modfreedv/freedvmodsource.cpp index 37411b9af..6298b6595 100644 --- a/plugins/channeltx/modfreedv/freedvmodsource.cpp +++ b/plugins/channeltx/modfreedv/freedvmodsource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodsource.h b/plugins/channeltx/modfreedv/freedvmodsource.h index 64085b402..e1e9426d7 100644 --- a/plugins/channeltx/modfreedv/freedvmodsource.h +++ b/plugins/channeltx/modfreedv/freedvmodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodwebapiadapter.cpp b/plugins/channeltx/modfreedv/freedvmodwebapiadapter.cpp index 88ecce739..b27dbce1e 100644 --- a/plugins/channeltx/modfreedv/freedvmodwebapiadapter.cpp +++ b/plugins/channeltx/modfreedv/freedvmodwebapiadapter.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modfreedv/freedvmodwebapiadapter.h b/plugins/channeltx/modfreedv/freedvmodwebapiadapter.h index bb7965b4e..1959b4192 100644 --- a/plugins/channeltx/modfreedv/freedvmodwebapiadapter.h +++ b/plugins/channeltx/modfreedv/freedvmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modm17/m17mod.cpp b/plugins/channeltx/modm17/m17mod.cpp index 293ce3b60..b7c4d8a52 100644 --- a/plugins/channeltx/modm17/m17mod.cpp +++ b/plugins/channeltx/modm17/m17mod.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modm17/m17mod.h b/plugins/channeltx/modm17/m17mod.h index 2a5bb7180..8122f4f3c 100644 --- a/plugins/channeltx/modm17/m17mod.h +++ b/plugins/channeltx/modm17/m17mod.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modax25.cpp b/plugins/channeltx/modm17/m17modax25.cpp index b0ec8d122..9f70176b4 100644 --- a/plugins/channeltx/modm17/m17modax25.cpp +++ b/plugins/channeltx/modm17/m17modax25.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modax25.h b/plugins/channeltx/modm17/m17modax25.h index 624f6c81b..4e5227855 100644 --- a/plugins/channeltx/modm17/m17modax25.h +++ b/plugins/channeltx/modm17/m17modax25.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modm17/m17modbaseband.cpp b/plugins/channeltx/modm17/m17modbaseband.cpp index 067463a61..107a58e46 100644 --- a/plugins/channeltx/modm17/m17modbaseband.cpp +++ b/plugins/channeltx/modm17/m17modbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modbaseband.h b/plugins/channeltx/modm17/m17modbaseband.h index c0cc26661..7f48afc51 100644 --- a/plugins/channeltx/modm17/m17modbaseband.h +++ b/plugins/channeltx/modm17/m17modbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modm17/m17moddecimator.cpp b/plugins/channeltx/modm17/m17moddecimator.cpp index 87784dee6..a59bfa729 100644 --- a/plugins/channeltx/modm17/m17moddecimator.cpp +++ b/plugins/channeltx/modm17/m17moddecimator.cpp @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// // +// 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 "m17moddecimator.h" diff --git a/plugins/channeltx/modm17/m17moddecimator.h b/plugins/channeltx/modm17/m17moddecimator.h index e29ea7852..19a29b3ab 100644 --- a/plugins/channeltx/modm17/m17moddecimator.h +++ b/plugins/channeltx/modm17/m17moddecimator.h @@ -1,3 +1,19 @@ +/////////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// // +// 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 . // +/////////////////////////////////////////////////////////////////////////////////////// // Polyphase decimation filter. // // Convert an oversampled audio stream to non-oversampled. Uses a diff --git a/plugins/channeltx/modm17/m17modfifo.cpp b/plugins/channeltx/modm17/m17modfifo.cpp index 1df4abb11..af1b7eafa 100644 --- a/plugins/channeltx/modm17/m17modfifo.cpp +++ b/plugins/channeltx/modm17/m17modfifo.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modfifo.h b/plugins/channeltx/modm17/m17modfifo.h index 9b59c5d4a..65b4c3fe3 100644 --- a/plugins/channeltx/modm17/m17modfifo.h +++ b/plugins/channeltx/modm17/m17modfifo.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019, 2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modgui.cpp b/plugins/channeltx/modm17/m17modgui.cpp index 68b7fcc61..7c31e3e07 100644 --- a/plugins/channeltx/modm17/m17modgui.cpp +++ b/plugins/channeltx/modm17/m17modgui.cpp @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modm17/m17modgui.h b/plugins/channeltx/modm17/m17modgui.h index 5ee33aa96..01f8b88de 100644 --- a/plugins/channeltx/modm17/m17modgui.h +++ b/plugins/channeltx/modm17/m17modgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modm17/m17modplugin.cpp b/plugins/channeltx/modm17/m17modplugin.cpp index 268326d72..7dcead0ef 100644 --- a/plugins/channeltx/modm17/m17modplugin.cpp +++ b/plugins/channeltx/modm17/m17modplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modplugin.h b/plugins/channeltx/modm17/m17modplugin.h index 05b25bf42..efdaa1cc1 100644 --- a/plugins/channeltx/modm17/m17modplugin.h +++ b/plugins/channeltx/modm17/m17modplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modprocessor.cpp b/plugins/channeltx/modm17/m17modprocessor.cpp index bd200adcf..79da4e6b5 100644 --- a/plugins/channeltx/modm17/m17modprocessor.cpp +++ b/plugins/channeltx/modm17/m17modprocessor.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modm17/m17modprocessor.h b/plugins/channeltx/modm17/m17modprocessor.h index 94c7f2989..dd638a71e 100644 --- a/plugins/channeltx/modm17/m17modprocessor.h +++ b/plugins/channeltx/modm17/m17modprocessor.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2019 Davide Gerhard // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modsettings.cpp b/plugins/channeltx/modm17/m17modsettings.cpp index ba58a521a..87c91fc77 100644 --- a/plugins/channeltx/modm17/m17modsettings.cpp +++ b/plugins/channeltx/modm17/m17modsettings.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modm17/m17modsettings.h b/plugins/channeltx/modm17/m17modsettings.h index e86492828..0bb98e240 100644 --- a/plugins/channeltx/modm17/m17modsettings.h +++ b/plugins/channeltx/modm17/m17modsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modm17/m17modsource.cpp b/plugins/channeltx/modm17/m17modsource.cpp index 7a76d4e2b..d3bb6418f 100644 --- a/plugins/channeltx/modm17/m17modsource.cpp +++ b/plugins/channeltx/modm17/m17modsource.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modm17/m17modsource.h b/plugins/channeltx/modm17/m17modsource.h index d2257ca57..f54c87074 100644 --- a/plugins/channeltx/modm17/m17modsource.h +++ b/plugins/channeltx/modm17/m17modsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modwebapiadapter.cpp b/plugins/channeltx/modm17/m17modwebapiadapter.cpp index 829fd378f..208d3442a 100644 --- a/plugins/channeltx/modm17/m17modwebapiadapter.cpp +++ b/plugins/channeltx/modm17/m17modwebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modm17/m17modwebapiadapter.h b/plugins/channeltx/modm17/m17modwebapiadapter.h index 00ca96109..c6904f44e 100644 --- a/plugins/channeltx/modm17/m17modwebapiadapter.h +++ b/plugins/channeltx/modm17/m17modwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2022 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019, 2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmod.cpp b/plugins/channeltx/modnfm/nfmmod.cpp index 967e02033..fe5be17ca 100644 --- a/plugins/channeltx/modnfm/nfmmod.cpp +++ b/plugins/channeltx/modnfm/nfmmod.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmod.h b/plugins/channeltx/modnfm/nfmmod.h index fcac00352..6c0d9de67 100644 --- a/plugins/channeltx/modnfm/nfmmod.h +++ b/plugins/channeltx/modnfm/nfmmod.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodbaseband.cpp b/plugins/channeltx/modnfm/nfmmodbaseband.cpp index 4804c04f3..8bfbc0833 100644 --- a/plugins/channeltx/modnfm/nfmmodbaseband.cpp +++ b/plugins/channeltx/modnfm/nfmmodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodbaseband.h b/plugins/channeltx/modnfm/nfmmodbaseband.h index 925c2040f..d37973d42 100644 --- a/plugins/channeltx/modnfm/nfmmodbaseband.h +++ b/plugins/channeltx/modnfm/nfmmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmoddcs.cpp b/plugins/channeltx/modnfm/nfmmoddcs.cpp index e54037063..8a61e92c9 100644 --- a/plugins/channeltx/modnfm/nfmmoddcs.cpp +++ b/plugins/channeltx/modnfm/nfmmoddcs.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmoddcs.h b/plugins/channeltx/modnfm/nfmmoddcs.h index 10dae1346..a7934aeb7 100644 --- a/plugins/channeltx/modnfm/nfmmoddcs.h +++ b/plugins/channeltx/modnfm/nfmmoddcs.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019, 2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodgui.cpp b/plugins/channeltx/modnfm/nfmmodgui.cpp index ea50425d5..5fc1b512e 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.cpp +++ b/plugins/channeltx/modnfm/nfmmodgui.cpp @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modnfm/nfmmodgui.h b/plugins/channeltx/modnfm/nfmmodgui.h index 418ac476e..7061b234b 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.h +++ b/plugins/channeltx/modnfm/nfmmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modnfm/nfmmodplugin.cpp b/plugins/channeltx/modnfm/nfmmodplugin.cpp index 665e4240f..34ab55cdc 100644 --- a/plugins/channeltx/modnfm/nfmmodplugin.cpp +++ b/plugins/channeltx/modnfm/nfmmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodplugin.h b/plugins/channeltx/modnfm/nfmmodplugin.h index 98afc124e..59cf71341 100644 --- a/plugins/channeltx/modnfm/nfmmodplugin.h +++ b/plugins/channeltx/modnfm/nfmmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodsettings.cpp b/plugins/channeltx/modnfm/nfmmodsettings.cpp index 17432933d..21594c2b0 100644 --- a/plugins/channeltx/modnfm/nfmmodsettings.cpp +++ b/plugins/channeltx/modnfm/nfmmodsettings.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modnfm/nfmmodsettings.h b/plugins/channeltx/modnfm/nfmmodsettings.h index 3bce7258f..c090ddf40 100644 --- a/plugins/channeltx/modnfm/nfmmodsettings.h +++ b/plugins/channeltx/modnfm/nfmmodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modnfm/nfmmodsource.cpp b/plugins/channeltx/modnfm/nfmmodsource.cpp index 4b07e1bde..84476a172 100644 --- a/plugins/channeltx/modnfm/nfmmodsource.cpp +++ b/plugins/channeltx/modnfm/nfmmodsource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodsource.h b/plugins/channeltx/modnfm/nfmmodsource.h index 553d7bc6f..ac15b5639 100644 --- a/plugins/channeltx/modnfm/nfmmodsource.h +++ b/plugins/channeltx/modnfm/nfmmodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodwebapiadapter.cpp b/plugins/channeltx/modnfm/nfmmodwebapiadapter.cpp index 115755e3e..da7a20ea0 100644 --- a/plugins/channeltx/modnfm/nfmmodwebapiadapter.cpp +++ b/plugins/channeltx/modnfm/nfmmodwebapiadapter.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modnfm/nfmmodwebapiadapter.h b/plugins/channeltx/modnfm/nfmmodwebapiadapter.h index b8f3874c6..5e358dd1d 100644 --- a/plugins/channeltx/modnfm/nfmmodwebapiadapter.h +++ b/plugins/channeltx/modnfm/nfmmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmod.cpp b/plugins/channeltx/modpacket/packetmod.cpp index 0979d2808..8b1cb967d 100644 --- a/plugins/channeltx/modpacket/packetmod.cpp +++ b/plugins/channeltx/modpacket/packetmod.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmod.h b/plugins/channeltx/modpacket/packetmod.h index 7a2c28d2a..ba006f920 100644 --- a/plugins/channeltx/modpacket/packetmod.h +++ b/plugins/channeltx/modpacket/packetmod.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodbaseband.cpp b/plugins/channeltx/modpacket/packetmodbaseband.cpp index 553c18eb3..740da72fc 100644 --- a/plugins/channeltx/modpacket/packetmodbaseband.cpp +++ b/plugins/channeltx/modpacket/packetmodbaseband.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodbaseband.h b/plugins/channeltx/modpacket/packetmodbaseband.h index 7147c1ed1..44956c907 100644 --- a/plugins/channeltx/modpacket/packetmodbaseband.h +++ b/plugins/channeltx/modpacket/packetmodbaseband.h @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodbpfdialog.cpp b/plugins/channeltx/modpacket/packetmodbpfdialog.cpp index 0f7032f9c..568c7f31a 100644 --- a/plugins/channeltx/modpacket/packetmodbpfdialog.cpp +++ b/plugins/channeltx/modpacket/packetmodbpfdialog.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodbpfdialog.h b/plugins/channeltx/modpacket/packetmodbpfdialog.h index 7746228b3..476c4d174 100644 --- a/plugins/channeltx/modpacket/packetmodbpfdialog.h +++ b/plugins/channeltx/modpacket/packetmodbpfdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodgui.cpp b/plugins/channeltx/modpacket/packetmodgui.cpp index f74c2b52a..58ea64c04 100644 --- a/plugins/channeltx/modpacket/packetmodgui.cpp +++ b/plugins/channeltx/modpacket/packetmodgui.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2023 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodgui.h b/plugins/channeltx/modpacket/packetmodgui.h index d3eb37454..e8a7de30b 100644 --- a/plugins/channeltx/modpacket/packetmodgui.h +++ b/plugins/channeltx/modpacket/packetmodgui.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2022 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 // diff --git a/plugins/channeltx/modpacket/packetmodplugin.cpp b/plugins/channeltx/modpacket/packetmodplugin.cpp index 2cf3ebfd5..f7eb92913 100644 --- a/plugins/channeltx/modpacket/packetmodplugin.cpp +++ b/plugins/channeltx/modpacket/packetmodplugin.cpp @@ -1,6 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodplugin.h b/plugins/channeltx/modpacket/packetmodplugin.h index c3bd071cb..a6fecdad8 100644 --- a/plugins/channeltx/modpacket/packetmodplugin.h +++ b/plugins/channeltx/modpacket/packetmodplugin.h @@ -1,6 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodrepeatdialog.cpp b/plugins/channeltx/modpacket/packetmodrepeatdialog.cpp index 3a9106982..e85813e36 100644 --- a/plugins/channeltx/modpacket/packetmodrepeatdialog.cpp +++ b/plugins/channeltx/modpacket/packetmodrepeatdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodrepeatdialog.h b/plugins/channeltx/modpacket/packetmodrepeatdialog.h index 2398d5787..fe5d15449 100644 --- a/plugins/channeltx/modpacket/packetmodrepeatdialog.h +++ b/plugins/channeltx/modpacket/packetmodrepeatdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2016, 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodsettings.cpp b/plugins/channeltx/modpacket/packetmodsettings.cpp index 5939717f2..408365525 100644 --- a/plugins/channeltx/modpacket/packetmodsettings.cpp +++ b/plugins/channeltx/modpacket/packetmodsettings.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Jon Beniston, M7RCE // +// Copyright (C) 2021-2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodsettings.h b/plugins/channeltx/modpacket/packetmodsettings.h index 25d79ad52..57fde47a1 100644 --- a/plugins/channeltx/modpacket/packetmodsettings.h +++ b/plugins/channeltx/modpacket/packetmodsettings.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modpacket/packetmodsource.cpp b/plugins/channeltx/modpacket/packetmodsource.cpp index 7cb5465ec..63ae3b7fe 100644 --- a/plugins/channeltx/modpacket/packetmodsource.cpp +++ b/plugins/channeltx/modpacket/packetmodsource.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modpacket/packetmodsource.h b/plugins/channeltx/modpacket/packetmodsource.h index c7e3aa9fc..46ff742a1 100644 --- a/plugins/channeltx/modpacket/packetmodsource.h +++ b/plugins/channeltx/modpacket/packetmodsource.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-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 // diff --git a/plugins/channeltx/modpacket/packetmodtxsettingsdialog.cpp b/plugins/channeltx/modpacket/packetmodtxsettingsdialog.cpp index b4564e5c0..076d0b39e 100644 --- a/plugins/channeltx/modpacket/packetmodtxsettingsdialog.cpp +++ b/plugins/channeltx/modpacket/packetmodtxsettingsdialog.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodtxsettingsdialog.h b/plugins/channeltx/modpacket/packetmodtxsettingsdialog.h index 9ef800408..52d6d3dbc 100644 --- a/plugins/channeltx/modpacket/packetmodtxsettingsdialog.h +++ b/plugins/channeltx/modpacket/packetmodtxsettingsdialog.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2016-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodwebapiadapter.cpp b/plugins/channeltx/modpacket/packetmodwebapiadapter.cpp index f7ca75bd4..a659d8568 100644 --- a/plugins/channeltx/modpacket/packetmodwebapiadapter.cpp +++ b/plugins/channeltx/modpacket/packetmodwebapiadapter.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpacket/packetmodwebapiadapter.h b/plugins/channeltx/modpacket/packetmodwebapiadapter.h index bb13b137c..64ce4e02b 100644 --- a/plugins/channeltx/modpacket/packetmodwebapiadapter.h +++ b/plugins/channeltx/modpacket/packetmodwebapiadapter.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 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 // diff --git a/plugins/channeltx/modpsk31/psk31mod.cpp b/plugins/channeltx/modpsk31/psk31mod.cpp index 5b733156d..e81de9484 100644 --- a/plugins/channeltx/modpsk31/psk31mod.cpp +++ b/plugins/channeltx/modpsk31/psk31mod.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31mod.h b/plugins/channeltx/modpsk31/psk31mod.h index 9fb4e1cee..58b41de77 100644 --- a/plugins/channeltx/modpsk31/psk31mod.h +++ b/plugins/channeltx/modpsk31/psk31mod.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpsk31/psk31modbaseband.cpp b/plugins/channeltx/modpsk31/psk31modbaseband.cpp index d0f349872..691414567 100644 --- a/plugins/channeltx/modpsk31/psk31modbaseband.cpp +++ b/plugins/channeltx/modpsk31/psk31modbaseband.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpsk31/psk31modbaseband.h b/plugins/channeltx/modpsk31/psk31modbaseband.h index d56d23b34..89ea2be40 100644 --- a/plugins/channeltx/modpsk31/psk31modbaseband.h +++ b/plugins/channeltx/modpsk31/psk31modbaseband.h @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modpsk31/psk31modgui.cpp b/plugins/channeltx/modpsk31/psk31modgui.cpp index 7438c4c21..9f00fabfd 100644 --- a/plugins/channeltx/modpsk31/psk31modgui.cpp +++ b/plugins/channeltx/modpsk31/psk31modgui.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modgui.h b/plugins/channeltx/modpsk31/psk31modgui.h index 3e6be55b6..b9134314e 100644 --- a/plugins/channeltx/modpsk31/psk31modgui.h +++ b/plugins/channeltx/modpsk31/psk31modgui.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modplugin.cpp b/plugins/channeltx/modpsk31/psk31modplugin.cpp index 6afb20288..1b0d04c2f 100644 --- a/plugins/channeltx/modpsk31/psk31modplugin.cpp +++ b/plugins/channeltx/modpsk31/psk31modplugin.cpp @@ -1,6 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modplugin.h b/plugins/channeltx/modpsk31/psk31modplugin.h index f42c22655..0dfa49571 100644 --- a/plugins/channeltx/modpsk31/psk31modplugin.h +++ b/plugins/channeltx/modpsk31/psk31modplugin.h @@ -1,6 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modrepeatdialog.cpp b/plugins/channeltx/modpsk31/psk31modrepeatdialog.cpp index 31b63f86e..9b7ae2b69 100644 --- a/plugins/channeltx/modpsk31/psk31modrepeatdialog.cpp +++ b/plugins/channeltx/modpsk31/psk31modrepeatdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modrepeatdialog.h b/plugins/channeltx/modpsk31/psk31modrepeatdialog.h index 626b297bd..d05649c2b 100644 --- a/plugins/channeltx/modpsk31/psk31modrepeatdialog.h +++ b/plugins/channeltx/modpsk31/psk31modrepeatdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modsettings.cpp b/plugins/channeltx/modpsk31/psk31modsettings.cpp index 51b7eeba0..896fca1aa 100644 --- a/plugins/channeltx/modpsk31/psk31modsettings.cpp +++ b/plugins/channeltx/modpsk31/psk31modsettings.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modsettings.h b/plugins/channeltx/modpsk31/psk31modsettings.h index 1a037b948..5ff658dd3 100644 --- a/plugins/channeltx/modpsk31/psk31modsettings.h +++ b/plugins/channeltx/modpsk31/psk31modsettings.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2021-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modsource.cpp b/plugins/channeltx/modpsk31/psk31modsource.cpp index 06cde3e3c..607a7b212 100644 --- a/plugins/channeltx/modpsk31/psk31modsource.cpp +++ b/plugins/channeltx/modpsk31/psk31modsource.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modsource.h b/plugins/channeltx/modpsk31/psk31modsource.h index 2c0db32a0..70a89778d 100644 --- a/plugins/channeltx/modpsk31/psk31modsource.h +++ b/plugins/channeltx/modpsk31/psk31modsource.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.cpp b/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.cpp index 9b250e828..f06940962 100644 --- a/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.cpp +++ b/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.h b/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.h index c47d25f59..7af095570 100644 --- a/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.h +++ b/plugins/channeltx/modpsk31/psk31modtxsettingsdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modwebapiadapter.cpp b/plugins/channeltx/modpsk31/psk31modwebapiadapter.cpp index 349526654..236368998 100644 --- a/plugins/channeltx/modpsk31/psk31modwebapiadapter.cpp +++ b/plugins/channeltx/modpsk31/psk31modwebapiadapter.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modpsk31/psk31modwebapiadapter.h b/plugins/channeltx/modpsk31/psk31modwebapiadapter.h index 3709ee4f7..8d5ffc1fe 100644 --- a/plugins/channeltx/modpsk31/psk31modwebapiadapter.h +++ b/plugins/channeltx/modpsk31/psk31modwebapiadapter.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymod.cpp b/plugins/channeltx/modrtty/rttymod.cpp index 48b9e1ab2..8520ce345 100644 --- a/plugins/channeltx/modrtty/rttymod.cpp +++ b/plugins/channeltx/modrtty/rttymod.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymod.h b/plugins/channeltx/modrtty/rttymod.h index b50934b87..dd6ad4324 100644 --- a/plugins/channeltx/modrtty/rttymod.h +++ b/plugins/channeltx/modrtty/rttymod.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016-2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modrtty/rttymodbaseband.cpp b/plugins/channeltx/modrtty/rttymodbaseband.cpp index 62691ce34..85802be64 100644 --- a/plugins/channeltx/modrtty/rttymodbaseband.cpp +++ b/plugins/channeltx/modrtty/rttymodbaseband.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modrtty/rttymodbaseband.h b/plugins/channeltx/modrtty/rttymodbaseband.h index 53f6085f7..c37c45223 100644 --- a/plugins/channeltx/modrtty/rttymodbaseband.h +++ b/plugins/channeltx/modrtty/rttymodbaseband.h @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2020, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modrtty/rttymodgui.cpp b/plugins/channeltx/modrtty/rttymodgui.cpp index bc77a0962..2e7169085 100644 --- a/plugins/channeltx/modrtty/rttymodgui.cpp +++ b/plugins/channeltx/modrtty/rttymodgui.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodgui.h b/plugins/channeltx/modrtty/rttymodgui.h index 65120cfd8..db2f55a5b 100644 --- a/plugins/channeltx/modrtty/rttymodgui.h +++ b/plugins/channeltx/modrtty/rttymodgui.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodplugin.cpp b/plugins/channeltx/modrtty/rttymodplugin.cpp index b00044f10..e331bf973 100644 --- a/plugins/channeltx/modrtty/rttymodplugin.cpp +++ b/plugins/channeltx/modrtty/rttymodplugin.cpp @@ -1,6 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodplugin.h b/plugins/channeltx/modrtty/rttymodplugin.h index 482a3e038..c7e285ca8 100644 --- a/plugins/channeltx/modrtty/rttymodplugin.h +++ b/plugins/channeltx/modrtty/rttymodplugin.h @@ -1,6 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2020-2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodrepeatdialog.cpp b/plugins/channeltx/modrtty/rttymodrepeatdialog.cpp index 5e92a78ba..46a3a5414 100644 --- a/plugins/channeltx/modrtty/rttymodrepeatdialog.cpp +++ b/plugins/channeltx/modrtty/rttymodrepeatdialog.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodrepeatdialog.h b/plugins/channeltx/modrtty/rttymodrepeatdialog.h index b9bb0e153..376647383 100644 --- a/plugins/channeltx/modrtty/rttymodrepeatdialog.h +++ b/plugins/channeltx/modrtty/rttymodrepeatdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodsettings.cpp b/plugins/channeltx/modrtty/rttymodsettings.cpp index 140eb9625..077890562 100644 --- a/plugins/channeltx/modrtty/rttymodsettings.cpp +++ b/plugins/channeltx/modrtty/rttymodsettings.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodsettings.h b/plugins/channeltx/modrtty/rttymodsettings.h index 52e964b74..f7ad38e68 100644 --- a/plugins/channeltx/modrtty/rttymodsettings.h +++ b/plugins/channeltx/modrtty/rttymodsettings.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2021-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodsource.cpp b/plugins/channeltx/modrtty/rttymodsource.cpp index aec6351ac..062d08d10 100644 --- a/plugins/channeltx/modrtty/rttymodsource.cpp +++ b/plugins/channeltx/modrtty/rttymodsource.cpp @@ -1,6 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodsource.h b/plugins/channeltx/modrtty/rttymodsource.h index 82f527772..d28744f0f 100644 --- a/plugins/channeltx/modrtty/rttymodsource.h +++ b/plugins/channeltx/modrtty/rttymodsource.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021, 2023 Jon Beniston, M7RCE // +// Copyright (C) 2020-2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modrtty/rttymodtxsettingsdialog.cpp b/plugins/channeltx/modrtty/rttymodtxsettingsdialog.cpp index 07d63b0f1..0df5d0ac7 100644 --- a/plugins/channeltx/modrtty/rttymodtxsettingsdialog.cpp +++ b/plugins/channeltx/modrtty/rttymodtxsettingsdialog.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodtxsettingsdialog.h b/plugins/channeltx/modrtty/rttymodtxsettingsdialog.h index 3d18f831e..d6d631c49 100644 --- a/plugins/channeltx/modrtty/rttymodtxsettingsdialog.h +++ b/plugins/channeltx/modrtty/rttymodtxsettingsdialog.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodwebapiadapter.cpp b/plugins/channeltx/modrtty/rttymodwebapiadapter.cpp index c86197520..9a4418e0a 100644 --- a/plugins/channeltx/modrtty/rttymodwebapiadapter.cpp +++ b/plugins/channeltx/modrtty/rttymodwebapiadapter.cpp @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modrtty/rttymodwebapiadapter.h b/plugins/channeltx/modrtty/rttymodwebapiadapter.h index 72522d26f..a46583404 100644 --- a/plugins/channeltx/modrtty/rttymodwebapiadapter.h +++ b/plugins/channeltx/modrtty/rttymodwebapiadapter.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // -// Copyright (C) 2023 Jon Beniston, M7RCE // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021, 2023 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 // diff --git a/plugins/channeltx/modssb/ssbmod.cpp b/plugins/channeltx/modssb/ssbmod.cpp index 134b00d3e..7dba7fe2f 100644 --- a/plugins/channeltx/modssb/ssbmod.cpp +++ b/plugins/channeltx/modssb/ssbmod.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Stefan Biereigel // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmod.h b/plugins/channeltx/modssb/ssbmod.h index 5768d7cf4..43685e310 100644 --- a/plugins/channeltx/modssb/ssbmod.h +++ b/plugins/channeltx/modssb/ssbmod.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodbaseband.cpp b/plugins/channeltx/modssb/ssbmodbaseband.cpp index 7e87efa16..d45b49699 100644 --- a/plugins/channeltx/modssb/ssbmodbaseband.cpp +++ b/plugins/channeltx/modssb/ssbmodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodbaseband.h b/plugins/channeltx/modssb/ssbmodbaseband.h index a4feaffc3..57db8e3b5 100644 --- a/plugins/channeltx/modssb/ssbmodbaseband.h +++ b/plugins/channeltx/modssb/ssbmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodgui.cpp b/plugins/channeltx/modssb/ssbmodgui.cpp index 76e59e4ea..8e57b3e07 100644 --- a/plugins/channeltx/modssb/ssbmodgui.cpp +++ b/plugins/channeltx/modssb/ssbmodgui.cpp @@ -1,5 +1,11 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2019 Stefan Biereigel // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modssb/ssbmodgui.h b/plugins/channeltx/modssb/ssbmodgui.h index b83563286..4028c5122 100644 --- a/plugins/channeltx/modssb/ssbmodgui.h +++ b/plugins/channeltx/modssb/ssbmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modssb/ssbmodplugin.cpp b/plugins/channeltx/modssb/ssbmodplugin.cpp index 424850d6e..2146d73ed 100644 --- a/plugins/channeltx/modssb/ssbmodplugin.cpp +++ b/plugins/channeltx/modssb/ssbmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodplugin.h b/plugins/channeltx/modssb/ssbmodplugin.h index 48a1f2f12..cc1891c9a 100644 --- a/plugins/channeltx/modssb/ssbmodplugin.h +++ b/plugins/channeltx/modssb/ssbmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodsettings.cpp b/plugins/channeltx/modssb/ssbmodsettings.cpp index 3cc48adeb..87bb66eab 100644 --- a/plugins/channeltx/modssb/ssbmodsettings.cpp +++ b/plugins/channeltx/modssb/ssbmodsettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modssb/ssbmodsettings.h b/plugins/channeltx/modssb/ssbmodsettings.h index 5327a8106..5425e61eb 100644 --- a/plugins/channeltx/modssb/ssbmodsettings.h +++ b/plugins/channeltx/modssb/ssbmodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modssb/ssbmodsource.cpp b/plugins/channeltx/modssb/ssbmodsource.cpp index 145a05fe7..8ebaa31c5 100644 --- a/plugins/channeltx/modssb/ssbmodsource.cpp +++ b/plugins/channeltx/modssb/ssbmodsource.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodsource.h b/plugins/channeltx/modssb/ssbmodsource.h index 116758959..164ca1225 100644 --- a/plugins/channeltx/modssb/ssbmodsource.h +++ b/plugins/channeltx/modssb/ssbmodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodwebapiadapter.cpp b/plugins/channeltx/modssb/ssbmodwebapiadapter.cpp index 119f42e4b..7c35b73cf 100644 --- a/plugins/channeltx/modssb/ssbmodwebapiadapter.cpp +++ b/plugins/channeltx/modssb/ssbmodwebapiadapter.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modssb/ssbmodwebapiadapter.h b/plugins/channeltx/modssb/ssbmodwebapiadapter.h index e3387c02c..0c669bdcd 100644 --- a/plugins/channeltx/modssb/ssbmodwebapiadapter.h +++ b/plugins/channeltx/modssb/ssbmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmod.cpp b/plugins/channeltx/modwfm/wfmmod.cpp index d081dee36..863c2b500 100644 --- a/plugins/channeltx/modwfm/wfmmod.cpp +++ b/plugins/channeltx/modwfm/wfmmod.cpp @@ -1,817 +1,819 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// // -// 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 -#include - -#include -#include -#include - -#include "SWGChannelSettings.h" -#include "SWGWorkspaceInfo.h" -#include "SWGChannelReport.h" -#include "SWGAMModReport.h" - -#include "dsp/dspengine.h" -#include "dsp/dspcommands.h" -#include "device/deviceapi.h" -#include "feature/feature.h" -#include "util/db.h" -#include "maincore.h" - -#include "wfmmodbaseband.h" -#include "wfmmod.h" - -MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureWFMMod, Message) -MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceName, Message) -MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceSeek, Message) -MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceStreamTiming, Message) -MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamData, Message) -MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamTiming, Message) - -const char* const WFMMod::m_channelIdURI = "sdrangel.channeltx.modwfm"; -const char* const WFMMod::m_channelId = "WFMMod"; - -WFMMod::WFMMod(DeviceAPI *deviceAPI) : - ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource), - m_deviceAPI(deviceAPI), - m_fileSize(0), - m_recordLength(0), - m_sampleRate(48000) -{ - setObjectName(m_channelId); - - m_thread = new QThread(this); - m_basebandSource = new WFMModBaseband(); - m_basebandSource->setInputFileStream(&m_ifstream); - m_basebandSource->setChannel(this); - m_basebandSource->moveToThread(m_thread); - - applySettings(m_settings, true); - - m_deviceAPI->addChannelSource(this); - m_deviceAPI->addChannelSourceAPI(this); - - m_networkManager = new QNetworkAccessManager(); - QObject::connect( - m_networkManager, - &QNetworkAccessManager::finished, - this, - &WFMMod::networkManagerFinished - ); -} - -WFMMod::~WFMMod() -{ - QObject::disconnect( - m_networkManager, - &QNetworkAccessManager::finished, - this, - &WFMMod::networkManagerFinished - ); - delete m_networkManager; - m_deviceAPI->removeChannelSourceAPI(this); - m_deviceAPI->removeChannelSource(this); - delete m_basebandSource; - delete m_thread; -} - -void WFMMod::setDeviceAPI(DeviceAPI *deviceAPI) -{ - if (deviceAPI != m_deviceAPI) - { - m_deviceAPI->removeChannelSourceAPI(this); - m_deviceAPI->removeChannelSource(this); - m_deviceAPI = deviceAPI; - m_deviceAPI->addChannelSource(this); - m_deviceAPI->addChannelSinkAPI(this); - } -} - -void WFMMod::start() -{ - qDebug("WFMMod::start"); - m_basebandSource->reset(); - m_thread->start(); -} - -void WFMMod::stop() -{ - qDebug("WFMMod::stop"); - m_thread->exit(); - m_thread->wait(); -} - -void WFMMod::pull(SampleVector::iterator& begin, unsigned int nbSamples) -{ - m_basebandSource->pull(begin, nbSamples); -} - -void WFMMod::setCenterFrequency(qint64 frequency) -{ - WFMModSettings settings = m_settings; - settings.m_inputFrequencyOffset = frequency; - applySettings(settings, false); - - if (m_guiMessageQueue) // forward to GUI if any - { - MsgConfigureWFMMod *msgToGUI = MsgConfigureWFMMod::create(settings, false); - m_guiMessageQueue->push(msgToGUI); - } -} - -bool WFMMod::handleMessage(const Message& cmd) -{ - if (MsgConfigureWFMMod::match(cmd)) - { - MsgConfigureWFMMod& cfg = (MsgConfigureWFMMod&) cmd; - qDebug() << "WFMMod::handleMessage: MsgConfigureWFMMod"; - - WFMModSettings settings = cfg.getSettings(); - - applySettings(cfg.getSettings(), cfg.getForce()); - - return true; - } - else if (MsgConfigureFileSourceName::match(cmd)) - { - MsgConfigureFileSourceName& conf = (MsgConfigureFileSourceName&) cmd; - m_fileName = conf.getFileName(); - openFileStream(); - return true; - } - else if (MsgConfigureFileSourceSeek::match(cmd)) - { - MsgConfigureFileSourceSeek& conf = (MsgConfigureFileSourceSeek&) cmd; - int seekPercentage = conf.getPercentage(); - seekFileStream(seekPercentage); - - return true; - } - else if (MsgConfigureFileSourceStreamTiming::match(cmd)) - { - std::size_t samplesCount; - - if (m_ifstream.eof()) { - samplesCount = m_fileSize / sizeof(Real); - } else { - samplesCount = m_ifstream.tellg() / sizeof(Real); - } - - MsgReportFileSourceStreamTiming *report; - report = MsgReportFileSourceStreamTiming::create(samplesCount); - getMessageQueueToGUI()->push(report); - - return true; - } - else if (CWKeyer::MsgConfigureCWKeyer::match(cmd)) - { - const CWKeyer::MsgConfigureCWKeyer& cfg = (CWKeyer::MsgConfigureCWKeyer&) cmd; - - if (m_settings.m_useReverseAPI) { - webapiReverseSendCWSettings(cfg.getSettings()); - } - - return true; - } - else if (DSPSignalNotification::match(cmd)) - { - // Forward to the source - DSPSignalNotification& notif = (DSPSignalNotification&) cmd; - DSPSignalNotification* rep = new DSPSignalNotification(notif); // make a copy - qDebug() << "WFMMod::handleMessage: DSPSignalNotification"; - m_basebandSource->getInputMessageQueue()->push(rep); - // Forward to GUI if any - if (getMessageQueueToGUI()) { - getMessageQueueToGUI()->push(new DSPSignalNotification(notif)); - } - - return true; - } - else if (MainCore::MsgChannelDemodQuery::match(cmd)) - { - qDebug() << "WFMMod::handleMessage: MsgChannelDemodQuery"; - sendSampleRateToDemodAnalyzer(); - - return true; - } - else - { - return false; - } -} - -void WFMMod::openFileStream() -{ - if (m_ifstream.is_open()) { - m_ifstream.close(); - } - - m_ifstream.open(m_fileName.toStdString().c_str(), std::ios::binary | std::ios::ate); - m_fileSize = m_ifstream.tellg(); - m_ifstream.seekg(0,std::ios_base::beg); - - m_sampleRate = 48000; // fixed rate - m_recordLength = m_fileSize / (sizeof(Real) * m_sampleRate); - - qDebug() << "WFMMod::openFileStream: " << m_fileName.toStdString().c_str() - << " fileSize: " << m_fileSize << "bytes" - << " length: " << m_recordLength << " seconds"; - - MsgReportFileSourceStreamData *report; - report = MsgReportFileSourceStreamData::create(m_sampleRate, m_recordLength); - getMessageQueueToGUI()->push(report); -} - -void WFMMod::seekFileStream(int seekPercentage) -{ - QMutexLocker mutexLocker(&m_settingsMutex); - - if (m_ifstream.is_open()) - { - int seekPoint = ((m_recordLength * seekPercentage) / 100) * m_sampleRate; - seekPoint *= sizeof(Real); - m_ifstream.clear(); - m_ifstream.seekg(seekPoint, std::ios::beg); - } -} - -void WFMMod::applySettings(const WFMModSettings& settings, bool force) -{ - qDebug() << "WFMMod::applySettings:" - << " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset - << " m_rfBandwidth: " << settings.m_rfBandwidth - << " m_afBandwidth: " << settings.m_afBandwidth - << " m_fmDeviation: " << settings.m_fmDeviation - << " m_volumeFactor: " << settings.m_volumeFactor - << " m_toneFrequency: " << settings.m_toneFrequency - << " m_channelMute: " << settings.m_channelMute - << " m_playLoop: " << settings.m_playLoop - << " m_modAFInput: " << settings.m_modAFInput - << " m_audioDeviceName: " << settings.m_audioDeviceName - << " m_useReverseAPI: " << settings.m_useReverseAPI - << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress - << " m_reverseAPIPort: " << settings.m_reverseAPIPort - << " m_reverseAPIDeviceIndex: " << settings.m_reverseAPIDeviceIndex - << " m_reverseAPIChannelIndex: " << settings.m_reverseAPIChannelIndex - << " force: " << force; - - QList reverseAPIKeys; - - if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) { - reverseAPIKeys.append("inputFrequencyOffset"); - } - if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) { - reverseAPIKeys.append("fmDeviation"); - } - if ((settings.m_volumeFactor != m_settings.m_volumeFactor) || force) { - reverseAPIKeys.append("volumeFactor"); - } - if ((settings.m_channelMute != m_settings.m_channelMute) || force) { - reverseAPIKeys.append("channelMute"); - } - if ((settings.m_playLoop != m_settings.m_playLoop) || force) { - reverseAPIKeys.append("playLoop"); - } - if ((settings.m_modAFInput != m_settings.m_modAFInput) || force) { - reverseAPIKeys.append("modAFInput"); - } - if ((settings.m_afBandwidth != m_settings.m_afBandwidth) || force) { - reverseAPIKeys.append("afBandwidth"); - } - if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) { - reverseAPIKeys.append("rfBandwidth"); - } - if ((settings.m_toneFrequency != m_settings.m_toneFrequency) || force) { - reverseAPIKeys.append("toneFrequency"); - } - if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) { - reverseAPIKeys.append("audioDeviceName"); - } - - if (m_settings.m_streamIndex != settings.m_streamIndex) - { - if (m_deviceAPI->getSampleMIMO()) // change of stream is possible for MIMO devices only - { - m_deviceAPI->removeChannelSourceAPI(this); - m_deviceAPI->removeChannelSource(this, m_settings.m_streamIndex); - m_deviceAPI->addChannelSource(this, settings.m_streamIndex); - m_deviceAPI->addChannelSourceAPI(this); - } - - reverseAPIKeys.append("streamIndex"); - } - - WFMModBaseband::MsgConfigureWFMModBaseband *msg = WFMModBaseband::MsgConfigureWFMModBaseband::create(settings, force); - m_basebandSource->getInputMessageQueue()->push(msg); - - if (settings.m_useReverseAPI) - { - bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || - (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || - (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || - (m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) || - (m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex); - webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); - } - - QList pipes; - MainCore::instance()->getMessagePipes().getMessagePipes(this, "settings", pipes); - - if (pipes.size() > 0) { - sendChannelSettings(pipes, reverseAPIKeys, settings, force); - } - - m_settings = settings; -} - -QByteArray WFMMod::serialize() const -{ - return m_settings.serialize(); -} - -bool WFMMod::deserialize(const QByteArray& data) -{ - if (m_settings.deserialize(data)) - { - MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(m_settings, true); - m_inputMessageQueue.push(msg); - return true; - } - else - { - m_settings.resetToDefaults(); - MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(m_settings, true); - m_inputMessageQueue.push(msg); - return false; - } -} - -void WFMMod::sendSampleRateToDemodAnalyzer() -{ - QList pipes; - MainCore::instance()->getMessagePipes().getMessagePipes(this, "reportdemod", pipes); - - if (pipes.size() > 0) - { - for (const auto& pipe : pipes) - { - MessageQueue* messageQueue = qobject_cast(pipe->m_element); - MainCore::MsgChannelDemodReport *msg = MainCore::MsgChannelDemodReport::create( - this, - getAudioSampleRate() - ); - messageQueue->push(msg); - } - } -} - -int WFMMod::webapiSettingsGet( - SWGSDRangel::SWGChannelSettings& response, - QString& errorMessage) -{ - (void) errorMessage; - response.setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); - response.getWfmModSettings()->init(); - webapiFormatChannelSettings(response, m_settings); - - SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getWfmModSettings()->getCwKeyer(); - const CWKeyerSettings& cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); - CWKeyer::webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); - - return 200; -} - -int WFMMod::webapiWorkspaceGet( - SWGSDRangel::SWGWorkspaceInfo& response, - QString& errorMessage) -{ - (void) errorMessage; - response.setIndex(m_settings.m_workspaceIndex); - return 200; -} - -int WFMMod::webapiSettingsPutPatch( - bool force, - const QStringList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings& response, - QString& errorMessage) -{ - (void) errorMessage; - WFMModSettings settings = m_settings; - webapiUpdateChannelSettings(settings, channelSettingsKeys, response); - - if (channelSettingsKeys.contains("cwKeyer")) - { - SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getWfmModSettings()->getCwKeyer(); - CWKeyerSettings cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); - CWKeyer::webapiSettingsPutPatch(channelSettingsKeys, cwKeyerSettings, apiCwKeyerSettings); - - CWKeyer::MsgConfigureCWKeyer *msgCwKeyer = CWKeyer::MsgConfigureCWKeyer::create(cwKeyerSettings, force); - m_basebandSource->getCWKeyer().getInputMessageQueue()->push(msgCwKeyer); - - if (m_guiMessageQueue) // forward to GUI if any - { - CWKeyer::MsgConfigureCWKeyer *msgCwKeyerToGUI = CWKeyer::MsgConfigureCWKeyer::create(cwKeyerSettings, force); - m_guiMessageQueue->push(msgCwKeyerToGUI); - } - } - - MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(settings, force); - m_inputMessageQueue.push(msg); - - if (m_guiMessageQueue) // forward to GUI if any - { - MsgConfigureWFMMod *msgToGUI = MsgConfigureWFMMod::create(settings, force); - m_guiMessageQueue->push(msgToGUI); - } - - webapiFormatChannelSettings(response, settings); - - return 200; -} - -void WFMMod::webapiUpdateChannelSettings( - WFMModSettings& settings, - const QStringList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings& response) -{ - if (channelSettingsKeys.contains("channelMute")) { - settings.m_channelMute = response.getWfmModSettings()->getChannelMute() != 0; - } - if (channelSettingsKeys.contains("inputFrequencyOffset")) { - settings.m_inputFrequencyOffset = response.getWfmModSettings()->getInputFrequencyOffset(); - } - if (channelSettingsKeys.contains("modAFInput")) { - settings.m_modAFInput = (WFMModSettings::WFMModInputAF) response.getWfmModSettings()->getModAfInput(); - } - if (channelSettingsKeys.contains("playLoop")) { - settings.m_playLoop = response.getWfmModSettings()->getPlayLoop() != 0; - } - if (channelSettingsKeys.contains("rfBandwidth")) { - settings.m_rfBandwidth = response.getWfmModSettings()->getRfBandwidth(); - } - if (channelSettingsKeys.contains("afBandwidth")) { - settings.m_afBandwidth = response.getWfmModSettings()->getAfBandwidth(); - } - if (channelSettingsKeys.contains("rgbColor")) { - settings.m_rgbColor = response.getWfmModSettings()->getRgbColor(); - } - if (channelSettingsKeys.contains("title")) { - settings.m_title = *response.getWfmModSettings()->getTitle(); - } - if (channelSettingsKeys.contains("toneFrequency")) { - settings.m_toneFrequency = response.getWfmModSettings()->getToneFrequency(); - } - if (channelSettingsKeys.contains("volumeFactor")) { - settings.m_volumeFactor = response.getWfmModSettings()->getVolumeFactor(); - } - if (channelSettingsKeys.contains("fmDeviation")) { - settings.m_fmDeviation = response.getWfmModSettings()->getFmDeviation(); - } - if (channelSettingsKeys.contains("streamIndex")) { - settings.m_streamIndex = response.getWfmModSettings()->getStreamIndex(); - } - if (channelSettingsKeys.contains("useReverseAPI")) { - settings.m_useReverseAPI = response.getWfmModSettings()->getUseReverseApi() != 0; - } - if (channelSettingsKeys.contains("reverseAPIAddress")) { - settings.m_reverseAPIAddress = *response.getWfmModSettings()->getReverseApiAddress(); - } - if (channelSettingsKeys.contains("reverseAPIPort")) { - settings.m_reverseAPIPort = response.getWfmModSettings()->getReverseApiPort(); - } - if (channelSettingsKeys.contains("reverseAPIDeviceIndex")) { - settings.m_reverseAPIDeviceIndex = response.getWfmModSettings()->getReverseApiDeviceIndex(); - } - if (channelSettingsKeys.contains("reverseAPIChannelIndex")) { - settings.m_reverseAPIChannelIndex = response.getWfmModSettings()->getReverseApiChannelIndex(); - } - if (settings.m_channelMarker && channelSettingsKeys.contains("channelMarker")) { - settings.m_channelMarker->updateFrom(channelSettingsKeys, response.getWfmModSettings()->getChannelMarker()); - } - if (settings.m_rollupState && channelSettingsKeys.contains("rollupState")) { - settings.m_rollupState->updateFrom(channelSettingsKeys, response.getWfmModSettings()->getRollupState()); - } -} - -int WFMMod::webapiReportGet( - SWGSDRangel::SWGChannelReport& response, - QString& errorMessage) -{ - (void) errorMessage; - response.setWfmModReport(new SWGSDRangel::SWGWFMModReport()); - response.getWfmModReport()->init(); - webapiFormatChannelReport(response); - return 200; -} - -void WFMMod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const WFMModSettings& settings) -{ - response.getWfmModSettings()->setChannelMute(settings.m_channelMute ? 1 : 0); - response.getWfmModSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset); - response.getWfmModSettings()->setModAfInput((int) settings.m_modAFInput); - response.getWfmModSettings()->setPlayLoop(settings.m_playLoop ? 1 : 0); - response.getWfmModSettings()->setRfBandwidth(settings.m_rfBandwidth); - response.getWfmModSettings()->setAfBandwidth(settings.m_afBandwidth); - response.getWfmModSettings()->setFmDeviation(settings.m_fmDeviation); - response.getWfmModSettings()->setRgbColor(settings.m_rgbColor); - - if (response.getWfmModSettings()->getTitle()) { - *response.getWfmModSettings()->getTitle() = settings.m_title; - } else { - response.getWfmModSettings()->setTitle(new QString(settings.m_title)); - } - - response.getWfmModSettings()->setToneFrequency(settings.m_toneFrequency); - response.getWfmModSettings()->setVolumeFactor(settings.m_volumeFactor); - - if (!response.getWfmModSettings()->getCwKeyer()) { - response.getWfmModSettings()->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings); - } - - if (response.getWfmModSettings()->getAudioDeviceName()) { - *response.getWfmModSettings()->getAudioDeviceName() = settings.m_audioDeviceName; - } else { - response.getWfmModSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName)); - } - - response.getWfmModSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); - - if (response.getWfmModSettings()->getReverseApiAddress()) { - *response.getWfmModSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; - } else { - response.getWfmModSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); - } - - response.getWfmModSettings()->setReverseApiPort(settings.m_reverseAPIPort); - response.getWfmModSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); - response.getWfmModSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex); - - if (settings.m_channelMarker) - { - if (response.getWfmModSettings()->getChannelMarker()) - { - settings.m_channelMarker->formatTo(response.getWfmModSettings()->getChannelMarker()); - } - else - { - SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); - settings.m_channelMarker->formatTo(swgChannelMarker); - response.getWfmModSettings()->setChannelMarker(swgChannelMarker); - } - } - - if (settings.m_rollupState) - { - if (response.getWfmModSettings()->getRollupState()) - { - settings.m_rollupState->formatTo(response.getWfmModSettings()->getRollupState()); - } - else - { - SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); - settings.m_rollupState->formatTo(swgRollupState); - response.getWfmModSettings()->setRollupState(swgRollupState); - } - } -} - -void WFMMod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response) -{ - response.getWfmModReport()->setChannelPowerDb(CalcDb::dbPower(getMagSq())); - response.getWfmModReport()->setAudioSampleRate(m_basebandSource->getAudioSampleRate()); - response.getWfmModReport()->setChannelSampleRate(m_basebandSource->getChannelSampleRate()); -} - -void WFMMod::webapiReverseSendSettings(QList& channelSettingsKeys, const WFMModSettings& settings, bool force) -{ - SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); - webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); - - QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") - .arg(settings.m_reverseAPIAddress) - .arg(settings.m_reverseAPIPort) - .arg(settings.m_reverseAPIDeviceIndex) - .arg(settings.m_reverseAPIChannelIndex); - m_networkRequest.setUrl(QUrl(channelSettingsURL)); - m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - - QBuffer *buffer = new QBuffer(); - buffer->open((QBuffer::ReadWrite)); - buffer->write(swgChannelSettings->asJson().toUtf8()); - buffer->seek(0); - - // Always use PATCH to avoid passing reverse API settings - QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); - buffer->setParent(reply); - - delete swgChannelSettings; -} - -void WFMMod::webapiReverseSendCWSettings(const CWKeyerSettings& cwKeyerSettings) -{ - SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); - swgChannelSettings->setDirection(1); // single source (Tx) - swgChannelSettings->setChannelType(new QString("WFMMod")); - swgChannelSettings->setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); - SWGSDRangel::SWGWFMModSettings *swgWFMModSettings = swgChannelSettings->getWfmModSettings(); - - swgWFMModSettings->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings()); - SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = swgWFMModSettings->getCwKeyer(); - m_basebandSource->getCWKeyer().webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); - - QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") - .arg(m_settings.m_reverseAPIAddress) - .arg(m_settings.m_reverseAPIPort) - .arg(m_settings.m_reverseAPIDeviceIndex) - .arg(m_settings.m_reverseAPIChannelIndex); - m_networkRequest.setUrl(QUrl(channelSettingsURL)); - m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - - QBuffer *buffer = new QBuffer(); - buffer->open((QBuffer::ReadWrite)); - buffer->write(swgChannelSettings->asJson().toUtf8()); - buffer->seek(0); - - // Always use PATCH to avoid passing reverse API settings - QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); - buffer->setParent(reply); - - delete swgChannelSettings; -} - -void WFMMod::sendChannelSettings( - const QList& pipes, - QList& channelSettingsKeys, - const WFMModSettings& settings, - bool force) -{ - for (const auto& pipe : pipes) - { - MessageQueue *messageQueue = qobject_cast(pipe->m_element); - - if (messageQueue) - { - SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); - webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); - MainCore::MsgChannelSettings *msg = MainCore::MsgChannelSettings::create( - this, - channelSettingsKeys, - swgChannelSettings, - force - ); - messageQueue->push(msg); - } - } -} - -void WFMMod::webapiFormatChannelSettings( - QList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings *swgChannelSettings, - const WFMModSettings& settings, - bool force -) -{ - swgChannelSettings->setDirection(1); // single source (Tx) - swgChannelSettings->setOriginatorChannelIndex(getIndexInDeviceSet()); - swgChannelSettings->setOriginatorDeviceSetIndex(getDeviceSetIndex()); - swgChannelSettings->setChannelType(new QString(m_channelId)); - swgChannelSettings->setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); - SWGSDRangel::SWGWFMModSettings *swgWFMModSettings = swgChannelSettings->getWfmModSettings(); - - // transfer data that has been modified. When force is on transfer all data except reverse API data - - if (channelSettingsKeys.contains("channelMute") || force) { - swgWFMModSettings->setChannelMute(settings.m_channelMute ? 1 : 0); - } - if (channelSettingsKeys.contains("inputFrequencyOffset") || force) { - swgWFMModSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset); - } - if (channelSettingsKeys.contains("modAFInput") || force) { - swgWFMModSettings->setModAfInput((int) settings.m_modAFInput); - } - if (channelSettingsKeys.contains("playLoop") || force) { - swgWFMModSettings->setPlayLoop(settings.m_playLoop ? 1 : 0); - } - if (channelSettingsKeys.contains("rfBandwidth") || force) { - swgWFMModSettings->setRfBandwidth(settings.m_rfBandwidth); - } - if (channelSettingsKeys.contains("afBandwidth") || force) { - swgWFMModSettings->setAfBandwidth(settings.m_afBandwidth); - } - if (channelSettingsKeys.contains("rgbColor") || force) { - swgWFMModSettings->setRgbColor(settings.m_rgbColor); - } - if (channelSettingsKeys.contains("title") || force) { - swgWFMModSettings->setTitle(new QString(settings.m_title)); - } - if (channelSettingsKeys.contains("toneFrequency") || force) { - swgWFMModSettings->setToneFrequency(settings.m_toneFrequency); - } - if (channelSettingsKeys.contains("volumeFactor") || force) { - swgWFMModSettings->setVolumeFactor(settings.m_volumeFactor); - } - if (channelSettingsKeys.contains("fmDeviation")) { - swgWFMModSettings->setFmDeviation(settings.m_fmDeviation); - } - if (channelSettingsKeys.contains("streamIndex")) { - swgWFMModSettings->setStreamIndex(settings.m_streamIndex); - } - if (channelSettingsKeys.contains("audioDeviceName") || force) { - swgWFMModSettings->setAudioDeviceName(new QString(settings.m_audioDeviceName)); - } - - if (settings.m_channelMarker && (channelSettingsKeys.contains("channelMarker") || force)) - { - SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); - settings.m_channelMarker->formatTo(swgChannelMarker); - swgWFMModSettings->setChannelMarker(swgChannelMarker); - } - - if (settings.m_rollupState && (channelSettingsKeys.contains("rollupState") || force)) - { - SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); - settings.m_rollupState->formatTo(swgRollupState); - swgWFMModSettings->setRollupState(swgRollupState); - } - - if (force) - { - const CWKeyerSettings& cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); - swgWFMModSettings->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings()); - SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = swgWFMModSettings->getCwKeyer(); - m_basebandSource->getCWKeyer().webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); - } -} - -void WFMMod::networkManagerFinished(QNetworkReply *reply) -{ - QNetworkReply::NetworkError replyError = reply->error(); - - if (replyError) - { - qWarning() << "WFMMod::networkManagerFinished:" - << " error(" << (int) replyError - << "): " << replyError - << ": " << reply->errorString(); - } - else - { - QString answer = reply->readAll(); - answer.chop(1); // remove last \n - qDebug("WFMMod::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); - } - - reply->deleteLater(); -} - -double WFMMod::getMagSq() const -{ - return m_basebandSource->getMagSq(); -} - -CWKeyer *WFMMod::getCWKeyer() -{ - return &m_basebandSource->getCWKeyer(); -} - -void WFMMod::setLevelMeter(QObject *levelMeter) -{ - connect(m_basebandSource, SIGNAL(levelChanged(qreal, qreal, int)), levelMeter, SLOT(levelChanged(qreal, qreal, int))); -} - -uint32_t WFMMod::getNumberOfDeviceStreams() const -{ - return m_deviceAPI->getNbSinkStreams(); -} - -int WFMMod::getAudioSampleRate() const -{ - return m_basebandSource->getAudioSampleRate(); -} - -int WFMMod::getFeedbackAudioSampleRate() const -{ - return m_basebandSource->getFeedbackAudioSampleRate(); -} +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // +// // +// 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 +#include + +#include +#include +#include + +#include "SWGChannelSettings.h" +#include "SWGWorkspaceInfo.h" +#include "SWGChannelReport.h" +#include "SWGAMModReport.h" + +#include "dsp/dspengine.h" +#include "dsp/dspcommands.h" +#include "device/deviceapi.h" +#include "feature/feature.h" +#include "util/db.h" +#include "maincore.h" + +#include "wfmmodbaseband.h" +#include "wfmmod.h" + +MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureWFMMod, Message) +MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceName, Message) +MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceSeek, Message) +MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceStreamTiming, Message) +MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamData, Message) +MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamTiming, Message) + +const char* const WFMMod::m_channelIdURI = "sdrangel.channeltx.modwfm"; +const char* const WFMMod::m_channelId = "WFMMod"; + +WFMMod::WFMMod(DeviceAPI *deviceAPI) : + ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource), + m_deviceAPI(deviceAPI), + m_fileSize(0), + m_recordLength(0), + m_sampleRate(48000) +{ + setObjectName(m_channelId); + + m_thread = new QThread(this); + m_basebandSource = new WFMModBaseband(); + m_basebandSource->setInputFileStream(&m_ifstream); + m_basebandSource->setChannel(this); + m_basebandSource->moveToThread(m_thread); + + applySettings(m_settings, true); + + m_deviceAPI->addChannelSource(this); + m_deviceAPI->addChannelSourceAPI(this); + + m_networkManager = new QNetworkAccessManager(); + QObject::connect( + m_networkManager, + &QNetworkAccessManager::finished, + this, + &WFMMod::networkManagerFinished + ); +} + +WFMMod::~WFMMod() +{ + QObject::disconnect( + m_networkManager, + &QNetworkAccessManager::finished, + this, + &WFMMod::networkManagerFinished + ); + delete m_networkManager; + m_deviceAPI->removeChannelSourceAPI(this); + m_deviceAPI->removeChannelSource(this); + delete m_basebandSource; + delete m_thread; +} + +void WFMMod::setDeviceAPI(DeviceAPI *deviceAPI) +{ + if (deviceAPI != m_deviceAPI) + { + m_deviceAPI->removeChannelSourceAPI(this); + m_deviceAPI->removeChannelSource(this); + m_deviceAPI = deviceAPI; + m_deviceAPI->addChannelSource(this); + m_deviceAPI->addChannelSinkAPI(this); + } +} + +void WFMMod::start() +{ + qDebug("WFMMod::start"); + m_basebandSource->reset(); + m_thread->start(); +} + +void WFMMod::stop() +{ + qDebug("WFMMod::stop"); + m_thread->exit(); + m_thread->wait(); +} + +void WFMMod::pull(SampleVector::iterator& begin, unsigned int nbSamples) +{ + m_basebandSource->pull(begin, nbSamples); +} + +void WFMMod::setCenterFrequency(qint64 frequency) +{ + WFMModSettings settings = m_settings; + settings.m_inputFrequencyOffset = frequency; + applySettings(settings, false); + + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureWFMMod *msgToGUI = MsgConfigureWFMMod::create(settings, false); + m_guiMessageQueue->push(msgToGUI); + } +} + +bool WFMMod::handleMessage(const Message& cmd) +{ + if (MsgConfigureWFMMod::match(cmd)) + { + MsgConfigureWFMMod& cfg = (MsgConfigureWFMMod&) cmd; + qDebug() << "WFMMod::handleMessage: MsgConfigureWFMMod"; + + WFMModSettings settings = cfg.getSettings(); + + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (MsgConfigureFileSourceName::match(cmd)) + { + MsgConfigureFileSourceName& conf = (MsgConfigureFileSourceName&) cmd; + m_fileName = conf.getFileName(); + openFileStream(); + return true; + } + else if (MsgConfigureFileSourceSeek::match(cmd)) + { + MsgConfigureFileSourceSeek& conf = (MsgConfigureFileSourceSeek&) cmd; + int seekPercentage = conf.getPercentage(); + seekFileStream(seekPercentage); + + return true; + } + else if (MsgConfigureFileSourceStreamTiming::match(cmd)) + { + std::size_t samplesCount; + + if (m_ifstream.eof()) { + samplesCount = m_fileSize / sizeof(Real); + } else { + samplesCount = m_ifstream.tellg() / sizeof(Real); + } + + MsgReportFileSourceStreamTiming *report; + report = MsgReportFileSourceStreamTiming::create(samplesCount); + getMessageQueueToGUI()->push(report); + + return true; + } + else if (CWKeyer::MsgConfigureCWKeyer::match(cmd)) + { + const CWKeyer::MsgConfigureCWKeyer& cfg = (CWKeyer::MsgConfigureCWKeyer&) cmd; + + if (m_settings.m_useReverseAPI) { + webapiReverseSendCWSettings(cfg.getSettings()); + } + + return true; + } + else if (DSPSignalNotification::match(cmd)) + { + // Forward to the source + DSPSignalNotification& notif = (DSPSignalNotification&) cmd; + DSPSignalNotification* rep = new DSPSignalNotification(notif); // make a copy + qDebug() << "WFMMod::handleMessage: DSPSignalNotification"; + m_basebandSource->getInputMessageQueue()->push(rep); + // Forward to GUI if any + if (getMessageQueueToGUI()) { + getMessageQueueToGUI()->push(new DSPSignalNotification(notif)); + } + + return true; + } + else if (MainCore::MsgChannelDemodQuery::match(cmd)) + { + qDebug() << "WFMMod::handleMessage: MsgChannelDemodQuery"; + sendSampleRateToDemodAnalyzer(); + + return true; + } + else + { + return false; + } +} + +void WFMMod::openFileStream() +{ + if (m_ifstream.is_open()) { + m_ifstream.close(); + } + + m_ifstream.open(m_fileName.toStdString().c_str(), std::ios::binary | std::ios::ate); + m_fileSize = m_ifstream.tellg(); + m_ifstream.seekg(0,std::ios_base::beg); + + m_sampleRate = 48000; // fixed rate + m_recordLength = m_fileSize / (sizeof(Real) * m_sampleRate); + + qDebug() << "WFMMod::openFileStream: " << m_fileName.toStdString().c_str() + << " fileSize: " << m_fileSize << "bytes" + << " length: " << m_recordLength << " seconds"; + + MsgReportFileSourceStreamData *report; + report = MsgReportFileSourceStreamData::create(m_sampleRate, m_recordLength); + getMessageQueueToGUI()->push(report); +} + +void WFMMod::seekFileStream(int seekPercentage) +{ + QMutexLocker mutexLocker(&m_settingsMutex); + + if (m_ifstream.is_open()) + { + int seekPoint = ((m_recordLength * seekPercentage) / 100) * m_sampleRate; + seekPoint *= sizeof(Real); + m_ifstream.clear(); + m_ifstream.seekg(seekPoint, std::ios::beg); + } +} + +void WFMMod::applySettings(const WFMModSettings& settings, bool force) +{ + qDebug() << "WFMMod::applySettings:" + << " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset + << " m_rfBandwidth: " << settings.m_rfBandwidth + << " m_afBandwidth: " << settings.m_afBandwidth + << " m_fmDeviation: " << settings.m_fmDeviation + << " m_volumeFactor: " << settings.m_volumeFactor + << " m_toneFrequency: " << settings.m_toneFrequency + << " m_channelMute: " << settings.m_channelMute + << " m_playLoop: " << settings.m_playLoop + << " m_modAFInput: " << settings.m_modAFInput + << " m_audioDeviceName: " << settings.m_audioDeviceName + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIDeviceIndex: " << settings.m_reverseAPIDeviceIndex + << " m_reverseAPIChannelIndex: " << settings.m_reverseAPIChannelIndex + << " force: " << force; + + QList reverseAPIKeys; + + if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) { + reverseAPIKeys.append("inputFrequencyOffset"); + } + if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) { + reverseAPIKeys.append("fmDeviation"); + } + if ((settings.m_volumeFactor != m_settings.m_volumeFactor) || force) { + reverseAPIKeys.append("volumeFactor"); + } + if ((settings.m_channelMute != m_settings.m_channelMute) || force) { + reverseAPIKeys.append("channelMute"); + } + if ((settings.m_playLoop != m_settings.m_playLoop) || force) { + reverseAPIKeys.append("playLoop"); + } + if ((settings.m_modAFInput != m_settings.m_modAFInput) || force) { + reverseAPIKeys.append("modAFInput"); + } + if ((settings.m_afBandwidth != m_settings.m_afBandwidth) || force) { + reverseAPIKeys.append("afBandwidth"); + } + if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) { + reverseAPIKeys.append("rfBandwidth"); + } + if ((settings.m_toneFrequency != m_settings.m_toneFrequency) || force) { + reverseAPIKeys.append("toneFrequency"); + } + if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) { + reverseAPIKeys.append("audioDeviceName"); + } + + if (m_settings.m_streamIndex != settings.m_streamIndex) + { + if (m_deviceAPI->getSampleMIMO()) // change of stream is possible for MIMO devices only + { + m_deviceAPI->removeChannelSourceAPI(this); + m_deviceAPI->removeChannelSource(this, m_settings.m_streamIndex); + m_deviceAPI->addChannelSource(this, settings.m_streamIndex); + m_deviceAPI->addChannelSourceAPI(this); + } + + reverseAPIKeys.append("streamIndex"); + } + + WFMModBaseband::MsgConfigureWFMModBaseband *msg = WFMModBaseband::MsgConfigureWFMModBaseband::create(settings, force); + m_basebandSource->getInputMessageQueue()->push(msg); + + if (settings.m_useReverseAPI) + { + bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || + (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || + (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || + (m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) || + (m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex); + webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + } + + QList pipes; + MainCore::instance()->getMessagePipes().getMessagePipes(this, "settings", pipes); + + if (pipes.size() > 0) { + sendChannelSettings(pipes, reverseAPIKeys, settings, force); + } + + m_settings = settings; +} + +QByteArray WFMMod::serialize() const +{ + return m_settings.serialize(); +} + +bool WFMMod::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(m_settings, true); + m_inputMessageQueue.push(msg); + return true; + } + else + { + m_settings.resetToDefaults(); + MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(m_settings, true); + m_inputMessageQueue.push(msg); + return false; + } +} + +void WFMMod::sendSampleRateToDemodAnalyzer() +{ + QList pipes; + MainCore::instance()->getMessagePipes().getMessagePipes(this, "reportdemod", pipes); + + if (pipes.size() > 0) + { + for (const auto& pipe : pipes) + { + MessageQueue* messageQueue = qobject_cast(pipe->m_element); + MainCore::MsgChannelDemodReport *msg = MainCore::MsgChannelDemodReport::create( + this, + getAudioSampleRate() + ); + messageQueue->push(msg); + } + } +} + +int WFMMod::webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); + response.getWfmModSettings()->init(); + webapiFormatChannelSettings(response, m_settings); + + SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getWfmModSettings()->getCwKeyer(); + const CWKeyerSettings& cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); + CWKeyer::webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); + + return 200; +} + +int WFMMod::webapiWorkspaceGet( + SWGSDRangel::SWGWorkspaceInfo& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setIndex(m_settings.m_workspaceIndex); + return 200; +} + +int WFMMod::webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + WFMModSettings settings = m_settings; + webapiUpdateChannelSettings(settings, channelSettingsKeys, response); + + if (channelSettingsKeys.contains("cwKeyer")) + { + SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = response.getWfmModSettings()->getCwKeyer(); + CWKeyerSettings cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); + CWKeyer::webapiSettingsPutPatch(channelSettingsKeys, cwKeyerSettings, apiCwKeyerSettings); + + CWKeyer::MsgConfigureCWKeyer *msgCwKeyer = CWKeyer::MsgConfigureCWKeyer::create(cwKeyerSettings, force); + m_basebandSource->getCWKeyer().getInputMessageQueue()->push(msgCwKeyer); + + if (m_guiMessageQueue) // forward to GUI if any + { + CWKeyer::MsgConfigureCWKeyer *msgCwKeyerToGUI = CWKeyer::MsgConfigureCWKeyer::create(cwKeyerSettings, force); + m_guiMessageQueue->push(msgCwKeyerToGUI); + } + } + + MsgConfigureWFMMod *msg = MsgConfigureWFMMod::create(settings, force); + m_inputMessageQueue.push(msg); + + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureWFMMod *msgToGUI = MsgConfigureWFMMod::create(settings, force); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatChannelSettings(response, settings); + + return 200; +} + +void WFMMod::webapiUpdateChannelSettings( + WFMModSettings& settings, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response) +{ + if (channelSettingsKeys.contains("channelMute")) { + settings.m_channelMute = response.getWfmModSettings()->getChannelMute() != 0; + } + if (channelSettingsKeys.contains("inputFrequencyOffset")) { + settings.m_inputFrequencyOffset = response.getWfmModSettings()->getInputFrequencyOffset(); + } + if (channelSettingsKeys.contains("modAFInput")) { + settings.m_modAFInput = (WFMModSettings::WFMModInputAF) response.getWfmModSettings()->getModAfInput(); + } + if (channelSettingsKeys.contains("playLoop")) { + settings.m_playLoop = response.getWfmModSettings()->getPlayLoop() != 0; + } + if (channelSettingsKeys.contains("rfBandwidth")) { + settings.m_rfBandwidth = response.getWfmModSettings()->getRfBandwidth(); + } + if (channelSettingsKeys.contains("afBandwidth")) { + settings.m_afBandwidth = response.getWfmModSettings()->getAfBandwidth(); + } + if (channelSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getWfmModSettings()->getRgbColor(); + } + if (channelSettingsKeys.contains("title")) { + settings.m_title = *response.getWfmModSettings()->getTitle(); + } + if (channelSettingsKeys.contains("toneFrequency")) { + settings.m_toneFrequency = response.getWfmModSettings()->getToneFrequency(); + } + if (channelSettingsKeys.contains("volumeFactor")) { + settings.m_volumeFactor = response.getWfmModSettings()->getVolumeFactor(); + } + if (channelSettingsKeys.contains("fmDeviation")) { + settings.m_fmDeviation = response.getWfmModSettings()->getFmDeviation(); + } + if (channelSettingsKeys.contains("streamIndex")) { + settings.m_streamIndex = response.getWfmModSettings()->getStreamIndex(); + } + if (channelSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getWfmModSettings()->getUseReverseApi() != 0; + } + if (channelSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getWfmModSettings()->getReverseApiAddress(); + } + if (channelSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getWfmModSettings()->getReverseApiPort(); + } + if (channelSettingsKeys.contains("reverseAPIDeviceIndex")) { + settings.m_reverseAPIDeviceIndex = response.getWfmModSettings()->getReverseApiDeviceIndex(); + } + if (channelSettingsKeys.contains("reverseAPIChannelIndex")) { + settings.m_reverseAPIChannelIndex = response.getWfmModSettings()->getReverseApiChannelIndex(); + } + if (settings.m_channelMarker && channelSettingsKeys.contains("channelMarker")) { + settings.m_channelMarker->updateFrom(channelSettingsKeys, response.getWfmModSettings()->getChannelMarker()); + } + if (settings.m_rollupState && channelSettingsKeys.contains("rollupState")) { + settings.m_rollupState->updateFrom(channelSettingsKeys, response.getWfmModSettings()->getRollupState()); + } +} + +int WFMMod::webapiReportGet( + SWGSDRangel::SWGChannelReport& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setWfmModReport(new SWGSDRangel::SWGWFMModReport()); + response.getWfmModReport()->init(); + webapiFormatChannelReport(response); + return 200; +} + +void WFMMod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const WFMModSettings& settings) +{ + response.getWfmModSettings()->setChannelMute(settings.m_channelMute ? 1 : 0); + response.getWfmModSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + response.getWfmModSettings()->setModAfInput((int) settings.m_modAFInput); + response.getWfmModSettings()->setPlayLoop(settings.m_playLoop ? 1 : 0); + response.getWfmModSettings()->setRfBandwidth(settings.m_rfBandwidth); + response.getWfmModSettings()->setAfBandwidth(settings.m_afBandwidth); + response.getWfmModSettings()->setFmDeviation(settings.m_fmDeviation); + response.getWfmModSettings()->setRgbColor(settings.m_rgbColor); + + if (response.getWfmModSettings()->getTitle()) { + *response.getWfmModSettings()->getTitle() = settings.m_title; + } else { + response.getWfmModSettings()->setTitle(new QString(settings.m_title)); + } + + response.getWfmModSettings()->setToneFrequency(settings.m_toneFrequency); + response.getWfmModSettings()->setVolumeFactor(settings.m_volumeFactor); + + if (!response.getWfmModSettings()->getCwKeyer()) { + response.getWfmModSettings()->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings); + } + + if (response.getWfmModSettings()->getAudioDeviceName()) { + *response.getWfmModSettings()->getAudioDeviceName() = settings.m_audioDeviceName; + } else { + response.getWfmModSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName)); + } + + response.getWfmModSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getWfmModSettings()->getReverseApiAddress()) { + *response.getWfmModSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getWfmModSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getWfmModSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getWfmModSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); + response.getWfmModSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex); + + if (settings.m_channelMarker) + { + if (response.getWfmModSettings()->getChannelMarker()) + { + settings.m_channelMarker->formatTo(response.getWfmModSettings()->getChannelMarker()); + } + else + { + SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); + settings.m_channelMarker->formatTo(swgChannelMarker); + response.getWfmModSettings()->setChannelMarker(swgChannelMarker); + } + } + + if (settings.m_rollupState) + { + if (response.getWfmModSettings()->getRollupState()) + { + settings.m_rollupState->formatTo(response.getWfmModSettings()->getRollupState()); + } + else + { + SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); + settings.m_rollupState->formatTo(swgRollupState); + response.getWfmModSettings()->setRollupState(swgRollupState); + } + } +} + +void WFMMod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response) +{ + response.getWfmModReport()->setChannelPowerDb(CalcDb::dbPower(getMagSq())); + response.getWfmModReport()->setAudioSampleRate(m_basebandSource->getAudioSampleRate()); + response.getWfmModReport()->setChannelSampleRate(m_basebandSource->getChannelSampleRate()); +} + +void WFMMod::webapiReverseSendSettings(QList& channelSettingsKeys, const WFMModSettings& settings, bool force) +{ + SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); + webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") + .arg(settings.m_reverseAPIAddress) + .arg(settings.m_reverseAPIPort) + .arg(settings.m_reverseAPIDeviceIndex) + .arg(settings.m_reverseAPIChannelIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgChannelSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgChannelSettings; +} + +void WFMMod::webapiReverseSendCWSettings(const CWKeyerSettings& cwKeyerSettings) +{ + SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); + swgChannelSettings->setDirection(1); // single source (Tx) + swgChannelSettings->setChannelType(new QString("WFMMod")); + swgChannelSettings->setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); + SWGSDRangel::SWGWFMModSettings *swgWFMModSettings = swgChannelSettings->getWfmModSettings(); + + swgWFMModSettings->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings()); + SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = swgWFMModSettings->getCwKeyer(); + m_basebandSource->getCWKeyer().webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") + .arg(m_settings.m_reverseAPIAddress) + .arg(m_settings.m_reverseAPIPort) + .arg(m_settings.m_reverseAPIDeviceIndex) + .arg(m_settings.m_reverseAPIChannelIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgChannelSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgChannelSettings; +} + +void WFMMod::sendChannelSettings( + const QList& pipes, + QList& channelSettingsKeys, + const WFMModSettings& settings, + bool force) +{ + for (const auto& pipe : pipes) + { + MessageQueue *messageQueue = qobject_cast(pipe->m_element); + + if (messageQueue) + { + SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); + webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); + MainCore::MsgChannelSettings *msg = MainCore::MsgChannelSettings::create( + this, + channelSettingsKeys, + swgChannelSettings, + force + ); + messageQueue->push(msg); + } + } +} + +void WFMMod::webapiFormatChannelSettings( + QList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings *swgChannelSettings, + const WFMModSettings& settings, + bool force +) +{ + swgChannelSettings->setDirection(1); // single source (Tx) + swgChannelSettings->setOriginatorChannelIndex(getIndexInDeviceSet()); + swgChannelSettings->setOriginatorDeviceSetIndex(getDeviceSetIndex()); + swgChannelSettings->setChannelType(new QString(m_channelId)); + swgChannelSettings->setWfmModSettings(new SWGSDRangel::SWGWFMModSettings()); + SWGSDRangel::SWGWFMModSettings *swgWFMModSettings = swgChannelSettings->getWfmModSettings(); + + // transfer data that has been modified. When force is on transfer all data except reverse API data + + if (channelSettingsKeys.contains("channelMute") || force) { + swgWFMModSettings->setChannelMute(settings.m_channelMute ? 1 : 0); + } + if (channelSettingsKeys.contains("inputFrequencyOffset") || force) { + swgWFMModSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + } + if (channelSettingsKeys.contains("modAFInput") || force) { + swgWFMModSettings->setModAfInput((int) settings.m_modAFInput); + } + if (channelSettingsKeys.contains("playLoop") || force) { + swgWFMModSettings->setPlayLoop(settings.m_playLoop ? 1 : 0); + } + if (channelSettingsKeys.contains("rfBandwidth") || force) { + swgWFMModSettings->setRfBandwidth(settings.m_rfBandwidth); + } + if (channelSettingsKeys.contains("afBandwidth") || force) { + swgWFMModSettings->setAfBandwidth(settings.m_afBandwidth); + } + if (channelSettingsKeys.contains("rgbColor") || force) { + swgWFMModSettings->setRgbColor(settings.m_rgbColor); + } + if (channelSettingsKeys.contains("title") || force) { + swgWFMModSettings->setTitle(new QString(settings.m_title)); + } + if (channelSettingsKeys.contains("toneFrequency") || force) { + swgWFMModSettings->setToneFrequency(settings.m_toneFrequency); + } + if (channelSettingsKeys.contains("volumeFactor") || force) { + swgWFMModSettings->setVolumeFactor(settings.m_volumeFactor); + } + if (channelSettingsKeys.contains("fmDeviation")) { + swgWFMModSettings->setFmDeviation(settings.m_fmDeviation); + } + if (channelSettingsKeys.contains("streamIndex")) { + swgWFMModSettings->setStreamIndex(settings.m_streamIndex); + } + if (channelSettingsKeys.contains("audioDeviceName") || force) { + swgWFMModSettings->setAudioDeviceName(new QString(settings.m_audioDeviceName)); + } + + if (settings.m_channelMarker && (channelSettingsKeys.contains("channelMarker") || force)) + { + SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); + settings.m_channelMarker->formatTo(swgChannelMarker); + swgWFMModSettings->setChannelMarker(swgChannelMarker); + } + + if (settings.m_rollupState && (channelSettingsKeys.contains("rollupState") || force)) + { + SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); + settings.m_rollupState->formatTo(swgRollupState); + swgWFMModSettings->setRollupState(swgRollupState); + } + + if (force) + { + const CWKeyerSettings& cwKeyerSettings = m_basebandSource->getCWKeyer().getSettings(); + swgWFMModSettings->setCwKeyer(new SWGSDRangel::SWGCWKeyerSettings()); + SWGSDRangel::SWGCWKeyerSettings *apiCwKeyerSettings = swgWFMModSettings->getCwKeyer(); + m_basebandSource->getCWKeyer().webapiFormatChannelSettings(apiCwKeyerSettings, cwKeyerSettings); + } +} + +void WFMMod::networkManagerFinished(QNetworkReply *reply) +{ + QNetworkReply::NetworkError replyError = reply->error(); + + if (replyError) + { + qWarning() << "WFMMod::networkManagerFinished:" + << " error(" << (int) replyError + << "): " << replyError + << ": " << reply->errorString(); + } + else + { + QString answer = reply->readAll(); + answer.chop(1); // remove last \n + qDebug("WFMMod::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); + } + + reply->deleteLater(); +} + +double WFMMod::getMagSq() const +{ + return m_basebandSource->getMagSq(); +} + +CWKeyer *WFMMod::getCWKeyer() +{ + return &m_basebandSource->getCWKeyer(); +} + +void WFMMod::setLevelMeter(QObject *levelMeter) +{ + connect(m_basebandSource, SIGNAL(levelChanged(qreal, qreal, int)), levelMeter, SLOT(levelChanged(qreal, qreal, int))); +} + +uint32_t WFMMod::getNumberOfDeviceStreams() const +{ + return m_deviceAPI->getNbSinkStreams(); +} + +int WFMMod::getAudioSampleRate() const +{ + return m_basebandSource->getAudioSampleRate(); +} + +int WFMMod::getFeedbackAudioSampleRate() const +{ + return m_basebandSource->getFeedbackAudioSampleRate(); +} diff --git a/plugins/channeltx/modwfm/wfmmod.h b/plugins/channeltx/modwfm/wfmmod.h index 75d7090f9..879aa5547 100644 --- a/plugins/channeltx/modwfm/wfmmod.h +++ b/plugins/channeltx/modwfm/wfmmod.h @@ -1,303 +1,305 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // -// // -// 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 PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ -#define PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ - -#include -#include -#include - -#include -#include - -#include "dsp/basebandsamplesource.h" -#include "channel/channelapi.h" -#include "util/message.h" - -#include "wfmmodsettings.h" - -class QNetworkAccessManager; -class QNetworkReply; -class QThread; -class DeviceAPI; -class CWKeyer; -class WFMModBaseband; -class ObjectPipe; - -class WFMMod : public BasebandSampleSource, public ChannelAPI { -public: - class MsgConfigureWFMMod : public Message { - MESSAGE_CLASS_DECLARATION - - public: - const WFMModSettings& getSettings() const { return m_settings; } - bool getForce() const { return m_force; } - - static MsgConfigureWFMMod* create(const WFMModSettings& settings, bool force) - { - return new MsgConfigureWFMMod(settings, force); - } - - private: - WFMModSettings m_settings; - bool m_force; - - MsgConfigureWFMMod(const WFMModSettings& settings, bool force) : - Message(), - m_settings(settings), - m_force(force) - { } - }; - - class MsgConfigureFileSourceName : public Message - { - MESSAGE_CLASS_DECLARATION - - public: - const QString& getFileName() const { return m_fileName; } - - static MsgConfigureFileSourceName* create(const QString& fileName) - { - return new MsgConfigureFileSourceName(fileName); - } - - private: - QString m_fileName; - - MsgConfigureFileSourceName(const QString& fileName) : - Message(), - m_fileName(fileName) - { } - }; - - class MsgConfigureFileSourceSeek : public Message - { - MESSAGE_CLASS_DECLARATION - - public: - int getPercentage() const { return m_seekPercentage; } - - static MsgConfigureFileSourceSeek* create(int seekPercentage) - { - return new MsgConfigureFileSourceSeek(seekPercentage); - } - - protected: - int m_seekPercentage; //!< percentage of seek position from the beginning 0..100 - - MsgConfigureFileSourceSeek(int seekPercentage) : - Message(), - m_seekPercentage(seekPercentage) - { } - }; - - class MsgConfigureFileSourceStreamTiming : public Message { - MESSAGE_CLASS_DECLARATION - - public: - - static MsgConfigureFileSourceStreamTiming* create() - { - return new MsgConfigureFileSourceStreamTiming(); - } - - private: - - MsgConfigureFileSourceStreamTiming() : - Message() - { } - }; - - class MsgReportFileSourceStreamTiming : public Message - { - MESSAGE_CLASS_DECLARATION - - public: - std::size_t getSamplesCount() const { return m_samplesCount; } - - static MsgReportFileSourceStreamTiming* create(std::size_t samplesCount) - { - return new MsgReportFileSourceStreamTiming(samplesCount); - } - - protected: - std::size_t m_samplesCount; - - MsgReportFileSourceStreamTiming(std::size_t samplesCount) : - Message(), - m_samplesCount(samplesCount) - { } - }; - - class MsgReportFileSourceStreamData : public Message { - MESSAGE_CLASS_DECLARATION - - public: - int getSampleRate() const { return m_sampleRate; } - quint32 getRecordLength() const { return m_recordLength; } - - static MsgReportFileSourceStreamData* create(int sampleRate, - quint32 recordLength) - { - return new MsgReportFileSourceStreamData(sampleRate, recordLength); - } - - protected: - int m_sampleRate; - quint32 m_recordLength; - - MsgReportFileSourceStreamData(int sampleRate, - quint32 recordLength) : - Message(), - m_sampleRate(sampleRate), - m_recordLength(recordLength) - { } - }; - - //================================================================= - - WFMMod(DeviceAPI *deviceAPI); - virtual ~WFMMod(); - virtual void destroy() { delete this; } - virtual void setDeviceAPI(DeviceAPI *deviceAPI); - virtual DeviceAPI *getDeviceAPI() { return m_deviceAPI; } - - virtual void start(); - virtual void stop(); - virtual void pull(SampleVector::iterator& begin, unsigned int nbSamples); - virtual void pushMessage(Message *msg) { m_inputMessageQueue.push(msg); } - virtual QString getSourceName() { return objectName(); } - - virtual void getIdentifier(QString& id) { id = objectName(); } - virtual QString getIdentifier() const { return objectName(); } - virtual void getTitle(QString& title) { title = m_settings.m_title; } - virtual qint64 getCenterFrequency() const { return m_settings.m_inputFrequencyOffset; } - virtual void setCenterFrequency(qint64 frequency); - - virtual QByteArray serialize() const; - virtual bool deserialize(const QByteArray& data); - - virtual int getNbSinkStreams() const { return 1; } - virtual int getNbSourceStreams() const { return 0; } - - virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const - { - (void) streamIndex; - (void) sinkElseSource; - return m_settings.m_inputFrequencyOffset; - } - - virtual int webapiSettingsGet( - SWGSDRangel::SWGChannelSettings& response, - QString& errorMessage); - - virtual int webapiWorkspaceGet( - SWGSDRangel::SWGWorkspaceInfo& response, - QString& errorMessage); - - virtual int webapiSettingsPutPatch( - bool force, - const QStringList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings& response, - QString& errorMessage); - - virtual int webapiReportGet( - SWGSDRangel::SWGChannelReport& response, - QString& errorMessage); - - static void webapiFormatChannelSettings( - SWGSDRangel::SWGChannelSettings& response, - const WFMModSettings& settings); - - static void webapiUpdateChannelSettings( - WFMModSettings& settings, - const QStringList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings& response); - - double getMagSq() const; - CWKeyer *getCWKeyer(); - void setLevelMeter(QObject *levelMeter); - uint32_t getNumberOfDeviceStreams() const; - int getAudioSampleRate() const; - int getFeedbackAudioSampleRate() const; - - static const char* const m_channelIdURI; - static const char* const m_channelId; - -signals: - /** - * Level changed - * \param rmsLevel RMS level in range 0.0 - 1.0 - * \param peakLevel Peak level in range 0.0 - 1.0 - * \param numSamples Number of audio samples analyzed - */ - void levelChanged(qreal rmsLevel, qreal peakLevel, int numSamples); - - -private: - enum RateState { - RSInitialFill, - RSRunning - }; - - DeviceAPI* m_deviceAPI; - QThread *m_thread; - WFMModBaseband* m_basebandSource; - WFMModSettings m_settings; - - SampleVector m_sampleBuffer; - QRecursiveMutex m_settingsMutex; - - std::ifstream m_ifstream; - QString m_fileName; - quint64 m_fileSize; //!< raw file size (bytes) - quint32 m_recordLength; //!< record length in seconds computed from file size - int m_sampleRate; - - QNetworkAccessManager *m_networkManager; - QNetworkRequest m_networkRequest; - - static const int m_levelNbSamples; - - virtual bool handleMessage(const Message& cmd); - void applySettings(const WFMModSettings& settings, bool force = false); - void sendSampleRateToDemodAnalyzer(); - void openFileStream(); - void seekFileStream(int seekPercentage); - void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response); - void webapiReverseSendSettings(QList& channelSettingsKeys, const WFMModSettings& settings, bool force); - void webapiReverseSendCWSettings(const CWKeyerSettings& settings); - void sendChannelSettings( - const QList& pipes, - QList& channelSettingsKeys, - const WFMModSettings& settings, - bool force - ); - void webapiFormatChannelSettings( - QList& channelSettingsKeys, - SWGSDRangel::SWGChannelSettings *swgChannelSettings, - const WFMModSettings& settings, - bool force - ); - -private slots: - void networkManagerFinished(QNetworkReply *reply); -}; - - -#endif /* PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ */ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // +// // +// 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 PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ +#define PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ + +#include +#include +#include + +#include +#include + +#include "dsp/basebandsamplesource.h" +#include "channel/channelapi.h" +#include "util/message.h" + +#include "wfmmodsettings.h" + +class QNetworkAccessManager; +class QNetworkReply; +class QThread; +class DeviceAPI; +class CWKeyer; +class WFMModBaseband; +class ObjectPipe; + +class WFMMod : public BasebandSampleSource, public ChannelAPI { +public: + class MsgConfigureWFMMod : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const WFMModSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureWFMMod* create(const WFMModSettings& settings, bool force) + { + return new MsgConfigureWFMMod(settings, force); + } + + private: + WFMModSettings m_settings; + bool m_force; + + MsgConfigureWFMMod(const WFMModSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + class MsgConfigureFileSourceName : public Message + { + MESSAGE_CLASS_DECLARATION + + public: + const QString& getFileName() const { return m_fileName; } + + static MsgConfigureFileSourceName* create(const QString& fileName) + { + return new MsgConfigureFileSourceName(fileName); + } + + private: + QString m_fileName; + + MsgConfigureFileSourceName(const QString& fileName) : + Message(), + m_fileName(fileName) + { } + }; + + class MsgConfigureFileSourceSeek : public Message + { + MESSAGE_CLASS_DECLARATION + + public: + int getPercentage() const { return m_seekPercentage; } + + static MsgConfigureFileSourceSeek* create(int seekPercentage) + { + return new MsgConfigureFileSourceSeek(seekPercentage); + } + + protected: + int m_seekPercentage; //!< percentage of seek position from the beginning 0..100 + + MsgConfigureFileSourceSeek(int seekPercentage) : + Message(), + m_seekPercentage(seekPercentage) + { } + }; + + class MsgConfigureFileSourceStreamTiming : public Message { + MESSAGE_CLASS_DECLARATION + + public: + + static MsgConfigureFileSourceStreamTiming* create() + { + return new MsgConfigureFileSourceStreamTiming(); + } + + private: + + MsgConfigureFileSourceStreamTiming() : + Message() + { } + }; + + class MsgReportFileSourceStreamTiming : public Message + { + MESSAGE_CLASS_DECLARATION + + public: + std::size_t getSamplesCount() const { return m_samplesCount; } + + static MsgReportFileSourceStreamTiming* create(std::size_t samplesCount) + { + return new MsgReportFileSourceStreamTiming(samplesCount); + } + + protected: + std::size_t m_samplesCount; + + MsgReportFileSourceStreamTiming(std::size_t samplesCount) : + Message(), + m_samplesCount(samplesCount) + { } + }; + + class MsgReportFileSourceStreamData : public Message { + MESSAGE_CLASS_DECLARATION + + public: + int getSampleRate() const { return m_sampleRate; } + quint32 getRecordLength() const { return m_recordLength; } + + static MsgReportFileSourceStreamData* create(int sampleRate, + quint32 recordLength) + { + return new MsgReportFileSourceStreamData(sampleRate, recordLength); + } + + protected: + int m_sampleRate; + quint32 m_recordLength; + + MsgReportFileSourceStreamData(int sampleRate, + quint32 recordLength) : + Message(), + m_sampleRate(sampleRate), + m_recordLength(recordLength) + { } + }; + + //================================================================= + + WFMMod(DeviceAPI *deviceAPI); + virtual ~WFMMod(); + virtual void destroy() { delete this; } + virtual void setDeviceAPI(DeviceAPI *deviceAPI); + virtual DeviceAPI *getDeviceAPI() { return m_deviceAPI; } + + virtual void start(); + virtual void stop(); + virtual void pull(SampleVector::iterator& begin, unsigned int nbSamples); + virtual void pushMessage(Message *msg) { m_inputMessageQueue.push(msg); } + virtual QString getSourceName() { return objectName(); } + + virtual void getIdentifier(QString& id) { id = objectName(); } + virtual QString getIdentifier() const { return objectName(); } + virtual void getTitle(QString& title) { title = m_settings.m_title; } + virtual qint64 getCenterFrequency() const { return m_settings.m_inputFrequencyOffset; } + virtual void setCenterFrequency(qint64 frequency); + + virtual QByteArray serialize() const; + virtual bool deserialize(const QByteArray& data); + + virtual int getNbSinkStreams() const { return 1; } + virtual int getNbSourceStreams() const { return 0; } + + virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const + { + (void) streamIndex; + (void) sinkElseSource; + return m_settings.m_inputFrequencyOffset; + } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + + virtual int webapiWorkspaceGet( + SWGSDRangel::SWGWorkspaceInfo& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + + virtual int webapiReportGet( + SWGSDRangel::SWGChannelReport& response, + QString& errorMessage); + + static void webapiFormatChannelSettings( + SWGSDRangel::SWGChannelSettings& response, + const WFMModSettings& settings); + + static void webapiUpdateChannelSettings( + WFMModSettings& settings, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response); + + double getMagSq() const; + CWKeyer *getCWKeyer(); + void setLevelMeter(QObject *levelMeter); + uint32_t getNumberOfDeviceStreams() const; + int getAudioSampleRate() const; + int getFeedbackAudioSampleRate() const; + + static const char* const m_channelIdURI; + static const char* const m_channelId; + +signals: + /** + * Level changed + * \param rmsLevel RMS level in range 0.0 - 1.0 + * \param peakLevel Peak level in range 0.0 - 1.0 + * \param numSamples Number of audio samples analyzed + */ + void levelChanged(qreal rmsLevel, qreal peakLevel, int numSamples); + + +private: + enum RateState { + RSInitialFill, + RSRunning + }; + + DeviceAPI* m_deviceAPI; + QThread *m_thread; + WFMModBaseband* m_basebandSource; + WFMModSettings m_settings; + + SampleVector m_sampleBuffer; + QRecursiveMutex m_settingsMutex; + + std::ifstream m_ifstream; + QString m_fileName; + quint64 m_fileSize; //!< raw file size (bytes) + quint32 m_recordLength; //!< record length in seconds computed from file size + int m_sampleRate; + + QNetworkAccessManager *m_networkManager; + QNetworkRequest m_networkRequest; + + static const int m_levelNbSamples; + + virtual bool handleMessage(const Message& cmd); + void applySettings(const WFMModSettings& settings, bool force = false); + void sendSampleRateToDemodAnalyzer(); + void openFileStream(); + void seekFileStream(int seekPercentage); + void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response); + void webapiReverseSendSettings(QList& channelSettingsKeys, const WFMModSettings& settings, bool force); + void webapiReverseSendCWSettings(const CWKeyerSettings& settings); + void sendChannelSettings( + const QList& pipes, + QList& channelSettingsKeys, + const WFMModSettings& settings, + bool force + ); + void webapiFormatChannelSettings( + QList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings *swgChannelSettings, + const WFMModSettings& settings, + bool force + ); + +private slots: + void networkManagerFinished(QNetworkReply *reply); +}; + + +#endif /* PLUGINS_CHANNELTX_MODWFM_WFMMOD_H_ */ diff --git a/plugins/channeltx/modwfm/wfmmodbaseband.cpp b/plugins/channeltx/modwfm/wfmmodbaseband.cpp index 1401adb87..5ac75bd29 100644 --- a/plugins/channeltx/modwfm/wfmmodbaseband.cpp +++ b/plugins/channeltx/modwfm/wfmmodbaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodbaseband.h b/plugins/channeltx/modwfm/wfmmodbaseband.h index 58ada5d11..900fbb8d9 100644 --- a/plugins/channeltx/modwfm/wfmmodbaseband.h +++ b/plugins/channeltx/modwfm/wfmmodbaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodgui.cpp b/plugins/channeltx/modwfm/wfmmodgui.cpp index eca326ed6..0d690ad6f 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.cpp +++ b/plugins/channeltx/modwfm/wfmmodgui.cpp @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2018 beta-tester // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/modwfm/wfmmodgui.h b/plugins/channeltx/modwfm/wfmmodgui.h index 1e5fbbb19..57432b5af 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.h +++ b/plugins/channeltx/modwfm/wfmmodgui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/modwfm/wfmmodplugin.cpp b/plugins/channeltx/modwfm/wfmmodplugin.cpp index e74e4954c..5c5d6da33 100644 --- a/plugins/channeltx/modwfm/wfmmodplugin.cpp +++ b/plugins/channeltx/modwfm/wfmmodplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodplugin.h b/plugins/channeltx/modwfm/wfmmodplugin.h index e2cd07a2b..79bf87e10 100644 --- a/plugins/channeltx/modwfm/wfmmodplugin.h +++ b/plugins/channeltx/modwfm/wfmmodplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2017, 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodsettings.cpp b/plugins/channeltx/modwfm/wfmmodsettings.cpp index ccf7501ca..58f45d571 100644 --- a/plugins/channeltx/modwfm/wfmmodsettings.cpp +++ b/plugins/channeltx/modwfm/wfmmodsettings.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modwfm/wfmmodsettings.h b/plugins/channeltx/modwfm/wfmmodsettings.h index 9d5edd10b..35bdd31e6 100644 --- a/plugins/channeltx/modwfm/wfmmodsettings.h +++ b/plugins/channeltx/modwfm/wfmmodsettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/modwfm/wfmmodsource.cpp b/plugins/channeltx/modwfm/wfmmodsource.cpp index c30fc15b6..532ccf594 100644 --- a/plugins/channeltx/modwfm/wfmmodsource.cpp +++ b/plugins/channeltx/modwfm/wfmmodsource.cpp @@ -13,6 +13,8 @@ // You should have received a copy of the GNU General Public License // // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // #include diff --git a/plugins/channeltx/modwfm/wfmmodsource.h b/plugins/channeltx/modwfm/wfmmodsource.h index 0255b6921..066721f0d 100644 --- a/plugins/channeltx/modwfm/wfmmodsource.h +++ b/plugins/channeltx/modwfm/wfmmodsource.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodwebapiadapter.cpp b/plugins/channeltx/modwfm/wfmmodwebapiadapter.cpp index 8dc86cf17..f8d1fed48 100644 --- a/plugins/channeltx/modwfm/wfmmodwebapiadapter.cpp +++ b/plugins/channeltx/modwfm/wfmmodwebapiadapter.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/modwfm/wfmmodwebapiadapter.h b/plugins/channeltx/modwfm/wfmmodwebapiadapter.h index f1143d42a..7620a6c2d 100644 --- a/plugins/channeltx/modwfm/wfmmodwebapiadapter.h +++ b/plugins/channeltx/modwfm/wfmmodwebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesource.cpp b/plugins/channeltx/remotesource/remotesource.cpp index 35ef6f583..e457dcc6f 100644 --- a/plugins/channeltx/remotesource/remotesource.cpp +++ b/plugins/channeltx/remotesource/remotesource.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesource.h b/plugins/channeltx/remotesource/remotesource.h index 0ada09b3c..67c251cc2 100644 --- a/plugins/channeltx/remotesource/remotesource.h +++ b/plugins/channeltx/remotesource/remotesource.h @@ -1,5 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcebaseband.cpp b/plugins/channeltx/remotesource/remotesourcebaseband.cpp index 392d736c9..197fae2ad 100644 --- a/plugins/channeltx/remotesource/remotesourcebaseband.cpp +++ b/plugins/channeltx/remotesource/remotesourcebaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019, 2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcebaseband.h b/plugins/channeltx/remotesource/remotesourcebaseband.h index 111566d5a..8eb3561f2 100644 --- a/plugins/channeltx/remotesource/remotesourcebaseband.h +++ b/plugins/channeltx/remotesource/remotesourcebaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcegui.cpp b/plugins/channeltx/remotesource/remotesourcegui.cpp index 51c1beda7..c94a03003 100644 --- a/plugins/channeltx/remotesource/remotesourcegui.cpp +++ b/plugins/channeltx/remotesource/remotesourcegui.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/remotesource/remotesourcegui.h b/plugins/channeltx/remotesource/remotesourcegui.h index a7d643110..c8aaec1d8 100644 --- a/plugins/channeltx/remotesource/remotesourcegui.h +++ b/plugins/channeltx/remotesource/remotesourcegui.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/remotesource/remotesourceplugin.cpp b/plugins/channeltx/remotesource/remotesourceplugin.cpp index 9d3691104..1a9f307cc 100644 --- a/plugins/channeltx/remotesource/remotesourceplugin.cpp +++ b/plugins/channeltx/remotesource/remotesourceplugin.cpp @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourceplugin.h b/plugins/channeltx/remotesource/remotesourceplugin.h index df40512bc..d97f5b463 100644 --- a/plugins/channeltx/remotesource/remotesourceplugin.h +++ b/plugins/channeltx/remotesource/remotesourceplugin.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcesettings.cpp b/plugins/channeltx/remotesource/remotesourcesettings.cpp index 77124000b..a4e10a890 100644 --- a/plugins/channeltx/remotesource/remotesourcesettings.cpp +++ b/plugins/channeltx/remotesource/remotesourcesettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2019, 2021-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/remotesource/remotesourcesettings.h b/plugins/channeltx/remotesource/remotesourcesettings.h index a58039ad2..dd0a8dd9d 100644 --- a/plugins/channeltx/remotesource/remotesourcesettings.h +++ b/plugins/channeltx/remotesource/remotesourcesettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019, 2021-2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/remotesource/remotesourcesource.cpp b/plugins/channeltx/remotesource/remotesourcesource.cpp index 90fa4e732..601edf980 100644 --- a/plugins/channeltx/remotesource/remotesourcesource.cpp +++ b/plugins/channeltx/remotesource/remotesourcesource.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcesource.h b/plugins/channeltx/remotesource/remotesourcesource.h index 6d23d217f..31b9f0fca 100644 --- a/plugins/channeltx/remotesource/remotesourcesource.h +++ b/plugins/channeltx/remotesource/remotesourcesource.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2021 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcewebapiadapter.cpp b/plugins/channeltx/remotesource/remotesourcewebapiadapter.cpp index db08e1b16..3397edd64 100644 --- a/plugins/channeltx/remotesource/remotesourcewebapiadapter.cpp +++ b/plugins/channeltx/remotesource/remotesourcewebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourcewebapiadapter.h b/plugins/channeltx/remotesource/remotesourcewebapiadapter.h index 0e38676f2..0095292f2 100644 --- a/plugins/channeltx/remotesource/remotesourcewebapiadapter.h +++ b/plugins/channeltx/remotesource/remotesourcewebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourceworker.cpp b/plugins/channeltx/remotesource/remotesourceworker.cpp index 9e61ed332..b6d30993e 100644 --- a/plugins/channeltx/remotesource/remotesourceworker.cpp +++ b/plugins/channeltx/remotesource/remotesourceworker.cpp @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2018-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2022 Jon Beniston, M7RCE // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/remotesource/remotesourceworker.h b/plugins/channeltx/remotesource/remotesourceworker.h index 89b18990f..9e1eb7bcd 100644 --- a/plugins/channeltx/remotesource/remotesourceworker.h +++ b/plugins/channeltx/remotesource/remotesourceworker.h @@ -1,5 +1,9 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2018-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2021 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsource.cpp b/plugins/channeltx/udpsource/udpsource.cpp index 62753e585..b4116ae46 100644 --- a/plugins/channeltx/udpsource/udpsource.cpp +++ b/plugins/channeltx/udpsource/udpsource.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsource.h b/plugins/channeltx/udpsource/udpsource.h index c7337954c..6e6662794 100644 --- a/plugins/channeltx/udpsource/udpsource.h +++ b/plugins/channeltx/udpsource/udpsource.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2020 Kacper Michajłow // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcebaseband.cpp b/plugins/channeltx/udpsource/udpsourcebaseband.cpp index ddb2b2603..1ea0167b1 100644 --- a/plugins/channeltx/udpsource/udpsourcebaseband.cpp +++ b/plugins/channeltx/udpsource/udpsourcebaseband.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcebaseband.h b/plugins/channeltx/udpsource/udpsourcebaseband.h index 855924860..77d9d01e0 100644 --- a/plugins/channeltx/udpsource/udpsourcebaseband.h +++ b/plugins/channeltx/udpsource/udpsourcebaseband.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 Jiří Pinkava // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcegui.cpp b/plugins/channeltx/udpsource/udpsourcegui.cpp index 458d227d4..4079497ca 100644 --- a/plugins/channeltx/udpsource/udpsourcegui.cpp +++ b/plugins/channeltx/udpsource/udpsourcegui.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2023 Edouard Griffiths, F4EXB // +// Copyright (C) 2021-2023 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 // diff --git a/plugins/channeltx/udpsource/udpsourcegui.h b/plugins/channeltx/udpsource/udpsourcegui.h index af7abf7be..1b2981622 100644 --- a/plugins/channeltx/udpsource/udpsourcegui.h +++ b/plugins/channeltx/udpsource/udpsourcegui.h @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2016-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2022 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 // diff --git a/plugins/channeltx/udpsource/udpsourcemsg.cpp b/plugins/channeltx/udpsource/udpsourcemsg.cpp index 373fc1169..576a11550 100644 --- a/plugins/channeltx/udpsource/udpsourcemsg.cpp +++ b/plugins/channeltx/udpsource/udpsourcemsg.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcemsg.h b/plugins/channeltx/udpsource/udpsourcemsg.h index 716dc2a55..94ca3cbf1 100644 --- a/plugins/channeltx/udpsource/udpsourcemsg.h +++ b/plugins/channeltx/udpsource/udpsourcemsg.h @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2019 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourceplugin.cpp b/plugins/channeltx/udpsource/udpsourceplugin.cpp index 79003912c..78296e932 100644 --- a/plugins/channeltx/udpsource/udpsourceplugin.cpp +++ b/plugins/channeltx/udpsource/udpsourceplugin.cpp @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 F4EXB // -// written by Edouard Griffiths // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Davide Gerhard // +// Copyright (C) 2020 Kacper Michajłow // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourceplugin.h b/plugins/channeltx/udpsource/udpsourceplugin.h index a81fa700d..18d151406 100644 --- a/plugins/channeltx/udpsource/udpsourceplugin.h +++ b/plugins/channeltx/udpsource/udpsourceplugin.h @@ -1,6 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 F4EXB // -// written by Edouard Griffiths // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // +// Copyright (C) 2015 John Greb // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcesettings.cpp b/plugins/channeltx/udpsource/udpsourcesettings.cpp index 346cb996c..db7ca32f2 100644 --- a/plugins/channeltx/udpsource/udpsourcesettings.cpp +++ b/plugins/channeltx/udpsource/udpsourcesettings.cpp @@ -1,5 +1,6 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/udpsource/udpsourcesettings.h b/plugins/channeltx/udpsource/udpsourcesettings.h index 3aa3b5429..ac731f5c3 100644 --- a/plugins/channeltx/udpsource/udpsourcesettings.h +++ b/plugins/channeltx/udpsource/udpsourcesettings.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020, 2022 Edouard Griffiths, F4EXB // +// 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 // diff --git a/plugins/channeltx/udpsource/udpsourcesource.cpp b/plugins/channeltx/udpsource/udpsourcesource.cpp index 0fcdc7356..ce223c5b6 100644 --- a/plugins/channeltx/udpsource/udpsourcesource.cpp +++ b/plugins/channeltx/udpsource/udpsourcesource.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // @@ -453,4 +453,4 @@ void UDPSourceSource::sampleRateCorrection(float rawDeltaRatio, float correction m_interpolatorConsumed = false; m_interpolatorDistance = (Real) m_actualInputSampleRate / (Real) m_channelSampleRate; } -} \ No newline at end of file +} diff --git a/plugins/channeltx/udpsource/udpsourcesource.h b/plugins/channeltx/udpsource/udpsourcesource.h index b9c148efc..77d1b114d 100644 --- a/plugins/channeltx/udpsource/udpsourcesource.h +++ b/plugins/channeltx/udpsource/udpsourcesource.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017-2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2019-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourceudphandler.cpp b/plugins/channeltx/udpsource/udpsourceudphandler.cpp index 67c942aeb..9a4605093 100644 --- a/plugins/channeltx/udpsource/udpsourceudphandler.cpp +++ b/plugins/channeltx/udpsource/udpsourceudphandler.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2017-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourceudphandler.h b/plugins/channeltx/udpsource/udpsourceudphandler.h index 89e600ab7..f88edcb08 100644 --- a/plugins/channeltx/udpsource/udpsourceudphandler.h +++ b/plugins/channeltx/udpsource/udpsourceudphandler.h @@ -1,5 +1,8 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2014 John Greb // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcewebapiadapter.cpp b/plugins/channeltx/udpsource/udpsourcewebapiadapter.cpp index 19f1648a3..4684fd952 100644 --- a/plugins/channeltx/udpsource/udpsourcewebapiadapter.cpp +++ b/plugins/channeltx/udpsource/udpsourcewebapiadapter.cpp @@ -1,5 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // // // 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 // diff --git a/plugins/channeltx/udpsource/udpsourcewebapiadapter.h b/plugins/channeltx/udpsource/udpsourcewebapiadapter.h index d4bf73495..fa78e50ea 100644 --- a/plugins/channeltx/udpsource/udpsourcewebapiadapter.h +++ b/plugins/channeltx/udpsource/udpsourcewebapiadapter.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // 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 //