Leaked source code of windows server 2003
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.

131 lines
2.9 KiB

  1. // Copyright (c) 1996-1999 Microsoft Corporation
  2. //
  3. //
  4. //
  5. #ifndef _PRIVATE
  6. #define _PRIVATE_
  7. NTSTATUS CreateMiniportDmSynth
  8. (
  9. OUT PUNKNOWN * Unknown,
  10. IN PUNKNOWN UnknownOuter OPTIONAL,
  11. IN POOL_TYPE PoolType
  12. );
  13. #include <stdunk.h>
  14. class CDmSynthStream;
  15. class CMiniportDmSynth : public IMiniportSynthesizer, public CUnknown
  16. {
  17. friend class CDmSynthStream;
  18. public:
  19. // IUnknown
  20. //
  21. DECLARE_STD_UNKNOWN();
  22. DEFINE_STD_CONSTRUCTOR(CMiniportDmSynth);
  23. ~CMiniportDmSynth();
  24. // IMiniport
  25. //
  26. STDMETHOD(GetDescription)
  27. ( THIS_
  28. OUT PPCFILTER_DESCRIPTOR * OutFilterDescriptor
  29. );
  30. STDMETHOD(DataRangeIntersection)
  31. ( THIS_
  32. IN ULONG PinId,
  33. IN PKSDATARANGE DataRange,
  34. IN PKSDATARANGE MatchingDataRange,
  35. IN ULONG OutputBufferLength,
  36. OUT PVOID ResultantFormat OPTIONAL,
  37. OUT PULONG ResultantFormatLength
  38. );
  39. // IMiniportDmSynth
  40. //
  41. STDMETHOD(Init)
  42. ( THIS_
  43. IN PUNKNOWN UnknownNotUsed OPTIONAL,
  44. IN PRESOURCELIST ResourceList,
  45. IN PPORTSYNTHESIZER Port,
  46. OUT PSERVICEGROUP * ServiceGroup
  47. );
  48. STDMETHOD(NewStream)
  49. ( THIS_
  50. OUT PMINIPORTSYNTHESIZERSTREAM * Stream,
  51. IN PUNKNOWN OuterUnknown OPTIONAL,
  52. IN POOL_TYPE PoolType,
  53. IN ULONG Pin,
  54. IN BOOLEAN Capture,
  55. IN PKSDATAFORMAT DataFormat,
  56. OUT PSERVICEGROUP * ServiceGroup
  57. );
  58. STDMETHOD_(void, Service)
  59. ( void
  60. );
  61. private:
  62. PPORTSYNTHESIZER Port;
  63. CDmSynthStream * Stream;
  64. };
  65. class CDmSynthStream : public IMiniportSynthesizerStream, public CUnknown
  66. {
  67. public:
  68. // IUnknown
  69. //
  70. DECLARE_STD_UNKNOWN();
  71. DEFINE_STD_CONSTRUCTOR(CDmSynthStream);
  72. ~CDmSynthStream();
  73. NTSTATUS Init(CMiniportDmSynth *Miniport);
  74. // IMxfFilter
  75. //
  76. STDMETHOD(ConnectOutput)
  77. (
  78. PMXFFILTER ConnectionPoint
  79. );
  80. STDMETHOD(DisconnectOutput)
  81. (
  82. PMXFFILTER ConnectionPoint
  83. );
  84. STDMETHOD(PutMessage)
  85. ( THIS_
  86. IN PDMUS_KERNEL_EVENT Event
  87. );
  88. // IMiniportSynthStream
  89. //
  90. STDMETHOD(SetState)
  91. ( THIS_
  92. IN KSSTATE State
  93. );
  94. // Class
  95. //
  96. STDMETHOD(HandlePortParams)
  97. ( THIS_
  98. IN PPCPROPERTY_REQUEST pRequest
  99. );
  100. public:
  101. CSynth * Synth;
  102. private:
  103. CMiniportDmSynth * Miniport;
  104. CSysLink * Sink;
  105. SYNTH_PORTPARAMS PortParams;
  106. };
  107. typedef CDmSynthStream *PDMSYNTHSTREAM;
  108. #endif // _PRIVATE_