public override void Execute()
        {
            AudioChannel     audioChannel = Presentation.ChannelsManager.GetOrCreateAudioChannel();
            ChannelsProperty chProp       = m_TreeNode.GetOrCreateChannelsProperty();

            chProp.SetMedia(audioChannel, ManagedAudioMedia.Copy());
        }
        public void Init(TreeNode treeNode, ManagedAudioMedia managedAudioMediaSource, long bytePositionInsert, TreeNode currentTreeNode)
        {
            if (treeNode == null)
            {
                throw new ArgumentNullException("treeNode");
            }
            if (currentTreeNode == null)
            {
                throw new ArgumentNullException("treeNode");
            }

            if (bytePositionInsert == -1)
            {
                throw new ArgumentNullException("bytePositionInsert");
            }
            if (managedAudioMediaSource == null)
            {
                throw new ArgumentNullException("managedAudioMediaSource");
            }

            ManagedAudioMedia manMedia = treeNode.GetManagedAudioMedia();

            if (manMedia == null)
            {
                throw new ArgumentNullException("manMedia");
            }
            if (manMedia.Presentation != managedAudioMediaSource.Presentation)
            {
                throw new NodeInDifferentPresentationException("TreeNode vs ManagedAudioMedia");
            }
            if (manMedia.Presentation != Presentation)
            {
                throw new NodeInDifferentPresentationException("TreeNode vs ManagedAudioMedia");
            }

            if (!managedAudioMediaSource.HasActualAudioMediaData) // || !manMedia.HasActualAudioMediaData)
            {
                throw new ArgumentException("HasActualAudioMediaData");
            }

            TreeNode           = treeNode;
            CurrentTreeNode    = currentTreeNode;
            BytePositionInsert = bytePositionInsert;

            ManagedAudioMediaSource = managedAudioMediaSource;

            OriginalManagedAudioMedia = manMedia.Copy();

            m_UsedMediaData.Add(OriginalManagedAudioMedia.AudioMediaData);
            m_UsedMediaData.Add(ManagedAudioMediaSource.AudioMediaData);
            //m_UsedMediaData.Add(ManagedAudioMediaTarget.AudioMediaData); belongs to TreeNode, so no need to preserve it explicitely

            ShortDescription = "Insert new audio";
            LongDescription  = "Insert WaveAudioMediaData from a source ManagedAudioMedia into a target ManagedAudioMedia";
        }
Exemplo n.º 3
0
        public void Init(TreeNodeAndStreamSelection selection, TreeNode currentTreeNode)
        {
            if (selection == null)
            {
                throw new ArgumentNullException("selection");
            }
            if (selection.m_TreeNode == null)
            {
                throw new ArgumentNullException("selection.m_TreeNode");
            }
            if (currentTreeNode == null)
            {
                throw new ArgumentNullException("currentTreeNode");
            }

            //TreeNode = selection.m_TreeNode;

            CurrentTreeNode = currentTreeNode;
            SelectionData   = selection;

            //DebugFix.Assert(m_SelectionData.m_TreeNode == TreeNode);

            ShortDescription = "Delete audio portion";
            LongDescription  = "Delete a portion of audio for a given treenode";

            ManagedAudioMedia manMedia = m_SelectionData.m_TreeNode.GetManagedAudioMedia();

            if (manMedia == null)
            {
                throw new NullReferenceException("m_SelectionData.m_TreeNode.GetManagedAudioMedia()");
            }
            OriginalManagedAudioMedia = manMedia.Copy();
            m_UsedMediaData.Add(OriginalManagedAudioMedia.AudioMediaData);

#if DEBUG
            DebugFix.Assert(manMedia.Duration.IsEqualTo(OriginalManagedAudioMedia.Duration));
#endif //DEBUG

            ChannelsProperty chProp = m_SelectionData.m_TreeNode.GetChannelsProperty();
            foreach (Channel ch in chProp.UsedChannels)
            {
                if (manMedia == chProp.GetMedia(ch))
                {
                    ChannelOfOriginalMedia = ch;
                    break;
                }
            }
            DebugFix.Assert(ChannelOfOriginalMedia != null);
            DebugFix.Assert(ChannelOfOriginalMedia is AudioChannel);
        }
        public AlternateContent Copy()
        {
            AlternateContent ac = Presentation.AlternateContentFactory.Create(GetType());

            foreach (Metadata md in m_Metadata.ContentsAs_Enumerable)
            {
                ac.m_Metadata.Insert(ac.m_Metadata.Count, md.Copy());
            }

            if (m_Text != null)
            {
                ac.m_Text = m_Text.Copy();
            }
            if (m_Audio != null)
            {
                ac.m_Audio = m_Audio.Copy();
            }
            if (m_Image != null)
            {
                ac.m_Image = m_Image.Copy();
            }

            return(ac);
        }