// ------------------------------------------------------------------------------------------------
// MyStream.h
//
// Header for MyStream.c
//
// COPYRIGHT (C) SEGA OF AMERICA, INC. 1998
// All rights reserved.
//
// Information and source code samples contained herein are 
// provided "as-is", without representations or warranties, and 
// are subject to change without notice.
//
// SEGA OF AMERICA, INC. cannot support modifications or 
// derivative works created from the sample source code provided. 
// Developers may use, reproduce, and modify portions or entire 
// sections of the sample source code for the purposes of creating
// Dreamcast applications.  
//
// Sample source code contained herein may not be appropriate 
// for use under all circumstances.  Please consult Developer 
// documentation provided along with your Dreamcast unit for
// additional information and suggestions.
//
//
// Author: Ralph "Cooksey" Thomas
//
// Tabs:	4
//
// Rev:		04/07/99	Added this header
//						
// ------------------------------------------------------------------------------------------------

#ifndef _MYSTREAM_H
#define _MYSTREAM_H

#ifdef __cplusplus
extern "C" {
#endif
AM_STREAM_PTR MyStreamPrepareBuffer(	volatile KTU32 *buffer,	
										KTU32 size,
										volatile KTU32 *playBuffer,
										KTU32 volume,
										KTU32 pan,
										KTU32 sampleRate,
										KTU32 bitDepth,
										AM_TRACK_TYPE monoOrStereo,
										AM_USER_CALLBACK userCallback);

AM_STREAM_PTR MyStreamPrepareFile	(char *streamFileName,KTU32 volume,KTU32 pan,volatile KTU32 *transferBuffer,volatile KTU32 *playBuffer,AM_USER_CALLBACK userCallback,AM_STREAM_TRANSFER_METHOD transferMethod);
void 	MyStreamSetPlayBufferSize	(KTU32 playBufferSize);
KTBOOL 	MyStreamGetBufferSpecs		(char *streamFileName,KTU32 *transferBufferSize,KTU32 *playBufferSize,AM_STREAM_TRANSFER_METHOD transferMethod);
KTBOOL 	MyStreamStop				(AM_STREAM_PTR theStream);
KTBOOL 	MyStreamIsPlaying			(AM_STREAM_PTR theStream);
KTBOOL 	MyStreamStart				(AM_STREAM_PTR theStream);
KTBOOL 	MyStreamAllocateInstance	(AM_STREAM_PTR *theStream);
KTBOOL 	MyStreamFreeInstance		(AM_STREAM_PTR theStream);
void 	MyStreamServer				(void);
KTBOOL 	MyStreamRestart				(AM_STREAM_PTR theStream,AM_USER_CALLBACK userCallback);
KTBOOL 	MyStreamDestroy				(AM_STREAM_PTR theStream);
KTBOOL 	MyStreamDestroyBuffer		(AM_STREAM_PTR theStream);

#ifdef __cplusplus
}
#endif

#endif

