blob: ae4b2849a5c5448cfbbedda4f8a38d7cb636e1fe [file] [log] [blame]
Eric Laurent402a8292016-10-19 17:57:01 -07001/*
2 * Copyright (C) 2015 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.0;
18
19import ITunerCallback;
20
21interface ITuner {
22
23 /*
24 * Apply current radio band configuration (band, range, channel spacing...).
25 * Automatically cancels pending scan, step or tune.
26 * ITunerCallback.configChange() method MUST be called once the
27 * configuration is applied or a failure occurs or after a time out.
28 * @param config The band configuration to apply.
29 * @return result OK if configuration could be applied
30 * NOT_INITIALIZED in case of initialization error.
31 * INVALID_ARGUMENTS if configuration requested is invalid
32 *
33 */
34 setConfiguration(BandConfig config) generates(Result result);
35
36 /*
37 * Retrieve current radio band configuration.
38 * @return result OK if valid configuration is returned,
39 * NOT_INITIALIZED in case of initialization error.
40 * @param config Current band configuration
41 */
42 getConfiguration() generates(Result result, BandConfig config);
43
44 /*
45 * Start scanning up to next valid station.
46 * Shall be called only when a valid configuration has been applied.
47 * Automatically cancels pending scan, step or tune.
48 * ITunerCallback.tuneComplete() MUST be called once locked on a station
49 * or after a time out or full band scan if no station found.
50 * The status should indicate if a valid station is tuned or not.
51 * @param direction UP or DOWN.
52 * @param skipSubChannel valid for HD radio or digital radios only:
53 * ignore sub channels (e.g SPS for HD radio).
54 * @return result OK if scan successfully started
55 * INVALID_STATE if called out of sequence
56 * NOT_INITIALIZED if another error occurs
57 */
58 scan(Direction direction, bool skipSubChannel) generates(Result result);
59
60 /*
61 * Move one channel spacing up or down.
62 * Must be called when a valid configuration has been applied.
63 * Automatically cancels pending scan, step or tune.
64 * ITunerCallback.tuneComplete() MUST be called once locked on a station
65 * or after a time out or full band scan if no station found.
66 * The status should indicate if a valid station is tuned or not.
67 * @param direction UP or DOWN.
68 * @param skipSubChannel valid for HD radio or digital radios only:
69 * ignore sub channels (e.g SPS for HD radio).
70 * @return result OK if scan successfully started
71 * INVALID_STATE if called out of sequence
72 * NOT_INITIALIZED if another error occurs
73 */
74 step(Direction direction, bool skipSubChannel) generates(Result result);
75
76 /*
77 * Tune to specified channel.
78 * Must be called when a valid configuration has been applied.
79 * Automatically cancels pending scan, step or tune.
80 * ITunerCallback.tuneComplete() MUST be called once locked on a station
81 * or after a time out or full band scan if no station found.
82 * The status should indicate if a valid station is tuned or not.
83 * @param channel Channel to tune to. A frequency in kHz for AM/FM/HD Radio
84 * bands.
85 * @param subChannel Valid for HD radio or digital radios only
86 * (e.g SPS number for HD radio)..
87 * @return result OK if scan successfully started
88 * INVALID_ARGUMENTS if invalid arguments are passed
89 * INVALID_STATE if called out of sequence
90 * NOT_INITIALIZED if another error occurs
91 */
92 tune(uint32_t channel, uint32_t subChannel) generates(Result result);
93
94 /*
95 * Cancel a scan, step or tune operation.
96 * Shall be called only while a scan, step or tune operation is pending.
97 * ITunerCallback.tuneComplete() MUST NOT be sent by the HAL.
98 * @return result OK if scan successfully started
99 * INVALID_STATE if called out of sequence
100 * NOT_INITIALIZED if another error occurs
101 */
102 cancel() generates(Result result);
103
104 /*
105 * Retrieve current station information.
Eric Laurent402a8292016-10-19 17:57:01 -0700106 * @return result OK if scan successfully started
107 * NOT_INITIALIZED if another error occurs
108 * @return info Current program information.
109 */
Tomasz Wasilczyk5cc9d862017-01-06 14:19:11 -0800110 getProgramInformation() generates(Result result, ProgramInfo info);
Eric Laurent402a8292016-10-19 17:57:01 -0700111};