Changeset 204847 in webkit


Ignore:
Timestamp:
Aug 23, 2016, 12:02:48 PM (9 years ago)
Author:
eric.carlson@apple.com
Message:

[MediaStream] Templatize MediaConstraint
https://bugs.webkit.org/show_bug.cgi?id=161092

Reviewed by Jer Noble.

No new tests, no functional change.

  • platform/mediastream/MediaConstraints.cpp:

(WebCore::BooleanConstraint::getExact):
(WebCore::BooleanConstraint::getIdeal):
(WebCore::MediaConstraint::getMin): Deleted.
(WebCore::MediaConstraint::getMax): Deleted.
(WebCore::MediaConstraint::getExact): Deleted.
(WebCore::MediaConstraint::getIdeal): Deleted.
(WebCore::IntConstraint::create): Deleted.
(WebCore::IntConstraint::setMin): Deleted.
(WebCore::IntConstraint::setMax): Deleted.
(WebCore::IntConstraint::setExact): Deleted.
(WebCore::IntConstraint::setIdeal): Deleted.
(WebCore::IntConstraint::getMin): Deleted.
(WebCore::IntConstraint::getMax): Deleted.
(WebCore::IntConstraint::getExact): Deleted.
(WebCore::IntConstraint::getIdeal): Deleted.
(WebCore::DoubleConstraint::create): Deleted.
(WebCore::DoubleConstraint::setMin): Deleted.
(WebCore::DoubleConstraint::setMax): Deleted.
(WebCore::DoubleConstraint::setExact): Deleted.
(WebCore::DoubleConstraint::setIdeal): Deleted.
(WebCore::DoubleConstraint::getMin): Deleted.
(WebCore::DoubleConstraint::getMax): Deleted.
(WebCore::DoubleConstraint::getExact): Deleted.
(WebCore::DoubleConstraint::getIdeal): Deleted.
(WebCore::BooleanConstraint::create): Deleted.
(WebCore::BooleanConstraint::setExact): Deleted.
(WebCore::BooleanConstraint::setIdeal): Deleted.
(WebCore::StringConstraint::create): Deleted.

  • platform/mediastream/MediaConstraints.h:

(WebCore::MediaConstraint::getMin):
(WebCore::MediaConstraint::getMax):
(WebCore::MediaConstraint::getExact):
(WebCore::MediaConstraint::getIdeal):
(WebCore::NumericConstraint::setMin):
(WebCore::NumericConstraint::setMax):
(WebCore::NumericConstraint::setExact):
(WebCore::NumericConstraint::setIdeal):
(WebCore::NumericConstraint::setHasMin): Deleted.
(WebCore::NumericConstraint::setHasMax): Deleted.
(WebCore::NumericConstraint::setHasExact): Deleted.
(WebCore::NumericConstraint::setHasIdeal): Deleted.
(WebCore::NumericConstraint::hasMin): Deleted.
(WebCore::NumericConstraint::hasMax): Deleted.
(WebCore::NumericConstraint::hasExact): Deleted.
(WebCore::NumericConstraint::hasIdeal): Deleted.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r204843 r204847  
     12016-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
    1572016-08-23  Anders Carlsson  <andersca@apple.com>
    258
  • trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp

    r204595 r204847  
    6363}
    6464
    65 bool MediaConstraint::getMin(int&) const
     65bool BooleanConstraint::getExact(bool& exact) const
    6666{
    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)
    25868        return false;
    25969   
    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();
    31471    return true;
    31572}
     
    31774bool BooleanConstraint::getIdeal(bool& ideal) const
    31875{
    319     if (!m_hasIdeal)
     76    if (!m_ideal)
    32077        return false;
    32178   
    322     ideal = m_ideal;
     79    ideal = m_ideal.value();
    32380    return true;
    324 }
    325 
    326 Ref<StringConstraint> StringConstraint::create(MediaConstraintType type)
    327 {
    328     return adoptRef(*new StringConstraint(type));
    32981}
    33082
  • trunk/Source/WebCore/platform/mediastream/MediaConstraints.h

    r204595 r204847  
    5050    virtual bool isMandatory() const = 0;
    5151
    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; }
    7171
    7272    MediaConstraintType type() const { return m_type; }
    73 
    7473
    7574protected:
     
    8382};
    8483
     84template<class ValueType>
    8585class NumericConstraint : public MediaConstraint {
    8686public:
    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    }
    89126
    90127protected:
     
    94131    }
    95132
    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;
     133private:
     134    Optional<ValueType> m_min;
     135    Optional<ValueType> m_max;
     136    Optional<ValueType> m_exact;
     137    Optional<ValueType> m_ideal;
     138};
     139
     140class IntConstraint final : public NumericConstraint<int> {
     141public:
     142    static Ref<IntConstraint> create(MediaConstraintType type) { return adoptRef(*new IntConstraint(type)); }
    126143
    127144private:
    128145    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
     151class DoubleConstraint final : public NumericConstraint<double> {
     152public:
     153    static Ref<DoubleConstraint> create(MediaConstraintType type) { return adoptRef(*new DoubleConstraint(type)); }
    152154
    153155private:
    154156    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    }
    163160};
    164161
    165162class BooleanConstraint final : public MediaConstraint {
    166163public:
    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; }
    171168
    172169    bool getExact(bool&) const final;
    173170    bool getIdeal(bool&) const final;
    174171
    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); }
    177174
    178175private:
     
    182179    }
    183180
    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 };
    188183};
    189184
    190185class StringConstraint final : public MediaConstraint {
    191186public:
    192     static Ref<StringConstraint> create(MediaConstraintType);
     187    static Ref<StringConstraint> create(MediaConstraintType type) { return adoptRef(*new StringConstraint(type)); }
    193188
    194189    void setExact(const String&);
Note: See TracChangeset for help on using the changeset viewer.