home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1997 February / macformat-047.iso / Shareware Plus / Developers / PlayerPRO 4.5.3 Dev.Kit / MADH Library 4.2 / Game.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-11  |  3.1 KB  |  131 lines  |  [TEXT/CWIE]

  1. /********************************************************/
  2. /*
  3.     Player PRO 4.5 -- Music Driver EXAMPLE
  4.     
  5.     To use with MusicLibrary 4.x for Think C & CodeWarrior
  6.  
  7.     Antoine ROSSET
  8.     16 Tranchees
  9.     1206 GENEVA
  10.     SWITZERLAND
  11.     
  12.     FAX: (+41 22) 346 11 97
  13.     PHONE: (+41 79) 203 74 62
  14.     Email: rosset@dial.eunet.ch
  15. */
  16. /********************************************************/
  17.  
  18. #include "RDriver.h"
  19.  
  20. /*****************************/
  21. /****** MAIN FUNCTION ********/
  22. /*****************************/
  23.  
  24. void main( void)
  25. {
  26. DialogPtr        TheDia;
  27. Handle            itemHandle;
  28. Rect            itemRect;
  29. short            itemType, i, itemHit;
  30. Handle            mySound[ 4];            // my 4 sound resource
  31.  
  32. /* Initialisation de la toolbox */
  33.  
  34. InitGraf( &qd.thePort);
  35. InitFonts();
  36. InitWindows();
  37. TEInit();
  38. InitMenus();
  39. InitCursor();
  40. MaxApplZone();
  41.  
  42. /******************************************/
  43. /*** Load and prepare my sound resource ***/
  44. /******************************************/
  45.  
  46. for( i = 0 ; i < 4; i++)
  47. {
  48.     mySound[ i] = GetResource( 'snd ', 128 + i);
  49.     DetachResource( mySound[ i]);
  50.     HLock( mySound[ i]);                            // VERY IMPORTANT !!!!!!
  51. }
  52.  
  53.  
  54. /*******************************************************************************************/
  55. /****** MAD Library Initialisation : choose the best driver for the current hardware  ******/
  56. /*******************************************************************************************/
  57.  
  58. {
  59.     MADDriverSettings    init;
  60.     OSErr                err;
  61.     
  62.     err = MADInitLibrary("\p", false);
  63.     if( err) DebugStr("\pMADInitLibrary Err");
  64.     
  65.     MADGetBestDriver( &init);
  66.     
  67.     err = MADCreateDriver( &init);
  68.     if( err) DebugStr("\pMADCreateDriver Err");
  69. }
  70.  
  71. /***************************************************/
  72. /***   Open MADH Resource ID 3214 and play it !   **/
  73. /***************************************************/
  74.  
  75. if( MADLoadMusicRsrc( 'MADH', 3214) != noErr) DebugStr("\pMADLoadMusicRsrc Err");
  76. if( MADPlay() != noErr) DebugStr("\pMADPlay Err");
  77.  
  78. /******************************************/
  79. /***        Open my dialog              ***/
  80. /******************************************/
  81.  
  82. TheDia = GetNewDialog( 128,0L, (WindowPtr) -1L);
  83. SetPort( TheDia);        
  84.  
  85. do
  86. {
  87.     ModalDialog( 0L, &itemHit);
  88.         
  89.     switch( itemHit)
  90.     {
  91.         case 2:
  92.             MADDriver->Reading = !MADDriver->Reading;
  93.             if( !MADDriver->Reading) MADCleanDriver( MADDriver);        // <- stop immediately any sounds from the driver
  94.             GetDItem( TheDia, 2, &itemType, &itemHandle, &itemRect);
  95.             SetCtlValue( (ControlHandle) itemHandle, !GetCtlValue( (ControlHandle) itemHandle));
  96.         break;
  97.     
  98.         case 3:
  99.             MADPlaySndHandle( mySound[ 0], 0, 48);            // On track ID 0, C 3 = 48
  100.         break;
  101.         
  102.         case 4:
  103.             MADPlaySndHandle( mySound[ 1], 1, 0xFF);        // On track ID 0, 0xFF = normal rate (sample rate)
  104.         break;
  105.         
  106.         case 5:
  107.             MADPlaySndHandle( mySound[ 2], 2, 36);            // On track ID 1, at C 2 = 36
  108.         break;
  109.         
  110.         case 6:
  111.             MADPlaySndHandle( mySound[ 3], 3, 60);            // On track ID 2, at C 4 = 60
  112.         break;
  113.     }
  114.     
  115. }while( itemHit != 1);
  116.  
  117. DisposDialog( TheDia);
  118.  
  119. MADStop();                            // Stop the driver
  120. MADDisposeMusic();                    // Clear music
  121. MADDisposeDriver();                    // Dispose driver
  122. MADDisposeLibrary();                // Close Music Library
  123.  
  124. for( i = 0 ; i < 4; i++)
  125. {
  126.     HUnlock( mySound[ i]);
  127.     DisposeHandle( mySound[ i]);
  128. }
  129. }
  130.  
  131.