home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Musik / Misc / Amster / Source / lamp.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-27  |  2.0 KB  |  120 lines

  1. /*
  2. ** Lamp
  3. */
  4.  
  5. #include "include/config.h"
  6.  
  7. #include <sys/types.h>
  8.  
  9. #include "include/mui.h"
  10. #include <MUI/Lamp_mcc.h>
  11. #include <MUI/TWFmultiLED_mcc.h>
  12. #include <MUI/NListview_mcc.h>
  13.  
  14. #include "include/prefs.h"
  15.  
  16. struct TWFmultiLED_RGB lamp_cols[] = {
  17.     { 0xffffffff, 0x00000000, 0x00000000 },
  18.     { 0x00000000, 0xffffffff, 0x00000000 },
  19.     { 0xffffffff, 0xffffffff, 0x00000000 },
  20.     { 0x00000000, 0x00000000, 0x00000000 },
  21. };
  22.  
  23. u_long *lamp_objs[] = { NULL, NULL, NULL, NULL };
  24.  
  25. #define LAMP_RED 0
  26. #define LAMP_GREEN 1
  27. #define LAMP_YELLOW 2
  28. #define LAMP_BLACK 3
  29.  
  30. int lamp_lamp(void);
  31. int lamp_twf(void);
  32.  
  33.  
  34. int lamp_create(void)
  35. {
  36.     if(prf->lamps==0) {
  37.         if(lamp_lamp()) return(1);
  38.         if(lamp_twf()) return(1);
  39.     } else {
  40.         if(lamp_twf()) return(1);
  41.         if(lamp_lamp()) return(1);
  42.     }
  43.     return(0);
  44. }
  45.  
  46.  
  47. void lamp_dispose(void)
  48. {
  49.     int i;
  50.  
  51.     for(i=0;i<4;i++) {
  52.         if(lamp_objs[i]) MUI_DisposeObject(lamp_objs[i]);
  53.         lamp_objs[i] = NULL;
  54.     }
  55. }
  56.  
  57.  
  58. int lamp_lamp(void)
  59. {
  60.     int i,e=0;
  61.  
  62.     for(i=0;i<4;i++) {
  63.         lamp_objs[i] = LampObject,
  64.             MUIA_Lamp_Type, MUIV_Lamp_Type_Big,
  65.             MUIA_Lamp_Red, lamp_cols[i].Red,
  66.             MUIA_Lamp_Green, lamp_cols[i].Green,
  67.             MUIA_Lamp_Blue, lamp_cols[i].Blue,
  68.         End;
  69.         if(!lamp_objs[i]) e++;
  70.     }
  71.     if(!e) return(1);
  72.     lamp_dispose();
  73.     return(0);
  74. }
  75.  
  76.  
  77. int lamp_twf(void)
  78. {
  79.     int i,e=0;
  80.  
  81.     for(i=0;i<4;i++) {
  82.         lamp_objs[i] = TWFmultiLEDObject,
  83.             MUIA_TWFmultiLED_Colour, MUIV_TWFmultiLED_Colour_Custom,
  84.             MUIA_TWFmultiLED_Custom, &lamp_cols[i],
  85.         End;
  86.         if(!lamp_objs[i]) e++;
  87.     }
  88.     if(!e) return(1);
  89.     lamp_dispose();
  90.     return(0);
  91. }
  92.  
  93.  
  94. void lamp_useinlist(u_long *list)
  95. {
  96.     if(!lamp_objs[LAMP_RED]) return;
  97.     DoMethod(list,MUIM_NList_UseImage,lamp_objs[LAMP_BLACK],1,0);
  98.     DoMethod(list,MUIM_NList_UseImage,lamp_objs[LAMP_RED],2,0);
  99.     DoMethod(list,MUIM_NList_UseImage,lamp_objs[LAMP_YELLOW],3,0);
  100.     DoMethod(list,MUIM_NList_UseImage,lamp_objs[LAMP_GREEN],4,0);
  101. }
  102.  
  103.  
  104. char *lamp_getforlist(int i)
  105. {
  106.     static char *objs[] = {
  107.         "\33c\33o[1]",
  108.         "\33c\33o[2]",
  109.         "\33c\33o[3]",
  110.         "\33c\33o[4]",
  111.         "\33c?",
  112.         "\33c!",
  113.         "\33c!!",
  114.         "\33c!!!"
  115.     };
  116.  
  117.     if(lamp_objs[LAMP_RED]) return(objs[i]);
  118.     return(objs[i+4]);
  119. }
  120.