/*
**      $VER: superplay.h 5.1 (8.8.96)
**
**      main include file for superplay.library
**
**      (C) Copyright 1994-96 Andreas R. Kleinert
**      All Rights Reserved.
*/

#ifndef SUPERPLAY_SUPERPLAY_H
#define SUPERPLAY_SUPERPLAY_H


/* *************************************************** */
/* *                                                 * */
/* * Version Defines                                 * */
/* *                                                 * */
/* *************************************************** */

#define SPLIB_MINIMUM  5   /* lowest supported version                   */
#define SPLIB_VERSION  5   /* just for info, should not be used anywhere */


/* *************************************************** */
/* *						     * */
/* * Includes     				     * */
/* *						     * */
/* *************************************************** */

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif /* EXEC_TYPES_H */

#ifndef LIBRARIES_DOS_H
#include <libraries/dos.h>
#endif /* LIBRARIES_DOS_H */

#ifndef _STDIO_H
#include <stdio.h>
#endif /* _STDIO_H */

#ifndef _STDLIB_H
#include <stdlib.h>
#endif /* _STDLIB_H */

#ifndef _STRING_H
#include <string.h>
#endif /* _STRING_H */


/* *************************************************** */
/* *						     * */
/* * Custom Defines				     * */
/* *						     * */
/* *************************************************** */

#ifndef N
#define N NULL	 /* useful */
#endif /* N */


/* *************************************************** */
/* *						     * */
/* * MACROs for Version-Tests			     * */
/* *						     * */
/* *************************************************** */

#define LibVer(x) ( ((struct Library *) x)->lib_Version )
#define OS_VER	  LibVer(SysBase)


/* *************************************************** */
/* *						     * */
/* * DEFINES                                         * */
/* *						     * */
/* *************************************************** */


/* Possible FileTypes */

#define SP_FILETYPE_NONE     ((ULONG) 0)
#define SP_FILETYPE_UNKNOWN  SP_FILETYPE_NONE

     /*
        above : External, user defined FileTypes
                (defined EACH TIME NEW at Library's startup-time).
     */

#define SP_FILETYPE_ILLEGAL  ((ULONG) 0xFFFFFFFF)


/* Possible SubTypes of FileTypes */

#define SP_SUBTYPE_NONE	    ((ULONG) 0)
#define SP_SUBTYPE_UNKNOWN  SP_SUBTYPE_NONE

     /*
        above : External, user defined FileSubTypes
                (defined EACH TIME NEW at Library's startup-time).
     */

#define SP_SUBTYPE_ILLEGAL  ((ULONG) 0xFFFFFFFF)


/* Possible Input and Output mediums */

#define SPO_MEDIUM_NONE	    ((ULONG) 0)
#define SPO_MEDIUM_ILLEGAL  ((ULONG) 0xFFFFFFFF)

#define SPO_MEDIUM_DISK	((ULONG) 1)              /* Play and Write options   */
#define SPO_MEDIUM_CLIP	((ULONG) 2)

     /* might not be supported by all kinds of File(Sub)Types */


/* *************************************************** */
/* *						     * */
/* * Function Error Codes    			     * */
/* *						     * */
/* *************************************************** */

#define SPERR_MAX_ERROR_TEXT_LENGTH (80)       /* plus Null-Byte */

#define SPERR_NO_ERROR               (NULL)
#define SPERR_INTERNAL_ERROR         ((ULONG) 0xFFFFFFFF)

#define SPERR_UNKNOWN_FILE_FORMAT    ((ULONG) 1)
#define SPERR_FILE_NOT_FOUND         ((ULONG) 2)
#define SPERR_NO_MEMORY              ((ULONG) 3)
#define SPERR_IFFPARSE_ERROR         ((ULONG) 4)
#define SPERR_NO_CLIPBOARD           ((ULONG) 5)
#define SPERR_NO_FILE                ((ULONG) 6)
#define SPERR_NO_HANDLE              ((ULONG) 7)
#define SPERR_NO_DATA                ((ULONG) 8)
#define SPERR_NO_INFORMATION         ((ULONG) 9)
#define SPERR_ILLEGAL_ACCESS         ((ULONG) 10)
#define SPERR_DECODE_ERROR           ((ULONG) 11)
#define SPERR_UNKNOWN_PARAMETERS     ((ULONG) 12)
#define SPERR_ACTION_NOT_SUPPORTED   ((ULONG) 13)
#define SPERR_NO_CHANNELS            ((ULONG) 14)
#define SPERR_VERSION_CONFLICT       ((ULONG) 15)
#define SPERR_NO_SAMPLES_LOADED      ((ULONG) 16)

        /* Each new Library-Subversion may contain new Codes above
           the last one of these.
           So do not interpret the codes directly, but use
           SPL_GetErrorString.
           Maybe, newer Codes might not be listed up here.
        */

#endif /* SUPERPLAY_SUPERPLAY_H */
