sdrangel/plugins/channelrx/demodwfm/wfmdemodgui.h

93 wiersze
3.0 KiB
C
Czysty Zwykły widok Historia

2014-11-16 22:39:50 +00:00
#ifndef INCLUDE_WFMDEMODGUI_H
#define INCLUDE_WFMDEMODGUI_H
#include "channel/channelgui.h"
#include "dsp/channelmarker.h"
#include "util/messagequeue.h"
#include "settings/rollupstate.h"
2014-11-16 22:39:50 +00:00
2017-10-08 00:52:32 +00:00
#include "wfmdemodsettings.h"
2014-11-16 22:39:50 +00:00
class PluginAPI;
class DeviceUISet;
class BasebandSampleSink;
2014-11-16 22:39:50 +00:00
class WFMDemod;
namespace Ui {
class WFMDemodGUI;
}
class WFMDemodGUI : public ChannelGUI {
2014-11-16 22:39:50 +00:00
Q_OBJECT
public:
static WFMDemodGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
virtual void destroy();
2014-11-16 22:39:50 +00:00
void resetToDefaults();
QByteArray serialize() const;
bool deserialize(const QByteArray& data);
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
virtual void setWorkspaceIndex(int index) { m_settings.m_workspaceIndex = index; };
virtual int getWorkspaceIndex() const { return m_settings.m_workspaceIndex; };
virtual void setGeometryBytes(const QByteArray& blob) { m_settings.m_geometryBytes = blob; };
virtual QByteArray getGeometryBytes() const { return m_settings.m_geometryBytes; };
virtual QString getTitle() const { return m_settings.m_title; };
virtual QColor getTitleColor() const { return m_settings.m_rgbColor; };
virtual void zetHidden(bool hidden) { m_settings.m_hidden = hidden; }
virtual bool getHidden() const { return m_settings.m_hidden; }
virtual ChannelMarker& getChannelMarker() { return m_channelMarker; }
virtual int getStreamIndex() const { return m_settings.m_streamIndex; }
virtual void setStreamIndex(int streamIndex) { m_settings.m_streamIndex = streamIndex; }
2014-11-16 22:39:50 +00:00
public slots:
void channelMarkerChangedByCursor();
void channelMarkerHighlightedByCursor();
2014-11-16 22:39:50 +00:00
private:
Ui::WFMDemodGUI* ui;
PluginAPI* m_pluginAPI;
DeviceUISet* m_deviceUISet;
ChannelMarker m_channelMarker;
RollupState m_rollupState;
2017-10-08 00:52:32 +00:00
WFMDemodSettings m_settings;
qint64 m_deviceCenterFrequency;
int m_basebandSampleRate;
2014-11-16 22:39:50 +00:00
bool m_basicSettingsShown;
bool m_doApplySettings;
bool m_audioMute;
bool m_squelchOpen;
int m_audioSampleRate;
2014-11-16 22:39:50 +00:00
WFMDemod* m_wfmDemod;
MessageQueue m_inputMessageQueue;
explicit WFMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0);
2015-08-17 06:29:34 +00:00
virtual ~WFMDemodGUI();
2014-11-16 22:39:50 +00:00
void blockApplySettings(bool block);
2017-10-08 00:52:32 +00:00
void applySettings(bool force = false);
void displaySettings();
bool handleMessage(const Message& message);
void makeUIConnections();
void updateAbsoluteCenterFrequency();
void leaveEvent(QEvent*);
void enterEvent(QEvent*);
2017-01-08 18:42:26 +00:00
private slots:
void on_deltaFrequency_changed(qint64 value);
void on_rfBW_changed(quint64 value);
void on_afBW_valueChanged(int value);
void on_volume_valueChanged(int value);
void on_squelch_valueChanged(int value);
void on_audioMute_toggled(bool checked);
void onWidgetRolled(QWidget* widget, bool rollDown);
void onMenuDialogCalled(const QPoint& p);
2018-05-25 08:08:47 +00:00
void handleInputMessages();
void audioSelect();
void tick();
2014-11-16 22:39:50 +00:00
};
#endif // INCLUDE_WFMDEMODGUI_H