home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / thx / include / media.h < prev    next >
C/C++ Source or Header  |  1995-05-08  |  1KB  |  66 lines

  1. // --------- media.h
  2.  
  3. #ifndef MEDIA_H
  4. #define MEDIA_H
  5.  
  6. #include "xms.h"
  7. #include "settings.h"
  8.  
  9. // ------- media clip (sound or graphic)
  10. struct MediaClip  {
  11.   short int w, h;
  12.   long size;
  13.   char *buf;
  14.   long xoffset;
  15.   MediaClip();
  16.   ~MediaClip()
  17.     { delete buf; }
  18. };
  19.  
  20. // ---- media library of sound or graphic clips
  21. struct MediaLib  {
  22.   char name[13];
  23.   short int clipcount;
  24.   MediaClip* clip;
  25.   short int xms_handle;
  26.   MediaLib();
  27.   ~MediaLib();
  28. };
  29.  
  30. class Media  {
  31.   static short int use_xms;
  32.   short int bufsize;
  33.   char *buffer;
  34. protected:
  35.   static MediaLib libraries[MAXFXLIBS];
  36.   static short int libcount;
  37.   Media();
  38.   ~Media();
  39. public:
  40.   static void set_xms(int mode)
  41.     { use_xms = mode; }
  42.   void load_library(char *libfile);
  43.   MediaClip& getclip(int lib, int clp);
  44.   static short int library_number(char *fname);
  45.   static short int clipcount(int libno)
  46.     { return libraries[libno].clipcount; }
  47.   virtual int hasdimensions() = 0;
  48. };
  49.  
  50. class GraphicsMedia : public Media  {
  51. public:
  52.   GraphicsMedia() { }
  53.   virtual int hasdimensions()
  54.     { return 1; }
  55. };
  56.  
  57. class SoundMedia : public Media {
  58. public:
  59.   SoundMedia() { }
  60.   virtual int hasdimensions()
  61.     { return 0; }
  62. };
  63.  
  64. #endif
  65.  
  66.