archive/iso: renamed plugin to "iso9660"

Based on libiso9660.
This commit is contained in:
Max Kellermann 2009-12-16 16:06:16 +01:00
parent c3e0fbd9e4
commit bd97586cc4
5 changed files with 52 additions and 41 deletions

View File

@ -358,8 +358,8 @@ if HAVE_ZZIP
ARCHIVE_SRC += src/archive/zzip_archive_plugin.c ARCHIVE_SRC += src/archive/zzip_archive_plugin.c
endif endif
if HAVE_ISO if HAVE_ISO9660
ARCHIVE_SRC += src/archive/iso_plugin.c ARCHIVE_SRC += src/archive/iso9660_archive_plugin.c
endif endif
if ENABLE_ARCHIVE if ENABLE_ARCHIVE

1
NEWS
View File

@ -11,6 +11,7 @@ ver 0.16 (20??/??/??)
- allow changing replay gain mode on-the-fly - allow changing replay gain mode on-the-fly
- omitting the range end is possible - omitting the range end is possible
* archive: * archive:
- iso: renamed plugin to "iso9660"
- zip: renamed plugin to "zzip" - zip: renamed plugin to "zzip"
* input: * input:
- lastfm: obsolete plugin removed - lastfm: obsolete plugin removed

View File

@ -378,9 +378,9 @@ AC_ARG_ENABLE(iso9660,
MPD_AUTO_PKG(iso9660, ISO9660, [libiso9660], MPD_AUTO_PKG(iso9660, ISO9660, [libiso9660],
[libiso9660 archive library], [libiso9660 not found]) [libiso9660 archive library], [libiso9660 not found])
AM_CONDITIONAL(HAVE_ISO, test x$enable_iso9660 = xyes) AM_CONDITIONAL(HAVE_ISO9660, test x$enable_iso9660 = xyes)
if test x$enable_iso9660 = xyes; then if test x$enable_iso9660 = xyes; then
AC_DEFINE(HAVE_ISO, 1, [Define to have iso archive support]) AC_DEFINE(HAVE_ISO9660, 1, [Define to have ISO9660 archive support])
fi fi
dnl archive API dnl archive API

View File

@ -33,16 +33,16 @@
#define CEILING(x, y) ((x+(y-1))/y) #define CEILING(x, y) ((x+(y-1))/y)
typedef struct { struct iso9660_archive_file {
iso9660_t *iso; iso9660_t *iso;
iso9660_stat_t *statbuf; iso9660_stat_t *statbuf;
size_t cur_ofs; size_t cur_ofs;
size_t max_blocks; size_t max_blocks;
GSList *list; GSList *list;
GSList *iter; GSList *iter;
} iso_context; };
static const struct input_plugin iso_inputplugin; static const struct input_plugin iso9660_input_plugin;
static inline GQuark static inline GQuark
iso9660_quark(void) iso9660_quark(void)
@ -53,7 +53,7 @@ iso9660_quark(void)
/* archive open && listing routine */ /* archive open && listing routine */
static void static void
listdir_recur(const char *psz_path, iso_context *context) listdir_recur(const char *psz_path, struct iso9660_archive_file *context)
{ {
iso9660_t *iso = context->iso; iso9660_t *iso = context->iso;
CdioList_t *entlist; CdioList_t *entlist;
@ -87,9 +87,10 @@ listdir_recur(const char *psz_path, iso_context *context)
} }
static struct archive_file * static struct archive_file *
iso_open(char * pathname) iso9660_archive_open(char * pathname)
{ {
iso_context *context = g_malloc(sizeof(iso_context)); struct iso9660_archive_file *context =
g_new(struct iso9660_archive_file, 1);
context->list = NULL; context->list = NULL;
@ -106,17 +107,21 @@ iso_open(char * pathname)
} }
static void static void
iso_scan_reset(struct archive_file *file) iso9660_archive_scan_reset(struct archive_file *file)
{ {
iso_context *context = (iso_context *) file; struct iso9660_archive_file *context =
(struct iso9660_archive_file *)file;
//reset iterator //reset iterator
context->iter = context->list; context->iter = context->list;
} }
static char * static char *
iso_scan_next(struct archive_file *file) iso9660_archive_scan_next(struct archive_file *file)
{ {
iso_context *context = (iso_context *) file; struct iso9660_archive_file *context =
(struct iso9660_archive_file *)file;
char *data = NULL; char *data = NULL;
if (context->iter != NULL) { if (context->iter != NULL) {
///fetch data and goto next ///fetch data and goto next
@ -127,9 +132,11 @@ iso_scan_next(struct archive_file *file)
} }
static void static void
iso_close(struct archive_file *file) iso9660_archive_close(struct archive_file *file)
{ {
iso_context *context = (iso_context *) file; struct iso9660_archive_file *context =
(struct iso9660_archive_file *)file;
GSList *tmp; GSList *tmp;
if (context->list) { if (context->list) {
//free list //free list
@ -146,12 +153,14 @@ iso_close(struct archive_file *file)
/* single archive handling */ /* single archive handling */
static bool static bool
iso_open_stream(struct archive_file *file, struct input_stream *is, iso9660_archive_open_stream(struct archive_file *file, struct input_stream *is,
const char *pathname, GError **error_r) const char *pathname, GError **error_r)
{ {
iso_context *context = (iso_context *) file; struct iso9660_archive_file *context =
(struct iso9660_archive_file *)file;
//setup file ops //setup file ops
is->plugin = &iso_inputplugin; is->plugin = &iso9660_input_plugin;
//insert back reference //insert back reference
is->data = context; is->data = context;
//we are not seekable //we are not seekable
@ -170,19 +179,19 @@ iso_open_stream(struct archive_file *file, struct input_stream *is,
} }
static void static void
iso_is_close(struct input_stream *is) iso9660_input_close(struct input_stream *is)
{ {
iso_context *context = (iso_context *) is->data; struct iso9660_archive_file *context = is->data;
g_free(context->statbuf); g_free(context->statbuf);
iso_close((struct archive_file *)context); iso9660_archive_close((struct archive_file *)context);
} }
static size_t static size_t
iso_is_read(struct input_stream *is, void *ptr, size_t size, GError **error_r) iso9660_input_read(struct input_stream *is, void *ptr, size_t size, GError **error_r)
{ {
iso_context *context = (iso_context *) is->data; struct iso9660_archive_file *context = (struct iso9660_archive_file *) is->data;
int toread, readed = 0; int toread, readed = 0;
int no_blocks, cur_block; int no_blocks, cur_block;
size_t left_bytes = context->statbuf->size - context->cur_ofs; size_t left_bytes = context->statbuf->size - context->cur_ofs;
@ -218,31 +227,32 @@ iso_is_read(struct input_stream *is, void *ptr, size_t size, GError **error_r)
} }
static bool static bool
iso_is_eof(struct input_stream *is) iso9660_input_eof(struct input_stream *is)
{ {
iso_context *context = (iso_context *) is->data; struct iso9660_archive_file *context = is->data;
return (context->cur_ofs == context->statbuf->size); return (context->cur_ofs == context->statbuf->size);
} }
/* exported structures */ /* exported structures */
static const char *const iso_extensions[] = { static const char *const iso9660_archive_extensions[] = {
"iso", "iso",
NULL NULL
}; };
static const struct input_plugin iso_inputplugin = { static const struct input_plugin iso9660_input_plugin = {
.close = iso_is_close, .close = iso9660_input_close,
.read = iso_is_read, .read = iso9660_input_read,
.eof = iso_is_eof, .eof = iso9660_input_eof,
}; };
const struct archive_plugin iso_plugin = { const struct archive_plugin iso9660_archive_plugin = {
.name = "iso", .name = "iso",
.open = iso_open, .open = iso9660_archive_open,
.scan_reset = iso_scan_reset, .scan_reset = iso9660_archive_scan_reset,
.scan_next = iso_scan_next, .scan_next = iso9660_archive_scan_next,
.open_stream = iso_open_stream, .open_stream = iso9660_archive_open_stream,
.close = iso_close, .close = iso9660_archive_close,
.suffixes = iso_extensions .suffixes = iso9660_archive_extensions
}; };

View File

@ -27,7 +27,7 @@
extern const struct archive_plugin bz2_plugin; extern const struct archive_plugin bz2_plugin;
extern const struct archive_plugin zzip_archive_plugin; extern const struct archive_plugin zzip_archive_plugin;
extern const struct archive_plugin iso_plugin; extern const struct archive_plugin iso9660_archive_plugin;
static const struct archive_plugin *const archive_plugins[] = { static const struct archive_plugin *const archive_plugins[] = {
#ifdef HAVE_BZ2 #ifdef HAVE_BZ2
@ -36,8 +36,8 @@ static const struct archive_plugin *const archive_plugins[] = {
#ifdef HAVE_ZZIP #ifdef HAVE_ZZIP
&zzip_archive_plugin, &zzip_archive_plugin,
#endif #endif
#ifdef HAVE_ISO #ifdef HAVE_ISO9660
&iso_plugin, &iso9660_archive_plugin,
#endif #endif
NULL NULL
}; };