EnvelopeProcessor::ErrorCode EnvelopeProcessor::processSelectedTakes() { ErrorCode res = eERRORCODE_OK; list<MediaItem*> items; GetSelectedMediaItems(items); if(items.empty()) return eERRORCODE_NOITEMSELECTED; Undo_BeginBlock2(0); for(list<MediaItem*>::iterator item = items.begin(); res == eERRORCODE_OK && item != items.end(); item++) { list<MediaItem_Take*> takes; GetMediaItemTakes(*item, takes, _envModParams.activeTakeOnly); //if(takes.empty()) // return eERRORCODE_NOITEMSELECTED; for(list<MediaItem_Take*>::iterator take = takes.begin(); take != takes.end(); take++) { res = processTakeEnv(*take); UpdateItemInProject(*item); if (res != eERRORCODE_OK) break; } } //Undo_OnStateChangeEx("Item Envelope LFO", UNDO_STATE_ALL, -1); // UpdateTimeline(); Undo_EndBlock2(NULL, __LOCALIZE("Take envelope processor","sws_undo"), UNDO_STATE_TRACKCFG); return eERRORCODE_OK; }
void GetSelectedMediaTakes(list<MediaItem_Take*> &takes, bool bActiveOnly) { takes.clear(); list<MediaItem*> items; GetSelectedMediaItems(items); for(list<MediaItem*>::iterator item = items.begin(); item != items.end(); item++) GetMediaItemTakes(*item, takes, bActiveOnly); }