196b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov/* 296b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * Copyright (C) 2016 The Android Open Source Project 396b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * 496b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * Licensed under the Apache License, Version 2.0 (the "License"); 596b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * you may not use this file except in compliance with the License. 696b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * You may obtain a copy of the License at 796b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * 896b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * http://www.apache.org/licenses/LICENSE-2.0 996b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * 1096b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * Unless required by applicable law or agreed to in writing, software 1196b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * distributed under the License is distributed on an "AS IS" BASIS, 1296b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1396b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * See the License for the specific language governing permissions and 1496b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * limitations under the License. 1596b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov */ 1696b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov 1796b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganovpackage android.hardware.audio@2.0; 1896b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov 1996b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganovimport android.hardware.audio.common@2.0; 2096b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganovimport IDevice; 2196b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov 2296b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganovinterface IDevicesFactory { 2396b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov typedef android.hardware.audio@2.0::Result Result; 2496b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov 25d26dc50abbad068cd1a673f204fa538c1c61bdb2Steven Moreland enum Device : int32_t { 2696b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov PRIMARY, 2796b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov A2DP, 2896b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov USB, 29f247b8df085d6b2a50f981a062f9d376148acd5bEric Laurent R_SUBMIX, 30f247b8df085d6b2a50f981a062f9d376148acd5bEric Laurent STUB 3196b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov }; 3296b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov 3340d3a9bd8c62714ee58f9363c4456f764aa5a95dAndreas Huber /** 3496b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * Opens an audio device. To close the device, it is necessary to release 3596b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * references to the returned device object. 3696b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * 3796b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * @param device device type. 3896b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * @return retval operation completion status. Returns INVALID_ARGUMENTS 3996b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * if there is no corresponding hardware module found, 4096b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * NOT_INITIALIZED if an error occured while opening the hardware 4196b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * module. 4296b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov * @return result the interface for the created device. 4396b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov */ 4496b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov openDevice(Device device) generates (Result retval, IDevice result); 4596b30be9d0bd14e4ae31533a9fc6844058352fccMikhail Naganov}; 46