You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
/* Управление publisher: окно можно закрыть и открыть повторно, engine живёт у MainWindow. */ |
|
#pragma once |
|
#include <QWidget> |
|
#include <QJsonObject> |
|
#include "stream_publish_engine.h" |
|
class QComboBox; |
|
class QLabel; |
|
class QPushButton; |
|
class QCheckBox; |
|
class QButtonGroup; |
|
class StreamPublishWindow : public QWidget { |
|
Q_OBJECT |
|
public: |
|
StreamPublishWindow(StreamPublishEngine* engine, uint64_t group, QWidget* parent = nullptr, const QString& settings = {}); |
|
signals: |
|
void settingsChanged(const QString& settings); |
|
private: |
|
StreamPublishEngine* m_engine; |
|
uint64_t m_group; |
|
QList<StreamVideoSource> m_sources; |
|
QList<StreamVideoMode> m_modes; |
|
QComboBox *m_source, *m_microphone, *m_mode, *m_codec, *m_bitrate; |
|
QCheckBox *m_audio, *m_mute; |
|
QLabel *m_status, *m_stats, *m_inputChannels; |
|
QPushButton* m_start; |
|
QButtonGroup* m_rotation; |
|
QWidget* m_preview; |
|
bool m_updating = false; |
|
QJsonObject m_settings; |
|
StreamPublishConfig selection() const; |
|
void refreshSources(); |
|
void refreshModes(const StreamPublishConfig& previous, bool maximum = false); |
|
void refreshCodecs(); |
|
void synchronize(); |
|
void apply(); |
|
void restoreSettings(); |
|
void saveSettings(); |
|
};
|
|
|