1752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee/* 2752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * Copyright (C) 2014 The Android Open Source Project 3752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 4752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * Licensed under the Apache License, Version 2.0 (the "License"); 5752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * you may not use this file except in compliance with the License. 6752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * You may obtain a copy of the License at 7752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 8752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * http://www.apache.org/licenses/LICENSE-2.0 9752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 10752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * Unless required by applicable law or agreed to in writing, software 11752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * distributed under the License is distributed on an "AS IS" BASIS, 12752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * See the License for the specific language governing permissions and 14752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * limitations under the License. 15752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee */ 16752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 17752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Leepackage com.android.ims.internal; 18752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 1932f24731604fd81289a39619bbc925b65184b505Yorke Leeimport android.net.Uri; 20752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Leeimport android.view.Surface; 21ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport android.telecom.VideoProfile; 22752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 23752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Leeimport com.android.ims.internal.IImsVideoCallCallback; 24752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 25752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee/** 26752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * Internal remote interface for IMS's video call provider. 27752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 28752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * At least initially, this aidl mirrors telecomm's {@link IVideoCallProvider}. We created a 29752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * separate aidl interface even though the methods and parameters are same because the 30752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * {@link IVideoCallProvider} was specifically created as a binder for inter-process communication 31752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * between Telecomm and Telephony. 32752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 33752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * We don't want to use the same aidl in other places for communication, namely communication 34752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * between Telephony and the IMS Service, even if that communication may be for similar methods. 35752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * This decouples the communication among these processes. Similarly, third parties implementing a 36752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * video call provider will not have the benefit of accessing the internal 37752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * {@link IVideoCallProvider} aidl for interprocess communication. 38752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * 39ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunn * @see android.telecom.internal.IVideoCallProvider 40ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunn * @see android.telecom.VideoCallProvider 41752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * @hide 42752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee */ 43752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Leeoneway interface IImsVideoCallProvider { 44752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void setCallback(IImsVideoCallCallback callback); 45752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 46a6a0070ca7d2dd2882151ecf20569e715d21c722Tyler Gunn void setCamera(String cameraId, int uid); 47752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 48752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void setPreviewSurface(in Surface surface); 49752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 50752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void setDisplaySurface(in Surface surface); 51752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 52752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void setDeviceOrientation(int rotation); 53752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 54752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void setZoom(float value); 55752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 564538216a31d15b01e18c7b504e51031da0ce6e40Tyler Gunn void sendSessionModifyRequest(in VideoProfile fromProfile, in VideoProfile toProfile); 57752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 58b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad void sendSessionModifyResponse(in VideoProfile responseProfile); 59752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 60752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void requestCameraCapabilities(); 61752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 62752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee void requestCallDataUsage(); 63752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 6432f24731604fd81289a39619bbc925b65184b505Yorke Lee void setPauseImage(in Uri uri); 65752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee} 66