1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.hardware.audio@2.0; 18 19import android.hardware.audio.common@2.0; 20import IDevice; 21 22interface IDevicesFactory { 23 typedef android.hardware.audio@2.0::Result Result; 24 25 enum Device : int32_t { 26 PRIMARY, 27 A2DP, 28 USB, 29 R_SUBMIX, 30 STUB 31 }; 32 33 /** 34 * Opens an audio device. To close the device, it is necessary to release 35 * references to the returned device object. 36 * 37 * @param device device type. 38 * @return retval operation completion status. Returns INVALID_ARGUMENTS 39 * if there is no corresponding hardware module found, 40 * NOT_INITIALIZED if an error occured while opening the hardware 41 * module. 42 * @return result the interface for the created device. 43 */ 44 openDevice(Device device) generates (Result retval, IDevice result); 45}; 46