/// <summary> /// /// </summary> /// <param name="cutPasteAction"></param> private void CopyPasteCopySetLists(bool cutPasteAction) { if (SelectedScopeSet == PcgViewModel.ScopeSet.Banks) { foreach (var setListSlot in (from ISetList setList in Banks.Where(bank => bank.IsSelected) from ISetListSlot setListSlot in setList.Patches where setList.IsLoaded select setListSlot).Where(setListSlot => cutPasteAction || Settings.Default.CopyPaste_CopyIncompleteSetListSlots || setListSlot.IsCompleteInPcg)) { PcgClipBoard.CopySetListSlotToClipBoard(setListSlot, cutPasteAction); } } else { foreach (var setListSlot in Patches.Where(patch => patch.IsSelected).Cast <ISetListSlot>().Where( (setListSlot => cutPasteAction || Settings.Default.CopyPaste_CopyIncompleteSetListSlots || setListSlot.IsCompleteInPcg))) { PcgClipBoard.CopySetListSlotToClipBoard(setListSlot, cutPasteAction); } } }
/// <summary> /// /// </summary> /// <param name="cutPasteAction"></param> private void CopyPasteCopyPatches(bool cutPasteAction) { if (ProgramBanksSelected) { CopyPasteCopyPrograms(cutPasteAction); } else if (CombiBanksSelected) { CopyPasteCopyCombis(cutPasteAction); } else if (SetListsSelected) { CopyPasteCopySetLists(cutPasteAction); } else if (DrumKitBanksSelected) { CopyPasteCopyDrumKits(cutPasteAction); } else if (DrumPatternBanksSelected) { CopyPasteCopyDrumPatterns(cutPasteAction); } else if (WaveSequenceBanksSelected) { CopyPasteCopyWaveSequences(cutPasteAction); } else if (AllPatchesSelected) { // Copy programs. foreach (var program in Patches.Where(patch => patch.IsSelected && (patch is IProgram))) { // Always copy programs. PcgClipBoard.CopyProgramToClipBoard(program as IProgram, cutPasteAction); } // Copy combis. foreach (var combi in Patches.Where( patch => patch.IsSelected && (patch is ICombi)).Where( combi => cutPasteAction || Settings.Default.CopyPaste_CopyIncompleteCombis || ((ICombi)combi).IsCompleteInPcg)) { PcgClipBoard.CopyCombiToClipBoard(combi as ICombi, cutPasteAction); } // Copy set list slots. foreach (var setListSlot in Patches.Where(patch => patch.IsSelected && (patch is ISetListSlot)).Where( (setListSlot => cutPasteAction || Settings.Default.CopyPaste_CopyIncompleteSetListSlots || ((ISetListSlot)setListSlot).IsCompleteInPcg))) { PcgClipBoard.CopySetListSlotToClipBoard(setListSlot as ISetListSlot, cutPasteAction); } // Copy drum kits. foreach (var drumKit in Patches.Where(patch => patch.IsSelected && (patch is IDrumKit))) { // Always copy drum kits. PcgClipBoard.CopyDrumKitToClipBoard(drumKit as IDrumKit, cutPasteAction); } // Copy drum patterns. foreach (var drumPattern in Patches.Where(patch => patch.IsSelected && (patch is IDrumPattern))) { // Always copy patterns. PcgClipBoard.CopyDrumPatternToClipBoard(drumPattern as IDrumPattern, cutPasteAction); } // Copy wave sequences. foreach (var waveSequence in Patches.Where(patch => patch.IsSelected && (patch is IWaveSequence))) { // Always copy wave sequences. PcgClipBoard.CopyWaveSequenceToClipBoard(waveSequence as IWaveSequence, cutPasteAction); } } }