Changeset 204847 in webkit
- Timestamp:
- Aug 23, 2016, 12:02:48 PM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r204843 r204847 1 2016-08-23 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] Templatize MediaConstraint 4 https://bugs.webkit.org/show_bug.cgi?id=161092 5 6 Reviewed by Jer Noble. 7 8 No new tests, no functional change. 9 10 * platform/mediastream/MediaConstraints.cpp: 11 (WebCore::BooleanConstraint::getExact): 12 (WebCore::BooleanConstraint::getIdeal): 13 (WebCore::MediaConstraint::getMin): Deleted. 14 (WebCore::MediaConstraint::getMax): Deleted. 15 (WebCore::MediaConstraint::getExact): Deleted. 16 (WebCore::MediaConstraint::getIdeal): Deleted. 17 (WebCore::IntConstraint::create): Deleted. 18 (WebCore::IntConstraint::setMin): Deleted. 19 (WebCore::IntConstraint::setMax): Deleted. 20 (WebCore::IntConstraint::setExact): Deleted. 21 (WebCore::IntConstraint::setIdeal): Deleted. 22 (WebCore::IntConstraint::getMin): Deleted. 23 (WebCore::IntConstraint::getMax): Deleted. 24 (WebCore::IntConstraint::getExact): Deleted. 25 (WebCore::IntConstraint::getIdeal): Deleted. 26 (WebCore::DoubleConstraint::create): Deleted. 27 (WebCore::DoubleConstraint::setMin): Deleted. 28 (WebCore::DoubleConstraint::setMax): Deleted. 29 (WebCore::DoubleConstraint::setExact): Deleted. 30 (WebCore::DoubleConstraint::setIdeal): Deleted. 31 (WebCore::DoubleConstraint::getMin): Deleted. 32 (WebCore::DoubleConstraint::getMax): Deleted. 33 (WebCore::DoubleConstraint::getExact): Deleted. 34 (WebCore::DoubleConstraint::getIdeal): Deleted. 35 (WebCore::BooleanConstraint::create): Deleted. 36 (WebCore::BooleanConstraint::setExact): Deleted. 37 (WebCore::BooleanConstraint::setIdeal): Deleted. 38 (WebCore::StringConstraint::create): Deleted. 39 * platform/mediastream/MediaConstraints.h: 40 (WebCore::MediaConstraint::getMin): 41 (WebCore::MediaConstraint::getMax): 42 (WebCore::MediaConstraint::getExact): 43 (WebCore::MediaConstraint::getIdeal): 44 (WebCore::NumericConstraint::setMin): 45 (WebCore::NumericConstraint::setMax): 46 (WebCore::NumericConstraint::setExact): 47 (WebCore::NumericConstraint::setIdeal): 48 (WebCore::NumericConstraint::setHasMin): Deleted. 49 (WebCore::NumericConstraint::setHasMax): Deleted. 50 (WebCore::NumericConstraint::setHasExact): Deleted. 51 (WebCore::NumericConstraint::setHasIdeal): Deleted. 52 (WebCore::NumericConstraint::hasMin): Deleted. 53 (WebCore::NumericConstraint::hasMax): Deleted. 54 (WebCore::NumericConstraint::hasExact): Deleted. 55 (WebCore::NumericConstraint::hasIdeal): Deleted. 56 1 57 2016-08-23 Anders Carlsson <andersca@apple.com> 2 58 -
trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp
r204595 r204847 63 63 } 64 64 65 bool MediaConstraint::getMin(int&) const65 bool BooleanConstraint::getExact(bool& exact) const 66 66 { 67 ASSERT_NOT_REACHED(); 68 return false; 69 } 70 71 bool MediaConstraint::getMax(int&) const 72 { 73 ASSERT_NOT_REACHED(); 74 return false; 75 } 76 77 bool MediaConstraint::getExact(int&) const 78 { 79 ASSERT_NOT_REACHED(); 80 return false; 81 } 82 83 bool MediaConstraint::getIdeal(int&) const 84 { 85 ASSERT_NOT_REACHED(); 86 return false; 87 } 88 89 bool MediaConstraint::getMin(double&) const 90 { 91 ASSERT_NOT_REACHED(); 92 return false; 93 } 94 95 bool MediaConstraint::getMax(double&) const 96 { 97 ASSERT_NOT_REACHED(); 98 return false; 99 } 100 101 bool MediaConstraint::getExact(double&) const 102 { 103 ASSERT_NOT_REACHED(); 104 return false; 105 } 106 107 bool MediaConstraint::getIdeal(double&) const 108 { 109 ASSERT_NOT_REACHED(); 110 return false; 111 } 112 113 bool MediaConstraint::getMin(bool&) const 114 { 115 ASSERT_NOT_REACHED(); 116 return false; 117 } 118 119 bool MediaConstraint::getMax(bool&) const 120 { 121 ASSERT_NOT_REACHED(); 122 return false; 123 } 124 125 bool MediaConstraint::getExact(bool&) const 126 { 127 ASSERT_NOT_REACHED(); 128 return false; 129 } 130 131 bool MediaConstraint::getIdeal(bool&) const 132 { 133 ASSERT_NOT_REACHED(); 134 return false; 135 } 136 137 bool MediaConstraint::getMin(Vector<String>&) const 138 { 139 ASSERT_NOT_REACHED(); 140 return false; 141 } 142 143 bool MediaConstraint::getMax(Vector<String>&) const 144 { 145 ASSERT_NOT_REACHED(); 146 return false; 147 } 148 149 bool MediaConstraint::getExact(Vector<String>&) const 150 { 151 ASSERT_NOT_REACHED(); 152 return false; 153 } 154 155 bool MediaConstraint::getIdeal(Vector<String>&) const 156 { 157 ASSERT_NOT_REACHED(); 158 return false; 159 } 160 161 Ref<IntConstraint> IntConstraint::create(MediaConstraintType type) 162 { 163 return adoptRef(*new IntConstraint(type)); 164 } 165 166 void IntConstraint::setMin(int value) 167 { 168 m_min = value; 169 setHasMin(true); 170 } 171 172 void IntConstraint::setMax(int value) 173 { 174 m_max = value; 175 setHasMax(true); 176 } 177 178 void IntConstraint::setExact(int value) 179 { 180 m_exact = value; 181 setHasExact(true); 182 } 183 184 void IntConstraint::setIdeal(int value) 185 { 186 m_ideal = value; 187 setHasIdeal(true); 188 } 189 190 bool IntConstraint::getMin(int& min) const 191 { 192 if (!hasMin()) 193 return false; 194 195 min = m_min; 196 return true; 197 } 198 199 bool IntConstraint::getMax(int& max) const 200 { 201 if (!hasMax()) 202 return false; 203 204 max = m_max; 205 return true; 206 } 207 208 bool IntConstraint::getExact(int& exact) const 209 { 210 if (!hasExact()) 211 return false; 212 213 exact = m_exact; 214 return true; 215 } 216 217 bool IntConstraint::getIdeal(int& ideal) const 218 { 219 if (!hasIdeal()) 220 return false; 221 222 ideal = m_ideal; 223 return true; 224 } 225 226 Ref<DoubleConstraint> DoubleConstraint::create(MediaConstraintType type) 227 { 228 return adoptRef(*new DoubleConstraint(type)); 229 } 230 231 void DoubleConstraint::setMin(double value) 232 { 233 m_min = value; 234 setHasMin(true); 235 } 236 237 void DoubleConstraint::setMax(double value) 238 { 239 m_max = value; 240 setHasMax(true); 241 } 242 243 void DoubleConstraint::setExact(double value) 244 { 245 m_exact = value; 246 setHasExact(true); 247 } 248 249 void DoubleConstraint::setIdeal(double value) 250 { 251 m_ideal = value; 252 setHasIdeal(true); 253 } 254 255 bool DoubleConstraint::getMin(double& min) const 256 { 257 if (!hasMin()) 67 if (!m_exact) 258 68 return false; 259 69 260 min = m_min; 261 return true; 262 } 263 264 bool DoubleConstraint::getMax(double& max) const 265 { 266 if (!hasMax()) 267 return false; 268 269 max = m_max; 270 return true; 271 } 272 273 bool DoubleConstraint::getExact(double& exact) const 274 { 275 if (!hasExact()) 276 return false; 277 278 exact = m_exact; 279 return true; 280 } 281 282 bool DoubleConstraint::getIdeal(double& ideal) const 283 { 284 if (!hasIdeal()) 285 return false; 286 287 ideal = m_ideal; 288 return true; 289 } 290 291 Ref<BooleanConstraint> BooleanConstraint::create(MediaConstraintType type) 292 { 293 return adoptRef(*new BooleanConstraint(type)); 294 } 295 296 void BooleanConstraint::setExact(bool value) 297 { 298 m_exact = value; 299 m_hasExact = true; 300 } 301 302 void BooleanConstraint::setIdeal(bool value) 303 { 304 m_ideal = value; 305 m_hasIdeal = true; 306 } 307 308 bool BooleanConstraint::getExact(bool& exact) const 309 { 310 if (!m_hasExact) 311 return false; 312 313 exact = m_exact; 70 exact = m_exact.value(); 314 71 return true; 315 72 } … … 317 74 bool BooleanConstraint::getIdeal(bool& ideal) const 318 75 { 319 if (!m_ hasIdeal)76 if (!m_ideal) 320 77 return false; 321 78 322 ideal = m_ideal ;79 ideal = m_ideal.value(); 323 80 return true; 324 }325 326 Ref<StringConstraint> StringConstraint::create(MediaConstraintType type)327 {328 return adoptRef(*new StringConstraint(type));329 81 } 330 82 -
trunk/Source/WebCore/platform/mediastream/MediaConstraints.h
r204595 r204847 50 50 virtual bool isMandatory() const = 0; 51 51 52 virtual bool getMin(int&) const ;53 virtual bool getMax(int&) const ;54 virtual bool getExact(int&) const ;55 virtual bool getIdeal(int&) const ;56 57 virtual bool getMin(double&) const ;58 virtual bool getMax(double&) const ;59 virtual bool getExact(double&) const ;60 virtual bool getIdeal(double&) const ;61 62 virtual bool getMin(bool&) const ;63 virtual bool getMax(bool&) const ;64 virtual bool getExact(bool&) const ;65 virtual bool getIdeal(bool&) const ;66 67 virtual bool getMin(Vector<String>&) const ;68 virtual bool getMax(Vector<String>&) const ;69 virtual bool getExact(Vector<String>&) const ;70 virtual bool getIdeal(Vector<String>&) const ;52 virtual bool getMin(int&) const { ASSERT_NOT_REACHED(); return false; } 53 virtual bool getMax(int&) const { ASSERT_NOT_REACHED(); return false; } 54 virtual bool getExact(int&) const { ASSERT_NOT_REACHED(); return false; } 55 virtual bool getIdeal(int&) const { ASSERT_NOT_REACHED(); return false; } 56 57 virtual bool getMin(double&) const { ASSERT_NOT_REACHED(); return false; } 58 virtual bool getMax(double&) const { ASSERT_NOT_REACHED(); return false; } 59 virtual bool getExact(double&) const { ASSERT_NOT_REACHED(); return false; } 60 virtual bool getIdeal(double&) const { ASSERT_NOT_REACHED(); return false; } 61 62 virtual bool getMin(bool&) const { ASSERT_NOT_REACHED(); return false; } 63 virtual bool getMax(bool&) const { ASSERT_NOT_REACHED(); return false; } 64 virtual bool getExact(bool&) const { ASSERT_NOT_REACHED(); return false; } 65 virtual bool getIdeal(bool&) const { ASSERT_NOT_REACHED(); return false; } 66 67 virtual bool getMin(Vector<String>&) const { ASSERT_NOT_REACHED(); return false; } 68 virtual bool getMax(Vector<String>&) const { ASSERT_NOT_REACHED(); return false; } 69 virtual bool getExact(Vector<String>&) const { ASSERT_NOT_REACHED(); return false; } 70 virtual bool getIdeal(Vector<String>&) const { ASSERT_NOT_REACHED(); return false; } 71 71 72 72 MediaConstraintType type() const { return m_type; } 73 74 73 75 74 protected: … … 83 82 }; 84 83 84 template<class ValueType> 85 85 class NumericConstraint : public MediaConstraint { 86 86 public: 87 bool isEmpty() const override { return !m_hasMin && !m_hasMax && !m_hasExact && !m_hasIdeal; } 88 bool isMandatory() const override { return m_hasMin || m_hasMax || m_hasExact; } 87 bool isEmpty() const override { return !m_min && !m_max && !m_exact && !m_ideal; } 88 bool isMandatory() const override { return m_min || m_max || m_exact; } 89 90 void setMin(ValueType value) { m_min = value; } 91 void setMax(ValueType value) { m_max = value; } 92 void setExact(ValueType value) { m_exact = value; } 93 void setIdeal(ValueType value) { m_ideal = value; } 94 95 bool getMin(ValueType& min) const final { 96 if (!m_min) 97 return false; 98 99 min = m_min.value(); 100 return true; 101 } 102 103 bool getMax(ValueType& max) const final { 104 if (!m_max) 105 return false; 106 107 max = m_max.value(); 108 return true; 109 } 110 111 bool getExact(ValueType& exact) const final { 112 if (!m_exact) 113 return false; 114 115 exact = m_exact.value(); 116 return true; 117 } 118 119 bool getIdeal(ValueType& ideal) const final { 120 if (!m_ideal) 121 return false; 122 123 ideal = m_ideal.value(); 124 return true; 125 } 89 126 90 127 protected: … … 94 131 } 95 132 96 void setHasMin(bool value) { m_hasMin = value; } 97 void setHasMax(bool value) { m_hasMax = value; } 98 void setHasExact(bool value) { m_hasExact = value; } 99 void setHasIdeal(bool value) { m_hasIdeal = value; } 100 101 bool hasMin() const { return m_hasMin; } 102 bool hasMax() const { return m_hasMax; } 103 bool hasExact() const { return m_hasExact; } 104 bool hasIdeal() const { return m_hasIdeal; } 105 106 private: 107 bool m_hasMin { false }; 108 bool m_hasMax { false }; 109 bool m_hasExact { false }; 110 bool m_hasIdeal { false }; 111 }; 112 113 class IntConstraint final : public NumericConstraint { 114 public: 115 static Ref<IntConstraint> create(MediaConstraintType); 116 117 void setMin(int value); 118 void setMax(int value); 119 void setExact(int value); 120 void setIdeal(int value); 121 122 bool getMin(int&) const final; 123 bool getMax(int&) const final; 124 bool getExact(int&) const final; 125 bool getIdeal(int&) const final; 133 private: 134 Optional<ValueType> m_min; 135 Optional<ValueType> m_max; 136 Optional<ValueType> m_exact; 137 Optional<ValueType> m_ideal; 138 }; 139 140 class IntConstraint final : public NumericConstraint<int> { 141 public: 142 static Ref<IntConstraint> create(MediaConstraintType type) { return adoptRef(*new IntConstraint(type)); } 126 143 127 144 private: 128 145 explicit IntConstraint(MediaConstraintType type) 129 : WebCore::NumericConstraint(type) 130 { 131 } 132 133 int m_min; 134 int m_max; 135 int m_exact; 136 int m_ideal; 137 }; 138 139 class DoubleConstraint final : public NumericConstraint { 140 public: 141 static Ref<DoubleConstraint> create(MediaConstraintType); 142 143 void setMin(double value); 144 void setMax(double value); 145 void setExact(double value); 146 void setIdeal(double value); 147 148 bool getMin(double&) const final; 149 bool getMax(double&) const final; 150 bool getExact(double&) const final; 151 bool getIdeal(double&) const final; 146 : NumericConstraint<int>(type) 147 { 148 } 149 }; 150 151 class DoubleConstraint final : public NumericConstraint<double> { 152 public: 153 static Ref<DoubleConstraint> create(MediaConstraintType type) { return adoptRef(*new DoubleConstraint(type)); } 152 154 153 155 private: 154 156 explicit DoubleConstraint(MediaConstraintType type) 155 : WebCore::NumericConstraint(type) 156 { 157 } 158 159 double m_min; 160 double m_max; 161 double m_exact; 162 double m_ideal; 157 : NumericConstraint<double>(type) 158 { 159 } 163 160 }; 164 161 165 162 class BooleanConstraint final : public MediaConstraint { 166 163 public: 167 static Ref<BooleanConstraint> create(MediaConstraintType );168 169 void setExact(bool value) ;170 void setIdeal(bool value) ;164 static Ref<BooleanConstraint> create(MediaConstraintType type) { return adoptRef(*new BooleanConstraint(type)); } 165 166 void setExact(bool value) { m_exact = value; } 167 void setIdeal(bool value) { m_ideal = value; } 171 168 172 169 bool getExact(bool&) const final; 173 170 bool getIdeal(bool&) const final; 174 171 175 bool isEmpty() const final { return !m_ hasExact && !m_hasIdeal; };176 bool isMandatory() const final { return m_hasExact; }172 bool isEmpty() const final { return !m_exact && !m_ideal; }; 173 bool isMandatory() const final { return bool(m_exact); } 177 174 178 175 private: … … 182 179 } 183 180 184 bool m_exact { false }; 185 bool m_ideal { false }; 186 bool m_hasExact { false }; 187 bool m_hasIdeal { false }; 181 Optional<bool> m_exact { false }; 182 Optional<bool> m_ideal { false }; 188 183 }; 189 184 190 185 class StringConstraint final : public MediaConstraint { 191 186 public: 192 static Ref<StringConstraint> create(MediaConstraintType );187 static Ref<StringConstraint> create(MediaConstraintType type) { return adoptRef(*new StringConstraint(type)); } 193 188 194 189 void setExact(const String&);
Note:
See TracChangeset
for help on using the changeset viewer.