# special types
mng_handle O_OBJECT
mng_ptr T_PV
mng_pchar T_PV
# special because I made it up...
mng_chunkhandle T_UV
# types
mng_bool T_IV
mng_retcode T_UV
mng_speedtype T_IV
mng_chunkid T_UV
mng_imgtype T_UV
mng_chunkidp T_PTROBJ
# integer types
mng_uint8 T_UV
mng_uint16 T_UV
mng_uint32 T_UV
mng_int8 T_IV
mng_int16 T_IV
mng_int32 T_IV
mng_float T_DOUBLE
mngjpeg_dctmethod T_IV
# fixed length char array types (here, represented as strings
mng_uint8arr T_PV
mng_uint8arr4 T_PV
# fixed length non-char array types
mng_palette8 T_PTROBJ
mng_uint16arr T_PTROBJ
mng_uint32arr2 T_PTROBJ
mng_palette8e* T_PV
mng_palette8ep T_PV
# pointers to char arrays
mng_uint8p T_PV
mng_int8p T_PV
mng_uint8 * T_PV
mng_int8 * T_PV
# pointers to integer arrays (here, represented as char arrays)
# the user will have to know to pack() these...
mng_uint16p T_PV
mng_uint32p T_PV
mng_uint16 * T_PV
mng_uint32 * T_PV
mng_int32 * T_PV
#
mng_uint16p * T_PTROBJ
mng_uint32p * T_PTROBJ
# pointers to types
mng_handle * T_PTROBJ
mng_bool * T_PTROBJ
mng_chunkid * T_PTROBJ
mng_chunkidp * T_PTROBJ
mng_palette8 * T_PV
mng_pchar * T_PTROBJ
mng_ptr * T_PTROBJ
mng_uint16arr * T_PTROBJ
mng_uint32arr2 * T_PTROBJ
mng_uint8arr * T_PTROBJ
mng_uint8arr4 * T_PTROBJ
# CALLBACK TYPES need not be typemap'd
# mng_closestream T_PTROBJ
# mng_errorproc T_PTROBJ
# mng_getalphaline T_PTROBJ
# mng_getbkgdline T_PTROBJ
# mng_getcanvasline T_PTROBJ
# mng_gettickcount T_PTROBJ
# mng_iteratechunk T_PTROBJ
# mng_memalloc T_PTROBJ
# mng_memfree T_PTROBJ
# mng_openstream T_PTROBJ
# mng_processheader T_PTROBJ
# mng_processmend T_PTROBJ
# mng_processneed T_PTROBJ
# mng_processsave T_PTROBJ
# mng_processseek T_PTROBJ
# mng_processterm T_PTROBJ
# mng_processtext T_PTROBJ
# mng_processunknown T_PTROBJ
# mng_readdata T_PTROBJ
# mng_refresh T_PTROBJ
# mng_settimer T_PTROBJ
# mng_traceproc T_PTROBJ
# mng_writedata T_PTROBJ
INPUT
O_OBJECT
# seems to work...
if ( SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV )
{
$var = (mng_handle) SvIV( _MNG_GET_HANDLE($arg) );
}
else
{
my_warn( \"${Package}::$func_name() -- $var is not an object reference\" );
XSRETURN_IV(MNG_INVALIDHANDLE);
}
T_PTR_INT
$var = ($type)SvIV($arg);
OUTPUT
O_OBJECT
sv_setiv( _MNG_GET_HANDLE($arg), (long) $var );
T_PTR_INT
sv_setiv($arg, $var);