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.2 2001/09/16 23:13:45 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 XINE_COMPILE
00048 #include <xine/video_out.h>
00049 #endif
00050 
00051 #ifndef DOC_HIDDEN
00052 #include <xine/events.h>
00053 #endif
00054 
00059 #define XINE_SKINDIR    "/usr/local/share/xine/skins"
00060 
00070 #define XINE_BUILD_CC      "gcc version 2.95.3 20010315 (release)"
00071 
00074 #define XINE_BUILD_OS      "Linux 2.4.8 i686"
00075 
00078 #define XINE_BUILD_DATE    "Mon 17 Sep 2001 00:59:15"
00079 
00097 #define XINE_STOP      0
00098 
00103 #define XINE_PLAY      1
00104 
00109 #define XINE_QUIT      2
00110 
00122 #define XINE_MAJOR_VERSION 0
00123 
00127 #define XINE_MINOR_VERSION 9
00128 
00132 #define XINE_SUB_VERSION   1
00133 
00148 char *xine_get_str_version(void);
00149 
00157 int xine_get_major_version(void);
00158 
00166 int xine_get_minor_version(void);
00167 
00175 int xine_get_sub_version(void);
00176 
00187 int xine_check_version(int major, int minor, int sub);
00188 
00205 #define VO_CAP_HUE          0x00000010
00206 
00210 #define VO_CAP_SATURATION   0x00000020
00211 
00215 #define VO_CAP_BRIGHTNESS   0x00000040
00216 
00220 #define VO_CAP_CONTRAST     0x00000080
00221 
00225 #define VO_CAP_COLORKEY     0x00000100
00226 
00239 #define VO_PROP_INTERLACED        0
00240 
00245 #define VO_PROP_ASPECT_RATIO      1
00246 
00251 #define VO_PROP_HUE               2
00252 
00257 #define VO_PROP_SATURATION        3
00258 
00263 #define VO_PROP_CONTRAST          4
00264 
00269 #define VO_PROP_BRIGHTNESS        5
00270 
00275 #define VO_PROP_COLORKEY          6
00276 
00281 #define VO_PROP_SOFT_DEINTERLACE  7
00282 
00287 #define VO_NUM_PROPERTIES         8
00288 
00302 #define ASPECT_AUTO        0
00303 
00308 #define ASPECT_ANAMORPHIC  1
00309 
00314 #define ASPECT_FULL        2
00315 
00320 #define ASPECT_DVB         3
00321 
00324 #ifdef DOC_HIDDEN
00325 
00330 typedef void vo_frame_t;
00336 typedef void vo_overlay_t;
00337 
00343 typedef struct vo_driver_s vo_driver_t;
00344 
00349 struct vo_driver_s {
00354   uint32_t (*get_capabilities) (vo_driver_t *self);
00359   vo_frame_t* (*alloc_frame) (vo_driver_t *self);
00364   void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img,
00365                                uint32_t width, uint32_t height, 
00366                                int ratio_code, int format);
00370   void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img);
00374   void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay);
00382   int (*get_property) (vo_driver_t *self, int property);
00387   int (*set_property) (vo_driver_t *self, 
00388                        int property, int value);
00393   void (*get_property_min_max) (vo_driver_t *self,
00394                                 int property, int *min, int *max);
00401   int (*gui_data_exchange) (vo_driver_t *self, int data_type,
00402                             void *data);
00406   void (*exit) (vo_driver_t *self);
00407 
00408 };
00409 #endif
00410 
00427 typedef void xine_t;
00432 typedef void ao_driver_t;
00438 #ifdef DOC_HIDDEN
00439 typedef void cfg_data_t;
00445 typedef struct config_values_s config_values_t;
00451 struct config_values_s {
00455   char* (*lookup_str) (config_values_t *self,
00456                        char *key, char *str_default);
00460   int (*lookup_int) (config_values_t *self,
00461                      char *key, int n_default);
00465   void (*set_str) (config_values_t *self,
00466                    char *key, char *value) ;
00470   void (*set_int) (config_values_t *self,
00471                    char *key, int value) ;
00475   void (*save) (config_values_t *self);
00481   void (*read) (config_values_t *self, char *filename);
00485   cfg_data_t *data;
00486 };
00487 #endif
00488 
00501 config_values_t *config_file_init (char *filename);
00502 
00513 typedef void (*gui_stream_end_cb_t) (int nStatus);
00518 typedef char* (*gui_get_next_mrl_cb_t) (void);
00523 typedef void (*gui_branched_cb_t) (void);
00524 
00539 #define DEMUX_DEFAULT_STRATEGY    0
00540 
00545 #define DEMUX_REVERT_STRATEGY     1
00546 
00551 #define DEMUX_CONTENT_STRATEGY    2
00552 
00557 #define DEMUX_EXTENSION_STRATEGY  3
00558 
00579 xine_t *xine_init (vo_driver_t *vo, 
00580                    ao_driver_t *ao,
00581                    config_values_t *config,
00582                    gui_stream_end_cb_t stream_end_cb,
00583                    gui_get_next_mrl_cb_t get_next_mrl_cb,
00584                    gui_branched_cb_t branched_cb);
00585 
00595 void xine_exit (xine_t *self);
00596 
00617 void xine_play (xine_t *self, char *MRL, int start_pos, int start_time);
00618 
00629 void xine_set_speed (xine_t *self, int speed);
00630 
00639 int xine_get_speed (xine_t *self);
00640 
00646 #define SPEED_PAUSE   0
00647 
00652 #define SPEED_SLOW_4  1
00653 
00658 #define SPEED_SLOW_2  2
00659 
00664 #define SPEED_NORMAL  4
00665 
00670 #define SPEED_FAST_2  8
00671 
00676 #define SPEED_FAST_4 16
00677 
00687 void xine_set_av_offset (xine_t *self, int offset_pts);
00688 
00697 int xine_get_av_offset (xine_t *self);
00698 
00707 void xine_stop (xine_t *self);
00708 
00717 int xine_eject(xine_t *self);
00718 
00727 int xine_get_status (xine_t *self);
00728 
00737 int xine_get_current_position (xine_t *self);
00738 
00747 int xine_get_current_time (xine_t *self);
00748 
00757 int xine_get_stream_length (xine_t *self);
00758 
00767 int xine_get_audio_channel (xine_t *self);
00768 
00777 void xine_select_audio_channel (xine_t *self, int channel);
00778 
00787 int xine_get_spu_channel (xine_t *self);
00788 
00797 void xine_select_spu_channel (xine_t *self, int channel);
00798 
00815 char **xine_get_browsable_input_plugin_ids (xine_t *self) ;
00816 
00829 #define mrl_unknown        (0 << 0)
00830 
00835 #define mrl_dvd            (1 << 0)
00836 
00841 #define mrl_vcd            (1 << 1)
00842 
00847 #define mrl_net            (1 << 2)
00848 
00853 #define mrl_rtp            (1 << 3)
00854 
00859 #define mrl_stdin          (1 << 4)
00860 
00865 #define mrl_file           (1 << 5)
00866 
00871 #define mrl_file_fifo      (1 << 6)
00872 
00877 #define mrl_file_chardev   (1 << 7)
00878 
00883 #define mrl_file_directory (1 << 8)
00884 
00889 #define mrl_file_blockdev  (1 << 9)
00890 
00895 #define mrl_file_normal    (1 << 10)
00896 
00901 #define mrl_file_symlink   (1 << 11)
00902 
00907 #define mrl_file_sock      (1 << 12)
00908 
00913 #define mrl_file_exec      (1 << 13)
00914 
00919 #define mrl_file_backup    (1 << 14)
00920 
00925 #define mrl_file_hidden    (1 << 15)
00926 
00934 #define MRL_ZERO(m) {                                                         \
00935   if((m)) {                                                                   \
00936     if((m)->origin)                                                           \
00937       free((m)->origin);                                                      \
00938     if((m)->mrl)                                                              \
00939       free((m)->mrl);                                                         \
00940     if((m)->link)                                                             \
00941       free((m)->link);                                                        \
00942     (m)->origin = NULL;                                                       \
00943     (m)->mrl    = NULL;                                                       \
00944     (m)->link   = NULL;                                                       \
00945     (m)->type   = 0;                                                          \
00946     (m)->size   = (off_t) 0;                                                  \
00947   }                                                                           \
00948 }
00949 
00955 #define MRL_DUPLICATE(s, d) {                                                 \
00956   assert((s) != NULL);                                                        \
00957   assert((d) != NULL);                                                        \
00958                                                                               \
00959   if((s)->origin) {                                                           \
00960     if((d)->origin) {                                                         \
00961       (d)->origin = (char *) realloc((d)->origin, strlen((s)->origin) + 1);   \
00962       sprintf((d)->origin, "%s", (s)->origin);                                \
00963     }                                                                         \
00964     else                                                                      \
00965       (d)->origin = strdup((s)->origin);                                      \
00966   }                                                                           \
00967   else                                                                        \
00968     (d)->origin = NULL;                                                       \
00969                                                                               \
00970   if((s)->mrl) {                                                              \
00971     if((d)->mrl) {                                                            \
00972       (d)->mrl = (char *) realloc((d)->mrl, strlen((s)->mrl) + 1);            \
00973       sprintf((d)->mrl, "%s", (s)->mrl);                                      \
00974     }                                                                         \
00975     else                                                                      \
00976       (d)->mrl = strdup((s)->mrl);                                            \
00977   }                                                                           \
00978   else                                                                        \
00979     (d)->mrl = NULL;                                                          \
00980                                                                               \
00981   if((s)->link) {                                                             \
00982     if((d)->link) {                                                           \
00983       (d)->link = (char *) realloc((d)->link, strlen((s)->link) + 1);         \
00984       sprintf((d)->link, "%s", (s)->link);                                    \
00985     }                                                                         \
00986     else                                                                      \
00987       (d)->link = strdup((s)->link);                                          \
00988   }                                                                           \
00989   else                                                                        \
00990     (d)->link = NULL;                                                         \
00991                                                                               \
00992   (d)->type = (s)->type;                                                      \
00993   (d)->size = (s)->size;                                                      \
00994 }
00995 
01001 #define MRLS_DUPLICATE(s, d) {                                                \
01002   int i = 0;                                                                  \
01003                                                                               \
01004   assert((s) != NULL);                                                        \
01005   assert((d) != NULL);                                                        \
01006                                                                               \
01007   while((s) != NULL) {                                                        \
01008     d[i] = (mrl_t *) malloc(sizeof(mrl_t));                                   \
01009     MRL_DUPLICATE(s[i], d[i]);                                                \
01010     i++;                                                                      \
01011   }                                                                           \
01012 }
01013 
01019 typedef struct {
01021   char         *origin;
01023   char         *mrl;
01025   char         *link;
01027   uint32_t      type;
01029   off_t         size;
01030 } mrl_t;
01031 
01048 mrl_t **xine_get_browse_mrls (xine_t *self, char *plugin_id, char *start_mrl, int *num_mrls);
01049 
01065 char **xine_get_autoplay_input_plugin_ids (xine_t *self) ;
01066 
01077 char **xine_get_autoplay_mrls (xine_t *self, char *plugin_id, int *num_mrls);
01078 
01092 #define XINE_PLUGINDIR  "/usr/local/lib/xine/plugins"
01093 
01104 #define VISUAL_TYPE_X11   1
01105 
01110 #define VISUAL_TYPE_AA    2
01111 
01116 #define VISUAL_TYPE_FB    3
01117 
01122 #define VISUAL_TYPE_GTK   4
01123 
01133 char **xine_list_video_output_plugins (int visual_type);
01134 
01144 vo_driver_t *xine_load_video_output_plugin(config_values_t *config,
01145                                            char *id, int visual_type, void *visual);
01146 
01152 char **xine_list_audio_output_plugins (void);
01153 
01161 ao_driver_t *xine_load_audio_output_plugin(config_values_t *config, char *id);
01162 
01171 #ifdef DOC_HIDDEN
01172 
01176 typedef void event_t;
01177 #endif
01178 
01183 typedef void (*event_listener_t) (xine_t *xine, event_t *event, void *data);
01184 
01193 int xine_register_event_listener(xine_t *self, event_listener_t listener);
01194 
01203 int xine_remove_event_listener(xine_t *self, event_listener_t listener);
01204 
01213 void xine_send_event(xine_t *self, event_t *event, void *data);
01214 
01219 #ifdef __cplusplus
01220 }
01221 #endif
01222 
01223 #endif

Generated at Mon Sep 17 01:05:55 2001 for XINE, A Free Video Player Project - API reference by doxygen1.2.8 written by Dimitri van Heesch, © 1997-2001