void ADD_UNDO_FUNC(Playlist(void)){ struct Tracker_Windows *window = root->song->tracker_windows; Undo_Add( window->l.num, window->wblock->l.num, window->curr_track, window->wblock->curr_realline, BL_copy(), Undo_Do_Playlist, "Playlist" ); }
static void *Undo_Do_Playlist( struct Tracker_Windows *window, struct WBlocks *wblock, struct WTracks *wtrack, int realline, void *pointer ){ int *ret = BL_copy(); BL_paste(pointer); BS_UpdateBlockList(); BS_UpdatePlayList(); return ret; }
void Undo_Block_Delete( NInt blockpos ){ struct Tracker_Windows *window=root->song->tracker_windows; struct WBlocks *wblock=window->wblock; struct Undo_Block_InsertDelete *ubi=talloc(sizeof(struct Undo_Block_InsertDelete)); ubi->blockpos=blockpos; ubi->wblock=(struct WBlocks *)ListFindElement1(&window->wblocks->l,blockpos); ubi->playlist=BL_copy(); Undo_Add( window->l.num, wblock->l.num, window->curr_track, wblock->curr_realline, ubi, Undo_Do_Block_Delete ); }