home *** CD-ROM | disk | FTP | other *** search
-
- /* SP_SampleListSubs.c
- - SampleList Management Routines -
- (c) 1990-94 by Andreas R. Kleinert
- Last changes : 17.07.1994
- */
-
- #include "spobject.h"
-
-
- /* SampleList-Support-Functions */
-
- struct SPO_SampleList * __saveds __stdargs SPLI_GetSampleList(void);
- void __saveds __stdargs SPLI_FreeSampleList(struct SPO_SampleList *SampleList);
- ULONG __saveds __stdargs SPLI_AddSample(struct SPO_SampleList *slist, APTR buffer, ULONG size, ULONG bits, ULONG sps, ULONG volume);
-
-
- struct SPO_SampleList * __saveds __stdargs SPLI_GetSampleList(void)
- {
- struct SPO_SampleList *SampleList = N;
- struct List *samelist = N;
-
- samelist = (struct List *) AllocVec(sizeof(struct SPO_SampleList), MEMF_CLEAR|MEMF_PUBLIC);
- if(samelist)
- {
- SampleList = (APTR) samelist;
-
- SampleList->sl_NumEntries = 0;
-
- samelist->lh_Head = (struct Node *) &(samelist->lh_Tail);
- samelist->lh_Tail = N;
- samelist->lh_TailPred = (struct Node *) &(samelist->lh_Head);
- samelist->lh_Type = NT_UNKNOWN;
- }else return(NULL);
-
- return(SampleList);
- }
-
- void __saveds __stdargs SPLI_FreeSampleList(struct SPO_SampleList *SampleList)
- {
- struct SPO_SampleEntry *entry;
-
- if(SampleList)
- {
- for(entry=(APTR) SampleList->sl_EntryList.lh_Head;(entry)&&(entry!=(APTR) &(SampleList->sl_EntryList.lh_Tail));)
- {
- Remove((APTR) entry);
- FreeVec(entry);
- entry = (APTR) SampleList->sl_EntryList.lh_Head;
- }
-
- FreeVec(SampleList);
- }
- }
-
- ULONG __saveds __stdargs SPLI_AddSample(struct SPO_SampleList *slist, APTR buffer, ULONG size, ULONG bits, ULONG sps, ULONG volume)
- {
- struct SPO_SampleEntry *entry;
-
- entry = (APTR) AllocVec(sizeof(struct SPO_SampleEntry), MEMF_CLEAR|MEMF_PUBLIC);
- if(!entry) return(FALSE);
-
- slist->sl_NumEntries++;
-
-
- entry->se_Version = 2;
-
- entry->se_Type = SE_TYPE_SAMPLE;
-
- entry->se_SampleBuffer = buffer;
- entry->se_SampleSize = size;
-
- entry->se_SampleBits = bits;
- entry->se_SamplesPerSec = sps;
- entry->se_Volume = volume;
-
-
- AddTail((APTR)slist, (APTR)entry);
-
- return(TRUE);
- }
-