--- libgig/trunk/src/DLS.cpp 2007/03/02 01:04:45 1050 +++ libgig/trunk/src/DLS.cpp 2007/03/18 07:13:06 1102 @@ -942,6 +942,15 @@ return pNewRegion; } + void Instrument::MoveRegion(Region* pSrc, Region* pDst) { + RIFF::List* lrgn = pCkInstrument->GetSubList(LIST_TYPE_LRGN); + lrgn->MoveSubChunk(pSrc->pCkRegion, pDst ? pDst->pCkRegion : 0); + + pRegions->remove(pSrc); + RegionList::iterator iter = find(pRegions->begin(), pRegions->end(), pDst); + pRegions->insert(iter, pSrc); + } + void Instrument::DeleteRegion(Region* pRegion) { if (!pRegions) return; RegionList::iterator iter = find(pRegions->begin(), pRegions->end(), pRegion);