blob: a42d292770ae51e1550f4fb5a757bdfd95189f76 [file] [log] [blame]
/*
* Copyright (C) 2019 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 com.android.server.soundtrigger_middleware;
import android.os.HidlMemoryUtil;
import java.util.ArrayList;
/**
* Utilities for maintaining data compatibility between different minor versions of soundtrigger@2.x
* HAL.
* Note that some of these conversion utilities are destructive, i.e. mutate their input (for the
* sake of simplifying code and reducing copies).
*/
class Hw2CompatUtil {
static android.hardware.soundtrigger.V2_0.ISoundTriggerHw.SoundModel convertSoundModel_2_1_to_2_0(
android.hardware.soundtrigger.V2_1.ISoundTriggerHw.SoundModel soundModel) {
android.hardware.soundtrigger.V2_0.ISoundTriggerHw.SoundModel model_2_0 = soundModel.header;
// Note: this mutates the input!
model_2_0.data = HidlMemoryUtil.hidlMemoryToByteList(soundModel.data);
return model_2_0;
}
static android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.RecognitionEvent convertRecognitionEvent_2_0_to_2_1(
android.hardware.soundtrigger.V2_0.ISoundTriggerHwCallback.RecognitionEvent event) {
android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.RecognitionEvent event_2_1 =
new android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.RecognitionEvent();
event_2_1.header = event;
event_2_1.data = HidlMemoryUtil.byteListToHidlMemory(event_2_1.header.data,
"SoundTrigger RecognitionEvent");
// Note: this mutates the input!
event_2_1.header.data = new ArrayList<>();
return event_2_1;
}
static android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.PhraseRecognitionEvent convertPhraseRecognitionEvent_2_0_to_2_1(
android.hardware.soundtrigger.V2_0.ISoundTriggerHwCallback.PhraseRecognitionEvent event) {
android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.PhraseRecognitionEvent
event_2_1 =
new android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback.PhraseRecognitionEvent();
event_2_1.common = convertRecognitionEvent_2_0_to_2_1(event.common);
event_2_1.phraseExtras = event.phraseExtras;
return event_2_1;
}
static android.hardware.soundtrigger.V2_0.ISoundTriggerHw.PhraseSoundModel convertPhraseSoundModel_2_1_to_2_0(
android.hardware.soundtrigger.V2_1.ISoundTriggerHw.PhraseSoundModel soundModel) {
android.hardware.soundtrigger.V2_0.ISoundTriggerHw.PhraseSoundModel model_2_0 =
new android.hardware.soundtrigger.V2_0.ISoundTriggerHw.PhraseSoundModel();
model_2_0.common = convertSoundModel_2_1_to_2_0(soundModel.common);
model_2_0.phrases = soundModel.phrases;
return model_2_0;
}
static android.hardware.soundtrigger.V2_1.ISoundTriggerHw.RecognitionConfig convertRecognitionConfig_2_3_to_2_1(
android.hardware.soundtrigger.V2_3.RecognitionConfig config) {
return config.base;
}
static android.hardware.soundtrigger.V2_0.ISoundTriggerHw.RecognitionConfig convertRecognitionConfig_2_3_to_2_0(
android.hardware.soundtrigger.V2_3.RecognitionConfig config) {
android.hardware.soundtrigger.V2_0.ISoundTriggerHw.RecognitionConfig config_2_0 =
config.base.header;
// Note: this mutates the input!
config_2_0.data = HidlMemoryUtil.hidlMemoryToByteList(config.base.data);
return config_2_0;
}
static android.hardware.soundtrigger.V2_3.Properties convertProperties_2_0_to_2_3(
android.hardware.soundtrigger.V2_0.ISoundTriggerHw.Properties properties) {
android.hardware.soundtrigger.V2_3.Properties properties_2_3 =
new android.hardware.soundtrigger.V2_3.Properties();
properties_2_3.base = properties;
return properties_2_3;
}
}