]> git.sesse.net Git - vlc/blob - include/plugins.h
Fix in the SCR parser for high values.
[vlc] / include / plugins.h
1 /*****************************************************************************
2  * plugins.h : Dynamic plugin management functions
3  *****************************************************************************
4  * Copyright (C) 1999, 2000 VideoLAN
5  *
6  * Authors:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  * 
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
21  *****************************************************************************/
22
23 #ifdef SYS_BEOS
24 typedef int plugin_id_t;
25 #define GET_PLUGIN( p_func, plugin_id, psz_name ) \
26     get_image_symbol( plugin_id, psz_name, B_SYMBOL_TYPE_TEXT, &p_func );
27 #else
28 typedef void *plugin_id_t;
29 #define GET_PLUGIN( p_func, plugin_id, psz_name ) \
30     p_func = dlsym( plugin_id, psz_name );
31 #endif
32
33 typedef struct plugin_info_s
34 {
35     plugin_id_t plugin_id;
36
37     char *      psz_filename;
38     char *      psz_name;
39     char *      psz_version;
40     char *      psz_author;
41
42     void *      aout_GetPlugin;
43     void *      vout_GetPlugin;
44     void *      intf_GetPlugin;
45     void *      yuv_GetPlugin;
46
47     int         i_score;
48 } plugin_info_t;
49
50 typedef struct plugin_bank_s
51 {
52     int               i_plugin_count;
53     plugin_info_t *   p_info[ MAX_PLUGIN_COUNT ];
54 } plugin_bank_t;
55
56 plugin_bank_t *  bank_Create       ( void );
57 void             bank_Init         ( plugin_bank_t * p_bank );
58 void             bank_Destroy      ( plugin_bank_t * p_bank );
59