settings_page.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef __SETTINGS_H__
  2. #define __SETTINGS_H__
  3. #include "encoder/audio_encoder.h"
  4. #include "encoder/video_encoder.h"
  5. #include <QComboBox>
  6. #include <QDialog>
  7. #include <QGroupBox>
  8. #include <QLabel>
  9. #include <QLayout>
  10. #include <QLineEdit>
  11. #include <QPushButton>
  12. #include <QSpinBox>
  13. class SettingsPage : public QDialog {
  14. public:
  15. struct Param {
  16. Encoder<MediaType::AUDIO>::Param audioParam;
  17. Encoder<MediaType::VIDEO>::Param videoParam;
  18. std::string outputDir;
  19. std::string liveUrl;
  20. std::string liveName;
  21. };
  22. SettingsPage(Param* param, QWidget* parent = nullptr);
  23. private:
  24. void _InitUi();
  25. void _InitConnect();
  26. void _WriteSettings();
  27. QGroupBox* _InitVideoUi();
  28. QGroupBox* _InitAudioUi();
  29. QGroupBox* _InitOutputUi();
  30. QGroupBox* _InitLiveUi();
  31. void _ApplyBestDefaults();
  32. Param* _param = nullptr;
  33. QSpinBox* _videoBitRateBox = nullptr;
  34. QSpinBox* _videoFpsBox = nullptr;
  35. QComboBox* _videoEncoderBox = nullptr;
  36. QSpinBox* _videoWidthBox = nullptr;
  37. QSpinBox* _videoHeightBox = nullptr;
  38. QSpinBox* _audioBitRateBox = nullptr;
  39. QComboBox* _audioEncoderBox = nullptr;
  40. QLineEdit* _fileDirEdit = nullptr;
  41. QLineEdit* _liveUrlEdit = nullptr;
  42. QLineEdit* _liveNameEdit = nullptr;
  43. QPushButton* _selDirBtn = nullptr;
  44. QPushButton* _applyBtn = nullptr;
  45. QPushButton* _cancelBtn = nullptr;
  46. QPushButton* _yesBtn = nullptr;
  47. QPushButton* _resetBestBtn = nullptr;
  48. QHBoxLayout* _CreateDescription(std::string_view text, std::string_view textEx, QWidget* widget);
  49. };
  50. #endif