Merge pull request #368 from vsonnier/peakhold_on_demod_spectrum_and_misc

Peakhold on demod spectrum and misc
This commit is contained in:
Charles J. Cliffe 2016-06-09 17:52:07 -04:00 committed by GitHub
commit 13be18a2a3
7 changed files with 32 additions and 17 deletions

View File

@ -1478,6 +1478,9 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
int peakHoldMode = peakHoldButton->getSelection();
if (peakHoldButton->modeChanged()) {
wxGetApp().getSpectrumProcessor()->setPeakHold(peakHoldMode == 1);
//make the peak hold act on the current dmod also, like a zoomed-in version.
wxGetApp().getDemodSpectrumProcessor()->setPeakHold(peakHoldMode == 1);
peakHoldButton->clearModeChanged();
}

View File

@ -24,6 +24,8 @@
IMPLEMENT_APP(CubicSDR)
#include <fstream>
//#ifdef ENABLE_DIGITAL_LAB
//// console output buffer for windows
//#ifdef _WINDOWS
@ -156,18 +158,21 @@ bool CubicSDR::OnInit() {
return false;
}
//#ifdef ENABLE_DIGITAL_LAB
// // console output for windows
// #ifdef _WINDOWS
// if (AllocConsole()) {
// freopen("CONOUT$", "w", stdout);
// SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
// }
// outbuf ob;
// std::streambuf *sb = std::cout.rdbuf(&ob);
// std::cout.rdbuf(sb);
// #endif
//#endif
// // console output for Windows: available in DEBUG or in case of ENABLE_DIGITAL_LAB
#if (defined(WIN32) && (defined(ENABLE_DIGITAL_LAB) || defined(_DEBUG)))
if (AllocConsole()) {
freopen("CONOUT$", "w", stdout);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
SetConsoleTitle(L"CubicSDR: stdout");
}
//refresh
ofstream ob;
std::streambuf *sb = std::cout.rdbuf();
std::cout.rdbuf(sb);
#endif
wxApp::SetAppName("CubicSDR");
@ -448,6 +453,9 @@ void CubicSDR::setFrequency(long long freq) {
frequency = freq;
sdrThread->setFrequency(freq);
getSpectrumProcessor()->setPeakHold(getSpectrumProcessor()->getPeakHold());
//make the peak hold act on the current dmod also, like a zoomed-in version.
getDemodSpectrumProcessor()->setPeakHold(getSpectrumProcessor()->getPeakHold());
}
long long CubicSDR::getOffset() {

View File

@ -23,6 +23,11 @@ struct map_string_less : public std::binary_function<std::string,std::string,boo
class ReferenceCounter {
public:
//default constructor, initialized with refcont 1, sounds very natural
ReferenceCounter() {
refCount = 1;
}
// void setIndex(int idx) {
// std::lock_guard < std::recursive_mutex > lock(m_mutex);
@ -139,8 +144,8 @@ public:
std::cout << "Warning: ReBuffer '" << bufferId << "' count '" << outputBuffers.size() << "' exceeds threshold of '" << REBUFFER_WARNING_THRESHOLD << "'" << std::endl;
}
//by default created with refcount = 1
buf = new BufferType();
buf->setRefCount(1);
// buf->setIndex(indexCounter++);
outputBuffers.push_back(buf);

View File

@ -198,7 +198,6 @@ void DemodulatorPreThread::run() {
unsigned int numWritten;
msresamp_crcf_execute(iqResampler, in_buf, bufSize, &resampledData[0], &numWritten);
resamp->setRefCount(1);
resamp->data.assign(resampledData.begin(), resampledData.begin() + numWritten);
resamp->modemType = cModem->getType();

View File

@ -120,7 +120,6 @@ void DemodulatorThread::run() {
modemData.sampleRate = inp->sampleRate;
modemData.data.assign(inputData->begin(), inputData->end());
modemData.setRefCount(1);
AudioThreadInput *ati = nullptr;
@ -186,7 +185,6 @@ void DemodulatorThread::run() {
if (ati && localAudioVisOutputQueue != nullptr && localAudioVisOutputQueue->empty()) {
AudioThreadInput *ati_vis = new AudioThreadInput;
ati_vis->setRefCount(1);
ati_vis->sampleRate = inp->sampleRate;
ati_vis->inputRate = inp->sampleRate;

View File

@ -207,7 +207,6 @@ void SDRThread::readStream(SDRThreadIQDataQueue* iqDataOutQueue) {
dataOut->data.assign(inpBuffer.data.begin(), inpBuffer.data.begin()+n_read);
}
dataOut->setRefCount(1);
dataOut->frequency = frequency.load();
dataOut->sampleRate = sampleRate.load();
dataOut->dcCorrected = hasHardwareDC.load();

View File

@ -293,6 +293,9 @@ void SpectrumCanvas::OnMouseRightReleased(wxMouseEvent& event) {
if (!mouseTracker.getOriginDeltaMouseY()) {
resetScaleFactor = true;
wxGetApp().getSpectrumProcessor()->setPeakHold(wxGetApp().getSpectrumProcessor()->getPeakHold());
//make the peak hold act on the current dmod also, like a zoomed-in version.
wxGetApp().getDemodSpectrumProcessor()->setPeakHold(wxGetApp().getSpectrumProcessor()->getPeakHold());
}
mouseTracker.OnMouseRightReleased(event);
}