[vlc-devel] [PATCH 1/2] input: add input_item_SetEpgEvent
Francois Cartegnie
fcvlcdev at free.fr
Mon Dec 19 21:19:39 CET 2016
---
src/input/input_interface.h | 1 +
src/input/item.c | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/src/input/input_interface.h b/src/input/input_interface.h
index 0ec778c..f271439 100644
--- a/src/input/input_interface.h
+++ b/src/input/input_interface.h
@@ -35,6 +35,7 @@ void input_item_SetPreparsed( input_item_t *p_i, bool b_preparsed );
void input_item_SetArtNotFound( input_item_t *p_i, bool b_not_found );
void input_item_SetArtFetched( input_item_t *p_i, bool b_art_fetched );
void input_item_SetEpg( input_item_t *p_item, const vlc_epg_t *p_epg );
+void input_item_SetEpgEvent( input_item_t *p_item, const vlc_epg_event_t *p_epg_evt );
void input_item_SetEpgOffline( input_item_t * );
/**
diff --git a/src/input/item.c b/src/input/item.c
index c5f4977..f91dca8 100644
--- a/src/input/item.c
+++ b/src/input/item.c
@@ -897,6 +897,40 @@ void input_item_MergeInfos( input_item_t *p_item, info_category_t *p_cat )
vlc_event_send( &p_item->event_manager, &event );
}
+void input_item_SetEpgEvent( input_item_t *p_item, const vlc_epg_event_t *p_epg_evt )
+{
+ VLC_UNUSED(p_epg_evt);
+ vlc_mutex_lock( &p_item->lock );
+
+ bool b_changed = false;
+
+ 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++ )
+ {
+ 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 )
+ {
+ 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 );
+ }
+}
+
#define EPG_DEBUG
void input_item_SetEpg( input_item_t *p_item, const vlc_epg_t *p_update )
{
--
2.7.4
More information about the vlc-devel
mailing list