home *** CD-ROM | disk | FTP | other *** search
- /* 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 */
-