Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
f29f4d80
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,发现更多精彩内容 >>
提交
f29f4d80
编写于
6月 15, 2014
作者:
P
Palana
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Unify obs_data_get* and obs_data_item_get* functions handling
上级
b5f56ff5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
50 deletion
+28
-50
libobs/obs-data.c
libobs/obs-data.c
+28
-50
未找到文件。
libobs/obs-data.c
浏览文件 @
f29f4d80
...
...
@@ -479,16 +479,6 @@ static struct obs_data_item *get_item(struct obs_data *data, const char *name)
return
NULL
;
}
static
inline
struct
obs_data_item
*
get_item_of
(
struct
obs_data
*
data
,
const
char
*
name
,
enum
obs_data_type
type
)
{
if
(
!
data
)
return
NULL
;
struct
obs_data_item
*
item
=
get_item
(
data
,
name
);
return
(
item
&&
item
->
type
==
type
)
?
item
:
NULL
;
}
static
void
set_item_data
(
struct
obs_data
*
data
,
struct
obs_data_item
*
item
,
const
char
*
name
,
const
void
*
ptr
,
size_t
size
,
enum
obs_data_type
type
)
...
...
@@ -638,66 +628,32 @@ void obs_data_set_default_obj(obs_data_t data, const char *name, obs_data_t obj)
const
char
*
obs_data_getstring
(
obs_data_t
data
,
const
char
*
name
)
{
struct
obs_data_item
*
item
=
get_item_of
(
data
,
name
,
OBS_DATA_STRING
);
return
item
?
get_item_data
(
item
)
:
""
;
}
static
inline
long
long
item_int
(
struct
obs_data_item
*
item
)
{
if
(
item
)
{
struct
obs_data_number
*
num
=
get_item_data
(
item
);
return
(
num
->
type
==
OBS_DATA_NUM_INT
)
?
num
->
int_val
:
(
long
long
)
num
->
double_val
;
}
return
0
;
}
static
inline
double
item_double
(
struct
obs_data_item
*
item
)
{
if
(
item
)
{
struct
obs_data_number
*
num
=
get_item_data
(
item
);
return
(
num
->
type
==
OBS_DATA_NUM_INT
)
?
(
double
)
num
->
int_val
:
num
->
double_val
;
}
return
0
.
0
;
return
obs_data_item_getstring
(
get_item
(
data
,
name
));
}
long
long
obs_data_getint
(
obs_data_t
data
,
const
char
*
name
)
{
return
item_int
(
get_item_of
(
data
,
name
,
OBS_DATA_NUMBER
));
return
obs_data_item_getint
(
get_item
(
data
,
name
));
}
double
obs_data_getdouble
(
obs_data_t
data
,
const
char
*
name
)
{
return
item_double
(
get_item_of
(
data
,
name
,
OBS_DATA_NUMBER
));
return
obs_data_item_getdouble
(
get_item
(
data
,
name
));
}
bool
obs_data_getbool
(
obs_data_t
data
,
const
char
*
name
)
{
struct
obs_data_item
*
item
=
get_item_of
(
data
,
name
,
OBS_DATA_BOOLEAN
);
return
item
?
*
(
bool
*
)
get_item_data
(
item
)
:
false
;
return
obs_data_item_getbool
(
get_item
(
data
,
name
));
}
obs_data_t
obs_data_getobj
(
obs_data_t
data
,
const
char
*
name
)
{
struct
obs_data_item
*
item
=
get_item_of
(
data
,
name
,
OBS_DATA_OBJECT
);
obs_data_t
obj
=
get_item_obj
(
item
);
if
(
obj
)
os_atomic_inc_long
(
&
obj
->
ref
);
return
obj
;
return
obs_data_item_getobj
(
get_item
(
data
,
name
));
}
obs_data_array_t
obs_data_getarray
(
obs_data_t
data
,
const
char
*
name
)
{
struct
obs_data_item
*
item
=
get_item_of
(
data
,
name
,
OBS_DATA_ARRAY
);
obs_data_array_t
array
=
get_item_array
(
item
);
if
(
array
)
os_atomic_inc_long
(
&
array
->
ref
);
return
array
;
return
obs_data_item_getarray
(
get_item
(
data
,
name
));
}
obs_data_array_t
obs_data_array_create
()
...
...
@@ -905,12 +861,34 @@ const char *obs_data_item_getstring(obs_data_item_t item)
return
item_valid
(
item
,
OBS_DATA_STRING
)
?
get_item_data
(
item
)
:
""
;
}
static
inline
long
long
item_int
(
struct
obs_data_item
*
item
)
{
if
(
item
)
{
struct
obs_data_number
*
num
=
get_item_data
(
item
);
return
(
num
->
type
==
OBS_DATA_NUM_INT
)
?
num
->
int_val
:
(
long
long
)
num
->
double_val
;
}
return
0
;
}
long
long
obs_data_item_getint
(
obs_data_item_t
item
)
{
return
item_valid
(
item
,
OBS_DATA_NUMBER
)
?
item_int
(
item
)
:
0
;
}
static
inline
double
item_double
(
struct
obs_data_item
*
item
)
{
if
(
item
)
{
struct
obs_data_number
*
num
=
get_item_data
(
item
);
return
(
num
->
type
==
OBS_DATA_NUM_INT
)
?
(
double
)
num
->
int_val
:
num
->
double_val
;
}
return
0
.
0
;
}
double
obs_data_item_getdouble
(
obs_data_item_t
item
)
{
return
item_valid
(
item
,
OBS_DATA_NUMBER
)
?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录