From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/media/platforms/wmf/MFMediaEngineNotify.h | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 dom/media/platforms/wmf/MFMediaEngineNotify.h (limited to 'dom/media/platforms/wmf/MFMediaEngineNotify.h') diff --git a/dom/media/platforms/wmf/MFMediaEngineNotify.h b/dom/media/platforms/wmf/MFMediaEngineNotify.h new file mode 100644 index 0000000000..9e42e115c0 --- /dev/null +++ b/dom/media/platforms/wmf/MFMediaEngineNotify.h @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef DOM_MEDIA_PLATFORM_WMF_MFMEDIAENGINENOTIFY_H +#define DOM_MEDIA_PLATFORM_WMF_MFMEDIAENGINENOTIFY_H + +#include + +#include "MediaEventSource.h" +#include "MFMediaEngineExtra.h" +#include "mozilla/Maybe.h" + +namespace mozilla { + +const char* MediaEngineEventToStr(MF_MEDIA_ENGINE_EVENT aEvent); + +// https://docs.microsoft.com/en-us/windows/win32/api/mfmediaengine/ne-mfmediaengine-mf_media_engine_event +struct MFMediaEngineEventWrapper final { + explicit MFMediaEngineEventWrapper(MF_MEDIA_ENGINE_EVENT aEvent) + : mEvent(aEvent) {} + MF_MEDIA_ENGINE_EVENT mEvent; + Maybe mParam1; + Maybe mParam2; +}; + +/** + * MFMediaEngineNotify is used to handle the event sent from the media engine. + * https://docs.microsoft.com/en-us/windows/win32/api/mfmediaengine/nn-mfmediaengine-imfmediaenginenotify + */ +class MFMediaEngineNotify final + : public Microsoft::WRL::RuntimeClass< + Microsoft::WRL::RuntimeClassFlags< + Microsoft::WRL::RuntimeClassType::ClassicCom>, + IMFMediaEngineNotify> { + public: + MFMediaEngineNotify() = default; + + HRESULT RuntimeClassInitialize() { return S_OK; } + + // Method for IMFMediaEngineNotify + IFACEMETHODIMP EventNotify(DWORD aEvent, DWORD_PTR aParam1, + DWORD aParam2) override; + + MediaEventSource& MediaEngineEvent() { + return mEngineEvents; + } + + private: + MediaEventProducer mEngineEvents; +}; + +} // namespace mozilla + +#endif // DOM_MEDIA_PLATFORM_WMF_MFMEDIAENGINENOTIFY_H -- cgit v1.2.3