Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
7ff95106
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7ff95106
编写于
5月 04, 2017
作者:
C
cg2121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
vlc-video: Add ability to shuffle playlist in VLC source
上级
54281f2e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
0 deletion
+22
-0
plugins/vlc-video/data/locale/en-US.ini
plugins/vlc-video/data/locale/en-US.ini
+1
-0
plugins/vlc-video/vlc-video-source.c
plugins/vlc-video/vlc-video-source.c
+21
-0
未找到文件。
plugins/vlc-video/data/locale/en-US.ini
浏览文件 @
7ff95106
VLCSource
=
"VLC Video Source"
Playlist
=
"Playlist"
LoopPlaylist
=
"Loop Playlist"
Shuffle
=
"Shuffle Playlist"
PlaybackBehavior
=
"Visibility behavior"
PlaybackBehavior.StopRestart
=
"Stop when not visible, restart when visible"
PlaybackBehavior.PauseUnpause
=
"Pause when not visible, unpause when visible"
...
...
plugins/vlc-video/vlc-video-source.c
浏览文件 @
7ff95106
...
...
@@ -12,6 +12,7 @@
#define S_PLAYLIST "playlist"
#define S_LOOP "loop"
#define S_SHUFFLE "shuffle"
#define S_BEHAVIOR "playback_behavior"
#define S_BEHAVIOR_STOP_RESTART "stop_restart"
#define S_BEHAVIOR_PAUSE_UNPAUSE "pause_unpause"
...
...
@@ -20,6 +21,7 @@
#define T_(text) obs_module_text(text)
#define T_PLAYLIST T_("Playlist")
#define T_LOOP T_("LoopPlaylist")
#define T_SHUFFLE T_("shuffle")
#define T_BEHAVIOR T_("PlaybackBehavior")
#define T_BEHAVIOR_STOP_RESTART T_("PlaybackBehavior.StopRestart")
#define T_BEHAVIOR_PAUSE_UNPAUSE T_("PlaybackBehavior.PauseUnpause")
...
...
@@ -52,6 +54,7 @@ struct vlc_source {
DARRAY
(
struct
media_file_data
)
files
;
enum
behavior
behavior
;
bool
loop
;
bool
shuffle
;
};
static
libvlc_media_t
*
get_media
(
struct
darray
*
array
,
const
char
*
path
)
...
...
@@ -542,6 +545,22 @@ static void vlcs_update(void *data, obs_data_t *settings)
c
->
files
.
da
=
new_files
.
da
;
pthread_mutex_unlock
(
&
c
->
mutex
);
/* ------------------------------------- */
/* shuffle playlist */
c
->
shuffle
=
obs_data_get_bool
(
settings
,
S_SHUFFLE
);
if
(
c
->
files
.
num
>
1
&&
c
->
shuffle
)
{
for
(
size_t
i
=
0
;
i
<
c
->
files
.
num
-
1
;
i
++
)
{
size_t
j
=
i
+
rand
()
/
(
RAND_MAX
/
(
c
->
files
.
num
-
i
)
+
1
);
struct
media_file_data
t
=
c
->
files
.
array
[
j
];
c
->
files
.
array
[
j
]
=
c
->
files
.
array
[
i
];
c
->
files
.
array
[
i
]
=
t
;
}
}
/* ------------------------------------- */
/* clean up and restart playback */
...
...
@@ -658,6 +677,7 @@ static void vlcs_deactivate(void *data)
static
void
vlcs_defaults
(
obs_data_t
*
settings
)
{
obs_data_set_default_bool
(
settings
,
S_LOOP
,
true
);
obs_data_set_default_bool
(
settings
,
S_SHUFFLE
,
false
);
obs_data_set_default_string
(
settings
,
S_BEHAVIOR
,
S_BEHAVIOR_STOP_RESTART
);
}
...
...
@@ -672,6 +692,7 @@ static obs_properties_t *vlcs_properties(void *data)
obs_property_t
*
p
;
obs_properties_add_bool
(
ppts
,
S_LOOP
,
T_LOOP
);
obs_properties_add_bool
(
ppts
,
S_SHUFFLE
,
T_SHUFFLE
);
if
(
c
)
{
pthread_mutex_lock
(
&
c
->
mutex
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录