Merge mozilla-central to autoland. CLOSED TREE
[gecko.git] / media / wmf-clearkey / WMFClearKeyInputTrustAuthority.h
blob9eb2beea874474cb0b1b22f7c0f860eed6d77765
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
8 #include <wrl.h>
9 #include <wrl/client.h>
11 #include "MFCDMExtra.h"
12 #include "RefCounted.h"
14 namespace mozilla {
16 class SessionManagerWrapper;
18 // This class is used to provide WMFClearKeyActivate and WMFClearKeyDecryptor.
19 class WMFClearKeyInputTrustAuthority final
20 : public Microsoft::WRL::RuntimeClass<
21 Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
22 IMFInputTrustAuthority, IMFShutdown, Microsoft::WRL::FtmBase> {
23 public:
24 WMFClearKeyInputTrustAuthority() = default;
25 ~WMFClearKeyInputTrustAuthority() = default;
26 WMFClearKeyInputTrustAuthority(const WMFClearKeyInputTrustAuthority&) =
27 delete;
28 WMFClearKeyInputTrustAuthority& operator=(
29 const WMFClearKeyInputTrustAuthority&) = delete;
31 HRESULT RuntimeClassInitialize(UINT32 aStreamId,
32 SessionManagerWrapper* aSessionManager);
34 // IMFInputTrustAuthority
35 STDMETHODIMP GetDecrypter(REFIID aRiid, void** aPpv) override;
36 STDMETHODIMP RequestAccess(MFPOLICYMANAGER_ACTION aAction,
37 IMFActivate** aContentEnablerActivate) override;
38 STDMETHODIMP GetPolicy(MFPOLICYMANAGER_ACTION aAction,
39 IMFOutputPolicy** aPolicy) override;
40 STDMETHODIMP BindAccess(
41 MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS* aParams) override;
42 STDMETHODIMP UpdateAccess(
43 MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS* aParams) override;
44 STDMETHODIMP Reset() override;
46 // IMFShutdown
47 STDMETHODIMP GetShutdownStatus(MFSHUTDOWN_STATUS* aStatus) override;
48 STDMETHODIMP Shutdown() override;
50 private:
51 RefPtr<SessionManagerWrapper> mSessionManager;
54 } // namespace mozilla
56 #endif // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H