ATV Modulator: camera manual FPS setting: modulator and UI communication

pull/27/head
f4exb 2017-03-24 19:06:29 +01:00
rodzic b82cb1791d
commit 096e1247e6
5 zmienionych plików z 73 dodań i 3 usunięć

Wyświetl plik

@ -30,6 +30,7 @@ MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureVideoFileSourceStreamTiming, Messag
MESSAGE_CLASS_DEFINITION(ATVMod::MsgReportVideoFileSourceStreamTiming, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgReportVideoFileSourceStreamData, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureCameraIndex, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureCameraData, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgReportCameraData, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureOverlayText, Message)
MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureShowOverlayText, Message)
@ -631,6 +632,21 @@ bool ATVMod::handleMessage(const Message& cmd)
return true;
}
else if (MsgConfigureCameraData::match(cmd))
{
MsgConfigureCameraData& cfg = (MsgConfigureCameraData&) cmd;
int index = cfg.getIndex();
float mnaualFPS = cfg.getManualFPS();
bool manualFPSEnable = cfg.getManualFPSEnable();
if (index < m_cameras.size())
{
m_cameras[index].m_videoFPSManual = mnaualFPS;
m_cameras[index].m_videoFPSManualEnable = manualFPSEnable;
}
return true;
}
else if (MsgConfigureOverlayText::match(cmd))
{
MsgConfigureOverlayText& cfg = (MsgConfigureOverlayText&) cmd;

Wyświetl plik

@ -216,6 +216,36 @@ public:
{ }
};
class MsgConfigureCameraData : public Message
{
MESSAGE_CLASS_DECLARATION
public:
int getIndex() const { return m_index; }
float getManualFPS() const { return m_manualFPS; }
bool getManualFPSEnable() const { return m_manualFPSEnable; }
static MsgConfigureCameraData* create(
int index,
float manualFPS,
bool manualFPSEnable)
{
return new MsgConfigureCameraData(index, manualFPS, manualFPSEnable);
}
private:
int m_index;
float m_manualFPS;
bool m_manualFPSEnable;
MsgConfigureCameraData(int index, float manualFPS, bool manualFPSEnable) :
Message(),
m_index(index),
m_manualFPS(manualFPS),
m_manualFPSEnable(manualFPSEnable)
{ }
};
class MsgReportCameraData : public Message {
MESSAGE_CLASS_DECLARATION

Wyświetl plik

@ -192,6 +192,9 @@ bool ATVModGUI::handleMessage(const Message& message)
ui->cameraDeviceNumber->setText(tr("#%1").arg(rpt.getdeviceNumber()));
ui->camerFPS->setText(tr("%1 FPS").arg(rpt.getFPS(), 0, 'f', 2));
ui->cameraImageSize->setText(tr("%1x%2").arg(rpt.getWidth()).arg(rpt.getHeight()));
ui->cameraManualFPSText->setText(tr("%1 FPS").arg(rpt.getFPSManual(), 0, 'f', 1));
ui->cameraManualFPSEnable->setChecked(rpt.getFPSManualEnable());
ui->cameraManualFPS->setValue((int) rpt.getFPSManual()*10.0f);
int status = rpt.getStatus();
@ -499,6 +502,25 @@ void ATVModGUI::on_camSelect_currentIndexChanged(int index)
m_atvMod->getInputMessageQueue()->push(message);
}
void ATVModGUI::on_cameraManualFPSEnable_toggled(bool checked)
{
ATVMod::MsgConfigureCameraData* message = ATVMod::MsgConfigureCameraData::create(
ui->camSelect->currentIndex(),
checked,
ui->cameraManualFPS->value() / 10.0f);
m_atvMod->getInputMessageQueue()->push(message);
}
void ATVModGUI::on_cameraManualFPS_valueChanged(int value)
{
ui->cameraManualFPSText->setText(tr("%1 FPS").arg(value / 10.0f, 0, 'f', 1));
ATVMod::MsgConfigureCameraData* message = ATVMod::MsgConfigureCameraData::create(
ui->camSelect->currentIndex(),
ui->cameraManualFPSEnable->isChecked(),
value / 10.0f);
m_atvMod->getInputMessageQueue()->push(message);
}
void ATVModGUI::on_overlayTextShow_toggled(bool checked)
{
ATVMod::MsgConfigureShowOverlayText* message = ATVMod::MsgConfigureShowOverlayText::create(checked);

Wyświetl plik

@ -84,6 +84,8 @@ private slots:
void on_playCamera_toggled(bool checked);
void on_camSelect_currentIndexChanged(int index);
void on_cameraManualFPSEnable_toggled(bool checked);
void on_cameraManualFPS_valueChanged(int value);
void on_overlayTextShow_toggled(bool checked);
void on_overlayText_textEdited(const QString& arg1);

Wyświetl plik

@ -1134,7 +1134,7 @@
</widget>
</item>
<item>
<widget class="ButtonSwitch" name="manualFPSEnable">
<widget class="ButtonSwitch" name="cameraManualFPSEnable">
<property name="toolTip">
<string>Use manual FPS setting</string>
</property>
@ -1144,7 +1144,7 @@
</widget>
</item>
<item>
<widget class="QDial" name="manualFPS">
<widget class="QDial" name="cameraManualFPS">
<property name="maximumSize">
<size>
<width>24</width>
@ -1169,7 +1169,7 @@
</widget>
</item>
<item>
<widget class="QLabel" name="manualFPSText">
<widget class="QLabel" name="cameraManualFPSText">
<property name="minimumSize">
<size>
<width>50</width>