OpenPcmInputStreamOfManagedAudioMediaFlattened(DelegateAudioPcmStreamFound del, bool openSecondaryStream) { #if USE_NORMAL_LIST StreamWithMarkers? #else StreamWithMarkers #endif //USE_NORMAL_LIST val = OpenPcmInputStreamOfManagedAudioMedia(openSecondaryStream); if (val != null) { if (del != null) { del.Invoke( val. #if USE_NORMAL_LIST GetValueOrDefault(). #endif //USE_NORMAL_LIST m_Stream.Length ); } return(val); } #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <StreamWithMarkers> listStreamsWithMarkers = new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <StreamWithMarkers>(); for (int index = 0; index < mChildren.Count; index++) { TreeNode node = mChildren.Get(index); #if USE_NORMAL_LIST StreamWithMarkers? #else StreamWithMarkers #endif //USE_NORMAL_LIST childVal = node.OpenPcmInputStreamOfManagedAudioMediaFlattened(del, openSecondaryStream); if (childVal != null) { listStreamsWithMarkers.Add( childVal #if USE_NORMAL_LIST .GetValueOrDefault() #endif //USE_NORMAL_LIST ); } } if (listStreamsWithMarkers.Count == 0) { return(null); } StreamWithMarkers returnVal = new StreamWithMarkers(); returnVal.m_SubStreamMarkers = new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <TreeNodeAndStreamDataLength>(); #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <Stream> listStreams = new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <Stream>(); #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <Stream> listSecondaryStreams = openSecondaryStream ? new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <Stream>() : null; #if USE_NORMAL_LIST foreach (StreamWithMarkers strct in listStreamsWithMarkers) { listStreams.Add(strct.m_Stream); if (openSecondaryStream) { listSecondaryStreams.Add(strct.m_SecondaryStream); } returnVal.m_SubStreamMarkers.AddRange(strct.m_SubStreamMarkers); strct.m_SubStreamMarkers.Clear(); } #else LightLinkedList <StreamWithMarkers> .Item current = listStreamsWithMarkers.m_First; while (current != null) { StreamWithMarkers swm = current.m_data; listStreams.Add(swm.m_Stream); if (openSecondaryStream) { listSecondaryStreams.Add(swm.m_SecondaryStream); } returnVal.m_SubStreamMarkers.AddRange(swm.m_SubStreamMarkers); swm.m_SubStreamMarkers.Clear(); current = current.m_nextItem; } #endif //USE_NORMAL_LIST returnVal.m_Stream = new SequenceStream(listStreams); if (openSecondaryStream) { returnVal.m_SecondaryStream = new SequenceStream(listSecondaryStreams); } listStreamsWithMarkers.Clear(); listStreamsWithMarkers = null; return(returnVal); }
OpenPcmInputStreamOfManagedAudioMedia(bool openSecondaryStream) { StreamWithMarkers val = new StreamWithMarkers(); //#if USE_NORMAL_LIST // StreamWithMarkers val; //#else // StreamWithMarkers val = new StreamWithMarkers(); //#endif //USE_NORMAL_LIST ManagedAudioMedia audioMedia = GetManagedAudioMedia(); if (audioMedia != null && audioMedia.IsWavAudioMediaData) { val.m_Stream = audioMedia.AudioMediaData.OpenPcmInputStream(); if (openSecondaryStream) { val.m_SecondaryStream = audioMedia.AudioMediaData.OpenPcmInputStream(); } val.m_SubStreamMarkers = new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <TreeNodeAndStreamDataLength>( #if USE_NORMAL_LIST 1 #endif //USE_NORMAL_LIST ); TreeNodeAndStreamDataLength tnasdl = new TreeNodeAndStreamDataLength(); tnasdl.m_LocalStreamDataLength = val.m_Stream.Length; tnasdl.m_TreeNode = this; val.m_SubStreamMarkers.Add(tnasdl); return(val); } #if ENABLE_SEQ_MEDIA SequenceMedia seq = GetManagedAudioSequenceMedia(); if (seq != null) { Stream stream = seq.OpenPcmInputStreamOfManagedAudioMedia(); if (stream != null) { val.m_Stream = stream; val.m_SubStreamMarkers = new #if USE_NORMAL_LIST List #else LightLinkedList #endif //USE_NORMAL_LIST <TreeNodeAndStreamDataLength>( #if USE_NORMAL_LIST 1 #endif //USE_NORMAL_LIST ); TreeNodeAndStreamDataLength tnasdl = new TreeNodeAndStreamDataLength(); tnasdl.m_LocalStreamDataLength = val.m_Stream.Length; tnasdl.m_TreeNode = this; val.m_SubStreamMarkers.Add(tnasdl); return(val); } } #endif //ENABLE_SEQ_MEDIA return(null); }