diff options
Diffstat (limited to 'telecomm/java/android/telecom/VideoProfile.java')
| -rw-r--r-- | telecomm/java/android/telecom/VideoProfile.java | 212 |
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; + } + } + } |
