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

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

Merge "Implement broadcast radio announcements."

parents 2eaccd18 6a9f856e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -8,7 +8,9 @@ hidl_interface {
    },
    srcs: [
        "types.hal",
        "IAnnouncementObserver.hal",
        "IBroadcastRadio.hal",
        "ICloseHandle.hal",
        "ITunerCallback.hal",
        "ITunerSession.hal",
    ],
@@ -18,6 +20,8 @@ hidl_interface {
    types: [
        "AmFmBandRange",
        "AmFmRegionConfig",
        "Announcement",
        "AnnouncementType",
        "ConfigFlag",
        "Constants",
        "DabTableEntry",
+30 −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@2.0;

/**
 * Callback interface for announcement observer.
 *
 * For typical configuration, the observer is a broadcast radio service.
 */
interface IAnnouncementObserver {
    /**
     * Called whenever announcement list has changed.
     *
     * @param announcements The complete list of currently active announcements.
     */
    oneway onListUpdated(vec<Announcement> announcements);
};
+27 −1
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@

package android.hardware.broadcastradio@2.0;

import IAnnouncementObserver;
import ICloseHandle;
import ITunerCallback;
import ITunerSession;

@@ -100,4 +102,28 @@ interface IBroadcastRadio {
     *               or a zero-length vector if identifier doesn't exist.
     */
    getImage(uint32_t id) generates (vec<uint8_t> image);

    /**
     * Registers announcement observer.
     *
     * If there is at least one observer registered, HAL implementation must
     * notify about announcements even if no sessions are active.
     *
     * If the observer dies, the HAL implementation must unregister observer
     * automatically.
     *
     * @param enabled The list of announcement types to watch for.
     * @param cb The callback interface.
     * @return result OK in case of success.
     *                NOT_SUPPORTED if the tuner doesn't support announcements.
     * @return closeHandle A handle to unregister observer,
     *                     nullptr if result was not OK.
     */
    registerAnnouncementObserver(
            vec<AnnouncementType> enabled,
            IAnnouncementObserver cb
        ) generates (
            Result result,
            ICloseHandle closeHandle
        );
};
+32 −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@2.0;

/**
 * Represents a generic close handle to remove a callback that doesn't need
 * active interface.
 */
interface ICloseHandle {
    /**
     * Closes the handle.
     *
     * The call must not fail and must only be issued once.
     *
     * After the close call is executed, no other calls to this interface
     * are allowed.
     */
    close();
};
+9 −0
Original line number Diff line number Diff line
@@ -141,6 +141,15 @@ Return<void> BroadcastRadio::getImage(uint32_t id, getImage_cb _hidl_cb) {
    return {};
}

Return<void> BroadcastRadio::registerAnnouncementObserver(
    const hidl_vec<AnnouncementType>& enabled, const sp<IAnnouncementObserver>& /* cb */,
    registerAnnouncementObserver_cb _hidl_cb) {
    ALOGV("%s(%s)", __func__, toString(enabled).c_str());

    _hidl_cb(Result::NOT_SUPPORTED, nullptr);
    return {};
}

}  // namespace implementation
}  // namespace V2_0
}  // namespace broadcastradio
Loading