
 /* SP_RecogSubs.c
    - Functions for External Module Recognition and Binding -
    (c) 1993-94 by Andreas R. Kleinert
    Last changes : 27.03.1994
 */


#include "spobject.h"

#include <exec/execbase.h>

void __saveds __stdargs SPLI_InitSPOList(void);

void __saveds __stdargs SPLI_InitSPOList(void)
{
 struct STSPObjectBase *STSPObjectBase = (APTR) SPObjectBase;
 struct SPO_ObjectNode *spo_node       = N;

 SPObjectBase->spb_SPObject       = N;
 STSPObjectBase->spb_ChannelsUsed = FALSE;

 if(FindName(&SysBase->LibList, "superplay.library"))
  {
   struct SuperPlayBase *SuperPlayBase = (APTR) OpenLibrary("superplay.library", 1);

   if(SuperPlayBase)
    {
     SPObjectBase->spb_SPObject = (APTR) FindName((APTR)&SuperPlayBase->spb_SPObjectList, "GIF.spobject");

     CloseLibrary((APTR) SuperPlayBase);
    }
  }else
  {
   spo_node = AllocVec(sizeof(struct SPO_ObjectNode), (MEMF_CLEAR|MEMF_PUBLIC));

   if(!spo_node) return;

   SPObjectBase->spb_SPObject = spo_node;

   ((struct Node *)spo_node)->ln_Type = NT_UNKNOWN;
   ((struct Node *)spo_node)->ln_Pri  = -1;
   ((struct Node *)spo_node)->ln_Name = N;

   spo_node->spo_Version = 1;
   spo_node->spo_ObjectType = SPO_OBJECTTYPE_MODULE;

   strcpy(spo_node->spo_FileName, "ST.spobject");

   strcpy(spo_node->spo_TypeID, "SoundTracker");
   spo_node->spo_TypeCode = N;                /* set by superplay.library */

   spo_node->spo_SubTypeNum = 1;

   strcpy(spo_node->spo_SubTypeID[0], " (ST)");

   spo_node->spo_SubTypeCode[0] = N;          /* set by superplay.library */

   spo_node->spo_BackgroundReplay = TRUE;
  }
}
