/* spobjects/spobjects.h	    */
/* Version    : 1.3		    */
/* Date       : 30.03.1994	    */
/* 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 */
};

#define SPO_VERSION (1)             /* 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      */

#endif /* SPOBJECTS_SVOBJECTS_H */
