这篇教程C++ vlc_event_send函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中vlc_event_send函数的典型用法代码示例。如果您正苦于以下问题:C++ vlc_event_send函数的具体用法?C++ vlc_event_send怎么用?C++ vlc_event_send使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了vlc_event_send函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: RunSD/*********************************************************************** * RunSD (Private) ***********************************************************************/static void* RunSD( vlc_object_t *p_this ){ services_discovery_t *p_sd = (services_discovery_t *)p_this; vlc_event_t event; event.type = vlc_ServicesDiscoveryStarted; vlc_event_send( &p_sd->event_manager, &event ); p_sd->pf_run( p_sd ); event.type = vlc_ServicesDiscoveryEnded; vlc_event_send( &p_sd->event_manager, &event ); return NULL;}
开发者ID:mahaserver,项目名称:MHSVLC,代码行数:17,
示例2: input_item_AddInfoint input_item_AddInfo( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ){ va_list args; vlc_mutex_lock( &p_i->lock ); va_start( args, psz_format ); const int i_ret = InputItemVaAddInfo( p_i, psz_cat, psz_name, psz_format, args ); va_end( args ); vlc_mutex_unlock( &p_i->lock ); if( !i_ret ) { vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_i->event_manager, &event ); } return i_ret;}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:25,
示例3: input_item_SetPreparsedvoid input_item_SetPreparsed( input_item_t *p_i, bool b_preparsed ){ bool b_send_event = false; vlc_mutex_lock( &p_i->lock ); if( !p_i->p_meta ) p_i->p_meta = vlc_meta_New(); int status = vlc_meta_GetStatus(p_i->p_meta); int new_status; if( b_preparsed ) new_status = status | ITEM_PREPARSED; else new_status = status & ~ITEM_PREPARSED; if( status != new_status ) { vlc_meta_SetStatus(p_i->p_meta, new_status); b_send_event = true; } vlc_mutex_unlock( &p_i->lock ); if( b_send_event ) { vlc_event_t event; event.type = vlc_InputItemPreparsedChanged; event.u.input_item_preparsed_changed.new_status = new_status; vlc_event_send( &p_i->event_manager, &event ); }}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:31,
示例4: input_item_SetEpgEventvoid input_item_SetEpgEvent( input_item_t *p_item, const vlc_epg_event_t *p_epg_evt ){ bool b_changed = false; vlc_mutex_lock( &p_item->lock ); for( int i = 0; i < p_item->i_epg; i++ ) { vlc_epg_t *p_epg = p_item->pp_epg[i]; for( size_t j = 0; j < p_epg->i_event; j++ ) { /* Same event can exist in more than one table */ if( p_epg->pp_event[j]->i_id == p_epg_evt->i_id ) { vlc_epg_event_t *p_dup = vlc_epg_event_Duplicate( p_epg_evt ); if( p_dup ) { if( p_epg->p_current == p_epg->pp_event[j] ) p_epg->p_current = p_dup; vlc_epg_event_Delete( p_epg->pp_event[j] ); p_epg->pp_event[j] = p_dup; b_changed = true; } break; } } } vlc_mutex_unlock( &p_item->lock ); if ( b_changed ) { vlc_event_t event = { .type = vlc_InputItemInfoChanged, }; vlc_event_send( &p_item->event_manager, &event ); }}
开发者ID:r1k,项目名称:vlc,代码行数:34,
示例5: input_item_SignalPreparseEndedvoid input_item_SignalPreparseEnded( input_item_t *p_i, int status ){ vlc_event_t event; event.type = vlc_InputItemPreparseEnded; event.u.input_item_preparse_ended.new_status = status; vlc_event_send( &p_i->event_manager, &event );}
开发者ID:BossKing,项目名称:vlc,代码行数:7,
示例6: services_discovery_RemoveItem/*********************************************************************** * RemoveItem ***********************************************************************/voidservices_discovery_RemoveItem ( services_discovery_t * p_sd, input_item_t * p_item ){ vlc_event_t event; event.type = vlc_ServicesDiscoveryItemRemoved; event.u.services_discovery_item_removed.p_item = p_item; vlc_event_send( &p_sd->event_manager, &event );}
开发者ID:mahaserver,项目名称:MHSVLC,代码行数:12,
示例7: input_SendEventMetaInfovoid input_SendEventMetaInfo( input_thread_t *p_input ){ Trigger( p_input, INPUT_EVENT_ITEM_INFO ); /* FIXME remove this ugliness */ vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_input->p->p_item->event_manager, &event );}
开发者ID:vlcchina,项目名称:vlc-player-experimental,代码行数:10,
示例8: input_SendEventMetaNamevoid input_SendEventMetaName( input_thread_t *p_input, const char *psz_name ){ Trigger( p_input, INPUT_EVENT_ITEM_NAME ); /* FIXME remove this ugliness */ vlc_event_t event; event.type = vlc_InputItemNameChanged; event.u.input_item_name_changed.new_name = psz_name; vlc_event_send( &p_input->p->p_item->event_manager, &event );}
开发者ID:vlcchina,项目名称:vlc-player-experimental,代码行数:11,
示例9: services_discovery_AddItem/*********************************************************************** * AddItem ***********************************************************************/voidservices_discovery_AddItem ( services_discovery_t * p_sd, input_item_t * p_item, const char * psz_category ){ vlc_event_t event; event.type = vlc_ServicesDiscoveryItemAdded; event.u.services_discovery_item_added.p_new_item = p_item; event.u.services_discovery_item_added.psz_category = psz_category; vlc_event_send( &p_sd->event_manager, &event );}
开发者ID:mahaserver,项目名称:MHSVLC,代码行数:14,
示例10: input_SendEventMeta/* FIXME: review them because vlc_event_send might be * moved inside input_item* functions. */void input_SendEventMeta( input_thread_t *p_input ){ Trigger( p_input, INPUT_EVENT_ITEM_META ); /* FIXME remove this ugliness ? */ vlc_event_t event; event.type = vlc_InputItemMetaChanged; event.u.input_item_meta_changed.meta_type = vlc_meta_ArtworkURL; vlc_event_send( &p_input->p->p_item->event_manager, &event );}
开发者ID:vlcchina,项目名称:vlc-player-experimental,代码行数:14,
示例11: post_subitemsstatic void post_subitems( input_item_node_t *p_node ){ for( int i = 0; i < p_node->i_children; i++ ) { vlc_event_t event; event.type = vlc_InputItemSubItemAdded; event.u.input_item_subitem_added.p_new_child = p_node->pp_children[i]->p_item; vlc_event_send( &p_node->p_item->event_manager, &event ); post_subitems( p_node->pp_children[i] ); }}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:12,
示例12: input_item_SetMetavoid input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val ){ vlc_event_t event; vlc_mutex_lock( &p_i->lock ); if( !p_i->p_meta ) p_i->p_meta = vlc_meta_New(); vlc_meta_Set( p_i->p_meta, meta_type, psz_val ); vlc_mutex_unlock( &p_i->lock ); /* Notify interested third parties */ event.type = vlc_InputItemMetaChanged; event.u.input_item_meta_changed.meta_type = meta_type; vlc_event_send( &p_i->event_manager, &event );}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:15,
示例13: input_item_AddSubItem/* This won't hold the item, but can tell to interested third parties * Like the playlist, that there is a new sub item. With this design * It is not the input item's responsability to keep all the ref of * the input item children. */void input_item_AddSubItem( input_item_t *p_parent, input_item_t *p_child ){ vlc_mutex_lock( &p_parent->lock ); p_parent->i_type = ITEM_TYPE_PLAYLIST; vlc_mutex_unlock( &p_parent->lock ); /* Notify interested third parties */ vlc_event_t event; event.type = vlc_InputItemSubItemAdded; event.u.input_item_subitem_added.p_new_child = p_child; vlc_event_send( &p_parent->event_manager, &event );}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:19,
示例14: vlc_sd_Start/*******************************************************************//** * Start a Service Discovery ***********************************************************************/bool vlc_sd_Start ( services_discovery_t * p_sd ){ assert(!p_sd->p_module); p_sd->p_module = module_need( p_sd, "services_discovery", p_sd->psz_name, true ); if( p_sd->p_module == NULL ) { msg_Err( p_sd, "no suitable services discovery module" ); return false; } vlc_event_t event = { .type = vlc_ServicesDiscoveryStarted }; vlc_event_send( &p_sd->event_manager, &event ); return true;}
开发者ID:DZLiao,项目名称:vlc-2.1.4.32.subproject-2013-update2,代码行数:21,
示例15: input_item_SetErrorWhenReadingvoid input_item_SetErrorWhenReading( input_item_t *p_i, bool b_error ){ bool b_changed; vlc_mutex_lock( &p_i->lock ); b_changed = p_i->b_error_when_reading != b_error; p_i->b_error_when_reading = b_error; vlc_mutex_unlock( &p_i->lock ); if( b_changed ) { vlc_event_t event; event.type = vlc_InputItemErrorWhenReadingChanged; event.u.input_item_error_when_reading_changed.new_value = b_error; vlc_event_send( &p_i->event_manager, &event ); }}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:20,
示例16: input_item_SetDurationvoid input_item_SetDuration( input_item_t *p_i, mtime_t i_duration ){ bool b_send_event = false; vlc_mutex_lock( &p_i->lock ); if( p_i->i_duration != i_duration ) { p_i->i_duration = i_duration; b_send_event = true; } vlc_mutex_unlock( &p_i->lock ); if( b_send_event ) { vlc_event_t event; event.type = vlc_InputItemDurationChanged; event.u.input_item_duration_changed.new_duration = i_duration; vlc_event_send( &p_i->event_manager, &event ); }}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:21,
示例17: input_item_SetEpgvoid input_item_SetEpg( input_item_t *p_item, const char *psz_epg, const vlc_epg_t *p_epg ){ input_item_DelInfo( p_item, psz_epg, NULL );#ifdef HAVE_LOCALTIME_R vlc_mutex_lock( &p_item->lock ); for( int i = 0; i < p_epg->i_event; i++ ) { const vlc_epg_event_t *p_evt = p_epg->pp_event[i]; time_t t_start = (time_t)p_evt->i_start; struct tm tm_start; char psz_start[128]; localtime_r( &t_start, &tm_start ); snprintf( psz_start, sizeof(psz_start), "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d", 1900 + tm_start.tm_year, 1 + tm_start.tm_mon, tm_start.tm_mday, tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec ); if( p_evt->psz_short_description || p_evt->psz_description ) InputItemAddInfo( p_item, psz_epg, psz_start, "%s (%2.2d:%2.2d) - %s", p_evt->psz_name, p_evt->i_duration/60/60, (p_evt->i_duration/60)%60, p_evt->psz_short_description ? p_evt->psz_short_description : p_evt->psz_description ); else InputItemAddInfo( p_item, psz_epg, psz_start, "%s (%2.2d:%2.2d)", p_evt->psz_name, p_evt->i_duration/60/60, (p_evt->i_duration/60)%60 ); } vlc_mutex_unlock( &p_item->lock ); if( p_epg->i_event > 0 ) { vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_item->event_manager, &event ); }#endif}
开发者ID:Kafay,项目名称:vlc,代码行数:40,
示例18: input_item_ReplaceInfosvoid input_item_ReplaceInfos( input_item_t *p_item, info_category_t *p_cat ){ vlc_mutex_lock( &p_item->lock ); int i_cat; info_category_t *p_old = InputItemFindCat( p_item, &i_cat, p_cat->psz_name ); if( p_old ) { info_category_Delete( p_old ); p_item->pp_categories[i_cat] = p_cat; } else { INSERT_ELEM( p_item->pp_categories, p_item->i_categories, p_item->i_categories, p_cat ); } vlc_mutex_unlock( &p_item->lock ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_item->event_manager, &event );}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:22,
示例19: input_item_DelInfoint input_item_DelInfo( input_item_t *p_i, const char *psz_cat, const char *psz_name ){ vlc_mutex_lock( &p_i->lock ); int i_cat; info_category_t *p_cat = InputItemFindCat( p_i, &i_cat, psz_cat ); if( !p_cat ) { vlc_mutex_unlock( &p_i->lock ); return VLC_EGENERIC; } if( psz_name ) { /* Remove a specific info */ int i_ret = info_category_DeleteInfo( p_cat, psz_name ); if( i_ret ) { vlc_mutex_unlock( &p_i->lock ); return VLC_EGENERIC; } } else { /* Remove the complete categorie */ info_category_Delete( p_cat ); REMOVE_ELEM( p_i->pp_categories, p_i->i_categories, i_cat ); } vlc_mutex_unlock( &p_i->lock ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_i->event_manager, &event ); return VLC_SUCCESS;}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:38,
示例20: input_item_MergeInfosvoid input_item_MergeInfos( input_item_t *p_item, info_category_t *p_cat ){ vlc_mutex_lock( &p_item->lock ); info_category_t *p_old = InputItemFindCat( p_item, NULL, p_cat->psz_name ); if( p_old ) { for( int i = 0; i < p_cat->i_infos; i++ ) info_category_ReplaceInfo( p_old, p_cat->pp_infos[i] ); TAB_CLEAN( p_cat->i_infos, p_cat->pp_infos ); info_category_Delete( p_cat ); } else { INSERT_ELEM( p_item->pp_categories, p_item->i_categories, p_item->i_categories, p_cat ); } vlc_mutex_unlock( &p_item->lock ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_item->event_manager, &event );}
开发者ID:371816210,项目名称:vlc_vlc,代码行数:23,
示例21: input_item_SetEpgvoid input_item_SetEpg( input_item_t *p_item, const vlc_epg_t *p_update ){ vlc_mutex_lock( &p_item->lock ); /* */ vlc_epg_t *p_epg = NULL; for( int i = 0; i < p_item->i_epg; i++ ) { vlc_epg_t *p_tmp = p_item->pp_epg[i]; if( (p_tmp->psz_name == NULL) != (p_update->psz_name == NULL) ) continue; if( p_tmp->psz_name && p_update->psz_name && strcmp(p_tmp->psz_name, p_update->psz_name) ) continue; p_epg = p_tmp; break; } /* */ if( !p_epg ) { p_epg = vlc_epg_New( p_update->psz_name ); if( p_epg ) TAB_APPEND( p_item->i_epg, p_item->pp_epg, p_epg ); } if( p_epg ) vlc_epg_Merge( p_epg, p_update ); vlc_mutex_unlock( &p_item->lock ); if( !p_epg ) return;#ifdef EPG_DEBUG char *psz_epg; if( asprintf( &psz_epg, "EPG %s", p_epg->psz_name ? p_epg->psz_name : "unknown" ) < 0 ) goto signal; input_item_DelInfo( p_item, psz_epg, NULL ); vlc_mutex_lock( &p_item->lock ); for( int i = 0; i < p_epg->i_event; i++ ) { const vlc_epg_event_t *p_evt = p_epg->pp_event[i]; time_t t_start = (time_t)p_evt->i_start; struct tm tm_start; char psz_start[128]; localtime_r( &t_start, &tm_start ); snprintf( psz_start, sizeof(psz_start), "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d", 1900 + tm_start.tm_year, 1 + tm_start.tm_mon, tm_start.tm_mday, tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec ); if( p_evt->psz_short_description || p_evt->psz_description ) InputItemAddInfo( p_item, psz_epg, psz_start, "%s (%2.2d:%2.2d) - %s %s", p_evt->psz_name, p_evt->i_duration/60/60, (p_evt->i_duration/60)%60, p_evt->psz_short_description ? p_evt->psz_short_description : "" , p_evt->psz_description ? p_evt->psz_description : "" ); else InputItemAddInfo( p_item, psz_epg, psz_start, "%s (%2.2d:%2.2d)", p_evt->psz_name, p_evt->i_duration/60/60, (p_evt->i_duration/60)%60 ); } vlc_mutex_unlock( &p_item->lock ); free( psz_epg );signal:#endif if( p_epg->i_event > 0 ) { vlc_event_t event = { .type = vlc_InputItemInfoChanged, }; vlc_event_send( &p_item->event_manager, &event ); }
开发者ID:371816210,项目名称:vlc_vlc,代码行数:75,
示例22: input_item_DelInfoint input_item_DelInfo( input_item_t *p_i, const char *psz_cat, const char *psz_name ){ info_category_t *p_cat = NULL; int i_cat; int i; vlc_mutex_lock( &p_i->lock ); for( i_cat = 0; i_cat < p_i->i_categories; i_cat++ ) { if( !strcmp( p_i->pp_categories[i_cat]->psz_name, psz_cat ) ) { p_cat = p_i->pp_categories[i_cat]; break; } } if( p_cat == NULL ) { vlc_mutex_unlock( &p_i->lock ); return VLC_EGENERIC; } if( psz_name ) { /* Remove a specific info */ for( i = 0; i < p_cat->i_infos; i++ ) { if( !strcmp( p_cat->pp_infos[i]->psz_name, psz_name ) ) { free( p_cat->pp_infos[i]->psz_name ); free( p_cat->pp_infos[i]->psz_value ); free( p_cat->pp_infos[i] ); REMOVE_ELEM( p_cat->pp_infos, p_cat->i_infos, i ); break; } } if( i >= p_cat->i_infos ) { vlc_mutex_unlock( &p_i->lock ); return VLC_EGENERIC; } } else { /* Remove the complete categorie */ for( i = 0; i < p_cat->i_infos; i++ ) { free( p_cat->pp_infos[i]->psz_name ); free( p_cat->pp_infos[i]->psz_value ); free( p_cat->pp_infos[i] ); } free( p_cat->pp_infos ); REMOVE_ELEM( p_i->pp_categories, p_i->i_categories, i_cat ); } // Free the category free( p_cat->psz_name ); free( p_cat ); vlc_mutex_unlock( &p_i->lock ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_i->event_manager, &event ); return VLC_SUCCESS;}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:69,
示例23: input_item_SignalPreparseEndedvoid input_item_SignalPreparseEnded( input_item_t *p_i ){ vlc_event_t event; event.type = vlc_InputItemPreparseEnded; vlc_event_send( &p_i->event_manager, &event );}
开发者ID:LTNGlobal-opensource,项目名称:vlc-sdi,代码行数:6,
注:本文中的vlc_event_send函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ vlc_fopen函数代码示例 C++ vlc_cond_wait函数代码示例 |