1// copyright 2016 the android open source project
2//
3// licensed under the apache license, version 2.0 (the "license");
4// you may not use this file except in compliance with the license.
5// you may obtain a copy of the license at
6//
7//      http://www.apache.org/licenses/license-2.0
8//
9// unless required by applicable law or agreed to in writing, software
10// distributed under the license is distributed on an "as is" basis,
11// without warranties or conditions of any kind, either express or implied.
12// see the license for the specific language governing permissions and
13// limitations under the license.
14//
15
16// Type to represent audio devices in a brillo system.
17
18#ifndef BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_DEVICE_INFO_H_
19#define BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_DEVICE_INFO_H_
20
21#include <sys/cdefs.h>
22
23__BEGIN_DECLS
24
25struct BAudioDeviceInfo;
26
27typedef struct BAudioDeviceInfo BAudioDeviceInfo;
28
29// A device type associated with an unknown or uninitialized device.
30static const int TYPE_UNKNOWN = 0;
31
32// A device type describing the speaker system (i.e. a mono speaker or stereo
33// speakers) built in a device.
34static const int TYPE_BUILTIN_SPEAKER = 1;
35
36// A device type describing a headset, which is the combination of a headphones
37// and microphone. This type represents just the transducer in the headset.
38static const int TYPE_WIRED_HEADSET = 2;
39
40// A device type describing a headset, which is the combination of a headphones
41// and microphone. This type represents the microphone in the headset.
42static const int TYPE_WIRED_HEADSET_MIC = 3;
43
44// A device type describing a pair of wired headphones.
45static const int TYPE_WIRED_HEADPHONES = 4;
46
47// A device type describing the microphone(s) built in a device.
48static const int TYPE_BUILTIN_MIC = 5;
49
50// Create a BAudioDeviceInfo based on a type described above.
51//
52// Arg:
53//   device: An int representing an audio type as defined above.
54//
55// Returns a pointer to a BAudioDeviceInfo object.
56BAudioDeviceInfo* BAudioDeviceInfo_new(int device);
57
58// Get the type of the device.
59//
60// Arg:
61//   device: A pointer to a BAudioDeviceInfo object to be freed.
62//
63// Returns an int representing the type of the device.
64int BAudioDeviceInfo_getType(BAudioDeviceInfo* device);
65
66// Free a BAudioDeviceInfo.
67//
68// Arg:
69//   device: A pointer to a BAudioDeviceInfo object to be freed.
70void BAudioDeviceInfo_delete(BAudioDeviceInfo* device);
71
72__END_DECLS
73
74#endif  // BRILLO_AUDIO_AUDIOSERVICE_BRILLO_AUDIO_DEVICE_INFO_H_
75