home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 348.lha / chatterbox_v1.0 / sources / blather.c < prev    next >
C/C++ Source or Header  |  1990-02-14  |  1KB  |  57 lines

  1. /* sound effect gimmick player - blather (output) routine */
  2.  
  3. #include <exec/types.h>
  4. #include <functions.h>
  5. #include <exec/memory.h>
  6. #include <exec/nodes.h>
  7. #include <exec/lists.h>
  8. #include <stdio.h>
  9. #include <fcntl.h>
  10.  
  11. #include "assert.h"
  12.  
  13. #include "iff.h"
  14. #include "8svx.h"
  15.  
  16. #include "sample.h"
  17. #include "chatter.h"
  18.  
  19. extern int timer_noload;
  20.  
  21. extern  struct gab_info gab_data[N_GAB_TYPES];
  22.  
  23. blather(gab_type)
  24. int gab_type;
  25. {
  26.     struct gab_info *gabp;
  27.     int nitems;
  28.     Sample *sampleptr;
  29.  
  30.     /* if it's a timer event and they've specified deferred loading
  31.      * of samples for timer events, play a deferred sound.  
  32.      */
  33.     if ((gab_type == GAB_EVERY_SO_OFTEN) && (timer_noload))
  34.     {
  35.         PlayDeferredSound();
  36.         return;
  37.     }
  38.  
  39.     /* otherwise play a loaded sound */
  40.  
  41.     gabp = &gab_data[gab_type];
  42.  
  43.     nitems = gabp->n_gab_items;
  44.  
  45.     if (nitems == 0)
  46.         return;
  47.  
  48.     sampleptr = gabp->Samples[gabp->next_play_gab_item++];
  49.  
  50.     ASSERT_SAMPLE_MAGIC(sampleptr);
  51.  
  52.     PlayChannelSample(sampleptr,64,rando(2));
  53.  
  54.     if (gabp->next_play_gab_item >= gabp->n_gab_items)
  55.         rerandomize(gab_type);
  56. }
  57.