bool GBAMGMSetStream(struct GBAMGMContext* mgm, struct VDir* stream) { if (mgm->movieStream && !mgm->movieStream->close(mgm->movieStream)) { return false; } if (mgm->metadataFile && !mgm->metadataFile->close(mgm->metadataFile)) { return false; } mgm->streamDir = stream; mgm->metadataFile = mgm->streamDir->openFile(mgm->streamDir, METADATA_FILENAME, O_CREAT | O_RDWR); mgm->currentInput = INVALID_INPUT; if (!_parseMetadata(mgm, mgm->metadataFile)) { mgm->metadataFile->close(mgm->metadataFile); mgm->metadataFile = 0; mgm->maxStreamId = 0; } mgm->streamId = 1; mgm->movieStream = 0; return true; }
bool GBARRInitStream(struct GBARRContext* rr, struct VDir* stream) { if (rr->movieStream && !rr->movieStream->close(rr->movieStream)) { return false; } if (rr->metadataFile && !rr->metadataFile->close(rr->metadataFile)) { return false; } rr->streamDir = stream; rr->metadataFile = rr->streamDir->openFile(rr->streamDir, METADATA_FILENAME, O_CREAT | O_RDWR); rr->currentInput = INVALID_INPUT; if (!_parseMetadata(rr, rr->metadataFile)) { rr->metadataFile->close(rr->metadataFile); rr->metadataFile = 0; rr->maxStreamId = 0; } rr->streamId = 1; rr->movieStream = 0; return true; }