2 * Copyright 2005 Timo Hirvonen
13 void ip_load_plugins(void);
16 * allocates new struct input_plugin.
17 * never fails. does not check if the file is really playable
19 struct input_plugin
*ip_new(const char *filename
);
22 * frees struct input_plugin closing it first if necessary
24 void ip_delete(struct input_plugin
*ip
);
27 * errors: IP_ERROR_{ERRNO, FILE_FORMAT, SAMPLE_FORMAT}
29 int ip_open(struct input_plugin
*ip
);
34 int ip_close(struct input_plugin
*ip
);
37 * errors: IP_ERROR_{ERRNO, FILE_FORMAT}
39 int ip_read(struct input_plugin
*ip
, char *buffer
, int count
);
42 * errors: IP_ERROR_{FUNCTION_NOT_SUPPORTED}
44 int ip_seek(struct input_plugin
*ip
, double offset
);
47 * errors: IP_ERROR_{ERRNO}
49 int ip_read_comments(struct input_plugin
*ip
, struct keyval
**comments
);
52 * errors: IP_ERROR_{ERRNO, FUNCTION_NOT_SUPPORTED}
54 int ip_duration(struct input_plugin
*ip
);
56 sample_format_t
ip_get_sf(struct input_plugin
*ip
);
57 const char *ip_get_filename(struct input_plugin
*ip
);
58 const char *ip_get_metadata(struct input_plugin
*ip
);
59 int ip_is_remote(struct input_plugin
*ip
);
60 int ip_metadata_changed(struct input_plugin
*ip
);
61 int ip_eof(struct input_plugin
*ip
);
62 char *ip_get_error_msg(struct input_plugin
*ip
, int rc
, const char *arg
);
63 char **ip_get_supported_extensions(void);
64 void ip_dump_plugins(void);