2013-07-10 00:45:36 +00:00
|
|
|
/*
|
2016-02-10 07:54:43 -08:00
|
|
|
* Copyright 2013 The WebRTC project authors. All Rights Reserved.
|
2013-07-10 00:45:36 +00:00
|
|
|
*
|
2016-02-10 07:54:43 -08:00
|
|
|
* Use of this source code is governed by a BSD-style license
|
|
|
|
|
* that can be found in the LICENSE file in the root of the source
|
|
|
|
|
* tree. An additional intellectual property rights grant can be found
|
|
|
|
|
* in the file PATENTS. All contributing project authors may
|
|
|
|
|
* be found in the AUTHORS file in the root of the source tree.
|
2013-07-10 00:45:36 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package org.webrtc;
|
|
|
|
|
|
|
|
|
|
import java.util.LinkedList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Description of media constraints for {@code MediaStream} and
|
|
|
|
|
* {@code PeerConnection}.
|
|
|
|
|
*/
|
|
|
|
|
public class MediaConstraints {
|
|
|
|
|
/** Simple String key/value pair. */
|
|
|
|
|
public static class KeyValuePair {
|
|
|
|
|
private final String key;
|
|
|
|
|
private final String value;
|
|
|
|
|
|
|
|
|
|
public KeyValuePair(String key, String value) {
|
|
|
|
|
this.key = key;
|
|
|
|
|
this.value = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getKey() {
|
|
|
|
|
return key;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getValue() {
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
2017-10-30 13:34:41 +01:00
|
|
|
@Override
|
2013-07-10 00:45:36 +00:00
|
|
|
public String toString() {
|
|
|
|
|
return key + ": " + value;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-24 01:11:46 -07:00
|
|
|
@Override
|
|
|
|
|
public boolean equals(Object other) {
|
|
|
|
|
if (this == other) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (other == null || getClass() != other.getClass()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
KeyValuePair that = (KeyValuePair) other;
|
|
|
|
|
return key.equals(that.key) && value.equals(that.value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int hashCode() {
|
|
|
|
|
return key.hashCode() + value.hashCode();
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-07-10 00:45:36 +00:00
|
|
|
|
|
|
|
|
public final List<KeyValuePair> mandatory;
|
|
|
|
|
public final List<KeyValuePair> optional;
|
|
|
|
|
|
|
|
|
|
public MediaConstraints() {
|
|
|
|
|
mandatory = new LinkedList<KeyValuePair>();
|
|
|
|
|
optional = new LinkedList<KeyValuePair>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static String stringifyKeyValuePairList(List<KeyValuePair> list) {
|
|
|
|
|
StringBuilder builder = new StringBuilder("[");
|
|
|
|
|
for (KeyValuePair pair : list) {
|
|
|
|
|
if (builder.length() > 1) {
|
|
|
|
|
builder.append(", ");
|
|
|
|
|
}
|
|
|
|
|
builder.append(pair.toString());
|
|
|
|
|
}
|
|
|
|
|
return builder.append("]").toString();
|
|
|
|
|
}
|
|
|
|
|
|
2017-10-30 13:34:41 +01:00
|
|
|
@Override
|
2013-07-10 00:45:36 +00:00
|
|
|
public String toString() {
|
|
|
|
|
return "mandatory: " + stringifyKeyValuePairList(mandatory) + ", optional: "
|
|
|
|
|
+ stringifyKeyValuePairList(optional);
|
|
|
|
|
}
|
|
|
|
|
}
|