public static XEFAudioSubframe FromReader(BinaryReader reader) { XEFAudioSubframe audioSubframe = new XEFAudioSubframe(); audioSubframe.SubFrameNumber = reader.ReadUInt32(); audioSubframe.EventBitField = reader.ReadUInt32(); audioSubframe.TimeCounter = reader.ReadUInt64(); audioSubframe.BeamMode = reader.ReadInt32(); audioSubframe.BeamAngle = reader.ReadSingle(); audioSubframe.BeamAngleConfidence = reader.ReadSingle(); audioSubframe.SpeakerTrackingIdCount = reader.ReadUInt32(); for (int j = 0; j < audioSubframe.SpeakerTrackingIds.Length; j++) { audioSubframe.SpeakerTrackingIds[j] = reader.ReadUInt64(); } for (int j = 0; j < audioSubframe.OutBuffer.Length; j++) { audioSubframe.OutBuffer[j] = reader.ReadSingle(); } for (int j = 0; j < audioSubframe.MicBuffer.Length; j++) { audioSubframe.MicBuffer[j] = reader.ReadSingle(); } for (int j = 0; j < audioSubframe.SpkBuffer.Length; j++) { audioSubframe.SpkBuffer[j] = reader.ReadSingle(); } for (int j = 0; j < audioSubframe.ReservedByteArray.Length; j++) { audioSubframe.ReservedByteArray[j] = reader.ReadByte(); } return(audioSubframe); }
public static XEFAudioFrame FromByteArray(byte[] data) { XEFAudioFrame audioData = new XEFAudioFrame(); using (MemoryStream stream = new MemoryStream(data)) { using (BinaryReader reader = new BinaryReader(stream)) { audioData.Version = reader.ReadUInt32(); audioData.SubFrameCount = reader.ReadUInt32(); audioData.SubFramesAllocated = reader.ReadUInt32(); audioData.Reserved = reader.ReadUInt32(); Debug.Assert(audioData.SubFrameCount == audioData.SubFramesAllocated); audioData.SubFrames = new XEFAudioSubframe[audioData.SubFrameCount]; for (int i = 0; i < audioData.SubFrameCount; i++) { audioData.SubFrames[i] = XEFAudioSubframe.FromReader(reader); } } } return(audioData); }