コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="cutPasteAction"></param>
 private void CopyPasteCopyDrumKits(bool cutPasteAction)
 {
     if (SelectedScopeSet == PcgViewModel.ScopeSet.Banks)
     {
         foreach (var drumKit in from IDrumKitBank bank in Banks.Where(bank => bank.IsSelected)
                  where bank.Type != BankType.EType.Gm
                  from IDrumKit drumKit in bank.Patches
                  where bank.IsLoaded
                  // Also copy INIT drum kits (for copying single INIT programs)
                  select drumKit)
         {
             // Always copy drum kits.
             PcgClipBoard.CopyDrumKitToClipBoard(drumKit, cutPasteAction);
         }
     }
     else
     {
         foreach (var drumKit in Patches.Where(patch => patch.IsSelected).Cast <IDrumKit>())
         {
             // Always copy drum kits.
             PcgClipBoard.CopyDrumKitToClipBoard(drumKit, 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);
                }
            }
        }