| /* |
| * Copyright (C) 2014 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.media; |
| |
| import android.compat.annotation.UnsupportedAppUsage; |
| |
| |
| /** |
| * An AudioPatch describes a connection between audio sources and audio sinks. |
| * An audio source can be an output mix (playback AudioBus) or an input device (microphone). |
| * An audio sink can be an output device (speaker) or an input mix (capture AudioBus). |
| * An AudioPatch is created by AudioManager.createAudioPatch() and released by |
| * AudioManager.releaseAudioPatch() |
| * It contains the list of source and sink AudioPortConfig showing audio port configurations |
| * being connected. |
| * @hide |
| */ |
| public class AudioPatch { |
| |
| @UnsupportedAppUsage |
| private final AudioHandle mHandle; |
| private final AudioPortConfig[] mSources; |
| private final AudioPortConfig[] mSinks; |
| |
| @UnsupportedAppUsage |
| AudioPatch(AudioHandle patchHandle, AudioPortConfig[] sources, AudioPortConfig[] sinks) { |
| mHandle = patchHandle; |
| mSources = sources; |
| mSinks = sinks; |
| } |
| |
| /** |
| * Retrieve the list of sources of this audio patch. |
| */ |
| @UnsupportedAppUsage |
| public AudioPortConfig[] sources() { |
| return mSources; |
| } |
| |
| /** |
| * Retreive the list of sinks of this audio patch. |
| */ |
| @UnsupportedAppUsage |
| public AudioPortConfig[] sinks() { |
| return mSinks; |
| } |
| |
| /** |
| * Get the system unique patch ID. |
| */ |
| public int id() { |
| return mHandle.id(); |
| } |
| |
| @Override |
| public String toString() { |
| StringBuilder s = new StringBuilder(); |
| s.append("mHandle: "); |
| s.append(mHandle.toString()); |
| |
| s.append(" mSources: {"); |
| for (AudioPortConfig source : mSources) { |
| s.append(source.toString()); |
| s.append(", "); |
| } |
| s.append("} mSinks: {"); |
| for (AudioPortConfig sink : mSinks) { |
| s.append(sink.toString()); |
| s.append(", "); |
| } |
| s.append("}"); |
| |
| return s.toString(); |
| } |
| } |