blob: b1c5b01d5be37b28919167cc72f7ae712fcf5d79 [file] [log] [blame]
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -08001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.broadcastradio@1.1;
18
19import @1.0::ITunerCallback;
20
21/**
Tomasz Wasilczyk803301a2017-03-13 14:30:15 -070022 * Some methods of @1.1::ITunerCallback are updated versions of those from
23 * @1.0:ITunerCallback. All 1.1 HAL implementations must call both
24 * (eg. tuneComplete and tuneComplete_1_1), while 1.1 clients may ignore 1.0
25 * ones, to avoid receiving a callback twice.
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080026 */
27interface ITunerCallback extends @1.0::ITunerCallback {
Andreas Huber40d3a9b2017-03-28 16:19:16 -070028 /**
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080029 * Method called by the HAL when a tuning operation completes
30 * following a step(), scan() or tune() command.
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070031 *
32 * This callback supersedes V1_0::tuneComplete. For performance reasons,
33 * the 1.0 callback may not be called when HAL implementation detects 1.1
34 * client (by casting V1_0::ITunerCallback to V1_1::ITunerCallback).
35 *
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080036 * @param result OK if tune succeeded or TIMEOUT in case of time out.
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070037 * @param selector A ProgramSelector structure describing the tuned station.
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080038 */
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070039 oneway tuneComplete_1_1(Result result, ProgramSelector selector);
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080040
Andreas Huber40d3a9b2017-03-28 16:19:16 -070041 /**
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080042 * Method called by the HAL when a frequency switch occurs.
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070043 *
44 * This callback supersedes V1_0::afSwitch. For performance reasons,
45 * the 1.0 callback may not be called when HAL implementation detects 1.1
46 * client (by casting V1_0::ITunerCallback to V1_1::ITunerCallback).
47 *
48 * @param selector A ProgramSelector structure describing the tuned station.
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080049 */
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070050 oneway afSwitch_1_1(ProgramSelector selector);
Tomasz Wasilczyk803301a2017-03-13 14:30:15 -070051
52 /**
Tomasz Wasilczyk22e5f172017-03-27 15:18:58 -070053 * Called by the HAL when background scan feature becomes available or not.
54 *
55 * @param isAvailable true, if the tuner turned temporarily background-
56 * capable, false in the other case.
57 */
58 oneway backgroundScanAvailable(bool isAvailable);
59
60 /**
Tomasz Wasilczyk803301a2017-03-13 14:30:15 -070061 * Called by the HAL when background scan initiated by startBackgroundScan
62 * finishes. If the list was changed, programListChanged must be called too.
63 * @param result OK if the scan succeeded, client may retrieve the actual
64 * list with ITuner::getProgramList.
Tomasz Wasilczyk22e5f172017-03-27 15:18:58 -070065 * UNAVAILABLE if the scan was interrupted due to
Tomasz Wasilczyk803301a2017-03-13 14:30:15 -070066 * hardware becoming temporarily unavailable.
67 * NOT_INITIALIZED other error, ie. HW failure.
68 */
69 oneway backgroundScanComplete(ProgramListResult result);
70
71 /**
72 * Called each time the internally cached program list changes. HAL may not
73 * call it immediately, ie. it may wait for a short time to accumulate
74 * multiple list change notifications into a single event.
75 *
76 * It may be triggered either by an explicitly issued background scan,
77 * or a scan issued by the device internally.
78 *
79 * Client may retrieve the actual list with ITuner::getProgramList.
80 */
81 oneway programListChanged();
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070082
83 /**
84 * Method called by the HAL when current program information (including
85 * metadata) is updated.
86 *
87 * Client may retrieve the actual program info with
88 * ITuner::getProgramInformation_1_1.
89 *
90 * This may be called together with tuneComplete_1_1 or afSwitch_1_1.
91 *
92 * This callback supersedes V1_0::tuneComplete, V1_0::afSwitch and
93 * newMetadata. For performance reasons, these callbacks may not be called
94 * when HAL implementation detects 1.1 client (by casting
95 * V1_0::ITunerCallback to V1_1::ITunerCallback).
96 */
97 oneway programInfoChanged();
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -080098};