diff options
author | Ytai Ben-Tsvi <ytai@google.com> | 2020-09-16 13:04:31 -0700 |
---|---|---|
committer | Ytai Ben-Tsvi <ytai@google.com> | 2020-09-22 10:07:00 -0700 |
commit | da7c21ec5175ea494b148f0ba92e8d638608144a (patch) | |
tree | 632540c58ebc80bc62d298e6860def3b45efae96 | |
parent | 189d6050daddc3be6631d6bb48b97393c5793e6e (diff) |
Separate AIDL packages
This moves the android.media.audio.common, android.media.permission and
android.media.soundtrigger_middleware AIDL files to a their own
separate aidl_interface module for Java.
Previously, because of how the framework JAR is configured, those
files were automatically compiled into it and we had to disable Java
for this target, creating a discrepancy between C++ and Java, which
would require us to similarly diverge any dependent targets if we want
cross-language support.
As part of this change, we also had to switch from using the
FileDescriptor type to ParcelFileDescriptor, as this is the only type
supported outside of the framework JAR and is also the recommended
practice.
Test: Manual verification of basic soundtrigger functionality.
Change-Id: Ib65c19dd7c7f5433cfa527fa74bb61ac677f5cf5
-rw-r--r-- | Android.bp | 2 | ||||
-rw-r--r-- | ApiDocs.bp | 8 | ||||
-rw-r--r-- | StubLibraries.bp | 7 | ||||
-rw-r--r-- | core/java/android/hardware/soundtrigger/ConversionUtil.java | 9 | ||||
-rw-r--r-- | media/Android.bp | 93 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioChannelMask.aidl (renamed from media/java/android/media/audio/common/AudioChannelMask.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioConfig.aidl (renamed from media/java/android/media/audio/common/AudioConfig.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioFormat.aidl (renamed from media/java/android/media/audio/common/AudioFormat.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioOffloadInfo.aidl (renamed from media/java/android/media/audio/common/AudioOffloadInfo.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioStreamType.aidl (renamed from media/java/android/media/audio/common/AudioStreamType.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/audio/common/AudioUsage.aidl (renamed from media/java/android/media/audio/common/AudioUsage.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/permission/Identity.aidl (renamed from media/java/android/media/permission/Identity.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/AudioCapabilities.aidl (renamed from media/java/android/media/soundtrigger_middleware/AudioCapabilities.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ConfidenceLevel.aidl (renamed from media/java/android/media/soundtrigger_middleware/ConfidenceLevel.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl (renamed from media/java/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl (renamed from media/java/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl (renamed from media/java/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ModelParameter.aidl (renamed from media/java/android/media/soundtrigger_middleware/ModelParameter.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/ModelParameterRange.aidl (renamed from media/java/android/media/soundtrigger_middleware/ModelParameterRange.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/OWNERS (renamed from media/java/android/media/soundtrigger_middleware/OWNERS) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/Phrase.aidl (renamed from media/java/android/media/soundtrigger_middleware/Phrase.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl (renamed from media/java/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl (renamed from media/java/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/PhraseSoundModel.aidl (renamed from media/java/android/media/soundtrigger_middleware/PhraseSoundModel.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/RecognitionConfig.aidl (renamed from media/java/android/media/soundtrigger_middleware/RecognitionConfig.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/RecognitionEvent.aidl (renamed from media/java/android/media/soundtrigger_middleware/RecognitionEvent.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/RecognitionMode.aidl (renamed from media/java/android/media/soundtrigger_middleware/RecognitionMode.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/RecognitionStatus.aidl (renamed from media/java/android/media/soundtrigger_middleware/RecognitionStatus.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/SoundModel.aidl (renamed from media/java/android/media/soundtrigger_middleware/SoundModel.aidl) | 3 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/SoundModelType.aidl (renamed from media/java/android/media/soundtrigger_middleware/SoundModelType.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl (renamed from media/java/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl (renamed from media/java/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl) | 0 | ||||
-rw-r--r-- | media/aidl/android/media/soundtrigger_middleware/Status.aidl (renamed from media/java/android/media/soundtrigger_middleware/Status.aidl) | 0 | ||||
-rw-r--r-- | services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java | 17 | ||||
-rw-r--r-- | services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java | 3 |
35 files changed, 72 insertions, 70 deletions
diff --git a/Android.bp b/Android.bp index c6f9362b4919..59530079d4ad 100644 --- a/Android.bp +++ b/Android.bp @@ -547,6 +547,7 @@ java_library { exclude_srcs: ["core/java/android/content/pm/AndroidTestBaseUpdater.java"], aidl: { generate_get_transaction_name: true, + local_include_dirs: ["media/aidl"], }, dxflags: [ "--core-library", @@ -583,6 +584,7 @@ java_library { // in favor of an API stubs dependency in java_library "framework" below. "mimemap", "mediatranscoding_aidl_interface-java", + "soundtrigger_middleware-aidl-java", ], // For backwards compatibility. stem: "framework", diff --git a/ApiDocs.bp b/ApiDocs.bp index ca921ff97c35..c82fee0fe8ac 100644 --- a/ApiDocs.bp +++ b/ApiDocs.bp @@ -83,6 +83,10 @@ stubs_defaults { merge_annotations_dirs: [ "metalava-manual", ], + // TODO(b/169090544): remove below aidl includes. + aidl: { + local_include_dirs: ["media/aidl"], + }, } droidstubs { @@ -150,6 +154,10 @@ doc_defaults { ":current-support-api", ":current-androidx-api", ], + // TODO(b/169090544): remove below aidl includes. + aidl: { + local_include_dirs: ["media/aidl"], + }, } doc_defaults { diff --git a/StubLibraries.bp b/StubLibraries.bp index bb6538739c49..ad2250ca1513 100644 --- a/StubLibraries.bp +++ b/StubLibraries.bp @@ -51,9 +51,12 @@ stubs_defaults { ":android_icu4j_public_api_files", "**/package.html", ], - // TODO(b/147699819): remove below aidl includes. + // TODO(b/147699819, b/169090544): remove below aidl includes. aidl: { - local_include_dirs: ["telephony/java"], + local_include_dirs: [ + "telephony/java", + "media/aidl", + ], }, libs: ["framework-internal-utils"], installable: false, diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java index c4d123ca4382..06b5b6745bd1 100644 --- a/core/java/android/hardware/soundtrigger/ConversionUtil.java +++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java @@ -32,10 +32,12 @@ import android.media.soundtrigger_middleware.RecognitionMode; import android.media.soundtrigger_middleware.SoundModel; import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor; import android.media.soundtrigger_middleware.SoundTriggerModuleProperties; +import android.os.ParcelFileDescriptor; import android.os.SharedMemory; import android.system.ErrnoException; import java.io.FileDescriptor; +import java.io.IOException; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.UUID; @@ -109,7 +111,12 @@ class ConversionUtil { aidlModel.type = apiModel.getType(); aidlModel.uuid = api2aidlUuid(apiModel.getUuid()); aidlModel.vendorUuid = api2aidlUuid(apiModel.getVendorUuid()); - aidlModel.data = byteArrayToSharedMemory(apiModel.getData(), "SoundTrigger SoundModel"); + try { + aidlModel.data = ParcelFileDescriptor.dup( + byteArrayToSharedMemory(apiModel.getData(), "SoundTrigger SoundModel")); + } catch (IOException e) { + throw new RuntimeException(e); + } aidlModel.dataSize = apiModel.getData().length; return aidlModel; } diff --git a/media/Android.bp b/media/Android.bp index 8895b3a9a2ba..828707b70e7b 100644 --- a/media/Android.bp +++ b/media/Android.bp @@ -1,85 +1,52 @@ aidl_interface { name: "audio_common-aidl", unstable: true, - local_include_dir: "java", + local_include_dir: "aidl", srcs: [ - "java/android/media/audio/common/AudioChannelMask.aidl", - "java/android/media/audio/common/AudioConfig.aidl", - "java/android/media/audio/common/AudioFormat.aidl", - "java/android/media/audio/common/AudioOffloadInfo.aidl", - "java/android/media/audio/common/AudioStreamType.aidl", - "java/android/media/audio/common/AudioUsage.aidl", + "aidl/android/media/audio/common/AudioChannelMask.aidl", + "aidl/android/media/audio/common/AudioConfig.aidl", + "aidl/android/media/audio/common/AudioFormat.aidl", + "aidl/android/media/audio/common/AudioOffloadInfo.aidl", + "aidl/android/media/audio/common/AudioStreamType.aidl", + "aidl/android/media/audio/common/AudioUsage.aidl", ], - backend: - { - cpp: { - enabled: true, - }, - java: { - // Already generated as part of the entire media java library. - enabled: false, - }, - }, } aidl_interface { name: "media_permission-aidl", unstable: true, - local_include_dir: "java", + local_include_dir: "aidl", srcs: [ - "java/android/media/permission/Identity.aidl", + "aidl/android/media/permission/Identity.aidl", ], - backend: - { - cpp: { - enabled: true, - }, - java: { - // Already generated as part of the entire media java library. - enabled: false, - }, - }, } aidl_interface { name: "soundtrigger_middleware-aidl", unstable: true, - local_include_dir: "java", + local_include_dir: "aidl", srcs: [ - "java/android/media/soundtrigger_middleware/ConfidenceLevel.aidl", - "java/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl", - "java/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl", - "java/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl", - "java/android/media/soundtrigger_middleware/ModelParameter.aidl", - "java/android/media/soundtrigger_middleware/ModelParameterRange.aidl", - "java/android/media/soundtrigger_middleware/Phrase.aidl", - "java/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl", - "java/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl", - "java/android/media/soundtrigger_middleware/PhraseSoundModel.aidl", - "java/android/media/soundtrigger_middleware/RecognitionConfig.aidl", - "java/android/media/soundtrigger_middleware/RecognitionEvent.aidl", - "java/android/media/soundtrigger_middleware/RecognitionMode.aidl", - "java/android/media/soundtrigger_middleware/RecognitionStatus.aidl", - "java/android/media/soundtrigger_middleware/SoundModel.aidl", - "java/android/media/soundtrigger_middleware/SoundModelType.aidl", - "java/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl", - "java/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl", - "java/android/media/soundtrigger_middleware/Status.aidl", + "aidl/android/media/soundtrigger_middleware/AudioCapabilities.aidl", + "aidl/android/media/soundtrigger_middleware/ConfidenceLevel.aidl", + "aidl/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl", + "aidl/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl", + "aidl/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl", + "aidl/android/media/soundtrigger_middleware/ModelParameter.aidl", + "aidl/android/media/soundtrigger_middleware/ModelParameterRange.aidl", + "aidl/android/media/soundtrigger_middleware/Phrase.aidl", + "aidl/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl", + "aidl/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl", + "aidl/android/media/soundtrigger_middleware/PhraseSoundModel.aidl", + "aidl/android/media/soundtrigger_middleware/RecognitionConfig.aidl", + "aidl/android/media/soundtrigger_middleware/RecognitionEvent.aidl", + "aidl/android/media/soundtrigger_middleware/RecognitionMode.aidl", + "aidl/android/media/soundtrigger_middleware/RecognitionStatus.aidl", + "aidl/android/media/soundtrigger_middleware/SoundModel.aidl", + "aidl/android/media/soundtrigger_middleware/SoundModelType.aidl", + "aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl", + "aidl/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl", + "aidl/android/media/soundtrigger_middleware/Status.aidl", ], - backend: - { - cpp: { - enabled: true, - }, - java: { - // Already generated as part of the entire media java library. - enabled: false, - }, - ndk: { - // Not currently needed, and disabled because of b/146172425 - enabled: false, - }, - }, imports: [ "audio_common-aidl", "media_permission-aidl", diff --git a/media/java/android/media/audio/common/AudioChannelMask.aidl b/media/aidl/android/media/audio/common/AudioChannelMask.aidl index b9b08e6921bc..b9b08e6921bc 100644 --- a/media/java/android/media/audio/common/AudioChannelMask.aidl +++ b/media/aidl/android/media/audio/common/AudioChannelMask.aidl diff --git a/media/java/android/media/audio/common/AudioConfig.aidl b/media/aidl/android/media/audio/common/AudioConfig.aidl index 50dd796e1fa0..50dd796e1fa0 100644 --- a/media/java/android/media/audio/common/AudioConfig.aidl +++ b/media/aidl/android/media/audio/common/AudioConfig.aidl diff --git a/media/java/android/media/audio/common/AudioFormat.aidl b/media/aidl/android/media/audio/common/AudioFormat.aidl index aadc8e26cce3..aadc8e26cce3 100644 --- a/media/java/android/media/audio/common/AudioFormat.aidl +++ b/media/aidl/android/media/audio/common/AudioFormat.aidl diff --git a/media/java/android/media/audio/common/AudioOffloadInfo.aidl b/media/aidl/android/media/audio/common/AudioOffloadInfo.aidl index ec10d71135ae..ec10d71135ae 100644 --- a/media/java/android/media/audio/common/AudioOffloadInfo.aidl +++ b/media/aidl/android/media/audio/common/AudioOffloadInfo.aidl diff --git a/media/java/android/media/audio/common/AudioStreamType.aidl b/media/aidl/android/media/audio/common/AudioStreamType.aidl index c54566726350..c54566726350 100644 --- a/media/java/android/media/audio/common/AudioStreamType.aidl +++ b/media/aidl/android/media/audio/common/AudioStreamType.aidl diff --git a/media/java/android/media/audio/common/AudioUsage.aidl b/media/aidl/android/media/audio/common/AudioUsage.aidl index ef348165b22c..ef348165b22c 100644 --- a/media/java/android/media/audio/common/AudioUsage.aidl +++ b/media/aidl/android/media/audio/common/AudioUsage.aidl diff --git a/media/java/android/media/permission/Identity.aidl b/media/aidl/android/media/permission/Identity.aidl index 361497d59ea9..361497d59ea9 100644 --- a/media/java/android/media/permission/Identity.aidl +++ b/media/aidl/android/media/permission/Identity.aidl diff --git a/media/java/android/media/soundtrigger_middleware/AudioCapabilities.aidl b/media/aidl/android/media/soundtrigger_middleware/AudioCapabilities.aidl index 97a8849c7b07..97a8849c7b07 100644 --- a/media/java/android/media/soundtrigger_middleware/AudioCapabilities.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/AudioCapabilities.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ConfidenceLevel.aidl b/media/aidl/android/media/soundtrigger_middleware/ConfidenceLevel.aidl index 3dbc70556bd3..3dbc70556bd3 100644 --- a/media/java/android/media/soundtrigger_middleware/ConfidenceLevel.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ConfidenceLevel.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl index 726af7681979..726af7681979 100644 --- a/media/java/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerCallback.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl index d1126b9006e0..d1126b9006e0 100644 --- a/media/java/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerMiddlewareService.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl index c4a57857dd3d..c4a57857dd3d 100644 --- a/media/java/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ISoundTriggerModule.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ModelParameter.aidl b/media/aidl/android/media/soundtrigger_middleware/ModelParameter.aidl index 09936278e93a..09936278e93a 100644 --- a/media/java/android/media/soundtrigger_middleware/ModelParameter.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ModelParameter.aidl diff --git a/media/java/android/media/soundtrigger_middleware/ModelParameterRange.aidl b/media/aidl/android/media/soundtrigger_middleware/ModelParameterRange.aidl index d6948a87dc6d..d6948a87dc6d 100644 --- a/media/java/android/media/soundtrigger_middleware/ModelParameterRange.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/ModelParameterRange.aidl diff --git a/media/java/android/media/soundtrigger_middleware/OWNERS b/media/aidl/android/media/soundtrigger_middleware/OWNERS index e5d037003ac4..e5d037003ac4 100644 --- a/media/java/android/media/soundtrigger_middleware/OWNERS +++ b/media/aidl/android/media/soundtrigger_middleware/OWNERS diff --git a/media/java/android/media/soundtrigger_middleware/Phrase.aidl b/media/aidl/android/media/soundtrigger_middleware/Phrase.aidl index 98a489f8a6a9..98a489f8a6a9 100644 --- a/media/java/android/media/soundtrigger_middleware/Phrase.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/Phrase.aidl diff --git a/media/java/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl b/media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl index 6a3ec61d1ebf..6a3ec61d1ebf 100644 --- a/media/java/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionEvent.aidl diff --git a/media/java/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl b/media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl index cb96bf37a95d..cb96bf37a95d 100644 --- a/media/java/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/PhraseRecognitionExtra.aidl diff --git a/media/java/android/media/soundtrigger_middleware/PhraseSoundModel.aidl b/media/aidl/android/media/soundtrigger_middleware/PhraseSoundModel.aidl index 81028c1608ea..81028c1608ea 100644 --- a/media/java/android/media/soundtrigger_middleware/PhraseSoundModel.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/PhraseSoundModel.aidl diff --git a/media/java/android/media/soundtrigger_middleware/RecognitionConfig.aidl b/media/aidl/android/media/soundtrigger_middleware/RecognitionConfig.aidl index 5c0eeb1e32b1..5c0eeb1e32b1 100644 --- a/media/java/android/media/soundtrigger_middleware/RecognitionConfig.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/RecognitionConfig.aidl diff --git a/media/java/android/media/soundtrigger_middleware/RecognitionEvent.aidl b/media/aidl/android/media/soundtrigger_middleware/RecognitionEvent.aidl index a237ec1aa3b3..a237ec1aa3b3 100644 --- a/media/java/android/media/soundtrigger_middleware/RecognitionEvent.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/RecognitionEvent.aidl diff --git a/media/java/android/media/soundtrigger_middleware/RecognitionMode.aidl b/media/aidl/android/media/soundtrigger_middleware/RecognitionMode.aidl index d8bfff4bec6f..d8bfff4bec6f 100644 --- a/media/java/android/media/soundtrigger_middleware/RecognitionMode.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/RecognitionMode.aidl diff --git a/media/java/android/media/soundtrigger_middleware/RecognitionStatus.aidl b/media/aidl/android/media/soundtrigger_middleware/RecognitionStatus.aidl index d563edca547d..d563edca547d 100644 --- a/media/java/android/media/soundtrigger_middleware/RecognitionStatus.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/RecognitionStatus.aidl diff --git a/media/java/android/media/soundtrigger_middleware/SoundModel.aidl b/media/aidl/android/media/soundtrigger_middleware/SoundModel.aidl index 81d8291e85aa..cee3635a1e3b 100644 --- a/media/java/android/media/soundtrigger_middleware/SoundModel.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/SoundModel.aidl @@ -16,6 +16,7 @@ package android.media.soundtrigger_middleware; import android.media.soundtrigger_middleware.SoundModelType; +import android.os.ParcelFileDescriptor; /** * Base sound model descriptor. This struct can be extended for various specific types by way of @@ -32,7 +33,7 @@ parcelable SoundModel { * was build for */ String vendorUuid; /** Opaque data transparent to Android framework */ - FileDescriptor data; + ParcelFileDescriptor data; /** Size of the above data, in bytes. */ int dataSize; } diff --git a/media/java/android/media/soundtrigger_middleware/SoundModelType.aidl b/media/aidl/android/media/soundtrigger_middleware/SoundModelType.aidl index f2abc9af7780..f2abc9af7780 100644 --- a/media/java/android/media/soundtrigger_middleware/SoundModelType.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/SoundModelType.aidl diff --git a/media/java/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl b/media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl index 667135ff61b9..667135ff61b9 100644 --- a/media/java/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl diff --git a/media/java/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl b/media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl index 9c56e7b98b3f..9c56e7b98b3f 100644 --- a/media/java/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/SoundTriggerModuleProperties.aidl diff --git a/media/java/android/media/soundtrigger_middleware/Status.aidl b/media/aidl/android/media/soundtrigger_middleware/Status.aidl index c7623f5bf491..c7623f5bf491 100644 --- a/media/java/android/media/soundtrigger_middleware/Status.aidl +++ b/media/aidl/android/media/soundtrigger_middleware/Status.aidl diff --git a/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java b/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java index 1d31285ed9c7..de8823c4b7f3 100644 --- a/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java +++ b/services/core/java/com/android/server/soundtrigger_middleware/ConversionUtil.java @@ -40,7 +40,10 @@ import android.media.soundtrigger_middleware.SoundModel; import android.media.soundtrigger_middleware.SoundModelType; import android.media.soundtrigger_middleware.SoundTriggerModuleProperties; import android.os.HidlMemoryUtil; +import android.os.ParcelFileDescriptor; +import java.io.FileDescriptor; +import java.io.IOException; import java.util.regex.Matcher; /** @@ -196,8 +199,18 @@ class ConversionUtil { hidlModel.header.type = aidl2hidlSoundModelType(aidlModel.type); hidlModel.header.uuid = aidl2hidlUuid(aidlModel.uuid); hidlModel.header.vendorUuid = aidl2hidlUuid(aidlModel.vendorUuid); - hidlModel.data = HidlMemoryUtil.fileDescriptorToHidlMemory(aidlModel.data, - aidlModel.dataSize); + + // Extract a dup of the underlying FileDescriptor out of aidlModel.data without changing + // the original. + FileDescriptor fd = new FileDescriptor(); + try { + ParcelFileDescriptor dup = aidlModel.data.dup(); + fd.setInt$(dup.detachFd()); + hidlModel.data = HidlMemoryUtil.fileDescriptorToHidlMemory(fd, aidlModel.dataSize); + } catch (IOException e) { + throw new RuntimeException(e); + } + return hidlModel; } diff --git a/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java b/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java index ebcf10dd019f..509eb2563376 100644 --- a/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java +++ b/services/tests/servicestests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java @@ -59,6 +59,7 @@ import android.os.HidlMemoryUtil; import android.os.HwParcel; import android.os.IHwBinder; import android.os.IHwInterface; +import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SharedMemory; import android.system.ErrnoException; @@ -126,7 +127,7 @@ public class SoundTriggerMiddlewareImplTest { model.uuid = "12345678-2345-3456-4567-abcdef987654"; model.vendorUuid = "87654321-5432-6543-7654-456789fedcba"; byte[] data = new byte[]{91, 92, 93, 94, 95}; - model.data = byteArrayToFileDescriptor(data); + model.data = new ParcelFileDescriptor(byteArrayToFileDescriptor(data)); model.dataSize = data.length; return model; } |