//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES
// OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// � 2007 Gary W. Schwede and Stream Computers, Inc. All rights reserved.
// Contact: gary at streamcomputers dot com. Permission to incorporate
// all or part of this code in your application is given on the condition
// that this notice accompanies it in your code and documentation.
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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();
}
public static string VariableDeviceCapsAsString (Device d)
{
StringBuilder devCaps = new StringBuilder();
devCaps.AppendFormat("DirectX Device Capabilities that can change:\n");
devCaps.AppendFormat("FreeHardware3DAllBuffers: {0}\n", d.Caps.FreeHardware3DAllBuffers);
devCaps.AppendFormat("FreeHardware3DStaticBuffers: {0}\n", d.Caps.FreeHardware3DStaticBuffers);
devCaps.AppendFormat("FreeHardware3DStreamingBuffers: {0}\n", d.Caps.FreeHardware3DStreamingBuffers);
devCaps.AppendFormat("FreeHardwareMemoryBytes: {0}\n", d.Caps.FreeHardwareMemoryBytes);
devCaps.AppendFormat("FreeHardwareMixingAllBuffers: {0}\n", d.Caps.FreeHardwareMixingAllBuffers);
devCaps.AppendFormat("FreeHardwareMixingStaticBuffers: {0}\n", d.Caps.FreeHardwareMixingStaticBuffers);
devCaps.AppendFormat("FreeHardwareMixingStreamingBuffers: {0}\n", d.Caps.FreeHardwareMixingStreamingBuffers);
devCaps.AppendFormat("MaxContigousFreeHardwareMemoryBytes: {0}\n", d.Caps.MaxContigousFreeHardwareMemoryBytes);
devCaps.AppendFormat("PlayCpuOverheadSoftwareBuffers: {0}\n", d.Caps.PlayCpuOverheadSoftwareBuffers );
return devCaps.ToString();
}
public static string DeviceCapsAsString (Device d)
{
StringBuilder devCaps = new StringBuilder();
devCaps.AppendFormat("DirectX Device Capabilities:\n");
devCaps.AppendFormat("Driver WDM Certified: {0}\n", d.Caps.Certified);
devCaps.AppendFormat("ContinuousRate: {0}\n", d.Caps.ContinuousRate);
devCaps.AppendFormat("EmulateDriver: {0}\n", d.Caps.EmulateDriver);
devCaps.AppendFormat("FreeHardware3DAllBuffers: {0}\n", d.Caps.FreeHardware3DAllBuffers);
devCaps.AppendFormat("FreeHardware3DStaticBuffers: {0}\n", d.Caps.FreeHardware3DStaticBuffers);
devCaps.AppendFormat("FreeHardware3DStreamingBuffers: {0}\n", d.Caps.FreeHardware3DStreamingBuffers);
devCaps.AppendFormat("FreeHardwareMemoryBytes: {0}\n", d.Caps.FreeHardwareMemoryBytes);
devCaps.AppendFormat("FreeHardwareMixingAllBuffers: {0}\n", d.Caps.FreeHardwareMixingAllBuffers);
devCaps.AppendFormat("FreeHardwareMixingStaticBuffers: {0}\n", d.Caps.FreeHardwareMixingStaticBuffers);
devCaps.AppendFormat("FreeHardwareMixingStreamingBuffers: {0}\n", d.Caps.FreeHardwareMixingStreamingBuffers);
devCaps.AppendFormat("MaxContigousFreeHardwareMemoryBytes: {0}\n", d.Caps.MaxContigousFreeHardwareMemoryBytes);
devCaps.AppendFormat("MaxHardware3DAllBuffers: {0}\n", d.Caps.MaxHardware3DAllBuffers);
devCaps.AppendFormat("MaxHardware3DStaticBuffers: {0}\n", d.Caps.MaxHardware3DStaticBuffers);
devCaps.AppendFormat("MaxHardware3DStreamingBuffers: {0}\n", d.Caps.MaxHardware3DStreamingBuffers);
devCaps.AppendFormat("MaxHardwareMixingAllBuffers: {0}\n", d.Caps.MaxHardwareMixingAllBuffers);
devCaps.AppendFormat("MaxHardwareMixingStaticBuffers: {0}\n", d.Caps.MaxHardwareMixingStaticBuffers);
devCaps.AppendFormat("MaxHardwareMixingStreamingBuffers: {0}\n", d.Caps.MaxHardwareMixingStreamingBuffers);
devCaps.AppendFormat("MaxSecondarySampleRate: {0}\n", d.Caps.MaxSecondarySampleRate);
devCaps.AppendFormat("MinSecondarySampleRate: {0}\n", d.Caps.MinSecondarySampleRate );
devCaps.AppendFormat("PlayCpuOverheadSoftwareBuffers: {0}\n", d.Caps.PlayCpuOverheadSoftwareBuffers );
devCaps.AppendFormat("Primary16Bit: {0}\n", d.Caps.Primary16Bit );
devCaps.AppendFormat("Primary8Bit: {0}\n", d.Caps.Primary8Bit );
devCaps.AppendFormat("PrimaryBuffers: {0}\n", d.Caps.PrimaryBuffers );
devCaps.AppendFormat("PrimaryMono: {0}\n", d.Caps.PrimaryMono );
devCaps.AppendFormat("PrimaryStereo: {0}\n", d.Caps.PrimaryStereo );
devCaps.AppendFormat("Secondary16Bit: {0}\n", d.Caps.Secondary16Bit );
devCaps.AppendFormat("Secondary8Bit: {0}\n", d.Caps.Secondary8Bit );
devCaps.AppendFormat("SecondaryMono: {0}\n", d.Caps.SecondaryMono );
devCaps.AppendFormat("SecondaryStereo: {0}\n", d.Caps.SecondaryStereo );
devCaps.AppendFormat("TotalHardwareMemoryBytes: {0}\n", d.Caps.TotalHardwareMemoryBytes );
devCaps.AppendFormat("UnlockTransferRateHardwareBuffers: {0}\n", d.Caps.UnlockTransferRateHardwareBuffers );
return devCaps.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();
}
}
}