Audio-RaveMP
view release on metacpan or search on metacpan
typedef SV * Audio__RaveMP;
typedef ravemp_slot *Audio__RaveMPSlot;
static unsigned slot_number(SV *sv)
{
unsigned retval = 0;
if (sv_isobject(sv) && sv_derived_from(sv, "Audio::RaveMPSlot")) {
ravemp_slot *slot = (ravemp_slot *)SvIV((SV*)SvRV(sv));
retval = slot->number;
}
return retval;
}
#define CHECK_RAVEMP \
if (!ravemp_check_idle()) XSRETURN_UNDEF
MODULE = Audio::RaveMP PACKAGE = Audio::RaveMP PREFIX = ravemp_
Audio::RaveMP
new(CLASS)
SV *CLASS
CODE:
RETVAL = CLASS;
OUTPUT:
RETVAL
void
show_status(self, arg=1)
Audio::RaveMP self
int arg
CODE:
ravemp_set_show_status(arg);
int
permitted(self)
Audio::RaveMP self
CODE:
RETVAL = ravemp_permitted();
OUTPUT:
RETVAL
int
is_ready(self)
Audio::RaveMP self
CODE:
RETVAL = ravemp_check_idle();
OUTPUT:
RETVAL
int
upload(self, fname, dest_name=NULL)
Audio::RaveMP self
char *fname
char *dest_name
CODE:
CHECK_RAVEMP;
RETVAL = ravemp_upload_file(fname, dest_name);
OUTPUT:
RETVAL
int
download(self, number, dest=NULL)
Audio::RaveMP self
unsigned number
char *dest
CODE:
CHECK_RAVEMP;
RETVAL = ravemp_download(number, dest);
OUTPUT:
RETVAL
AV *
contents(self, listall=0)
Audio::RaveMP self
unsigned listall
PREINIT:
int i, nslots=0;
ravemp_slot **slots = NULL;
CODE:
CHECK_RAVEMP;
slots = ravemp_contents(listall, &nslots);
RETVAL = newAV();
if (nslots) {
av_extend(RETVAL, nslots);
}
if (slots) {
for (i=0; slots[i]; i++) {
SV *sv = newSV(0);
sv_setref_pv(sv, "Audio::RaveMPSlot", (void*)slots[i]);
av_push(RETVAL, sv);
}
safefree(slots);
}
OUTPUT:
RETVAL
CLEANUP:
{
HV *stash = gv_stashpv("Audio::RaveMPSlotList", TRUE);
sv_bless(ST(0), stash);
}
MODULE = Audio::RaveMP PACKAGE = Audio::RaveMPSlotList PREFIX = ravemp_
void
DESTROY(sv_slots)
SV *sv_slots
PREINIT:
I32 i;
( run in 1.505 second using v1.01-cache-2.11-cpan-b16cb0d3907 )