/*
**      $VER: superplay.h 6.2 (17.3.97)
**
**      main include file for superplay.library
**
**      (C) Copyright 1994-97 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  6   /* 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_CANNOT_OPEN_SOURCE_FILE  ((ULONG) 2)
#define SPERR_NO_MEMORY                ((ULONG) 3)
#define SPERR_IFFPARSE_ERROR           ((ULONG) 4)
#define SPERR_CANNOT_OPEN_SOURCE_CLIP  ((ULONG) 5)
#define SPERR_CANNOT_OPEN_DEST_FILE    ((ULONG) 6)
#define SPERR_INVALID_HANDLE           ((ULONG) 7)
#define SPERR_CANNOT_READ_CONTENT      ((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_CANNOT_ALLOCATE_CHANNELS ((ULONG) 14)
#define SPERR_VERSION_CONFLICT         ((ULONG) 15)
#define SPERR_NO_SAMPLES_LOADED        ((ULONG) 16)
#define SPERR_NOTHING_TO_WRITE         ((ULONG) 17)
#define SPERR_CANNOT_OPEN_DEST_CLIP    ((ULONG) 18)
#define SPERR_ENCODE_ERROR             ((ULONG) 19)

        /* 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.
        */

#ifndef NO_SUPERPLAY_OBSOLETE_H

#ifndef SUPERPLAY_OBSOLETE_H
#include <superplay/spobsolete.h>
#endif /* SUPERPLAY_OBSOLETE_H */

#endif /* NO_SUPERPLAY_OBSOLETE_H */


#endif /* SUPERPLAY_SUPERPLAY_H */
