18c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi/*
28c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * Copyright (C) 2016 The Android Open Source Project
38c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi *
48c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License");
58c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * you may not use this file except in compliance with the License.
68c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * You may obtain a copy of the License at
78c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi *
88c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi *      http://www.apache.org/licenses/LICENSE-2.0
98c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi *
108c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software
118c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS,
128c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * See the License for the specific language governing permissions and
148c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * limitations under the License.
158c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi */
168c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
178c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi#pragma once
188c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
198c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivinamespace android {
208c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
218c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi/**
228c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * Interface for input descriptors to implement so dependent audio sessions can query information
238c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi * about their context
248c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi */
258c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Triviclass AudioSessionInfoProvider
268c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi{
278c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivipublic:
288c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi    virtual ~AudioSessionInfoProvider() {};
298c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
308c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi    virtual audio_config_base_t getConfig() const = 0;
318c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
328c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi    virtual audio_patch_handle_t getPatchHandle() const = 0;
338c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
348c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi};
358c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
368c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Triviclass AudioSessionInfoUpdateListener
378c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi{
388c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivipublic:
398c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi    virtual ~AudioSessionInfoUpdateListener() {};
408c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
418c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi    virtual void onSessionInfoUpdate() const = 0;;
428c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi};
438c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi
448c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972Jean-Michel Trivi} // namespace android
45