home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma58.dms
/
ma58.adf
/
superplay-lib_DEV
/
Programmers
/
Example_SPObjects
/
SPO
/
SP_ChangeSubs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-27
|
6KB
|
154 lines
/* SP_ChangeSubs.c
- Functions for controlling SPO-Support -
(c) 1990-94 by Andreas R. Kleinert
Last changes : 14.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);
if(SPObjectHandle->ah_SPOHeader && SPObjectHandle->ah_XpkBuffer)
{
*buffer = SPObjectHandle->ah_XpkBuffer;
*buffersize = SPObjectHandle->ah_SPOHeader->spo_SampleLength;
}else retval = SPERR_ILLEGAL_ACCESS;
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);
if(SPObjectHandle->ah_SPOHeader)
{
*samplesPerSec = SPObjectHandle->ah_SPOHeader->spo_Frequency;
*volume = SPObjectHandle->ah_SPOHeader->spo_Volume;
}else retval = SPERR_ILLEGAL_ACCESS;
return(retval);
}