blob: 6ece15a61472f61acc1c3003f86b39317d956cd2 [file] [log] [blame]
/**
* 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();
}