summaryrefslogtreecommitdiffstats
path: root/telecomm/java/android/telecom/VideoProfile.java
diff options
context:
space:
mode:
Diffstat (limited to 'telecomm/java/android/telecom/VideoProfile.java')
-rw-r--r--telecomm/java/android/telecom/VideoProfile.java212
1 files changed, 195 insertions, 17 deletions
diff --git a/telecomm/java/android/telecom/VideoProfile.java b/telecomm/java/android/telecom/VideoProfile.java
index 902fddb..71de505 100644
--- a/telecomm/java/android/telecom/VideoProfile.java
+++ b/telecomm/java/android/telecom/VideoProfile.java
@@ -48,6 +48,31 @@ public class VideoProfile implements Parcelable {
*/
public static final int QUALITY_DEFAULT = 4;
+ /**
+ * Call is currently in an audio-only mode with no video transmission or receipt.
+ */
+ public static final int STATE_AUDIO_ONLY = 0x0;
+
+ /**
+ * Video transmission is enabled.
+ */
+ public static final int STATE_TX_ENABLED = 0x1;
+
+ /**
+ * Video reception is enabled.
+ */
+ public static final int STATE_RX_ENABLED = 0x2;
+
+ /**
+ * Video signal is bi-directional.
+ */
+ public static final int STATE_BIDIRECTIONAL = STATE_TX_ENABLED | STATE_RX_ENABLED;
+
+ /**
+ * Video is paused.
+ */
+ public static final int STATE_PAUSED = 0x4;
+
private final int mVideoState;
private final int mQuality;
@@ -74,11 +99,11 @@ public class VideoProfile implements Parcelable {
/**
* The video state of the call.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED},
- * {@link VideoProfile.VideoState#PAUSED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED},
+ * {@link VideoProfile#STATE_PAUSED}.
*/
public int getVideoState() {
return mVideoState;
@@ -162,28 +187,41 @@ public class VideoProfile implements Parcelable {
public static class VideoState {
/**
* Call is currently in an audio-only mode with no video transmission or receipt.
+ * @deprecated Use {@link VideoProfile#STATE_AUDIO_ONLY} instead
+ * @hide
*/
- public static final int AUDIO_ONLY = 0x0;
+ public static final int AUDIO_ONLY = VideoProfile.STATE_AUDIO_ONLY;
/**
* Video transmission is enabled.
+ * @deprecated Use {@link VideoProfile#STATE_TX_ENABLED} instead
+ * @hide
*/
- public static final int TX_ENABLED = 0x1;
+ public static final int TX_ENABLED = VideoProfile.STATE_TX_ENABLED;
/**
* Video reception is enabled.
+ * @deprecated Use {@link VideoProfile#STATE_RX_ENABLED} instead
+ * @hide
*/
- public static final int RX_ENABLED = 0x2;
+ public static final int RX_ENABLED = VideoProfile.STATE_RX_ENABLED;
/**
* Video signal is bi-directional.
+ * @deprecated Use {@link VideoProfile#STATE_BIDIRECTIONAL} instead
+ * @hide
*/
- public static final int BIDIRECTIONAL = TX_ENABLED | RX_ENABLED;
+ public static final int BIDIRECTIONAL = VideoProfile.STATE_BIDIRECTIONAL;
/**
* Video is paused.
+ * @deprecated Use {@link VideoProfile#STATE_PAUSED} instead
+ * @hide
*/
- public static final int PAUSED = 0x4;
+ public static final int PAUSED = VideoProfile.STATE_PAUSED;
+
+ /** @hide */
+ private VideoState() {}
/**
* Whether the video state is audio only.
@@ -191,7 +229,8 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video state is audio only.
*/
public static boolean isAudioOnly(int videoState) {
- return !hasState(videoState, TX_ENABLED) && !hasState(videoState, RX_ENABLED);
+ return !hasState(videoState, VideoProfile.STATE_TX_ENABLED)
+ && !hasState(videoState, VideoProfile.STATE_RX_ENABLED);
}
/**
@@ -201,8 +240,9 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video state TX or RX or Bidirectional
*/
public static boolean isVideo(int videoState) {
- return hasState(videoState, TX_ENABLED) || hasState(videoState, RX_ENABLED)
- || hasState(videoState, BIDIRECTIONAL);
+ return hasState(videoState, VideoProfile.STATE_TX_ENABLED)
+ || hasState(videoState, VideoProfile.STATE_RX_ENABLED)
+ || hasState(videoState, VideoProfile.STATE_BIDIRECTIONAL);
}
/**
@@ -211,7 +251,7 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video transmission is enabled.
*/
public static boolean isTransmissionEnabled(int videoState) {
- return hasState(videoState, TX_ENABLED);
+ return hasState(videoState, VideoProfile.STATE_TX_ENABLED);
}
/**
@@ -220,7 +260,7 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video transmission is enabled.
*/
public static boolean isReceptionEnabled(int videoState) {
- return hasState(videoState, RX_ENABLED);
+ return hasState(videoState, VideoProfile.STATE_RX_ENABLED);
}
/**
@@ -229,7 +269,7 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video signal is bi-directional.
*/
public static boolean isBidirectional(int videoState) {
- return hasState(videoState, BIDIRECTIONAL);
+ return hasState(videoState, VideoProfile.STATE_BIDIRECTIONAL);
}
/**
@@ -238,7 +278,7 @@ public class VideoProfile implements Parcelable {
* @return Returns true if the video is paused.
*/
public static boolean isPaused(int videoState) {
- return hasState(videoState, PAUSED);
+ return hasState(videoState, VideoProfile.STATE_PAUSED);
}
/**
@@ -278,4 +318,142 @@ public class VideoProfile implements Parcelable {
return sb.toString();
}
}
+
+ /**
+ * Represents the camera capabilities important to a Video Telephony provider.
+ */
+ public static final class CameraCapabilities implements Parcelable {
+
+ /**
+ * The width of the camera video in pixels.
+ */
+ private final int mWidth;
+
+ /**
+ * The height of the camera video in pixels.
+ */
+ private final int mHeight;
+
+ /**
+ * Whether the camera supports zoom.
+ */
+ private final boolean mZoomSupported;
+
+ /**
+ * The maximum zoom supported by the camera.
+ */
+ private final float mMaxZoom;
+
+ /**
+ * Create a call camera capabilities instance.
+ *
+ * @param width The width of the camera video (in pixels).
+ * @param height The height of the camera video (in pixels).
+ */
+ public CameraCapabilities(int width, int height) {
+ this(width, height, false, 1.0f);
+ }
+
+ /**
+ * Create a call camera capabilities instance that optionally
+ * supports zoom.
+ *
+ * @param width The width of the camera video (in pixels).
+ * @param height The height of the camera video (in pixels).
+ * @param zoomSupported True when camera supports zoom.
+ * @param maxZoom Maximum zoom supported by camera.
+ * @hide
+ */
+ public CameraCapabilities(int width, int height, boolean zoomSupported, float maxZoom) {
+ mWidth = width;
+ mHeight = height;
+ mZoomSupported = zoomSupported;
+ mMaxZoom = maxZoom;
+ }
+
+ /**
+ * Responsible for creating CallCameraCapabilities objects from deserialized Parcels.
+ **/
+ public static final Parcelable.Creator<CameraCapabilities> CREATOR =
+ new Parcelable.Creator<CameraCapabilities> () {
+ /**
+ * Creates a CallCameraCapabilities instances from a parcel.
+ *
+ * @param source The parcel.
+ * @return The CallCameraCapabilities.
+ */
+ @Override
+ public CameraCapabilities createFromParcel(Parcel source) {
+ int width = source.readInt();
+ int height = source.readInt();
+ boolean supportsZoom = source.readByte() != 0;
+ float maxZoom = source.readFloat();
+
+ return new CameraCapabilities(width, height, supportsZoom, maxZoom);
+ }
+
+ @Override
+ public CameraCapabilities[] newArray(int size) {
+ return new CameraCapabilities[size];
+ }
+ };
+
+ /**
+ * Describe the kinds of special objects contained in this Parcelable's
+ * marshalled representation.
+ *
+ * @return a bitmask indicating the set of special object types marshalled
+ * by the Parcelable.
+ */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /**
+ * Flatten this object in to a Parcel.
+ *
+ * @param dest The Parcel in which the object should be written.
+ * @param flags Additional flags about how the object should be written.
+ * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
+ */
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(getWidth());
+ dest.writeInt(getHeight());
+ dest.writeByte((byte) (isZoomSupported() ? 1 : 0));
+ dest.writeFloat(getMaxZoom());
+ }
+
+ /**
+ * The width of the camera video in pixels.
+ */
+ public int getWidth() {
+ return mWidth;
+ }
+
+ /**
+ * The height of the camera video in pixels.
+ */
+ public int getHeight() {
+ return mHeight;
+ }
+
+ /**
+ * Whether the camera supports zoom.
+ * @hide
+ */
+ public boolean isZoomSupported() {
+ return mZoomSupported;
+ }
+
+ /**
+ * The maximum zoom supported by the camera.
+ * @hide
+ */
+ public float getMaxZoom() {
+ return mMaxZoom;
+ }
+ }
+
}