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


#include "svdriver.h"

#include <exec/execbase.h>

void __saveds __stdargs SVLI_InitSVDList(void);

void __saveds __stdargs SVLI_InitSVDList(void)
{
 struct SVD_DriverNode *svd_node = N;

 SVDriverBase->svb_SVDriver = N;

 if(FindName(&SysBase->LibList, "superview.library"))
  {
   struct SuperViewBase *SuperViewBase = (APTR) OpenLibrary("superview.library", 2);

   if(SuperViewBase)
    {
     SVDriverBase->svb_SVDriver = (APTR) FindName((APTR) &SuperViewBase->svb_SVDriverList, "SVO.svobject");

     CloseLibrary((APTR) SuperViewBase);
    }
  }else
  {
   svd_node = AllocVec(sizeof(struct SVD_DriverNode), (MEMF_CLEAR|MEMF_PUBLIC));

   if(!svd_node) return;

   SVDriverBase->svb_SVDriver = svd_node;

   ((struct Node *)svd_node)->ln_Type = NT_UNKNOWN;
   ((struct Node *)svd_node)->ln_Pri  = 1;
   ((struct Node *)svd_node)->ln_Name = svd_node->svd_FileName;

   /* don't forget to initialized svd_node->ln_Name :
      inside SVDrivers it's not NULL !!
    */

   svd_node->svd_Version = SVD_VERSION;

   svd_node->svd_Flags = SVDF_INTUITION;

   strcpy(svd_node->svd_FileName, "ECS.svdriver");
   
   svd_node->svd_MaxWidth  = 0xFFFFFFFF;
   svd_node->svd_MaxHeight = 0xFFFFFFFF;
   svd_node->svd_MaxDepth  = 0xFFFFFFFF;

   strcpy(svd_node->svd_ID, "ECS ScreenDriver");
  }
}
