|
|
void | showSoundInError (const QString &errorMsg) |
|
void | showSoundOutError (const QString &errorMsg) |
|
void | showStatusMessage (const QString &statusMsg) |
| void | dataSink (qint64 frames) |
| void | guiUpdate () |
|
void | setXIT (int n) |
|
void | qsy (int hzDelta) |
|
void | onDriftChanged (qint64 new_drift_ms) |
|
bool | tryRestoreFreqOffset () |
|
void | changeFreq (int) |
|
bool | hasExistingMessageBufferToMe (int *pOffset) |
|
bool | hasExistingMessageBuffer (int submode, int offset, bool drift, int *pPrevOffset) |
|
bool | hasClosedExistingMessageBuffer (int offset) |
|
void | logCallActivity (CallDetail d, bool spot=true) |
|
void | logHeardGraph (QString from, QString to) |
|
QString | lookupCallInCompoundCache (QString const &call) |
|
void | cacheActivity (QString key) |
|
void | restoreActivity (QString key) |
|
void | clearActivity () |
|
void | clearBandActivity () |
|
void | clearRXActivity () |
|
void | clearCallActivity () |
|
void | createGroupCallsignTableRows (QTableWidget *table, const QString &selectedCall, bool &showIconColumn) |
|
void | displayTextForFreq (QString text, int freq, QDateTime date, bool isTx, bool isNewLine, bool isLast) |
|
void | writeNoticeTextToUI (QDateTime date, QString text) |
|
int | writeMessageTextToUI (QDateTime date, QString text, int freq, bool isTx, int block=-1) |
|
bool | isMessageQueuedForTransmit () |
|
bool | isInDecodeDelayThreshold (int seconds) |
|
void | prependMessageText (QString text) |
|
void | addMessageText (QString text, bool clear=false, bool selectFirstPlaceholder=false) |
| void | confirmThenEnqueueMessage (int timeout, int priority, QString message, int offset, Callback c) |
| | Presents a local confirmation dialog and fires a network confirmation request.
|
|
void | enqueueMessage (int priority, QString message, int offset, Callback c) |
|
void | resetMessage () |
|
void | resetMessageUI () |
|
void | restoreMessage () |
|
void | initializeDummyData () |
|
void | initializeGroupMessage () |
|
bool | ensureCallsignSet (bool alert=true) |
|
bool | ensureKeyNotStuck (QString const &text) |
|
bool | ensureNotIdle () |
|
bool | ensureCanTransmit () |
|
bool | ensureCreateMessageReady (const QString &text) |
|
QString | createMessage (QString const &text, bool *pDisableTypeahead) |
|
QString | appendMessage (QString const &text, bool isData, bool *pDisableTypeahead) |
|
QString | createMessageTransmitQueue (QString const &text, bool reset, bool isData, bool *pDisableTypeahead) |
| void | resetMessageTransmitQueue () |
| | Resets the frame-level transmission state after a message completes.
|
|
QPair< QString, int > | popMessageFrame () |
|
void | tryNotify (const QString &key) |
| void | processDecodeEvent (JS8::Event::Variant const &) |
|
void | updateCQButtonDisplay () |
|
void | updateHBButtonDisplay () |
| void UI_Constructor::confirmThenEnqueueMessage |
( |
int | timeout, |
|
|
int | priority, |
|
|
QString | message, |
|
|
int | offset, |
|
|
Callback | c ) |
|
slot |
Presents a local confirmation dialog and fires a network confirmation request.
Called from the decoder thread; all Qt and network operations are marshalled to the GUI thread via QMetaObject::invokeMethod. A SelfDestructMessageBox is shown to the local operator while simultaneously sending STATION.AUTOREPLY_CONFIRM_REQUEST to any connected API clients.
Whichever resolves first — local operator response or timeout — cancels the other. On acceptance, enqueueMessage() is called and STATION.AUTOREPLY_CONFIRM_ACCEPTED is sent. On rejection or timeout, STATION.AUTOREPLY_CONFIRM_EXPIRED is sent.
- Parameters
-
| timeout | Seconds before the confirmation auto-rejects. |
| priority | Transmission priority passed to enqueueMessage(). |
| message | The autoreply message text shown to the operator and sent over the API. |
| offset | Frequency offset passed to enqueueMessage(). |
| c | Callback passed to enqueueMessage() on acceptance. |
- Note
- Requires PendingConfirmation::box to be present in the struct.
-
API 2.6+
| void UI_Constructor::dataSink |
( |
qint64 | frames | ) |
|
|
slot |
Perform real to complex FFT; note that the Fortran code performed this operation in the four2a subroutine, which contains a cache of plans. However, since the FFTW3 library itself caches, this resulted in double caching, so as an experiment we're allowing the library to handle caching.
Note that the FFTW library requires all calls but for the plan execution, i.e., fftwf_execute(), to be serialized. The library doesn't require prescriptive serialization, anything will do so long as the result is one thread at a time.
Providing room for an extra complex value, i.e., a pair of floats, real and imaginary parts, allows us to use the same buffer for the FFT input and output.
While the memory for the FFT can come from anywhere, if we ask the library for it, it'll guarantee that it's aligned for use of SIMD instructions, which will in turn allow it to use them.