Merge branch 'release-2.3.0' into develop

This commit is contained in:
Bill Somerville 2020-12-05 18:43:00 +00:00
commit 06f9800b2f
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
16 changed files with 332 additions and 118 deletions

43
AppVersion/AppVersion.cpp Normal file
View File

@ -0,0 +1,43 @@
//
// wsjtx_app_version - a console application that outputs WSJT-X
// application version
//
// This application is only provided as a simple console application
//
//
#include <cstdlib>
#include <iostream>
#include <exception>
#include <QCoreApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include "revision_utils.hpp"
int main (int argc, char * argv[])
{
QCoreApplication app {argc, argv};
try
{
app.setApplicationName ("WSJT-X");
app.setApplicationVersion (version());
QCommandLineParser parser;
// parser.setApplicationDescription ("\n" PROJECT_DESCRIPTION);
parser.addHelpOption ();
parser.addVersionOption ();
parser.process (app);
return EXIT_SUCCESS;
}
catch (std::exception const& e)
{
std::cerr << "Error: " << e.what () << '\n';
}
catch (...)
{
std::cerr << "Unexpected error\n";
}
return -1;
}

View File

@ -7,6 +7,7 @@
#include <qmath.h>
#include <QDebug>
#include "Logger.hpp"
#include "Audio/AudioDevice.hpp"
#include "moc_soundout.cpp"
@ -104,15 +105,13 @@ void SoundOutput::restart (QIODevice * source)
// Windows implementation seems to forget the buffer size after a
// stop.
//qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize ();
if (m_framesBuffered)
if (m_framesBuffered > 0)
{
#if defined (Q_OS_WIN)
m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered));
#endif
}
m_stream->setCategory ("production");
m_stream->start (source);
// qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize ();
LOG_INFO ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
}
void SoundOutput::suspend ()

View File

@ -1457,6 +1457,15 @@ generate_version_info (udp_daemon_VERSION_RESOURCES
add_executable (udp_daemon UDPExamples/UDPDaemon.cpp ${udp_daemon_VERSION_RESOURCES})
target_link_libraries (udp_daemon wsjtx_udp-static)
generate_version_info (wsjtx_app_version_VERSION_RESOURCES
NAME wsjtx_app_version
BUNDLE ${PROJECT_BUNDLE_NAME}
ICON ${WSJTX_ICON_FILE}
FILE_DESCRIPTION "Display WSJT-X Application Version on console"
)
add_executable (wsjtx_app_version AppVersion/AppVersion.cpp ${wsjtx_app_version_VERSION_RESOURCES})
target_link_libraries (wsjtx_app_version wsjt_qt)
generate_version_info (message_aggregator_VERSION_RESOURCES
NAME message_aggregator
BUNDLE ${PROJECT_BUNDLE_NAME}
@ -1516,7 +1525,7 @@ install (TARGETS wsjtx
# DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wsjtx
# )
install (TARGETS udp_daemon message_aggregator
install (TARGETS udp_daemon message_aggregator wsjtx_app_version
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
)

View File

@ -21,10 +21,10 @@
#include <boost/log/support/date_time.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include <fstream>
#include <boost/filesystem/fstream.hpp>
#include <string>
namespace fs = boost::filesystem;
namespace logging = boost::log;
namespace srcs = logging::sources;
namespace sinks = logging::sinks;
@ -128,7 +128,7 @@ namespace Logger
CommonInitialization ci;
}
void init_from_config (std::istream& stream)
void init_from_config (std::wistream& stream)
{
CommonInitialization ci;
try
@ -152,24 +152,24 @@ namespace Logger
logging::core::get ()->set_logging_enabled (false);
}
void add_datafile_log (std::string const& log_file_name)
void add_datafile_log (std::wstring const& log_file_name)
{
// Create a text file sink
boost::shared_ptr<sinks::text_ostream_backend> backend
boost::shared_ptr<sinks::wtext_ostream_backend> backend
(
new sinks::text_ostream_backend()
new sinks::wtext_ostream_backend()
);
backend->add_stream (boost::shared_ptr<std::ostream> (new std::ofstream (log_file_name)));
backend->add_stream (boost::shared_ptr<std::wostream> (new fs::wofstream (log_file_name)));
// Flush after each log record
backend->auto_flush (true);
// Create a sink for the backend
typedef sinks::synchronous_sink<sinks::text_ostream_backend> sink_t;
typedef sinks::synchronous_sink<sinks::wtext_ostream_backend> sink_t;
boost::shared_ptr<sink_t> sink (new sink_t (backend));
// The log output formatter
sink->set_formatter (expr::format ("[%1%][%2%] %3%")
sink->set_formatter (expr::format (L"[%1%][%2%] %3%")
% expr::attr<ptime::ptime> ("TimeStamp")
% logging::trivial::severity
% expr::message

View File

@ -21,14 +21,14 @@ namespace Logger
void init ();
// define logger(s) and sinks from a configuration stream
void init_from_config (std::istream& config_stream);
void init_from_config (std::wistream& config_stream);
// disable logging - useful for unit testing etc.
void disable ();
// add a new file sink for LOG_DATA_* for Severity >= INFO
// this file sink will be used alongside any configured above
void add_data_file_log (std::string const& log_file_name);
void add_data_file_log (std::wstring const& log_file_name);
}
#define LOG_LOG_LOCATION(LOGGER, LEVEL, ARG) \

View File

@ -93,15 +93,15 @@ namespace
<< boost::log::add_value ("Line", context.line)
<< boost::log::add_value ("File", file)
<< boost::log::add_value ("Function", function)
<< msg.toStdString ();
<< msg.toStdWString ();
}
else
{
BOOST_LOG_CHANNEL_SEV (log, std::string {context.category}, severity)
BOOST_LOG_SEV (log, severity)
<< boost::log::add_value ("Line", context.line)
<< boost::log::add_value ("File", file)
<< boost::log::add_value ("Function", function)
<< msg.toStdString ();
<< context.category << ": " << msg.toStdWString ();
}
if (QtFatalMsg == type)
{
@ -155,8 +155,8 @@ WSJTXLogging::WSJTXLogging ()
pos = match.capturedEnd (0);
}
new_config += config.mid (pos);
std::stringbuf buffer {new_config.toStdString (), std::ios_base::in};
std::istream stream {&buffer};
std::wstringbuf buffer {new_config.toStdWString (), std::ios_base::in};
std::wistream stream {&buffer};
Logger::init_from_config (stream);
LOG_INFO ("Read logging configuration file: " << log_config.fileName ());
}
@ -180,7 +180,7 @@ WSJTXLogging::WSJTXLogging ()
(
keywords::auto_flush = false
#if BOOST_VERSION / 100 >= 1070
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdString ()
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdWString ()
, keywords::target_file_name =
#else
, keywords::file_name =
@ -200,7 +200,7 @@ WSJTXLogging::WSJTXLogging ()
keywords::max_size = 40 * 1024 * 1024
, keywords::min_free_space = 1024 * 1024 * 1024
, keywords::max_files = 12
, keywords::target = app_data.absoluteFilePath ("logs").toStdString ()
, keywords::target = app_data.absoluteFilePath ("logs").toStdWString ()
)
);
sys_sink->locked_backend ()->scan_for_files ();

View File

@ -71,7 +71,7 @@ unsigned long readc2file(char *ptr_to_infile, float *idat, float *qdat,
float *buffer;
double dfreq;
int i,ntrmin;
char *c2file[15];
char c2file[15];
size_t nr;
FILE* fp;
@ -875,10 +875,12 @@ int main(int argc, char *argv[])
}
}
if( stackdecoder ) {
stack=calloc(stacksize,sizeof(struct snode));
if( access(data_dir, R_OK | W_OK)) {
fprintf(stderr, "Error: inaccessible data directory: '%s'\n", data_dir);
usage();
return EXIT_FAILURE;
}
if( optind+1 > argc) {
usage();
return 1;
@ -886,6 +888,10 @@ int main(int argc, char *argv[])
ptr_to_infile=argv[optind];
}
if( stackdecoder ) {
stack=calloc(stacksize,sizeof(struct snode));
}
// setup metric table
for(i=0; i<256; i++) {
mettab[0][i]=round( 10*(metric_tables[2][i]-bias) );

View File

@ -634,7 +634,8 @@ Format:
<location filename="../Configuration.cpp" line="2835"/>
<source>Not found</source>
<comment>audio device missing</comment>
<translation type="unfinished"></translation>
<translatorcomment>falta un dispositiu d&apos;àudio</translatorcomment>
<translation>No trobat</translation>
</message>
</context>
<context>
@ -2712,12 +2713,12 @@ Si no està marcat, pots veure els resultats de la calibració.</translation>
<message>
<location filename="../widgets/mainwindow.ui" line="1297"/>
<source>F High </source>
<translation type="unfinished"></translation>
<translation>F Alt </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1388"/>
<source>F Low </source>
<translation type="unfinished"></translation>
<translation>F Baixa </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1410"/>
@ -2964,12 +2965,12 @@ La llista es pot mantenir a la configuració (F2).</translation>
<message>
<location filename="../widgets/mainwindow.ui" line="3390"/>
<source>SWL Mode</source>
<translation type="unfinished"></translation>
<translation>Mode SWL</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="3393"/>
<source>Hide lower panel controls to maximize deocde windows</source>
<translation type="unfinished"></translation>
<translation>Amaga els controls del panell inferior per a maximitzar les finestres de descodificació</translation>
</message>
<message>
<source>Calling CQ </source>
@ -3868,7 +3869,7 @@ La llista es pot mantenir a la configuració (F2).</translation>
<message>
<location filename="../widgets/mainwindow.cpp" line="492"/>
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
<translation type="unfinished"></translation>
<translation>Mostres caigudes excessives - %1 (%2 sec) fotogrames d&apos;àudio caiguts en el període inicial %3</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="526"/>
@ -3893,7 +3894,7 @@ La llista es pot mantenir a la configuració (F2).</translation>
<message>
<location filename="../widgets/mainwindow.cpp" line="790"/>
<source>Enumerating audio devices</source>
<translation type="unfinished"></translation>
<translation>Enumeració de dispositius dàudio</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="805"/>

View File

@ -20,8 +20,8 @@
<location filename="../widgets/AbstractLogWindow.cpp" line="65"/>
<source>Are you sure you want to delete the %n selected QSO(s) from the log?</source>
<translation>
<numerusform>Er du sikker at du vil slette de %n valgte QSO(er) fra loggen?</numerusform>
<numerusform></numerusform>
<numerusform>Sikker du vil slette de %n valgte QSO(er) fra loggen?</numerusform>
<numerusform>Er du sikker du vil slette de %n valgte QSO(s) fra loggen?</numerusform>
</translation>
</message>
</context>
@ -626,7 +626,7 @@ Format:
<location filename="../Configuration.cpp" line="2835"/>
<source>Not found</source>
<comment>audio device missing</comment>
<translation type="unfinished"></translation>
<translation>Audio device mangler</translation>
</message>
</context>
<context>
@ -2711,12 +2711,12 @@ Når den ikke er markeret, kan du se kalibreringsresultaterne.</translation>
<message>
<location filename="../widgets/mainwindow.ui" line="1297"/>
<source>F High </source>
<translation type="unfinished"></translation>
<translation>F Høj </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1388"/>
<source>F Low </source>
<translation type="unfinished"></translation>
<translation>F Lav </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1410"/>
@ -2964,12 +2964,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
<message>
<location filename="../widgets/mainwindow.ui" line="3390"/>
<source>SWL Mode</source>
<translation type="unfinished"></translation>
<translation>SWL Mode</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="3393"/>
<source>Hide lower panel controls to maximize deocde windows</source>
<translation type="unfinished"></translation>
<translation>Skjul nederste del af Control Panel for at maksimere dekoder vinduet</translation>
</message>
<message>
<source>Calling CQ </source>
@ -3864,7 +3864,8 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
<message>
<location filename="../widgets/mainwindow.cpp" line="492"/>
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
<translation type="unfinished"></translation>
<translatorcomment>For store tabte prøver -% 1 (% 2 sek) lydrammer faldt i perioden startende med% 3</translatorcomment>
<translation>For stort tab i - %1 (%2 sec) audio frames stoppet i periode startende %3</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="526"/>
@ -3889,7 +3890,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
<message>
<location filename="../widgets/mainwindow.cpp" line="790"/>
<source>Enumerating audio devices</source>
<translation type="unfinished"></translation>
<translation>Opsumering af audio enheder</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="805"/>
@ -4147,7 +4148,57 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Alt+Z &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Clear hung decoder status&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</source>
<extracomment>Keyboard shortcuts help window contents</extracomment>
<translation type="unfinished"></translation>
<translatorcomment>Hjælpetekst til Tastetur genveje</translatorcomment>
<translation>&lt;tabelcelleafstand = 1&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Esc &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Stop Tx, afbryd QSO, ryd kø ved næste kald &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F1 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Online brugervejledning (Alt: transmitter Tx6) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + F1 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Meddelelse om ophavsret &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F1 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Om WSJT-X &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F2 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Åbn indstillingsvinduet (Alt: send Tx2) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F3 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Vis tastaturgenveje (Alt: transmitter Tx3) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F4 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Ryd DX Call, DX Grid, Tx meddelelser 1-4 (Alt: send Tx4) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + F4 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Afslutningsprogram &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F5 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Vis specielle musekommandoer (Alt: transmitter Tx5) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F6 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Åbn næste fil i biblioteket (Alt: skift &quot;Call 1st&quot;) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + F6 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Dekod alle resterende filer i biblioteket &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F7 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Vis vindue for gennemsnitsmeddelelse &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Rx-frekvensen ned 1 Hz &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt identiske Rx- og Tx-frekvenser ned 1 Hz &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Tx-frekvensen 60 Hz ned (FT8) eller 90 Hz (FT4) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + Shift + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt kaldefrekvensen 2000 Hz ned &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Rx-frekvensen 1 Hz op &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt identiske Rx- og Tx-frekvenser 1 Hz op &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt identiske Rx- og Tx-frekvenser ned 1 Hz &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Tx-frekvensen ned 60 Hz (FT8) eller 90 Hz (FT4) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + Shift + F11 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt kaldefrekvensen ned 2000 Hz &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Rx-frekvensen op 1 Hz &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt identiske Rx- og Tx-frekvenser 1 Hz op &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt Tx-frekvensen 60 Hz op (FT8) eller 90 Hz (FT4) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + Shift + F12 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Flyt kaldefrekvensen 2000 Hz op&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + 1-6 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Indstil NU transmission til dette nummer på fane 1 &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctl + 1-6 &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Indstil næste transmission til dette nummer på fane 1 &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + B &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Skift status &quot;Bedste S + P&quot; &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + C &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Skift afkrydsningsfelt &quot;Kald 1st&quot; &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + D &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Dekod igen ved QSO-frekvens &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + D &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Fuld Dekodning (begge vinduer) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + E &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Aktiver TX lige / 1. &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Shift + E &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Deaktiver TX lige / 1. &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + E &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Sætning&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + F &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Rediger fri tekstmeddelelsesfelt &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + G &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Generer standardmeddelelser &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + H &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Stop Tx &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + L &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Opslag af kaldesignal i database, generer standardbeskeder &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + M &lt;/b&gt;&lt;/td&gt;&lt;td&gt; Skærm&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + N &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Aktivér Tx &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + O &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Åbn en .wav-fil &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + O &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Skift operatør &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + Q &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Log QSO &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Ctrl + R &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Indstil Tx4-besked til RRR (ikke i FT4) &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + R &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Indstil Tx4-besked til RR73 &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + S &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Stop overvågning &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + T &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Skift Tune status &lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;b&gt; Alt + Z &lt;/b&gt;&lt;/td&gt; &lt;td&gt; Ryd fyldt buffer dekoderstatus &lt;/td&gt; &lt;/tr&gt;
&lt;/tabel&gt;</translation>
</message>
<message>
<source>&lt;table cellspacing=1&gt;

View File

@ -2904,13 +2904,13 @@ Amarillo cuando esta muy bajo.</translation>
<location filename="../widgets/mainwindow.ui" line="1586"/>
<source>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</source>
<translatorcomment>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</translatorcomment>
<translation>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</translation>
<translation type="unfinished">Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1589"/>
<source>Tx even/1st</source>
<translatorcomment>Alternar periodo TX Par/Impar</translatorcomment>
<translation>TX segundo par</translation>
<translation type="unfinished">Tx primer par/1ro</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1481"/>

View File

@ -625,7 +625,7 @@ Format:
<location filename="../Configuration.cpp" line="2835"/>
<source>Not found</source>
<comment>audio device missing</comment>
<translation type="unfinished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -2703,12 +2703,12 @@ When not checked you can view the calibration results.</source>
<message>
<location filename="../widgets/mainwindow.ui" line="1297"/>
<source>F High </source>
<translation type="unfinished"></translation>
<translation>F </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1388"/>
<source>F Low </source>
<translation type="unfinished"></translation>
<translation>F </translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1410"/>
@ -2962,12 +2962,12 @@ ENTERを押してテキストを登録リストに追加.
<message>
<location filename="../widgets/mainwindow.ui" line="3390"/>
<source>SWL Mode</source>
<translation type="unfinished"></translation>
<translation>SWLモード</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="3393"/>
<source>Hide lower panel controls to maximize deocde windows</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Calling CQ </source>
@ -3825,7 +3825,7 @@ ENTERを押してテキストを登録リストに追加.
<message>
<location filename="../widgets/mainwindow.cpp" line="492"/>
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
<translation type="unfinished"></translation>
<translation> - %3%1(%2</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="526"/>
@ -3850,7 +3850,7 @@ ENTERを押してテキストを登録リストに追加.
<message>
<location filename="../widgets/mainwindow.cpp" line="790"/>
<source>Enumerating audio devices</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="805"/>

View File

@ -388,7 +388,7 @@
<message>
<location filename="../Configuration.cpp" line="1009"/>
<source>path: &quot;%1%</source>
<translation>: &quot;%1%</translation>
<translation>: &quot;%1%</translation>
</message>
<message>
<location filename="../Configuration.cpp" line="1020"/>
@ -504,7 +504,12 @@ Format:
<translation> ARRL RTTY Roundup </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2169"/>
<location filename="../Configuration.cpp" line="1870"/>
<source>Pending DNS lookup, please try again later</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2213"/>
<source>Reset Decode Highlighting</source>
<translation></translation>
</message>
@ -519,7 +524,17 @@ Format:
<translation>WSJT-X </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2357"/>
<location filename="../Configuration.cpp" line="2425"/>
<source>UDP server DNS lookup failed</source>
<translation>UDP服务器域名系统查找失败</translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2449"/>
<source>MAC-ambiguous multicast groups addresses not supported</source>
<translation>访</translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2467"/>
<source>Load Working Frequencies</source>
<translation></translation>
</message>
@ -2670,12 +2685,12 @@ Not available to nonstandard callsign holders.</source>
<message>
<location filename="../widgets/mainwindow.ui" line="1269"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Submode determines tone spacing; A is narrowest.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;調; A .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;; A .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1272"/>
<source>Submode determines tone spacing; A is narrowest.</source>
<translation>調; A .</translation>
<translation>; A .</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="1278"/>
@ -3664,12 +3679,12 @@ list. The list can be maintained in Settings (F2).</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="487"/>
<location filename="../widgets/mainwindow.cpp" line="492"/>
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
<translation> - %1 (%2 sec) %3</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="521"/>
<location filename="../widgets/mainwindow.cpp" line="526"/>
<source>Error Scanning ADIF Log</source>
<translation> ADIF </translation>
</message>
@ -3870,7 +3885,7 @@ list. The list can be maintained in Settings (F2).</source>
<translation>&quot;fmt.all&quot; &quot;fmt.bak&quot;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2551"/>
<location filename="../widgets/mainwindow.cpp" line="2571"/>
<source>If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work:
&quot;The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group.&quot;</source>
@ -3879,7 +3894,7 @@ list. The list can be maintained in Settings (F2).</source>
&quot;WSJT-X , , , FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; WSJT .&quot;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2819"/>
<location filename="../widgets/mainwindow.cpp" line="2846"/>
<source>No data read from disk. Wrong file format?</source>
<translation>. ?</translation>
</message>
@ -3899,42 +3914,7 @@ list. The list can be maintained in Settings (F2).</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2949"/>
<source>Special Mouse Commands</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3295"/>
<source>No more files to open.</source>
<translation>.</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3659"/>
<source>Spotting to PSK Reporter unavailable</source>
<translation>PSK Reporter</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3817"/>
<source>Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m.</source>
<translation>. WSJT-X WSPR 30.</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3821"/>
<source>WSPR Guard Band</source>
<translation>WSPR保护波段</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3834"/>
<source>Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands.</source>
<translation>. WSJT-X FT8 .</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3838"/>
<source>Fox Mode warning</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2866"/>
<location filename="../widgets/mainwindow.cpp" line="2893"/>
<source>&lt;table cellspacing=1&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Esc &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Stop Tx, abort QSO, clear next-call queue&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;F1 &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Online User&apos;s Guide (Alt: transmit Tx6)&lt;/td&gt;&lt;/tr&gt;
@ -4028,7 +4008,12 @@ list. The list can be maintained in Settings (F2).</source>
&lt;/table&gt;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2924"/>
<location filename="../widgets/mainwindow.cpp" line="2949"/>
<source>Special Mouse Commands</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2951"/>
<source>&lt;table cellpadding=5&gt;
&lt;tr&gt;
&lt;th align=&quot;right&quot;&gt;Click on&lt;/th&gt;
@ -4092,6 +4077,36 @@ list. The list can be maintained in Settings (F2).</source>
&lt;/tr&gt;
&lt;/table&gt;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3295"/>
<source>No more files to open.</source>
<translation>.</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3659"/>
<source>Spotting to PSK Reporter unavailable</source>
<translation> Pskreporter </translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3817"/>
<source>Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m.</source>
<translation>. WSJT-X 30m WSPR .</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3821"/>
<source>WSPR Guard Band</source>
<translation>WSPR </translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3834"/>
<source>Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands.</source>
<translation>. WSJT-X在标准的FT8子带中不会以狐狸模式工作.</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="3838"/>
<source>Fox Mode warning</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="4443"/>
<source>Last Tx: %1</source>
@ -5409,6 +5424,11 @@ quiet period when decoding is done.</source>
<source>Data bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="669"/>
<source>Data Bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="675"/>
<source>D&amp;efault</source>
@ -5434,6 +5454,11 @@ quiet period when decoding is done.</source>
<source>Stop bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="723"/>
<source>Stop Bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="729"/>
<location filename="../Configuration.ui" line="780"/>
@ -5615,7 +5640,7 @@ or bandwidth is selected).</source>
<location filename="../Configuration.ui" line="1088"/>
<location filename="../Configuration.ui" line="1322"/>
<source>None</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="1098"/>
@ -5748,7 +5773,32 @@ transmitting periods.</source>
.</translation>
</message>
<message>
<location filename="../Configuration.ui" line="2400"/>
<location filename="../Configuration.ui" line="1888"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be sent.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;WSJT-X应该向其发送更新的UDP服务器的服务端口号. .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1898"/>
<source>Outgoing interfaces:</source>
<translation>:</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1908"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When sending updates to a multicast group address it is necessary to specify which network interface(s) to send them to. If the loop-back interface is multicast capable then at least that one will be selected.&lt;/p&gt;&lt;p&gt;For most users the loop-back interface is all that is needed, that will allow multiple other applications on the same machine to interoperate with WSJT-X. If applications running on other hosts are to receive status updates then a suitable network interface should be used.&lt;/p&gt;&lt;p&gt;On some Linux systems it may be necessary to enable multicast on the loop-back network interface.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;. .&lt;/p&gt;&lt;p&gt;, WSJT-X. 使.&lt;/p&gt;&lt;p&gt;Linux.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1915"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Sets the number or router hops that multicast datagrams are allowed to make. Almost everyone should set this to 1 to keep outgoing multicast traffic withn the local subnet.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;. 1 .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1928"/>
<source>Multicast TTL:</source>
<translation> TTL:</translation>
</message>
<message>
<location filename="../Configuration.ui" line="2434"/>
<source>Days since last upload</source>
<translation></translation>
</message>
@ -5808,7 +5858,7 @@ both here.</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="1370"/>
<location filename="../Configuration.ui" line="1427"/>
<source>Ou&amp;tput:</source>
<translation>(&amp;t):</translation>
</message>
@ -6525,7 +6575,7 @@ Right click for insert and delete options.</source>
<message>
<location filename="../Configuration.ui" line="2914"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;調. 使 4 LF/MF .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;. 使 4 LF/MF .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="2917"/>

View File

@ -504,7 +504,12 @@ Format:
<translation> ARRL RTTY Roundup </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2169"/>
<location filename="../Configuration.cpp" line="1870"/>
<source>Pending DNS lookup, please try again later</source>
<translation> DNS , </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2213"/>
<source>Reset Decode Highlighting</source>
<translation></translation>
</message>
@ -519,7 +524,17 @@ Format:
<translation>WSJT-X </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2357"/>
<location filename="../Configuration.cpp" line="2425"/>
<source>UDP server DNS lookup failed</source>
<translation>UDP DNS </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2449"/>
<source>MAC-ambiguous multicast groups addresses not supported</source>
<translation>MAC </translation>
</message>
<message>
<location filename="../Configuration.cpp" line="2467"/>
<source>Load Working Frequencies</source>
<translation></translation>
</message>
@ -1956,7 +1971,7 @@ Error: %2 - %3</source>
<message>
<location filename="../widgets/logqso.cpp" line="43"/>
<source>Satellite</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../widgets/logqso.cpp" line="44"/>
@ -2434,7 +2449,7 @@ Yellow when too low</source>
<message>
<location filename="../widgets/mainwindow.ui" line="636"/>
<source>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</source>
<translation>线, . S .</translation>
<translation>, . S .</translation>
</message>
<message>
<location filename="../widgets/mainwindow.ui" line="665"/>
@ -3879,7 +3894,7 @@ list. The list can be maintained in Settings (F2).</source>
&quot;WSJT-X , , , FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; WSJT .&quot;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2819"/>
<location filename="../widgets/mainwindow.cpp" line="2846"/>
<source>No data read from disk. Wrong file format?</source>
<translation>. ?</translation>
</message>
@ -3899,7 +3914,7 @@ list. The list can be maintained in Settings (F2).</source>
<translation></translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2866"/>
<location filename="../widgets/mainwindow.cpp" line="2893"/>
<source>&lt;table cellspacing=1&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Esc &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Stop Tx, abort QSO, clear next-call queue&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;F1 &lt;/b&gt;&lt;/td&gt;&lt;td&gt;Online User&apos;s Guide (Alt: transmit Tx6)&lt;/td&gt;&lt;/tr&gt;
@ -3993,7 +4008,7 @@ list. The list can be maintained in Settings (F2).</source>
&lt;/table&gt;</translation>
</message>
<message>
<location filename="../widgets/mainwindow.cpp" line="2922"/>
<location filename="../widgets/mainwindow.cpp" line="2949"/>
<source>Special Mouse Commands</source>
<translation></translation>
</message>
@ -5410,6 +5425,11 @@ quiet period when decoding is done.</source>
<source>Data bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="669"/>
<source>Data Bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="675"/>
<source>D&amp;efault</source>
@ -5435,6 +5455,11 @@ quiet period when decoding is done.</source>
<source>Stop bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="723"/>
<source>Stop Bits</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="729"/>
<location filename="../Configuration.ui" line="780"/>
@ -5465,7 +5490,7 @@ quiet period when decoding is done.</source>
<message>
<location filename="../Configuration.ui" line="793"/>
<source>&amp;None</source>
<translation>(&amp;N)</translation>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="806"/>
@ -5749,7 +5774,32 @@ transmitting periods.</source>
.</translation>
</message>
<message>
<location filename="../Configuration.ui" line="2400"/>
<location filename="../Configuration.ui" line="1888"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be sent.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt; WSJT-X UDP . .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1898"/>
<source>Outgoing interfaces:</source>
<translation>:</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1908"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When sending updates to a multicast group address it is necessary to specify which network interface(s) to send them to. If the loop-back interface is multicast capable then at least that one will be selected.&lt;/p&gt;&lt;p&gt;For most users the loop-back interface is all that is needed, that will allow multiple other applications on the same machine to interoperate with WSJT-X. If applications running on other hosts are to receive status updates then a suitable network interface should be used.&lt;/p&gt;&lt;p&gt;On some Linux systems it may be necessary to enable multicast on the loop-back network interface.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;. .&lt;/p&gt;&lt;p&gt;, WSJT-X . 使.&lt;/p&gt;&lt;p&gt; Linux .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1915"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Sets the number or router hops that multicast datagrams are allowed to make. Almost everyone should set this to 1 to keep outgoing multicast traffic withn the local subnet.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;. 1 .&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1928"/>
<source>Multicast TTL:</source>
<translation> TTL TTL:</translation>
</message>
<message>
<location filename="../Configuration.ui" line="2434"/>
<source>Days since last upload</source>
<translation></translation>
</message>
@ -5809,7 +5859,7 @@ both here.</source>
<translation></translation>
</message>
<message>
<location filename="../Configuration.ui" line="1370"/>
<location filename="../Configuration.ui" line="1427"/>
<source>Ou&amp;tput:</source>
<translation>(&amp;t):</translation>
</message>
@ -6001,7 +6051,7 @@ and DX Grid fields when a 73 or free text message is sent.</source>
<message>
<location filename="../Configuration.ui" line="1801"/>
<source>Log automatically (contesting only)</source>
<translation> ()</translation>
<translation> ()</translation>
</message>
<message>
<location filename="../Configuration.ui" line="1818"/>

View File

@ -23,7 +23,7 @@ CAboutDlg::CAboutDlg(QWidget *parent) :
"We gratefully acknowledge contributions from AC6SL, AE4JY,<br />"
"DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, KA1GT, K3WYC,<br />"
"KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR,<br />"
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.<br /><br />"
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W3DJS, W4TI, W4TV, and W9MDB.<br /><br />"
"WSJT-X is licensed under the terms of Version 3 <br />"
"of the GNU General Public License (GPL) <br /><br />"
"<a href=" TO_STRING__ (PROJECT_HOMEPAGE) ">"

View File

@ -212,7 +212,7 @@ namespace
auto quint32_max = std::numeric_limits<quint32>::max ();
constexpr int N_WIDGETS {36};
constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz
constexpr int tx_audio_buffer_size {48000 / 5}; // audio frames at 48000 Hz
constexpr int default_tx_audio_buffer_frames {-1}; // lets Qt decide
bool message_is_73 (int type, QStringList const& msg_parts)
{
@ -265,6 +265,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
m_soundInput {new SoundInput},
m_modulator {new Modulator {TX_SAMPLE_RATE, NTMAX}},
m_soundOutput {new SoundOutput},
m_tx_audio_buffer_frames {0},
m_msErase {0},
m_secBandChanged {0},
m_freqNominal {0},
@ -455,6 +456,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
m_modulator->moveToThread (&m_audioThread);
m_soundInput->moveToThread (&m_audioThread);
m_detector->moveToThread (&m_audioThread);
bool ok;
auto buffer_size = env.value ("WSJT_TX_AUDIO_BUFFER_FRAMES", "0").toInt (&ok);
m_tx_audio_buffer_frames = ok && buffer_size ? buffer_size : default_tx_audio_buffer_frames;
// hook up sound output stream slots & signals and disposal
connect (this, &MainWindow::initializeAudioOutputStream, m_soundOutput, &SoundOutput::setFormat);
@ -942,7 +946,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
{
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device ()
, AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2
, tx_audio_buffer_size);
, m_tx_audio_buffer_frames);
}
Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT);
@ -1855,7 +1859,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
if(m_config.restart_audio_output () && !m_config.audio_output_device ().isNull ()) {
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device ()
, AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2
, tx_audio_buffer_size);
, m_tx_audio_buffer_frames);
}
displayDialFrequency ();

View File

@ -404,6 +404,7 @@ private:
SoundInput * m_soundInput;
Modulator * m_modulator;
SoundOutput * m_soundOutput;
int m_tx_audio_buffer_frames;
QThread m_audioThread;
qint64 m_msErase;