using System.IO;
///
/// GTA audio sharp namespace
///
namespace GTAAudioSharp
{
///
/// Commitable memory stream class
///
public class CommitableMemoryStream : MemoryStream
{
///
/// GTA audio file
///
private AGTAAudioFile gtaAudioFile;
///
/// On close
///
internal OnCloseGTAAudioFileEventHandler OnClose;
///
/// Constructor
///
/// GTA audio file
/// Sample rate
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile) : base()
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Buffer
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, byte[] buffer) : base(buffer)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Capacity
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, int capacity) : base(capacity)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Buffer
/// Writable
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, byte[] buffer, bool writable) : base(buffer, writable)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Buffer
/// Index
/// Count
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, byte[] buffer, int index, int count) : base(buffer, index, count)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Buffer
/// Index
/// Count
/// Writable
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, byte[] buffer, int index, int count, bool writable) : base(buffer, index, count, writable)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Constructor
///
/// GTA audio file
/// Sample rate
/// Buffer
/// Index
/// Count
/// Writable
/// Publicly visible
internal CommitableMemoryStream(AGTAAudioFile gtaAudioFile, byte[] buffer, int index, int count, bool writable, bool publiclyVisible) : base(buffer, index, count, writable, publiclyVisible)
{
this.gtaAudioFile = gtaAudioFile;
}
///
/// Close();
///
public override void Close()
{
if (OnClose != null)
{
OnClose(gtaAudioFile, this);
OnClose = null;
}
base.Close();
}
}
}