1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
/* -*- c++ -*- */
/*
* Gqrx SDR: Software defined radio receiver powered by GNU Radio and Qt
* http://gqrx.dk/
*
* Copyright 2011-2013 Alexandru Csete OZ9AEC.
*
* Gqrx is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* Gqrx is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Gqrx; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
#include <QDebug>
#include "demod_options.h"
#include "ui_demod_options.h"
CDemodOptions::CDemodOptions(QWidget *parent) :
QDialog(parent),
ui(new Ui::CDemodOptions)
{
ui->setupUi(this);
}
CDemodOptions::~CDemodOptions()
{
delete ui;
}
/*! \brief Catch window close events.
*
* This method is called when the user closes the demod options dialog
* window using the window close icon. We catch the event and hide the
* dialog but keep it around for later use.
*/
void CDemodOptions::closeEvent(QCloseEvent *event)
{
hide();
event->ignore();
}
void CDemodOptions::setCurrentPage(int index)
{
if (index < PAGE_NUM)
ui->demodOptions->setCurrentIndex(index);
}
int CDemodOptions::currentPage() const
{
return ui->demodOptions->currentIndex();
}
void CDemodOptions::setCwOffset(int offset)
{
ui->cwOffsetSpin->setValue(offset);
}
int CDemodOptions::getCwOffset(void) const
{
return ui->cwOffsetSpin->value();
}
void CDemodOptions::on_maxdevSelector_activated(int index)
{
float max_dev;
switch(index)
{
case 0:
/* Voice 2.5k */
max_dev = 2500.0;
break;
case 1:
/* Voice 5k */
max_dev = 5000.0;
break;
case 2:
/* APT 25k (17k but need some margin for Doppler and freq error) */
max_dev = 25000.0;
break;
case 3:
/* Broadcast FM 75k */
max_dev = 75000.0;
break;
default:
/* Voice 5k */
qDebug() << "Invalid max_dev index: " << index;
max_dev = 5000.0;
break;
}
emit fmMaxdevSelected(max_dev);
}
void CDemodOptions::on_emphSelector_activated(int index)
{
double tau_tbl[] = {0.0, 25.0, 50.0, 75.0, 100.0, 250.0, 530.0, 1000.0};
double tau;
if ((index < 0) || (index > 7)) {
qDebug() << "Invalid tau selection index: " << index;
return;
}
tau = tau_tbl[index] * 1.0e-6;
emit fmEmphSelected(tau);
}
void CDemodOptions::on_dcrCheckBox_toggled(bool checked)
{
emit amDcrToggled(checked);
}
void CDemodOptions::on_cwOffsetSpin_valueChanged(int value)
{
emit cwOffsetChanged(value);
}
|