//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER
// REMAINS UNCHANGED.
//
// Email: yetiicb@hotmail.com
//
// Copyright (C) 2002-2003 Idael Cardoso.
//
using System;
using System.IO;
using System.Windows.Forms;
using WaveLib;
namespace Yeti.MMedia
{
public abstract class AudioWriter : BinaryWriter
{
protected WaveFormat m_InputDataFormat;
public AudioWriter(Stream Output, WaveFormat InputDataFormat)
:base(Output, System.Text.Encoding.ASCII)
{
m_InputDataFormat = InputDataFormat;
}
public AudioWriter(Stream Output, AudioWriterConfig Config)
:this(Output, Config.Format)
{
}
protected abstract int GetOptimalBufferSize();
private static int m_ConfigWidth = 368;
private static int m_ConfigHeight = 264;
protected virtual AudioWriterConfig GetWriterConfig()
{
return new AudioWriterConfig(m_InputDataFormat);
}
public AudioWriterConfig WriterConfig
{
get
{
return GetWriterConfig();
}
}
///
/// Width of the config control
///
public static int ConfigWidth
{
get
{
return m_ConfigWidth;
}
set
{
m_ConfigWidth = value;
}
}
///
/// Height of the config control
///
public static int ConfigHeight
{
get
{
return m_ConfigHeight;
}
set
{
m_ConfigHeight = value;
}
}
///
/// Optimal size of the buffer used in each write operation to obtain best performance.
/// This value must be greater than 0
///
public int OptimalBufferSize
{
get
{
return GetOptimalBufferSize();
}
}
public override void Write(string value)
{
throw new NotSupportedException("Write(string value) is not supported");
}
public override void Write(float value)
{
throw new NotSupportedException("Write(float value) is not supported");
}
public override void Write(ulong value)
{
throw new NotSupportedException("Write(ulong value) is not supported");
}
public override void Write(long value)
{
throw new NotSupportedException("Write(long value) is not supported");
}
public override void Write(uint value)
{
throw new NotSupportedException("Write(uint value) is not supported");
}
public override void Write(int value)
{
throw new NotSupportedException("Write(int value) is not supported");
}
public override void Write(ushort value)
{
throw new NotSupportedException("Write(ushort value) is not supported");
}
public override void Write(short value)
{
throw new NotSupportedException("Write(short value) is not supported");
}
public override void Write(decimal value)
{
throw new NotSupportedException("Write(decimal value) is not supported");
}
public override void Write(double value)
{
throw new NotSupportedException("Write(double value) is not supported");
}
public override void Write(char[] chars, int index, int count)
{
throw new NotSupportedException("Write(char[] chars, int index, int count) is not supported");
}
public override void Write(char[] chars)
{
throw new NotSupportedException("Write(char[] chars) is not supported");
}
public override void Write(char ch)
{
throw new NotSupportedException("Write(char ch) is not supported");
}
public override void Write(sbyte value)
{
throw new NotSupportedException("Write(sbyte value) is not supported");
}
public override void Write(byte value)
{
throw new NotSupportedException("Write(byte value) is not supported");
}
public override void Write(bool value)
{
throw new NotSupportedException("Write(bool value) is not supported");
}
}
}