void OBSAdvAudioCtrl::OBSSourceFlagsChanged(void *param, calldata_t *calldata) { uint32_t flags = (uint32_t)calldata_int(calldata, "flags"); QMetaObject::invokeMethod(reinterpret_cast<OBSAdvAudioCtrl*>(param), "SourceFlagsChanged", Q_ARG(uint32_t, flags)); }
static void stinger_transition_start(void *data) { struct stinger_info *s = data; if (s->media_source) { calldata_t cd = {0}; proc_handler_t *ph = obs_source_get_proc_handler(s->media_source); if (s->transitioning) { proc_handler_call(ph, "restart", &cd); return; } proc_handler_call(ph, "get_duration", &cd); proc_handler_call(ph, "get_nb_frames", &cd); s->duration_ns = (uint64_t)calldata_int(&cd, "duration"); s->duration_frames = (uint64_t)calldata_int(&cd, "num_frames"); if (s->transition_point_is_frame) s->transition_point = (float)( (long double)s->transition_point_frame / (long double)s->duration_frames); else s->transition_point = (float)( (long double)s->transition_point_ns / (long double)s->duration_ns); if (s->transition_point > 0.999f) s->transition_point = 0.999f; else if (s->transition_point < 0.001f) s->transition_point = 0.001f; s->transition_a_mul = (1.0f / s->transition_point); s->transition_b_mul = (1.0f / (1.0f - s->transition_point)); obs_transition_enable_fixed(s->source, true, (uint32_t)(s->duration_ns / 1000000)); calldata_free(&cd); obs_source_add_active_child(s->source, s->media_source); } s->transitioning = true; }
void OBSBasicStatusBar::OBSOutputReconnect(void *data, calldata_t *params) { OBSBasicStatusBar *statusBar = reinterpret_cast<OBSBasicStatusBar*>(data); int seconds = (int)calldata_int(params, "timeout_sec"); QMetaObject::invokeMethod(statusBar, "Reconnect", Q_ARG(int, seconds)); UNUSED_PARAMETER(params); }
void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast<OBSBasicTransform*>(param); uint32_t channel = (uint32_t)calldata_int(data, "channel"); OBSSource source = (obs_source_t*)calldata_ptr(data, "source"); if (channel == 0) { OBSScene scene = obs_scene_from_source(source); window->SetScene(scene); if (!scene) window->SetItem(nullptr); else window->SetItem(FindASelectedItem(scene)); } }
void OBSAdvAudioCtrl::OBSSourceSyncChanged(void *param, calldata_t *calldata) { int64_t offset = calldata_int(calldata, "offset"); QMetaObject::invokeMethod(reinterpret_cast<OBSAdvAudioCtrl*>(param), "SourceSyncChanged", Q_ARG(int64_t, offset)); }