blob: f599b10ab584bec3359a69eb0ed942d4d674b516 [file] [log] [blame]
/*
* Copyright (C) 2016 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@1.0;
import ITunerCallback;
import ITuner;
interface IBroadcastRadio {
/**
* Retrieve implementation properties.
* @return result Operation completion status: OK in case of success,
* NOT_INITIALIZED in case of initialization error.
* @return properties A Properties structure containing implementation
* description and capabilities.
*/
getProperties() generates (Result result, Properties properties);
/**
* Open a tuner interface for the requested configuration.
* If no other tuner is opened, this will power on the radio hardware.
* The hardware must be powered down when all tuner interface are released.
* @param config A BandConfig struct containing the band configuration to apply
* @param audio True if this tuner must be used for live radio listening and
* should be connected to the radio audio source.
* @param callback the callback interface
* @return result Operation completion status: OK in case of success,
* INVALID_ARGUMENTS if configuration requested is invalid,
* INVALID_STATE if called out of sequence
* @return tuner The interface to control the tuner
*
* Callback ITunerCallback.ConfigChanged MUST be called once the
* configuration is applied or a failure occurs or after a time out.
*/
openTuner(BandConfig config, bool audio, ITunerCallback callback)
generates (Result result, ITuner tuner);
};