home *** CD-ROM | disk | FTP | other *** search
/ Amiga Dream 59 / CDDream59.ISO / BeOs / Sound / Intel / PPBeDevKit.ZIP / PLAYERPR.TAR / PlayerPRO / Source / Be-DriverClass.h < prev    next >
C/C++ Source or Header  |  1998-12-26  |  3KB  |  123 lines

  1. /********************                        ***********************/
  2. //
  3. //    Player PRO 5.0 -- MAD Class for BeOS -
  4. //
  5. //    Library Version 5.0
  6. //
  7. //    To use with MAD Library for BeOS: CodeWarrior
  8. //
  9. //    Antoine ROSSET
  10. //    16 Tranchees
  11. //    1206 GENEVA
  12. //    SWITZERLAND
  13. //
  14. //    Thank you for your interest in PlayerPRO !
  15. //
  16. //    Special Thanks to:
  17. //
  18. //    Dario Accornero <adario@cs.bu.edu>
  19. //
  20. //    For his BeOS support and help!
  21. //
  22. //    FAX:            (+41 22) 346 11 97
  23. //    PHONE:             (+41 79) 203 74 62
  24. //    Internet:         rossetantoine@bluewin.ch
  25. //
  26. /********************                        ***********************/
  27.  
  28. #ifndef __DRIVERCLASSH__
  29. #define __DRIVERCLASSH__
  30.  
  31. //    System headers.
  32.  
  33. #include <MediaDefs.h>
  34. #include    <SoundPlayer.h>
  35. #include    <OS.h>
  36. #include    <Entry.h>
  37. #include    <File.h>
  38. #include    <Bitmap.h>
  39. #include    <NodeInfo.h>
  40.  
  41. //    Low-level music driver.
  42.  
  43. #include    "RDriver.h"
  44.  
  45. //    Debugging.
  46. //    Set to 1 if debugging messages are needed.
  47.  
  48. #define    DRIVERCLASS_DEBUG    1
  49.  
  50.  
  51. //    Audio formats available
  52.  
  53. enum {    /* for "format" */
  54.         B_AUDIO_UCHAR = 0x11,    /* 128 == mid, 1 == bottom, 255 == top */
  55.         B_AUDIO_SHORT = 0x2,    /* 0 == mid, -32767 == bottom, +32767 == top */
  56.         B_AUDIO_FLOAT = 0x24,    /* 0 == mid, -1.0 == bottom, 1.0 == top */
  57.         B_AUDIO_INT = 0x4        /* 0 == mid, 0x80000001 == bottom, 0x7fffffff == top */
  58.     };
  59.  
  60. //    Inline functions.
  61. //    Convert an OSType (MacOS) to a string.
  62.  
  63. inline    char*    TypeToString( OSType type, char *string )
  64. {
  65.     OSType    *typePtr = (OSType*)string;
  66.     *typePtr = type;
  67.     string[4] = 0;
  68.     return    string;
  69. }
  70.  
  71. //    Main MADDriver class:
  72.  
  73. #pragma    mark    MADDriverClass
  74. _EXPORT    class    MADDriverClass
  75. {
  76. public:
  77.  
  78.     //    Flavourful constructors.
  79.     
  80.     MADDriverClass();
  81.     MADDriverClass( MADDriverSettings *init);
  82.     
  83.     //    Destructor.
  84.     ~MADDriverClass();
  85.     
  86.     //    Loading/checking music files.
  87.     
  88.     bool    LoadMusic( entry_ref* ref, OSType type, bool playIt = true );
  89.     bool    LoadMADHMusic( BFile& file, bool playIt = true );
  90.     bool    ValidMusicFile( entry_ref* ref, OSType* type );
  91.     bool    ValidMADHFile( BFile& file, OSType* type );
  92.     BList*    FindMusics( const char *musicPath );
  93.     
  94.     //    Music control.
  95.     void            StartMusic( void );
  96.     void            PauseMusic( void );
  97.     void            StopMusic( bool discardIt = false );
  98.     bool            MusicEnd( void );
  99.     inline    bool    MusicPlaying( void )         {    return    musicPlay;    }
  100.     inline    bool    MusicLoaded( void )            {    return    curMusic != NULL; }
  101.  
  102.     //    Data members:
  103.     OSErr                libraryError;            //    Last error returned by MADLibrary.
  104.     bool                inited;                    //    Successful initialization.    
  105.     bool                musicPlay;                //    Music playing flag.
  106.     MADLibrary             *MADLib;
  107.     MADDriverRec        *curDriverRec;            //    Current driver.
  108.     MADMusic            *curMusic;                //    Current music.
  109.     MADDriverSettings    settings;                //    Current settings for driver.
  110.  
  111. private:
  112.  
  113.     //    Library initialization.
  114.  
  115.     MADDriverSettings    CreateDefaultDriver( void );    
  116.     bool                InitLibrary( MADDriverSettings *init);
  117.  
  118.     //    System streamers.
  119.  
  120.     BSoundPlayer        *streamPlayer;
  121. };
  122. #endif
  123.