home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / pc / DirectX SDK / DXSDK / samples / Multimedia / Demos / DMBoids / music.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-10-31  |  3.2 KB  |  117 lines

  1. //-----------------------------------------------------------------------------
  2. // File: Music.h
  3. //
  4. // Desc: 
  5. //       
  6. // Copyright (c) 1995-2001 Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------------
  8. #ifndef MUSIC_H
  9. #define MUSIC_H
  10.  
  11. #include <windows.h>
  12. #include <dmusicc.h>
  13. #include <dmusici.h>
  14.  
  15. interface IDirectMusicStyle;
  16. interface IDirectMusicChordMap;
  17. interface IDirectMusicPerformance;
  18. interface IDirectMusicSegment;
  19. interface IDirectMusicComposer;
  20. interface IDirectMusicLoader;
  21. interface IDirectMusicGraph;
  22. interface IDirectMusicBand;
  23.  
  24.  
  25.  
  26.  
  27. //-----------------------------------------------------------------------------
  28. // Name: 
  29. // Desc: 
  30. //-----------------------------------------------------------------------------
  31. class CTool : public IDirectMusicTool
  32. {
  33. public:
  34.     CTool();
  35.     ~CTool();
  36.  
  37. public:
  38. // IUnknown
  39.     virtual STDMETHODIMP QueryInterface(const IID &iid, void **ppv);
  40.     virtual STDMETHODIMP_(ULONG) AddRef();
  41.     virtual STDMETHODIMP_(ULONG) Release();
  42.  
  43. // IDirectMusicTool
  44.     HRESULT STDMETHODCALLTYPE Init(IDirectMusicGraph* pGraph) ;
  45.     HRESULT STDMETHODCALLTYPE GetMsgDeliveryType(DWORD* pdwDeliveryType ) ;
  46.     HRESULT STDMETHODCALLTYPE GetMediaTypeArraySize(DWORD* pdwNumElements ) ;
  47.     HRESULT STDMETHODCALLTYPE GetMediaTypes(DWORD** padwMediaTypes, DWORD dwNumElements) ;
  48.     HRESULT STDMETHODCALLTYPE ProcessPMsg(IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG) ;
  49.     HRESULT STDMETHODCALLTYPE Flush(IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG, REFERENCE_TIME rt) ;
  50.  
  51.     long    m_cRef;
  52.     DWORD    m_dwRatio;
  53.     DWORD    m_dwEcho;
  54.     DWORD    m_dwDelay;
  55.     DWORD    m_dwStartRatio;
  56.     IDirectMusicPerformance *    m_pPerformance;
  57. };
  58.  
  59.  
  60.  
  61.  
  62. //-----------------------------------------------------------------------------
  63. // Name: 
  64. // Desc: 
  65. //-----------------------------------------------------------------------------
  66. class BoidMusic
  67. {
  68. public:
  69.                 BoidMusic();
  70.                 ~BoidMusic();
  71.     HRESULT     LoadMusic( HWND hWnd );
  72.     BOOL        LoadChordMap();
  73.     BOOL        LoadStyle();
  74.     BOOL        LoadSegment();
  75.     HRESULT     LoadDLS();
  76.     BOOL        LoadTemplate(DWORD dwIndex, WCHAR * pszName);
  77.     BOOL        GetMotif(DWORD dwIndex, WCHAR * pszName);
  78.     void        ComposeSegment(DWORD dwIndex);
  79.     void        EndMusic();
  80.     void        StartMusic();
  81.     void        Transition();
  82.     void        Collapse();
  83.     void        Expand();
  84.     void        Migrate();
  85.     void        HandleNotifies();
  86.     void        SetDistance(double fDistance);
  87.     BOOL        GetSearchPath(WCHAR path[MAX_PATH]);
  88.     void        Activate(BOOL bActive);
  89.     IDirectMusicStyle*            m_pStyle;
  90.     IDirectMusicChordMap*        m_pChordMap;
  91.     IDirectMusicSegment*        m_pTemplateSegments[6];
  92.     IDirectMusicSegment*        m_pPrimarySegments[6];
  93.     IDirectMusicSegment*        m_pTransitionSegment;
  94.     IDirectMusicSegment*        m_pMotifSegments[6];
  95.     IDirectMusicSegment*        m_pSegment;
  96.     IDirectMusicComposer*        m_pComposer;
  97.     IDirectMusicLoader*            m_pLoader;
  98.     IDirectMusicPerformance*    m_pPerformance;
  99.     IDirectMusicGraph*            m_pGraph;
  100.     IDirectMusicPort*            m_pPort;
  101.     IDirectMusicBand*            m_pBand;
  102.     IDirectMusic*                m_pDMusic;
  103.     DWORD                        m_dwIndex;
  104.     HANDLE                        m_hNotify;
  105.     DWORD                        m_dwLevel;
  106.     CTool                        m_Tool;
  107.     BOOL                        m_dwBeatsSinceLastMotif;
  108.     BOOL                        m_fCollapsed;
  109. };
  110.  
  111.  
  112.  
  113.  
  114. #endif
  115.  
  116.  
  117.