Audio-MikMod

 view release on metacpan or  search on metacpan

MikMod.xs  view on Meta::CPAN

/* $Id: MikMod.xs,v 1.2 1999/07/28 02:00:33 daniel Exp $ */

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include <mikmod.h>

static int
not_here(char *s) {
    croak("%s not implemented on this architecture", s);
    return -1;
}

static double
constant(char *name, int arg)
{
    errno = 0;
    switch (*name) {
    case 'A':
	break;
    case 'B':
	break;
    case 'C':
	break;
    case 'D':
	break;
    case 'E':
	break;
    case 'F':
	break;
    case 'G':
	break;
    case 'H':
	break;
    case 'I':
	break;
    case 'J':
	break;
    case 'K':
	break;
    case 'L':
	if (strEQ(name, "LIBMIKMOD_REVISION"))
#ifdef LIBMIKMOD_REVISION
	    return LIBMIKMOD_REVISION;
#else
	    goto not_there;
#endif
	if (strEQ(name, "LIBMIKMOD_VERSION"))
#ifdef LIBMIKMOD_VERSION
	    return LIBMIKMOD_VERSION;
#else
	    goto not_there;
#endif
	if (strEQ(name, "LIBMIKMOD_VERSION_MAJOR"))
#ifdef LIBMIKMOD_VERSION_MAJOR
	    return LIBMIKMOD_VERSION_MAJOR;
#else
	    goto not_there;
#endif
	if (strEQ(name, "LIBMIKMOD_VERSION_MINOR"))
#ifdef LIBMIKMOD_VERSION_MINOR
	    return LIBMIKMOD_VERSION_MINOR;
#else
	    goto not_there;
#endif
	break;
    case 'M':
	break;
    case 'N':
	break;
    case 'O':
	break;
    case 'P':
	break;
    case 'Q':
	break;
    case 'R':
	break;
    case 'S':
	if (strEQ(name, "SFX_CRITICAL"))
#ifdef SFX_CRITICAL
	    return SFX_CRITICAL;
#else
	    goto not_there;
#endif
	break;
    case 'T':
	break;
    case 'U':
	break;
    case 'V':
	break;
    case 'W':
	break;
    case 'X':
	break;
    case 'Y':
	break;
    case 'Z':
	break;
    }
    errno = EINVAL;
    return 0;

not_there:
    errno = ENOENT;
    return 0;
}

MODULE = Audio::MikMod		PACKAGE = Audio::MikMod

double
constant(name,arg)
	char *		name
	int		arg

UWORD
MikMod_md_mode(...)
	PROTOTYPE: ;$
	CODE:
	{
		if (items == 1)
			md_mode |= SvUV(ST(0));

		RETVAL = md_mode;
	}
	OUTPUT:
	RETVAL

BOOL
MikMod_Active()

BOOL
MikMod_EnableOutput()

void
MikMod_DisableOutput()

void
MikMod_Exit()

long
MikMod_GetVersion()

CHAR *
MikMod_InfoDriver()

CHAR *
MikMod_InfoLoader()

BOOL
MikMod_Init(...)
	PROTOTYPE: ;$
	PREINIT:
	CHAR	*parameters = NULL;
	STRLEN  len;

	CODE:
	{
		if (items == 1)
			parameters = (CHAR *)SvPV(ST(0), len);

		RETVAL = MikMod_Init(parameters);
	}
	OUTPUT:



( run in 2.137 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )