mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-29 12:12:27 -04:00
Remove more soundout stuff.
This commit is contained in:
parent
2a2bc4e69b
commit
8a70f9c131
@ -12,7 +12,6 @@ DevSetup::DevSetup(QWidget *parent) : QDialog(parent)
|
||||
{
|
||||
ui.setupUi(this); //setup the dialog form
|
||||
m_restartSoundIn=false;
|
||||
m_restartSoundOut=false;
|
||||
}
|
||||
|
||||
DevSetup::~DevSetup()
|
||||
@ -149,9 +148,6 @@ void DevSetup::accept()
|
||||
m_xpol!=ui.cbXpol->isChecked() or
|
||||
m_udpPort!=ui.sbPort->value()) m_restartSoundIn=true;
|
||||
|
||||
if(m_nDevOut!=ui.comboBoxSndOut->currentIndex() or
|
||||
m_paOutDevice!=m_outDevList[m_nDevOut]) m_restartSoundOut=true;
|
||||
|
||||
m_myCall=ui.myCallEntry->text();
|
||||
m_myGrid=ui.myGridEntry->text();
|
||||
m_idInt=ui.idIntSpinBox->value();
|
||||
|
@ -39,7 +39,6 @@ public:
|
||||
bool m_xpol;
|
||||
bool m_IQswap;
|
||||
bool m_restartSoundIn;
|
||||
bool m_restartSoundOut;
|
||||
bool m_initIQplus;
|
||||
bool m_bIQxt;
|
||||
|
||||
|
@ -1,207 +0,0 @@
|
||||
#include "soundout.h"
|
||||
|
||||
#ifdef Q_OS_WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#define FRAMES_PER_BUFFER 256
|
||||
|
||||
#include <portaudio.h>
|
||||
|
||||
extern float gran(); //Noise generator (for tests only)
|
||||
|
||||
extern short int iwave[2*60*11025]; //Wave file for Tx audio
|
||||
extern int nwave;
|
||||
extern bool btxok;
|
||||
extern bool bTune;
|
||||
extern bool bIQxt;
|
||||
extern int iqAmp;
|
||||
extern int iqPhase;
|
||||
extern int txPower;
|
||||
extern double outputLatency;
|
||||
|
||||
typedef struct //Parameters sent to or received from callback function
|
||||
{
|
||||
int nTRperiod;
|
||||
} paUserData;
|
||||
|
||||
//--------------------------------------------------------------- d2aCallback
|
||||
extern "C" int d2aCallback(const void * /*inputBuffer*/, void *outputBuffer,
|
||||
unsigned long framesToProcess,
|
||||
const PaStreamCallbackTimeInfo* /*timeInfo*/,
|
||||
PaStreamCallbackFlags /*statusFlags*/,
|
||||
void *userData )
|
||||
{
|
||||
paUserData *udata=(paUserData*)userData;
|
||||
short *wptr = (short*)outputBuffer;
|
||||
unsigned int i;
|
||||
static int n;
|
||||
static int ic=0;
|
||||
static bool btxok0=false;
|
||||
static bool bTune0=false;
|
||||
static int nStart=0;
|
||||
static double phi=0.;
|
||||
double tsec,tstart,dphi;
|
||||
int nsec;
|
||||
int nTRperiod=udata->nTRperiod;
|
||||
|
||||
// Get System time
|
||||
qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000;
|
||||
tsec = 0.001*ms;
|
||||
nsec = ms/1000;
|
||||
qreal dPhase=iqPhase/5729.57795131;
|
||||
qreal amp=1.0 + 0.0001*iqAmp;
|
||||
qreal xAmp=txPower*295.00*qSqrt(2.0 - amp*amp);
|
||||
qreal yAmp=txPower*295.00*amp;
|
||||
static int nsec0=0;
|
||||
|
||||
if(bTune) {
|
||||
ic=0;
|
||||
dphi=6.28318530718*1270.46/11025.0;
|
||||
}
|
||||
if(bTune0 and !bTune) btxok=false;
|
||||
bTune0=bTune;
|
||||
|
||||
if(nsec!=nsec0) {
|
||||
// qDebug() << txPower << iqAmp << iqPhase << amp << xAmp << yAmp << dPhase << bTune;
|
||||
// qDebug() << "A" << nsec%60 << bTune << btxok;
|
||||
// ic=0;
|
||||
nsec0=nsec;
|
||||
}
|
||||
|
||||
if(btxok and !btxok0) { //Start (or re-start) a transmission
|
||||
n=nsec/nTRperiod;
|
||||
tstart=tsec - n*nTRperiod - 1.0;
|
||||
|
||||
if(tstart<1.0) {
|
||||
ic=0; //Start of Tx cycle, set starting index to 0
|
||||
nStart=n;
|
||||
} else {
|
||||
if(n != nStart) { //Late start in new Tx cycle: compute starting index
|
||||
ic=(int)(tstart*11025.0);
|
||||
ic=2*ic;
|
||||
nStart=n;
|
||||
}
|
||||
}
|
||||
}
|
||||
btxok0=btxok;
|
||||
|
||||
if(btxok) {
|
||||
for(i=0 ; i<framesToProcess; i++ ) {
|
||||
short int i2a=iwave[ic++];
|
||||
short int i2b=iwave[ic++];
|
||||
if(ic > nwave) {i2a=0; i2b=0;}
|
||||
// i2 = 500.0*(i2/32767.0 + 5.0*gran()); //Add noise (tests only!)
|
||||
// if(bIQxt) {
|
||||
if(1) {
|
||||
if(bTune) {
|
||||
phi += dphi;
|
||||
} else {
|
||||
phi=qAtan2(qreal(i2b),qreal(i2a));
|
||||
}
|
||||
i2a=xAmp*qCos(phi);
|
||||
i2b=yAmp*qSin(phi + dPhase);
|
||||
// qDebug() << xAmp << yAmp << phi << i2a << i2b;
|
||||
}
|
||||
// i2a=0.01*txPower*i2a;
|
||||
// i2b=0.01*txPower*i2b;
|
||||
*wptr++ = i2b; //left
|
||||
*wptr++ = i2a; //right
|
||||
}
|
||||
} else {
|
||||
for(i=0 ; i<framesToProcess; i++ ) {
|
||||
*wptr++ = 0;
|
||||
*wptr++ = 0;
|
||||
ic++; ic++;
|
||||
}
|
||||
}
|
||||
if(ic > nwave) {
|
||||
btxok=0;
|
||||
ic=0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
struct COMWrapper
|
||||
{
|
||||
explicit COMWrapper ()
|
||||
{
|
||||
#ifdef Q_OS_WIN32
|
||||
// required because Qt only does this for GUI thread
|
||||
CoInitializeEx (nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
|
||||
#endif
|
||||
}
|
||||
~COMWrapper ()
|
||||
{
|
||||
#ifdef Q_OS_WIN32
|
||||
CoUninitialize ();
|
||||
#endif
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void SoundOutThread::run()
|
||||
{
|
||||
COMWrapper c;
|
||||
|
||||
PaError paerr;
|
||||
PaStreamParameters outParam;
|
||||
PaStream *outStream;
|
||||
paUserData udata;
|
||||
quitExecution = false;
|
||||
|
||||
auto device_info = Pa_GetDeviceInfo (m_nDevOut);
|
||||
|
||||
outParam.device=m_nDevOut; //Output device number
|
||||
outParam.channelCount=2; //Number of analog channels
|
||||
outParam.sampleFormat=paInt16; //Send short ints to PortAudio
|
||||
outParam.suggestedLatency=device_info->defaultLowOutputLatency;
|
||||
outParam.hostApiSpecificStreamInfo=NULL;
|
||||
|
||||
udata.nTRperiod=m_TRperiod;
|
||||
paerr=Pa_IsFormatSupported(NULL,&outParam,11025.0);
|
||||
if(paerr<0) {
|
||||
qDebug() << "PortAudio says requested output format not supported.";
|
||||
qDebug() << paerr;
|
||||
return;
|
||||
}
|
||||
paerr=Pa_OpenStream(&outStream, //Output stream
|
||||
NULL, //No input parameters
|
||||
&outParam, //Output parameters
|
||||
11025.0, //Sample rate
|
||||
FRAMES_PER_BUFFER, //Frames per buffer
|
||||
paClipOff, //No clipping
|
||||
d2aCallback, //output callbeck routine
|
||||
&udata); //userdata
|
||||
|
||||
paerr=Pa_StartStream(outStream);
|
||||
if(paerr<0) {
|
||||
qDebug() << "Failed to start audio output stream.";
|
||||
return;
|
||||
}
|
||||
const PaStreamInfo* p=Pa_GetStreamInfo(outStream);
|
||||
outputLatency = p->outputLatency;
|
||||
bool qe = quitExecution;
|
||||
|
||||
//---------------------------------------------- Soundcard output loop
|
||||
while (!qe) {
|
||||
qe = quitExecution;
|
||||
if (qe) break;
|
||||
msleep(100);
|
||||
}
|
||||
Pa_StopStream(outStream);
|
||||
Pa_CloseStream(outStream);
|
||||
}
|
||||
|
||||
void SoundOutThread::setOutputDevice(int n) //setOutputDevice()
|
||||
{
|
||||
if (isRunning()) return;
|
||||
this->m_nDevOut=n;
|
||||
}
|
||||
|
||||
void SoundOutThread::setPeriod(int n)
|
||||
{
|
||||
m_TRperiod=n;
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
#ifndef SOUNDOUT_H
|
||||
#define SOUNDOUT_H
|
||||
#include <QtCore>
|
||||
#include <QDebug>
|
||||
|
||||
// An instance of this thread sends audio data to a specified soundcard.
|
||||
// Output can be muted while underway, preserving waveform timing when
|
||||
// transmission is resumed.
|
||||
|
||||
class SoundOutThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
protected:
|
||||
virtual void run();
|
||||
|
||||
public:
|
||||
// Constructs (but does not start) a SoundOutThread
|
||||
SoundOutThread()
|
||||
: quitExecution(false) // Initialize some private members
|
||||
, m_rate(0)
|
||||
, m_nwave(48*11025)
|
||||
, m_txOK(false)
|
||||
, m_txMute(false)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
void setOutputDevice(qint32 n);
|
||||
void setPeriod(int n);
|
||||
bool quitExecution; //If true, thread exits gracefully
|
||||
|
||||
|
||||
// Private members
|
||||
private:
|
||||
double m_rate; //Sample rate
|
||||
qint32 m_nDevOut; //Output device number
|
||||
qint32 m_nwave; //Length of wave file
|
||||
qint32 m_TRperiod; //T/R period (30 or 60 s)
|
||||
bool m_txOK; //Enable Tx audio
|
||||
bool m_txMute; //Mute temporarily
|
||||
};
|
||||
|
||||
#endif
|
116
q65w/txtune.cpp
116
q65w/txtune.cpp
@ -1,116 +0,0 @@
|
||||
#include "txtune.h"
|
||||
#include "ui_txtune.h"
|
||||
#include <QDebug>
|
||||
|
||||
extern int txPower;
|
||||
extern int iqAmp;
|
||||
extern int iqPhase;
|
||||
extern bool bTune;
|
||||
|
||||
TxTune::TxTune(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::TxTune)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
TxTune::~TxTune()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void TxTune::accept()
|
||||
{
|
||||
if(bTune) on_pbTune_clicked();
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void TxTune::reject()
|
||||
{
|
||||
if(bTune) on_pbTune_clicked();
|
||||
set_iqAmp(m_saveAmp);
|
||||
set_iqPhase(m_savePha);
|
||||
set_txPower(m_saveTxPower);
|
||||
QDialog::reject();
|
||||
}
|
||||
|
||||
void TxTune::on_pwrSlider_valueChanged(int n)
|
||||
{
|
||||
txPower=n;
|
||||
ui->labPower->setText (QString {"%1 %"}.arg (n));
|
||||
}
|
||||
|
||||
void TxTune::on_ampSlider_valueChanged(int n)
|
||||
{
|
||||
m_iqAmp1=n;
|
||||
iqAmp=10*m_iqAmp1 + m_iqAmp2;
|
||||
ui->labAmpReal->setText (QString::number (1.0 + 0.0001 * iqAmp, 'f', 4));
|
||||
}
|
||||
|
||||
void TxTune::on_fineAmpSlider_valueChanged(int n)
|
||||
{
|
||||
m_iqAmp2=n;
|
||||
iqAmp=10*m_iqAmp1 + m_iqAmp2;
|
||||
ui->labAmpReal->setText (QString::number (1.0 + 0.0001*iqAmp, 'f', 4));
|
||||
}
|
||||
|
||||
void TxTune::on_phaSlider_valueChanged(int n)
|
||||
{
|
||||
m_iqPha1=n;
|
||||
iqPhase=10*m_iqPha1 + m_iqPha2;
|
||||
ui->labPhaReal->setText (QString::number (0.01*iqPhase, 'f', 2));
|
||||
}
|
||||
|
||||
void TxTune::on_finePhaSlider_valueChanged(int n)
|
||||
{
|
||||
m_iqPha2=n;
|
||||
iqPhase=10*m_iqPha1 + m_iqPha2;
|
||||
ui->labPhaReal->setText (QString::number (0.01*iqPhase, 'f', 2));
|
||||
}
|
||||
|
||||
void TxTune::set_iqAmp(int n)
|
||||
{
|
||||
m_saveAmp=n;
|
||||
m_iqAmp1=n/10;
|
||||
m_iqAmp2=n%10;
|
||||
ui->ampSlider->setValue(m_iqAmp1);
|
||||
ui->fineAmpSlider->setValue(m_iqAmp2);
|
||||
}
|
||||
|
||||
void TxTune::set_iqPhase(int n)
|
||||
{
|
||||
m_savePha=n;
|
||||
m_iqPha1=n/10;
|
||||
m_iqPha2=n%10;
|
||||
ui->phaSlider->setValue(m_iqPha1);
|
||||
ui->finePhaSlider->setValue(m_iqPha2);
|
||||
}
|
||||
|
||||
void TxTune::set_txPower(int n)
|
||||
{
|
||||
m_saveTxPower=n;
|
||||
ui->pwrSlider->setValue(n);
|
||||
}
|
||||
|
||||
void TxTune::on_cbTxImage_toggled(bool b)
|
||||
{
|
||||
ui->ampSlider->setEnabled(b);
|
||||
ui->fineAmpSlider->setEnabled(b);
|
||||
ui->labAmp->setEnabled(b);
|
||||
ui->labFineAmp->setEnabled(b);
|
||||
ui->phaSlider->setEnabled(b);
|
||||
ui->finePhaSlider->setEnabled(b);
|
||||
ui->labPha->setEnabled(b);
|
||||
ui->labFinePha->setEnabled(b);
|
||||
}
|
||||
|
||||
void TxTune::on_pbTune_clicked()
|
||||
{
|
||||
bTune = !bTune;
|
||||
if(bTune) {
|
||||
QString style="QPushButton{background-color: red;}";
|
||||
ui->pbTune->setStyleSheet(style);
|
||||
} else {
|
||||
ui->pbTune->setStyleSheet("");
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
#ifndef TXTUNE_H
|
||||
#define TXTUNE_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class TxTune;
|
||||
}
|
||||
|
||||
class TxTune : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TxTune(QWidget *parent = 0);
|
||||
~TxTune();
|
||||
|
||||
public slots:
|
||||
void accept();
|
||||
void reject();
|
||||
|
||||
private slots:
|
||||
void on_pwrSlider_valueChanged(int n);
|
||||
void on_ampSlider_valueChanged(int n);
|
||||
void on_phaSlider_valueChanged(int n);
|
||||
void on_cbTxImage_toggled(bool b);
|
||||
void on_pbTune_clicked();
|
||||
void on_fineAmpSlider_valueChanged(int n);
|
||||
void on_finePhaSlider_valueChanged(int n);
|
||||
|
||||
public:
|
||||
void set_iqAmp(int n);
|
||||
void set_iqPhase(int n);
|
||||
void set_txPower(int n);
|
||||
|
||||
private:
|
||||
qint32 m_iqAmp1;
|
||||
qint32 m_iqAmp2;
|
||||
qint32 m_iqPha1;
|
||||
qint32 m_iqPha2;
|
||||
qint32 m_saveAmp;
|
||||
qint32 m_savePha;
|
||||
qint32 m_saveTxPower;
|
||||
|
||||
Ui::TxTune *ui;
|
||||
};
|
||||
|
||||
#endif // TXTUNE_H
|
302
q65w/txtune.ui
302
q65w/txtune.ui
@ -1,302 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TxTune</class>
|
||||
<widget class="QDialog" name="TxTune">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Tx Tune</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>240</y>
|
||||
<width>341</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
<property name="centerButtons">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>13</x>
|
||||
<y>38</y>
|
||||
<width>351</width>
|
||||
<height>191</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Tx Power:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSlider" name="pwrSlider">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
<property name="tickInterval">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="cbTxImage">
|
||||
<property name="text">
|
||||
<string>Enable Tx I/Q Adjustment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labAmp">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>I/Q Amplitude:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSlider" name="ampSlider">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="labFineAmp">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fine:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSlider" name="fineAmpSlider">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="labPha">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>I/Q Phase:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSlider" name="phaSlider">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="labFinePha">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fine:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QSlider" name="finePhaSlider">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="labAmpReal">
|
||||
<property name="text">
|
||||
<string>1.0000</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="labPhaReal">
|
||||
<property name="text">
|
||||
<string>0.000</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pbTune">
|
||||
<property name="text">
|
||||
<string>Tune</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="labPower">
|
||||
<property name="text">
|
||||
<string>100 %</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>TxTune</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>TxTune</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
Loading…
x
Reference in New Issue
Block a user