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 {
33 CHANNEL_MONO = 1, /**< 1 channel, mono */
34 CHANNEL_STEREO, /**< 2 channel, stereo */
39 SAMPLE_TYPE_U8 = 1, /**< Unsigned 8-bit audio samples */
40 SAMPLE_TYPE_S16_LE, /**< Signed 16-bit audio samples */
46 AUDIO_IN_TYPE_MEDIA = 0,
47 //AUDIO_IN_TYPE_SYSTEM,
48 //AUDIO_IN_TYPE_ALARM,
49 //AUDIO_IN_TYPE_NOTIFICATION,
50 //AUDIO_IN_TYPE_EMERGENCY,
51 //AUDIO_IN_TYPE_VOICE_INFORMATION,
52 AUDIO_IN_TYPE_VOICE_RECOGNITION,
53 //AUDIO_IN_TYPE_RINGTONE_VOIP,
55 //AUDIO_IN_TYPE_RINGTONE_CALL,
56 //AUDIO_IN_TYPE_VOICE_CALL,
57 //AUDIO_IN_TYPE_VIDEO_CALL,
58 //AUDIO_IN_TYPE_RADIO,
59 AUDIO_IN_TYPE_LOOPBACK,
63 AUDIO_OUT_TYPE_SYSTEM,
65 AUDIO_OUT_TYPE_NOTIFICATION,
66 AUDIO_OUT_TYPE_EMERGENCY,
67 AUDIO_OUT_TYPE_VOICE_INFORMATION,
68 //AUDIO_OUT_TYPE_VOICE_RECOGNITION,
69 AUDIO_OUT_TYPE_RINGTONE_VOIP,
71 AUDIO_OUT_TYPE_RINGTONE_CALL,
72 //AUDIO_OUT_TYPE_VOICE_CALL,
73 //AUDIO_OUT_TYPE_VIDEO_CALL,
74 //AUDIO_OUT_TYPE_RADIO,
75 //AUDIO_OUT_TYPE_LOOPBACK,
81 AUDIO_IO_STATE_NONE, /**< Audio-io handle is not created */
82 AUDIO_IO_STATE_IDLE, /**< Audio-io handle is created, but not prepared */
83 AUDIO_IO_STATE_RUNNING, /**< Audio-io handle is ready and the stream is running */
84 AUDIO_IO_STATE_PAUSED, /**< Audio-io handle is ready and the stream is paused */
87 const static unsigned int MIN_SYSTEM_SAMPLERATE = 8000;
88 const static unsigned int MAX_SYSTEM_SAMPLERATE = 48000;
92 CAudioInfo(unsigned int sampleRate, EChannel channel, ESampleType sampleType, EAudioType audioType, int audioIndex) throw (CAudioError);
95 unsigned int getSampleRate();
96 EChannel getChannel();
97 ESampleType getSampleType();
98 EAudioType getAudioType();
99 void setAudioType(EAudioType AudioType);
101 void setAudioIndex(int AudioIndex);
102 void convertAudioType2StreamType (CAudioInfo::EAudioType audioType, char **streamType);
103 void convertInputStreamType2AudioType (char *streamType, CAudioInfo::EAudioType *audioType);
104 void convertOutputStreamType2AudioType (char *streamType, CAudioInfo::EAudioType *audioType);
107 const char *__STREAM_TYPE_TABLE[AUDIO_TYPE_MAX] = {
109 "media", /**< AUDIO_IN_TYPE_MEDIA */
110 //"system", /**< AUDIO_IN_TYPE_SYSTEM */
111 //"alarm", /**< AUDIO_IN_TYPE_ALARM */
112 //"notification", /**< AUDIO_IN_TYPE_NOTIFICATION */
113 //"emergency", /**< AUDIO_IN_TYPE_EMERGENCY */
114 //"voice-information", /**< AUDIO_IN_TYPE_VOICE_INFORMATION */
115 "voice-recognition", /**< AUDIO_IN_TYPE_VOICE_RECOGNITION */
116 //"ringtone-voip", /**< AUDIO_IN_TYPE_RINGTONE_VOIP */
117 "voip", /**< AUDIO_IN_TYPE_VOIP */
118 //"ringtone-call", /**< AUDIO_IN_TYPE_RINGTONE_CALL */
119 //"call-voice", /**< AUDIO_IN_TYPE_VOICE_CALL */
120 //"call-video", /**< AUDIO_IN_TYPE_VIDEO_CALL */
121 //"radio", /**< AUDIO_IN_TYPE_RADIO */
122 "loopback", /**< AUDIO_IN_TYPE_LOOPBACK */
125 "media", /**< AUDIO_OUT_TYPE_MEDIA */
126 "system", /**< AUDIO_OUT_TYPE_SYSTEM */
127 "alarm", /**< AUDIO_OUT_TYPE_ALARM */
128 "notification", /**< AUDIO_OUT_TYPE_NOTIFICATION */
129 "emergency", /**< AUDIO_OUT_TYPE_EMERGENCY */
130 "voice-information", /**< AUDIO_OUT_TYPE_VOICE_INFORMATION */
131 //"voice-recognition", /**< AUDIO_OUT_TYPE_VOICE_RECOGNITION */
132 "ringtone-voip", /**< AUDIO_OUT_TYPE_RINGTONE_VOIP */
133 "voip", /**< AUDIO_OUT_TYPE_VOIP */
134 "ringtone-call", /**< AUDIO_OUT_TYPE_RINGTONE_CALL */
135 //"call-voice", /**< AUDIO_OUT_TYPE_VOICE_CALL */
136 //"call-video", /**< AUDIO_OUT_TYPE_VIDEO_CALL */
137 //"radio", /**< AUDIO_OUT_TYPE_RADIO */
138 //"loopback", /**< AUDIO_OUT_TYPE_LOOPBACK */
141 unsigned int __mSampleRate;
143 ESampleType __mSampleType;
144 EAudioType __mAudioType;
149 } /* namespace tizen_media_audio */
152 #endif /* __TIZEN_MEDIA_AUDIO__IO_CAUDIO_INFO_H__ */