1 /***************************************************************************** 2 * input_interface.h: Input functions usable outside input code. 3 ***************************************************************************** 4 * Copyright (C) 1998-2008 VLC authors and VideoLAN 5 * $Id: b5f9795bd9e44a953a5d9df077078b9c43ba491d $ 6 * 7 * Authors: Laurent Aimar < fenrir _AT_ videolan _DOT_ org > 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU Lesser General Public License as published by 11 * the Free Software Foundation; either version 2.1 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU Lesser General Public License for more details. 18 * 19 * You should have received a copy of the GNU Lesser General Public License 20 * along with this program; if not, write to the Free Software Foundation, 21 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 22 *****************************************************************************/ 23 24 #ifndef LIBVLC_INPUT_INTERFACE_H 25 #define LIBVLC_INPUT_INTERFACE_H 1 26 27 #include <vlc_input.h> 28 #include <libvlc.h> 29 30 /********************************************************************** 31 * Item metadata 32 **********************************************************************/ 33 void input_item_SignalPreparseEnded( input_item_t *p_i, int new_status ); 34 void input_item_SetPreparsed( input_item_t *p_i, bool b_preparsed ); 35 void input_item_SetArtNotFound( input_item_t *p_i, bool b_not_found ); 36 void input_item_SetArtFetched( input_item_t *p_i, bool b_art_fetched ); 37 void input_item_SetEpg( input_item_t *p_item, const vlc_epg_t *p_epg, bool ); 38 void input_item_ChangeEPGSource( input_item_t *p_item, int i_source_id ); 39 void input_item_SetEpgEvent( input_item_t *p_item, const vlc_epg_event_t *p_epg_evt ); 40 void input_item_SetEpgTime( input_item_t *, int64_t ); 41 void input_item_SetEpgOffline( input_item_t * ); 42 43 /** 44 * Creates an item preparser. 45 * 46 * Creates an input thread to preparse an item. The input needs to be started 47 * with input_Start() afterwards. 48 * 49 * @param obj parent object 50 * @param item input item to preparse 51 * @return an input thread or NULL on error 52 */ 53 input_thread_t *input_CreatePreparser(vlc_object_t *obj, input_item_t *item) 54 VLC_USED; 55 56 /* misc/stats.c 57 * FIXME it should NOT be defined here or not coded in misc/stats.c */ 58 input_stats_t *stats_NewInputStats( input_thread_t *p_input ); 59 60 /** 61 * This function deletes the current sout in the resources. 62 */ 63 void input_resource_TerminateSout( input_resource_t *p_resource ); 64 65 /** 66 * This function return true if there is at least one vout in the resources. 67 * 68 * It can only be called on detached resources. 69 */ 70 bool input_resource_HasVout( input_resource_t *p_resource ); 71 72 /* input.c */ 73 74 /* */ 75 typedef enum 76 { 77 INPUT_STATISTIC_DECODED_VIDEO, 78 INPUT_STATISTIC_DECODED_AUDIO, 79 INPUT_STATISTIC_DECODED_SUBTITLE, 80 81 /* Use them only if you do not goes through a access_out module */ 82 INPUT_STATISTIC_SENT_PACKET, 83 INPUT_STATISTIC_SENT_BYTE, 84 85 } input_statistic_t; 86 /** 87 * It will update internal input statistics from external sources. 88 * XXX For now, the only one allowed to do it is stream_out and input core. 89 */ 90 void input_UpdateStatistic( input_thread_t *, input_statistic_t, int i_delta ); 91 92 #endif 93