2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef __TIZEN_MEDIA_AUDIO__IO_CAUDIO_INFO_H__
18 #define __TIZEN_MEDIA_AUDIO__IO_CAUDIO_INFO_H__
24 namespace tizen_media_audio {
32 const static unsigned int MIN_SYSTEM_SAMPLERATE = 8000;
33 const static unsigned int MAX_SYSTEM_SAMPLERATE = 48000;
36 CHANNEL_MONO = 1, /**< 1 channel, mono */
37 CHANNEL_STEREO, /**< 2 channel, stereo */
42 SAMPLE_TYPE_U8 = 1, /**< Unsigned 8-bit audio samples */
43 SAMPLE_TYPE_S16_LE, /**< Signed 16-bit audio samples */
49 AUDIO_IN_TYPE_MEDIA = 0,
52 AUDIO_IN_TYPE_NOTIFICATION,
53 AUDIO_IN_TYPE_EMERGENCY,
54 AUDIO_IN_TYPE_VOICE_INFORMATION,
55 AUDIO_IN_TYPE_VOICE_RECOGNITION,
56 AUDIO_IN_TYPE_RINGTONE_VOIP,
58 AUDIO_IN_TYPE_LOOPBACK, /**< only for loopback */
62 AUDIO_OUT_TYPE_SYSTEM,
64 AUDIO_OUT_TYPE_NOTIFICATION,
65 AUDIO_OUT_TYPE_EMERGENCY,
66 AUDIO_OUT_TYPE_VOICE_INFORMATION,
67 AUDIO_OUT_TYPE_VOICE_RECOGNITION,
68 AUDIO_OUT_TYPE_RINGTONE_VOIP,
75 AUDIO_IO_STATE_NONE, /**< Audio-io handle is not created */
76 AUDIO_IO_STATE_IDLE, /**< Audio-io handle is created, but not prepared */
77 AUDIO_IO_STATE_RUNNING, /**< Audio-io handle is ready and the stream is running */
78 AUDIO_IO_STATE_PAUSED, /**< Audio-io handle is ready and the stream is paused */
82 unsigned int mSampleRate;
84 ESampleType mSampleType;
85 EAudioType mAudioType;
88 const char *StreamTypeTable[AUDIO_TYPE_MAX] = {
90 "media", /**< AUDIO_IN_TYPE_MEDIA */
91 "system", /**< AUDIO_IN_TYPE_SYSTEM */
92 "alarm", /**< AUDIO_IN_TYPE_ALARM */
93 "notification", /**< AUDIO_IN_TYPE_NOTIFICATION */
94 "emergency", /**< AUDIO_IN_TYPE_EMERGENCY */
95 "voice-information", /**< AUDIO_IN_TYPE_VOICE_INFORMATION */
96 "voice-recognition", /**< AUDIO_IN_TYPE_VOICE_RECOGNITION */
97 "ringtone-voip", /**< AUDIO_IN_TYPE_RINGTONE_VOIP */
98 "voip", /**< AUDIO_IN_TYPE_VOIP */
99 "loopback", /**< AUDIO_IN_TYPE_LOOPBACK */ /**< only for loopback */
102 "media", /**< AUDIO_OUT_TYPE_MEDIA */
103 "system", /**< AUDIO_OUT_TYPE_SYSTEM */
104 "alarm", /**< AUDIO_OUT_TYPE_ALARM */
105 "notification", /**< AUDIO_OUT_TYPE_NOTIFICATION */
106 "emergency", /**< AUDIO_OUT_TYPE_EMERGENCY */
107 "voice-information", /**< AUDIO_OUT_TYPE_VOICE_INFORMATION */
108 "voice-recognition", /**< AUDIO_OUT_TYPE_VOICE_RECOGNITION */
109 "ringtone-voip", /**< AUDIO_OUT_TYPE_RINGTONE_VOIP */
110 "voip", /**< AUDIO_OUT_TYPE_VOIP */
116 CAudioInfo(unsigned int sampleRate, EChannel channel, ESampleType sampleType, EAudioType audioType, int audioIndex) throw (CAudioError);
118 /* Setter & Getter */
119 unsigned int getSampleRate();
120 EChannel getChannel();
121 ESampleType getSampleType();
122 EAudioType getAudioType();
123 void setAudioType(EAudioType AudioType);
125 void setAudioIndex(int AudioIndex);
126 void convertAudioType2StreamType (CAudioInfo::EAudioType audioType, char **streamType);
127 void convertStreamType2AudioType (char *streamType, CAudioInfo::EAudioType *audioType);
130 } /* namespace tizen_media_audio */
133 #endif /* __TIZEN_MEDIA_AUDIO__IO_CAUDIO_INFO_H__ */