Example #1
0
int AalibUnload(int channel)
{
	if ((channel<1)||(channel>48))
	{
		return PSPAALIB_ERROR_INVALID_CHANNEL;
	}
	channels[channel].initialized=FALSE;
	if ((PSPAALIB_CHANNEL_WAV_1<=channel)&&(channel<=PSPAALIB_CHANNEL_WAV_32))
	{
		return UnloadWav(channel-PSPAALIB_CHANNEL_WAV_1);
	}
	if ((PSPAALIB_CHANNEL_OGG_1<=channel)&&(channel<=PSPAALIB_CHANNEL_OGG_10))
	{
		return UnloadOgg(channel-PSPAALIB_CHANNEL_OGG_1);
	}
	if ((PSPAALIB_CHANNEL_SCEMP3_1<=channel)&&(channel<=PSPAALIB_CHANNEL_SCEMP3_2))
	{
		return UnloadSceMp3(channel-PSPAALIB_CHANNEL_SCEMP3_1);
	}
	if ((PSPAALIB_CHANNEL_AT3_1<=channel)&&(channel<=PSPAALIB_CHANNEL_AT3_2))
	{
		return UnloadAt3(channel-PSPAALIB_CHANNEL_AT3_1);
	}
	return PSPAALIB_ERROR_INVALID_CHANNEL;
}
int LoadAt3(char* filename,int channel)
{
	if ((channel<0)||(channel>1))
	{
		return PSPAALIB_ERROR_AT3_INVALID_CHANNEL;
	}
	if (streamsAt3[channel].initialized)
	{
		UnloadAt3(channel);
	}
	SceUID file=sceIoOpen(filename,PSP_O_RDONLY,0777);
	if (file<=0)
	{
		return PSPAALIB_ERROR_AT3_INVALID_FILE;
	}
	streamsAt3[channel].dataSize=sceIoLseek(file,0,PSP_SEEK_END);
	sceIoLseek(file,0,PSP_SEEK_SET);
	streamsAt3[channel].data=malloc(streamsAt3[channel].dataSize);
	if (!streamsAt3[channel].data)
	{
		sceIoClose(file);
		return PSPAALIB_ERROR_AT3_INSUFFICIENT_RAM;
	}
	sceIoRead(file,streamsAt3[channel].data,streamsAt3[channel].dataSize);
	sceIoClose(file);
	streamsAt3[channel].id=sceAtracSetDataAndGetID(streamsAt3[channel].data,streamsAt3[channel].dataSize);
	if (streamsAt3[channel].id<0)
	{
		free(streamsAt3[channel].data);
		sceIoClose(file);
		return PSPAALIB_ERROR_AT3_GET_ID;
	}
	streamsAt3[channel].bufSize=0;
	streamsAt3[channel].paused=TRUE;
	streamsAt3[channel].autoloop=FALSE;
	streamsAt3[channel].initialized=TRUE;
	streamsAt3[channel].stopReason=PSPAALIB_STOP_JUST_LOADED;
	return PSPAALIB_SUCCESS;
}