mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-18 01:52:05 -05:00
e789c19386
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2770 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
149 lines
4.0 KiB
C++
149 lines
4.0 KiB
C++
#include "devsetup.h"
|
|
#include "mainwindow.h"
|
|
#include <QDebug>
|
|
#include <portaudio.h>
|
|
|
|
#define MAXDEVICES 100
|
|
|
|
//----------------------------------------------------------- DevSetup()
|
|
DevSetup::DevSetup(QWidget *parent) : QDialog(parent)
|
|
{
|
|
ui.setupUi(this); //setup the dialog form
|
|
m_restartSoundIn=false;
|
|
m_restartSoundOut=false;
|
|
}
|
|
|
|
DevSetup::~DevSetup()
|
|
{
|
|
}
|
|
|
|
void DevSetup::initDlg()
|
|
{
|
|
int k,id;
|
|
int numDevices=Pa_GetDeviceCount();
|
|
|
|
const PaDeviceInfo *pdi;
|
|
int nchin;
|
|
int nchout;
|
|
char *p,*p1;
|
|
char p2[50];
|
|
char pa_device_name[128];
|
|
char pa_device_hostapi[128];
|
|
|
|
k=0;
|
|
#ifdef WIN32
|
|
// Needs work to compile for Linux
|
|
for(id=0; id<numDevices; id++ ) {
|
|
pdi=Pa_GetDeviceInfo(id);
|
|
nchin=pdi->maxInputChannels;
|
|
if(nchin>0) {
|
|
m_inDevList[k]=id;
|
|
k++;
|
|
sprintf((char*)(pa_device_name),"%s",pdi->name);
|
|
sprintf((char*)(pa_device_hostapi),"%s",
|
|
Pa_GetHostApiInfo(pdi->hostApi)->name);
|
|
|
|
p1=(char*)"";
|
|
p=strstr(pa_device_hostapi,"MME");
|
|
if(p!=NULL) p1=(char*)"MME";
|
|
p=strstr(pa_device_hostapi,"Direct");
|
|
if(p!=NULL) p1=(char*)"DirectX";
|
|
p=strstr(pa_device_hostapi,"WASAPI");
|
|
if(p!=NULL) p1=(char*)"WASAPI";
|
|
p=strstr(pa_device_hostapi,"ASIO");
|
|
if(p!=NULL) p1=(char*)"ASIO";
|
|
p=strstr(pa_device_hostapi,"WDM-KS");
|
|
if(p!=NULL) p1=(char*)"WDM-KS";
|
|
|
|
sprintf(p2,"%2d %d %-8s %-39s",id,nchin,p1,pa_device_name);
|
|
QString t(p2);
|
|
ui.comboBoxSndIn->addItem(t);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
k=0;
|
|
for(id=0; id<numDevices; id++ ) {
|
|
pdi=Pa_GetDeviceInfo(id);
|
|
nchout=pdi->maxOutputChannels;
|
|
if(nchout>0) {
|
|
m_outDevList[k]=id;
|
|
k++;
|
|
sprintf((char*)(pa_device_name),"%s",pdi->name);
|
|
sprintf((char*)(pa_device_hostapi),"%s",
|
|
Pa_GetHostApiInfo(pdi->hostApi)->name);
|
|
|
|
#ifdef WIN32
|
|
// Needs work to compile for Linux
|
|
p1=(char*)"";
|
|
p=strstr(pa_device_hostapi,"MME");
|
|
|
|
if(p!=NULL) p1=(char*)"MME";
|
|
p=strstr(pa_device_hostapi,"Direct");
|
|
if(p!=NULL) p1=(char*)"DirectX";
|
|
p=strstr(pa_device_hostapi,"WASAPI");
|
|
if(p!=NULL) p1=(char*)"WASAPI";
|
|
p=strstr(pa_device_hostapi,"ASIO");
|
|
if(p!=NULL) p1=(char*)"ASIO";
|
|
p=strstr(pa_device_hostapi,"WDM-KS");
|
|
if(p!=NULL) p1=(char*)"WDM-KS";
|
|
sprintf(p2,"%2d %d %-8s %-39s",id,nchout,p1,pa_device_name);
|
|
QString t(p2);
|
|
ui.comboBoxSndOut->addItem(t);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
ui.myCallEntry->setText(m_myCall);
|
|
ui.myGridEntry->setText(m_myGrid);
|
|
ui.idIntSpinBox->setValue(m_idInt);
|
|
ui.pttComboBox->setCurrentIndex(m_pttPort);
|
|
ui.saveDirEntry->setText(m_saveDir);
|
|
ui.dxccEntry->setText(m_dxccPfx);
|
|
ui.comboBoxSndIn->setCurrentIndex(m_nDevIn);
|
|
ui.comboBoxSndOut->setCurrentIndex(m_nDevOut);
|
|
m_paInDevice=m_inDevList[m_nDevIn];
|
|
m_paOutDevice=m_outDevList[m_nDevOut];
|
|
|
|
}
|
|
|
|
//------------------------------------------------------- accept()
|
|
void DevSetup::accept()
|
|
{
|
|
// Called when OK button is clicked.
|
|
// Check to see whether SoundInThread must be restarted,
|
|
// and save user parameters.
|
|
|
|
if(m_nDevIn!=ui.comboBoxSndIn->currentIndex() or
|
|
m_paInDevice!=m_inDevList[m_nDevIn]) 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();
|
|
m_pttPort=ui.pttComboBox->currentIndex();
|
|
m_saveDir=ui.saveDirEntry->text();
|
|
m_dxccPfx=ui.dxccEntry->text();
|
|
m_nDevIn=ui.comboBoxSndIn->currentIndex();
|
|
m_paInDevice=m_inDevList[m_nDevIn];
|
|
m_nDevOut=ui.comboBoxSndOut->currentIndex();
|
|
m_paOutDevice=m_outDevList[m_nDevOut];
|
|
QDialog::accept();
|
|
}
|
|
|
|
|
|
void DevSetup::on_myCallEntry_editingFinished()
|
|
{
|
|
QString t=ui.myCallEntry->text();
|
|
ui.myCallEntry->setText(t.toUpper());
|
|
}
|
|
|
|
void DevSetup::on_myGridEntry_editingFinished()
|
|
{
|
|
QString t=ui.myGridEntry->text();
|
|
t=t.mid(0,4).toUpper()+t.mid(4,2).toLower();
|
|
ui.myGridEntry->setText(t);
|
|
}
|