| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- #include "DeviceCaptureToolbar.hpp"
 
- #include "ui_device-select-toolbar.h"
 
- #include "moc_DeviceCaptureToolbar.cpp"
 
- DeviceCaptureToolbar::DeviceCaptureToolbar(QWidget *parent, OBSSource source)
 
- 	: QWidget(parent),
 
- 	  weakSource(OBSGetWeakRef(source)),
 
- 	  ui(new Ui_DeviceSelectToolbar)
 
- {
 
- 	ui->setupUi(this);
 
- 	delete ui->deviceLabel;
 
- 	delete ui->device;
 
- 	ui->deviceLabel = nullptr;
 
- 	ui->device = nullptr;
 
- 	OBSDataAutoRelease settings = obs_source_get_settings(source);
 
- 	active = obs_data_get_bool(settings, "active");
 
- 	obs_module_t *mod = obs_get_module("win-dshow");
 
- 	if (!mod)
 
- 		return;
 
- 	activateText = obs_module_get_locale_text(mod, "Activate");
 
- 	deactivateText = obs_module_get_locale_text(mod, "Deactivate");
 
- 	ui->activateButton->setText(active ? deactivateText : activateText);
 
- }
 
- DeviceCaptureToolbar::~DeviceCaptureToolbar() {}
 
- void DeviceCaptureToolbar::on_activateButton_clicked()
 
- {
 
- 	OBSSource source = OBSGetStrongRef(weakSource);
 
- 	if (!source) {
 
- 		return;
 
- 	}
 
- 	OBSDataAutoRelease settings = obs_source_get_settings(source);
 
- 	bool now_active = obs_data_get_bool(settings, "active");
 
- 	bool desyncedSetting = now_active != active;
 
- 	active = !active;
 
- 	const char *text = active ? deactivateText : activateText;
 
- 	ui->activateButton->setText(text);
 
- 	if (desyncedSetting) {
 
- 		return;
 
- 	}
 
- 	calldata_t cd = {};
 
- 	calldata_set_bool(&cd, "active", active);
 
- 	proc_handler_t *ph = obs_source_get_proc_handler(source);
 
- 	proc_handler_call(ph, "activate", &cd);
 
- 	calldata_free(&cd);
 
- }
 
 
  |