home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 215.lha / AmyLoad / newdata.c < prev    next >
C/C++ Source or Header  |  1996-02-14  |  2KB  |  69 lines

  1. #include    <intuition/intuition.h>
  2. #include    <devices/load.h>
  3. #include    "execdef.h"
  4. #include    "intuidef.h"
  5. #include    "loadrecord.h"
  6. #include    "windownode.h"
  7. #include    "windowinfo.h"
  8.  
  9. #include    "NewData.proto"
  10.  
  11. #include    "ScrollWindow.proto"
  12. #include    "NewScale.proto"
  13. #include    "RedrawWindow.proto"
  14. #include    "DrawDataLine.proto"
  15.  
  16. extern MinList windowList;
  17.  
  18. void
  19. NewData(newloadvalue)
  20.     loadval *newloadvalue;
  21. {
  22.     WindowNode *node;
  23.     Bool    new_scale;
  24.     LoadRecord *record;
  25.     LoadDataValue newvalue;
  26.  
  27.     for (node = (WindowNode *)windowList.mlh_Head;
  28.      node->node.mln_Succ;
  29.      node = (WindowNode *)node->node.mln_Succ)
  30.     {
  31.     new_scale = FALSE;
  32.     for (record = (LoadRecord *)WINDOWINFO(node->window)->loadrecords.mlh_Head;
  33.          record->node.mln_Succ;
  34.          record = (LoadRecord *)record->node.mln_Succ)
  35.     {
  36.         if (record->next_data == record->end_data)
  37.         ScrollWindow(node->window);
  38.         switch (record->type)
  39.         {
  40.         case CPU:
  41.         newvalue = newloadvalue->lv_cpu;
  42.         break;
  43.         case BLITTER:
  44.         newvalue = newloadvalue->lv_blitter;
  45.         break;
  46.         case CHIPMEM:
  47.         newvalue = newloadvalue->lv_chip;
  48.         break;
  49.         case FASTMEM:
  50.         newvalue = newloadvalue->lv_fast;
  51.         break;
  52.         case ALLMEM:
  53.         newvalue = newloadvalue->lv_chip + newloadvalue->lv_fast;
  54.         break;
  55.         }
  56.         *(record->next_data++) = newvalue;
  57.         if (record->scale && newvalue > *record->max_data)
  58.         {
  59.         record->max_data = record->next_data - 1;
  60.         new_scale = NewScale(WINDOWINFO(node->window), record, newvalue) || new_scale;
  61.         }
  62.         if (!new_scale)
  63.         DrawDataLine(node->window, record, (short)(record->next_data - 1 - record->start_data), newvalue);
  64.     }
  65.     if (new_scale)
  66.         RedrawWindow(node->window);
  67.     }
  68. }
  69.