提交 1475f756 编写于 作者: J jp9000

image-source: Add proc handler calls to slideshow

Allows manipulation of the slideshow via procedure handlers.
上级 389f7d39
......@@ -527,6 +527,17 @@ static void ss_previous_slide(void *data)
do_transition(ss, false);
}
static void get_state_proc(void *data, calldata_t *cd)
{
struct slideshow *ss = data;
if (ss->stop)
calldata_set_string(cd, "return", "stopped");
else if (ss->paused)
calldata_set_string(cd, "return", "paused");
else
calldata_set_string(cd, "return", "playing");
}
static void play_pause_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
......@@ -539,6 +550,12 @@ static void play_pause_hotkey(void *data, obs_hotkey_id id,
ss_play_pause(ss);
}
static void play_pause_proc(void *data, calldata_t *cd)
{
ss_play_pause(data);
UNUSED_PARAMETER(cd);
}
static void restart_hotkey(void *data, obs_hotkey_id id, obs_hotkey_t *hotkey,
bool pressed)
{
......@@ -551,6 +568,12 @@ static void restart_hotkey(void *data, obs_hotkey_id id, obs_hotkey_t *hotkey,
ss_restart(ss);
}
static void restart_proc(void *data, calldata_t *cd)
{
ss_restart(data);
UNUSED_PARAMETER(cd);
}
static void stop_hotkey(void *data, obs_hotkey_id id, obs_hotkey_t *hotkey,
bool pressed)
{
......@@ -563,6 +586,12 @@ static void stop_hotkey(void *data, obs_hotkey_id id, obs_hotkey_t *hotkey,
ss_stop(ss);
}
static void stop_proc(void *data, calldata_t *cd)
{
ss_stop(data);
UNUSED_PARAMETER(cd);
}
static void next_slide_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
......@@ -578,6 +607,12 @@ static void next_slide_hotkey(void *data, obs_hotkey_id id,
ss_next_slide(ss);
}
static void next_slide_proc(void *data, calldata_t *cd)
{
ss_next_slide(data);
UNUSED_PARAMETER(cd);
}
static void previous_slide_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
......@@ -593,6 +628,12 @@ static void previous_slide_hotkey(void *data, obs_hotkey_id id,
ss_previous_slide(ss);
}
static void previous_slide_proc(void *data, calldata_t *cd)
{
ss_previous_slide(data);
UNUSED_PARAMETER(cd);
}
static void ss_destroy(void *data)
{
struct slideshow *ss = data;
......@@ -605,6 +646,7 @@ static void ss_destroy(void *data)
static void *ss_create(obs_data_t *settings, obs_source_t *source)
{
proc_handler_t *ph = obs_source_get_proc_handler(source);
struct slideshow *ss = bzalloc(sizeof(*ss));
ss->source = source;
......@@ -634,6 +676,13 @@ static void *ss_create(obs_data_t *settings, obs_source_t *source)
obs_module_text("SlideShow.PreviousSlide"),
previous_slide_hotkey, ss);
proc_handler_add(ph, "string get_state()", get_state_proc, ss);
proc_handler_add(ph, "void playpause()", play_pause_proc, ss);
proc_handler_add(ph, "void restart()", restart_proc, ss);
proc_handler_add(ph, "void stop()", stop_proc, ss);
proc_handler_add(ph, "void next_slide()", next_slide_proc, ss);
proc_handler_add(ph, "void previous_slide()", previous_slide_proc, ss);
pthread_mutex_init_value(&ss->mutex);
if (pthread_mutex_init(&ss->mutex, NULL) != 0)
goto error;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册