ext/cdio/rubycdio_wrap.c in rbcdio-0.01 vs ext/cdio/rubycdio_wrap.c in rbcdio-0.02

- old
+ new

@@ -1,29 +1,32 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.27 + * Version 1.3.31 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ -/*********************************************************************** - * +#define SWIGRUBY +/* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. - * - ************************************************************************/ + * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif +# if defined(__SUNPRO_CC) +# if (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) @@ -33,37 +36,61 @@ # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED -# if defined(__GNUC__) || defined(__ICC) -# define SWIGUNUSED __attribute__ ((unused)) +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif -/* exporting methods for Windows DLLs */ +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else -# define SWIGEXPORT +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL @@ -72,140 +99,122 @@ # else # define SWIGSTDCALL # endif #endif +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif -/* ruby.swg */ -/* Implementation : RUBY */ -#define SWIGRUBY 1 +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ -#include "ruby.h" +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) +# if (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif -/* Flags for pointer conversion */ -#define SWIG_POINTER_EXCEPTION 0x1 -#define SWIG_POINTER_OWN 0x1 -#define SWIG_POINTER_DISOWN 0x2 -#define SWIG_TRACK_OBJECTS 0x4 +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif -#define NUM2USHRT(n) (\ - (0 <= NUM2UINT(n) && NUM2UINT(n) <= USHRT_MAX)\ - ? (unsigned short) NUM2UINT(n) \ - : (rb_raise(rb_eArgError, "integer %d out of range of `unsigned short'",\ - NUM2UINT(n)), (short)0)\ -) +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif -#define NUM2SHRT(n) (\ - (SHRT_MIN <= NUM2INT(n) && NUM2INT(n) <= SHRT_MAX)\ - ? (short)NUM2INT(n)\ - : (rb_raise(rb_eArgError, "integer %d out of range of `short'",\ - NUM2INT(n)), (short)0)\ -) +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif -/* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */ -#ifndef NUM2LL -#define NUM2LL(x) NUM2LONG((x)) +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED #endif -#ifndef LL2NUM -#define LL2NUM(x) INT2NUM((long) (x)) -#endif -#ifndef ULL2NUM -#define ULL2NUM(x) UINT2NUM((unsigned long) (x)) -#endif -/* Ruby 1.7 doesn't (yet) define NUM2ULL() */ -#ifndef NUM2ULL -#ifdef HAVE_LONG_LONG -#define NUM2ULL(x) rb_num2ull((x)) -#else -#define NUM2ULL(x) NUM2ULONG(x) +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif -#endif -/* - * Need to be very careful about how these macros are defined, especially - * when compiling C++ code or C code with an ANSI C compiler. - * - * VALUEFUNC(f) is a macro used to typecast a C function that implements - * a Ruby method so that it can be passed as an argument to API functions - * like rb_define_method() and rb_define_singleton_method(). - * - * VOIDFUNC(f) is a macro used to typecast a C function that implements - * either the "mark" or "free" stuff for a Ruby Data object, so that it - * can be passed as an argument to API functions like Data_Wrap_Struct() - * and Data_Make_Struct(). - */ - -#ifdef __cplusplus -# ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */ -# define PROTECTFUNC(f) ((VALUE (*)()) f) -# define VALUEFUNC(f) ((VALUE (*)()) f) -# define VOIDFUNC(f) ((void (*)()) f) -# else -# ifndef ANYARGS /* These definitions should work for Ruby 1.6 */ -# define PROTECTFUNC(f) ((VALUE (*)()) f) -# define VALUEFUNC(f) ((VALUE (*)()) f) -# define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) -# else /* These definitions should work for Ruby 1.7+ */ -# define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f) -# define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f) -# define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) -# endif +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY # endif -#else -# define VALUEFUNC(f) (f) -# define VOIDFUNC(f) (f) #endif -typedef struct { - VALUE klass; - VALUE mImpl; - void (*mark)(void *); - void (*destroy)(void *); -} swig_class; +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif -/* Don't use for expressions have side effect */ -#ifndef RB_STRING_VALUE -#define RB_STRING_VALUE(s) (TYPE(s) == T_STRING ? (s) : (*(volatile VALUE *)&(s) = rb_str_to_str(s))) +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif #endif -#ifndef StringValue -#define StringValue(s) RB_STRING_VALUE(s) -#endif -#ifndef StringValuePtr -#define StringValuePtr(s) RSTRING(RB_STRING_VALUE(s))->ptr -#endif -#ifndef StringValueLen -#define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len -#endif -#ifndef SafeStringValue -#define SafeStringValue(v) do {\ - StringValue(v);\ - rb_check_safe_str(v);\ -} while (0) -#endif -#ifndef HAVE_RB_DEFINE_ALLOC_FUNC -#define rb_define_alloc_func(klass, func) rb_define_singleton_method((klass), "new", VALUEFUNC((func)), -1) -#define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new") +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE #endif -/* Contract support */ - -#define SWIG_contract_assert(expr, msg) if (!(expr)) { rb_raise(rb_eRuntimeError, (char *) msg ); } else - - -/*********************************************************************** +/* ----------------------------------------------------------------------------- * swigrun.swg * - * This file contains generic CAPI SWIG runtime support for pointer - * type checking. - * - ************************************************************************/ + * This file contains generic CAPI SWIG runtime support for pointer + * type checking. + * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ -#define SWIG_RUNTIME_VERSION "2" +#define SWIG_RUNTIME_VERSION "3" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) @@ -229,10 +238,151 @@ #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif +/* Generic buffer size */ +#ifndef SWIG_BUFFER_SIZE +# define SWIG_BUFFER_SIZE 1024 +#endif + +/* Flags for pointer conversions */ +#define SWIG_POINTER_DISOWN 0x1 + +/* Flags for new pointer objects */ +#define SWIG_POINTER_OWN 0x1 + + +/* + Flags/methods for returning states. + + The swig conversion methods, as ConvertPtr, return and integer + that tells if the conversion was successful or not. And if not, + an error code can be returned (see swigerrors.swg for the codes). + + Use the following macros/flags to set or process the returning + states. + + In old swig versions, you usually write code as: + + if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { + // success code + } else { + //fail code + } + + Now you can be more explicit as: + + int res = SWIG_ConvertPtr(obj,vptr,ty.flags); + if (SWIG_IsOK(res)) { + // success code + } else { + // fail code + } + + that seems to be the same, but now you can also do + + Type *ptr; + int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); + if (SWIG_IsOK(res)) { + // success code + if (SWIG_IsNewObj(res) { + ... + delete *ptr; + } else { + ... + } + } else { + // fail code + } + + I.e., now SWIG_ConvertPtr can return new objects and you can + identify the case and take care of the deallocation. Of course that + requires also to SWIG_ConvertPtr to return new result values, as + + int SWIG_ConvertPtr(obj, ptr,...) { + if (<obj is ok>) { + if (<need new object>) { + *ptr = <ptr to new allocated object>; + return SWIG_NEWOBJ; + } else { + *ptr = <ptr to old object>; + return SWIG_OLDOBJ; + } + } else { + return SWIG_BADOBJ; + } + } + + Of course, returning the plain '0(success)/-1(fail)' still works, but you can be + more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the + swig errors code. + + Finally, if the SWIG_CASTRANK_MODE is enabled, the result code + allows to return the 'cast rank', for example, if you have this + + int food(double) + int fooi(int); + + and you call + + food(1) // cast rank '1' (1 -> 1.0) + fooi(1) // cast rank '0' + + just use the SWIG_AddCast()/SWIG_CheckState() + + + */ +#define SWIG_OK (0) +#define SWIG_ERROR (-1) +#define SWIG_IsOK(r) (r >= 0) +#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) + +/* The CastRankLimit says how many bits are used for the cast rank */ +#define SWIG_CASTRANKLIMIT (1 << 8) +/* The NewMask denotes the object was created (using new/malloc) */ +#define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) +/* The TmpMask is for in/out typemaps that use temporal objects */ +#define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) +/* Simple returning values */ +#define SWIG_BADOBJ (SWIG_ERROR) +#define SWIG_OLDOBJ (SWIG_OK) +#define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) +#define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) +/* Check, add and del mask methods */ +#define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) +#define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) +#define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) +#define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) +#define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) +#define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) + + +/* Cast-Rank Mode */ +#if defined(SWIG_CASTRANK_MODE) +# ifndef SWIG_TypeRank +# define SWIG_TypeRank unsigned long +# endif +# ifndef SWIG_MAXCASTRANK /* Default cast allowed */ +# define SWIG_MAXCASTRANK (2) +# endif +# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) +# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) +SWIGINTERNINLINE int SWIG_AddCast(int r) { + return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; +} +SWIGINTERNINLINE int SWIG_CheckState(int r) { + return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; +} +#else /* no cast-rank mode */ +# define SWIG_AddCast +# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) +#endif + + + + #include <string.h> #ifdef __cplusplus extern "C" { #endif @@ -245,10 +395,11 @@ const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ + int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ @@ -267,11 +418,10 @@ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; - /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class<int>" == "Class<int >", etc. Return 0 when the two name types are equivalent, as in @@ -281,11 +431,11 @@ SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; - if (*f1 != *f2) return (int)(*f1 - *f2); + if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (l1 - f1) - (l2 - f2); } /* @@ -401,10 +551,11 @@ SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ + if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; @@ -431,11 +582,16 @@ } } cast = cast->next; } } - +SWIGRUNTIME void +SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { + SWIG_TypeClientData(ti, clientdata); + ti->owndata = 1; +} + /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. @@ -511,11 +667,10 @@ /* neither found a match */ return 0; } - /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { @@ -537,11 +692,11 @@ SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); - register unsigned char uu = 0; + register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else @@ -615,330 +770,682 @@ #ifdef __cplusplus } #endif -/*********************************************************************** - * rubytracking.swg - * - * This file contains support for tracking mappings from - * Ruby objects to C++ objects. This functionality is needed - * to implement mark functions for Ruby's mark and sweep - * garbage collector. - ************************************************************************/ - -/* Global Ruby hash table to store Trackings from C/C++ - structs to Ruby Objects. */ -static VALUE swig_ruby_trackings; - -/* Setup a Ruby hash table to store Trackings */ -static void SWIG_RubyInitializeTrackings() { - /* Create a ruby hash table to store Trackings from C++ - objects to Ruby objects. Also make sure to tell - the garabage collector about the hash table. */ - swig_ruby_trackings = rb_hash_new(); - rb_gc_register_address(&swig_ruby_trackings); -} - -/* Get a Ruby number to reference a pointer */ -static VALUE SWIG_RubyPtrToReference(void* ptr) { - /* We cast the pointer to an unsigned long - and then store a reference to it using - a Ruby number object. */ - - /* Convert the pointer to a Ruby number */ - unsigned long value = (unsigned long) ptr; - return LONG2NUM(value); -} - -/* Get a Ruby number to reference an object */ -static VALUE SWIG_RubyObjectToReference(VALUE object) { - /* We cast the object to an unsigned long - and then store a reference to it using - a Ruby number object. */ - - /* Convert the Object to a Ruby number */ - unsigned long value = (unsigned long) object; - return LONG2NUM(value); -} - -/* Get a Ruby object from a previously stored reference */ -static VALUE SWIG_RubyReferenceToObject(VALUE reference) { - /* The provided Ruby number object is a reference - to the Ruby object we want.*/ - - /* First convert the Ruby number to a C number */ - unsigned long value = NUM2LONG(reference); - return (VALUE) value; -} - -/* Add a Tracking from a C/C++ struct to a Ruby object */ -static void SWIG_RubyAddTracking(void* ptr, VALUE object) { - /* In a Ruby hash table we store the pointer and - the associated Ruby object. The trick here is - that we cannot store the Ruby object directly - if - we do then it cannot be garbage collected. So - instead we typecast it as a unsigned long and - convert it to a Ruby number object.*/ - - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); - - /* Get a reference to the Ruby object as a Ruby number */ - VALUE value = SWIG_RubyObjectToReference(object); - - /* Store the mapping to the global hash table. */ - rb_hash_aset(swig_ruby_trackings, key, value); -} - -/* Get the Ruby object that owns the specified C/C++ struct */ -static VALUE SWIG_RubyInstanceFor(void* ptr) { - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); - - /* Now lookup the value stored in the global hash table */ - VALUE value = rb_hash_aref(swig_ruby_trackings, key); - - if (value == Qnil) { - /* No object exists - return nil. */ - return Qnil; - } - else { - /* Convert this value to Ruby object */ - return SWIG_RubyReferenceToObject(value); - } +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + +#include <ruby.h> + +/* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */ +#ifndef NUM2LL +#define NUM2LL(x) NUM2LONG((x)) +#endif +#ifndef LL2NUM +#define LL2NUM(x) INT2NUM((long) (x)) +#endif +#ifndef ULL2NUM +#define ULL2NUM(x) UINT2NUM((unsigned long) (x)) +#endif + +/* Ruby 1.7 doesn't (yet) define NUM2ULL() */ +#ifndef NUM2ULL +#ifdef HAVE_LONG_LONG +#define NUM2ULL(x) rb_num2ull((x)) +#else +#define NUM2ULL(x) NUM2ULONG(x) +#endif +#endif + +/* RSTRING_LEN, etc are new in Ruby 1.9, but ->ptr and ->len no longer work */ +/* Define these for older versions so we can just write code the new way */ +#ifndef RSTRING_LEN +# define RSTRING_LEN(x) RSTRING(x)->len +#endif +#ifndef RSTRING_PTR +# define RSTRING_PTR(x) RSTRING(x)->ptr +#endif +#ifndef RARRAY_LEN +# define RARRAY_LEN(x) RARRAY(x)->len +#endif +#ifndef RARRAY_PTR +# define RARRAY_PTR(x) RARRAY(x)->ptr +#endif + +/* + * Need to be very careful about how these macros are defined, especially + * when compiling C++ code or C code with an ANSI C compiler. + * + * VALUEFUNC(f) is a macro used to typecast a C function that implements + * a Ruby method so that it can be passed as an argument to API functions + * like rb_define_method() and rb_define_singleton_method(). + * + * VOIDFUNC(f) is a macro used to typecast a C function that implements + * either the "mark" or "free" stuff for a Ruby Data object, so that it + * can be passed as an argument to API functions like Data_Wrap_Struct() + * and Data_Make_Struct(). + */ + +#ifdef __cplusplus +# ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */ +# define PROTECTFUNC(f) ((VALUE (*)()) f) +# define VALUEFUNC(f) ((VALUE (*)()) f) +# define VOIDFUNC(f) ((void (*)()) f) +# else +# ifndef ANYARGS /* These definitions should work for Ruby 1.6 */ +# define PROTECTFUNC(f) ((VALUE (*)()) f) +# define VALUEFUNC(f) ((VALUE (*)()) f) +# define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) +# else /* These definitions should work for Ruby 1.7+ */ +# define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f) +# define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f) +# define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) +# endif +# endif +#else +# define VALUEFUNC(f) (f) +# define VOIDFUNC(f) (f) +#endif + +/* Don't use for expressions have side effect */ +#ifndef RB_STRING_VALUE +#define RB_STRING_VALUE(s) (TYPE(s) == T_STRING ? (s) : (*(volatile VALUE *)&(s) = rb_str_to_str(s))) +#endif +#ifndef StringValue +#define StringValue(s) RB_STRING_VALUE(s) +#endif +#ifndef StringValuePtr +#define StringValuePtr(s) RSTRING_PTR(RB_STRING_VALUE(s)) +#endif +#ifndef StringValueLen +#define StringValueLen(s) RSTRING_LEN(RB_STRING_VALUE(s)) +#endif +#ifndef SafeStringValue +#define SafeStringValue(v) do {\ + StringValue(v);\ + rb_check_safe_str(v);\ +} while (0) +#endif + +#ifndef HAVE_RB_DEFINE_ALLOC_FUNC +#define rb_define_alloc_func(klass, func) rb_define_singleton_method((klass), "new", VALUEFUNC((func)), -1) +#define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new") +#endif + + +/* ----------------------------------------------------------------------------- + * error manipulation + * ----------------------------------------------------------------------------- */ + + +/* Define some additional error types */ +#define SWIG_ObjectPreviouslyDeletedError -100 + + +/* Define custom exceptions for errors that do not map to existing Ruby + exceptions. Note this only works for C++ since a global cannot be + initialized by a funtion in C. For C, fallback to rb_eRuntimeError.*/ + +SWIGINTERN VALUE +getNullReferenceError(void) { + static int init = 0; + static VALUE rb_eNullReferenceError ; + if (!init) { + init = 1; + rb_eNullReferenceError = rb_define_class("NullReferenceError", rb_eRuntimeError); + } + return rb_eNullReferenceError; +} + +SWIGINTERN VALUE +getObjectPreviouslyDeletedError(void) { + static int init = 0; + static VALUE rb_eObjectPreviouslyDeleted ; + if (!init) { + init = 1; + rb_eObjectPreviouslyDeleted = rb_define_class("ObjectPreviouslyDeleted", rb_eRuntimeError); + } + return rb_eObjectPreviouslyDeleted; +} + + +SWIGINTERN VALUE +SWIG_Ruby_ErrorType(int SWIG_code) { + VALUE type; + switch (SWIG_code) { + case SWIG_MemoryError: + type = rb_eNoMemError; + break; + case SWIG_IOError: + type = rb_eIOError; + break; + case SWIG_RuntimeError: + type = rb_eRuntimeError; + break; + case SWIG_IndexError: + type = rb_eIndexError; + break; + case SWIG_TypeError: + type = rb_eTypeError; + break; + case SWIG_DivisionByZero: + type = rb_eZeroDivError; + break; + case SWIG_OverflowError: + type = rb_eRangeError; + break; + case SWIG_SyntaxError: + type = rb_eSyntaxError; + break; + case SWIG_ValueError: + type = rb_eArgError; + break; + case SWIG_SystemError: + type = rb_eFatal; + break; + case SWIG_AttributeError: + type = rb_eRuntimeError; + break; + case SWIG_NullReferenceError: + type = getNullReferenceError(); + break; + case SWIG_ObjectPreviouslyDeletedError: + type = getObjectPreviouslyDeletedError(); + break; + case SWIG_UnknownError: + type = rb_eRuntimeError; + break; + default: + type = rb_eRuntimeError; + } + return type; } - -/* Remove a Tracking from a C/C++ struct to a Ruby object */ -static void SWIG_RubyRemoveTracking(void* ptr) { - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); - /* Define delete method - in C++ this could be marked as - static but unfortunately not in C. */ - VALUE delete_function = rb_intern("delete"); - /* Delete the object from the hash table by calling Ruby's - do this we need to call the Hash.delete method.*/ - rb_funcall(swig_ruby_trackings, delete_function, 1, key); -} + + +/* ----------------------------------------------------------------------------- + * See the LICENSE file for information on copyright, usage and redistribution + * of SWIG, and the README file for authors - http://www.swig.org/release.html. + * + * rubytracking.swg + * + * This file contains support for tracking mappings from + * Ruby objects to C++ objects. This functionality is needed + * to implement mark functions for Ruby's mark and sweep + * garbage collector. + * ----------------------------------------------------------------------------- */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Global Ruby hash table to store Trackings from C/C++ + structs to Ruby Objects. */ +static VALUE swig_ruby_trackings; -/* This is a helper method that unlinks a Ruby object from its - underlying C++ object. This is needed if the lifetime of the - Ruby object is longer than the C++ object */ -static void SWIG_RubyUnlinkObjects(void* ptr) { - VALUE object = SWIG_RubyInstanceFor(ptr); - - if (object != Qnil) { - DATA_PTR(object) = 0; - } -} +/* Global variable that stores a reference to the ruby + hash table delete function. */ +static ID swig_ruby_hash_delete = 0; -/* Common SWIG API */ -#define SWIG_ConvertPtr(obj, pp, type, flags) \ - SWIG_Ruby_ConvertPtr(obj, pp, type, flags) -#define SWIG_NewPointerObj(p, type, flags) \ - SWIG_Ruby_NewPointerObj(p, type, flags) -#define SWIG_MustGetPtr(p, type, argnum, flags) \ - SWIG_Ruby_MustGetPtr(p, type, argnum, flags) -#define SWIG_GetModule(clientdata) \ - SWIG_Ruby_GetModule() -#define SWIG_SetModule(clientdata, pointer) \ - SWIG_Ruby_SetModule(pointer) +/* Setup a Ruby hash table to store Trackings */ +SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) { + /* Create a ruby hash table to store Trackings from C++ + objects to Ruby objects. Also make sure to tell + the garabage collector about the hash table. */ + swig_ruby_trackings = rb_hash_new(); + rb_gc_register_address(&swig_ruby_trackings); + + /* Now store a reference to the hash table delete function + so that we only have to look it up once.*/ + swig_ruby_hash_delete = rb_intern("delete"); +} +/* Get a Ruby number to reference a pointer */ +SWIGRUNTIME VALUE SWIG_RubyPtrToReference(void* ptr) { + /* We cast the pointer to an unsigned long + and then store a reference to it using + a Ruby number object. */ + + /* Convert the pointer to a Ruby number */ + unsigned long value = (unsigned long) ptr; + return LONG2NUM(value); +} + +/* Get a Ruby number to reference an object */ +SWIGRUNTIME VALUE SWIG_RubyObjectToReference(VALUE object) { + /* We cast the object to an unsigned long + and then store a reference to it using + a Ruby number object. */ + + /* Convert the Object to a Ruby number */ + unsigned long value = (unsigned long) object; + return LONG2NUM(value); +} + +/* Get a Ruby object from a previously stored reference */ +SWIGRUNTIME VALUE SWIG_RubyReferenceToObject(VALUE reference) { + /* The provided Ruby number object is a reference + to the Ruby object we want.*/ + + /* First convert the Ruby number to a C number */ + unsigned long value = NUM2LONG(reference); + return (VALUE) value; +} + +/* Add a Tracking from a C/C++ struct to a Ruby object */ +SWIGRUNTIME void SWIG_RubyAddTracking(void* ptr, VALUE object) { + /* In a Ruby hash table we store the pointer and + the associated Ruby object. The trick here is + that we cannot store the Ruby object directly - if + we do then it cannot be garbage collected. So + instead we typecast it as a unsigned long and + convert it to a Ruby number object.*/ + + /* Get a reference to the pointer as a Ruby number */ + VALUE key = SWIG_RubyPtrToReference(ptr); + + /* Get a reference to the Ruby object as a Ruby number */ + VALUE value = SWIG_RubyObjectToReference(object); + + /* Store the mapping to the global hash table. */ + rb_hash_aset(swig_ruby_trackings, key, value); +} + +/* Get the Ruby object that owns the specified C/C++ struct */ +SWIGRUNTIME VALUE SWIG_RubyInstanceFor(void* ptr) { + /* Get a reference to the pointer as a Ruby number */ + VALUE key = SWIG_RubyPtrToReference(ptr); + + /* Now lookup the value stored in the global hash table */ + VALUE value = rb_hash_aref(swig_ruby_trackings, key); + + if (value == Qnil) { + /* No object exists - return nil. */ + return Qnil; + } + else { + /* Convert this value to Ruby object */ + return SWIG_RubyReferenceToObject(value); + } +} + +/* Remove a Tracking from a C/C++ struct to a Ruby object. It + is very important to remove objects once they are destroyed + since the same memory address may be reused later to create + a new object. */ +SWIGRUNTIME void SWIG_RubyRemoveTracking(void* ptr) { + /* Get a reference to the pointer as a Ruby number */ + VALUE key = SWIG_RubyPtrToReference(ptr); + + /* Delete the object from the hash table by calling Ruby's + do this we need to call the Hash.delete method.*/ + rb_funcall(swig_ruby_trackings, swig_ruby_hash_delete, 1, key); +} + +/* This is a helper method that unlinks a Ruby object from its + underlying C++ object. This is needed if the lifetime of the + Ruby object is longer than the C++ object */ +SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) { + VALUE object = SWIG_RubyInstanceFor(ptr); + + if (object != Qnil) { + DATA_PTR(object) = 0; + } +} + + +#ifdef __cplusplus +} +#endif + +/* ----------------------------------------------------------------------------- + * Ruby API portion that goes into the runtime + * ----------------------------------------------------------------------------- */ + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGINTERN VALUE +SWIG_Ruby_AppendOutput(VALUE target, VALUE o) { + if (NIL_P(target)) { + target = o; + } else { + if (TYPE(target) != T_ARRAY) { + VALUE o2 = target; + target = rb_ary_new(); + rb_ary_push(target, o2); + } + rb_ary_push(target, o); + } + return target; +} + +#ifdef __cplusplus +} +#endif + + +/* ----------------------------------------------------------------------------- + * See the LICENSE file for information on copyright, usage and redistribution + * of SWIG, and the README file for authors - http://www.swig.org/release.html. + * + * rubyrun.swg + * + * This file contains the runtime support for Ruby modules + * and includes code for managing global variables and pointer + * type checking. + * ----------------------------------------------------------------------------- */ + +/* For backward compatibility only */ +#define SWIG_POINTER_EXCEPTION 0 + +/* for raw pointers */ +#define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, 0) +#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, own) +#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Ruby_NewPointerObj(ptr, type, flags) +#define SWIG_AcquirePtr(ptr, own) SWIG_Ruby_AcquirePtr(ptr, own) +#define swig_owntype ruby_owntype + +/* for raw packed data */ +#define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags) +#define SWIG_NewPackedObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type) + +/* for class or struct pointers */ +#define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) +#define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) + +/* for C or C++ function pointers */ +#define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0) +#define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0) + +/* for C++ member pointers, ie, member methods */ +#define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty) +#define SWIG_NewMemberObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type) + + +/* Runtime API */ + +#define SWIG_GetModule(clientdata) SWIG_Ruby_GetModule() +#define SWIG_SetModule(clientdata, pointer) SWIG_Ruby_SetModule(pointer) + + +/* Error manipulation */ + +#define SWIG_ErrorType(code) SWIG_Ruby_ErrorType(code) +#define SWIG_Error(code, msg) rb_raise(SWIG_Ruby_ErrorType(code), msg) +#define SWIG_fail goto fail + + /* Ruby-specific SWIG API */ -#define SWIG_InitRuntime() \ - SWIG_Ruby_InitRuntime() -#define SWIG_define_class(ty) \ - SWIG_Ruby_define_class(ty) -#define SWIG_NewClassInstance(value, ty) \ - SWIG_Ruby_NewClassInstance(value, ty) -#define SWIG_MangleStr(value) \ - SWIG_Ruby_MangleStr(value) -#define SWIG_CheckConvert(value, ty) \ - SWIG_Ruby_CheckConvert(value, ty) -#define SWIG_NewPackedObj(ptr, sz, ty) \ - SWIG_Ruby_NewPackedObj(ptr, sz, ty) -#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \ - SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags) +#define SWIG_InitRuntime() SWIG_Ruby_InitRuntime() +#define SWIG_define_class(ty) SWIG_Ruby_define_class(ty) +#define SWIG_NewClassInstance(value, ty) SWIG_Ruby_NewClassInstance(value, ty) +#define SWIG_MangleStr(value) SWIG_Ruby_MangleStr(value) +#define SWIG_CheckConvert(value, ty) SWIG_Ruby_CheckConvert(value, ty) -/* rubydef.swg */ + +/* ----------------------------------------------------------------------------- + * pointers/data manipulation + * ----------------------------------------------------------------------------- */ + #ifdef __cplusplus extern "C" { +#if 0 +} /* cc-mode */ #endif +#endif +typedef struct { + VALUE klass; + VALUE mImpl; + void (*mark)(void *); + void (*destroy)(void *); + int trackObjects; +} swig_class; + + static VALUE _mSWIG = Qnil; static VALUE _cSWIG_Pointer = Qnil; static VALUE swig_runtime_data_type_pointer = Qnil; +SWIGRUNTIME VALUE +getExceptionClass(void) { + static int init = 0; + static VALUE rubyExceptionClass ; + if (!init) { + init = 1; + rubyExceptionClass = rb_const_get(_mSWIG, rb_intern("Exception")); + } + return rubyExceptionClass; +} + +/* This code checks to see if the Ruby object being raised as part + of an exception inherits from the Ruby class Exception. If so, + the object is simply returned. If not, then a new Ruby exception + object is created and that will be returned to Ruby.*/ +SWIGRUNTIME VALUE +SWIG_Ruby_ExceptionType(swig_type_info *desc, VALUE obj) { + VALUE exceptionClass = getExceptionClass(); + if (rb_obj_is_kind_of(obj, exceptionClass)) { + return obj; + } else { + return rb_exc_new3(rb_eRuntimeError, rb_obj_as_string(obj)); + } +} + /* Initialize Ruby runtime support */ -static void +SWIGRUNTIME void SWIG_Ruby_InitRuntime(void) { - if (_mSWIG == Qnil) { - _mSWIG = rb_define_module("SWIG"); - } + if (_mSWIG == Qnil) { + _mSWIG = rb_define_module("SWIG"); + } } /* Define Ruby class for C type */ -static void +SWIGRUNTIME void SWIG_Ruby_define_class(swig_type_info *type) { - VALUE klass; - char *klass_name = (char *) malloc(4 + strlen(type->name) + 1); - sprintf(klass_name, "TYPE%s", type->name); - if (NIL_P(_cSWIG_Pointer)) { - _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject); - rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new"); - } - klass = rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer); - free((void *) klass_name); + VALUE klass; + char *klass_name = (char *) malloc(4 + strlen(type->name) + 1); + sprintf(klass_name, "TYPE%s", type->name); + if (NIL_P(_cSWIG_Pointer)) { + _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject); + rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new"); + } + klass = rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer); + free((void *) klass_name); } /* Create a new pointer object */ -static VALUE +SWIGRUNTIME VALUE SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags) { - int own = flags & SWIG_POINTER_OWN; - int track = flags & SWIG_TRACK_OBJECTS; - - char *klass_name; - swig_class *sklass; - VALUE klass; - VALUE obj; - - if (!ptr) - return Qnil; - - /* Have we already wrapped this pointer? */ - if (track) { - obj = SWIG_RubyInstanceFor(ptr); - if (obj != Qnil) { - return obj; - } - } + int own = flags & SWIG_POINTER_OWN; + + char *klass_name; + swig_class *sklass; + VALUE klass; + VALUE obj; + + if (!ptr) + return Qnil; + + if (type->clientdata) { + sklass = (swig_class *) type->clientdata; - if (type->clientdata) { - sklass = (swig_class *) type->clientdata; - obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark), (own ? VOIDFUNC(sklass->destroy) : 0), ptr); - } else { - klass_name = (char *) malloc(4 + strlen(type->name) + 1); - sprintf(klass_name, "TYPE%s", type->name); - klass = rb_const_get(_mSWIG, rb_intern(klass_name)); - free((void *) klass_name); - obj = Data_Wrap_Struct(klass, 0, 0, ptr); + /* Are we tracking this class and have we already returned this Ruby object? */ + if (sklass->trackObjects) { + obj = SWIG_RubyInstanceFor(ptr); + + /* Check the object's type and make sure it has the correct type. + It might not in cases where methods do things like + downcast methods. */ + if (obj != Qnil) { + VALUE value = rb_iv_get(obj, "__swigtype__"); + char* type_name = RSTRING_PTR(value); + + if (strcmp(type->name, type_name) == 0) { + return obj; + } + } } - rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name)); - - /* Keep track of this object if necessary */ - if (track) { - SWIG_RubyAddTracking(ptr, obj); + + /* Create a new Ruby object */ + obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark), (own ? VOIDFUNC(sklass->destroy) : 0), ptr); + + /* If tracking is on for this class then track this object. */ + if (sklass->trackObjects) { + SWIG_RubyAddTracking(ptr, obj); } - - return obj; + } else { + klass_name = (char *) malloc(4 + strlen(type->name) + 1); + sprintf(klass_name, "TYPE%s", type->name); + klass = rb_const_get(_mSWIG, rb_intern(klass_name)); + free((void *) klass_name); + obj = Data_Wrap_Struct(klass, 0, 0, ptr); + } + rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name)); + + return obj; } /* Create a new class instance (always owned) */ -static VALUE +SWIGRUNTIME VALUE SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type) { - VALUE obj; - swig_class *sklass = (swig_class *) type->clientdata; - obj = Data_Wrap_Struct(klass, VOIDFUNC(sklass->mark), VOIDFUNC(sklass->destroy), 0); - rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name)); - return obj; + VALUE obj; + swig_class *sklass = (swig_class *) type->clientdata; + obj = Data_Wrap_Struct(klass, VOIDFUNC(sklass->mark), VOIDFUNC(sklass->destroy), 0); + rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name)); + return obj; } /* Get type mangle from class name */ -static SWIGINLINE char * +SWIGRUNTIMEINLINE char * SWIG_Ruby_MangleStr(VALUE obj) { VALUE stype = rb_iv_get(obj, "__swigtype__"); return StringValuePtr(stype); } +/* Acquire a pointer value */ +typedef void (*ruby_owntype)(void*); + +SWIGRUNTIME ruby_owntype +SWIG_Ruby_AcquirePtr(VALUE obj, ruby_owntype own) { + if (obj) { + ruby_owntype oldown = RDATA(obj)->dfree; + RDATA(obj)->dfree = own; + return oldown; + } else { + return 0; + } +} + /* Convert a pointer value */ -static int -SWIG_Ruby_ConvertPtr(VALUE obj, void **ptr, swig_type_info *ty, int flags) +SWIGRUNTIME int +SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags, ruby_owntype *own) { char *c; swig_cast_info *tc; + void *vptr = 0; /* Grab the pointer */ if (NIL_P(obj)) { *ptr = 0; - return 0; + return SWIG_OK; } else { - Data_Get_Struct(obj, void, *ptr); + if (TYPE(obj) != T_DATA) { + return SWIG_ERROR; + } + Data_Get_Struct(obj, void, vptr); } + if (own) *own = RDATA(obj)->dfree; + /* Check to see if the input object is giving up ownership of the underlying C struct or C++ object. If so then we need to reset the destructor since the Ruby object no longer owns the underlying C++ object.*/ if (flags & SWIG_POINTER_DISOWN) { - if (flags & SWIG_TRACK_OBJECTS) { - /* We are tracking objects. Thus we change the destructor - * to SWIG_RubyRemoveTracking. This allows us to - * remove the mapping from the C++ to Ruby object - * when the Ruby object is garbage collected. If we don't - * do this, then it is possible we will return a reference - * to a Ruby object that no longer exists thereby crashing Ruby. */ - RDATA(obj)->dfree = SWIG_RubyRemoveTracking; - } else { + /* Is tracking on for this class? */ + int track = 0; + if (ty && ty->clientdata) { + swig_class *sklass = (swig_class *) ty->clientdata; + track = sklass->trackObjects; + } + + if (track) { + /* We are tracking objects for this class. Thus we change the destructor + * to SWIG_RubyRemoveTracking. This allows us to + * remove the mapping from the C++ to Ruby object + * when the Ruby object is garbage collected. If we don't + * do this, then it is possible we will return a reference + * to a Ruby object that no longer exists thereby crashing Ruby. */ + RDATA(obj)->dfree = SWIG_RubyRemoveTracking; + } else { RDATA(obj)->dfree = 0; } } /* Do type-checking if type info was provided */ if (ty) { if (ty->clientdata) { - if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass)) { - if (*ptr == 0) - rb_raise(rb_eRuntimeError, "This %s already released", ty->str); - return 0; + if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass)) { + if (vptr == 0) { + /* The object has already been deleted */ + return SWIG_ObjectPreviouslyDeletedError; } + *ptr = vptr; + return SWIG_OK; + } } if ((c = SWIG_MangleStr(obj)) == NULL) { - if (flags & SWIG_POINTER_EXCEPTION) - rb_raise(rb_eTypeError, "Expected %s", ty->str); - else - return -1; + return SWIG_ERROR; } tc = SWIG_TypeCheck(c, ty); if (!tc) { - if (flags & SWIG_POINTER_EXCEPTION) - rb_raise(rb_eTypeError, "Expected %s", ty->str); - else - return -1; + return SWIG_ERROR; } - *ptr = SWIG_TypeCast(tc, *ptr); + *ptr = SWIG_TypeCast(tc, vptr); + } else { + *ptr = vptr; } - return 0; + + return SWIG_OK; } -/* Convert a pointer value, signal an exception on a type mismatch */ -static SWIGINLINE void * -SWIG_Ruby_MustGetPtr(VALUE obj, swig_type_info *ty, int argnum, int flags) -{ - void *result; - SWIG_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION); - return result; -} - /* Check convert */ -static SWIGINLINE int +SWIGRUNTIMEINLINE int SWIG_Ruby_CheckConvert(VALUE obj, swig_type_info *ty) { char *c = SWIG_MangleStr(obj); - if (!c) - return 0; + if (!c) return 0; return SWIG_TypeCheck(c,ty) != 0; } -static VALUE +SWIGRUNTIME VALUE SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; *(r++) = '_'; @@ -946,12 +1453,12 @@ strcpy(r, type->name); return rb_str_new2(result); } /* Convert a packed value value */ -static void -SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty, int flags) { +SWIGRUNTIME int +SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) { swig_cast_info *tc; const char *c; if (TYPE(obj) != T_STRING) goto type_error; c = StringValuePtr(obj); @@ -961,49 +1468,62 @@ c = SWIG_UnpackData(c, ptr, sz); if (ty) { tc = SWIG_TypeCheck(c, ty); if (!tc) goto type_error; } - return; + return SWIG_OK; -type_error: - - if (flags) { - if (ty) { - rb_raise(rb_eTypeError, "Type error. Expected %s", ty->name); - } else { - rb_raise(rb_eTypeError, "Expected a pointer"); - } - } + type_error: + return SWIG_ERROR; } -static swig_module_info *SWIG_Ruby_GetModule() { - VALUE pointer; - swig_module_info *ret = 0; +SWIGRUNTIME swig_module_info * +SWIG_Ruby_GetModule(void) +{ + VALUE pointer; + swig_module_info *ret = 0; + VALUE verbose = rb_gv_get("VERBOSE"); - /* first check if pointer already created */ - pointer = rb_gv_get("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME); - if (pointer != Qnil) { - Data_Get_Struct(pointer, swig_module_info, ret); - } - return ret; + /* temporarily disable warnings, since the pointer check causes warnings with 'ruby -w' */ + rb_gv_set("VERBOSE", Qfalse); + + /* first check if pointer already created */ + pointer = rb_gv_get("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME); + if (pointer != Qnil) { + Data_Get_Struct(pointer, swig_module_info, ret); + } + + /* reinstate warnings */ + rb_gv_set("VERBOSE", verbose); + return ret; } -static void SWIG_Ruby_SetModule(swig_module_info *pointer) { - /* register a new class */ - VALUE cl = rb_define_class("swig_runtime_data", rb_cObject); - /* create and store the structure pointer to a global variable */ - swig_runtime_data_type_pointer = Data_Wrap_Struct(cl, 0, 0, pointer); - rb_define_readonly_variable("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, &swig_runtime_data_type_pointer); +SWIGRUNTIME void +SWIG_Ruby_SetModule(swig_module_info *pointer) +{ + /* register a new class */ + VALUE cl = rb_define_class("swig_runtime_data", rb_cObject); + /* create and store the structure pointer to a global variable */ + swig_runtime_data_type_pointer = Data_Wrap_Struct(cl, 0, 0, pointer); + rb_define_readonly_variable("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, &swig_runtime_data_type_pointer); } #ifdef __cplusplus +#if 0 +{ /* cc-mode */ +#endif } #endif +#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) + +#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else + + + /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_Buf_triple_t swig_types[0] #define SWIGTYPE_p_CdIo_t swig_types[1] #define SWIGTYPE_p_HWInfo_t swig_types[2] @@ -1012,29 +1532,30 @@ #define SWIGTYPE_p_char swig_types[5] #define SWIGTYPE_p_int swig_types[6] #define SWIGTYPE_p_long swig_types[7] #define SWIGTYPE_p_off_t swig_types[8] #define SWIGTYPE_p_unsigned_int swig_types[9] -#define SWIGTYPE_p_unsigned_long swig_types[10] -static swig_type_info *swig_types[12]; -static swig_module_info swig_module = {swig_types, 11, 0, 0, 0, 0}; +static swig_type_info *swig_types[11]; +static swig_module_info swig_module = {swig_types, 10, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #define SWIG_init Init_rubycdio #define SWIG_name "Rubycdio" static VALUE mRubycdio; -static void SWIG_AsVal(VALUE obj, int *val) -{ - *val = (int) NUM2INT(obj); -} +#define SWIGVERSION 0x010331 +#define SWIG_VERSION SWIGVERSION +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + /* Includes the header in the wrapper code */ #include <cdio/cdio.h> #include <cdio/audio.h> #include <cdio/cd_types.h> @@ -1122,26 +1643,199 @@ } } #endif /* LIBCDIO_VERSION_NUM <= 76 */ +#include <limits.h> +#ifndef LLONG_MIN +# define LLONG_MIN LONG_LONG_MIN +#endif +#ifndef LLONG_MAX +# define LLONG_MAX LONG_LONG_MAX +#endif +#ifndef ULLONG_MAX +# define ULLONG_MAX ULONG_LONG_MAX +#endif + + + #define SWIG_From_long LONG2NUM + + +SWIGINTERNINLINE VALUE +SWIG_From_int (int value) +{ + return SWIG_From_long (value); +} + + +SWIGINTERN VALUE +SWIG_ruby_failed(void) +{ + return Qnil; +} + + +/*@SWIG:%ruby_aux_method@*/ +SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args) +{ + VALUE obj = args[0]; + VALUE type = TYPE(obj); + long *res = (long *)(args[1]); + *res = type == T_FIXNUM ? NUM2LONG(obj) : rb_big2long(obj); + return obj; +} +/*@SWIG@*/ + +SWIGINTERN int +SWIG_AsVal_long (VALUE obj, long* val) +{ + VALUE type = TYPE(obj); + if ((type == T_FIXNUM) || (type == T_BIGNUM)) { + long v; + VALUE a[2]; + a[0] = obj; + a[1] = (VALUE)(&v); + if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2LONG), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { + if (val) *val = v; + return SWIG_OK; + } + } + return SWIG_TypeError; +} + + +SWIGINTERN int +SWIG_AsVal_int (VALUE obj, int *val) +{ + long v; + int res = SWIG_AsVal_long (obj, &v); + if (SWIG_IsOK(res)) { + if ((v < INT_MIN || v > INT_MAX)) { + return SWIG_OverflowError; + } else { + if (val) *val = (int)(v); + } + } + return res; +} + + +/*@SWIG:%ruby_aux_method@*/ +SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args) +{ + VALUE obj = args[0]; + VALUE type = TYPE(obj); + unsigned long *res = (unsigned long *)(args[1]); + *res = type == T_FIXNUM ? NUM2ULONG(obj) : rb_big2ulong(obj); + return obj; +} +/*@SWIG@*/ + +SWIGINTERN int +SWIG_AsVal_unsigned_SS_long (VALUE obj, unsigned long *val) +{ + VALUE type = TYPE(obj); + if ((type == T_FIXNUM) || (type == T_BIGNUM)) { + unsigned long v; + VALUE a[2]; + a[0] = obj; + a[1] = (VALUE)(&v); + if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { + if (val) *val = v; + return SWIG_OK; + } + } + return SWIG_TypeError; +} + + +SWIGINTERN int +SWIG_AsVal_unsigned_SS_int (VALUE obj, unsigned int *val) +{ + unsigned long v; + int res = SWIG_AsVal_unsigned_SS_long (obj, &v); + if (SWIG_IsOK(res)) { + if ((v > UINT_MAX)) { + return SWIG_OverflowError; + } else { + if (val) *val = (unsigned int)(v); + } + } + return res; +} + + +SWIGINTERN swig_type_info* +SWIG_pchar_descriptor(void) +{ + static int init = 0; + static swig_type_info* info = 0; + if (!init) { + info = SWIG_TypeQuery("_p_char"); + init = 1; + } + return info; +} + + +SWIGINTERN int +SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc) +{ + if (TYPE(obj) == T_STRING) { + + + + char *cstr = STR2CSTR(obj); + + size_t size = RSTRING_LEN(obj) + 1; + if (cptr) { + if (alloc) { + if (*alloc == SWIG_NEWOBJ) { + *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size)); + } else { + *cptr = cstr; + *alloc = SWIG_OLDOBJ; + } + } + } + if (psize) *psize = size; + return SWIG_OK; + } else { + swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); + if (pchar_descriptor) { + void* vptr = 0; + if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { + if (cptr) *cptr = (char *)vptr; + if (psize) *psize = vptr ? (strlen((char*)vptr) + 1) : 0; + if (alloc) *alloc = SWIG_OLDOBJ; + return SWIG_OK; + } + } + } + return SWIG_TypeError; +} + + + + + #ifdef __cplusplus extern "C" { #endif -#ifdef HAVE_SYS_TIME_H -# include <sys/time.h> -struct timeval rb_time_timeval(VALUE); -#endif +#include "rubyio.h" #ifdef __cplusplus } #endif #ifdef __cplusplus extern "C" { #endif -#include "rubyio.h" +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +struct timeval rb_time_timeval(VALUE); +#endif #ifdef __cplusplus } #endif @@ -1161,10 +1855,58 @@ size_t size; driver_return_code_t drc; } Buf_triple_t; +SWIGINTERNINLINE VALUE +SWIG_FromCharPtrAndSize(const char* carray, size_t size) +{ + if (carray) { + if (size > LONG_MAX) { + swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); + return pchar_descriptor ? + SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : Qnil; + } else { + return rb_str_new(carray, (long)(size)); + } + } else { + return Qnil; + } +} + + +SWIGINTERNINLINE VALUE +SWIG_FromCharPtr(const char *cptr) +{ + return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); +} + + +SWIGINTERNINLINE int +SWIG_AsVal_size_t (VALUE obj, size_t *val) +{ + unsigned long v; + int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = (size_t)(v); + return res; +} + + +SWIGINTERNINLINE VALUE +SWIG_From_unsigned_SS_long (unsigned long value) +{ + return ULONG2NUM(value); +} + + +SWIGINTERNINLINE VALUE +SWIG_From_size_t (size_t value) +{ + return SWIG_From_unsigned_SS_long ((unsigned long)(value)); +} + + Buf_triple_t read_cd(const CdIo_t *p_cdio, size_t i_size) { Buf_triple_t buf; buf.data = calloc(1, i_size); buf.size = cdio_read(p_cdio, buf.data, i_size); @@ -1261,10 +2003,17 @@ } return buf; } +SWIGINTERNINLINE VALUE +SWIG_From_unsigned_SS_int (unsigned int value) +{ + return SWIG_From_unsigned_SS_long (value); +} + + char *get_track_msf(const CdIo_t *p_cdio, track_t i_track) { msf_t msf; if (!cdio_get_track_msf( p_cdio, i_track, &msf )) { @@ -1284,25 +2033,10 @@ typedef char ** DeviceList_t; -static VALUE output_helper(VALUE target, VALUE o) { - if (NIL_P(target)) { - target = o; - } else { - if (TYPE(target) != T_ARRAY) { - VALUE o2 = target; - target = rb_ary_new(); - rb_ary_push(target, o2); - } - rb_ary_push(target, o); - } - return target; -} - - driver_return_code_t close_tray(const char *psz_drive, driver_id_t p_driver_id, driver_id_t *p_out_driver_id) { *p_out_driver_id = p_driver_id; @@ -1345,10 +2079,34 @@ CdIo_t **pp_cdio = &p_cdio; return cdio_eject_media (pp_cdio); } +SWIGINTERN int +SWIG_AsCharArray(VALUE obj, char *val, size_t size) +{ + char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ; + int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc); + if (SWIG_IsOK(res)) { + if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize; + if (csize <= size) { + if (val) { + if (csize) memcpy(val, cptr, csize*sizeof(char)); + if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char)); + } + if (alloc == SWIG_NEWOBJ) { + free((char*)cptr); + res = SWIG_DelNewMask(res); + } + return res; + } + if (alloc == SWIG_NEWOBJ) free((char*)cptr); + } + return SWIG_TypeError; +} + + char * get_default_device_driver(driver_id_t driver_id, driver_id_t *p_out_driver_id) { *p_out_driver_id = driver_id; return cdio_get_default_device_driver(p_out_driver_id); @@ -1360,10 +2118,30 @@ *p_out_driver_id = driver_id; return cdio_get_devices_ret (p_out_driver_id); } +SWIGINTERN int +SWIG_AsVal_bool (VALUE obj, bool *val) +{ + if (obj == Qtrue) { + if (val) *val = true; + return SWIG_OK; + } else if (obj == Qfalse) { + if (val) *val = false; + return SWIG_OK; + } else { + int res = 0; + if (SWIG_AsVal_int (obj, &res) == SWIG_OK) { + if (val) *val = res ? true : false; + return SWIG_OK; + } + } + return SWIG_TypeError; +} + + DeviceList_t get_devices_with_cap (unsigned int capabilities, bool b_any) { /* FIXME: ? libcdio allows one to specify a list (char **) of devices to search. Don't know how to do that via SWIG though. */ return cdio_get_devices_with_cap (NULL, (cdio_fs_anal_t) capabilities, @@ -1456,1511 +2234,2374 @@ if (CDIO_DISC_MODE_ERROR == discmode) return NULL; return discmode2str[discmode]; } -static VALUE +SWIGINTERN VALUE _wrap_cdio_read_sectors(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - void *arg2 = (void *) 0 ; - lsn_t arg3 ; - cdio_read_mode_t arg4 ; - unsigned int arg5 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 5) || (argc > 5)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - SWIG_ConvertPtr(argv[1], (void **) &arg2, 0, SWIG_POINTER_EXCEPTION|0); - arg3 = NUM2INT(argv[2]); - arg4 = (cdio_read_mode_t) NUM2INT(argv[3]); - arg5 = NUM2UINT(argv[4]); - result = (driver_return_code_t)cdio_read_sectors((CdIo_t const *)arg1,arg2,arg3,arg4,arg5); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + void *arg2 = (void *) 0 ; + lsn_t arg3 ; + cdio_read_mode_t arg4 ; + unsigned int arg5 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int res2 ; + int val3 ; + int ecode3 = 0 ; + int val4 ; + int ecode4 = 0 ; + unsigned int val5 ; + int ecode5 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 5) || (argc > 5)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_read_sectors" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + res2 = SWIG_ConvertPtr(argv[1],SWIG_as_voidptrptr(&arg2), 0, 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cdio_read_sectors" "', argument " "2"" of type '" "void *""'"); + } + ecode3 = SWIG_AsVal_int(argv[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cdio_read_sectors" "', argument " "3"" of type '" "lsn_t""'"); + } + arg3 = (lsn_t)(val3); + ecode4 = SWIG_AsVal_int(argv[3], &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cdio_read_sectors" "', argument " "4"" of type '" "cdio_read_mode_t""'"); + } + arg4 = (cdio_read_mode_t)(val4); + ecode5 = SWIG_AsVal_unsigned_SS_int(argv[4], &val5); + if (!SWIG_IsOK(ecode5)) { + SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cdio_read_sectors" "', argument " "5"" of type '" "unsigned int""'"); + } + arg5 = (unsigned int)(val5); + result = (driver_return_code_t)cdio_read_sectors((CdIo_t const *)arg1,arg2,arg3,arg4,arg5); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_cdio_eject_media_drive(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - result = (driver_return_code_t)cdio_eject_media_drive((char const *)arg1); - - vresult = INT2NUM(result); - return vresult; + char *arg1 = (char *) 0 ; + driver_return_code_t result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_eject_media_drive" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + result = (driver_return_code_t)cdio_eject_media_drive((char const *)arg1); + vresult = SWIG_From_long((long)(result)); + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_audio_pause(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_return_code_t)cdio_audio_pause(arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_audio_pause" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_return_code_t)cdio_audio_pause(arg1); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_audio_play_lsn(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t arg2 ; - lsn_t arg3 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 3) || (argc > 3)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - arg3 = NUM2INT(argv[2]); - result = (driver_return_code_t)audio_play_lsn(arg1,arg2,arg3); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t arg2 ; + lsn_t arg3 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int val3 ; + int ecode3 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 3) || (argc > 3)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "audio_play_lsn" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "audio_play_lsn" "', argument " "2"" of type '" "lsn_t""'"); + } + arg2 = (lsn_t)(val2); + ecode3 = SWIG_AsVal_int(argv[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "audio_play_lsn" "', argument " "3"" of type '" "lsn_t""'"); + } + arg3 = (lsn_t)(val3); + result = (driver_return_code_t)audio_play_lsn(arg1,arg2,arg3); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_audio_resume(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_return_code_t)cdio_audio_resume(arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_audio_resume" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_return_code_t)cdio_audio_resume(arg1); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_audio_stop(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_return_code_t)cdio_audio_stop(arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_audio_stop" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_return_code_t)cdio_audio_stop(arg1); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } swig_class cBuf_triple_t; -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_data_set(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - char *arg2 = (char *) 0 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - arg2 = StringValuePtr(argv[0]); - { - if (arg1->data) free((char*)arg1->data); - if (arg2) { - arg1->data = (char *) malloc(strlen(arg2)+1); - strcpy((char*)arg1->data,arg2); - } else { - arg1->data = 0; - } - } - return Qnil; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + char *arg2 = (char *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + int res2 ; + char *buf2 = 0 ; + int alloc2 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "data" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "data" "', argument " "2"" of type '" "char *""'"); + } + arg2 = (char *)(buf2); + if (arg1->data) free((char*)arg1->data); + if (arg2) { + size_t size = strlen((const char *)(arg2)) + 1; + arg1->data = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size)); + } else { + arg1->data = 0; + } + if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); + return Qnil; +fail: + if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_data_get(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - result = (char *) ((arg1)->data); - - vresult = rb_str_new2(result); - return vresult; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "data" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + result = (char *) ((arg1)->data); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_size_set(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - size_t arg2 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - arg2 = NUM2ULONG(argv[0]); - if (arg1) (arg1)->size = arg2; - - return Qnil; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + size_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + size_t val2 ; + int ecode2 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "size" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + ecode2 = SWIG_AsVal_size_t(argv[0], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "size" "', argument " "2"" of type '" "size_t""'"); + } + arg2 = (size_t)(val2); + if (arg1) (arg1)->size = arg2; + + return Qnil; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_size_get(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - size_t result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - result = ((arg1)->size); - - vresult = UINT2NUM(result); - return vresult; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + size_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "size" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + result = ((arg1)->size); + vresult = SWIG_From_size_t((size_t)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_drc_set(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - driver_return_code_t arg2 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - arg2 = NUM2LONG(argv[0]); - if (arg1) (arg1)->drc = arg2; - - return Qnil; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + driver_return_code_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + long val2 ; + int ecode2 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "drc" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + ecode2 = SWIG_AsVal_long(argv[0], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "drc" "', argument " "2"" of type '" "driver_return_code_t""'"); + } + arg2 = (driver_return_code_t)(val2); + if (arg1) (arg1)->drc = arg2; + + return Qnil; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_drc_get(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Buf_triple_t, 0); - result = (driver_return_code_t) ((arg1)->drc); - - vresult = INT2NUM(result); - return vresult; + Buf_triple_t *arg1 = (Buf_triple_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Buf_triple_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "drc" "', argument " "1"" of type '" "Buf_triple_t *""'"); + } + arg1 = (Buf_triple_t *)(argp1); + result = (driver_return_code_t) ((arg1)->drc); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } #ifdef HAVE_RB_DEFINE_ALLOC_FUNC -static VALUE +SWIGINTERN VALUE _wrap_Buf_triple_t_allocate(VALUE self) { #else - static VALUE - _wrap_Buf_triple_t_allocate(int argc, VALUE *argv, VALUE self) { + SWIGINTERN VALUE + _wrap_Buf_triple_t_allocate(int argc, VALUE *argv, VALUE self) { #endif - - - VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Buf_triple_t); + + + VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Buf_triple_t); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC - rb_obj_call_init(vresult, argc, argv); + rb_obj_call_init(vresult, argc, argv); #endif - return vresult; - } - + return vresult; + } + -static VALUE +SWIGINTERN VALUE _wrap_new_Buf_triple_t(int argc, VALUE *argv, VALUE self) { - Buf_triple_t *result; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - result = (Buf_triple_t *)(Buf_triple_t *) calloc(1, sizeof(Buf_triple_t)); - DATA_PTR(self) = result; - - return self; + Buf_triple_t *result = 0 ; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + result = (Buf_triple_t *)(Buf_triple_t *) calloc(1, sizeof(Buf_triple_t));DATA_PTR(self) = result; + + return self; +fail: + return Qnil; } -static void +SWIGINTERN void free_Buf_triple_t(Buf_triple_t *arg1) { free((char *) arg1); } -static VALUE +SWIGINTERN VALUE _wrap_lseek(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - off_t arg2 ; - int arg3 = (int) SEEK_SET ; - off_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 3)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - { - off_t * ptr; - SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_off_t, 0); - if (ptr) arg2 = *ptr; + CdIo_t *arg1 = (CdIo_t *) 0 ; + off_t arg2 ; + int arg3 = (int) SEEK_SET ; + off_t result; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 ; + int res2 = 0 ; + int val3 ; + int ecode3 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 3)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_lseek" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + { + res2 = SWIG_ConvertPtr(argv[1], &argp2, SWIGTYPE_p_off_t, 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cdio_lseek" "', argument " "2"" of type '" "off_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cdio_lseek" "', argument " "2"" of type '" "off_t""'"); + } else { + arg2 = *((off_t *)(argp2)); } - if (argc > 2) { - arg3 = NUM2INT(argv[2]); - } - result = cdio_lseek((CdIo_t const *)arg1,arg2,arg3); - - { - off_t * resultptr; - resultptr = (off_t *) malloc(sizeof(off_t)); - memmove(resultptr, &result, sizeof(off_t)); - vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_off_t, 1); - } - return vresult; + } + if (argc > 2) { + ecode3 = SWIG_AsVal_int(argv[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cdio_lseek" "', argument " "3"" of type '" "int""'"); + } + arg3 = (int)(val3); + } + result = cdio_lseek((CdIo_t const *)arg1,arg2,arg3); + vresult = SWIG_NewPointerObj((off_t *)memcpy((off_t *)malloc(sizeof(off_t)),&result,sizeof(off_t)), SWIGTYPE_p_off_t, SWIG_POINTER_OWN | 0 ); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_read_cd(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - size_t arg2 ; - Buf_triple_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2ULONG(argv[1]); - result = read_cd((CdIo_t const *)arg1,arg2); - - { - if (!(&result)->data) - return Qnil; - else { - VALUE data_triple = rb_ary_new(); - rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->drc)); - free((&result)->data); - return data_triple; - } - + CdIo_t *arg1 = (CdIo_t *) 0 ; + size_t arg2 ; + Buf_triple_t result; + void *argp1 = 0 ; + int res1 = 0 ; + size_t val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "read_cd" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_size_t(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "read_cd" "', argument " "2"" of type '" "size_t""'"); + } + arg2 = (size_t)(val2); + result = read_cd((CdIo_t const *)arg1,arg2); + { + if (!(&result)->data) + return Qnil; + else { + VALUE data_triple = rb_ary_new(); + rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->drc)); + free((&result)->data); + return data_triple; } - return vresult; + + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_read_sectors(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t arg2 ; - cdio_read_mode_t arg3 ; - size_t arg4 ; - Buf_triple_t result; - VALUE vresult = Qnil; - - if ((argc < 4) || (argc > 4)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - arg3 = (cdio_read_mode_t) NUM2INT(argv[2]); - arg4 = NUM2ULONG(argv[3]); - result = read_sectors((CdIo_t const *)arg1,arg2,arg3,arg4); - - { - if (!(&result)->data) - return Qnil; - else { - VALUE data_triple = rb_ary_new(); - rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->drc)); - free((&result)->data); - return data_triple; - } - + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t arg2 ; + cdio_read_mode_t arg3 ; + size_t arg4 ; + Buf_triple_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int val3 ; + int ecode3 = 0 ; + size_t val4 ; + int ecode4 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 4) || (argc > 4)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "read_sectors" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "read_sectors" "', argument " "2"" of type '" "lsn_t""'"); + } + arg2 = (lsn_t)(val2); + ecode3 = SWIG_AsVal_int(argv[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "read_sectors" "', argument " "3"" of type '" "cdio_read_mode_t""'"); + } + arg3 = (cdio_read_mode_t)(val3); + ecode4 = SWIG_AsVal_size_t(argv[3], &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "read_sectors" "', argument " "4"" of type '" "size_t""'"); + } + arg4 = (size_t)(val4); + result = read_sectors((CdIo_t const *)arg1,arg2,arg3,arg4); + { + if (!(&result)->data) + return Qnil; + else { + VALUE data_triple = rb_ary_new(); + rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->drc)); + free((&result)->data); + return data_triple; } - return vresult; + + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_read_data_bytes(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t arg2 ; - int16_t arg3 ; - size_t arg4 ; - Buf_triple_t result; - VALUE vresult = Qnil; - - if ((argc < 4) || (argc > 4)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - arg3 = NUM2INT(argv[2]); - arg4 = NUM2ULONG(argv[3]); - result = read_data_bytes((CdIo_t const *)arg1,arg2,arg3,arg4); - - { - if (!(&result)->data) - return Qnil; - else { - VALUE data_triple = rb_ary_new(); - rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->size)); - rb_ary_push(data_triple, INT2NUM((&result)->drc)); - free((&result)->data); - return data_triple; - } - + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t arg2 ; + int16_t arg3 ; + size_t arg4 ; + Buf_triple_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int val3 ; + int ecode3 = 0 ; + size_t val4 ; + int ecode4 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 4) || (argc > 4)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "read_data_bytes" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "read_data_bytes" "', argument " "2"" of type '" "lsn_t""'"); + } + arg2 = (lsn_t)(val2); + ecode3 = SWIG_AsVal_int(argv[2], &val3); + if (!SWIG_IsOK(ecode3)) { + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "read_data_bytes" "', argument " "3"" of type '" "int16_t""'"); + } + arg3 = (int16_t)(val3); + ecode4 = SWIG_AsVal_size_t(argv[3], &val4); + if (!SWIG_IsOK(ecode4)) { + SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "read_data_bytes" "', argument " "4"" of type '" "size_t""'"); + } + arg4 = (size_t)(val4); + result = read_data_bytes((CdIo_t const *)arg1,arg2,arg3,arg4); + { + if (!(&result)->data) + return Qnil; + else { + VALUE data_triple = rb_ary_new(); + rb_ary_push(data_triple, rb_str_new((&result)->data, (&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->size)); + rb_ary_push(data_triple, INT2NUM((&result)->drc)); + free((&result)->data); + return data_triple; } - return vresult; + + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_first_track_num(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (track_t)cdio_get_first_track_num((CdIo_t const *)arg1); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_first_track_num" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (track_t)cdio_get_first_track_num((CdIo_t const *)arg1); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_last_track_num(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (track_t)cdio_get_last_track_num((CdIo_t const *)arg1); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_last_track_num" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (track_t)cdio_get_last_track_num((CdIo_t const *)arg1); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t arg2 ; - track_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - result = (track_t)cdio_get_track((CdIo_t const *)arg1,arg2); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t arg2 ; + track_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track" "', argument " "2"" of type '" "lsn_t""'"); + } + arg2 = (lsn_t)(val2); + result = (track_t)cdio_get_track((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_channels(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - int result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (int)cdio_get_track_channels((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + int result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_channels" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_channels" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (int)cdio_get_track_channels((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_track_copy_permitq___(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (bool)cdio_get_track_copy_permit((CdIo_t const *)arg1,arg2); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + bool result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_copy_permit" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_copy_permit" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (bool)cdio_get_track_copy_permit((CdIo_t const *)arg1,arg2); + vresult = (result != 0) ? Qtrue : Qfalse; + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_format(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (char *)get_track_format((CdIo_t const *)arg1,arg2); - - vresult = rb_str_new2(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_track_format" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "get_track_format" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (char *)get_track_format((CdIo_t const *)arg1,arg2); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_track_greenq___(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (bool)cdio_get_track_green((CdIo_t const *)arg1,arg2); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + bool result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_green" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_green" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (bool)cdio_get_track_green((CdIo_t const *)arg1,arg2); + vresult = (result != 0) ? Qtrue : Qfalse; + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_last_lsn(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - lsn_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (lsn_t)cdio_get_track_last_lsn((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + lsn_t result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_last_lsn" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_last_lsn" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (lsn_t)cdio_get_track_last_lsn((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_lba(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - lba_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (lba_t)cdio_get_track_lba((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + lba_t result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_lba" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_lba" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (lba_t)cdio_get_track_lba((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_lsn(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - lsn_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (lsn_t)cdio_get_track_lsn((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + lsn_t result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_lsn" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_lsn" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (lsn_t)cdio_get_track_lsn((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_msf(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (char *)get_track_msf((CdIo_t const *)arg1,arg2); - - vresult = rb_str_new2(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_track_msf" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "get_track_msf" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (char *)get_track_msf((CdIo_t const *)arg1,arg2); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_preemphasis(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - track_flag_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (track_flag_t)cdio_get_track_preemphasis((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + track_flag_t result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_preemphasis" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_preemphasis" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (track_flag_t)cdio_get_track_preemphasis((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_track_sec_count(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t arg2 ; - unsigned int result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2UINT(argv[1]); - result = (unsigned int)cdio_get_track_sec_count((CdIo_t const *)arg1,arg2); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t arg2 ; + unsigned int result; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_track_sec_count" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_get_track_sec_count" "', argument " "2"" of type '" "track_t""'"); + } + arg2 = (track_t)(val2); + result = (unsigned int)cdio_get_track_sec_count((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_close_tray(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; - driver_id_t *arg3 = (driver_id_t *) 0 ; - driver_return_code_t result; - driver_id_t temp3 ; - VALUE vresult = Qnil; - - arg3 = &temp3; - if ((argc < 1) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - if (argc > 1) { - arg2 = NUM2UINT(argv[1]); - } - result = (driver_return_code_t)close_tray((char const *)arg1,arg2,arg3); - - vresult = INT2NUM(result); - { - VALUE o = UINT2NUM((unsigned int) (*arg3)); - vresult = output_helper(vresult, o); - } - return vresult; + char *arg1 = (char *) 0 ; + driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; + driver_id_t *arg3 = (driver_id_t *) 0 ; + driver_return_code_t result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + driver_id_t temp3 ; + int res3 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg3 = &temp3; + if ((argc < 1) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "close_tray" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + if (argc > 1) { + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "close_tray" "', argument " "2"" of type '" "driver_id_t""'"); + } + arg2 = (driver_id_t)(val2); + } + result = (driver_return_code_t)close_tray((char const *)arg1,arg2,arg3); + vresult = SWIG_From_long((long)(result)); + if (SWIG_IsTmpObj(res3)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg3))); + } else { + int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_close(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - cdio_destroy(arg1); - - return Qnil; + CdIo_t *arg1 = (CdIo_t *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_destroy" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + cdio_destroy(arg1); + return Qnil; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_driver_errmsg(int argc, VALUE *argv, VALUE self) { - driver_return_code_t arg1 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = NUM2LONG(argv[0]); - result = (char *)driver_errmsg(arg1); - - vresult = rb_str_new2(result); - return vresult; + driver_return_code_t arg1 ; + char *result = 0 ; + long val1 ; + int ecode1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_long(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "driver_errmsg" "', argument " "1"" of type '" "driver_return_code_t""'"); + } + arg1 = (driver_return_code_t)(val1); + result = (char *)driver_errmsg(arg1); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_eject_media(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_return_code_t)eject_media(arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "eject_media" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_return_code_t)eject_media(arg1); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_eject_media_drive(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) NULL ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - if (argc > 0) { - arg1 = StringValuePtr(argv[0]); + char *arg1 = (char *) NULL ; + driver_return_code_t result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + if (argc > 0) { + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_eject_media_drive" "', argument " "1"" of type '" "char const *""'"); } - result = (driver_return_code_t)cdio_eject_media_drive((char const *)arg1); - - vresult = INT2NUM(result); - return vresult; + arg1 = (char *)(buf1); + } + result = (driver_return_code_t)cdio_eject_media_drive((char const *)arg1); + vresult = SWIG_From_long((long)(result)); + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_arg(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - char *arg2 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = StringValuePtr(argv[1]); - result = (char *)cdio_get_arg((CdIo_t const *)arg1,(char const (*))arg2); - - vresult = rb_str_new2(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + char *arg2 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + int res2 ; + char *buf2 = 0 ; + int alloc2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_arg" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cdio_get_arg" "', argument " "2"" of type '" "char const []""'"); + } + arg2 = (char *)(buf2); + result = (char *)cdio_get_arg((CdIo_t const *)arg1,(char const (*))arg2); + vresult = SWIG_FromCharPtr((const char *)result); + if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); + return vresult; +fail: + if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_device(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) NULL ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - if (argc > 0) { - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); + CdIo_t *arg1 = (CdIo_t *) NULL ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + if (argc > 0) { + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_default_device" "', argument " "1"" of type '" "CdIo_t const *""'"); } - result = (char *)cdio_get_default_device((CdIo_t const *)arg1); - - vresult = rb_str_new2(result); - free(result); - return vresult; + arg1 = (CdIo_t *)(argp1); + } + result = (char *)cdio_get_default_device((CdIo_t const *)arg1); + vresult = SWIG_FromCharPtr((const char *)result); + free((char*)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_default_device_driver(int argc, VALUE *argv, VALUE self) { - driver_id_t arg1 ; - driver_id_t *arg2 = (driver_id_t *) 0 ; - char *result; - driver_id_t temp2 ; - VALUE vresult = Qnil; - - arg2 = &temp2; - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = NUM2UINT(argv[0]); - result = (char *)get_default_device_driver(arg1,arg2); - - vresult = rb_str_new2(result); - { - VALUE o = UINT2NUM((unsigned int) (*arg2)); - vresult = output_helper(vresult, o); - } - free(result); - return vresult; + driver_id_t arg1 ; + driver_id_t *arg2 = (driver_id_t *) 0 ; + char *result = 0 ; + unsigned int val1 ; + int ecode1 = 0 ; + driver_id_t temp2 ; + int res2 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg2 = &temp2; + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "get_default_device_driver" "', argument " "1"" of type '" "driver_id_t""'"); + } + arg1 = (driver_id_t)(val1); + result = (char *)get_default_device_driver(arg1,arg2); + vresult = SWIG_FromCharPtr((const char *)result); + if (SWIG_IsTmpObj(res2)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg2))); + } else { + int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_unsigned_int, new_flags)); + } + free((char*)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_devices(int argc, VALUE *argv, VALUE self) { - driver_id_t arg1 ; - DeviceList_t result; - VALUE vresult = Qnil; + driver_id_t arg1 ; + DeviceList_t result; + unsigned int val1 ; + int ecode1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cdio_get_devices" "', argument " "1"" of type '" "driver_id_t""'"); + } + arg1 = (driver_id_t)(val1); + result = (DeviceList_t)cdio_get_devices(arg1); + { + // result is of type DeviceList_t + char **p = result; - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = NUM2UINT(argv[0]); - result = (DeviceList_t)cdio_get_devices(arg1); - - { - // result is of type DeviceList_t - char **p = result; - - if (result) { - VALUE aDevices = rb_ary_new(); - for (p = result; *p; p++) { - rb_ary_push(aDevices, rb_str_new2(*p)); - } - cdio_free_device_list(result); - return aDevices; - } else { - return Qnil; - } + if (result) { + VALUE aDevices = rb_ary_new(); + for (p = result; *p; p++) { + rb_ary_push(aDevices, rb_str_new2(*p)); + } + cdio_free_device_list(result); + return aDevices; + } else { + return Qnil; } - return vresult; + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_devices_ret(int argc, VALUE *argv, VALUE self) { - driver_id_t arg1 ; - driver_id_t *arg2 = (driver_id_t *) 0 ; - DeviceList_t result; - driver_id_t temp2 ; - VALUE vresult = Qnil; + driver_id_t arg1 ; + driver_id_t *arg2 = (driver_id_t *) 0 ; + DeviceList_t result; + unsigned int val1 ; + int ecode1 = 0 ; + driver_id_t temp2 ; + int res2 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg2 = &temp2; + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "get_devices_ret" "', argument " "1"" of type '" "driver_id_t""'"); + } + arg1 = (driver_id_t)(val1); + result = (DeviceList_t)get_devices_ret(arg1,arg2); + { + // result is of type DeviceList_t + char **p = result; - arg2 = &temp2; - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = NUM2UINT(argv[0]); - result = (DeviceList_t)get_devices_ret(arg1,arg2); - - { - // result is of type DeviceList_t - char **p = result; - - if (result) { - VALUE aDevices = rb_ary_new(); - for (p = result; *p; p++) { - rb_ary_push(aDevices, rb_str_new2(*p)); - } - cdio_free_device_list(result); - return aDevices; - } else { - return Qnil; - } + if (result) { + VALUE aDevices = rb_ary_new(); + for (p = result; *p; p++) { + rb_ary_push(aDevices, rb_str_new2(*p)); + } + cdio_free_device_list(result); + return aDevices; + } else { + return Qnil; } - { - VALUE o = UINT2NUM((unsigned int) (*arg2)); - vresult = output_helper(vresult, o); - } - return vresult; + } + if (SWIG_IsTmpObj(res2)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg2))); + } else { + int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_unsigned_int, new_flags)); + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_devices_with_cap(int argc, VALUE *argv, VALUE self) { - unsigned int arg1 ; - bool arg2 ; - DeviceList_t result; - VALUE vresult = Qnil; + unsigned int arg1 ; + bool arg2 ; + DeviceList_t result; + unsigned int val1 ; + int ecode1 = 0 ; + bool val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "get_devices_with_cap" "', argument " "1"" of type '" "unsigned int""'"); + } + arg1 = (unsigned int)(val1); + ecode2 = SWIG_AsVal_bool(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "get_devices_with_cap" "', argument " "2"" of type '" "bool""'"); + } + arg2 = (bool)(val2); + result = (DeviceList_t)get_devices_with_cap(arg1,arg2); + { + // result is of type DeviceList_t + char **p = result; - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - arg1 = NUM2UINT(argv[0]); - arg2 = RTEST(argv[1]); - result = (DeviceList_t)get_devices_with_cap(arg1,arg2); - - { - // result is of type DeviceList_t - char **p = result; - - if (result) { - VALUE aDevices = rb_ary_new(); - for (p = result; *p; p++) { - rb_ary_push(aDevices, rb_str_new2(*p)); - } - cdio_free_device_list(result); - return aDevices; - } else { - return Qnil; - } + if (result) { + VALUE aDevices = rb_ary_new(); + for (p = result; *p; p++) { + rb_ary_push(aDevices, rb_str_new2(*p)); + } + cdio_free_device_list(result); + return aDevices; + } else { + return Qnil; } - return vresult; + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_devices_with_cap_ret(int argc, VALUE *argv, VALUE self) { - unsigned int arg1 ; - bool arg2 ; - driver_id_t *arg3 = (driver_id_t *) 0 ; - DeviceList_t result; - driver_id_t temp3 ; - VALUE vresult = Qnil; + unsigned int arg1 ; + bool arg2 ; + driver_id_t *arg3 = (driver_id_t *) 0 ; + DeviceList_t result; + unsigned int val1 ; + int ecode1 = 0 ; + bool val2 ; + int ecode2 = 0 ; + driver_id_t temp3 ; + int res3 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg3 = &temp3; + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "get_devices_with_cap_ret" "', argument " "1"" of type '" "unsigned int""'"); + } + arg1 = (unsigned int)(val1); + ecode2 = SWIG_AsVal_bool(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "get_devices_with_cap_ret" "', argument " "2"" of type '" "bool""'"); + } + arg2 = (bool)(val2); + result = (DeviceList_t)get_devices_with_cap_ret(arg1,arg2,arg3); + { + // result is of type DeviceList_t + char **p = result; - arg3 = &temp3; - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - arg1 = NUM2UINT(argv[0]); - arg2 = RTEST(argv[1]); - result = (DeviceList_t)get_devices_with_cap_ret(arg1,arg2,arg3); - - { - // result is of type DeviceList_t - char **p = result; - - if (result) { - VALUE aDevices = rb_ary_new(); - for (p = result; *p; p++) { - rb_ary_push(aDevices, rb_str_new2(*p)); - } - cdio_free_device_list(result); - return aDevices; - } else { - return Qnil; - } + if (result) { + VALUE aDevices = rb_ary_new(); + for (p = result; *p; p++) { + rb_ary_push(aDevices, rb_str_new2(*p)); + } + cdio_free_device_list(result); + return aDevices; + } else { + return Qnil; } - { - VALUE o = UINT2NUM((unsigned int) (*arg3)); - vresult = output_helper(vresult, o); - } - return vresult; + } + if (SWIG_IsTmpObj(res3)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg3))); + } else { + int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_unsigned_int, new_flags)); + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_drive_cap__SWIG_0(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - unsigned int *arg2 = (unsigned int *) 0 ; - unsigned int *arg3 = (unsigned int *) 0 ; - unsigned int *arg4 = (unsigned int *) 0 ; - unsigned int temp2 ; - unsigned int temp3 ; - unsigned int temp4 ; - VALUE vresult = Qnil; - - arg2 = &temp2; - arg3 = &temp3; - arg4 = &temp4; - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - cdio_get_drive_cap((CdIo_t const *)arg1,arg2,arg3,arg4); - - { - VALUE o = UINT2NUM((unsigned int) (*arg2)); - vresult = output_helper(vresult, o); - } - { - VALUE o = UINT2NUM((unsigned int) (*arg3)); - vresult = output_helper(vresult, o); - } - { - VALUE o = UINT2NUM((unsigned int) (*arg4)); - vresult = output_helper(vresult, o); - } - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + unsigned int *arg2 = (unsigned int *) 0 ; + unsigned int *arg3 = (unsigned int *) 0 ; + unsigned int *arg4 = (unsigned int *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + unsigned int temp2 ; + int res2 = SWIG_TMPOBJ ; + unsigned int temp3 ; + int res3 = SWIG_TMPOBJ ; + unsigned int temp4 ; + int res4 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg2 = &temp2; + arg3 = &temp3; + arg4 = &temp4; + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_drive_cap" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + cdio_get_drive_cap((CdIo_t const *)arg1,arg2,arg3,arg4); + if (SWIG_IsTmpObj(res2)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg2))); + } else { + int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (SWIG_IsTmpObj(res3)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg3))); + } else { + int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (SWIG_IsTmpObj(res4)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg4))); + } else { + int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_unsigned_int, new_flags)); + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_drive_cap__SWIG_1(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) NULL ; - unsigned int *arg2 = (unsigned int *) 0 ; - unsigned int *arg3 = (unsigned int *) 0 ; - unsigned int *arg4 = (unsigned int *) 0 ; - unsigned int temp2 ; - unsigned int temp3 ; - unsigned int temp4 ; - VALUE vresult = Qnil; - - arg2 = &temp2; - arg3 = &temp3; - arg4 = &temp4; - if ((argc < 0) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - if (argc > 0) { - arg1 = StringValuePtr(argv[0]); + char *arg1 = (char *) NULL ; + unsigned int *arg2 = (unsigned int *) 0 ; + unsigned int *arg3 = (unsigned int *) 0 ; + unsigned int *arg4 = (unsigned int *) 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + unsigned int temp2 ; + int res2 = SWIG_TMPOBJ ; + unsigned int temp3 ; + int res3 = SWIG_TMPOBJ ; + unsigned int temp4 ; + int res4 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg2 = &temp2; + arg3 = &temp3; + arg4 = &temp4; + if ((argc < 0) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + if (argc > 0) { + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_drive_cap_dev" "', argument " "1"" of type '" "char const *""'"); } - cdio_get_drive_cap_dev((char const *)arg1,arg2,arg3,arg4); - - { - VALUE o = UINT2NUM((unsigned int) (*arg2)); - vresult = output_helper(vresult, o); - } - { - VALUE o = UINT2NUM((unsigned int) (*arg3)); - vresult = output_helper(vresult, o); - } - { - VALUE o = UINT2NUM((unsigned int) (*arg4)); - vresult = output_helper(vresult, o); - } - return vresult; + arg1 = (char *)(buf1); + } + cdio_get_drive_cap_dev((char const *)arg1,arg2,arg3,arg4); + if (SWIG_IsTmpObj(res2)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg2))); + } else { + int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (SWIG_IsTmpObj(res3)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg3))); + } else { + int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (SWIG_IsTmpObj(res4)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_int((*arg4))); + } else { + int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_unsigned_int, new_flags)); + } + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE _wrap_get_drive_cap(int nargs, VALUE *args, VALUE self) { - int argc; - VALUE argv[1]; - int ii; - - argc = nargs; - for (ii = 0; (ii < argc) && (ii < 1); ii++) { - argv[ii] = args[ii]; +SWIGINTERN VALUE _wrap_get_drive_cap(int nargs, VALUE *args, VALUE self) { + int argc; + VALUE argv[1]; + int ii; + + argc = nargs; + if (argc > 1) SWIG_fail; + for (ii = 0; (ii < argc); ii++) { + argv[ii] = args[ii]; + } + if ((argc >= 0) && (argc <= 1)) { + int _v; + if (argc <= 0) { + return _wrap_get_drive_cap__SWIG_1(nargs, args, self); } - if ((argc >= 0) && (argc <= 1)) { - int _v; - if (argc <= 0) { - return _wrap_get_drive_cap__SWIG_1(nargs, args, self); - } - { - _v = (TYPE(argv[0]) == T_STRING) ? 1 : 0; - } - if (_v) { - return _wrap_get_drive_cap__SWIG_1(nargs, args, self); - } + int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_get_drive_cap__SWIG_1(nargs, args, self); } - if (argc == 1) { - int _v; - { - void *ptr; - _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CdIo_t, 0) != -1)) ? 1 : 0; - } - if (_v) { - return _wrap_get_drive_cap__SWIG_0(nargs, args, self); - } + } + if (argc == 1) { + int _v; + void *vptr = 0; + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CdIo_t, 0); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_get_drive_cap__SWIG_0(nargs, args, self); } - - rb_raise(rb_eArgError, "No matching function for overloaded 'get_drive_cap'"); - return Qnil; + } + +fail: + rb_raise(rb_eArgError, "No matching function for overloaded 'get_drive_cap'"); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_driver_name(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (char *)cdio_get_driver_name((CdIo_t const *)arg1); - - vresult = rb_str_new2(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_driver_name" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (char *)cdio_get_driver_name((CdIo_t const *)arg1); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_driver_id(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - driver_id_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_id_t)cdio_get_driver_id((CdIo_t const *)arg1); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + driver_id_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_driver_id" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_id_t)cdio_get_driver_id((CdIo_t const *)arg1); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_last_session(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t *arg2 = (lsn_t *) 0 ; - driver_return_code_t result; - lsn_t temp2 ; - VALUE vresult = Qnil; - - arg2 = &temp2; - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (driver_return_code_t)cdio_get_last_session(arg1,arg2); - - vresult = INT2NUM(result); - { - VALUE o = INT2NUM((int) (*arg2)); - vresult = output_helper(vresult, o); - } - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t *arg2 = (lsn_t *) 0 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + lsn_t temp2 ; + int res2 = SWIG_TMPOBJ ; + VALUE vresult = Qnil; + + arg2 = &temp2; + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_last_session" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (driver_return_code_t)cdio_get_last_session(arg1,arg2); + vresult = SWIG_From_long((long)(result)); + if (SWIG_IsTmpObj(res2)) { + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_int((*arg2))); + } else { + int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; + vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_have_driver(int argc, VALUE *argv, VALUE self) { - unsigned int arg1 ; - int result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = NUM2UINT(argv[0]); - result = (int)have_driver(arg1); - - vresult = INT2NUM(result); - return vresult; + unsigned int arg1 ; + int result; + unsigned int val1 ; + int ecode1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1); + if (!SWIG_IsOK(ecode1)) { + SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "have_driver" "', argument " "1"" of type '" "unsigned int""'"); + } + arg1 = (unsigned int)(val1); + result = (int)have_driver(arg1); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_ATAPIq___(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (bool)have_ATAPI(arg1); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + bool result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "have_ATAPI" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (bool)have_ATAPI(arg1); + vresult = (result != 0) ? Qtrue : Qfalse; + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_is_binfile(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - buf_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - result = (buf_t)cdio_is_binfile((char const *)arg1); - - vresult = rb_str_new2(result); - return vresult; + char *arg1 = (char *) 0 ; + buf_t result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_is_binfile" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + result = (buf_t)cdio_is_binfile((char const *)arg1); + vresult = SWIG_FromCharPtr((const char *)result); + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_is_cuefile(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - buf_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - result = (buf_t)cdio_is_cuefile((char const *)arg1); - - vresult = rb_str_new2(result); - return vresult; + char *arg1 = (char *) 0 ; + buf_t result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_is_cuefile" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + result = (buf_t)cdio_is_cuefile((char const *)arg1); + vresult = SWIG_FromCharPtr((const char *)result); + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_cdio_is_device(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - if (argc > 1) { - arg2 = NUM2UINT(argv[1]); - } - result = (bool)cdio_is_device((char const *)arg1,arg2); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + char *arg1 = (char *) 0 ; + driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; + bool result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_is_device" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + if (argc > 1) { + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_is_device" "', argument " "2"" of type '" "driver_id_t""'"); + } + arg2 = (driver_id_t)(val2); + } + result = (bool)cdio_is_device((char const *)arg1,arg2); + vresult = (result != 0) ? Qtrue : Qfalse; + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_deviceq___(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - driver_id_t arg2 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - arg1 = StringValuePtr(argv[0]); - arg2 = NUM2UINT(argv[1]); - result = (bool)is_device((char const *)arg1,arg2); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + char *arg1 = (char *) 0 ; + driver_id_t arg2 ; + bool result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "is_device" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "is_device" "', argument " "2"" of type '" "driver_id_t""'"); + } + arg2 = (driver_id_t)(val2); + result = (bool)is_device((char const *)arg1,arg2); + vresult = (result != 0) ? Qtrue : Qfalse; + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_nrgq___(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - result = (bool)cdio_is_nrg((char const *)arg1); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + char *arg1 = (char *) 0 ; + bool result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_is_nrg" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + result = (bool)cdio_is_nrg((char const *)arg1); + vresult = (result != 0) ? Qtrue : Qfalse; + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_tocfileq___(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - result = (bool)cdio_is_tocfile((char const *)arg1); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + char *arg1 = (char *) 0 ; + bool result; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_is_tocfile" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + result = (bool)cdio_is_tocfile((char const *)arg1); + vresult = (result != 0) ? Qtrue : Qfalse; + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_media_changed(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - int result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (int)cdio_get_media_changed(arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + int result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_media_changed" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (int)cdio_get_media_changed(arg1); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } swig_class cHWInfo_t; -static VALUE +SWIGINTERN VALUE _wrap_HWInfo_t_hw_set(int argc, VALUE *argv, VALUE self) { - HWInfo_t *arg1 = (HWInfo_t *) 0 ; - cdio_hwinfo_t arg2 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_HWInfo_t, 0); - { - cdio_hwinfo_t * ptr; - SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_cdio_hwinfo_t, 0); - if (ptr) arg2 = *ptr; + HWInfo_t *arg1 = (HWInfo_t *) 0 ; + cdio_hwinfo_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 ; + int res2 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_HWInfo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "hw" "', argument " "1"" of type '" "HWInfo_t *""'"); + } + arg1 = (HWInfo_t *)(argp1); + { + res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_cdio_hwinfo_t, 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "hw" "', argument " "2"" of type '" "cdio_hwinfo_t""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "hw" "', argument " "2"" of type '" "cdio_hwinfo_t""'"); + } else { + arg2 = *((cdio_hwinfo_t *)(argp2)); } - if (arg1) (arg1)->hw = arg2; - - return Qnil; + } + if (arg1) (arg1)->hw = arg2; + + return Qnil; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_HWInfo_t_hw_get(int argc, VALUE *argv, VALUE self) { - HWInfo_t *arg1 = (HWInfo_t *) 0 ; - cdio_hwinfo_t result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_HWInfo_t, 0); - result = ((arg1)->hw); - - { - cdio_hwinfo_t * resultptr; - resultptr = (cdio_hwinfo_t *) malloc(sizeof(cdio_hwinfo_t)); - memmove(resultptr, &result, sizeof(cdio_hwinfo_t)); - vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_cdio_hwinfo_t, 1); - } - return vresult; + HWInfo_t *arg1 = (HWInfo_t *) 0 ; + cdio_hwinfo_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_HWInfo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "hw" "', argument " "1"" of type '" "HWInfo_t *""'"); + } + arg1 = (HWInfo_t *)(argp1); + result = ((arg1)->hw); + vresult = SWIG_NewPointerObj((cdio_hwinfo_t *)memcpy((cdio_hwinfo_t *)malloc(sizeof(cdio_hwinfo_t)),&result,sizeof(cdio_hwinfo_t)), SWIGTYPE_p_cdio_hwinfo_t, SWIG_POINTER_OWN | 0 ); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_HWInfo_t_result_set(int argc, VALUE *argv, VALUE self) { - HWInfo_t *arg1 = (HWInfo_t *) 0 ; - bool arg2 ; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_HWInfo_t, 0); - arg2 = RTEST(argv[0]); - if (arg1) (arg1)->result = arg2; - - return Qnil; + HWInfo_t *arg1 = (HWInfo_t *) 0 ; + bool arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + bool val2 ; + int ecode2 = 0 ; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_HWInfo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "result" "', argument " "1"" of type '" "HWInfo_t *""'"); + } + arg1 = (HWInfo_t *)(argp1); + ecode2 = SWIG_AsVal_bool(argv[0], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "result" "', argument " "2"" of type '" "bool""'"); + } + arg2 = (bool)(val2); + if (arg1) (arg1)->result = arg2; + + return Qnil; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_HWInfo_t_result_get(int argc, VALUE *argv, VALUE self) { - HWInfo_t *arg1 = (HWInfo_t *) 0 ; - bool result; - VALUE vresult = Qnil; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_HWInfo_t, 0); - result = (bool) ((arg1)->result); - - vresult = (result != 0) ? Qtrue : Qfalse; - return vresult; + HWInfo_t *arg1 = (HWInfo_t *) 0 ; + bool result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_HWInfo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "result" "', argument " "1"" of type '" "HWInfo_t *""'"); + } + arg1 = (HWInfo_t *)(argp1); + result = (bool) ((arg1)->result); + vresult = (result != 0) ? Qtrue : Qfalse; + return vresult; +fail: + return Qnil; } #ifdef HAVE_RB_DEFINE_ALLOC_FUNC -static VALUE +SWIGINTERN VALUE _wrap_HWInfo_t_allocate(VALUE self) { #else - static VALUE - _wrap_HWInfo_t_allocate(int argc, VALUE *argv, VALUE self) { + SWIGINTERN VALUE + _wrap_HWInfo_t_allocate(int argc, VALUE *argv, VALUE self) { #endif - - - VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_HWInfo_t); + + + VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_HWInfo_t); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC - rb_obj_call_init(vresult, argc, argv); + rb_obj_call_init(vresult, argc, argv); #endif - return vresult; - } - + return vresult; + } + -static VALUE +SWIGINTERN VALUE _wrap_new_HWInfo_t(int argc, VALUE *argv, VALUE self) { - HWInfo_t *result; - - if ((argc < 0) || (argc > 0)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); - result = (HWInfo_t *)(HWInfo_t *) calloc(1, sizeof(HWInfo_t)); - DATA_PTR(self) = result; - - return self; + HWInfo_t *result = 0 ; + + if ((argc < 0) || (argc > 0)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; + } + result = (HWInfo_t *)(HWInfo_t *) calloc(1, sizeof(HWInfo_t));DATA_PTR(self) = result; + + return self; +fail: + return Qnil; } -static void +SWIGINTERN void free_HWInfo_t(HWInfo_t *arg1) { free((char *) arg1); } -static VALUE +SWIGINTERN VALUE _wrap_get_hwinfo(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - HWInfo_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = get_hwinfo((CdIo_t const *)arg1); - - { - // result is of type HWInfo_t - VALUE ret; - if ((&result)->result == 0) - return Qnil; - else { - ret = rb_hash_new(); - rb_hash_aset(ret, rb_str_new2("vendor"), - rb_str_new2((&result)->hw.psz_vendor)); - rb_hash_aset(ret, rb_str_new2("model"), - rb_str_new2((&result)->hw.psz_model)); - rb_hash_aset(ret, rb_str_new2("revision"), - rb_str_new2((&result)->hw.psz_revision)); - return ret; - } + CdIo_t *arg1 = (CdIo_t *) 0 ; + HWInfo_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_hwinfo" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = get_hwinfo((CdIo_t const *)arg1); + { + // result is of type HWInfo_t + VALUE ret; + if ((&result)->result == 0) + return Qnil; + else { + ret = rb_hash_new(); + rb_hash_aset(ret, rb_str_new2("vendor"), + rb_str_new2((&result)->hw.psz_vendor)); + rb_hash_aset(ret, rb_str_new2("model"), + rb_str_new2((&result)->hw.psz_model)); + rb_hash_aset(ret, rb_str_new2("revision"), + rb_str_new2((&result)->hw.psz_revision)); + return ret; } - return vresult; + } + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_set_blocksize(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - int arg2 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - result = (driver_return_code_t)cdio_set_blocksize((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + int arg2 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_set_blocksize" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_set_blocksize" "', argument " "2"" of type '" "int""'"); + } + arg2 = (int)(val2); + result = (driver_return_code_t)cdio_set_blocksize((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_set_speed(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - int arg2 ; - driver_return_code_t result; - VALUE vresult = Qnil; - - if ((argc < 2) || (argc > 2)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - arg2 = NUM2INT(argv[1]); - result = (driver_return_code_t)cdio_set_speed((CdIo_t const *)arg1,arg2); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + int arg2 ; + driver_return_code_t result; + void *argp1 = 0 ; + int res1 = 0 ; + int val2 ; + int ecode2 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 2) || (argc > 2)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_set_speed" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdio_set_speed" "', argument " "2"" of type '" "int""'"); + } + arg2 = (int)(val2); + result = (driver_return_code_t)cdio_set_speed((CdIo_t const *)arg1,arg2); + vresult = SWIG_From_long((long)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_open_cd(int argc, VALUE *argv, VALUE self) { - char *arg1 = (char *) 0 ; - driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; - char *arg3 = (char *) NULL ; - CdIo_t *result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 3)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - arg1 = StringValuePtr(argv[0]); - if (argc > 1) { - arg2 = NUM2UINT(argv[1]); + char *arg1 = (char *) 0 ; + driver_id_t arg2 = (driver_id_t) DRIVER_UNKNOWN ; + char *arg3 = (char *) NULL ; + CdIo_t *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + unsigned int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 3)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "open_cd" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = (char *)(buf1); + if (argc > 1) { + ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "open_cd" "', argument " "2"" of type '" "driver_id_t""'"); + } + arg2 = (driver_id_t)(val2); + } + if (argc > 2) { + res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "open_cd" "', argument " "3"" of type '" "char const *""'"); } - if (argc > 2) { - arg3 = StringValuePtr(argv[2]); - } - result = (CdIo_t *)open_cd((char const *)arg1,arg2,(char const *)arg3); - - vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_CdIo_t,0); - return vresult; + arg3 = (char *)(buf3); + } + result = (CdIo_t *)open_cd((char const *)arg1,arg2,(char const *)arg3); + vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); + return vresult; +fail: + if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); + if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_disc_last_lsn(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - lsn_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (lsn_t)cdio_get_disc_last_lsn((CdIo_t const *)arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + lsn_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_disc_last_lsn" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (lsn_t)cdio_get_disc_last_lsn((CdIo_t const *)arg1); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_disc_mode(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (char *)get_disc_mode(arg1); - - vresult = rb_str_new2(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_disc_mode" "', argument " "1"" of type '" "CdIo_t *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (char *)get_disc_mode(arg1); + vresult = SWIG_FromCharPtr((const char *)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_joliet_level(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - int result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (int)cdio_get_joliet_level((CdIo_t const *)arg1); - - vresult = INT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + int result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_joliet_level" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (int)cdio_get_joliet_level((CdIo_t const *)arg1); + vresult = SWIG_From_int((int)(result)); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_mcn(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - char *result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (char *)cdio_get_mcn((CdIo_t const *)arg1); - - vresult = rb_str_new2(result); - free(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + char *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_mcn" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (char *)cdio_get_mcn((CdIo_t const *)arg1); + vresult = SWIG_FromCharPtr((const char *)result); + free((char*)result); + return vresult; +fail: + return Qnil; } -static VALUE +SWIGINTERN VALUE _wrap_get_num_tracks(int argc, VALUE *argv, VALUE self) { - CdIo_t *arg1 = (CdIo_t *) 0 ; - track_t result; - VALUE vresult = Qnil; - - if ((argc < 1) || (argc > 1)) - rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); - SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CdIo_t, 0); - result = (track_t)cdio_get_num_tracks((CdIo_t const *)arg1); - - vresult = UINT2NUM(result); - return vresult; + CdIo_t *arg1 = (CdIo_t *) 0 ; + track_t result; + void *argp1 = 0 ; + int res1 = 0 ; + VALUE vresult = Qnil; + + if ((argc < 1) || (argc > 1)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; + } + res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_CdIo_t, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdio_get_num_tracks" "', argument " "1"" of type '" "CdIo_t const *""'"); + } + arg1 = (CdIo_t *)(argp1); + result = (track_t)cdio_get_num_tracks((CdIo_t const *)arg1); + vresult = SWIG_From_unsigned_SS_int((unsigned int)(result)); + return vresult; +fail: + return Qnil; } /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ -static swig_type_info _swigt__p_Buf_triple_t = {"_p_Buf_triple_t", "Buf_triple_t *", 0, 0, 0}; -static swig_type_info _swigt__p_CdIo_t = {"_p_CdIo_t", "CdIo_t *", 0, 0, 0}; -static swig_type_info _swigt__p_HWInfo_t = {"_p_HWInfo_t", "HWInfo_t *", 0, 0, 0}; -static swig_type_info _swigt__p_cdio_hwinfo_t = {"_p_cdio_hwinfo_t", "cdio_hwinfo_t *", 0, 0, 0}; -static swig_type_info _swigt__p_cdio_read_mode_t = {"_p_cdio_read_mode_t", "enum cdio_read_mode_t *|cdio_read_mode_t *", 0, 0, 0}; -static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, 0}; -static swig_type_info _swigt__p_int = {"_p_int", "int *|lsn_t *", 0, 0, 0}; -static swig_type_info _swigt__p_long = {"_p_long", "long *|ssize_t *", 0, 0, 0}; -static swig_type_info _swigt__p_off_t = {"_p_off_t", "off_t *", 0, 0, 0}; -static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *", 0, 0, 0}; -static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "unsigned long *|VALUE *", 0, 0, 0}; +static swig_type_info _swigt__p_Buf_triple_t = {"_p_Buf_triple_t", "Buf_triple_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_CdIo_t = {"_p_CdIo_t", "CdIo_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_HWInfo_t = {"_p_HWInfo_t", "HWInfo_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_cdio_hwinfo_t = {"_p_cdio_hwinfo_t", "cdio_hwinfo_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_cdio_read_mode_t = {"_p_cdio_read_mode_t", "enum cdio_read_mode_t *|cdio_read_mode_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_int = {"_p_int", "int *|lsn_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_long = {"_p_long", "long *|ssize_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_off_t = {"_p_off_t", "off_t *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_Buf_triple_t, &_swigt__p_CdIo_t, &_swigt__p_HWInfo_t, @@ -2969,11 +4610,10 @@ &_swigt__p_char, &_swigt__p_int, &_swigt__p_long, &_swigt__p_off_t, &_swigt__p_unsigned_int, - &_swigt__p_unsigned_long, }; static swig_cast_info _swigc__p_Buf_triple_t[] = { {&_swigt__p_Buf_triple_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_CdIo_t[] = { {&_swigt__p_CdIo_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HWInfo_t[] = { {&_swigt__p_HWInfo_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -2982,11 +4622,10 @@ static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_off_t[] = { {&_swigt__p_off_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_Buf_triple_t, _swigc__p_CdIo_t, _swigc__p_HWInfo_t, @@ -2995,17 +4634,16 @@ _swigc__p_char, _swigc__p_int, _swigc__p_long, _swigc__p_off_t, _swigc__p_unsigned_int, - _swigc__p_unsigned_long, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ -/************************************************************************* +/* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. @@ -3013,13 +4651,13 @@ * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. - + * * The generated swig_type_info structures are assigned staticly to an initial - * array. We just loop though that array, and handle each type individually. + * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in @@ -3027,11 +4665,11 @@ * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. - + * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already @@ -3040,88 +4678,162 @@ * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. -**/ + * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { +#if 0 +} /* c-mode */ #endif +#endif +#if 0 +#define SWIGRUNTIME_DEBUG +#endif + + SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { - swig_type_info *type, *ret; - swig_cast_info *cast; size_t i; - swig_module_info *module_head; - static int init_run = 0; + swig_module_info *module_head, *iter; + int found; clientdata = clientdata; - if (init_run) return; - init_run = 1; + /* check to see if the circular list has been setup, if not, set it up */ + if (swig_module.next==0) { + /* Initialize the swig_module */ + swig_module.type_initial = swig_type_initial; + swig_module.cast_initial = swig_cast_initial; + swig_module.next = &swig_module; + } - /* Initialize the swig_module */ - swig_module.type_initial = swig_type_initial; - swig_module.cast_initial = swig_cast_initial; - /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); - if (module_head) { + if (!module_head) { + /* This is the first module loaded for this interpreter */ + /* so set the swig module into the interpreter */ + SWIG_SetModule(clientdata, &swig_module); + module_head = &swig_module; + } else { + /* the interpreter has loaded a SWIG module, but has it loaded this one? */ + found=0; + iter=module_head; + do { + if (iter==&swig_module) { + found=1; + break; + } + iter=iter->next; + } while (iter!= module_head); + + /* if the is found in the list, then all is done and we may leave */ + if (found) return; + /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; - } else { - /* This is the first module loaded */ - swig_module.next = &swig_module; - SWIG_SetModule(clientdata, &swig_module); } - + /* Now work on filling in swig_module.types */ +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: size %d\n", swig_module.size); +#endif for (i = 0; i < swig_module.size; ++i) { - type = 0; + swig_type_info *type = 0; + swig_type_info *ret; + swig_cast_info *cast; + +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); +#endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ - if (swig_module.type_initial[i]->clientdata) type->clientdata = swig_module.type_initial[i]->clientdata; +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: found type %s\n", type->name); +#endif + if (swig_module.type_initial[i]->clientdata) { + type->clientdata = swig_module.type_initial[i]->clientdata; +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); +#endif + } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); +#endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); +#ifdef SWIGRUNTIME_DEBUG + if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); +#endif } - if (ret && type == swig_module.type_initial[i]) { - cast->type = ret; - ret = 0; + if (ret) { + if (type == swig_module.type_initial[i]) { +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: skip old type %s\n", ret->name); +#endif + cast->type = ret; + ret = 0; + } else { + /* Check for casting already in the list */ + swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); +#ifdef SWIGRUNTIME_DEBUG + if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); +#endif + if (!ocast) ret = 0; + } } - + if (!ret) { +#ifdef SWIGRUNTIME_DEBUG + printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); +#endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } - cast++; } - /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; + +#ifdef SWIGRUNTIME_DEBUG + printf("**** SWIG_InitializeModule: Cast List ******\n"); + for (i = 0; i < swig_module.size; ++i) { + int j = 0; + swig_cast_info *cast = swig_module.cast_initial[i]; + printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); + while (cast->type) { + printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); + cast++; + ++j; + } + printf("---- Total casts: %d\n",j); + } + printf("**** SWIG_InitializeModule: Cast List ******\n"); +#endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling @@ -3149,262 +4861,267 @@ } } } #ifdef __cplusplus +#if 0 +{ /* c-mode */ +#endif } #endif #ifdef __cplusplus extern "C" #endif SWIGEXPORT void Init_rubycdio(void) { - size_t i; - - SWIG_InitRuntime(); - mRubycdio = rb_define_module("Rubycdio"); - - SWIG_InitializeModule(0); - for (i = 0; i < swig_module.size; i++) { - SWIG_define_class(swig_module.types[i]); - } - - SWIG_RubyInitializeTrackings(); - rb_define_const(mRubycdio,"CDIO_READ_MODE_AUDIO", INT2NUM(CDIO_READ_MODE_AUDIO)); - rb_define_const(mRubycdio,"CDIO_READ_MODE_M1F1", INT2NUM(CDIO_READ_MODE_M1F1)); - rb_define_const(mRubycdio,"CDIO_READ_MODE_M1F2", INT2NUM(CDIO_READ_MODE_M1F2)); - rb_define_const(mRubycdio,"CDIO_READ_MODE_M2F1", INT2NUM(CDIO_READ_MODE_M2F1)); - rb_define_const(mRubycdio,"CDIO_READ_MODE_M2F2", INT2NUM(CDIO_READ_MODE_M2F2)); - rb_define_module_function(mRubycdio, "cdio_read_sectors", _wrap_cdio_read_sectors, -1); - rb_define_module_function(mRubycdio, "cdio_eject_media_drive", _wrap_cdio_eject_media_drive, -1); - rb_define_const(mRubycdio,"VERSION_NUM", INT2NUM(LIBCDIO_VERSION_NUM)); - rb_define_const(mRubycdio,"INVALID_LBA", INT2NUM(CDIO_INVALID_LBA)); - rb_define_const(mRubycdio,"INVALID_LSN", INT2NUM(CDIO_INVALID_LSN)); - rb_define_const(mRubycdio,"CD_FRAMESIZE", INT2NUM(CDIO_CD_FRAMESIZE)); - rb_define_const(mRubycdio,"CD_FRAMESIZE_RAW", INT2NUM(CDIO_CD_FRAMESIZE_RAW)); - rb_define_const(mRubycdio,"ISO_BLOCKSIZE", INT2NUM(CDIO_CD_FRAMESIZE)); - rb_define_const(mRubycdio,"M2F2_SECTOR_SIZE", INT2NUM(M2F2_SECTOR_SIZE)); - rb_define_const(mRubycdio,"M2RAW_SECTOR_SIZE", INT2NUM(M2RAW_SECTOR_SIZE)); - rb_define_module_function(mRubycdio, "audio_pause", _wrap_audio_pause, -1); - rb_define_module_function(mRubycdio, "audio_play_lsn", _wrap_audio_play_lsn, -1); - rb_define_module_function(mRubycdio, "audio_resume", _wrap_audio_resume, -1); - rb_define_module_function(mRubycdio, "audio_stop", _wrap_audio_stop, -1); - rb_define_const(mRubycdio,"READ_MODE_AUDIO", INT2NUM(CDIO_READ_MODE_AUDIO)); - rb_define_const(mRubycdio,"READ_MODE_M1F1", INT2NUM(CDIO_READ_MODE_M1F1)); - rb_define_const(mRubycdio,"READ_MODE_M1F2", INT2NUM(CDIO_READ_MODE_M1F2)); - rb_define_const(mRubycdio,"READ_MODE_M2F1", INT2NUM(CDIO_READ_MODE_M2F1)); - rb_define_const(mRubycdio,"READ_MODE_M2F2", INT2NUM(CDIO_READ_MODE_M2F2)); - - cBuf_triple_t.klass = rb_define_class_under(mRubycdio, "Buf_triple_t", rb_cObject); - SWIG_TypeClientData(SWIGTYPE_p_Buf_triple_t, (void *) &cBuf_triple_t); - rb_define_alloc_func(cBuf_triple_t.klass, _wrap_Buf_triple_t_allocate); - rb_define_method(cBuf_triple_t.klass, "initialize", _wrap_new_Buf_triple_t, -1); - rb_define_method(cBuf_triple_t.klass, "data=", _wrap_Buf_triple_t_data_set, -1); - rb_define_method(cBuf_triple_t.klass, "data", _wrap_Buf_triple_t_data_get, -1); - rb_define_method(cBuf_triple_t.klass, "size=", _wrap_Buf_triple_t_size_set, -1); - rb_define_method(cBuf_triple_t.klass, "size", _wrap_Buf_triple_t_size_get, -1); - rb_define_method(cBuf_triple_t.klass, "drc=", _wrap_Buf_triple_t_drc_set, -1); - rb_define_method(cBuf_triple_t.klass, "drc", _wrap_Buf_triple_t_drc_get, -1); - cBuf_triple_t.mark = 0; - cBuf_triple_t.destroy = (void (*)(void *)) free_Buf_triple_t; - rb_define_module_function(mRubycdio, "lseek", _wrap_lseek, -1); - rb_define_module_function(mRubycdio, "read_cd", _wrap_read_cd, -1); - rb_define_module_function(mRubycdio, "read_sectors", _wrap_read_sectors, -1); - rb_define_module_function(mRubycdio, "read_data_bytes", _wrap_read_data_bytes, -1); - rb_define_const(mRubycdio,"TRACK_FORMAT_AUDIO", INT2NUM(TRACK_FORMAT_AUDIO)); - rb_define_const(mRubycdio,"TRACK_FORMAT_CDI", INT2NUM(TRACK_FORMAT_CDI)); - rb_define_const(mRubycdio,"TRACK_FORMAT_XA", INT2NUM(TRACK_FORMAT_XA)); - rb_define_const(mRubycdio,"TRACK_FORMAT_DATA", INT2NUM(TRACK_FORMAT_DATA)); - rb_define_const(mRubycdio,"TRACK_FORMAT_PSX", INT2NUM(TRACK_FORMAT_PSX)); - rb_define_const(mRubycdio,"CDIO_TRACK_FLAG_FALSE", INT2NUM(CDIO_TRACK_FLAG_FALSE)); - rb_define_const(mRubycdio,"CDIO_TRACK_FLAG_TRUE", INT2NUM(CDIO_TRACK_FLAG_TRUE)); - rb_define_const(mRubycdio,"CDIO_TRACK_FLAG_ERROR", INT2NUM(CDIO_TRACK_FLAG_ERROR)); - rb_define_const(mRubycdio,"CDIO_TRACK_FLAG_UNKNOWN", INT2NUM(CDIO_TRACK_FLAG_UNKNOWN)); - rb_define_const(mRubycdio,"CDIO_CDROM_LBA", INT2NUM(CDIO_CDROM_LBA)); - rb_define_const(mRubycdio,"CDIO_CDROM_MSF", INT2NUM(CDIO_CDROM_MSF)); - rb_define_const(mRubycdio,"CDIO_CDROM_DATA_TRACK", INT2NUM(CDIO_CDROM_DATA_TRACK)); - rb_define_const(mRubycdio,"CDIO_CDROM_CDI_TRACK", INT2NUM(CDIO_CDROM_CDI_TRACK)); - rb_define_const(mRubycdio,"CDIO_CDROM_XA_TRACK", INT2NUM(CDIO_CDROM_XA_TRACK)); - rb_define_const(mRubycdio,"AUDIO", INT2NUM(AUDIO)); - rb_define_const(mRubycdio,"MODE1", INT2NUM(MODE1)); - rb_define_const(mRubycdio,"MODE1_RAW", INT2NUM(MODE1_RAW)); - rb_define_const(mRubycdio,"MODE2", INT2NUM(MODE2)); - rb_define_const(mRubycdio,"MODE2_FORM1", INT2NUM(MODE2_FORM1)); - rb_define_const(mRubycdio,"MODE2_FORM2", INT2NUM(MODE2_FORM2)); - rb_define_const(mRubycdio,"MODE2_FORM_MIX", INT2NUM(MODE2_FORM_MIX)); - rb_define_const(mRubycdio,"MODE2_RAW", INT2NUM(MODE2_RAW)); - rb_define_const(mRubycdio,"INVALID_TRACK", INT2NUM(CDIO_INVALID_TRACK)); - rb_define_const(mRubycdio,"CDROM_LEADOUT_TRACK", INT2NUM(0xAA)); - rb_define_module_function(mRubycdio, "get_first_track_num", _wrap_get_first_track_num, -1); - rb_define_module_function(mRubycdio, "get_last_track_num", _wrap_get_last_track_num, -1); - rb_define_module_function(mRubycdio, "get_track", _wrap_get_track, -1); - rb_define_module_function(mRubycdio, "get_track_channels", _wrap_get_track_channels, -1); - rb_define_module_function(mRubycdio, "track_copy_permit?", _wrap_track_copy_permitq___, -1); - rb_define_module_function(mRubycdio, "get_track_format", _wrap_get_track_format, -1); - rb_define_module_function(mRubycdio, "track_green?", _wrap_track_greenq___, -1); - rb_define_module_function(mRubycdio, "get_track_last_lsn", _wrap_get_track_last_lsn, -1); - rb_define_module_function(mRubycdio, "get_track_lba", _wrap_get_track_lba, -1); - rb_define_module_function(mRubycdio, "get_track_lsn", _wrap_get_track_lsn, -1); - rb_define_module_function(mRubycdio, "get_track_msf", _wrap_get_track_msf, -1); - rb_define_module_function(mRubycdio, "get_track_preemphasis", _wrap_get_track_preemphasis, -1); - rb_define_module_function(mRubycdio, "get_track_sec_count", _wrap_get_track_sec_count, -1); - rb_define_const(mRubycdio,"DRIVE_CAP_ERROR", INT2NUM(CDIO_DRIVE_CAP_ERROR)); - rb_define_const(mRubycdio,"DRIVE_CAP_UNKNOWN", INT2NUM(CDIO_DRIVE_CAP_UNKNOWN)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_CLOSE_TRAY", INT2NUM(CDIO_DRIVE_CAP_MISC_CLOSE_TRAY)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_EJECT", INT2NUM(CDIO_DRIVE_CAP_MISC_EJECT)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_LOCK", INT2NUM(CDIO_DRIVE_CAP_MISC_LOCK)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_SELECT_SPEED", INT2NUM(CDIO_DRIVE_CAP_MISC_SELECT_SPEED)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_SELECT_DISC", INT2NUM(CDIO_DRIVE_CAP_MISC_SELECT_DISC)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_MULTI_SESSION", INT2NUM(CDIO_DRIVE_CAP_MISC_MULTI_SESSION)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_MEDIA_CHANGED", INT2NUM(CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_RESET", INT2NUM(CDIO_DRIVE_CAP_MISC_RESET)); - rb_define_const(mRubycdio,"DRIVE_CAP_MISC_FILE", INT2NUM(CDIO_DRIVE_CAP_MISC_FILE)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_AUDIO", INT2NUM(CDIO_DRIVE_CAP_READ_AUDIO)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_CD_DA", INT2NUM(CDIO_DRIVE_CAP_READ_CD_DA)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_CD_G", INT2NUM(CDIO_DRIVE_CAP_READ_CD_G)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_CD_R", INT2NUM(CDIO_DRIVE_CAP_READ_CD_R)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_CD_RW", INT2NUM(CDIO_DRIVE_CAP_READ_CD_RW)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_R", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_R)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_PR", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_PR)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_RAM", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_RAM)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_ROM", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_ROM)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_RW", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_RW)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_DVD_RPW", INT2NUM(CDIO_DRIVE_CAP_READ_DVD_RPW)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_C2_ERRS", INT2NUM(CDIO_DRIVE_CAP_READ_C2_ERRS)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_MODE2_FORM1", INT2NUM(CDIO_DRIVE_CAP_READ_MODE2_FORM1)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_MODE2_FORM2", INT2NUM(CDIO_DRIVE_CAP_READ_MODE2_FORM2)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_MCN", INT2NUM(CDIO_DRIVE_CAP_READ_MCN)); - rb_define_const(mRubycdio,"DRIVE_CAP_READ_ISRC", INT2NUM(CDIO_DRIVE_CAP_READ_ISRC)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_CD_R", INT2NUM(CDIO_DRIVE_CAP_WRITE_CD_R)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_CD_RW", INT2NUM(CDIO_DRIVE_CAP_WRITE_CD_RW)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD_R", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD_R)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD_PR", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD_PR)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD_RAM", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD_RAM)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD_RW", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD_RW)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD_RPW", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD_RPW)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_MT_RAINIER", INT2NUM(CDIO_DRIVE_CAP_WRITE_MT_RAINIER)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_BURN_PROOF", INT2NUM(CDIO_DRIVE_CAP_WRITE_BURN_PROOF)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_CD", INT2NUM(CDIO_DRIVE_CAP_WRITE_CD)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE_DVD", INT2NUM(CDIO_DRIVE_CAP_WRITE_DVD)); - rb_define_const(mRubycdio,"DRIVE_CAP_WRITE", INT2NUM(CDIO_DRIVE_CAP_WRITE)); - rb_define_const(mRubycdio,"MMC_HW_VENDOR_LEN", INT2NUM(CDIO_MMC_HW_VENDOR_LEN)); - rb_define_const(mRubycdio,"MMC_HW_MODEL_LEN", INT2NUM(CDIO_MMC_HW_MODEL_LEN)); - rb_define_const(mRubycdio,"MMC_HW_REVISION_LEN", INT2NUM(CDIO_MMC_HW_REVISION_LEN)); - rb_define_const(mRubycdio,"SRC_IS_DISK_IMAGE_MASK", INT2NUM(CDIO_SRC_IS_DISK_IMAGE_MASK)); - rb_define_const(mRubycdio,"SRC_IS_DEVICE_MASK", INT2NUM(CDIO_SRC_IS_DEVICE_MASK)); - rb_define_const(mRubycdio,"SRC_IS_SCSI_MASK", INT2NUM(CDIO_SRC_IS_SCSI_MASK)); - rb_define_const(mRubycdio,"SRC_IS_NATIVE_MASK", INT2NUM(CDIO_SRC_IS_NATIVE_MASK)); - rb_define_const(mRubycdio,"DRIVER_UNKNOWN", INT2NUM(DRIVER_UNKNOWN)); - rb_define_const(mRubycdio,"DRIVER_AIX", INT2NUM(DRIVER_AIX)); - rb_define_const(mRubycdio,"DRIVER_BSDI", INT2NUM(DRIVER_BSDI)); - rb_define_const(mRubycdio,"DRIVER_FREEBSD", INT2NUM(DRIVER_FREEBSD)); - rb_define_const(mRubycdio,"DRIVER_LINUX", INT2NUM(DRIVER_LINUX)); - rb_define_const(mRubycdio,"DRIVER_SOLARIS", INT2NUM(DRIVER_SOLARIS)); - rb_define_const(mRubycdio,"DRIVER_OSX", INT2NUM(DRIVER_OSX)); - rb_define_const(mRubycdio,"DRIVER_WIN32", INT2NUM(DRIVER_WIN32)); - rb_define_const(mRubycdio,"DRIVER_CDRDAO", INT2NUM(DRIVER_CDRDAO)); - rb_define_const(mRubycdio,"DRIVER_BINCUE", INT2NUM(DRIVER_BINCUE)); - rb_define_const(mRubycdio,"DRIVER_NRG", INT2NUM(DRIVER_NRG)); - rb_define_const(mRubycdio,"DRIVER_DEVICE", INT2NUM(DRIVER_DEVICE)); - rb_define_const(mRubycdio,"MIN_DRIVER", INT2NUM(CDIO_MIN_DRIVER)); - rb_define_const(mRubycdio,"MIN_DEVICE_DRIVER", INT2NUM(CDIO_MIN_DEVICE_DRIVER)); - rb_define_const(mRubycdio,"MAX_DRIVER", INT2NUM(CDIO_MAX_DRIVER)); - rb_define_const(mRubycdio,"MAX_DEVICE_DRIVER", INT2NUM(CDIO_MAX_DEVICE_DRIVER)); - rb_define_const(mRubycdio,"DRIVER_OP_SUCCESS", INT2NUM(DRIVER_OP_SUCCESS)); - rb_define_const(mRubycdio,"DRIVER_OP_ERROR", INT2NUM(DRIVER_OP_ERROR)); - rb_define_const(mRubycdio,"DRIVER_OP_UNSUPPORTED", INT2NUM(DRIVER_OP_UNSUPPORTED)); - rb_define_const(mRubycdio,"DRIVER_OP_UNINIT", INT2NUM(DRIVER_OP_UNINIT)); - rb_define_const(mRubycdio,"DRIVER_OP_NOT_PERMITTED", INT2NUM(DRIVER_OP_NOT_PERMITTED)); - rb_define_const(mRubycdio,"DRIVER_OP_BAD_PARAMETER", INT2NUM(DRIVER_OP_BAD_PARAMETER)); - rb_define_const(mRubycdio,"DRIVER_OP_BAD_POINTER", INT2NUM(DRIVER_OP_BAD_POINTER)); - rb_define_const(mRubycdio,"DRIVER_OP_NO_DRIVER", INT2NUM(DRIVER_OP_NO_DRIVER)); - rb_define_const(mRubycdio,"FS_AUDIO", UINT2NUM(CDIO_FS_AUDIO)); - rb_define_const(mRubycdio,"FS_HIGH_SIERRA", UINT2NUM(CDIO_FS_HIGH_SIERRA)); - rb_define_const(mRubycdio,"FS_ISO_9660", UINT2NUM(CDIO_FS_ISO_9660)); - rb_define_const(mRubycdio,"FS_INTERACTIVE", UINT2NUM(CDIO_FS_INTERACTIVE)); - rb_define_const(mRubycdio,"FS_HFS", UINT2NUM(CDIO_FS_HFS)); - rb_define_const(mRubycdio,"FS_UFS", UINT2NUM(CDIO_FS_UFS)); - rb_define_const(mRubycdio,"FS_EXT2", UINT2NUM(CDIO_FS_EXT2)); - rb_define_const(mRubycdio,"FS_ISO_HFS", UINT2NUM(CDIO_FS_ISO_HFS)); - rb_define_const(mRubycdio,"FS_ISO_9660_INTERACTIVE", UINT2NUM(CDIO_FS_ISO_9660_INTERACTIVE)); - rb_define_const(mRubycdio,"FS_3DO", UINT2NUM(CDIO_FS_3DO)); - rb_define_const(mRubycdio,"FS_XISO", UINT2NUM(CDIO_FS_XISO)); - rb_define_const(mRubycdio,"FS_UDFX", UINT2NUM(CDIO_FS_UDFX)); - rb_define_const(mRubycdio,"FS_UDF", UINT2NUM(CDIO_FS_UDF)); - rb_define_const(mRubycdio,"FS_ISO_UDF", UINT2NUM(CDIO_FS_ISO_UDF)); - rb_define_const(mRubycdio,"FS_ANAL_XA", UINT2NUM(CDIO_FS_ANAL_XA)); - rb_define_const(mRubycdio,"FS_ANAL_MULTISESSION", UINT2NUM(CDIO_FS_ANAL_MULTISESSION)); - rb_define_const(mRubycdio,"FS_ANAL_PHOTO_CD", UINT2NUM(CDIO_FS_ANAL_PHOTO_CD)); - rb_define_const(mRubycdio,"FS_ANAL_HIDDEN_TRACK", UINT2NUM(CDIO_FS_ANAL_HIDDEN_TRACK)); - rb_define_const(mRubycdio,"FS_ANAL_CDTV", UINT2NUM(CDIO_FS_ANAL_CDTV)); - rb_define_const(mRubycdio,"FS_ANAL_BOOTABLE", UINT2NUM(CDIO_FS_ANAL_BOOTABLE)); - rb_define_const(mRubycdio,"FS_ANAL_VIDEOCD", UINT2NUM(CDIO_FS_ANAL_VIDEOCD)); - rb_define_const(mRubycdio,"FS_ANAL_ROCKRIDGE", UINT2NUM(CDIO_FS_ANAL_ROCKRIDGE)); - rb_define_const(mRubycdio,"FS_ANAL_JOLIET", UINT2NUM(CDIO_FS_ANAL_JOLIET)); - rb_define_const(mRubycdio,"FS_ANAL_SVCD", UINT2NUM(CDIO_FS_ANAL_SVCD)); - rb_define_const(mRubycdio,"FS_ANAL_CVD", UINT2NUM(CDIO_FS_ANAL_CVD)); - rb_define_const(mRubycdio,"FS_ANAL_XISO", UINT2NUM(CDIO_FS_ANAL_XISO)); - rb_define_const(mRubycdio,"FS_MATCH_ALL", UINT2NUM(CDIO_FS_MATCH_ALL)); - rb_define_const(mRubycdio,"FS_UNKNOWN", UINT2NUM(CDIO_FS_UNKNOWN)); - rb_define_module_function(mRubycdio, "close_tray", _wrap_close_tray, -1); - rb_define_module_function(mRubycdio, "close", _wrap_close, -1); - rb_define_module_function(mRubycdio, "driver_errmsg", _wrap_driver_errmsg, -1); - rb_define_module_function(mRubycdio, "eject_media", _wrap_eject_media, -1); - rb_define_module_function(mRubycdio, "eject_media_drive", _wrap_eject_media_drive, -1); - rb_define_module_function(mRubycdio, "get_arg", _wrap_get_arg, -1); - rb_define_module_function(mRubycdio, "get_device", _wrap_get_device, -1); - rb_define_module_function(mRubycdio, "get_default_device_driver", _wrap_get_default_device_driver, -1); - rb_define_module_function(mRubycdio, "get_devices", _wrap_get_devices, -1); - rb_define_module_function(mRubycdio, "get_devices_ret", _wrap_get_devices_ret, -1); - rb_define_module_function(mRubycdio, "get_devices_with_cap", _wrap_get_devices_with_cap, -1); - rb_define_module_function(mRubycdio, "get_devices_with_cap_ret", _wrap_get_devices_with_cap_ret, -1); - rb_define_module_function(mRubycdio, "get_drive_cap", _wrap_get_drive_cap, -1); - rb_define_module_function(mRubycdio, "get_driver_name", _wrap_get_driver_name, -1); - rb_define_module_function(mRubycdio, "get_driver_id", _wrap_get_driver_id, -1); - rb_define_module_function(mRubycdio, "get_last_session", _wrap_get_last_session, -1); - rb_define_module_function(mRubycdio, "have_driver", _wrap_have_driver, -1); - rb_define_module_function(mRubycdio, "ATAPI?", _wrap_ATAPIq___, -1); - rb_define_module_function(mRubycdio, "is_binfile", _wrap_is_binfile, -1); - rb_define_module_function(mRubycdio, "is_cuefile", _wrap_is_cuefile, -1); - rb_define_module_function(mRubycdio, "cdio_is_device", _wrap_cdio_is_device, -1); - rb_define_module_function(mRubycdio, "device?", _wrap_deviceq___, -1); - rb_define_module_function(mRubycdio, "nrg?", _wrap_nrgq___, -1); - rb_define_module_function(mRubycdio, "tocfile?", _wrap_tocfileq___, -1); - rb_define_module_function(mRubycdio, "get_media_changed", _wrap_get_media_changed, -1); - - cHWInfo_t.klass = rb_define_class_under(mRubycdio, "HWInfo_t", rb_cObject); - SWIG_TypeClientData(SWIGTYPE_p_HWInfo_t, (void *) &cHWInfo_t); - rb_define_alloc_func(cHWInfo_t.klass, _wrap_HWInfo_t_allocate); - rb_define_method(cHWInfo_t.klass, "initialize", _wrap_new_HWInfo_t, -1); - rb_define_method(cHWInfo_t.klass, "hw=", _wrap_HWInfo_t_hw_set, -1); - rb_define_method(cHWInfo_t.klass, "hw", _wrap_HWInfo_t_hw_get, -1); - rb_define_method(cHWInfo_t.klass, "result=", _wrap_HWInfo_t_result_set, -1); - rb_define_method(cHWInfo_t.klass, "result", _wrap_HWInfo_t_result_get, -1); - cHWInfo_t.mark = 0; - cHWInfo_t.destroy = (void (*)(void *)) free_HWInfo_t; - rb_define_module_function(mRubycdio, "get_hwinfo", _wrap_get_hwinfo, -1); - rb_define_module_function(mRubycdio, "set_blocksize", _wrap_set_blocksize, -1); - rb_define_module_function(mRubycdio, "set_speed", _wrap_set_speed, -1); - rb_define_module_function(mRubycdio, "open_cd", _wrap_open_cd, -1); - rb_define_const(mRubycdio,"DISC_MODE_CD_DA", INT2NUM(CDIO_DISC_MODE_CD_DA)); - rb_define_const(mRubycdio,"DISC_MODE_CD_DATA", INT2NUM(CDIO_DISC_MODE_CD_DATA)); - rb_define_const(mRubycdio,"DISC_MODE_CD_XA", INT2NUM(CDIO_DISC_MODE_CD_XA)); - rb_define_const(mRubycdio,"DISC_MODE_CD_MIXED", INT2NUM(CDIO_DISC_MODE_CD_MIXED)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_ROM", INT2NUM(CDIO_DISC_MODE_DVD_ROM)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_RAM", INT2NUM(CDIO_DISC_MODE_DVD_RAM)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_R", INT2NUM(CDIO_DISC_MODE_DVD_R)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_RW", INT2NUM(CDIO_DISC_MODE_DVD_RW)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_PR", INT2NUM(CDIO_DISC_MODE_DVD_PR)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_PRW", INT2NUM(CDIO_DISC_MODE_DVD_PRW)); - rb_define_const(mRubycdio,"DISC_MODE_DVD_OTHER", INT2NUM(CDIO_DISC_MODE_DVD_OTHER)); - rb_define_const(mRubycdio,"DISC_MODE_NO_INFO", INT2NUM(CDIO_DISC_MODE_NO_INFO)); - rb_define_const(mRubycdio,"DISC_MODE_ERROR", INT2NUM(CDIO_DISC_MODE_ERROR)); - rb_define_const(mRubycdio,"DISC_MODE_CD_I", INT2NUM(CDIO_DISC_MODE_CD_I)); - rb_define_module_function(mRubycdio, "get_disc_last_lsn", _wrap_get_disc_last_lsn, -1); - rb_define_module_function(mRubycdio, "get_disc_mode", _wrap_get_disc_mode, -1); - rb_define_module_function(mRubycdio, "get_joliet_level", _wrap_get_joliet_level, -1); - rb_define_module_function(mRubycdio, "get_mcn", _wrap_get_mcn, -1); - rb_define_module_function(mRubycdio, "get_num_tracks", _wrap_get_num_tracks, -1); - rb_define_const(mRubycdio,"INCLUDE_CLASS", INT2NUM(0)); + size_t i; + + SWIG_InitRuntime(); + mRubycdio = rb_define_module("Rubycdio"); + + SWIG_InitializeModule(0); + for (i = 0; i < swig_module.size; i++) { + SWIG_define_class(swig_module.types[i]); + } + + SWIG_RubyInitializeTrackings(); + rb_define_const(mRubycdio, "CDIO_READ_MODE_AUDIO", SWIG_From_int((int)(CDIO_READ_MODE_AUDIO))); + rb_define_const(mRubycdio, "CDIO_READ_MODE_M1F1", SWIG_From_int((int)(CDIO_READ_MODE_M1F1))); + rb_define_const(mRubycdio, "CDIO_READ_MODE_M1F2", SWIG_From_int((int)(CDIO_READ_MODE_M1F2))); + rb_define_const(mRubycdio, "CDIO_READ_MODE_M2F1", SWIG_From_int((int)(CDIO_READ_MODE_M2F1))); + rb_define_const(mRubycdio, "CDIO_READ_MODE_M2F2", SWIG_From_int((int)(CDIO_READ_MODE_M2F2))); + rb_define_module_function(mRubycdio, "cdio_read_sectors", _wrap_cdio_read_sectors, -1); + rb_define_module_function(mRubycdio, "cdio_eject_media_drive", _wrap_cdio_eject_media_drive, -1); + rb_define_const(mRubycdio, "VERSION_NUM", SWIG_From_long((long)(LIBCDIO_VERSION_NUM))); + rb_define_const(mRubycdio, "INVALID_LBA", SWIG_From_long((long)(CDIO_INVALID_LBA))); + rb_define_const(mRubycdio, "INVALID_LSN", SWIG_From_long((long)(CDIO_INVALID_LSN))); + rb_define_const(mRubycdio, "CD_FRAMESIZE", SWIG_From_long((long)(CDIO_CD_FRAMESIZE))); + rb_define_const(mRubycdio, "CD_FRAMESIZE_RAW", SWIG_From_long((long)(CDIO_CD_FRAMESIZE_RAW))); + rb_define_const(mRubycdio, "ISO_BLOCKSIZE", SWIG_From_long((long)(CDIO_CD_FRAMESIZE))); + rb_define_const(mRubycdio, "M2F2_SECTOR_SIZE", SWIG_From_long((long)(M2F2_SECTOR_SIZE))); + rb_define_const(mRubycdio, "M2RAW_SECTOR_SIZE", SWIG_From_long((long)(M2RAW_SECTOR_SIZE))); + rb_define_module_function(mRubycdio, "audio_pause", _wrap_audio_pause, -1); + rb_define_module_function(mRubycdio, "audio_play_lsn", _wrap_audio_play_lsn, -1); + rb_define_module_function(mRubycdio, "audio_resume", _wrap_audio_resume, -1); + rb_define_module_function(mRubycdio, "audio_stop", _wrap_audio_stop, -1); + rb_define_const(mRubycdio, "READ_MODE_AUDIO", SWIG_From_long((long)(CDIO_READ_MODE_AUDIO))); + rb_define_const(mRubycdio, "READ_MODE_M1F1", SWIG_From_long((long)(CDIO_READ_MODE_M1F1))); + rb_define_const(mRubycdio, "READ_MODE_M1F2", SWIG_From_long((long)(CDIO_READ_MODE_M1F2))); + rb_define_const(mRubycdio, "READ_MODE_M2F1", SWIG_From_long((long)(CDIO_READ_MODE_M2F1))); + rb_define_const(mRubycdio, "READ_MODE_M2F2", SWIG_From_long((long)(CDIO_READ_MODE_M2F2))); + + cBuf_triple_t.klass = rb_define_class_under(mRubycdio, "Buf_triple_t", rb_cObject); + SWIG_TypeClientData(SWIGTYPE_p_Buf_triple_t, (void *) &cBuf_triple_t); + rb_define_alloc_func(cBuf_triple_t.klass, _wrap_Buf_triple_t_allocate); + rb_define_method(cBuf_triple_t.klass, "initialize", _wrap_new_Buf_triple_t, -1); + rb_define_method(cBuf_triple_t.klass, "data=", _wrap_Buf_triple_t_data_set, -1); + rb_define_method(cBuf_triple_t.klass, "data", _wrap_Buf_triple_t_data_get, -1); + rb_define_method(cBuf_triple_t.klass, "size=", _wrap_Buf_triple_t_size_set, -1); + rb_define_method(cBuf_triple_t.klass, "size", _wrap_Buf_triple_t_size_get, -1); + rb_define_method(cBuf_triple_t.klass, "drc=", _wrap_Buf_triple_t_drc_set, -1); + rb_define_method(cBuf_triple_t.klass, "drc", _wrap_Buf_triple_t_drc_get, -1); + cBuf_triple_t.mark = 0; + cBuf_triple_t.destroy = (void (*)(void *)) free_Buf_triple_t; + cBuf_triple_t.trackObjects = 0; + rb_define_module_function(mRubycdio, "lseek", _wrap_lseek, -1); + rb_define_module_function(mRubycdio, "read_cd", _wrap_read_cd, -1); + rb_define_module_function(mRubycdio, "read_sectors", _wrap_read_sectors, -1); + rb_define_module_function(mRubycdio, "read_data_bytes", _wrap_read_data_bytes, -1); + rb_define_const(mRubycdio, "TRACK_FORMAT_AUDIO", SWIG_From_long((long)(TRACK_FORMAT_AUDIO))); + rb_define_const(mRubycdio, "TRACK_FORMAT_CDI", SWIG_From_long((long)(TRACK_FORMAT_CDI))); + rb_define_const(mRubycdio, "TRACK_FORMAT_XA", SWIG_From_long((long)(TRACK_FORMAT_XA))); + rb_define_const(mRubycdio, "TRACK_FORMAT_DATA", SWIG_From_long((long)(TRACK_FORMAT_DATA))); + rb_define_const(mRubycdio, "TRACK_FORMAT_PSX", SWIG_From_long((long)(TRACK_FORMAT_PSX))); + rb_define_const(mRubycdio, "CDIO_TRACK_FLAG_FALSE", SWIG_From_long((long)(CDIO_TRACK_FLAG_FALSE))); + rb_define_const(mRubycdio, "CDIO_TRACK_FLAG_TRUE", SWIG_From_long((long)(CDIO_TRACK_FLAG_TRUE))); + rb_define_const(mRubycdio, "CDIO_TRACK_FLAG_ERROR", SWIG_From_long((long)(CDIO_TRACK_FLAG_ERROR))); + rb_define_const(mRubycdio, "CDIO_TRACK_FLAG_UNKNOWN", SWIG_From_long((long)(CDIO_TRACK_FLAG_UNKNOWN))); + rb_define_const(mRubycdio, "CDIO_CDROM_LBA", SWIG_From_long((long)(CDIO_CDROM_LBA))); + rb_define_const(mRubycdio, "CDIO_CDROM_MSF", SWIG_From_long((long)(CDIO_CDROM_MSF))); + rb_define_const(mRubycdio, "CDIO_CDROM_DATA_TRACK", SWIG_From_long((long)(CDIO_CDROM_DATA_TRACK))); + rb_define_const(mRubycdio, "CDIO_CDROM_CDI_TRACK", SWIG_From_long((long)(CDIO_CDROM_CDI_TRACK))); + rb_define_const(mRubycdio, "CDIO_CDROM_XA_TRACK", SWIG_From_long((long)(CDIO_CDROM_XA_TRACK))); + rb_define_const(mRubycdio, "AUDIO", SWIG_From_long((long)(AUDIO))); + rb_define_const(mRubycdio, "MODE1", SWIG_From_long((long)(MODE1))); + rb_define_const(mRubycdio, "MODE1_RAW", SWIG_From_long((long)(MODE1_RAW))); + rb_define_const(mRubycdio, "MODE2", SWIG_From_long((long)(MODE2))); + rb_define_const(mRubycdio, "MODE2_FORM1", SWIG_From_long((long)(MODE2_FORM1))); + rb_define_const(mRubycdio, "MODE2_FORM2", SWIG_From_long((long)(MODE2_FORM2))); + rb_define_const(mRubycdio, "MODE2_FORM_MIX", SWIG_From_long((long)(MODE2_FORM_MIX))); + rb_define_const(mRubycdio, "MODE2_RAW", SWIG_From_long((long)(MODE2_RAW))); + rb_define_const(mRubycdio, "INVALID_TRACK", SWIG_From_long((long)(CDIO_INVALID_TRACK))); + rb_define_const(mRubycdio, "CDROM_LEADOUT_TRACK", SWIG_From_long((long)(0xAA))); + rb_define_module_function(mRubycdio, "get_first_track_num", _wrap_get_first_track_num, -1); + rb_define_module_function(mRubycdio, "get_last_track_num", _wrap_get_last_track_num, -1); + rb_define_module_function(mRubycdio, "get_track", _wrap_get_track, -1); + rb_define_module_function(mRubycdio, "get_track_channels", _wrap_get_track_channels, -1); + rb_define_module_function(mRubycdio, "track_copy_permit?", _wrap_track_copy_permitq___, -1); + rb_define_module_function(mRubycdio, "get_track_format", _wrap_get_track_format, -1); + rb_define_module_function(mRubycdio, "track_green?", _wrap_track_greenq___, -1); + rb_define_module_function(mRubycdio, "get_track_last_lsn", _wrap_get_track_last_lsn, -1); + rb_define_module_function(mRubycdio, "get_track_lba", _wrap_get_track_lba, -1); + rb_define_module_function(mRubycdio, "get_track_lsn", _wrap_get_track_lsn, -1); + rb_define_module_function(mRubycdio, "get_track_msf", _wrap_get_track_msf, -1); + rb_define_module_function(mRubycdio, "get_track_preemphasis", _wrap_get_track_preemphasis, -1); + rb_define_module_function(mRubycdio, "get_track_sec_count", _wrap_get_track_sec_count, -1); + rb_define_const(mRubycdio, "DRIVE_CAP_ERROR", SWIG_From_long((long)(CDIO_DRIVE_CAP_ERROR))); + rb_define_const(mRubycdio, "DRIVE_CAP_UNKNOWN", SWIG_From_long((long)(CDIO_DRIVE_CAP_UNKNOWN))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_CLOSE_TRAY", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_CLOSE_TRAY))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_EJECT", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_EJECT))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_LOCK", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_LOCK))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_SELECT_SPEED", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_SELECT_SPEED))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_SELECT_DISC", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_SELECT_DISC))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_MULTI_SESSION", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_MULTI_SESSION))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_MEDIA_CHANGED", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_RESET", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_RESET))); + rb_define_const(mRubycdio, "DRIVE_CAP_MISC_FILE", SWIG_From_long((long)(CDIO_DRIVE_CAP_MISC_FILE))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_AUDIO", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_AUDIO))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_CD_DA", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_CD_DA))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_CD_G", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_CD_G))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_CD_R", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_CD_R))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_CD_RW", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_CD_RW))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_R", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_R))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_PR", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_PR))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_RAM", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_RAM))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_ROM", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_ROM))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_RW", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_RW))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_DVD_RPW", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_DVD_RPW))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_C2_ERRS", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_C2_ERRS))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_MODE2_FORM1", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_MODE2_FORM1))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_MODE2_FORM2", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_MODE2_FORM2))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_MCN", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_MCN))); + rb_define_const(mRubycdio, "DRIVE_CAP_READ_ISRC", SWIG_From_long((long)(CDIO_DRIVE_CAP_READ_ISRC))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_CD_R", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_CD_R))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_CD_RW", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_CD_RW))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD_R", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD_R))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD_PR", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD_PR))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD_RAM", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD_RAM))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD_RW", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD_RW))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD_RPW", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD_RPW))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_MT_RAINIER", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_MT_RAINIER))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_BURN_PROOF", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_BURN_PROOF))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_CD", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_CD))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE_DVD", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE_DVD))); + rb_define_const(mRubycdio, "DRIVE_CAP_WRITE", SWIG_From_long((long)(CDIO_DRIVE_CAP_WRITE))); + rb_define_const(mRubycdio, "MMC_HW_VENDOR_LEN", SWIG_From_long((long)(CDIO_MMC_HW_VENDOR_LEN))); + rb_define_const(mRubycdio, "MMC_HW_MODEL_LEN", SWIG_From_long((long)(CDIO_MMC_HW_MODEL_LEN))); + rb_define_const(mRubycdio, "MMC_HW_REVISION_LEN", SWIG_From_long((long)(CDIO_MMC_HW_REVISION_LEN))); + rb_define_const(mRubycdio, "SRC_IS_DISK_IMAGE_MASK", SWIG_From_long((long)(CDIO_SRC_IS_DISK_IMAGE_MASK))); + rb_define_const(mRubycdio, "SRC_IS_DEVICE_MASK", SWIG_From_long((long)(CDIO_SRC_IS_DEVICE_MASK))); + rb_define_const(mRubycdio, "SRC_IS_SCSI_MASK", SWIG_From_long((long)(CDIO_SRC_IS_SCSI_MASK))); + rb_define_const(mRubycdio, "SRC_IS_NATIVE_MASK", SWIG_From_long((long)(CDIO_SRC_IS_NATIVE_MASK))); + rb_define_const(mRubycdio, "DRIVER_UNKNOWN", SWIG_From_long((long)(DRIVER_UNKNOWN))); + rb_define_const(mRubycdio, "DRIVER_AIX", SWIG_From_long((long)(DRIVER_AIX))); + rb_define_const(mRubycdio, "DRIVER_BSDI", SWIG_From_long((long)(DRIVER_BSDI))); + rb_define_const(mRubycdio, "DRIVER_FREEBSD", SWIG_From_long((long)(DRIVER_FREEBSD))); + rb_define_const(mRubycdio, "DRIVER_LINUX", SWIG_From_long((long)(DRIVER_LINUX))); + rb_define_const(mRubycdio, "DRIVER_SOLARIS", SWIG_From_long((long)(DRIVER_SOLARIS))); + rb_define_const(mRubycdio, "DRIVER_OSX", SWIG_From_long((long)(DRIVER_OSX))); + rb_define_const(mRubycdio, "DRIVER_WIN32", SWIG_From_long((long)(DRIVER_WIN32))); + rb_define_const(mRubycdio, "DRIVER_CDRDAO", SWIG_From_long((long)(DRIVER_CDRDAO))); + rb_define_const(mRubycdio, "DRIVER_BINCUE", SWIG_From_long((long)(DRIVER_BINCUE))); + rb_define_const(mRubycdio, "DRIVER_NRG", SWIG_From_long((long)(DRIVER_NRG))); + rb_define_const(mRubycdio, "DRIVER_DEVICE", SWIG_From_long((long)(DRIVER_DEVICE))); + rb_define_const(mRubycdio, "MIN_DRIVER", SWIG_From_long((long)(CDIO_MIN_DRIVER))); + rb_define_const(mRubycdio, "MIN_DEVICE_DRIVER", SWIG_From_long((long)(CDIO_MIN_DEVICE_DRIVER))); + rb_define_const(mRubycdio, "MAX_DRIVER", SWIG_From_long((long)(CDIO_MAX_DRIVER))); + rb_define_const(mRubycdio, "MAX_DEVICE_DRIVER", SWIG_From_long((long)(CDIO_MAX_DEVICE_DRIVER))); + rb_define_const(mRubycdio, "DRIVER_OP_SUCCESS", SWIG_From_long((long)(DRIVER_OP_SUCCESS))); + rb_define_const(mRubycdio, "DRIVER_OP_ERROR", SWIG_From_long((long)(DRIVER_OP_ERROR))); + rb_define_const(mRubycdio, "DRIVER_OP_UNSUPPORTED", SWIG_From_long((long)(DRIVER_OP_UNSUPPORTED))); + rb_define_const(mRubycdio, "DRIVER_OP_UNINIT", SWIG_From_long((long)(DRIVER_OP_UNINIT))); + rb_define_const(mRubycdio, "DRIVER_OP_NOT_PERMITTED", SWIG_From_long((long)(DRIVER_OP_NOT_PERMITTED))); + rb_define_const(mRubycdio, "DRIVER_OP_BAD_PARAMETER", SWIG_From_long((long)(DRIVER_OP_BAD_PARAMETER))); + rb_define_const(mRubycdio, "DRIVER_OP_BAD_POINTER", SWIG_From_long((long)(DRIVER_OP_BAD_POINTER))); + rb_define_const(mRubycdio, "DRIVER_OP_NO_DRIVER", SWIG_From_long((long)(DRIVER_OP_NO_DRIVER))); + rb_define_const(mRubycdio, "FS_AUDIO", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_AUDIO))); + rb_define_const(mRubycdio, "FS_HIGH_SIERRA", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_HIGH_SIERRA))); + rb_define_const(mRubycdio, "FS_ISO_9660", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ISO_9660))); + rb_define_const(mRubycdio, "FS_INTERACTIVE", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_INTERACTIVE))); + rb_define_const(mRubycdio, "FS_HFS", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_HFS))); + rb_define_const(mRubycdio, "FS_UFS", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_UFS))); + rb_define_const(mRubycdio, "FS_EXT2", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_EXT2))); + rb_define_const(mRubycdio, "FS_ISO_HFS", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ISO_HFS))); + rb_define_const(mRubycdio, "FS_ISO_9660_INTERACTIVE", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ISO_9660_INTERACTIVE))); + rb_define_const(mRubycdio, "FS_3DO", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_3DO))); + rb_define_const(mRubycdio, "FS_XISO", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_XISO))); + rb_define_const(mRubycdio, "FS_UDFX", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_UDFX))); + rb_define_const(mRubycdio, "FS_UDF", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_UDF))); + rb_define_const(mRubycdio, "FS_ISO_UDF", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ISO_UDF))); + rb_define_const(mRubycdio, "FS_ANAL_XA", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_XA))); + rb_define_const(mRubycdio, "FS_ANAL_MULTISESSION", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_MULTISESSION))); + rb_define_const(mRubycdio, "FS_ANAL_PHOTO_CD", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_PHOTO_CD))); + rb_define_const(mRubycdio, "FS_ANAL_HIDDEN_TRACK", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_HIDDEN_TRACK))); + rb_define_const(mRubycdio, "FS_ANAL_CDTV", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_CDTV))); + rb_define_const(mRubycdio, "FS_ANAL_BOOTABLE", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_BOOTABLE))); + rb_define_const(mRubycdio, "FS_ANAL_VIDEOCD", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_VIDEOCD))); + rb_define_const(mRubycdio, "FS_ANAL_ROCKRIDGE", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_ROCKRIDGE))); + rb_define_const(mRubycdio, "FS_ANAL_JOLIET", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_JOLIET))); + rb_define_const(mRubycdio, "FS_ANAL_SVCD", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_SVCD))); + rb_define_const(mRubycdio, "FS_ANAL_CVD", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_CVD))); + rb_define_const(mRubycdio, "FS_ANAL_XISO", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_ANAL_XISO))); + rb_define_const(mRubycdio, "FS_MATCH_ALL", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_MATCH_ALL))); + rb_define_const(mRubycdio, "FS_UNKNOWN", SWIG_From_unsigned_SS_int((unsigned int)(CDIO_FS_UNKNOWN))); + rb_define_module_function(mRubycdio, "close_tray", _wrap_close_tray, -1); + rb_define_module_function(mRubycdio, "close", _wrap_close, -1); + rb_define_module_function(mRubycdio, "driver_errmsg", _wrap_driver_errmsg, -1); + rb_define_module_function(mRubycdio, "eject_media", _wrap_eject_media, -1); + rb_define_module_function(mRubycdio, "eject_media_drive", _wrap_eject_media_drive, -1); + rb_define_module_function(mRubycdio, "get_arg", _wrap_get_arg, -1); + rb_define_module_function(mRubycdio, "get_device", _wrap_get_device, -1); + rb_define_module_function(mRubycdio, "get_default_device_driver", _wrap_get_default_device_driver, -1); + rb_define_module_function(mRubycdio, "get_devices", _wrap_get_devices, -1); + rb_define_module_function(mRubycdio, "get_devices_ret", _wrap_get_devices_ret, -1); + rb_define_module_function(mRubycdio, "get_devices_with_cap", _wrap_get_devices_with_cap, -1); + rb_define_module_function(mRubycdio, "get_devices_with_cap_ret", _wrap_get_devices_with_cap_ret, -1); + rb_define_module_function(mRubycdio, "get_drive_cap", _wrap_get_drive_cap, -1); + rb_define_module_function(mRubycdio, "get_driver_name", _wrap_get_driver_name, -1); + rb_define_module_function(mRubycdio, "get_driver_id", _wrap_get_driver_id, -1); + rb_define_module_function(mRubycdio, "get_last_session", _wrap_get_last_session, -1); + rb_define_module_function(mRubycdio, "have_driver", _wrap_have_driver, -1); + rb_define_module_function(mRubycdio, "ATAPI?", _wrap_ATAPIq___, -1); + rb_define_module_function(mRubycdio, "is_binfile", _wrap_is_binfile, -1); + rb_define_module_function(mRubycdio, "is_cuefile", _wrap_is_cuefile, -1); + rb_define_module_function(mRubycdio, "cdio_is_device", _wrap_cdio_is_device, -1); + rb_define_module_function(mRubycdio, "device?", _wrap_deviceq___, -1); + rb_define_module_function(mRubycdio, "nrg?", _wrap_nrgq___, -1); + rb_define_module_function(mRubycdio, "tocfile?", _wrap_tocfileq___, -1); + rb_define_module_function(mRubycdio, "get_media_changed", _wrap_get_media_changed, -1); + + cHWInfo_t.klass = rb_define_class_under(mRubycdio, "HWInfo_t", rb_cObject); + SWIG_TypeClientData(SWIGTYPE_p_HWInfo_t, (void *) &cHWInfo_t); + rb_define_alloc_func(cHWInfo_t.klass, _wrap_HWInfo_t_allocate); + rb_define_method(cHWInfo_t.klass, "initialize", _wrap_new_HWInfo_t, -1); + rb_define_method(cHWInfo_t.klass, "hw=", _wrap_HWInfo_t_hw_set, -1); + rb_define_method(cHWInfo_t.klass, "hw", _wrap_HWInfo_t_hw_get, -1); + rb_define_method(cHWInfo_t.klass, "result=", _wrap_HWInfo_t_result_set, -1); + rb_define_method(cHWInfo_t.klass, "result", _wrap_HWInfo_t_result_get, -1); + cHWInfo_t.mark = 0; + cHWInfo_t.destroy = (void (*)(void *)) free_HWInfo_t; + cHWInfo_t.trackObjects = 0; + rb_define_module_function(mRubycdio, "get_hwinfo", _wrap_get_hwinfo, -1); + rb_define_module_function(mRubycdio, "set_blocksize", _wrap_set_blocksize, -1); + rb_define_module_function(mRubycdio, "set_speed", _wrap_set_speed, -1); + rb_define_module_function(mRubycdio, "open_cd", _wrap_open_cd, -1); + rb_define_const(mRubycdio, "DISC_MODE_CD_DA", SWIG_From_long((long)(CDIO_DISC_MODE_CD_DA))); + rb_define_const(mRubycdio, "DISC_MODE_CD_DATA", SWIG_From_long((long)(CDIO_DISC_MODE_CD_DATA))); + rb_define_const(mRubycdio, "DISC_MODE_CD_XA", SWIG_From_long((long)(CDIO_DISC_MODE_CD_XA))); + rb_define_const(mRubycdio, "DISC_MODE_CD_MIXED", SWIG_From_long((long)(CDIO_DISC_MODE_CD_MIXED))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_ROM", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_ROM))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_RAM", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_RAM))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_R", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_R))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_RW", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_RW))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_PR", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_PR))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_PRW", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_PRW))); + rb_define_const(mRubycdio, "DISC_MODE_DVD_OTHER", SWIG_From_long((long)(CDIO_DISC_MODE_DVD_OTHER))); + rb_define_const(mRubycdio, "DISC_MODE_NO_INFO", SWIG_From_long((long)(CDIO_DISC_MODE_NO_INFO))); + rb_define_const(mRubycdio, "DISC_MODE_ERROR", SWIG_From_long((long)(CDIO_DISC_MODE_ERROR))); + rb_define_const(mRubycdio, "DISC_MODE_CD_I", SWIG_From_long((long)(CDIO_DISC_MODE_CD_I))); + rb_define_module_function(mRubycdio, "get_disc_last_lsn", _wrap_get_disc_last_lsn, -1); + rb_define_module_function(mRubycdio, "get_disc_mode", _wrap_get_disc_mode, -1); + rb_define_module_function(mRubycdio, "get_joliet_level", _wrap_get_joliet_level, -1); + rb_define_module_function(mRubycdio, "get_mcn", _wrap_get_mcn, -1); + rb_define_module_function(mRubycdio, "get_num_tracks", _wrap_get_num_tracks, -1); + rb_define_const(mRubycdio, "INCLUDE_CLASS", SWIG_From_int((int)(0))); }