1ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano/*
2ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * Copyright 2016 The Android Open Source Project
3ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano *
4ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * Licensed under the Apache License, Version 2.0 (the "License");
5ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * you may not use this file except in compliance with the License.
6ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * You may obtain a copy of the License at
7ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano *
8ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano *      http://www.apache.org/licenses/LICENSE-2.0
9ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano *
10ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * Unless required by applicable law or agreed to in writing, software
11ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * distributed under the License is distributed on an "AS IS" BASIS,
12ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * See the License for the specific language governing permissions and
14ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano * limitations under the License.
15ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano */
16ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano
17ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozanopackage android.media;
18ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano
19653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabinimport android.media.MicrophoneInfo;
20653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabin
21f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ffEric Laurent/* Native code must specify namespace media (media::IAudioRecord) when referring to this class */
22ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozanointerface IAudioRecord {
23ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano
24ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano  /* After it's created the track is not active. Call start() to
25ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano   * make it active.
26ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano   */
27ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano  void start(int /*AudioSystem::sync_event_t*/ event,
28ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano             int /*audio_session_t*/ triggerSession);
29ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano
30ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano  /* Stop a track. If set, the callback will cease being called and
31ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano   * obtainBuffer will return an error. Buffers that are already released
32ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano   * will be processed, unless flush() is called.
33ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano   */
34ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano  void stop();
35653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabin
36653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabin  /* Get a list of current active microphones.
37653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabin   */
38653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0jiabin  void getActiveMicrophones(out MicrophoneInfo[] activeMicrophones);
39ff6900d8f991aac0b67b625f8a1d4d0461b4c50eIvan Lozano}
40