27 connect(
mainWin->actionTest, SIGNAL(triggered()),
this, SLOT(
test()));
55 vidBitrateCallData->lineEditUi = videoBitrate;
56 vidBitrateCallData->label =
mainWin->videoBitrateLabel;
58 auto extraPtr = vidBitrateCallData.get();
61 std::move(vidBitrateCallData));
108 "audio.compress.bitrate"));
112 "audio.source.channels"));
130 static_cast<Ui::UltragridWindow *
>(opaque)->vuMeter->setVisible(opt.
isEnabled());
131 static_cast<Ui::UltragridWindow *
>(opaque)->vuMeterSend->setVisible(opt.
isEnabled());
180 connect(
settingsWin->codecList, &QListWidget::currentItemChanged,
188 const char *keyPrefix;
190 {
"Audio playback", AUDIO_PLAYBACK,
"audio.playback"},
191 {
"Audio capture", AUDIO_SRC,
"audio.source"},
192 {
"Display", VIDEO_DISPLAY,
"video.display"},
193 {
"Capture", VIDEO_SRC,
"video.source"},
198 for(
const auto& i : tabs){
201 tab.
page = std::make_unique<QWidget>();
202 auto layout =
new QHBoxLayout();
203 tab.
page->setLayout(layout);
210 tab.
listWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
211 tab.
scrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
219 connect(tab.
listWidget, &QListWidget::currentItemChanged,
237 QListWidgetItem *
item =
new QListWidgetItem(list);
239 item->setData(Qt::UserRole, QVariant::fromValue(
codec));
257 QListWidgetItem *
item =
new QListWidgetItem(list);
259 item->setText(QString::fromStdString(dev.name));
260 item->setData(Qt::UserRole, QVariant::fromValue(dev));
272 const auto &
codec = curr->data(Qt::UserRole).value<
Codec>();
282 const auto &dev = curr->data(Qt::UserRole).value<
Device>();
290 QComboBox *encoderCombo =
new QComboBox();
291 form.
formLayout->addRow(
"Encoder", encoderCombo);
295 "video.compress." +
codec.module_name +
".codec." +
codec.
name +
".encoder",
302 if(compMod.name ==
codec.module_name){
303 fillFormOptions(form,
"video.compress." + compMod.name +
".", compMod.opts);
322 std::string_view keyPrefix,
323 const std::vector<CapabOpt>& opts)
325 for(
const auto& modOpt : opts){
326 QLabel *
label =
new QLabel(QString::fromStdString(modOpt.displayName));
327 QWidget *field =
nullptr;
329 std::string optKey = std::string(keyPrefix) + modOpt.key;
330 if(modOpt.booleanOpt){
331 QCheckBox *checkBox =
new QCheckBox();
338 QLineEdit *lineEdit =
new QLineEdit();
345 label->setToolTip(QString::fromStdString(modOpt.displayDesc));
346 field->setToolTip(QString::fromStdString(modOpt.displayDesc));
std::vector< SettingItem > getAudioCompress(AvailableSettings *availSettings)
void audioCompressionCallback(Option &opt, bool suboption, void *opaque)
std::vector< SettingItem > getAudioPlayback(AvailableSettings *availSettings)
std::vector< SettingItem > getAudioSrc(AvailableSettings *availSettings)
const std::vector< CompressModule > & getVideoCompressModules() const
const std::vector< Codec > & getVideoCompressCodecs() const
const std::vector< Device > & getDevices(SettingType type) const
void addOnChangeCallback(Callback callback)
const Option & getOption(const std::string &opt) const
std::string getLaunchParams() const
static void refreshAllCallback(Option &, bool, void *)
Ui::Settings * settingsWin
std::vector< std::unique_ptr< WidgetUi > > uiControls
std::map< SettingType, DeviceOptTab > deviceTabs
void addControl(WidgetUi *widget)
AvailableSettings * availableSettings
void buildSettingsDeviceList(QListWidget *list, SettingType type)
void initSettingsWin(Ui::Settings *ui)
Ui::UltragridWindow * mainWin
void buildCodecOptControls(const Codec &codec)
void initMainWin(Ui::UltragridWindow *ui)
void buildSettingsCodecList()
void fillFormOptions(ControlForm &form, std::string_view keyPrefix, const std::vector< CapabOpt > &opts)
void init(Settings *settings, AvailableSettings *availableSettings)
void buildDeviceOptControls(const Device &dev, DeviceOptTab &tab)
void settingsCodecSelected(QListWidgetItem *curr, QListWidgetItem *prev)
void settingsDeviceSelected(QListWidgetItem *curr, QListWidgetItem *prev)
std::vector< std::unique_ptr< WidgetUi > > codecControls
static void vuMeterCallback(Option &opt, bool, void *opaque)
Q_DECLARE_METATYPE(Codec)
std::vector< CapabOpt > opts
std::vector< std::unique_ptr< WidgetUi > > uiControls
std::unique_ptr< QWidget > page
std::vector< SettingItem > getVideoDisplay(AvailableSettings *availSettings)
std::vector< SettingItem > getCodecEncoders(const Codec &codec)
std::vector< SettingItem > getVideoSrc(AvailableSettings *availSettings)
std::vector< SettingItem > getVideoModes(AvailableSettings *availSettings)
void videoCompressBitrateCallback(Option &opt, bool suboption, void *opaque)
std::vector< SettingItem > getVideoCompress(AvailableSettings *availSettings)