1937 |
RIFF::List* lstInstruments = pRIFF->GetSubList(LIST_TYPE_LINS); |
RIFF::List* lstInstruments = pRIFF->GetSubList(LIST_TYPE_LINS); |
1938 |
RIFF::List* lstInstr = lstInstruments->AddSubList(LIST_TYPE_INS); |
RIFF::List* lstInstr = lstInstruments->AddSubList(LIST_TYPE_INS); |
1939 |
Instrument* pInstrument = new Instrument(this, lstInstr); |
Instrument* pInstrument = new Instrument(this, lstInstr); |
1940 |
|
const size_t idxIt = InstrumentsIterator - pInstruments->begin(); |
1941 |
pInstruments->push_back(pInstrument); |
pInstruments->push_back(pInstrument); |
1942 |
|
InstrumentsIterator = pInstruments->begin() + std::min(idxIt, pInstruments->size()); // avoid iterator invalidation |
1943 |
return pInstrument; |
return pInstrument; |
1944 |
} |
} |
1945 |
|
|
1954 |
if (!pInstruments) return; |
if (!pInstruments) return; |
1955 |
InstrumentList::iterator iter = find(pInstruments->begin(), pInstruments->end(), pInstrument); |
InstrumentList::iterator iter = find(pInstruments->begin(), pInstruments->end(), pInstrument); |
1956 |
if (iter == pInstruments->end()) return; |
if (iter == pInstruments->end()) return; |
1957 |
|
const size_t idxIt = InstrumentsIterator - pInstruments->begin(); |
1958 |
pInstruments->erase(iter); |
pInstruments->erase(iter); |
1959 |
|
InstrumentsIterator = pInstruments->begin() + std::min(idxIt, pInstruments->size()); // avoid iterator invalidation |
1960 |
pInstrument->DeleteChunks(); |
pInstrument->DeleteChunks(); |
1961 |
delete pInstrument; |
delete pInstrument; |
1962 |
} |
} |