#ifndef LIBRARIES_PLAYSID_H
#define LIBRARIES_PLAYSID_H
/*
**	$Filename: libraries/playsidbase.h $
**	$Release: 1.0 $
**
**	(C) Copyright 1994 Per Håkan Sundell and Ron Birk
**	    All Rights Reserved
*/

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

#ifndef	EXEC_LISTS_H
#include	<exec/lists.h>
#endif	/* EXEC_LISTS_H */

#ifndef	EXEC_LIBRARIES_H
#include	<exec/libraries.h>
#endif	/* EXEC_LIBRARIES_H */

#define PLAYSIDNAME    "playsid.library"
#define PLAYSIDVERSION 1L

struct PlaySidBase
{
  struct Library LibNode;
  UBYTE Flags;
  UBYTE Pad;
  APTR SysLib;
  APTR SegList;
  UWORD PlayMode;
  UWORD TimeSeconds;
  UWORD TimeMinutes;
  /* Private... */
};

struct DisplayData {
	APTR	Sample[4];
        WORD	Length[4];
	WORD	Period[4];
	WORD	Enve[4];
	WORD	SyncLength[3];
	WORD	Volume;
	BYTE	SyncInd[3];
};

/* --- Error -------------------------------------------------------- */
#define SID_NOMEMORY       -1L
#define SID_NOAUDIODEVICE  -2L
#define SID_NOCIATIMER     -3L
#define SID_NOPAUSE        -4L
#define SID_NOMODULE       -5L
#define SID_NOICON         -6L
#define SID_BADTOOLTYPE    -7L
#define SID_NOLIBRARY      -8L
#define SID_BADHEADER      -9L
#define SID_NOSONG         -10L
#define SID_LIBINUSE       -11L

/* --- Playing Modes ------------------------------------------------ */
#define PM_STOP   0
#define PM_PLAY   1
#define PM_PAUSE  2

/* --- Module Header ------------------------------------------------ */
#define SID_HEADER      ('P'<<24 + 'S'<<16 + 'I'<<8 + 'D')
#define SID_VERSION     2
#define HEADERINFO_SIZE 32

#define SID_SIDSONG     (0)
#define SIDF_SIDSONG    (1<<SID_SIDSONG)

typedef struct
{
  ULONG id;
  UWORD version;
  UWORD length;
  UWORD start;
  UWORD init;
  UWORD main;
  UWORD number;
  UWORD defsong;
  ULONG speed;
  UBYTE name[HEADERINFO_SIZE];
  UBYTE author[HEADERINFO_SIZE];
  UBYTE copyright[HEADERINFO_SIZE];
  UWORD flags;
  ULONG reserved;
} SIDHeader;

#endif
