home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma58.dms
/
ma58.adf
/
superplay-lib_DEV
/
Programmers
/
Example_SPObjects
/
ST
/
SP_ChangeSubs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-27
|
6KB
|
175 lines
/* SP_ChangeSubs.c
- Functions for controlling ST-Support -
(c) 1990-94 by Andreas R. Kleinert
Last changes : 17.07.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_SampleList)
{
struct SPO_SampleList *SampleList;
struct SPO_SampleEntry *entry;
SampleList = SPObjectHandle->ah_SampleList;
if(SampleList->sl_NumEntries)
{
entry= (APTR) SampleList->sl_EntryList.lh_Head;
*buffer = entry->se_SampleBuffer;
*buffersize = entry->se_SampleSize;
}else retval = SPERR_ILLEGAL_ACCESS;
}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_SampleList)
{
struct SPO_SampleList *SampleList;
struct SPO_SampleEntry *entry;
SampleList = SPObjectHandle->ah_SampleList;
if(SampleList->sl_NumEntries)
{
entry= (APTR) SampleList->sl_EntryList.lh_Head;
*samplesPerSec = entry->se_SamplesPerSec;
*volume = entry->se_Volume;
}else retval = SPERR_ILLEGAL_ACCESS;
}else retval = SPERR_ILLEGAL_ACCESS;
return(retval);
}