/* * Copyright (C) 2019 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.car.media; import android.car.media.ICarMediaSourceListener; import android.content.ComponentName; /** * Binder interface for {@link android.car.media.CarMediaManager}. * Check {@link android.car.media.CarMediaManager} APIs for expected behavior of each call. * * @hide */ interface ICarMedia { /** Gets the currently active media source for the provided mode */ ComponentName getMediaSource(int mode); /** Sets the currently active media source for the provided mode */ void setMediaSource(in ComponentName mediaSource, int mode); /** Register a callback that receives updates to the active media source */ void registerMediaSourceListener(in ICarMediaSourceListener callback, int mode); /** Unregister a callback that receives updates to the active media source */ void unregisterMediaSourceListener(in ICarMediaSourceListener callback, int mode); /** Retrieve a list of media sources, ordered by most recently used */ List getLastMediaSources(int mode); /** Returns whether the browse and playback sources can be changed independently. */ boolean isIndependentPlaybackConfig(); /** Sets whether the browse and playback sources can be changed independently. */ void setIndependentPlaybackConfig(boolean independent); }