From beb1c1d2d16a4213ae6eda8b40f5d4c7cc3fee7c Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 23 Jan 2008 21:18:25 +0000 Subject: [PATCH] Implemented run time check of libburn version. --- cdrskin/cdrskin.c | 57 +++++++++++++++++++++++++++++++++++-- cdrskin/cdrskin_timestamp.h | 2 +- configure.ac | 29 +++++++++++++------ 3 files changed, 75 insertions(+), 13 deletions(-) diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index b1ad87f..75bc0bc 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -91,6 +91,20 @@ or #define Cdrskin_prog_versioN "0.4.1" #endif +/** The official libburn interface revision to use. + (May get changed further below) +*/ +#ifndef Cdrskin_libburn_majoR +#define Cdrskin_libburn_majoR 0 +#endif +#ifndef Cdrskin_libburn_minoR +#define Cdrskin_libburn_minoR 4 +#endif +#ifndef Cdrskin_libburn_micrO +#define Cdrskin_libburn_micrO 1 +#endif + + /** The source code release timestamp */ #include "cdrskin_timestamp.h" #ifndef Cdrskin_timestamP @@ -139,10 +153,30 @@ or #endif /* Cdrskin_libburn_0_4_1 */ #ifndef Cdrskin_libburn_versioN +#define Cdrskin_libburn_0_4_0 #define Cdrskin_libburn_versioN "0.4.0" #define Cdrskin_libburn_from_pykix_svN 1 #endif +#ifdef Cdrskin_libburn_0_4_0 +#undef Cdrskin_libburn_majoR +#undef Cdrskin_libburn_minoR +#undef Cdrskin_libburn_micrO +#define Cdrskin_libburn_majoR 0 +#define Cdrskin_libburn_minoR 4 +#define Cdrskin_libburn_micrO 0 +#endif +#ifdef Cdrskin_libburn_0_4_1 +#undef Cdrskin_libburn_majoR +#undef Cdrskin_libburn_minoR +#undef Cdrskin_libburn_micrO +#define Cdrskin_libburn_majoR 0 +#define Cdrskin_libburn_minoR 4 +#define Cdrskin_libburn_micrO 1 +#endif + + + #ifdef Cdrskin_libburn_from_pykix_svN #ifndef Cdrskin_oldfashioned_api_usE @@ -1870,13 +1904,26 @@ int Cdrpreskin_set_severities(struct CdrpreskiN *preskin, char *queue_severity, int Cdrpreskin_initialize_lib(struct CdrpreskiN *preskin, int flag) { - int ret; + int ret, major, minor, micro; ret= burn_initialize(); if(ret==0) { - fprintf(stderr,"cdrskin : FATAL : Initialization of libburn failed\n"); + fprintf(stderr,"cdrskin: FATAL : Initialization of libburn failed\n"); return(0); } + burn_version(&major, &minor, µ); + + /* <<< for testing only */ + /* major= 0; minor= 3; micro= 6; */ + + if(major