Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26900b53 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Android (Google) Code Review
Browse files

Merge changes from topics "radio-vendor-kvp", "radio-1.2"

* changes:
  Implement VTS tests for new radio interfaces.
  Implement generic vendor-specific parameters.
  Branch out Broadcast Radio 1.2 HAL.
parents f4986ecc d921f613
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -21,8 +21,8 @@ cc_test {
    static_libs: [
        "android.hardware.broadcastradio@1.0",
        "android.hardware.broadcastradio@1.1",
        "android.hardware.broadcastradio@1.1-utils-lib",
        "android.hardware.broadcastradio@1.1-vts-utils-lib",
        "android.hardware.broadcastradio@common-utils-lib",
        "android.hardware.broadcastradio@vts-utils-lib",
        "libgmock",
    ],
}
+84 −0
Original line number Diff line number Diff line
// This file is autogenerated by hidl-gen. Do not edit manually.

filegroup {
    name: "android.hardware.broadcastradio@1.2_hal",
    srcs: [
        "types.hal",
        "IBroadcastRadioFactory.hal",
        "ITuner.hal",
        "ITunerCallback.hal",
    ],
}

genrule {
    name: "android.hardware.broadcastradio@1.2_genc++",
    tools: ["hidl-gen"],
    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.2",
    srcs: [
        ":android.hardware.broadcastradio@1.2_hal",
    ],
    out: [
        "android/hardware/broadcastradio/1.2/types.cpp",
        "android/hardware/broadcastradio/1.2/BroadcastRadioFactoryAll.cpp",
        "android/hardware/broadcastradio/1.2/TunerAll.cpp",
        "android/hardware/broadcastradio/1.2/TunerCallbackAll.cpp",
    ],
}

genrule {
    name: "android.hardware.broadcastradio@1.2_genc++_headers",
    tools: ["hidl-gen"],
    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.2",
    srcs: [
        ":android.hardware.broadcastradio@1.2_hal",
    ],
    out: [
        "android/hardware/broadcastradio/1.2/types.h",
        "android/hardware/broadcastradio/1.2/hwtypes.h",
        "android/hardware/broadcastradio/1.2/IBroadcastRadioFactory.h",
        "android/hardware/broadcastradio/1.2/IHwBroadcastRadioFactory.h",
        "android/hardware/broadcastradio/1.2/BnHwBroadcastRadioFactory.h",
        "android/hardware/broadcastradio/1.2/BpHwBroadcastRadioFactory.h",
        "android/hardware/broadcastradio/1.2/BsBroadcastRadioFactory.h",
        "android/hardware/broadcastradio/1.2/ITuner.h",
        "android/hardware/broadcastradio/1.2/IHwTuner.h",
        "android/hardware/broadcastradio/1.2/BnHwTuner.h",
        "android/hardware/broadcastradio/1.2/BpHwTuner.h",
        "android/hardware/broadcastradio/1.2/BsTuner.h",
        "android/hardware/broadcastradio/1.2/ITunerCallback.h",
        "android/hardware/broadcastradio/1.2/IHwTunerCallback.h",
        "android/hardware/broadcastradio/1.2/BnHwTunerCallback.h",
        "android/hardware/broadcastradio/1.2/BpHwTunerCallback.h",
        "android/hardware/broadcastradio/1.2/BsTunerCallback.h",
    ],
}

cc_library {
    name: "android.hardware.broadcastradio@1.2",
    defaults: ["hidl-module-defaults"],
    generated_sources: ["android.hardware.broadcastradio@1.2_genc++"],
    generated_headers: ["android.hardware.broadcastradio@1.2_genc++_headers"],
    export_generated_headers: ["android.hardware.broadcastradio@1.2_genc++_headers"],
    vendor_available: true,
    vndk: {
        enabled: true,
    },
    shared_libs: [
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
        "liblog",
        "libutils",
        "libcutils",
        "android.hardware.broadcastradio@1.0",
        "android.hardware.broadcastradio@1.1",
    ],
    export_shared_lib_headers: [
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
        "libutils",
        "android.hardware.broadcastradio@1.0",
        "android.hardware.broadcastradio@1.1",
    ],
}
+29 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.hardware.broadcastradio@1.2;

import @1.1::IBroadcastRadioFactory;

/**
 * To use 1.2 features you must cast specific interfaces returned from the
 * 1.0 HAL. For example V1_0::IBroadcastRadio::openTuner() returns V1_0::ITuner,
 * which can be cast with V1_2::ITuner::castFrom() call.
 *
 * The 1.2 server must always return the 1.2 version of specific interface.
 */
interface IBroadcastRadioFactory extends @1.1::IBroadcastRadioFactory {
};
+68 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.hardware.broadcastradio@1.2;

import @1.1::ITuner;

interface ITuner extends @1.1::ITuner {
    /**
     * Generic method for setting vendor-specific parameter values.
     * The framework does not interpret the parameters, they are passed
     * in an opaque manner between a vendor application and HAL.
     *
     * Framework does not make any assumptions on the keys or values, other than
     * ones stated in VendorKeyValue documentation (a requirement of key
     * prefixes).
     *
     * Results vector may not contain a result for each parameter being set,
     * it can even be empty.
     *
     * Application and HAL must not use keys with unknown prefix. In particular,
     * it must not place a key-value pair in results vector for unknown key from
     * parameters vector - instead, an unknown key should simply be ignored.
     * In other words, results vector may contain a subset of parameter keys
     * (however, the framework doesn't enforce a strict subset - the only
     * formal requirement is vendor domain prefix for keys).
     *
     * @param parameters Vendor-specific key-value pairs.
     * @return results Operation completion status for parameters being set.
     *                 Value format for result status is vendor-specific.
     */
    setParameters(vec<VendorKeyValue> parameters)
            generates (vec<VendorKeyValue> results);

    /**
     * Generic method for retrieving vendor-specific parameter values.
     * The framework does not interpret the parameters, they are passed
     * in an opaque manner between a vendor application and HAL.
     *
     * Framework does not cache set/get requests, so it's allowed for
     * getParameter to return a different value than previous setParameter call.
     *
     * The syntax and semantics of keys are up to the vendor (as long as prefix
     * rules are obeyed). For instance, vendors may include some form of
     * wildcard support. In such case, result vector may be of different size
     * than requested keys vector. However, wildcards are not recognized by
     * framework and they are passed as-is to the HAL implementation.
     *
     * Unknown keys must be ignored and not placed into results vector.
     *
     * @param keys Parameter keys to fetch.
     * @return parameters Vendor-specific key-value pairs.
     */
    getParameters(vec<string> keys) generates (vec<VendorKeyValue> parameters);
};
+36 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.hardware.broadcastradio@1.2;

import @1.1::ITunerCallback;

interface ITunerCallback extends @1.1::ITunerCallback {
    /**
     * Generic callback for passing updates to vendor-specific parameter values.
     * The framework does not interpret the parameters, they are passed
     * in an opaque manner between a vendor application and HAL.
     *
     * It's up to the HAL implementation if and how to implement this callback,
     * as long as it obeys the prefix rule. In particular, only selected keys
     * may be notified this way. However, setParameters must not trigger
     * this callback, while an internal event can change parameters
     * asynchronously.
     *
     * @param parameters Vendor-specific key-value pairs.
     */
    oneway parametersUpdated(vec<VendorKeyValue> parameters);
};
Loading