Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

RainMusic.h

Go to the documentation of this file.
00001 /*FILE: RainMusic.h
00002   DESCRIPTION: Header for RainMusic.cpp
00003   AUTHOR: Jeffrey Tinnea
00004   MODIFIED: 1-15-02*/
00005 
00006 #ifndef _RainMusich
00007 #define _RainMusich
00008 
00009 #include <dmusicc.h>
00010 #include <dmusici.h>
00011 #include <windows.h>
00012 
00013 
00015 //Defines//
00017 
00019 #define REPEAT_FOREVER                          DMUS_SEG_REPEAT_INFINITE
00020 
00021 #define MAX_VOLUME                                      1000
00022 
00023 #define MIN_VOLUME                                      10
00024 
00028 #define AUDIO_TYPE_MUSIC                        0
00029 
00032 #define AUDIO_TYPE_SOUND                        1
00033 
00034 
00036 //Music Classes//
00038 typedef struct FileNameNode
00039 {
00040         char                    FileName[MAX_PATH];
00041         FileNameNode*   NextNode;
00042 } FileNameNode;
00043 
00044 
00047 class FileNameContainer
00048 {
00049         friend class AllAudio;
00050 
00051 protected:
00052         //Data Members
00053         FileNameNode*   m_pFileNameList;
00054         UINT                    m_uTotalFileNames;
00055         bool                    m_bType;
00056 
00057 public:
00058         //Methods
00059         FileNameContainer( void );
00062         ~FileNameContainer( void );
00065         void    SetType(bool bNewType);
00068         bool    GetType( void );
00071         UINT    GetTotalFileNames( void );
00074         int             GetFileNameBI(UINT uIndex, char* szBuffer);
00077         void    AddFileName(char* szFileName);
00079 };
00080 
00082 
00089 class RainDMPerf8
00090 {
00091         friend class AllAudio;
00092 
00093 protected:
00094         //Data Members
00095         IDirectMusicPerformance8*       m_pPerformance;
00096         IDirectMusicSegment8**          m_ppSegment;
00097         bool m_bHavePrimarySegment;
00098 
00099 public:
00100         //Methods
00101         RainDMPerf8( void );
00104         ~RainDMPerf8( void );
00107         HRESULT Initialize(char** p_szSongNameArray, UINT uMaxSizeOfArray, IDirectMusicLoader8** ppLoader);
00111         HRESULT SetTrackFile(char* szFile, UINT uIdx, IDirectMusicLoader8** ppLoader);
00115 
00116         HRESULT PlayTrack(UINT uIdx, DWORD dwRepeats);
00121         HRESULT Stop( void );
00123 };
00124 
00126 
00136 class AllAudio
00137 {
00138 protected:
00139         //Data Members
00140         IDirectMusicLoader8*    m_pLoader;
00141         RainDMPerf8*                    m_pPerfMusic;
00142         RainDMPerf8*                    m_pPerfSound;
00143 
00144         //Methods
00145         int CreateSongNameArrayFromList(FileNameContainer fncSongFileNames, char** p_szBuffer);
00146 
00147 public:
00148         //Methods
00149         AllAudio( void );
00152         ~AllAudio( void );
00155         HRESULT Initialize(FileNameContainer* fncMusicFileNames, FileNameContainer* fncSoundFileNames, char* szBasePath);
00158         HRESULT SetBasePath(char* szBasePath);
00161         HRESULT SetMusicFile(UINT uStringTableIndex);
00164         HRESULT PlaySoundBI(UINT uIdx, DWORD dwRepeats);
00167         HRESULT PlayMusic( void );
00170         HRESULT StopMusic( void );
00173         HRESULT StopAllSounds( void );
00176         HRESULT SetMusicVolume(DWORD dwVolume);
00179         HRESULT SetSoundVolume(DWORD dwVolume);
00181 };
00182 
00183 #endif

Generated on Thu May 23 17:51:00 2002 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001