VLC各个Module模块之间如何共享变量

在做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 .p_object;
  //p_module = (module_t *)p_list->p_values.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"的值了。

详细出处参考:http://www.itqun.net/content-detail/176190.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值