static void *v4l2_create(obs_data_t *settings, obs_source_t *source) { struct v4l2_data *data = bzalloc(sizeof(struct v4l2_data)); data->dev = -1; data->source = source; /* Bitch about build problems ... */ #ifndef V4L2_CAP_DEVICE_CAPS blog(LOG_WARNING, "Plugin built without device caps support!"); #endif #if !defined(VIDIOC_ENUM_DV_TIMINGS) || !defined(V4L2_IN_CAP_DV_TIMINGS) blog(LOG_WARNING, "Plugin built without dv-timing support!"); #endif v4l2_update(data, settings); #if HAVE_UDEV v4l2_init_udev(); signal_handler_t *sh = v4l2_get_udev_signalhandler(); signal_handler_connect(sh, "device_added", &device_added, data); signal_handler_connect(sh, "device_removed", &device_removed, data); #endif return data; }
void OBSBasicStatusBar::StreamStarted(obs_output_t *output) { streamOutput = output; signal_handler_connect(obs_output_get_signal_handler(streamOutput), "reconnect", OBSOutputReconnect, this); signal_handler_connect(obs_output_get_signal_handler(streamOutput), "reconnect_success", OBSOutputReconnectSuccess, this); retries = 0; lastBytesSent = 0; lastBytesSentTime = os_gettime_ns(); IncRef(); }
inline OBSSignal(signal_handler_t handler_, const char *signal_, signal_callback_t callback_, void *param_) : handler (handler_), signal (signal_), callback (callback_), param (param_) { signal_handler_connect(handler, signal, callback, param); }
inline void Connect(signal_handler_t handler_, const char *signal_, signal_callback_t callback_, void *param_) { Disconnect(); handler = handler_; signal = signal_; callback = callback_; param = param_; signal_handler_connect(handler, signal, callback, param); }
bool obs_fader_attach_source(obs_fader_t *fader, obs_source_t *source) { signal_handler_t *sh; if (!fader || !source) return false; obs_fader_detach_source(fader); pthread_mutex_lock(&fader->mutex); sh = obs_source_get_signal_handler(source); signal_handler_connect(sh, "volume", fader_source_volume_changed, fader); signal_handler_connect(sh, "destroy", fader_source_destroyed, fader); fader->source = source; fader->cur_db = mul_to_db(obs_source_get_volume(source)); pthread_mutex_unlock(&fader->mutex); return true; }