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"; }
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); }