home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pmos2002.zip / TESTS / SRC / SOUNDTST.MOD < prev    next >
Text File  |  1996-10-16  |  3KB  |  104 lines

  1. MODULE SoundTst;
  2.  
  3.         (********************************************************)
  4.         (*                                                      *)
  5.         (*      Test of module SoundEffects.                    *)
  6.         (*                                                      *)
  7.         (*      Programmer:     P. Moylan                       *)
  8.         (*      Last edited:    16 October 1996                 *)
  9.         (*      Status:         Working                         *)
  10.         (*                                                      *)
  11.         (********************************************************)
  12.  
  13. FROM Trace IMPORT
  14.     (* proc *)  TraceOn, InTrace, OutTrace;
  15.  
  16. FROM Windows IMPORT
  17.     (* type *)  Window, Colour, FrameType, DividerType,
  18.     (* proc *)  OpenWindow, CloseWindow, SetCursor;
  19.  
  20. FROM NumericIO IMPORT
  21.     (* proc *)  WriteCard;
  22.  
  23. FROM SoundEffects IMPORT
  24.     (* type *)  Note,
  25.     (* proc *)  Beep, Play;
  26.  
  27. FROM Semaphores IMPORT
  28.     (* type *)  Semaphore,
  29.     (* proc *)  CreateSemaphore, Wait;
  30.  
  31. (************************************************************************)
  32.  
  33. PROCEDURE Test1;
  34.  
  35.     (* Performs a simple beep.  *)
  36.  
  37.     BEGIN
  38.         InTrace ("Test1");
  39.         Beep;
  40.         Beep;
  41.         OutTrace ("Test1");
  42.     END Test1;
  43.  
  44. (************************************************************************)
  45.  
  46. PROCEDURE Test2;
  47.  
  48.     (* Plays a short sequence of notes. *)
  49.  
  50.     CONST max = 10;
  51.  
  52.     VAR tune: ARRAY [0..max] OF Note;
  53.         j: [0..max];
  54.         done: Semaphore;
  55.  
  56.     BEGIN
  57.         InTrace ("Test2");
  58.         CreateSemaphore (done, 0);
  59.         FOR j := 0 TO max DO tune[j].duration := 200;  END (*FOR*);
  60.         tune[0].period := 600;
  61.         tune[1].period := 500;
  62.         tune[2].period := 1;
  63.         tune[3].period := 700;
  64.         tune[4].period := 500;
  65.         tune[5].period := 800;
  66.  
  67.         tune[6].duration := 0;
  68.  
  69.         Play (tune, done);  Wait (done);
  70.         OutTrace ("Test2");
  71.     END Test2;
  72.  
  73. (************************************************************************)
  74.  
  75. PROCEDURE WaitAWhile;
  76.  
  77.     (* Does nothing, but does it slowly.        *)
  78.  
  79.     VAR j: CARDINAL;
  80.         w: Window;
  81.  
  82.     BEGIN
  83.         InTrace ("WaitAWhile");
  84.         OpenWindow (w, yellow, green, 7, 9, 50, 69,
  85.                                         simpleframe, nodivider);
  86.         FOR j := 0 TO 1000 DO
  87.             SetCursor (w, 1, 1);
  88.             WriteCard (w, j);
  89.         END (*FOR*);
  90.         CloseWindow (w);
  91.         OutTrace ("WaitAWhile");
  92.     END WaitAWhile;
  93.  
  94. (************************************************************************)
  95.  
  96. BEGIN
  97.     TraceOn (11, 24, 0, 39, 1);
  98.     Test1;
  99.     WaitAWhile;
  100.     Test2;
  101.     WaitAWhile;
  102. END SoundTst.
  103.  
  104.