void BinkDecoder::close() { reset(); if (_audioStream) { // Stop audio g_system->getMixer()->stopHandle(_audioHandle); _audioStream = 0; } _audioStarted = false; for (int i = 0; i < 4; i++) { delete[] _curPlanes[i]; _curPlanes[i] = 0; delete[] _oldPlanes[i]; _oldPlanes[i] = 0; } deinitBundles(); for (int i = 0; i < 16; i++) { delete _huffman[i]; _huffman[i] = 0; } delete _bink; _bink = 0; _surface.free(); _audioTrack = 0; for (int i = 0; i < kSourceMAX; i++) { _bundles[i].countLength = 0; _bundles[i].huffman.index = 0; for (int j = 0; j < 16; j++) _bundles[i].huffman.symbols[j] = j; _bundles[i].data = 0; _bundles[i].dataEnd = 0; _bundles[i].curDec = 0; _bundles[i].curPtr = 0; } for (int i = 0; i < 16; i++) { _colHighHuffman[i].index = 0; for (int j = 0; j < 16; j++) _colHighHuffman[i].symbols[j] = j; } _audioTracks.clear(); _frames.clear(); }
Bink::~Bink() { VideoDecoder::deinit(); for (int i = 0; i < 4; i++) { delete[] _curPlanes[i]; delete[] _oldPlanes[i]; } deinitBundles(); for (int i = 0; i < 16; i++) delete _huffman[i]; delete _bink; }
void BinkDecoder::close() { reset(); // Stop audio stopAudio(); for (int i = 0; i < 4; i++) { delete[] _curPlanes[i]; _curPlanes[i] = 0; delete[] _oldPlanes[i]; _oldPlanes[i] = 0; } deinitBundles(); for (int i = 0; i < 16; i++) { delete _huffman[i]; _huffman[i] = 0; } delete _bink; _bink = 0; _surface.free(); _audioTrack = 0; for (int i = 0; i < kSourceMAX; i++) { _bundles[i].countLength = 0; _bundles[i].huffman.index = 0; for (int j = 0; j < 16; j++) _bundles[i].huffman.symbols[j] = j; _bundles[i].data = 0; _bundles[i].dataEnd = 0; _bundles[i].curDec = 0; _bundles[i].curPtr = 0; } for (int i = 0; i < 16; i++) { _colHighHuffman[i].index = 0; for (int j = 0; j < 16; j++) _colHighHuffman[i].symbols[j] = j; } _audioTracks.clear(); _frames.clear(); }