2 * Copyright (C) 2015 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package android.hardware.broadcastradio@1.0;
19 import ITunerCallback;
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
34 setConfiguration(BandConfig config) generates(Result result);
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
42 getConfiguration() generates(Result result, BandConfig config);
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
58 scan(Direction direction, bool skipSubChannel) generates(Result result);
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
74 step(Direction direction, bool skipSubChannel) generates(Result result);
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
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
92 tune(uint32_t channel, uint32_t subChannel) generates(Result result);
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
102 cancel() generates(Result result);
105 * Retrieve current station information.
106 * @return result OK if scan successfully started
107 * NOT_INITIALIZED if another error occurs
108 * @return info Current program information.
110 getProgramInformation() generates(Result result, ProgramInfo info);