1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.server.telecom.testapps;
18
19import android.net.Uri;
20import android.telecom.Connection;
21import android.telecom.RemoteConnection;
22import android.telecom.VideoProfile;
23import android.telecom.VideoProfile.CameraCapabilities;
24import android.view.Surface;
25
26public class TestManagedVideoProvider extends Connection.VideoProvider {
27
28    private final RemoteConnection.VideoProvider.Callback mRemoteCallback =
29            new RemoteConnection.VideoProvider.Callback() {
30        @Override
31        public void onSessionModifyRequestReceived(RemoteConnection.VideoProvider rvp,
32                VideoProfile videoProfile) {
33            super.onSessionModifyRequestReceived(rvp, videoProfile);
34        }
35
36        @Override
37        public void onSessionModifyResponseReceived(RemoteConnection.VideoProvider rvp,
38                int status,
39                VideoProfile requestedProfile, VideoProfile responseProfile) {
40            super.onSessionModifyResponseReceived(rvp, status, requestedProfile,
41                    responseProfile);
42        }
43
44        @Override
45        public void onCallSessionEvent(RemoteConnection.VideoProvider rvp, int event) {
46            super.onCallSessionEvent(rvp, event);
47        }
48
49        @Override
50        public void onPeerDimensionsChanged(RemoteConnection.VideoProvider rvp, int width,
51        int height) {
52            super.onPeerDimensionsChanged(rvp, width, height);
53        }
54
55        @Override
56        public void onCallDataUsageChanged(RemoteConnection.VideoProvider rvp, long dataUsage) {
57            super.onCallDataUsageChanged(rvp, dataUsage);
58        }
59
60        @Override
61        public void onCameraCapabilitiesChanged(RemoteConnection.VideoProvider rvp,
62                CameraCapabilities cameraCapabilities) {
63            super.onCameraCapabilitiesChanged(rvp, cameraCapabilities);
64        }
65    };
66
67    private final RemoteConnection.VideoProvider mRemoteVideoProvider;
68
69    public TestManagedVideoProvider(RemoteConnection.VideoProvider remoteVideoProvider) {
70        mRemoteVideoProvider = remoteVideoProvider;
71        mRemoteVideoProvider.registerCallback(mRemoteCallback);
72    }
73
74    @Override
75    public void onSetCamera(String cameraId) {
76        mRemoteVideoProvider.setCamera(cameraId);
77    }
78
79    @Override
80    public void onSetPreviewSurface(Surface surface) {
81        mRemoteVideoProvider.setPreviewSurface(surface);
82    }
83
84    @Override
85    public void onSetDisplaySurface(Surface surface) {
86        mRemoteVideoProvider.setDisplaySurface(surface);
87    }
88
89    @Override
90    public void onSetDeviceOrientation(int rotation) {
91        mRemoteVideoProvider.setDeviceOrientation(rotation);
92    }
93
94    @Override
95    public void onSetZoom(float value) {
96        mRemoteVideoProvider.setZoom(value);
97    }
98
99    @Override
100    public void onSendSessionModifyRequest(VideoProfile fromProfile,
101            VideoProfile requestProfile) {
102        mRemoteVideoProvider.sendSessionModifyRequest(fromProfile, requestProfile);
103    }
104
105    @Override
106    public void onSendSessionModifyResponse(VideoProfile responseProfile) {
107        mRemoteVideoProvider.sendSessionModifyResponse(responseProfile);
108    }
109
110    @Override
111    public void onRequestCameraCapabilities() {
112        mRemoteVideoProvider.requestCameraCapabilities();
113    }
114
115    @Override
116    public void onRequestConnectionDataUsage() {
117        mRemoteVideoProvider.requestCallDataUsage();
118    }
119
120    @Override
121    public void onSetPauseImage(Uri uri) {
122        mRemoteVideoProvider.setPauseImage(uri);
123    }
124}
125