T3D图形库(三)

来源:互联网 发布:python中文文档 编辑:程序博客网 时间:2024/05/18 07:22

 T3D图形库DMusic&&DSound头文件部分

 

  1. /*2008.10.3
  2. T3D图形库
  3. ——<<windows游戏
  4. 编程大师技巧>>
  5. */
  6. // DirectSound && DirectMusic
  7. #ifndef DS_DM_LIB
  8. #define DS_DM_LIB
  9. #define DM_NUM_SEGMENTS 64 // 内存中可以被捕获到的MIDI音乐段
  10. // midi对象状态
  11. #define MIDI_NULL     0   // 没有被加载
  12. #define MIDI_LOADED   1   // 被加载
  13. #define MIDI_PLAYING  2   // 在播放
  14. #define MIDI_STOPPED  3   // 被加载后停止
  15. #define MAX_SOUNDS     256 // 声音数量
  16. // 数字声音状态
  17. #define SOUND_NULL     0  //同上
  18. #define SOUND_LOADED   1
  19. #define SOUND_PLAYING  2
  20. #define SOUND_STOPPED  3
  21. // 以下宏使其兼容 directx 7.0
  22. #ifndef DSBCAPS_CTRLDEFAULT
  23. #define DSBCAPS_CTRLDEFAULT (DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME )
  24. #endif
  25. // 转换为微软分贝单位 volume为100则声音最大
  26. #define DSVOLUME_TO_DB(volume) ((DWORD)(-30*(100 - volume)))
  27. // 多子节字符转换为宽字符串
  28. #define MULTI_TO_WIDE( x,y )  MultiByteToWideChar( CP_ACP,MB_PRECOMPOSED, y,-1,x,_MAX_PATH);
  29. // 初始化结构体
  30. #define DD_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }
  31. // 类型 //////////////////////////////////////////////////
  32. // 存储单一的声音文件
  33. typedef struct pcm_sound_typ
  34.     {
  35.     LPDIRECTSOUNDBUFFER dsbuffer;   // DS 的后备缓冲
  36.     int state;                      // 声音状态
  37.     int rate;                       // 回放速率
  38.     int size;                       // 声音大小
  39.     int id;                         // 声音ID
  40.     } pcm_sound, *pcm_sound_ptr;
  41. // DM midi段 结构
  42. typedef struct DMUSIC_MIDI_TYP
  43. {
  44. IDirectMusicSegment        *dm_segment;  // the directmusic segment
  45. IDirectMusicSegmentState   *dm_segstate; // the state of the segment
  46. int                        id;           // the id of this segment               
  47. int                        state;        // state of midi song
  48. } DMUSIC_MIDI, *DMUSIC_MIDI_PTR;
  49. // 函数接口 /////////////////////////////////////////////
  50. // directsound
  51. int DSound_Load_WAV(char *filename, int control_flags = DSBCAPS_CTRLDEFAULT);
  52. int DSound_Replicate_Sound(int source_id);
  53. int DSound_Play(int id, int flags=0, int volume=0, int rate=0, int pan=0);
  54. int DSound_Stop_Sound(int id);
  55. int DSound_Stop_All_Sounds(void);
  56. int DSound_Init(void);
  57. int DSound_Shutdown(void);
  58. int DSound_Delete_Sound(int id);
  59. int DSound_Delete_All_Sounds(void);
  60. int DSound_Status_Sound(int id);
  61. int DSound_Set_Volume(int id,int vol);
  62. int DSound_Set_Freq(int id,int freq);
  63. int DSound_Set_Pan(int id,int pan);
  64. // directmusic
  65. int DMusic_Load_MIDI(char *filename);
  66. int DMusic_Play(int id);
  67. int DMusic_Stop(int id);
  68. int DMusic_Shutdown(void);
  69. int DMusic_Delete_MIDI(int id);
  70. int DMusic_Delete_All_MIDI(void);
  71. int DMusic_Status_MIDI(int id);
  72. int DMusic_Init(void);
  73. // GLOBALS ////////////////////////////////////////////////
  74. // EXTERNALS //////////////////////////////////////////////
  75. extern HWND main_window_handle; // save the window handle
  76. extern HINSTANCE main_instance; // save the instance
  77. extern LPDIRECTSOUND        lpds;           // directsound interface pointer
  78. extern DSBUFFERDESC         dsbd;           // directsound description
  79. extern DSCAPS               dscaps;         // directsound caps
  80. extern HRESULT              dsresult;       // general directsound result
  81. extern DSBCAPS              dsbcaps;        // directsound buffer caps
  82. extern LPDIRECTSOUNDBUFFER  lpdsbprimary;   // the primary mixing buffer
  83. extern pcm_sound            sound_fx[MAX_SOUNDS];    // the array of secondary sound buffers
  84. extern WAVEFORMATEX         pcmwf;          // generic waveformat structure
  85. // direct music globals
  86. extern IDirectMusicPerformance    *dm_perf ;    // the directmusic performance manager 
  87. extern IDirectMusicLoader         *dm_loader;  // the directmusic loader
  88. // this hold all the directmusic midi objects
  89. extern DMUSIC_MIDI                dm_midi[DM_NUM_SEGMENTS];
  90. extern int dm_active_id;                               // currently active midi segment
  91. #endif

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 并蹄莲叶子大黄怎么办 异地恋见面来大姨妈怎么办 奶水太多宝宝老是呛到怎么办 奶水太多吃奶婴儿呛怎么办 人家不愿意交我为朋友怎么办 面对诋毁我的人怎么办 做事太细致速度太慢怎么办 高一儿子早恋了怎么办 儿子18岁谈朋友怎么办 和朋友为钱吵架怎么办 感情里总担心失去怎么办 眼石移出盲僧怎么办 打仗把小便踢肿了怎么办 腿上都是挠的疤怎么办 脚上的肉烂了怎么办 商铺门口有电杆怎么办 漏电保护器坏了怎么办 空开进线烧了怎么办 过压保护灯亮怎么办 美的热水器接地异常怎么办 欠压保护器坏了怎么办 三孔插座没地线怎么办 二胡琴筒裂缝宽怎么办 有了月亮从四星宠满级的怎么办 党委下属没有党支部了党委怎么办 发生日期大于制单日期怎么办 美的空调出现p0怎么办 薯片受潮不脆了怎么办 泡过的莲子煮不烂怎么办 绿豆有煮不熟的怎么办 吃了羊肉吃西瓜怎么办 吃了狗肉和绿豆怎么办 做的衣柜没有门怎么办 蒸馒头熟了会瘪怎么办 3dmax贴图太大了怎么办 嘴皮边缘颜色深怎么办 嘴巴周围肤色暗沉怎么办 中奖彩票被洗了怎么办 牙龈下面长米粒肉疙瘩怎么办 书画印章盖反了怎么办 金龙鱼一个月不吃东西怎么办