mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	1. Finish implementing a monochrome waterfall palette.
2. Update credits displayed in the "About" window. 3. Working on audio input via the QAudio library. Not yet finished! git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3513 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									a8491db120
								
							
						
					
					
						commit
						871f486848
					
				@ -13,7 +13,8 @@ CAboutDlg::CAboutDlg(QWidget *parent, QString Revision) :
 | 
				
			|||||||
  m_Str += "Amateur Radio communication.  <br><br>";
 | 
					  m_Str += "Amateur Radio communication.  <br><br>";
 | 
				
			||||||
  m_Str += "Copyright 2001-2013 by Joe Taylor, K1JT -- with grateful <br>";
 | 
					  m_Str += "Copyright 2001-2013 by Joe Taylor, K1JT -- with grateful <br>";
 | 
				
			||||||
  m_Str += "acknowledgment for contributions from AC6SL, AE4JY, <br>";
 | 
					  m_Str += "acknowledgment for contributions from AC6SL, AE4JY, <br>";
 | 
				
			||||||
  m_Str += "G4KLA, G4WJS, K3WYC, KA6MAL, KA9Q, PY2SDR, and VK4BDJ.<br>";
 | 
					  m_Str += "G4KLA, G4WJS, K3WYC, KA6MAL, KA9Q, PY2SDR, VK3ACF, <br>";
 | 
				
			||||||
 | 
					  m_Str += "and VK4BDJ.<br>";
 | 
				
			||||||
  ui->labelTxt->setText(m_Str);
 | 
					  ui->labelTxt->setText(m_Str);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,6 @@
 | 
				
			|||||||
#ifndef COMMONS_H
 | 
					#ifndef COMMONS_H
 | 
				
			||||||
#define COMMONS_H
 | 
					#define COMMONS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//#define NSMAX 1365
 | 
					 | 
				
			||||||
#define NSMAX 6827
 | 
					#define NSMAX 6827
 | 
				
			||||||
#define NTMAX 120
 | 
					#define NTMAX 120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								plotter.cpp
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								plotter.cpp
									
									
									
									
									
								
							@ -488,29 +488,28 @@ void CPlotter::setPalette(QString palette)                      //setPalette()
 | 
				
			|||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QFile f;
 | 
					  FILE* fp=NULL;
 | 
				
			||||||
	if(palette=="Blue") f.setFileName("blue.dat");
 | 
					  if(palette=="Blue") fp=fopen("blue.dat","r");
 | 
				
			||||||
	if(palette=="AFMHot") f.setFileName("afmhot.dat");
 | 
					  if(palette=="AFMHot") fp=fopen("afmhot.dat","r");
 | 
				
			||||||
	if(palette=="Gray1") f.setFileName("gray1.dat");
 | 
					  if(palette=="Gray1") fp=fopen("gray1.dat","r");
 | 
				
			||||||
	if(f.open(QIODevice::ReadOnly)) {
 | 
					  if(fp==NULL) {
 | 
				
			||||||
		 QTextStream in(&f);
 | 
					 | 
				
			||||||
		 int n,r,g,b;
 | 
					 | 
				
			||||||
		 float xr,xg,xb;
 | 
					 | 
				
			||||||
		 for(int i=0; i<256; i++) {
 | 
					 | 
				
			||||||
			 in >> n >> xr >> xg >> xb;
 | 
					 | 
				
			||||||
			 r=255.0*xr + 0.5;
 | 
					 | 
				
			||||||
			 g=255.0*xg + 0.5;
 | 
					 | 
				
			||||||
			 b=255.0*xb + 0.5;
 | 
					 | 
				
			||||||
			 m_ColorTbl[i].setRgb(r,g,b);
 | 
					 | 
				
			||||||
		 }
 | 
					 | 
				
			||||||
		 f.close();
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
    QMessageBox msgBox0;
 | 
					    QMessageBox msgBox0;
 | 
				
			||||||
    QString t="Error: Cannot find requested palette file.";
 | 
					    QString t="Error: Cannot find requested palette file.";
 | 
				
			||||||
    msgBox0.setText(t);
 | 
					    msgBox0.setText(t);
 | 
				
			||||||
    msgBox0.exec();
 | 
					    msgBox0.exec();
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int n,r,g,b;
 | 
				
			||||||
 | 
					  float xr,xg,xb;
 | 
				
			||||||
 | 
					  for(int i=0; i<256; i++) {
 | 
				
			||||||
 | 
					    int nn=fscanf(fp,"%d%f%f%f",&n,&xr,&xg,&xb);
 | 
				
			||||||
 | 
					    r=255.0*xr + 0.5;
 | 
				
			||||||
 | 
					    g=255.0*xg + 0.5;
 | 
				
			||||||
 | 
					    b=255.0*xb + 0.5;
 | 
				
			||||||
 | 
					    m_ColorTbl[i].setRgb(r,g,b);
 | 
				
			||||||
 | 
					    if(nn==-999999) i++;                  //Silence compiler warning
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
double CPlotter::fGreen()
 | 
					double CPlotter::fGreen()
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								soundin.cpp
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								soundin.cpp
									
									
									
									
									
								
							@ -3,7 +3,6 @@
 | 
				
			|||||||
#include <stdexcept>
 | 
					#include <stdexcept>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FRAMES_PER_BUFFER 1024
 | 
					#define FRAMES_PER_BUFFER 1024
 | 
				
			||||||
//#define NSMAX 1365
 | 
					 | 
				
			||||||
#define NSMAX 6827
 | 
					#define NSMAX 6827
 | 
				
			||||||
#define NTMAX 120
 | 
					#define NTMAX 120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -191,7 +190,6 @@ void SoundInput::setMonitoring(bool b)
 | 
				
			|||||||
#include <stdexcept>
 | 
					#include <stdexcept>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FRAMES_PER_BUFFER 1024
 | 
					#define FRAMES_PER_BUFFER 1024
 | 
				
			||||||
//#define NSMAX 1365
 | 
					 | 
				
			||||||
#define NSMAX 6827
 | 
					#define NSMAX 6827
 | 
				
			||||||
#define NTMAX 120
 | 
					#define NTMAX 120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -246,6 +244,7 @@ SoundInput::SoundInput()
 | 
				
			|||||||
		m_monitoring(false),
 | 
							m_monitoring(false),
 | 
				
			||||||
		m_intervalTimer(this)
 | 
							m_intervalTimer(this)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					//  qDebug() << "A";
 | 
				
			||||||
  connect(&m_intervalTimer, SIGNAL(timeout()), this,SLOT(intervalNotify()));
 | 
					  connect(&m_intervalTimer, SIGNAL(timeout()), this,SLOT(intervalNotify()));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -266,6 +265,7 @@ void SoundInput::start(qint32 device)
 | 
				
			|||||||
	m_InDevices = DeviceInfo.availableDevices(QAudio::AudioInput);
 | 
						m_InDevices = DeviceInfo.availableDevices(QAudio::AudioInput);
 | 
				
			||||||
	inputDevice = m_InDevices.at(0);
 | 
						inputDevice = m_InDevices.at(0);
 | 
				
			||||||
	//###
 | 
						//###
 | 
				
			||||||
 | 
					//  qDebug() << "B" << m_InDevices.length() << inputDevice.deviceName();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const char* pcmCodec = "audio/pcm";
 | 
						const char* pcmCodec = "audio/pcm";
 | 
				
			||||||
	QAudioFormat audioFormat = inputDevice.preferredFormat();
 | 
						QAudioFormat audioFormat = inputDevice.preferredFormat();
 | 
				
			||||||
@ -275,19 +275,22 @@ void SoundInput::start(qint32 device)
 | 
				
			|||||||
	audioFormat.setSampleType(QAudioFormat::SignedInt);
 | 
						audioFormat.setSampleType(QAudioFormat::SignedInt);
 | 
				
			||||||
	audioFormat.setSampleSize(16);
 | 
						audioFormat.setSampleSize(16);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  qDebug() << "C" << audioFormat << audioFormat.isValid();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!audioFormat.isValid()) {
 | 
						if (!audioFormat.isValid()) {
 | 
				
			||||||
		emit error(tr("Requested audio format is not available."));
 | 
							emit error(tr("Requested audio format is not available."));
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	audioInput = new QAudioInput(inputDevice, audioFormat);
 | 
						audioInput = new QAudioInput(inputDevice, audioFormat);
 | 
				
			||||||
//	audioInput2=audioInput;
 | 
					//  qDebug() << "D" << audioInput->error() << QAudio::NoError;
 | 
				
			||||||
  if (audioInput->error() != QAudio::NoError) {
 | 
					  if (audioInput->error() != QAudio::NoError) {
 | 
				
			||||||
		emit error(reportAudioError(audioInput->error()));
 | 
							emit error(reportAudioError(audioInput->error()));
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stream = audioInput->start();
 | 
						stream = audioInput->start();
 | 
				
			||||||
 | 
					//  qDebug() << "E" << stream->errorString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m_ntr0 = 99;		     // initial value higher than any expected
 | 
						m_ntr0 = 99;		     // initial value higher than any expected
 | 
				
			||||||
	m_nBusy = 0;
 | 
						m_nBusy = 0;
 | 
				
			||||||
@ -305,6 +308,7 @@ void SoundInput::intervalNotify()
 | 
				
			|||||||
	int ntr = nsec % m_TRperiod;
 | 
						int ntr = nsec % m_TRperiod;
 | 
				
			||||||
	static int k=0;
 | 
						static int k=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  qDebug() << "a" << ms << nsec;
 | 
				
			||||||
  // Reset buffer pointer and symbol number at start of minute
 | 
					  // Reset buffer pointer and symbol number at start of minute
 | 
				
			||||||
	if(ntr < m_ntr0 or !m_monitoring or m_nsps!=m_nsps0) {
 | 
						if(ntr < m_ntr0 or !m_monitoring or m_nsps!=m_nsps0) {
 | 
				
			||||||
		m_nstep0=0;
 | 
							m_nstep0=0;
 | 
				
			||||||
@ -314,8 +318,9 @@ void SoundInput::intervalNotify()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
//	int k=m_callbackData.kin;
 | 
					//	int k=m_callbackData.kin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// How many new samples have been acquired?
 | 
					// How many new samples are available?
 | 
				
			||||||
	const qint32 bytesReady = audioInput->bytesReady();
 | 
						const qint32 bytesReady = audioInput->bytesReady();
 | 
				
			||||||
 | 
					//  qDebug() << "b" << bytesReady;
 | 
				
			||||||
  Q_ASSERT(bytesReady >= 0);
 | 
					  Q_ASSERT(bytesReady >= 0);
 | 
				
			||||||
	Q_ASSERT(bytesReady % 2 == 0);
 | 
						Q_ASSERT(bytesReady % 2 == 0);
 | 
				
			||||||
	if (bytesReady == 0) {
 | 
						if (bytesReady == 0) {
 | 
				
			||||||
@ -323,8 +328,9 @@ void SoundInput::intervalNotify()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	qint32 bytesRead;
 | 
						qint32 bytesRead;
 | 
				
			||||||
	qint16 buf0[4096];
 | 
					  bytesRead = stream->read((char*)&jt9com_.d2[k], bytesReady);   // Get the new samples
 | 
				
			||||||
	bytesRead = stream->read((char*)buf0, bytesReady);   // Get the new samples
 | 
					  k += bytesRead/2;
 | 
				
			||||||
 | 
					//  qDebug() << "c" << bytesReady << bytesRead;
 | 
				
			||||||
  Q_ASSERT(bytesRead <= bytesReady);
 | 
					  Q_ASSERT(bytesRead <= bytesReady);
 | 
				
			||||||
	if (bytesRead < 0) {
 | 
						if (bytesRead < 0) {
 | 
				
			||||||
		emit error(tr("audio stream QIODevice::read returned -1."));
 | 
							emit error(tr("audio stream QIODevice::read returned -1."));
 | 
				
			||||||
@ -332,12 +338,6 @@ void SoundInput::intervalNotify()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	Q_ASSERT(bytesRead % 2 == 0);
 | 
						Q_ASSERT(bytesRead % 2 == 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//		memcpy(jt9com_.d2[k],buf0,bytesRead);
 | 
					 | 
				
			||||||
//		k+=bytesRead/2;
 | 
					 | 
				
			||||||
	for(int i=0; i<bytesRead/2; i++) {
 | 
					 | 
				
			||||||
		jt9com_.d2[k++]=buf0[i];
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if(m_monitoring) {
 | 
						if(m_monitoring) {
 | 
				
			||||||
		int kstep=m_nsps/2;
 | 
							int kstep=m_nsps/2;
 | 
				
			||||||
		m_step=(k-1)/kstep;
 | 
							m_step=(k-1)/kstep;
 | 
				
			||||||
@ -362,7 +362,13 @@ SoundInput::~SoundInput()
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					//		memcpy(jt9com_.d2[k],buf0,bytesRead);
 | 
				
			||||||
 | 
					//		k+=bytesRead/2;
 | 
				
			||||||
 | 
					  for(int i=0; i<bytesRead/2; i++) {
 | 
				
			||||||
 | 
					    jt9com_.d2[k++]=buf0[i];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
void SoundInput::stop()
 | 
					void SoundInput::stop()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	m_intervalTimer.stop();
 | 
						m_intervalTimer.stop();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user