libgig  4.0.0
DiskImage Class Reference

Accessing AKAI image either from file or a drive (i.e. More...

#include <Akai.h>

Public Member Functions

 DiskImage (const char *path)
 Open an image from a file. More...
 
 DiskImage (int disk)
 Open an image from a device number (0='a:', 1='b:', etc...). More...
 
bool WriteImage (const char *path)
 Extract Akai data track and write it into a regular file. More...
 
virtual ~DiskImage ()
 
virtual akai_stream_state_t GetState () const
 
virtual int GetPos () const
 
virtual int SetPos (int Where, akai_stream_whence_t Whence=akai_stream_start)
 
virtual int Available (uint WordSize=1)
 
virtual int Read (void *pData, uint WordCount, uint WordSize)
 Returns number of successfully read words. More...
 
void ReadInt8 (uint8_t *pData, uint WordCount)
 
void ReadInt16 (uint16_t *pData, uint WordCount)
 
void ReadInt32 (uint32_t *pData, uint WordCount)
 
int ReadInt8 (uint8_t *pData)
 Returns number of successfully read 8 Bit words. More...
 
int ReadInt16 (uint16_t *pData)
 Returns number of successfully read 16 Bit words. More...
 
int ReadInt32 (uint32_t *pData)
 Returns number of successfully read 32 Bit words. More...
 
uint8_t ReadInt8 ()
 
uint16_t ReadInt16 ()
 
uint32_t ReadInt32 ()
 
virtual uint GetError () const
 

Protected Member Functions

void OpenStream (const char *path)
 
void swapBytes_16 (void *Word)
 
void swapBytes_32 (void *Word)
 

Protected Attributes

int mFile
 
bool mRegularFile
 
int mPos
 
int mCluster
 
int mClusterSize
 
int mSize
 
int mStartFrame
 
int mEndFrame
 
char * mpCache
 

Detailed Description

Accessing AKAI image either from file or a drive (i.e.

CDROM).

This class implements a hardware abstraction layer, providing an abstract streaming API to read from AKAI data images, no matter if the AKAI image is already available as image file or whether the respective hardware drive needs to be accessed directly (i.e. CDROM drive, ZIP drive). So the main task of this class is isolating operating system dependent file/hardware access.

Definition at line 108 of file Akai.h.

Constructor & Destructor Documentation

◆ DiskImage() [1/2]

DiskImage::DiskImage ( const char *  path)

Open an image from a file.

Definition at line 1264 of file Akai.cpp.

References OpenStream().

◆ DiskImage() [2/2]

DiskImage::DiskImage ( int  disk)

Open an image from a device number (0='a:', 1='b:', etc...).

Definition at line 1481 of file Akai.cpp.

References mClusterSize, mFile, mSize, and OpenStream().

◆ ~DiskImage()

DiskImage::~DiskImage ( )
virtual

Definition at line 1593 of file Akai.cpp.

References mFile, and mpCache.

Member Function Documentation

◆ Available()

int DiskImage::Available ( uint  WordSize = 1)
virtual

Definition at line 1653 of file Akai.cpp.

References mPos, and mSize.

Referenced by WriteImage().

◆ GetError()

virtual uint DiskImage::GetError ( ) const
inlinevirtual

Definition at line 136 of file Akai.h.

◆ GetPos()

int DiskImage::GetPos ( ) const
virtual

Definition at line 1623 of file Akai.cpp.

References mPos.

Referenced by AkaiProgram::Load().

◆ GetState()

akai_stream_state_t DiskImage::GetState ( ) const
virtual

Definition at line 1616 of file Akai.cpp.

References akai_stream_closed, akai_stream_end_reached, akai_stream_ready, mFile, mPos, and mSize.

◆ OpenStream()

void DiskImage::OpenStream ( const char *  path)
protected

Definition at line 1786 of file Akai.cpp.

References CD_FRAMESIZE, DISK_CLUSTER_SIZE, mClusterSize, mEndFrame, mFile, mpCache, mRegularFile, mSize, and mStartFrame.

Referenced by DiskImage().

◆ Read()

int DiskImage::Read ( void *  pData,
uint  WordCount,
uint  WordSize 
)
virtual

◆ ReadInt16() [1/3]

void DiskImage::ReadInt16 ( uint16_t *  pData,
uint  WordCount 
)

◆ ReadInt16() [2/3]

int DiskImage::ReadInt16 ( uint16_t *  pData)

Returns number of successfully read 16 Bit words.

Definition at line 1743 of file Akai.cpp.

References Read(), and swapBytes_16().

◆ ReadInt16() [3/3]

uint16_t DiskImage::ReadInt16 ( )

Definition at line 1766 of file Akai.cpp.

References Read(), and swapBytes_16().

Referenced by ReadInt16().

◆ ReadInt32() [1/3]

void DiskImage::ReadInt32 ( uint32_t *  pData,
uint  WordCount 
)

Definition at line 1732 of file Akai.cpp.

References ReadInt32().

Referenced by AkaiSample::LoadHeader().

◆ ReadInt32() [2/3]

int DiskImage::ReadInt32 ( uint32_t *  pData)

Returns number of successfully read 32 Bit words.

Definition at line 1751 of file Akai.cpp.

References Read(), and swapBytes_32().

◆ ReadInt32() [3/3]

uint32_t DiskImage::ReadInt32 ( )

Definition at line 1776 of file Akai.cpp.

References Read(), and swapBytes_32().

Referenced by ReadInt32().

◆ ReadInt8() [1/3]

void DiskImage::ReadInt8 ( uint8_t *  pData,
uint  WordCount 
)

Definition at line 1721 of file Akai.cpp.

References Read().

Referenced by AkaiProgram::Load(), and AkaiSample::LoadHeader().

◆ ReadInt8() [2/3]

int DiskImage::ReadInt8 ( uint8_t *  pData)

Returns number of successfully read 8 Bit words.

Definition at line 1739 of file Akai.cpp.

References Read().

◆ ReadInt8() [3/3]

uint8_t DiskImage::ReadInt8 ( )

Definition at line 1759 of file Akai.cpp.

References Read().

◆ SetPos()

◆ swapBytes_16()

void DiskImage::swapBytes_16 ( void *  Word)
inlineprotected

Definition at line 1899 of file Akai.cpp.

Referenced by ReadInt16().

◆ swapBytes_32()

void DiskImage::swapBytes_32 ( void *  Word)
inlineprotected

Definition at line 1906 of file Akai.cpp.

Referenced by ReadInt32().

◆ WriteImage()

bool DiskImage::WriteImage ( const char *  path)

Extract Akai data track and write it into a regular file.

Definition at line 1876 of file Akai.cpp.

References Available(), mFile, Read(), and SetPos().

Member Data Documentation

◆ mCluster

int DiskImage::mCluster
protected

Definition at line 154 of file Akai.h.

Referenced by Read().

◆ mClusterSize

int DiskImage::mClusterSize
protected

Definition at line 155 of file Akai.h.

Referenced by DiskImage(), OpenStream(), and Read().

◆ mEndFrame

int DiskImage::mEndFrame
protected

Definition at line 159 of file Akai.h.

Referenced by OpenStream().

◆ mFile

int DiskImage::mFile
protected

Definition at line 150 of file Akai.h.

Referenced by DiskImage(), GetState(), OpenStream(), Read(), WriteImage(), and ~DiskImage().

◆ mpCache

char* DiskImage::mpCache
protected

Definition at line 160 of file Akai.h.

Referenced by OpenStream(), Read(), and ~DiskImage().

◆ mPos

int DiskImage::mPos
protected

Definition at line 153 of file Akai.h.

Referenced by Available(), GetPos(), GetState(), Read(), and SetPos().

◆ mRegularFile

bool DiskImage::mRegularFile
protected

Definition at line 152 of file Akai.h.

Referenced by OpenStream(), and Read().

◆ mSize

int DiskImage::mSize
protected

Definition at line 156 of file Akai.h.

Referenced by Available(), DiskImage(), GetState(), OpenStream(), Read(), and SetPos().

◆ mStartFrame

int DiskImage::mStartFrame
protected

Definition at line 158 of file Akai.h.

Referenced by OpenStream(), and Read().


The documentation for this class was generated from the following files: