VLC各个Module模块之间如何共享变量
来源:互联网 发布:黄金交易模拟软件 编辑:程序博客网 时间:2024/04/30 12:56
在做VLC开发的时候,想使用一个模块访问另外一个模块的数据, 比如在网络模块得到了一些数据,想在其他模块得到这些数据进行处理,这时候就需要两个模块共享一些变量。
查看VLC的源码,发现VLC专门有variables.h和variables.c是用来处理变量的。它提供了一些方法可以创建VLC变量、设置VLC变量、改变、销毁VLC变量等。
当我们要产生一个VLC变量的时候,我们使用var_Create()函数;
如在UDP模块创建了一个变量,
vlc_value_t valTemp;
var_Create( p_access, "var_test", VLC_VAR_STRING );
valTemp.psz_string = "hello ";
var_Set( p_access, "var_test", valTemp );
这样就创建了一个名为“var_test”的VLC_VAR_STRING变量并且设置它的值为"hello".
创建完之后,我们在其他的模块怎么访问它呢?
比如在Marq.c里面访问这个变量,如下所示:
vlc_value_t val_test;
vlc_list_t *p_list;
module_t *p_module;
access_t *p_access;
int i;
val_test.psz_string = " ";
p_list = vlc_list_find( p_filter->p_vlc, VLC_OBJECT_ACCESS, FIND_ANYWHERE );
for( i = 0; i < p_list->i_count; i++ )
{
p_access = (access_t *)p_list->p_values[i].p_object;
//p_module = (module_t *)p_list->p_values[i].p_object;
if ( var_Get( p_access, "var_test", &val_test ) == VLC_SUCCESS )
{
msg_Dbg( p_filter, "=======::::val_test=:%s", val_test.psz_string);
break;
}
//p_intf = NULL;
}
vlc_list_release ( p_list );
这样,我们在marq.c这个模块里面就可以得到"var_test"的值了。
- VLC各个Module模块之间如何共享变量
- vlc模块间共享变量
- VLC中的各个模块
- 通过singleton模式和global static variable变量做C++程序各个模块之间的数据通信
- angular如何实现不同模块的变量共享
- ORACLE EBS各个模块之间的关系
- 内核模块共享变量实例
- 模块(Module)中的变量定义
- Angular2(八)--module化(核心模块与共享模块)
- cookie如何共享到各个浏览器
- 不同模块之间的数据共享
- Android 用sharepreference在各个程序之间共享数据
- Android 用sharepreference在各个程序之间共享数据
- Android 用sharepreference在各个程序之间共享数据
- 如何创建Joomla的模块(Module)
- python 如何安装第三方模块module
- webStorm如何避免加载module模块
- jsp页面之间使用共享变量
- Insert和Rs.Addnew的比较
- JAVA初学中可能会遇到的getRequest()问题
- galgame 游戏汉化我的看法
- ASP.NET中常用的26个优化性能方法
- Javascript Closure[1]
- VLC各个Module模块之间如何共享变量
- 哈哈,这张图不错
- DataBinder.Eval用法范例
- ADSL优化设置
- Sealed With A Kiss
- 张朝阳:不断地自我删除
- linux版本的升级
- Tomcat中文乱码问题的原理和解决方法
- 亚洲首富孙正义的成功等式