summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h')
-rw-r--r--Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h54
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
-
-