| /** |
| * Copyright (C) 2018 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 com.android.car.radio.service; |
| |
| import android.hardware.radio.ProgramSelector; |
| import android.hardware.radio.RadioManager; |
| |
| import com.android.car.broadcastradio.support.Program; |
| import com.android.car.radio.bands.ProgramType; |
| import com.android.car.radio.bands.RegionConfig; |
| import com.android.car.radio.service.IRadioAppCallback; |
| import com.android.car.radio.service.ITuneCallback; |
| |
| /** |
| * An interface to the backend Radio app's service. |
| */ |
| interface IRadioAppService { |
| /** |
| * Adds {@link RadioAppService} callback. |
| * |
| * Triggers state updates on newly added callback. |
| */ |
| void addCallback(in IRadioAppCallback callback); |
| |
| /** |
| * Removes {@link RadioAppService} callback. |
| */ |
| void removeCallback(in IRadioAppCallback callback); |
| |
| /** |
| * Tunes to a given program. |
| */ |
| void tune(in ProgramSelector sel, in ITuneCallback callback); |
| |
| /** |
| * Seeks forward or backwards. |
| */ |
| void seek(boolean forward, in ITuneCallback callback); |
| |
| /** |
| * Steps forward or backwards. |
| */ |
| void step(boolean forward, in ITuneCallback callback); |
| |
| /** |
| * Skips forward or backwards; the meaning of "skip" is defined by setSkipMode(). |
| */ |
| void skip(boolean forward, in ITuneCallback callback); |
| |
| /** |
| * Sets the behavior of skip() |
| * |
| * @param mode must be a valid SkipMode enum value. |
| */ |
| void setSkipMode(int mode); |
| |
| /** |
| * Mutes or resumes audio. |
| * |
| * @param muted {@code true} to mute, {@code false} to resume audio. |
| */ |
| void setMuted(boolean muted); |
| |
| /** |
| * Tune to a default channel of a given program type (band). |
| * |
| * Usually, this means tuning to the recently listened program of a given band. |
| * |
| * @param band Program type to switch to |
| */ |
| void switchBand(in ProgramType band); |
| |
| /** |
| * States whether program list is supported on current device or not. |
| * |
| * @return {@code true} if the program list is supported, {@code false} otherwise. |
| */ |
| boolean isProgramListSupported(); |
| |
| /** |
| * Returns current region config (like frequency ranges for AM/FM). |
| */ |
| RegionConfig getRegionConfig(); |
| |
| /** |
| * Tunes to the previously selected program or the default channel. |
| */ |
| void tuneToDefaultIfNeeded(); |
| } |