Loading core/java/android/companion/virtual/IVirtualDevice.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.companion.virtual.audio.IAudioRoutingCallback; import android.companion.virtual.sensor.VirtualSensor; import android.companion.virtual.sensor.VirtualSensorConfig; import android.companion.virtual.sensor.VirtualSensorEvent; import android.companion.virtual.camera.IVirtualCamera; import android.companion.virtual.camera.VirtualCameraHalConfig; import android.content.ComponentName; import android.content.IntentFilter; import android.graphics.Point; Loading Loading @@ -232,4 +234,10 @@ interface IVirtualDevice { */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void unregisterIntentInterceptor(in IVirtualDeviceIntentInterceptor intentInterceptor); /** * Creates a new VirtualCamera and registers it with the VirtualCameraProvider. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void registerVirtualCamera(in IVirtualCamera camera); } core/java/android/companion/virtual/VirtualDeviceInternal.java +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.companion.virtual.audio.VirtualAudioDevice; import android.companion.virtual.camera.VirtualCamera; import android.companion.virtual.camera.VirtualCameraConfig; import android.companion.virtual.sensor.VirtualSensor; import android.content.ComponentName; import android.content.Context; Loading Loading @@ -338,6 +340,11 @@ public class VirtualDeviceInternal { return mVirtualAudioDevice; } @NonNull VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { return new VirtualCamera(mVirtualDevice, config); } @NonNull void setShowPointerIcon(boolean showPointerIcon) { try { Loading core/java/android/companion/virtual/VirtualDeviceManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.app.PendingIntent; import android.companion.AssociationInfo; import android.companion.virtual.audio.VirtualAudioDevice; import android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback; import android.companion.virtual.camera.VirtualCamera; import android.companion.virtual.camera.VirtualCameraConfig; import android.companion.virtual.flags.Flags; import android.companion.virtual.sensor.VirtualSensor; import android.content.ComponentName; Loading Loading @@ -850,6 +852,24 @@ public final class VirtualDeviceManager { return mVirtualDeviceInternal.createVirtualAudioDevice(display, executor, callback); } /** * Creates a new virtual camera. If a virtual camera was already created, it will be closed. * * @param config camera config. * @return newly created camera; * @hide */ @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { if (!Flags.virtualCamera()) { throw new UnsupportedOperationException( "Flag is not enabled: %s".formatted(Flags.FLAG_VIRTUAL_CAMERA)); } return mVirtualDeviceInternal.createVirtualCamera(Objects.requireNonNull(config)); } /** * Sets the visibility of the pointer icon for this VirtualDevice's associated displays. * Loading core/java/android/companion/virtual/camera/IVirtualCamera.aidl 0 → 100644 +17 −0 Original line number Diff line number Diff line package android.companion.virtual.camera; import android.companion.virtual.camera.IVirtualCameraSession; import android.companion.virtual.camera.VirtualCameraHalConfig; /** * Counterpart of ICameraDevice for virtual camera. * * @hide */ interface IVirtualCamera { IVirtualCameraSession open(); VirtualCameraHalConfig getHalConfig(); } No newline at end of file core/java/android/companion/virtual/camera/IVirtualCameraSession.aidl 0 → 100644 +28 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.companion.virtual.camera; /** * Counterpart of ICameraDeviceSession for virtual camera. * * @hide */ interface IVirtualCameraSession { void configureStream(int width, int height, int format); void close(); } Loading
core/java/android/companion/virtual/IVirtualDevice.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.companion.virtual.audio.IAudioRoutingCallback; import android.companion.virtual.sensor.VirtualSensor; import android.companion.virtual.sensor.VirtualSensorConfig; import android.companion.virtual.sensor.VirtualSensorEvent; import android.companion.virtual.camera.IVirtualCamera; import android.companion.virtual.camera.VirtualCameraHalConfig; import android.content.ComponentName; import android.content.IntentFilter; import android.graphics.Point; Loading Loading @@ -232,4 +234,10 @@ interface IVirtualDevice { */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void unregisterIntentInterceptor(in IVirtualDeviceIntentInterceptor intentInterceptor); /** * Creates a new VirtualCamera and registers it with the VirtualCameraProvider. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void registerVirtualCamera(in IVirtualCamera camera); }
core/java/android/companion/virtual/VirtualDeviceInternal.java +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.companion.virtual.audio.VirtualAudioDevice; import android.companion.virtual.camera.VirtualCamera; import android.companion.virtual.camera.VirtualCameraConfig; import android.companion.virtual.sensor.VirtualSensor; import android.content.ComponentName; import android.content.Context; Loading Loading @@ -338,6 +340,11 @@ public class VirtualDeviceInternal { return mVirtualAudioDevice; } @NonNull VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { return new VirtualCamera(mVirtualDevice, config); } @NonNull void setShowPointerIcon(boolean showPointerIcon) { try { Loading
core/java/android/companion/virtual/VirtualDeviceManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.app.PendingIntent; import android.companion.AssociationInfo; import android.companion.virtual.audio.VirtualAudioDevice; import android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback; import android.companion.virtual.camera.VirtualCamera; import android.companion.virtual.camera.VirtualCameraConfig; import android.companion.virtual.flags.Flags; import android.companion.virtual.sensor.VirtualSensor; import android.content.ComponentName; Loading Loading @@ -850,6 +852,24 @@ public final class VirtualDeviceManager { return mVirtualDeviceInternal.createVirtualAudioDevice(display, executor, callback); } /** * Creates a new virtual camera. If a virtual camera was already created, it will be closed. * * @param config camera config. * @return newly created camera; * @hide */ @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) @NonNull @FlaggedApi(Flags.FLAG_VIRTUAL_CAMERA) public VirtualCamera createVirtualCamera(@NonNull VirtualCameraConfig config) { if (!Flags.virtualCamera()) { throw new UnsupportedOperationException( "Flag is not enabled: %s".formatted(Flags.FLAG_VIRTUAL_CAMERA)); } return mVirtualDeviceInternal.createVirtualCamera(Objects.requireNonNull(config)); } /** * Sets the visibility of the pointer icon for this VirtualDevice's associated displays. * Loading
core/java/android/companion/virtual/camera/IVirtualCamera.aidl 0 → 100644 +17 −0 Original line number Diff line number Diff line package android.companion.virtual.camera; import android.companion.virtual.camera.IVirtualCameraSession; import android.companion.virtual.camera.VirtualCameraHalConfig; /** * Counterpart of ICameraDevice for virtual camera. * * @hide */ interface IVirtualCamera { IVirtualCameraSession open(); VirtualCameraHalConfig getHalConfig(); } No newline at end of file
core/java/android/companion/virtual/camera/IVirtualCameraSession.aidl 0 → 100644 +28 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.companion.virtual.camera; /** * Counterpart of ICameraDeviceSession for virtual camera. * * @hide */ interface IVirtualCameraSession { void configureStream(int width, int height, int format); void close(); }