
 /* SP_ChangeSubs.c
    - Functions for controlling ST-Support -
    (c) 1990-94 by Andreas R. Kleinert
    Last changes : 09.01.1994
 */

#include "spobject.h"

ULONG __saveds __asm SPO_SetAccessMode(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __d1 ULONG mode);
ULONG __saveds __asm SPO_SetWriteSubType( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG akt_type, register __a3 APTR future);
ULONG __saveds __asm SPO_SetReadName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *readname, register __a3 APTR future);
ULONG __saveds __asm SPO_SetWriteName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *writename, register __a3 APTR future);
ULONG __saveds __asm SPO_SetReqIOWindow(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *ReqIOWindow);
ULONG __saveds __asm SPO_GetSampleBuffer( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 UBYTE **buffer, register __a3 ULONG *buffersize);
ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future);


/* *************************************************** */
/* *						     * */
/* * SPO_SetAccessMode : ...                         * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_SetAccessMode(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __d1 ULONG mode)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
 ULONG retval = SPERR_NO_ERROR;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 if(mode != SPO_MEDIUM_DISK) retval = SPERR_ACTION_NOT_SUPPORTED;
  else                       SPObjectHandle->ah_Medium = mode;

 return(retval);
}

/* *************************************************** */
/* *						     * */
/* * SPO_SetWriteType :                              * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_SetWriteSubType( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG akt_type, register __a3 APTR future)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 SPObjectHandle->ah_WriteMode = akt_type;

 return(SPERR_NO_ERROR);
}

/* *************************************************** */
/* *						     * */
/* * SPO_SetReadName :                               * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_SetReadName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *readname, register __a3 APTR future)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 SPObjectHandle->ah_ReadName = readname;

 return(SPERR_NO_ERROR);
}

/* *************************************************** */
/* *						     * */
/* * SPO_SetWriteName :                              * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_SetWriteName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *writename, register __a3 APTR future)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 SPObjectHandle->ah_WriteName = writename;

 return(SPERR_NO_ERROR);
}

/* *************************************************** */
/* *						     * */
/* * SPO_SetReqIOWindow : ...                        * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_SetReqIOWindow(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *ReqIOWindow)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
 ULONG retval = SPERR_NO_ERROR;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);
 if(!ReqIOWindow)    return(SPERR_ILLEGAL_ACCESS);

 SPObjectHandle->ah_ReqIOWindow = ReqIOWindow;

 return(retval);
}

/* *************************************************** */
/* *						     * */
/* * SPO_GetSampleBuffer : ...                       * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_GetSampleBuffer( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 UBYTE **buffer, register __a3 ULONG *buffersize)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
 ULONG retval = SPERR_NO_ERROR;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 retval = SPERR_ACTION_NOT_SUPPORTED;

 return(retval);
}

/* *************************************************** */
/* *						     * */
/* * SPO_GetSampleBuffer : ...                       * */
/* *						     * */
/* *************************************************** */

ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future)
{
 struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
 ULONG retval = SPERR_NO_ERROR;

 if(!SPObjectHandle) return(SPERR_NO_HANDLE);

 retval = SPERR_ACTION_NOT_SUPPORTED;

 return(retval);
}
