configure: SunOS /bin/sh compatibility
[cmus.git] / input.h
blobac453bc05346c577a6955b3f2990a1125c72bc59
1 /*
2 * Copyright 2005 Timo Hirvonen
3 */
5 #ifndef _INPUT_H
6 #define _INPUT_H
8 #include <comment.h>
9 #include <sf.h>
11 struct input_plugin;
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);
32 * errors: none?
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);
66 #endif