Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions src/ptz-device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,40 @@ obs_properties_t *PTZDevice::get_obs_properties()
obs_properties_add_group(rtn_props, "interface", obs_module_text("PTZ.Device.Connection"), OBS_GROUP_NORMAL,
config);

auto set_pantilt_cb = [](void *priv, obs_properties_t *, obs_property_t *, obs_data_t *settings) {
auto ptz = static_cast<PTZDevice *>(priv);
if (ptz)
ptz->pantilt_abs(obs_data_get_double(settings, "pan_target_pos"),
obs_data_get_double(settings, "tilt_target_pos"));
return false;
};
auto pan_pos = obs_properties_add_float_slider(
rtn_props, "pan_target_pos", obs_module_text("PTZ.Device.PanPosition"), -1.0, 1.0, 1.0 / 10240);
obs_property_set_modified_callback2(pan_pos, set_pantilt_cb, this);
auto tilt_pos = obs_properties_add_float_slider(
rtn_props, "tilt_target_pos", obs_module_text("PTZ.Device.TiltPosition"), -1.0, 1.0, 1.0 / 10240);
obs_property_set_modified_callback2(tilt_pos, set_pantilt_cb, this);

auto set_zoom_cb = [](void *priv, obs_properties_t *, obs_property_t *, obs_data_t *settings) {
auto ptz = static_cast<PTZDevice *>(priv);
if (ptz)
ptz->zoom_abs(obs_data_get_double(settings, "zoom_target_pos"));
return false;
};
auto zoom_pos = obs_properties_add_float_slider(
rtn_props, "zoom_target_pos", obs_module_text("PTZ.Device.ZoomPosition"), 0.0, 1.0, 1.0 / 10240);
obs_property_set_modified_callback2(zoom_pos, set_zoom_cb, this);

auto set_focus_cb = [](void *priv, obs_properties_t *, obs_property_t *, obs_data_t *settings) {
auto ptz = static_cast<PTZDevice *>(priv);
if (ptz)
ptz->focus_abs(obs_data_get_double(settings, "focus_target_pos"));
return false;
};
auto focus_pos = obs_properties_add_float_slider(
rtn_props, "focus_target_pos", obs_module_text("PTZ.Device.FocusPosition"), 0.0, 1.0, 1.0 / 10240);
obs_property_set_modified_callback2(focus_pos, set_focus_cb, this);

/* Generic camera limits and speeds properties */
auto speed = obs_properties_create();
obs_properties_add_group(rtn_props, "general", obs_module_text("PTZ.Device.CameraSettings"), OBS_GROUP_NORMAL,
Expand Down
Loading