home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma58.dms
/
ma58.adf
/
superplay-lib_DEV
/
Programmers
/
include
/
spobjects
/
spobjects.h
< prev
Wrap
C/C++ Source or Header
|
1996-05-27
|
4KB
|
121 lines
/* spobjects/spobjects.h */
/* Version : 2.2 */
/* Date : 21.10.1995 */
/* Written by : Andreas R. Kleinert */
#ifndef SPOBJECTS_SPOBJECTS_H
#define SPOBJECTS_SPOBJECTS_H
struct SPO_ObjectNode
{
struct Node spo_Node; /* chaining Node */
ULONG spo_Version; /* Library-Version of spobject */
ULONG spo_ObjectType; /* see below */
UBYTE spo_FileName [108]; /* use 30, as in struct FileInfoBlock */
UBYTE spo_TypeID [32]; /* e.g. "MED" */
ULONG spo_TypeCode; /* ... and its appropriate Code, , */
/* assigned by superplay.library LATER. */
ULONG spo_SubTypeNum; /* actually available SubTypes */
/* (maximum 16) of the spobject. */
UBYTE spo_SubTypeID [16][16]; /* e.g. "MMD0" or "MMD1" */
ULONG spo_SubTypeCode [16]; /* ... and their appropriate Codes, */
/* assigned by superplay.library LATER. */
ULONG spo_BackgroundReplay; /* Runs in the Background ? (Boolean) */
/* size may grow with bigger spo_Version, see below */
/* (No changes from V1 to V2 : accept both !) */
};
#define SPO_VERSION (2) /* If this Version, which depends on the */
/* spobject's Library-Version, is set, */
/* it is guaranteed, that at least the */
/* above information is available. */
/* ^ DO NOT USE THIS DEFINE IN SOURCECODE ! */
/* AVOID INCREASING IT VIA RECOMPILATION ! */
#define SPO_OBJECTTYPE_NONE ((ULONG) 0)
#define SPO_OBJECTTYPE_UNKNOWN SPO_OBJECTTYPE_NONE
#define SPO_OBJECTTYPE_ILLEGAL ((ULONG) 0xFFFFFFFF)
#define SPO_OBJECTTYPE_SAMPLE ((ULONG) 1) /* Raw Sample */
#define SPO_OBJECTTYPE_MODULE ((ULONG) 2) /* Specific Sound Module */
/* There may be more types in the future : simply reject unknown types. */
/* ----------------------------------------------------------------------- */
struct SPO_SampleList /* Header of "SampleEntry"-List */
{
struct List sl_EntryList; /* List itself */
ULONG sl_NumEntries; /* number of entries in List */
};
struct SPO_SampleEntry /* may e.g. contain SampleData */
{
struct Node se_Node; /* the chaining Node */
ULONG se_Version; /* SPObject's Version (2) */
ULONG se_Type; /* Sample ? */
/* The following entries are only valid, if se_Type is == SE_TYPE_SAMPLE */
UBYTE *se_SampleBuffer; /* SampleData (CHIP-Ram) */
ULONG se_SampleSize; /* size of SampleData in Bytes */
ULONG se_SampleBits; /* 8, 16 */
ULONG se_SamplesPerSec; /* as needed with audio.device */
ULONG se_Volume; /* as needed with audio.device */
/* more entries may follow in the future */
};
#define SE_TYPE_NONE ((ULONG) 0)
#define SE_TYPE_UNKNOWN SE_TYPE_NONE
#define SE_TYPE_ILLEGAL ((ULONG) 0xFFFFFFFF)
#define SE_TYPE_SAMPLE ((ULONG) 1) /* Entry contains Sample Data */
/* There may be more types in the future : simply reject unknown types.
Do not examine unknown SampleEntry-Types. They may contain data,
which is structured different from the above in the future !
*/
/* -----------------------------------------------------------------------
This structure has to be passed to SPObject's SPO_CheckFileType()
function, if media other than SPO_MEDIUM_DISK are used for reading.
This is supported since superplay.library V2 and may be ignored by
SPObjects for compatibility reasons. To prevent older SPO_CheckFileType()
functions from crashing, superplay.library will create a dummy-file and
pass it's handle also ...
("You wanna something to check ? - Here you get it !")
In the V3-SPObject specification this structure may HAVE TO be
examined, then. In the current V2-specification this is not the case.
*/
struct SPOCheckFile
{
ULONG spc_Medium; /* SPO_MEDIUM_... */
ULONG spc_Future; /* as usual */
};
/* ----------------------------------------------------------------------- */
#endif /* SPOBJECTS_SPOBJECTS_H */