home *** CD-ROM | disk | FTP | other *** search
/ Audio Version 4.94 / audioversion4.94knowledgemediaresourcelibraryoctober1994.iso / amiga / utils / exp_iv / libraris.c < prev    next >
C/C++ Source or Header  |  1991-05-09  |  3KB  |  129 lines

  1. /* libraries.c */
  2.  
  3. /*
  4.  * Open all needed libraries, manages OS_2.0 and
  5.  * all that stuff
  6.  *
  7.  */
  8.  
  9. /*
  10.  * $Author: Espie $
  11.  * $Date: 91/05/09 17:36:43 $
  12.  * $Revision: 1.3 $
  13.  * $Log:    libraries.c,v $
  14.  * Revision 1.3  91/05/09  17:36:43  Espie
  15.  * Opens workbench.library.
  16.  * 
  17.  * Revision 1.2  91/05/07  12:12:06  Espie
  18.  * Opens icon.library.
  19.  * 
  20.  * Revision 1.1  91/05/06  23:32:48  Espie
  21.  * Initial revision
  22.  * 
  23.  *
  24.  */
  25.  
  26. #include <exec/types.h>
  27. #include <dos/dos.h>
  28. #include <intuition/intuitionbase.h>
  29. #include <exec/libraries.h>
  30. #include <proto/exec.h>
  31. #include <custom/cleanup.h>
  32. #include "proto.h"
  33.  
  34. struct IntuitionBase *IntuitionBase;
  35. struct GfxBase *GfxBase;
  36. struct Library *AslBase, *ArpBase, *IconBase, *WorkbenchBase;
  37. #define MIN_REV 33
  38.  
  39. #ifdef SIZE_GADGET
  40. struct Library *LayersBase;
  41. #endif
  42.  
  43.  
  44. LOCAL BOOL asl_avail, arp_avail, icon_avail, intuition_20, workbench_avail;
  45.  
  46. LOCAL struct Library *auto_open(char *lib_name, int version)
  47.     {
  48.     struct Library *base;
  49.         base = OpenLibrary(lib_name, version);
  50.         if (base)
  51.             ToClean(CloseLibrary, base);
  52.         return base;
  53.     }
  54.  
  55. struct Library *panic_open(char *lib_name, int version)
  56.     {
  57.     static char buffer[100];
  58.     struct Library *base;
  59.         base = auto_open(lib_name, version);
  60.         if (!base)
  61.             {
  62.                 sprintf(buffer, "Can't open %s (v %d)", lib_name, version);
  63.                 mayPanic(buffer);
  64.             }
  65.         return base;
  66.     }
  67.  
  68. void open_libraries(void)
  69.     {
  70.         /* open 'em for system version 1.2 */
  71.       IntuitionBase = panic_open("intuition.library", MIN_REV);
  72.          /* need to use TextLength */
  73.       GfxBase = panic_open("graphics.library", MIN_REV);
  74. #ifdef SIZE_GADGET
  75.         LayersBase = panic_open("layers.library", MIN_REV);
  76. #endif
  77.         intuition_20 = IntuitionBase->LibNode.lib_Version >= 36;
  78.         
  79.         /* for the file requester */
  80.         
  81.         ArpBase = auto_open("arp.library", 39);
  82.         if (ArpBase)
  83.             arp_avail = TRUE;
  84.         else
  85.             {
  86.                 arp_avail = FALSE;
  87.                 AslBase = auto_open("asl.library", 0);
  88.                 if (AslBase)
  89.                     asl_avail = TRUE;
  90.                 else
  91.                     asl_avail = FALSE;
  92.             }
  93.         IconBase = auto_open("icon.library", MIN_REV);
  94.         if (IconBase)
  95.             icon_avail = TRUE;
  96.         else
  97.             icon_avail = FALSE;
  98.         WorkbenchBase = auto_open("workbench.library", 0);
  99.         if (WorkbenchBase)
  100.             workbench_avail = TRUE;
  101.         else
  102.             workbench_avail = FALSE;
  103.     }
  104.  
  105. BOOL running_20(void)
  106.     {
  107.         return intuition_20;
  108.     }
  109.     
  110. int requester_type(void)
  111.     {
  112.         if (arp_avail)
  113.             return ARP;
  114.         if (asl_avail)
  115.             return OS_20;
  116.         else
  117.             return NO_REQ;
  118.     }
  119.  
  120. BOOL icon_around(void)
  121.     {
  122.         return icon_avail;
  123.     }
  124.     
  125.  
  126. BOOL wb_around(void)
  127.     {
  128.         return workbench_avail;
  129.     }