blob: 2e593b0fadd7dcc020d311d0faba7439ae802e4c [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 *
Tomasz Wasilczykb8a2afe2017-08-01 10:52:18 -070032 * This callback supersedes V1_0::tuneComplete.
33 * The 1.0 callback must not be called when HAL implementation detects
34 * 1.1 client (by casting V1_0::ITunerCallback to V1_1::ITunerCallback).
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070035 *
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 *
Tomasz Wasilczykb8a2afe2017-08-01 10:52:18 -070044 * This callback supersedes V1_0::afSwitch.
45 * The 1.0 callback must not be called when HAL implementation detects
46 * 1.1 client (by casting V1_0::ITunerCallback to V1_1::ITunerCallback).
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070047 *
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 *
Tomasz Wasilczykb8a2afe2017-08-01 10:52:18 -070076 * This callback is only for notifying about insertions and deletions,
77 * not about metadata changes.
78 *
Tomasz Wasilczyk803301a2017-03-13 14:30:15 -070079 * It may be triggered either by an explicitly issued background scan,
80 * or a scan issued by the device internally.
81 *
82 * Client may retrieve the actual list with ITuner::getProgramList.
83 */
84 oneway programListChanged();
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070085
86 /**
87 * Method called by the HAL when current program information (including
88 * metadata) is updated.
89 *
90 * Client may retrieve the actual program info with
91 * ITuner::getProgramInformation_1_1.
92 *
93 * This may be called together with tuneComplete_1_1 or afSwitch_1_1.
94 *
Tomasz Wasilczykb8a2afe2017-08-01 10:52:18 -070095 * This callback supersedes V1_0::newMetadata and partly V1_0::tuneComplete
96 * and V1_0::afSwitch.
97 * 1.0 callbacks must not be called when HAL implementation detects
98 * 1.1 client (by casting V1_0::ITunerCallback to V1_1::ITunerCallback).
Tomasz Wasilczykf8866e72017-07-13 15:51:21 -070099 */
Tomasz Wasilczykb8a2afe2017-08-01 10:52:18 -0700100 oneway currentProgramInfoChanged();
Tomasz Wasilczyk213170b2017-02-07 17:38:21 -0800101};