mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-14 12:22:00 -05:00
ATV Demodulator: pass sync top time as float from GUI
This commit is contained in:
parent
df32ccef2f
commit
5df5ee5a5d
@ -83,9 +83,9 @@ void ATVDemod::configure(MessageQueue* objMessageQueue, int intLineDurationUs, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ATVDemod::InitATVParameters(
|
void ATVDemod::InitATVParameters(
|
||||||
int intMsps,
|
int intSampleRate,
|
||||||
float fltLineDurationUs,
|
float fltLineDurationUs,
|
||||||
int intTopDurationUs,
|
float fltTopDurationUs,
|
||||||
int intFramePerS,
|
int intFramePerS,
|
||||||
int intPercentOfRowsToDisplay,
|
int intPercentOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
float fltVoltLevelSynchroTop,
|
||||||
@ -94,7 +94,6 @@ void ATVDemod::InitATVParameters(
|
|||||||
bool blnHSync,
|
bool blnHSync,
|
||||||
bool blnVSync)
|
bool blnVSync)
|
||||||
{
|
{
|
||||||
float fltLineSynchroTop = (float) intTopDurationUs;
|
|
||||||
float fltImagesPerSeconds = (float) intFramePerS;
|
float fltImagesPerSeconds = (float) intFramePerS;
|
||||||
int intNumberSamplePerLine;
|
int intNumberSamplePerLine;
|
||||||
int intNumberOfLines;
|
int intNumberOfLines;
|
||||||
@ -105,7 +104,7 @@ void ATVDemod::InitATVParameters(
|
|||||||
m_fltVoltLevelSynchroTop = fltVoltLevelSynchroTop;
|
m_fltVoltLevelSynchroTop = fltVoltLevelSynchroTop;
|
||||||
m_fltVoltLevelSynchroBlack = fltVoltLevelSynchroBlack;
|
m_fltVoltLevelSynchroBlack = fltVoltLevelSynchroBlack;
|
||||||
|
|
||||||
intNumberSamplePerLine = (int) ((fltLineDurationUs * intMsps) / m_fltSecondToUs);
|
intNumberSamplePerLine = (int) ((fltLineDurationUs * intSampleRate) / m_fltSecondToUs);
|
||||||
intNumberOfLines = (int) ((m_fltSecondToUs/fltImagesPerSeconds) /round(fltLineDurationUs));
|
intNumberOfLines = (int) ((m_fltSecondToUs/fltImagesPerSeconds) /round(fltLineDurationUs));
|
||||||
|
|
||||||
if((intNumberSamplePerLine != m_intNumberSamplePerLine)
|
if((intNumberSamplePerLine != m_intNumberSamplePerLine)
|
||||||
@ -115,9 +114,9 @@ void ATVDemod::InitATVParameters(
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_intNumberSamplePerLine= intNumberSamplePerLine;
|
m_intNumberSamplePerLine= intNumberSamplePerLine;
|
||||||
m_intNumberSamplePerTop=(int)((fltLineSynchroTop * intMsps) / m_fltSecondToUs);
|
m_intNumberSamplePerTop=(int)((fltTopDurationUs * intSampleRate) / m_fltSecondToUs);
|
||||||
m_intNumberOfLines = intNumberOfLines;
|
m_intNumberOfLines = intNumberOfLines;
|
||||||
m_intNumberOfRowsToDisplay = (int)((((float)intPercentOfRowsToDisplay) * fltLineDurationUs * intMsps) / (m_fltSecondToUs*100.0f));
|
m_intNumberOfRowsToDisplay = (int)((((float)intPercentOfRowsToDisplay) * fltLineDurationUs * intSampleRate) / (m_fltSecondToUs*100.0f));
|
||||||
m_intRowsLimit = m_intNumberOfLines-1;
|
m_intRowsLimit = m_intNumberOfLines-1;
|
||||||
m_intImageIndex = 0;
|
m_intImageIndex = 0;
|
||||||
|
|
||||||
@ -138,8 +137,8 @@ void ATVDemod::InitATVParameters(
|
|||||||
m_objRunning.m_fltVoltLevelSynchroTop = m_fltVoltLevelSynchroTop;
|
m_objRunning.m_fltVoltLevelSynchroTop = m_fltVoltLevelSynchroTop;
|
||||||
m_objRunning.m_intFramePerS = intFramePerS;
|
m_objRunning.m_intFramePerS = intFramePerS;
|
||||||
m_objRunning.m_fltLineDurationUs = fltLineDurationUs;
|
m_objRunning.m_fltLineDurationUs = fltLineDurationUs;
|
||||||
m_objRunning.m_intTopDurationUs = intTopDurationUs;
|
m_objRunning.m_fltTopDurationUs = fltTopDurationUs;
|
||||||
m_objRunning.m_intMsps = intMsps;
|
m_objRunning.m_intSampleRate = intSampleRate;
|
||||||
m_objRunning.m_intPercentOfRowsToDisplay = intPercentOfRowsToDisplay;
|
m_objRunning.m_intPercentOfRowsToDisplay = intPercentOfRowsToDisplay;
|
||||||
m_objRunning.m_blnHSync = blnHSync;
|
m_objRunning.m_blnHSync = blnHSync;
|
||||||
m_objRunning.m_blnVSync = blnVSync;
|
m_objRunning.m_blnVSync = blnVSync;
|
||||||
@ -147,9 +146,9 @@ void ATVDemod::InitATVParameters(
|
|||||||
m_objSettingsMutex.unlock();
|
m_objSettingsMutex.unlock();
|
||||||
|
|
||||||
qDebug() << "ATVDemod::InitATVParameters:"
|
qDebug() << "ATVDemod::InitATVParameters:"
|
||||||
<< " - Msps: " << intMsps
|
<< " - Sample rate S/s: " << intSampleRate
|
||||||
<< " - Line us: " << fltLineDurationUs
|
<< " - Line us: " << fltLineDurationUs
|
||||||
<< " - Top us: " << intTopDurationUs
|
<< " - Top us: " << fltTopDurationUs
|
||||||
<< " - Frame/s: " << intFramePerS
|
<< " - Frame/s: " << intFramePerS
|
||||||
<< " <=> "
|
<< " <=> "
|
||||||
<< " - Samples per Line: " << m_intNumberSamplePerLine
|
<< " - Samples per Line: " << m_intNumberSamplePerLine
|
||||||
@ -530,14 +529,14 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
{
|
{
|
||||||
DownChannelizer::MsgChannelizerNotification& objNotif = (DownChannelizer::MsgChannelizerNotification&) cmd;
|
DownChannelizer::MsgChannelizerNotification& objNotif = (DownChannelizer::MsgChannelizerNotification&) cmd;
|
||||||
|
|
||||||
if(m_objRunning.m_intMsps!=objNotif.getSampleRate())
|
if(m_objRunning.m_intSampleRate!=objNotif.getSampleRate())
|
||||||
{
|
{
|
||||||
m_objRunning.m_intMsps = objNotif.getSampleRate();
|
m_objRunning.m_intSampleRate = objNotif.getSampleRate();
|
||||||
ApplySettings();
|
ApplySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << "ATVDemod::handleMessage: MsgChannelizerNotification:"
|
qDebug() << "ATVDemod::handleMessage: MsgChannelizerNotification:"
|
||||||
<< " m_intMsps: " << m_objRunning.m_intMsps;
|
<< " m_intMsps: " << m_objRunning.m_intSampleRate;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -551,7 +550,7 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
m_objConfig.m_intFramePerS = objCfg.m_objMsgConfig.m_intFramePerS;
|
m_objConfig.m_intFramePerS = objCfg.m_objMsgConfig.m_intFramePerS;
|
||||||
m_objConfig.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
m_objConfig.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
||||||
m_objConfig.m_intPercentOfRowsToDisplay = objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay;
|
m_objConfig.m_intPercentOfRowsToDisplay = objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay;
|
||||||
m_objConfig.m_intTopDurationUs = objCfg.m_objMsgConfig.m_intTopDurationUs;
|
m_objConfig.m_fltTopDurationUs = objCfg.m_objMsgConfig.m_fltTopDurationUs;
|
||||||
m_objConfig.m_blnHSync = objCfg.m_objMsgConfig.m_blnHSync;
|
m_objConfig.m_blnHSync = objCfg.m_objMsgConfig.m_blnHSync;
|
||||||
m_objConfig.m_blnVSync = objCfg.m_objMsgConfig.m_blnVSync;
|
m_objConfig.m_blnVSync = objCfg.m_objMsgConfig.m_blnVSync;
|
||||||
|
|
||||||
@ -561,7 +560,7 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
|| (objCfg.m_objMsgConfig.m_intFramePerS != m_objRunning.m_intFramePerS)
|
|| (objCfg.m_objMsgConfig.m_intFramePerS != m_objRunning.m_intFramePerS)
|
||||||
|| (objCfg.m_objMsgConfig.m_fltLineDurationUs != m_objRunning.m_fltLineDurationUs)
|
|| (objCfg.m_objMsgConfig.m_fltLineDurationUs != m_objRunning.m_fltLineDurationUs)
|
||||||
|| (objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay != m_objRunning.m_intPercentOfRowsToDisplay)
|
|| (objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay != m_objRunning.m_intPercentOfRowsToDisplay)
|
||||||
|| (objCfg.m_objMsgConfig.m_intTopDurationUs != m_objRunning.m_intTopDurationUs)
|
|| (objCfg.m_objMsgConfig.m_fltTopDurationUs != m_objRunning.m_fltTopDurationUs)
|
||||||
|| (objCfg.m_objMsgConfig.m_blnHSync != m_objRunning.m_blnHSync)
|
|| (objCfg.m_objMsgConfig.m_blnHSync != m_objRunning.m_blnHSync)
|
||||||
|| (objCfg.m_objMsgConfig.m_blnVSync != m_objRunning.m_blnVSync))
|
|| (objCfg.m_objMsgConfig.m_blnVSync != m_objRunning.m_blnVSync))
|
||||||
{
|
{
|
||||||
@ -571,7 +570,7 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
m_objRunning.m_intFramePerS = objCfg.m_objMsgConfig.m_intFramePerS;
|
m_objRunning.m_intFramePerS = objCfg.m_objMsgConfig.m_intFramePerS;
|
||||||
m_objRunning.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
m_objRunning.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
||||||
m_objRunning.m_intPercentOfRowsToDisplay = objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay;
|
m_objRunning.m_intPercentOfRowsToDisplay = objCfg.m_objMsgConfig.m_intPercentOfRowsToDisplay;
|
||||||
m_objRunning.m_intTopDurationUs = objCfg.m_objMsgConfig.m_intTopDurationUs;
|
m_objRunning.m_fltTopDurationUs = objCfg.m_objMsgConfig.m_fltTopDurationUs;
|
||||||
m_objRunning.m_blnHSync = objCfg.m_objMsgConfig.m_blnHSync;
|
m_objRunning.m_blnHSync = objCfg.m_objMsgConfig.m_blnHSync;
|
||||||
m_objRunning.m_blnVSync = objCfg.m_objMsgConfig.m_blnVSync;
|
m_objRunning.m_blnVSync = objCfg.m_objMsgConfig.m_blnVSync;
|
||||||
|
|
||||||
@ -589,16 +588,16 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
void ATVDemod::ApplySettings()
|
void ATVDemod::ApplySettings()
|
||||||
{
|
{
|
||||||
|
|
||||||
if(m_objRunning.m_intMsps==0)
|
if(m_objRunning.m_intSampleRate==0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
InitATVParameters(
|
InitATVParameters(
|
||||||
m_objRunning.m_intMsps,
|
m_objRunning.m_intSampleRate,
|
||||||
m_objRunning.m_fltLineDurationUs,
|
m_objRunning.m_fltLineDurationUs,
|
||||||
m_objRunning.m_intTopDurationUs,
|
m_objRunning.m_fltTopDurationUs,
|
||||||
m_objRunning.m_intFramePerS,
|
m_objRunning.m_intFramePerS,
|
||||||
m_objRunning.m_intPercentOfRowsToDisplay,
|
m_objRunning.m_intPercentOfRowsToDisplay,
|
||||||
m_objRunning.m_fltVoltLevelSynchroTop,
|
m_objRunning.m_fltVoltLevelSynchroTop,
|
||||||
@ -610,6 +609,6 @@ void ATVDemod::ApplySettings()
|
|||||||
|
|
||||||
int ATVDemod::GetSampleRate()
|
int ATVDemod::GetSampleRate()
|
||||||
{
|
{
|
||||||
return m_objRunning.m_intMsps;
|
return m_objRunning.m_intSampleRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ public:
|
|||||||
|
|
||||||
struct ATVConfig
|
struct ATVConfig
|
||||||
{
|
{
|
||||||
int m_intMsps;
|
int m_intSampleRate;
|
||||||
float m_fltLineDurationUs;
|
float m_fltLineDurationUs;
|
||||||
int m_intTopDurationUs;
|
float m_fltTopDurationUs;
|
||||||
int m_intFramePerS;
|
int m_intFramePerS;
|
||||||
int m_intPercentOfRowsToDisplay;
|
int m_intPercentOfRowsToDisplay;
|
||||||
float m_fltVoltLevelSynchroTop;
|
float m_fltVoltLevelSynchroTop;
|
||||||
@ -60,9 +60,9 @@ public:
|
|||||||
bool m_blnVSync;
|
bool m_blnVSync;
|
||||||
|
|
||||||
ATVConfig() :
|
ATVConfig() :
|
||||||
m_intMsps(0),
|
m_intSampleRate(0),
|
||||||
m_fltLineDurationUs(0.0f),
|
m_fltLineDurationUs(0.0f),
|
||||||
m_intTopDurationUs(0),
|
m_fltTopDurationUs(0.0f),
|
||||||
m_intFramePerS(0),
|
m_intFramePerS(0),
|
||||||
m_intPercentOfRowsToDisplay(0),
|
m_intPercentOfRowsToDisplay(0),
|
||||||
m_fltVoltLevelSynchroTop(0),
|
m_fltVoltLevelSynchroTop(0),
|
||||||
@ -96,7 +96,7 @@ public:
|
|||||||
bool SetATVScreen(ATVScreen *objScreen);
|
bool SetATVScreen(ATVScreen *objScreen);
|
||||||
void InitATVParameters(int intMsps,
|
void InitATVParameters(int intMsps,
|
||||||
float fltLineDurationUs,
|
float fltLineDurationUs,
|
||||||
int intTopDurationUs,
|
float fltTopDurationUs,
|
||||||
int intFramePerS,
|
int intFramePerS,
|
||||||
int intPercentOfRowsToDisplay,
|
int intPercentOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
float fltVoltLevelSynchroTop,
|
||||||
@ -115,7 +115,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
static MsgConfigureATVDemod* create(float fltLineDurationUs,
|
static MsgConfigureATVDemod* create(float fltLineDurationUs,
|
||||||
int intTopDurationUs,
|
float fltTopDurationUs,
|
||||||
int intFramePerS,
|
int intFramePerS,
|
||||||
int intPercentOfRowsToDisplay,
|
int intPercentOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
float fltVoltLevelSynchroTop,
|
||||||
@ -125,7 +125,7 @@ private:
|
|||||||
bool blnVSync)
|
bool blnVSync)
|
||||||
{
|
{
|
||||||
return new MsgConfigureATVDemod(fltLineDurationUs,
|
return new MsgConfigureATVDemod(fltLineDurationUs,
|
||||||
intTopDurationUs,
|
fltTopDurationUs,
|
||||||
intFramePerS,
|
intFramePerS,
|
||||||
intPercentOfRowsToDisplay,
|
intPercentOfRowsToDisplay,
|
||||||
fltVoltLevelSynchroTop,
|
fltVoltLevelSynchroTop,
|
||||||
@ -139,7 +139,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
MsgConfigureATVDemod(float fltLineDurationUs,
|
MsgConfigureATVDemod(float fltLineDurationUs,
|
||||||
int intTopDurationUs,
|
float fltTopDurationUs,
|
||||||
int intFramePerS,
|
int intFramePerS,
|
||||||
int intPercentOfRowsToDisplay,
|
int intPercentOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
float fltVoltLevelSynchroTop,
|
||||||
@ -154,7 +154,7 @@ private:
|
|||||||
m_objMsgConfig.m_fltVoltLevelSynchroTop = fltVoltLevelSynchroTop;
|
m_objMsgConfig.m_fltVoltLevelSynchroTop = fltVoltLevelSynchroTop;
|
||||||
m_objMsgConfig.m_intFramePerS = intFramePerS;
|
m_objMsgConfig.m_intFramePerS = intFramePerS;
|
||||||
m_objMsgConfig.m_fltLineDurationUs = fltLineDurationUs;
|
m_objMsgConfig.m_fltLineDurationUs = fltLineDurationUs;
|
||||||
m_objMsgConfig.m_intTopDurationUs = intTopDurationUs;
|
m_objMsgConfig.m_fltTopDurationUs = fltTopDurationUs;
|
||||||
m_objMsgConfig.m_intPercentOfRowsToDisplay = intPercentOfRowsToDisplay;
|
m_objMsgConfig.m_intPercentOfRowsToDisplay = intPercentOfRowsToDisplay;
|
||||||
m_objMsgConfig.m_blnHSync = blnHSync;
|
m_objMsgConfig.m_blnHSync = blnHSync;
|
||||||
m_objMsgConfig.m_blnVSync = blnVSync;
|
m_objMsgConfig.m_blnVSync = blnVSync;
|
||||||
|
@ -278,7 +278,7 @@ void ATVDemodGUI::applySettings()
|
|||||||
|
|
||||||
m_objATVDemod->configure(m_objATVDemod->getInputMessageQueue(),
|
m_objATVDemod->configure(m_objATVDemod->getInputMessageQueue(),
|
||||||
ui->lineTime->value() / 10.0f,
|
ui->lineTime->value() / 10.0f,
|
||||||
ui->topTime->value(),
|
ui->topTime->value() * 1.0f,
|
||||||
(ui->fps->currentIndex() == 0) ? 25 : 30,
|
(ui->fps->currentIndex() == 0) ? 25 : 30,
|
||||||
(ui->halfImage->checkState() == Qt::Checked) ? 50 : 100,
|
(ui->halfImage->checkState() == Qt::Checked) ? 50 : 100,
|
||||||
((float) (ui->synchLevel->value())) / 1000.0f,
|
((float) (ui->synchLevel->value())) / 1000.0f,
|
||||||
|
Loading…
Reference in New Issue
Block a user