xine logo
Main Page   Modules   Data Structures   File List   Data Fields   Globals  

xine.h

Go to the documentation of this file.
00001 /* !! DO NO EDIT THIS FILE, it is automatically generated */
00031 /*
00032  * $Id: xine_8h-source.html,v 1.1 2001/07/26 11:12:26 f1rmb Exp $
00033  *
00034  */
00035 
00036 #ifndef HAVE_XINE_H
00037 #define HAVE_XINE_H
00038 
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042 
00043 #include <inttypes.h>
00044 #include <unistd.h>
00045 #include <sys/types.h>
00046 
00047 #ifndef DOC_HIDDEN
00048 #include <xine/events.h>
00049 #endif
00050 
00055 #define XINE_SKINDIR    "/usr/local/share/xine/skins"
00056 
00066 #define XINE_BUILD_CC      "gcc version 2.95.3 20010315 (release)"
00067 
00070 #define XINE_BUILD_OS      "Linux 2.4.5 i686"
00071 
00074 #define XINE_BUILD_DATE    "Thu 26 Jul 2001 09:17:10"
00075 
00093 #define XINE_STOP      0
00094 
00099 #define XINE_PLAY      1
00100 
00105 #define XINE_PAUSE     2
00106 
00111 #define XINE_QUIT      3
00112 
00124 #define XINE_MAJOR_VERSION 0
00125 
00129 #define XINE_MINOR_VERSION 5
00130 
00134 #define XINE_SUB_VERSION   0
00135 
00150 char *xine_get_str_version(void);
00151 
00159 int xine_get_major_version(void);
00160 
00168 int xine_get_minor_version(void);
00169 
00177 int xine_get_sub_version(void);
00178 
00189 int xine_check_version(int major, int minor, int sub);
00190 
00207 #define VO_CAP_HUE          0x00000010
00208 
00212 #define VO_CAP_SATURATION   0x00000020
00213 
00217 #define VO_CAP_BRIGHTNESS   0x00000040
00218 
00222 #define VO_CAP_CONTRAST     0x00000080
00223 
00227 #define VO_CAP_COLORKEY     0x00000100
00228 
00241 #define VO_PROP_INTERLACED      0
00242 
00247 #define VO_PROP_ASPECT_RATIO    1
00248 
00253 #define VO_PROP_HUE             2
00254 
00259 #define VO_PROP_SATURATION      3
00260 
00265 #define VO_PROP_CONTRAST        4
00266 
00271 #define VO_PROP_BRIGHTNESS      5
00272 
00277 #define VO_PROP_COLORKEY        6
00278 
00283 #define VO_NUM_PROPERTIES       7
00284 
00298 #define ASPECT_AUTO        0
00299 
00304 #define ASPECT_ANAMORPHIC  1
00305 
00310 #define ASPECT_FULL        2
00311 
00316 #define ASPECT_DVB         3
00317 
00325 typedef void vo_frame_t;
00331 typedef void vo_overlay_t;
00332 
00338 typedef struct vo_driver_s vo_driver_t;
00339 
00344 struct vo_driver_s {
00349   uint32_t (*get_capabilities) (vo_driver_t *self);
00354   vo_frame_t* (*alloc_frame) (vo_driver_t *self);
00359   void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img,
00360                                uint32_t width, uint32_t height, 
00361                                int ratio_code, int format);
00365   void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img);
00369   void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay);
00377   int (*get_property) (vo_driver_t *self, int property);
00382   int (*set_property) (vo_driver_t *self, 
00383                        int property, int value);
00388   void (*get_property_min_max) (vo_driver_t *self,
00389                                 int property, int *min, int *max);
00396   int (*gui_data_exchange) (vo_driver_t *self, int data_type,
00397                             void *data);
00401   void (*exit) (vo_driver_t *self);
00402 
00403 };
00404 
00422 typedef void xine_t;
00427 typedef void ao_functions_t;
00432 typedef void cfg_data_t;
00438 typedef struct config_values_s config_values_t;
00444 struct config_values_s {
00448   char* (*lookup_str) (config_values_t *self,
00449                        char *key, char *str_default);
00453   int (*lookup_int) (config_values_t *self,
00454                      char *key, int n_default);
00458   void (*set_str) (config_values_t *self,
00459                    char *key, char *value) ;
00463   void (*set_int) (config_values_t *self,
00464                    char *key, int value) ;
00468   void (*save) (config_values_t *self);
00474   void (*read) (config_values_t *self, char *filename);
00478   cfg_data_t *data;
00479 };
00480 
00494 config_values_t *config_file_init (char *filename);
00495 
00506 typedef void (*gui_stream_end_cb_t) (int nStatus);
00511 typedef char* (*gui_get_next_mrl_cb_t) (void);
00516 typedef void (*gui_branched_cb_t) (void);
00517 
00532 #define DEMUX_DEFAULT_STRATEGY    0
00533 
00538 #define DEMUX_REVERT_STRATEGY     1
00539 
00544 #define DEMUX_CONTENT_STRATEGY    2
00545 
00550 #define DEMUX_EXTENSION_STRATEGY  3
00551 
00572 xine_t *xine_init (vo_driver_t *vo, 
00573                    ao_functions_t *ao,
00574                    config_values_t *config,
00575                    gui_stream_end_cb_t stream_end_cb,
00576                    gui_get_next_mrl_cb_t get_next_mrl_cb,
00577                    gui_branched_cb_t branched_cb);
00578 
00588 void xine_exit (xine_t *self);
00589 
00607 void xine_play (xine_t *self, char *MRL, int pos);
00608 
00617 void xine_pause (xine_t *self);
00618 
00627 void xine_stop (xine_t *self);
00628 
00637 int xine_eject(xine_t *self);
00638 
00647 int xine_get_status (xine_t *self);
00648 
00657 int xine_get_current_position (xine_t *self);
00658 
00667 int xine_get_audio_channel (xine_t *self);
00668 
00677 void xine_select_audio_channel (xine_t *self, int channel);
00678 
00687 int xine_get_spu_channel (xine_t *self);
00688 
00697 void xine_select_spu_channel (xine_t *self, int channel);
00698 
00715 char **xine_get_browsable_input_plugin_ids (xine_t *self) ;
00716 
00729 #define mrl_unknown        (0 << 0)
00730 
00735 #define mrl_dvd            (1 << 0)
00736 
00741 #define mrl_vcd            (1 << 1)
00742 
00747 #define mrl_net            (1 << 2)
00748 
00753 #define mrl_rtp            (1 << 3)
00754 
00759 #define mrl_stdin          (1 << 4)
00760 
00765 #define mrl_file           (1 << 5)
00766 
00771 #define mrl_file_fifo      (1 << 6)
00772 
00777 #define mrl_file_chardev   (1 << 7)
00778 
00783 #define mrl_file_directory (1 << 8)
00784 
00789 #define mrl_file_blockdev  (1 << 9)
00790 
00795 #define mrl_file_normal    (1 << 10)
00796 
00801 #define mrl_file_symlink   (1 << 11)
00802 
00807 #define mrl_file_sock      (1 << 12)
00808 
00813 #define mrl_file_exec      (1 << 13)
00814 
00819 #define mrl_file_backup    (1 << 14)
00820 
00825 #define mrl_file_hidden    (1 << 15)
00826 
00834 #define MRL_ZERO(m) {                                                         \
00835   if((m)) {                                                                   \
00836     if((m)->origin)                                                           \
00837       free((m)->origin);                                                      \
00838     if((m)->mrl)                                                              \
00839       free((m)->mrl);                                                         \
00840     if((m)->link)                                                             \
00841       free((m)->link);                                                        \
00842     (m)->origin = NULL;                                                       \
00843     (m)->mrl    = NULL;                                                       \
00844     (m)->link   = NULL;                                                       \
00845     (m)->type   = 0;                                                          \
00846     (m)->size   = (off_t) 0;                                                  \
00847   }                                                                           \
00848 }
00849 
00855 #define MRL_DUPLICATE(s, d) {                                                 \
00856   assert((s) != NULL);                                                        \
00857   assert((d) != NULL);                                                        \
00858                                                                               \
00859   if((s)->origin) {                                                           \
00860     if((d)->origin) {                                                         \
00861       (d)->origin = (char *) realloc((d)->origin, strlen((s)->origin) + 1);   \
00862       sprintf((d)->origin, "%s", (s)->origin);                                \
00863     }                                                                         \
00864     else                                                                      \
00865       (d)->origin = strdup((s)->origin);                                      \
00866   }                                                                           \
00867   else                                                                        \
00868     (d)->origin = NULL;                                                       \
00869                                                                               \
00870   if((s)->mrl) {                                                              \
00871     if((d)->mrl) {                                                            \
00872       (d)->mrl = (char *) realloc((d)->mrl, strlen((s)->mrl) + 1);            \
00873       sprintf((d)->mrl, "%s", (s)->mrl);                                      \
00874     }                                                                         \
00875     else                                                                      \
00876       (d)->mrl = strdup((s)->mrl);                                            \
00877   }                                                                           \
00878   else                                                                        \
00879     (d)->mrl = NULL;                                                          \
00880                                                                               \
00881   if((s)->link) {                                                             \
00882     if((d)->link) {                                                           \
00883       (d)->link = (char *) realloc((d)->link, strlen((s)->link) + 1);         \
00884       sprintf((d)->link, "%s", (s)->link);                                    \
00885     }                                                                         \
00886     else                                                                      \
00887       (d)->link = strdup((s)->link);                                          \
00888   }                                                                           \
00889   else                                                                        \
00890     (d)->link = NULL;                                                         \
00891                                                                               \
00892   (d)->type = (s)->type;                                                      \
00893   (d)->size = (s)->size;                                                      \
00894 }
00895 
00901 #define MRLS_DUPLICATE(s, d) {                                                \
00902   int i = 0;                                                                  \
00903                                                                               \
00904   assert((s) != NULL);                                                        \
00905   assert((d) != NULL);                                                        \
00906                                                                               \
00907   while((s) != NULL) {                                                        \
00908     d[i] = (mrl_t *) malloc(sizeof(mrl_t));                                   \
00909     MRL_DUPLICATE(s[i], d[i]);                                                \
00910     i++;                                                                      \
00911   }                                                                           \
00912 }
00913 
00919 typedef struct {
00921   char         *origin;
00923   char         *mrl;
00925   char         *link;
00927   uint32_t      type;
00929   off_t         size;
00930 } mrl_t;
00931 
00949 mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl, int *num_mrls);
00950 
00966 char **xine_get_autoplay_input_plugin_ids (xine_t *self) ;
00967 
00978 char **xine_get_autoplay_mrls (xine_t *self, char *plugin_id, int *num_mrls);
00979 
00993 #define XINE_PLUGINDIR  "/usr/local/lib/xine/plugins"
00994 
01005 #define VISUAL_TYPE_X11   1
01006 
01011 #define VISUAL_TYPE_AA    2
01012 
01017 #define VISUAL_TYPE_FB    3
01018 
01023 #define VISUAL_TYPE_GTK   4
01024 
01034 char **xine_list_video_output_plugins (int visual_type);
01035 
01045 vo_driver_t *xine_load_video_output_plugin(config_values_t *config,
01046                                            char *id, int visual_type, void *visual);
01047 
01053 char **xine_list_audio_output_plugins (void);
01054 
01062 ao_functions_t *xine_load_audio_output_plugin(config_values_t *config, char *id);
01063 
01073 #ifdef DOC_HIDDEN
01074 
01078 typedef void event_t;
01079 #endif
01080 
01085 typedef void (*event_listener_t) (xine_t *xine, event_t *event, void *data);
01086 
01095 int xine_register_event_listener(xine_t *self, event_listener_t listener);
01096 
01105 int xine_remove_event_listener(xine_t *self, event_listener_t listener);
01106 
01115 void xine_send_event(xine_t *self, event_t *event, void *data);
01116 
01121 #ifdef __cplusplus
01122 }
01123 #endif
01124 
01125 #endif

Generated at Thu Jul 26 11:29:45 2001 for XINE, A Free Video Player Project - API reference by doxygen1.2.8 written by Dimitri van Heesch, © 1997-2001