Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Obs Studio
提交
8da65b5c
O
Obs Studio
项目概览
小白菜888
/
Obs Studio
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Obs Studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8da65b5c
编写于
5月 26, 2016
作者:
J
jp9000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
image-source: Add option to randomize slideshow
上级
3b17416b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
2 deletion
+19
-2
plugins/image-source/data/locale/en-US.ini
plugins/image-source/data/locale/en-US.ini
+1
-0
plugins/image-source/obs-slideshow.c
plugins/image-source/obs-slideshow.c
+18
-2
未找到文件。
plugins/image-source/data/locale/en-US.ini
浏览文件 @
8da65b5c
...
...
@@ -6,6 +6,7 @@ SlideShow="Image Slide Show"
SlideShow.TransitionSpeed
=
"Transition Speed (milliseconds)"
SlideShow.SlideTime
=
"Time Between Slides (milliseconds)"
SlideShow.Files
=
"Image Files"
SlideShow.Randomize
=
"Randomize Playback"
SlideShow.Transition
=
"Transition"
SlideShow.Transition.Cut
=
"Cut"
SlideShow.Transition.Fade
=
"Fade"
...
...
plugins/image-source/obs-slideshow.c
浏览文件 @
8da65b5c
...
...
@@ -12,6 +12,7 @@
#define S_TR_SPEED "transition_speed"
#define S_SLIDE_TIME "slide_time"
#define S_TRANSITION "transition"
#define S_RANDOMIZE "randomize"
#define S_FILES "files"
#define TR_CUT "cut"
...
...
@@ -23,6 +24,7 @@
#define T_TR_SPEED T_("TransitionSpeed")
#define T_SLIDE_TIME T_("SlideTime")
#define T_TRANSITION T_("Transition")
#define T_RANDOMIZE T_("Randomize")
#define T_FILES T_("Files")
#define T_TR_(text) obs_module_text("SlideShow.Transition." text)
...
...
@@ -41,6 +43,7 @@ struct image_file_data {
struct
slideshow
{
obs_source_t
*
source
;
bool
randomize
;
float
slide_time
;
uint32_t
tr_speed
;
const
char
*
tr_name
;
...
...
@@ -114,6 +117,11 @@ static void free_files(struct darray *array)
da_free
(
files
);
}
static
inline
size_t
random_file
(
struct
slideshow
*
ss
)
{
return
(
size_t
)
rand
()
%
ss
->
files
.
num
;
}
/* ------------------------------------------------------------------------- */
static
const
char
*
ss_getname
(
void
*
unused
)
...
...
@@ -152,6 +160,8 @@ static void ss_update(void *data, obs_data_t *settings)
else
tr_name
=
"fade_transition"
;
ss
->
randomize
=
obs_data_get_bool
(
settings
,
S_RANDOMIZE
);
if
(
!
ss
->
tr_name
||
strcmp
(
tr_name
,
ss
->
tr_name
)
!=
0
)
new_tr
=
obs_source_create_private
(
tr_name
,
NULL
,
NULL
);
...
...
@@ -233,11 +243,14 @@ static void ss_update(void *data, obs_data_t *settings)
obs_transition_set_scale_type
(
ss
->
transition
,
OBS_TRANSITION_SCALE_ASPECT
);
if
(
ss
->
randomize
)
ss
->
cur_item
=
random_file
(
ss
);
if
(
new_tr
)
obs_source_add_active_child
(
ss
->
source
,
new_tr
);
if
(
ss
->
files
.
num
)
obs_transition_start
(
ss
->
transition
,
OBS_TRANSITION_MODE_AUTO
,
ss
->
tr_speed
,
ss
->
files
.
array
[
0
].
source
);
ss
->
tr_speed
,
ss
->
files
.
array
[
ss
->
cur_item
].
source
);
obs_data_array_release
(
array
);
}
...
...
@@ -295,7 +308,9 @@ static void ss_video_tick(void *data, float seconds)
if
(
ss
->
elapsed
>
ss
->
slide_time
)
{
ss
->
elapsed
-=
ss
->
slide_time
;
if
(
++
ss
->
cur_item
>=
ss
->
files
.
num
)
if
(
ss
->
randomize
)
ss
->
cur_item
=
random_file
(
ss
);
else
if
(
++
ss
->
cur_item
>=
ss
->
files
.
num
)
ss
->
cur_item
=
0
;
if
(
ss
->
files
.
num
)
...
...
@@ -407,6 +422,7 @@ static obs_properties_t *ss_properties(void *data)
50
,
3600000
,
50
);
obs_properties_add_int
(
ppts
,
S_TR_SPEED
,
T_TR_SPEED
,
0
,
3600000
,
50
);
obs_properties_add_bool
(
ppts
,
S_RANDOMIZE
,
T_RANDOMIZE
);
if
(
ss
)
{
pthread_mutex_lock
(
&
ss
->
mutex
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录