33 #if !defined(_CARBON_) && !defined(__APPLE__) && !defined(WIN32) 44 #include <sys/types.h> 46 #include <sys/fcntl.h> 48 #if defined(_CARBON_) || defined(__APPLE__) || LINUX 49 # include <sys/ioctl.h> 53 typedef unsigned int uint;
56 # include <linux/cdrom.h> 93 # define CD_FRAMESIZE 2048 96 #define DISK_CLUSTER_SIZE 61440 98 typedef std::string
String;
119 virtual int GetPos()
const;
122 virtual int Available (uint WordSize = 1);
123 virtual int Read (
void* pData, uint WordCount, uint WordSize);
125 void ReadInt8(uint8_t* pData, uint WordCount);
126 void ReadInt16(uint16_t* pData, uint WordCount);
127 void ReadInt32(uint32_t* pData, uint WordCount);
149 #elif defined _CARBON_ || defined(__APPLE__) || LINUX 230 void AkaiToAscii(
char * buffer,
int length);
304 bool LoadSampleData();
305 void ReleaseSampleData();
307 int Read(
void* pBuffer, uint SampleCount);
463 bool mSampleKeyTracking[4];
465 uint8_t mSampleAuxOutOffset[4];
467 int16_t mVelocityToSampleStart[4];
469 int8_t mVelocityToVolumeOffset[4];
486 uint ListSamples(std::list<String>& rSamples);
554 int8_t mKeyTemperament[11];
603 std::list<AkaiSample*> mpSamples;
622 uint ListPrograms(std::list<AkaiDirEntry>& rPrograms);
627 uint ListSamples(std::list<AkaiDirEntry>& rSamples);
645 std::list<AkaiProgram*> mpPrograms;
646 std::list<AkaiSample*> mpSamples;
664 uint ListVolumes(std::list<AkaiDirEntry>& rVolumes);
681 std::list<AkaiVolume*> mpVolumes;
701 uint GetPartitionCount();
706 std::list<AkaiPartition*> mpPartitions;
709 #define AKAI_FILE_ENTRY_SIZE 24 710 #define AKAI_DIR_ENTRY_OFFSET 0xca 711 #define AKAI_DIR_ENTRY_SIZE 16 712 #define AKAI_ROOT_ENTRY_OFFSET 0x0 714 #define AKAI_PARTITION_END_MARK 0x8000 715 #define AKAI_BLOCK_SIZE 0x2000 717 #define AKAI_FAT_OFFSET 0x70a 719 #define AKAI_MAX_FILE_ENTRIES_S1000 125 //should be 128 ?? 720 #define AKAI_MAX_FILE_ENTRIES_S3000 509 // should be 512 ?? 721 #define AKAI_MAX_DIR_ENTRIES 100 722 #define AKAI_TYPE_DIR_S1000 1 723 #define AKAI_TYPE_DIR_S3000 3 725 #define AKAI_PROGRAM_ID 1 726 #define AKAI_KEYGROUP_ID 2 727 #define AKAI_SAMPLE_ID 3
uint8_t mMidiProgramNumber
uint8_t mPressureToFilter
uint8_t mModulationToLFODepth
uint8_t mStereoOutputScale
bool WriteImage(const char *path)
Extract Akai data track and write it into a regular file.
virtual int Available(uint WordSize=1)
uint8_t mVelocityToFilter
void SetOffset(uint Offset)
int8_t mSoftpedToTuneSemitones
Encapsulates one disk partition of an AKAI disk.
int8_t mSoftpedToTuneCents
virtual int SetPos(int Where, akai_stream_whence_t Whence=akai_stream_start)
void swapBytes_32(void *Word)
uint8_t mVoiceOutputScale
virtual uint GetError() const
DiskImage(const char *path)
Open an image from a file.
uint8_t mEnveloppe2ToFilter
int8_t mKeyToDecayAndRelease
Toplevel AKAI image interpreter.
void OpenStream(const char *path)
int8_t mOffVelocityToRelease
int8_t mVelocityToEnveloppe2ToFilter
uint16_t mSamplingFrequency
virtual akai_stream_state_t GetState() const
Accessing AKAI image either from file or a drive (i.e.
bool mHoldAttackUntilLoop
int8_t mVelocityToRelease
uint8_t mVelocityToLFODepth
AkaiDiskElement(uint Offset=0)
int8_t mEnveloppe2ToPitch
uint8_t mNumberOfKeygroups
AKAI instrument definition.
bool mVelocityZoneCrossfade
Subdivision of an AKAI disk partition.
uint32_t mNumberOfSamples
virtual int GetPos() const
uint8_t mPressureToLFODepth
AkaiPartition * GetParent()
virtual int Read(void *pData, uint WordCount, uint WordSize)
Returns number of successfully read words.
AkaiKeygroup * mpKeygroups
void swapBytes_16(void *Word)