void BNSDecoder::OpenFile() { u8 * tempbuff = new (std::nothrow) u8[file_fd->size()]; if(!tempbuff) { CloseFile(); return; } int done = 0; while(done < file_fd->size()) { int read = file_fd->read(tempbuff+done, file_fd->size()-done); if(read > 0) done += read; else { CloseFile(); return; } } SoundData = DecodefromBNS(tempbuff, done); if(SoundData.buffer == NULL) { CloseFile(); return; } delete [] tempbuff; tempbuff = NULL; Decode(); }
void BNSDecoder::OpenFile() { u8 *tempbuff = (u8*)MEM2_alloc(file_fd->size()); if(!tempbuff) { CloseFile(); return; } int done = 0; while(done < file_fd->size()) { int read = file_fd->read(tempbuff+done, file_fd->size()-done); if(read > 0) done += read; else { CloseFile(); MEM2_free(tempbuff); return; } } SoundData = DecodefromBNS(tempbuff, done); MEM2_free(tempbuff); if(SoundData.buffer == NULL) { CloseFile(); return; } Decode(); }