/// <summary> /// /// </summary> /// <param name="program"></param> /// <param name="clearAfterCopy"></param> /// <returns></returns> public IClipBoardProgram CopyProgramToClipBoard(IProgram program, bool clearAfterCopy) { if (!((IBank)(program.Parent)).IsLoaded) { return(null); } var clipBoardProgram = new ClipBoardProgram(program); Programs[((int)((IProgramBank)(program.Parent)).BankSynthesisType)].CopiedPatches.Add(clipBoardProgram); if (clearAfterCopy) { program.Clear(); } // Copy used drum kits. if (!CutPasteSelected) { foreach (var drumKit in program.UsedDrumKits) { CopyDrumKitOfProgramToClipBoard(drumKit, clipBoardProgram); } } /*TODO DRUM TRACK PROGRAM * // Copy used drum track program. * if (!CutPasteSelected) * { * //TODO CopyDrumProgramOfProgramToClipBoard(clipBoardProgram.dru) * } */ return(clipBoardProgram); }