21#ifndef HAVE_INPUT_PLUGIN_H
22#define HAVE_INPUT_PLUGIN_H
33#define INPUT_PLUGIN_IFACE_VERSION 18
73 const char *
const * (*get_autoplay_list) (
input_class_t *this_gen,
int *num_files);
88#define default_input_class_dispose (void (*) (input_class_t *this_gen))free
239#define INPUT_CAP_NOCAP 0x00000000
250#define INPUT_CAP_SEEKABLE 0x00000001
260#define INPUT_CAP_BLOCK 0x00000002
272#define INPUT_CAP_AUDIOLANG 0x00000008
273#define INPUT_CAP_SPULANG 0x00000010
287#define INPUT_CAP_PREVIEW 0x00000040
298#define INPUT_CAP_CHAPTERS 0x00000080
306#define INPUT_CAP_RIP_FORBIDDEN 0x00000100
312#define INPUT_CAP_NO_CACHE 0x00000200
318#define INPUT_CAP_CLONE 0x00000400
331#define INPUT_CAP_SLOW_SEEKABLE 0x00000800
333#define INPUT_IS_SEEKABLE(input) (((input)->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0)
334#define INPUT_IS_SLOW_SEEKABLE(input) (((input)->get_capabilities(input) & (INPUT_CAP_SEEKABLE | INPUT_CAP_SLOW_SEEKABLE)) != 0)
341#define INPUT_CAP_SIZED_PREVIEW 0x00001000
347#define INPUT_CAP_TIME_SEEKABLE 0x00002000
354#define INPUT_CAP_NEW_MRL 0x00004000
361#define INPUT_CAP_LIVE 0x00008000
363#define INPUT_OPTIONAL_UNSUPPORTED 0
364#define INPUT_OPTIONAL_SUCCESS 1
366#define INPUT_OPTIONAL_DATA_AUDIOLANG 2
367#define INPUT_OPTIONAL_DATA_SPULANG 3
368#define INPUT_OPTIONAL_DATA_PREVIEW 7
371#define INPUT_OPTIONAL_DATA_MIME_TYPE 8
373#define INPUT_OPTIONAL_DATA_DEMUX_MIME_TYPE 9
375#define INPUT_OPTIONAL_DATA_DEMUXER 10
377#define INPUT_OPTIONAL_DATA_CLONE 11
379#define INPUT_OPTIONAL_DATA_SIZED_PREVIEW 12
381#define INPUT_OPTIONAL_DATA_DURATION 13
385#define INPUT_OPTIONAL_DATA_NEW_MRL 14
387#define MAX_MRL_ENTRIES 255
388#define MAX_PREVIEW_SIZE 4096
397#define mrl_unknown (0 << 0)
398#define mrl_dvd (1 << 0)
399#define mrl_vcd (1 << 1)
400#define mrl_net (1 << 2)
401#define mrl_rtp (1 << 3)
402#define mrl_stdin (1 << 4)
403#define mrl_cda (1 << 5)
404#define mrl_file (1 << 6)
405#define mrl_file_fifo (1 << 7)
406#define mrl_file_chardev (1 << 8)
407#define mrl_file_directory (1 << 9)
408#define mrl_file_blockdev (1 << 10)
409#define mrl_file_normal (1 << 11)
410#define mrl_file_symlink (1 << 12)
411#define mrl_file_sock (1 << 13)
412#define mrl_file_exec (1 << 14)
413#define mrl_file_backup (1 << 15)
414#define mrl_file_hidden (1 << 16)
419#define MRL_ZERO(m) { \
424 (m)->origin = NULL; \
428 (m)->size = (off_t) 0; \
435#define MRL_DUPLICATE(s, d) { \
436 _x_assert((s) != NULL); \
437 _x_assert((d) != NULL); \
440 (d)->origin = (s)->origin ? strdup((s)->origin) : NULL; \
443 (d)->mrl = (s)->mrl ? strdup((s)->mrl) : NULL; \
446 (d)->link = (s)->link ? strdup((s)->link) : NULL; \
448 (d)->type = (s)->type; \
449 (d)->size = (s)->size; \
455#define MRLS_DUPLICATE(s, d) { \
458 _x_assert((s) != NULL); \
459 _x_assert((d) != NULL); \
461 while((s) != NULL) { \
462 d[i] = (xine_mrl_t *) malloc(sizeof(xine_mrl_t)); \
463 MRL_DUPLICATE(s[i], d[i]); \
#define XINE_USED
Definition: attributes.h:60
#define XINE_PROTECTED
Definition: attributes.h:75
Definition: plugin_catalog.h:44
Definition: net_buf_ctrl.c:72
xine_stream_t * stream
Definition: net_buf_ctrl.c:74
Definition: xine_internal.h:123