예제 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="cutPasteAction"></param>
 private void CopyPasteCopyCombis(bool cutPasteAction)
 {
     if (SelectedScopeSet == PcgViewModel.ScopeSet.Banks)
     {
         foreach (var combi in (from ICombiBank bank in Banks.Where(bank => bank.IsSelected)
                                from ICombi combi in bank.Patches
                                where bank.IsLoaded
                                select combi).Where(combi => cutPasteAction ||
                                                    Settings.Default.CopyPaste_CopyIncompleteCombis || combi.IsCompleteInPcg))
         {
             PcgClipBoard.CopyCombiToClipBoard(combi, cutPasteAction);
         }
     }
     else
     {
         foreach (var combi in Patches.Where(
                      patch => patch.IsSelected).Cast <ICombi>().Where(
                      combi => cutPasteAction || Settings.Default.CopyPaste_CopyIncompleteCombis || combi.IsCompleteInPcg))
         {
             PcgClipBoard.CopyCombiToClipBoard(combi, cutPasteAction);
         }
     }
 }
예제 #2
0
        /// <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);
                }
            }
        }