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; }