| 519 | } |
| 520 | |
| 521 | result WavStream::loadMem(unsigned char *aData, unsigned int aDataLen, bool aCopy, bool aTakeOwnership) |
| 522 | { |
| 523 | delete[] mFilename; |
| 524 | delete mMemFile; |
| 525 | mStreamFile = 0; |
| 526 | mMemFile = 0; |
| 527 | mFilename = 0; |
| 528 | mSampleCount = 0; |
| 529 | |
| 530 | if (aData == NULL || aDataLen == 0) |
| 531 | return INVALID_PARAMETER; |
| 532 | |
| 533 | MemoryFile *mf = new MemoryFile(); |
| 534 | int res = mf->openMem(aData, aDataLen, aCopy, aTakeOwnership); |
| 535 | if (res != SO_NO_ERROR) |
| 536 | { |
| 537 | delete mf; |
| 538 | return res; |
| 539 | } |
| 540 | |
| 541 | res = parse(mf); |
| 542 | |
| 543 | if (res != SO_NO_ERROR) |
| 544 | { |
| 545 | delete mf; |
| 546 | return res; |
| 547 | } |
| 548 | |
| 549 | mMemFile = mf; |
| 550 | |
| 551 | return 0; |
| 552 | } |
| 553 | |
| 554 | result WavStream::loadToMem(const char *aFilename) |
| 555 | { |