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
2.4 KiB

  1. /*++
  2. Copyright (c) 1997-2000 Microsoft Corporation All Rights Reserved
  3. Module Name:
  4. minwave.h
  5. Abstract:
  6. Definition of wavecyclic miniport class.
  7. --*/
  8. #ifndef _MSVAD_MINWAVE_H_
  9. #define _MSVAD_MINWAVE_H_
  10. #include "basewave.h"
  11. //=============================================================================
  12. // Referenced Forward
  13. //=============================================================================
  14. class CMiniportWaveCyclicStream;
  15. typedef CMiniportWaveCyclicStream *PCMiniportWaveCyclicStream;
  16. //=============================================================================
  17. // Classes
  18. //=============================================================================
  19. ///////////////////////////////////////////////////////////////////////////////
  20. // CMiniportWaveCyclic
  21. //
  22. class CMiniportWaveCyclic :
  23. public CMiniportWaveCyclicMSVAD,
  24. public IMiniportWaveCyclic,
  25. public CUnknown
  26. {
  27. private:
  28. PCMiniportWaveCyclicStream m_pStream[MAX_INPUT_STREAMS];
  29. BOOL m_fCaptureAllocated;
  30. PDRMPORT m_pDrmPort;
  31. DRMRIGHTS m_MixDrmRights;
  32. ULONG m_ulMixDrmContentId;
  33. protected:
  34. NTSTATUS UpdateDrmRights
  35. (
  36. void
  37. );
  38. public:
  39. DECLARE_STD_UNKNOWN();
  40. DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclic);
  41. ~CMiniportWaveCyclic();
  42. IMP_IMiniportWaveCyclic;
  43. // Friends
  44. friend class CMiniportWaveCyclicStream;
  45. friend class CMiniportTopologySimple;
  46. };
  47. typedef CMiniportWaveCyclic *PCMiniportWaveCyclic;
  48. ///////////////////////////////////////////////////////////////////////////////
  49. // CMiniportWaveCyclicStream
  50. //
  51. class CMiniportWaveCyclicStream :
  52. public IDrmAudioStream,
  53. public CMiniportWaveCyclicStreamMSVAD,
  54. public CUnknown
  55. {
  56. protected:
  57. PCMiniportWaveCyclic m_pMiniportLocal;
  58. ULONG m_ulContentId;
  59. public:
  60. DECLARE_STD_UNKNOWN();
  61. DEFINE_STD_CONSTRUCTOR(CMiniportWaveCyclicStream);
  62. ~CMiniportWaveCyclicStream();
  63. IMP_IDrmAudioStream;
  64. NTSTATUS Init
  65. (
  66. IN PCMiniportWaveCyclic Miniport,
  67. IN ULONG Channel,
  68. IN BOOLEAN Capture,
  69. IN PKSDATAFORMAT DataFormat
  70. );
  71. // Friends
  72. friend class CMiniportWaveCyclic;
  73. };
  74. typedef CMiniportWaveCyclicStream *PCMiniportWaveCyclicStream;
  75. #endif