Skip to content

Commit

Permalink
Initial code upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Michalik committed Sep 13, 2014
1 parent 07527cb commit b12d4ca
Show file tree
Hide file tree
Showing 37 changed files with 5,764 additions and 0 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
34 changes: 34 additions & 0 deletions FIODEV/BITREV.TAB
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
static BYTE ucBitRev[256] = {
0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff,
};
444 changes: 444 additions & 0 deletions FIODEV/C00/WAVFIL.C

Large diffs are not rendered by default.

180 changes: 180 additions & 0 deletions FIODEV/C00/WAVFIL.H
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
/************************************************************************/
/* Wave File Definitions (DOS): WavFil.h V2.00 07/15/94 */
/* Copyright (c) 1987-1994 Andrew J. Michalik */
/* */
/************************************************************************/
#define WIOMAXNAM 256 /* Max length of file name */
#define CHKNAMLEN 4
#define CHKSIZLEN 4

/************************************************************************/
/* Declarations for Windows KERNEL Functions */
/************************************************************************/
#if !(defined (WM_NULL)) /* No Win */
typedef UINT HTASK;
typedef signed long LONG;
#elif !(defined (WF_ENHANCED)) /* Win 2.x */
#elif !(defined (WF_PAGING)) /* Win 2 & 3.0 */
#elif (defined (WF_PAGING)) /* Win 3.1 only */
#endif

/************************************************************************/
/************************************************************************/
typedef UINT HMMIO;
typedef unsigned long FOURCC; /* a four character code */
typedef char _huge * HPSTR; /* a huge version of LPSTR */
typedef void far * LPMMIOPROC;

/************************************************************************/
/************************************************************************/
typedef struct _MMIOINFO
{
/* general fields */
DWORD dwFlags; /* general status flags */
FOURCC fccIOProc; /* pointer to I/O procedure */
LPMMIOPROC pIOProc; /* pointer to I/O procedure */
UINT wErrorRet; /* place for error to be returned */
HTASK htask; /* alternate local task */

/* fields maintained by MMIO functions during buffered I/O */
LONG cchBuffer; /* size of I/O buffer (or 0L) */
HPSTR pchBuffer; /* start of I/O buffer (or NULL) */
HPSTR pchNext; /* pointer to next byte to read/write */
HPSTR pchEndRead; /* pointer to last valid byte to read */
HPSTR pchEndWrite; /* pointer to last byte to write */
LONG lBufOffset; /* disk offset of start of buffer */

/* fields maintained by I/O procedure */
LONG lDiskOffset; /* disk offset of next read or write */
DWORD adwInfo[3]; /* data specific to type of MMIOPROC */

/* other fields maintained by MMIO */
DWORD dwReserved1; /* reserved for MMIO use */
DWORD dwReserved2; /* reserved for MMIO use */
HMMIO hmmio; /* handle to open file */
} MMIOINFO;

typedef struct _MMCKINFO
{
FOURCC ckid; /* chunk ID */
DWORD cksize; /* chunk size */
FOURCC fccType; /* form type or list type */
DWORD dwDataOffset; /* offset of data portion of chunk */
DWORD dwFlags; /* flags used by MMIO functions */
} MMCKINFO;

#ifndef _INC_MMREG
#define _INC_MMREG /* #defined if mmreg.h has been included */

/* general waveform format structure (information common to all formats) */
typedef struct pcmwaveformat_tag {
WORD wFormatTag; /* format type */
WORD nChannels; /* #channels (i.e. mono, stereo, etc.) */
DWORD nSamplesPerSec; /* sample rate */
DWORD nAvgBytesPerSec; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
WORD wBitsPerSample; /* sample size */
} PCMWAVEFORMAT;
typedef struct waveformat_extended_tag {
WORD wFormatTag; /* format type */
WORD nChannels; /* #channels (i.e. mono, stereo, etc.) */
DWORD nSamplesPerSec; /* sample rate */
DWORD nAvgBytesPerSec; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
WORD wBitsPerSample; /* sample size */
WORD cbSize; /* #bytes of the size of extra info (after cbSize) */
} WAVEFORMATEX;
typedef struct adpcmcoef_tag {
short iCoef1;
short iCoef2;
} ADPCMCOEFSET;
typedef struct adpcmwaveformat_tag {
WAVEFORMATEX wfx;
WORD wSamplesPerBlock;
WORD wNumCoef;
ADPCMCOEFSET aCoef[];
} ADPCMWAVEFORMAT;

typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT;
typedef WAVEFORMATEX FAR *LPWAVEFORMATEX;
typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT;

#endif /* _INC_MMREG */

/************************************************************************/
/************************************************************************/
/* MMIO macros */
#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \
( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )

/* standard four character codes */
#define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
#define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')

/************************************************************************/
/************************************************************************/
/* constants for dwFlags field of MMIOINFO */
#define MMIO_CREATE 0x00001000 /* create new file (or truncate file) */
#define MMIO_PARSE 0x00000100 /* parse new file returning path */
#define MMIO_DELETE 0x00000200 /* create new file (or truncate file) */
#define MMIO_EXIST 0x00004000 /* checks for existence of file */
#define MMIO_ALLOCBUF 0x00010000 /* mmioOpen() should allocate a buffer */
#define MMIO_GETTEMP 0x00020000 /* mmioOpen() should retrieve temp name */
#define MMIO_DIRTY 0x10000000 /* I/O buffer is dirty */


/* read/write mode numbers (bit field MMIO_RWMODE) */
#define MMIO_READ 0x00000000 /* open file for reading only */
#define MMIO_WRITE 0x00000001 /* open file for writing only */
#define MMIO_READWRITE 0x00000002 /* open file for reading and writing */

/* various MMIO flags */
#define MMIO_FINDCHUNK 0x0010 /* mmioDescend: find a chunk by ID */
#define MMIO_FINDRIFF 0x0020 /* mmioDescend: find a LIST chunk */
#define MMIO_CREATERIFF 0x0020 /* mmioCreateChunk: make a LIST chunk */

/* MMIO error return values */
#define MMIOERR_BASE 256
#define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) /* file not found */
#define MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 2) /* out of memory */
#define MMIOERR_CANNOTOPEN (MMIOERR_BASE + 3) /* cannot open */
#define MMIOERR_CANNOTCLOSE (MMIOERR_BASE + 4) /* cannot close */
#define MMIOERR_CANNOTREAD (MMIOERR_BASE + 5) /* cannot read */
#define MMIOERR_CANNOTWRITE (MMIOERR_BASE + 6) /* cannot write */
#define MMIOERR_CANNOTSEEK (MMIOERR_BASE + 7) /* cannot seek */
#define MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 8) /* cannot expand file */
#define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 9) /* chunk not found */
#define MMIOERR_UNBUFFERED (MMIOERR_BASE + 10) /* file is unbuffered */

#define WAVE_FORMAT_PCM 0x0001
#define WAVE_FORMAT_ADPCM 0x0002
#define WAVE_FORMAT_IBM_CVSD 0x0005
#define WAVE_FORMAT_ALAW 0x0006
#define WAVE_FORMAT_MULAW 0x0007
#define WAVE_FORMAT_OKI_ADPCM 0x0010
#define WAVE_FORMAT_DIGISTD 0x0015
#define WAVE_FORMAT_DIGIFIX 0x0016

/************************************************************************/
/************************************************************************/
WORD PASCAL FAR WIOFndNxt (HMMIO, enum _PCMTYP FAR *, VISMEMHDL FAR *, MMCKINFO FAR *);
WORD PASCAL FAR WIOOutIni (HMMIO, enum _PCMTYP, WORD, DWORD, VISMEMHDL FAR *, MMCKINFO FAR *);
DWORD PASCAL FAR WIOFilCop (HMMIO hSrcHdl, HMMIO hDstHdl, DWORD ulReqCnt,
FIOPOLPRC fpLngPolPrc, DWORD ulPolDat);
WORD PASCAL FAR WIOOutEnd (HMMIO, VISMEMHDL FAR *, MMCKINFO FAR *);

/************************************************************************/
/************************************************************************/
HMMIO PASCAL FAR mmioOpen (LPSTR szFileName, MMIOINFO FAR* lpmmioinfo,
DWORD dwOpenFlags);
UINT PASCAL FAR mmioClose (HMMIO hmmio, UINT uFlags);
LONG PASCAL FAR mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin);
LONG PASCAL FAR mmioRead (HMMIO hmmio, HPSTR pch, LONG cch);
LONG PASCAL FAR mmioWrite (HMMIO hmmio, const char _huge* pch, LONG cch);
UINT PASCAL FAR mmioCreateChunk (HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags);
UINT PASCAL FAR mmioDescend (HMMIO hmmio, MMCKINFO FAR* lpck,
const MMCKINFO FAR* lpckParent, UINT uFlags);
UINT PASCAL FAR mmioAscend (HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags);


Loading

0 comments on commit b12d4ca

Please sign in to comment.