MCPcopy Create free account
hub / github.com/WarmUpTill/SceneSwitcher / AddFrameRate

Method AddFrameRate

plugins/scripting/utils/properties-view.cpp:1517–1613  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1515}
1516
1517void OBSPropertiesView::AddFrameRate(obs_property_t *prop, bool &warning,
1518 QFormLayout *layout, QLabel *&label)
1519{
1520 const char *name = obs_property_name(prop);
1521 bool enabled = obs_property_enabled(prop);
1522 unique_ptr<obs_data_item_t> obj{obs_data_item_byname(settings, name)};
1523
1524 const char *option = nullptr;
1525 obs_data_item_get_frames_per_second(obj.get(), nullptr, &option);
1526
1527 media_frames_per_second fps{};
1528 media_frames_per_second *valid_fps = nullptr;
1529 if (obs_data_item_get_frames_per_second(obj.get(), &fps, nullptr))
1530 valid_fps = &fps;
1531
1532 frame_rate_ranges_t fps_ranges;
1533 size_t num = obs_property_frame_rate_fps_ranges_count(prop);
1534 fps_ranges.reserve(num);
1535 for (size_t i = 0; i < num; i++)
1536 fps_ranges.emplace_back(
1537 obs_property_frame_rate_fps_range_min(prop, i),
1538 obs_property_frame_rate_fps_range_max(prop, i));
1539
1540 auto widget = CreateFrameRateWidget(prop, warning, option, valid_fps,
1541 fps_ranges);
1542 auto info = new WidgetInfo(this, prop, widget);
1543
1544 widget->setToolTip(QT_UTF8(obs_property_long_description(prop)));
1545
1546 widget->name = name;
1547 widget->settings = settings;
1548
1549 widget->modeSelect->setEnabled(enabled);
1550 widget->simpleFPS->setEnabled(enabled);
1551 widget->fpsRange->setEnabled(enabled);
1552 widget->numEdit->setEnabled(enabled);
1553 widget->denEdit->setEnabled(enabled);
1554
1555 label = widget->warningLabel =
1556 new QLabel{obs_property_description(prop)};
1557
1558 layout->addRow(label, widget);
1559
1560 children.emplace_back(info);
1561
1562 UpdateFPSLabels(widget);
1563
1564 auto stack = widget->modeDisplay;
1565 auto combo = widget->modeSelect;
1566
1567 stack->setToolTip(QT_UTF8(obs_property_long_description(prop)));
1568 combo->setToolTip(QT_UTF8(obs_property_long_description(prop)));
1569
1570 auto comboIndexChanged = static_cast<void (QComboBox::*)(int)>(
1571 &QComboBox::currentIndexChanged);
1572 connect(combo, comboIndexChanged, stack, [=](int index) {
1573 bool out_of_bounds = index >= stack->count();
1574 auto idx = out_of_bounds ? stack->count() - 1 : index;

Callers

nothing calls this directly

Calls 6

CreateFrameRateWidgetFunction · 0.85
UpdateFPSLabelsFunction · 0.85
addRowMethod · 0.80
countMethod · 0.80
getMethod · 0.45
setToolTipMethod · 0.45

Tested by

no test coverage detected