From ee7fcf752293a38fd97be0dd1243381e04c6fdaa Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 5 Oct 2007 08:57:52 +0000 Subject: [PATCH] Revoked urge to have a magic[4] in burn_source (free_data is magic enough) --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/file.c | 16 ++++++++-------- libburn/libburn.h | 16 +--------------- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index fa6f48f..1f402f2 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2007.10.04.213107" +#define Cdrskin_timestamP "2007.10.05.085929" diff --git a/libburn/file.c b/libburn/file.c index bb1f6d3..8f98a69 100644 --- a/libburn/file.c +++ b/libburn/file.c @@ -127,8 +127,6 @@ failure:; return NULL; } - fs->magic[0] = 'f'; fs->magic[1] = 'i'; - fs->magic[2] = 'l'; fs->magic[3] = 'e'; fs->datafd = fd1; fs->subfd = fd2; @@ -167,8 +165,6 @@ struct burn_source *burn_fd_source_new(int datafd, int subfd, off_t size) fs = malloc(sizeof(struct burn_source_file)); if (fs == NULL) /* ts A70825 */ return NULL; - fs->magic[0] = 'f'; fs->magic[1] = 'i'; - fs->magic[2] = 'l'; fs->magic[3] = 'e'; fs->datafd = datafd; fs->subfd = subfd; fs->fixed_size = size; @@ -200,6 +196,11 @@ struct burn_source *burn_fd_source_new(int datafd, int subfd, off_t size) and a synchronous shoveller which is here. */ +/* fifo_ng has a ringbuffer and runs in a thread. og is on its way out. */ +#define Libburn_fifo_nG 1 + +#ifndef Libburn_fifo_nG + static int fifo_read(struct burn_source *source, unsigned char *buffer, int size) @@ -291,6 +292,8 @@ int burn_fifo_source_shoveller_og(struct burn_source *source, int flag) return (ret >= 0); } +#endif Libburn_fifo_nG + /* ts A71003 */ /* ----------------------------- fifo ng ------------------------- */ @@ -580,8 +583,6 @@ struct burn_source *burn_fifo_source_new(struct burn_source *inp, fs = malloc(sizeof(struct burn_source_fifo)); if (fs == NULL) return NULL; - fs->magic[0] = 'f'; fs->magic[1] = 'i'; - fs->magic[2] = 'f'; fs->magic[3] = 'o'; fs->is_started = 0; fs->thread_pid = 0; fs->thread_pid_valid = 0; @@ -643,8 +644,7 @@ int burn_fifo_inquire_status(struct burn_source *source, *status_text = NULL; *size = 0; - if (fs->magic[0] != 'f' || fs->magic[1] != 'i' || - fs->magic[2] != 'f' || fs->magic[3] != 'o') { + if (source->free_data != fifo_free_ng) { libdax_msgs_submit(libdax_messenger, -1, 0x00020157, LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, "burn_source is not a fifo object", 0, 0); diff --git a/libburn/libburn.h b/libburn/libburn.h index 838d33c..aafbd88 100644 --- a/libburn/libburn.h +++ b/libburn/libburn.h @@ -428,27 +428,13 @@ struct burn_source { /** Source specific data. Here the various source classes express their specific properties and the instance objects store their individual management data. - You SHOULD implement two attributes in *data : - 1) The first member of the structure should be a 4 byte array - magic[] with the first byte being set to an uppercase letter - and the other 3 set to some value you deem unique for your - burn_source. - libburnia sets magic[0] to a lower case letter in its burn_source - objects. Established magic values are: - {'f','i','l','e'} , {'f','i','f','o'} , {'e','1','1','9'}. - 2) off_t fixed_size should store an eventual value from (*set_size) - and if set be used as reply of (*get_size). - E.g. data could point to a struct like this: struct app_burn_source { - char magic[4]; - off_t fixed_size; struct my_app *app_handle; ... other individual source parameters ... + off_t fixed_size; }; - With .magic[] getting initialized as {'M','y','a','p'} - and .fixed_size initialized as 0 (= invalid). Function (*free_data) has to be prepared to clean up and free the struct.