|
using System.Text;
using Microsoft.DirectX.DirectSound;
namespace StreamComputers.Riff
{
/// <summary>
/// Contains static functions for developers working with MDX WAVE files and Buffers.
/// </summary>
public class MdxInfo
{
private MdxInfo() {}
/// <summary>
/// Returns a string representation of MDXWaveFormat properties.
/// </summary>
/// <param name="wf">MDX WaveFormat struct instance</param>
/// <returns>7-line string representation of properties</returns>
public static string WaveFormatAsString(WaveFormat wf)
{
StringBuilder wfs = new StringBuilder("MDX WaveFormat Properties:\n");
wfs.AppendFormat("AverageBytesPerSecond: {0}\n", wf.AverageBytesPerSecond);
wfs.AppendFormat("BitsPerSample: {0}\n", wf.BitsPerSample );
wfs.AppendFormat("BlockAlign: {0}\n", wf.BlockAlign );
wfs.AppendFormat("Channels: {0}\n", wf.Channels );
wfs.AppendFormat("FormatTag: {0}\n", wf.FormatTag );
wfs.AppendFormat("SamplesPerSecond: {0}\n", wf.SamplesPerSecond );
return wfs.ToString();
}
/// <summary>
/// Returns a string representation of BufferCaps properties.
/// </summary>
/// <param name="bc">MDX BufferCaps struct instance</param>
/// <returns>19=line string representation of properties</returns>
public static string BufferCapsAsString(BufferCaps bc)
{
StringBuilder bufCaps = new StringBuilder("MDX BufferCaps Properties:\n");
bufCaps.AppendFormat("BufferBytes: {0}\n", bc.BufferBytes);
bufCaps.AppendFormat("CanGetCurrentPosition: {0}\n", bc.CanGetCurrentPosition);
bufCaps.AppendFormat("Control3D: {0}\n", bc.Control3D);
bufCaps.AppendFormat("ControlEffects: {0}\n", bc.ControlEffects);
bufCaps.AppendFormat("ControlFrequency: {0}\n", bc.ControlFrequency);
bufCaps.AppendFormat("ControlPan: {0}\n", bc.ControlPan);
bufCaps.AppendFormat("ControlPositionNotify: {0}\n", bc.ControlPositionNotify);
bufCaps.AppendFormat("ControlVolume: {0}\n", bc.ControlVolume);
bufCaps.AppendFormat("GlobalFocus: {0}\n", bc.GlobalFocus);
bufCaps.AppendFormat("LocateInHardware: {0}\n", bc.LocateInHardware);
bufCaps.AppendFormat("LocateInSoftware: {0}\n", bc.LocateInSoftware);
bufCaps.AppendFormat("LocationDefer: {0}\n", bc.LocationDefer);
bufCaps.AppendFormat("Mute3DAtMaximumDistance: {0}\n", bc.Mute3DAtMaximumDistance);
bufCaps.AppendFormat("PlayCpuOverhead: {0}\n", bc.PlayCpuOverhead);
bufCaps.AppendFormat("PrimaryBuffer: {0}\n", bc.PrimaryBuffer);
bufCaps.AppendFormat("StaticBuffer: {0}\n", bc.StaticBuffer);
bufCaps.AppendFormat("StickyFocus: {0}\n", bc.StickyFocus);
bufCaps.AppendFormat("UnlockTransferRate: {0}\n", bc.UnlockTransferRate);
return bufCaps.ToString();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
My life and career have been a bit unusual (mostly in good ways). So, I'm grateful every day for the opportunities God's given me to do different things and see different aspects of life.
Education: B.S. Physics '73 (atmospheric physics, sounding rockets), M.S. Computer Science '76 (radio astronomy, fuzzy controllers, music pattern recognition and visualization) New Mexico Tech; Ph.D. Engineering '83 (parallel computer architecture, digital signal processing, economics) U.C. Berkeley.
I'm married to Susan, a wonderful woman whom I met in a Computer Architecture class at U.C. Berkeley.
Professional activities: Digital systems engineer, digital audio pioneer, founder or key in several tech startups, consulting engineer, expert witness. I'm currently developing a multithreading framework in C# .NET, that makes it almost easy to write correct programs for multicore processors. I'm also implementing a new transform for recognizing, editing, and processing signals, especially sound.
I'm an occasional essayist, public speaker, and podcaster, and free-market space advocate. I enjoy good wine, good music, good friends, and cats.
If you think your project could use a different point of view, I'm available for consulting work in the San Francisco Bay area, or (preferrably) via the net.