diff options
Diffstat (limited to 'Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h')
-rw-r--r-- | Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h | 54 |
1 files changed, 33 insertions, 21 deletions
diff --git a/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h b/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h index eeb631ca3..fbee397cd 100644 --- a/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h +++ b/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h @@ -28,44 +28,56 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef MediaConstraintsImpl_h -#define MediaConstraintsImpl_h +#pragma once #if ENABLE(MEDIA_STREAM) #include "ExceptionBase.h" #include "MediaConstraints.h" -#include <wtf/HashMap.h> #include <wtf/Vector.h> namespace WebCore { -class Dictionary; -class MediaConstraintsImpl : public MediaConstraints { -public: - static PassRefPtr<MediaConstraintsImpl> create(); - static PassRefPtr<MediaConstraintsImpl> create(const Dictionary&, ExceptionCode&); +struct MediaConstraintsData { + MediaConstraintsData() = default; + MediaConstraintsData(MediaTrackConstraintSetMap&& mandatoryConstraints, Vector<MediaTrackConstraintSetMap>&& advancedConstraints, bool isValid) + : mandatoryConstraints(WTFMove(mandatoryConstraints)) + , advancedConstraints(WTFMove(advancedConstraints)) + , isValid(isValid) + { + } + + MediaTrackConstraintSetMap mandatoryConstraints; + Vector<MediaTrackConstraintSetMap> advancedConstraints; + bool isValid { false }; +}; - virtual ~MediaConstraintsImpl(); - bool initialize(const Dictionary&); +class MediaConstraintsImpl final : public MediaConstraints { +public: + static Ref<MediaConstraintsImpl> create(MediaTrackConstraintSetMap&& mandatoryConstraints, Vector<MediaTrackConstraintSetMap>&& advancedConstraints, bool isValid); + WEBCORE_EXPORT static Ref<MediaConstraintsImpl> create(const MediaConstraintsData&); - virtual void getMandatoryConstraints(Vector<MediaConstraint>&) const override; - virtual void getOptionalConstraints(Vector<MediaConstraint>&) const override; + MediaConstraintsImpl() = default; + virtual ~MediaConstraintsImpl() = default; - virtual bool getMandatoryConstraintValue(const String& name, String& value) const override; - virtual bool getOptionalConstraintValue(const String& name, String& value) const override; + const MediaTrackConstraintSetMap& mandatoryConstraints() const final { return m_data.mandatoryConstraints; } + const Vector<MediaTrackConstraintSetMap>& advancedConstraints() const final { return m_data.advancedConstraints; } + bool isValid() const final { return m_data.isValid; } + const MediaConstraintsData& data() const { return m_data; } private: - MediaConstraintsImpl() { } + MediaConstraintsImpl(MediaTrackConstraintSetMap&& mandatoryConstraints, Vector<MediaTrackConstraintSetMap>&& advancedConstraints, bool isValid) + : m_data({ WTFMove(mandatoryConstraints), WTFMove(advancedConstraints), isValid }) + { + } + explicit MediaConstraintsImpl(const MediaConstraintsData& data) + : m_data(data) + { + } - HashMap<String, String> m_mandatoryConstraints; - Vector<MediaConstraint> m_optionalConstraints; + MediaConstraintsData m_data; }; } // namespace WebCore #endif // ENABLE(MEDIA_STREAM) - -#endif // MediaConstraintsImpl_h - - |