Revoked urge to have a magic[4] in burn_source (free_data is magic enough)
This commit is contained in:
parent
ed53a67a2b
commit
ee7fcf7522
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2007.10.04.213107"
|
#define Cdrskin_timestamP "2007.10.05.085929"
|
||||||
|
@ -127,8 +127,6 @@ failure:;
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
fs->magic[0] = 'f'; fs->magic[1] = 'i';
|
|
||||||
fs->magic[2] = 'l'; fs->magic[3] = 'e';
|
|
||||||
fs->datafd = fd1;
|
fs->datafd = fd1;
|
||||||
fs->subfd = fd2;
|
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));
|
fs = malloc(sizeof(struct burn_source_file));
|
||||||
if (fs == NULL) /* ts A70825 */
|
if (fs == NULL) /* ts A70825 */
|
||||||
return NULL;
|
return NULL;
|
||||||
fs->magic[0] = 'f'; fs->magic[1] = 'i';
|
|
||||||
fs->magic[2] = 'l'; fs->magic[3] = 'e';
|
|
||||||
fs->datafd = datafd;
|
fs->datafd = datafd;
|
||||||
fs->subfd = subfd;
|
fs->subfd = subfd;
|
||||||
fs->fixed_size = size;
|
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.
|
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,
|
static int fifo_read(struct burn_source *source,
|
||||||
unsigned char *buffer,
|
unsigned char *buffer,
|
||||||
int size)
|
int size)
|
||||||
@ -291,6 +292,8 @@ int burn_fifo_source_shoveller_og(struct burn_source *source, int flag)
|
|||||||
return (ret >= 0);
|
return (ret >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif Libburn_fifo_nG
|
||||||
|
|
||||||
|
|
||||||
/* ts A71003 */
|
/* ts A71003 */
|
||||||
/* ----------------------------- fifo ng ------------------------- */
|
/* ----------------------------- fifo ng ------------------------- */
|
||||||
@ -580,8 +583,6 @@ struct burn_source *burn_fifo_source_new(struct burn_source *inp,
|
|||||||
fs = malloc(sizeof(struct burn_source_fifo));
|
fs = malloc(sizeof(struct burn_source_fifo));
|
||||||
if (fs == NULL)
|
if (fs == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
fs->magic[0] = 'f'; fs->magic[1] = 'i';
|
|
||||||
fs->magic[2] = 'f'; fs->magic[3] = 'o';
|
|
||||||
fs->is_started = 0;
|
fs->is_started = 0;
|
||||||
fs->thread_pid = 0;
|
fs->thread_pid = 0;
|
||||||
fs->thread_pid_valid = 0;
|
fs->thread_pid_valid = 0;
|
||||||
@ -643,8 +644,7 @@ int burn_fifo_inquire_status(struct burn_source *source,
|
|||||||
*status_text = NULL;
|
*status_text = NULL;
|
||||||
*size = 0;
|
*size = 0;
|
||||||
|
|
||||||
if (fs->magic[0] != 'f' || fs->magic[1] != 'i' ||
|
if (source->free_data != fifo_free_ng) {
|
||||||
fs->magic[2] != 'f' || fs->magic[3] != 'o') {
|
|
||||||
libdax_msgs_submit(libdax_messenger, -1, 0x00020157,
|
libdax_msgs_submit(libdax_messenger, -1, 0x00020157,
|
||||||
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
|
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
"burn_source is not a fifo object", 0, 0);
|
"burn_source is not a fifo object", 0, 0);
|
||||||
|
@ -428,27 +428,13 @@ struct burn_source {
|
|||||||
/** Source specific data. Here the various source classes express their
|
/** Source specific data. Here the various source classes express their
|
||||||
specific properties and the instance objects store their individual
|
specific properties and the instance objects store their individual
|
||||||
management data.
|
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:
|
E.g. data could point to a struct like this:
|
||||||
struct app_burn_source
|
struct app_burn_source
|
||||||
{
|
{
|
||||||
char magic[4];
|
|
||||||
off_t fixed_size;
|
|
||||||
struct my_app *app_handle;
|
struct my_app *app_handle;
|
||||||
... other individual source parameters ...
|
... 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
|
Function (*free_data) has to be prepared to clean up and free
|
||||||
the struct.
|
the struct.
|
||||||
|
Loading…
Reference in New Issue
Block a user