MP3-Player-PktConcert

 view release on metacpan or  search on metacpan

Player/PktConcert/PktConcert.xs  view on Meta::CPAN

	if( track ) {
		RETVAL = track;
	} else {
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

SV *
open( self )
	ipc_t	*self
	PREINIT:
	int	rs;
	CODE:
	if( (rs = IPC_Open( self )) == -1 ) {
		XSRETURN_UNDEF;
	} else {
		RETVAL = newSViv( 1 );
	}
	OUTPUT:
	RETVAL

void
reset_tracks( self )
	ipc_t *self
	CODE:
	IPC_Reset_List_Tracks( self );

void
send_tracks( self, name, path, ... )
	ipc_t *self
	SV *name
	SV *path
	CODE:
	if( items > 3 ) {
		perl_callback = ST(3);
	}
	IPC_Send_Track( 
		self, 
		(const char *) SvPV_nolen( name ), 
		(const char *) SvPV_nolen( path ), 
		progress 
	);

void
delete_track( self, id )
	ipc_t *self
	SV *id
	PREINIT:
	u_int16_t track_id;
	CODE:
	track_id = SvIV( id );
	IPC_Delete_Track( self, track_id );

void
usage( self )
	ipc_t	*self
	PREINIT:
	u_int32_t *bfree;
	u_int32_t *btotal;
	PPCODE:
	bfree = (u_int32_t *)safemalloc( sizeof( u_int32_t ));
	btotal = (u_int32_t *)safemalloc( sizeof( u_int32_t ));
	IPC_Get_Usage( self, bfree, btotal );
	EXTEND( SP, 2 );
	PUSHs( sv_2mortal( newSViv( *bfree )));
	PUSHs( sv_2mortal( newSViv( *btotal )));

MODULE = MP3::Player::PktConcert		PACKAGE = MP3::Player::PktConcert::Track		

# ============================================================
# MP3::Player::PktConcert::Track CONSTRUCTIOR/DESTRUCTOR
# ============================================================

track_t *
new( CLASS )
	char *CLASS
	CODE:
	RETVAL = (track_t *)safemalloc( sizeof( track_t ));
	if( RETVAL == NULL ) {
		warn( "unable to allocate memory for MP3::Player::PktConcert::Track" );
		XSRETURN_UNDEF;
	}
	OUTPUT:
	RETVAL

void
DESTROY( self )
	track_t *self
	CODE:
	safefree( (char*) self );

# ============================================================
# MP3::Player::PktConcert::Track GETTERS/SETTERS
# ============================================================

SV *
name( self )
	track_t *self
	CODE:
	RETVAL = newSVpv( self->name, strlen( self->name ) );
	OUTPUT:
	RETVAL

SV *
id( self )
	track_t *self
	CODE:
	RETVAL = newSViv( self->id );
	OUTPUT:
	RETVAL

SV *
bytes( self )
	track_t *self
	ALIAS:
	MP3::Player::PktConcert::Track::size = 2
	CODE:
	RETVAL = newSViv( self->bytes );
	OUTPUT:
	RETVAL



( run in 1.652 second using v1.01-cache-2.11-cpan-5511b514fd6 )