⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.h

📁 《OpenGL游戏编程》这本书的配套源码。
💻 H
字号:
//========================================================
/**
*  @file      Music.h
*
*  项目描述: 构造游戏引擎
*  文件描述:  DirectMusic音乐类
*  适用平台: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  电子邮件:  wwboss123@gmail.com
*  创建日期: 2007-07-26	
*  修改日期: 2007-07-26
*
*/ 
//========================================================

#ifndef _MUSIC_H_
#define _MUSIC_H_

#include "StdAfx.h"
#include <dmusicc.h>
#include <dmusici.h>


/**\brief
 * DMusic 音乐播放类
 */
class CMusic
{
public:
	CMusic();
	~CMusic();

	static IDirectMusicSegment* LoadMIDISegment(IDirectMusicLoader* pLoader, WCHAR *wszMidiFileName );

	/**\brief
	 * 初始化DMUSIC
	 */
	static BOOL InitMusic();

	/**\brief
	 * 载入MIDI音乐文件
	 */
	BOOL LoadMusic(WCHAR *);
	BOOL LoadMusic(char* filename){return LoadMusic(WChar(filename));}

	/**\brief
	 * 开始播放
	 */
	BOOL Play(int start=0);

	/**\brief
	 * 停止播放
	 */
	BOOL Stop();

	/**\brief
	 * 暂停播放
	 */
	BOOL Pause();

	/**\brief
	 * 暂停后用来继续播放
	 */
	BOOL Resume();

	/**\brief
	 * 是否正在播放
	 */
	BOOL IsPlay();

	/**\brief
	 * 得到当前音乐对象的指针
	 */
	static CMusic* GetSysMusic(){return m_pMusic;}

private:
	//是否有音乐
	static bool bMusic;

	//主缓冲是否已存在
	static bool bExist;
	
	//是否播放
	static bool bPlay;
	static IDirectMusicPerformance* g_pPerf;
	static IDirectMusicLoader* g_pLoader;
	IDirectMusicSegment* g_pMIDISeg;

	//暂停点
	MUSIC_TIME PauseTime;

	//文件
	WCHAR MusicFile[MAX_PATH];

	//! 对象指针
	static CMusic* m_pMusic;

	static IDirectMusicPerformance* CreatePerformance(void);
	static IDirectMusicLoader* CreateLoader(void);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -