Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.7 KiB

  1. //
  2. // dmusiccp.h
  3. //
  4. // Copyright (c) 2000 Microsoft Corporation. All rights reserved.
  5. //
  6. // Private interfaces
  7. #ifndef _DMUSICCP_DOT_H_
  8. #define _DMUSICCP_DOT_H_
  9. #include <dsoundp.h> // For IDirectSoundWave
  10. // Interfaces/methods removed from Direct Music Core layer:
  11. // IDirectMusicVoiceP
  12. interface IDirectMusicVoiceP : IUnknown
  13. {
  14. // IUnknown
  15. virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *)=0;
  16. virtual ULONG STDMETHODCALLTYPE AddRef()=0;
  17. virtual ULONG STDMETHODCALLTYPE Release()=0;
  18. // IDirectMusicVoiceP
  19. virtual HRESULT STDMETHODCALLTYPE Play(
  20. REFERENCE_TIME rtStart, // Time to play
  21. LONG prPitch, // Initial pitch
  22. LONG vrVolume // Initial volume
  23. )=0;
  24. virtual HRESULT STDMETHODCALLTYPE Stop(
  25. REFERENCE_TIME rtStop // When to stop
  26. )=0;
  27. };
  28. // IDirectSoundDownloadedWaveP
  29. interface IDirectSoundDownloadedWaveP : IUnknown
  30. {
  31. // IUnknown
  32. virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *)=0;
  33. virtual ULONG STDMETHODCALLTYPE AddRef()=0;
  34. virtual ULONG STDMETHODCALLTYPE Release()=0;
  35. // IDirectSoundDownloadedWaveP
  36. };
  37. // IDirectMusicPortP
  38. interface IDirectMusicPortP : IUnknown
  39. {
  40. // IUnknown
  41. virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *)=0;
  42. virtual ULONG STDMETHODCALLTYPE AddRef()=0;
  43. virtual ULONG STDMETHODCALLTYPE Release()=0;
  44. // IDirectMusicPortP
  45. virtual HRESULT STDMETHODCALLTYPE DownloadWave(
  46. IDirectSoundWave *pWave, // Wave object
  47. IDirectSoundDownloadedWaveP **ppWave, // Returned downloaded wave
  48. REFERENCE_TIME rtStartHint = 0 // Where we're likely to start
  49. )=0;
  50. virtual HRESULT STDMETHODCALLTYPE UnloadWave(
  51. IDirectSoundDownloadedWaveP *pWave // Wave object
  52. )=0;
  53. virtual HRESULT STDMETHODCALLTYPE AllocVoice(
  54. IDirectSoundDownloadedWaveP *pWave, // Wave to play on this voice
  55. DWORD dwChannel, // Channel and channel group
  56. DWORD dwChannelGroup, // this voice will play on
  57. REFERENCE_TIME rtStart, // Start position (stream only)
  58. SAMPLE_TIME stLoopStart, // Loop start (one-shot only)
  59. SAMPLE_TIME stLoopEnd, // Loop end (one-shot only)
  60. IDirectMusicVoiceP **ppVoice // Returned voice
  61. )=0;
  62. virtual HRESULT STDMETHODCALLTYPE AssignChannelToBuses(
  63. DWORD dwChannelGroup, // Channel group and
  64. DWORD dwChannel, // channel to assign
  65. LPDWORD pdwBuses, // Array of bus id's to assign
  66. DWORD cBusCount // Count of bus id's
  67. )=0;
  68. virtual HRESULT STDMETHODCALLTYPE SetSink(
  69. IDirectSoundConnect *pSinkConnect // From IDirectSoundPrivate::AllocSink
  70. )=0;
  71. virtual HRESULT STDMETHODCALLTYPE GetSink(
  72. IDirectSoundConnect **ppSinkConnect // The sink in use
  73. )=0;
  74. };
  75. // GUIDs for new core layer private interfaces
  76. DEFINE_GUID(IID_IDirectMusicVoiceP, 0x827ae928, 0xe44, 0x420d, 0x95, 0x24, 0x56, 0xf4, 0x93, 0x57, 0x8, 0xa6);
  77. DEFINE_GUID(IID_IDirectSoundDownloadedWaveP, 0x3b527b6e, 0x5577, 0x4060, 0xb9, 0x6, 0xcd, 0x34, 0xa, 0x46, 0x71, 0x27);
  78. DEFINE_GUID(IID_IDirectMusicPortP, 0x7048bcd8, 0x43fd, 0x4ca5, 0x93, 0x11, 0xf3, 0x24, 0x8f, 0xa, 0x25, 0x22);
  79. // Class ID for synth sink. We pulled this from public headers since apps should never cocreate this.
  80. DEFINE_GUID(CLSID_DirectMusicSynthSink,0xaec17ce3, 0xa514, 0x11d1, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6);
  81. #endif // _DMUSICCP_DOT_H_