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

/* Управление 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();
};