home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpgfx / include / gfxsound.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  1.2 KB  |  60 lines

  1.  
  2. // gfxsound.h
  3. //
  4. // Copyright (c) 1996 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __GFXSOUND_H__
  7. #define __GFXSOUND_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "gfxsddrv.h"
  11.  
  12. struct MIDICHUNK
  13.   {
  14.     CHAR Name[4];
  15.     LONG Length;
  16.   }; // End of MIDICHUNK
  17.  
  18. struct MIDIHEADER
  19.   {
  20.     MIDICHUNK Chunk;
  21.     SHORT Type;
  22.     SHORT NumTracks;
  23.     SHORT Time;
  24.   }; // End of MIDIHEADER
  25.  
  26. struct MIDIEVENTTYPE
  27.   {
  28.     LONG DeltaTime;
  29.   }; // End of MIDIEVENTTYPE
  30.  
  31. struct MIDITRACK
  32.   {
  33.     MIDICHUNK Chunk;
  34.     SHORT NumEvents;
  35.     MIDIEVENTTYPE *Events;
  36.   }; // End of MIDITRACK
  37.  
  38. class SOUND : public MYOBJECT
  39.   {
  40.     protected :
  41.       VOID ReverseWORD ( SHORT *Word );
  42.       VOID ReverseDWORD ( DWORD *DWord );
  43.  
  44.       DWORD ReadMIDIDeltaTime ( FILEHANDLE f );
  45.       BOOLEAN ReadMIDIChunk ( FILEHANDLE f, MIDICHUNK *Chunk );
  46.       BOOLEAN ReadMIDIHeader ( FILEHANDLE f, MIDIHEADER *Header );
  47.       BOOLEAN ReadMIDIEvent ( FILEHANDLE f, MIDIEVENTTYPE *Event );
  48.       BOOLEAN ReadMIDITrack ( FILEHANDLE f, MIDITRACK *Track );
  49.  
  50.     public :
  51.       SOUND ();
  52.       virtual ~SOUND ();
  53.  
  54.       BOOLEAN LoadMIDI ( STRING FileName );
  55.   }; // End of SOUND class
  56.  
  57. extern SOUND Sound;
  58.  
  59. #endif
  60.