Support 24bit sample format and up-to 192kHz sample rate
[platform/core/api/audio-io.git] / src / cpp / cpp_audio_io.cpp
index 309e73d..8df8dde 100644 (file)
@@ -174,6 +174,12 @@ static void __convert_sample_type_2_audio_info_sample_type(const audio_sample_ty
     case AUDIO_SAMPLE_TYPE_S16_LE:
         dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_S16_LE;
         break;
+    case AUDIO_SAMPLE_TYPE_S24_LE:
+        dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_S24_LE;
+        break;
+    case AUDIO_SAMPLE_TYPE_S24_32_LE:
+        dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_S24_32_LE;
+        break;
     default:
         dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_U8;
         break;
@@ -189,6 +195,12 @@ static void __convert_audio_info_sample_type_2_sample_type(const CAudioInfo::ESa
     case CAudioInfo::ESampleType::SAMPLE_TYPE_S16_LE:
         dst_type = AUDIO_SAMPLE_TYPE_S16_LE;
         break;
+    case CAudioInfo::ESampleType::SAMPLE_TYPE_S24_LE:
+        dst_type = AUDIO_SAMPLE_TYPE_S24_LE;
+        break;
+    case CAudioInfo::ESampleType::SAMPLE_TYPE_S24_32_LE:
+        dst_type = AUDIO_SAMPLE_TYPE_S24_32_LE;
+        break;
     default:
         dst_type = AUDIO_SAMPLE_TYPE_U8;
         break;
@@ -289,7 +301,10 @@ static void __check_audio_param(int sample_rate, audio_channel_e channel, audio_
     if (channel != AUDIO_CHANNEL_MONO && channel != AUDIO_CHANNEL_STEREO)
         THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid channel :%d", channel);
 
-    if (type != AUDIO_SAMPLE_TYPE_U8 && type != AUDIO_SAMPLE_TYPE_S16_LE)
+    if (type != AUDIO_SAMPLE_TYPE_U8 &&
+        type != AUDIO_SAMPLE_TYPE_S16_LE &&
+        type != AUDIO_SAMPLE_TYPE_S24_LE &&
+        type != AUDIO_SAMPLE_TYPE_S24_32_LE)
         THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid sample type :%d", type);
 }
 
@@ -384,10 +399,6 @@ int cpp_audio_in_create(int sample_rate, audio_channel_e channel, audio_sample_t
     return AUDIO_IO_ERROR_NONE;
 }
 
-int cpp_audio_in_create_loopback(int sample_rate, audio_channel_e channel, audio_sample_type_e type , audio_in_h* input) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
 int cpp_audio_in_destroy(audio_in_h input) {
     audio_io_s* handle = static_cast<audio_io_s*>(input);
 
@@ -673,18 +684,6 @@ int cpp_audio_in_get_sample_type(audio_in_h input, audio_sample_type_e *type) {
     return AUDIO_IO_ERROR_NONE;
 }
 
-int cpp_audio_in_set_interrupted_cb(audio_in_h input, audio_io_interrupted_cb callback, void *user_data) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
-int cpp_audio_in_unset_interrupted_cb(audio_in_h input) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
-int cpp_audio_in_ignore_session(audio_in_h input) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
 static void __stream_cb_internal(size_t nbytes, void *user_data) {
     audio_io_s* audioIo = static_cast<audio_io_s*>(user_data);
     assert(audioIo);
@@ -867,10 +866,6 @@ int cpp_audio_in_unset_state_changed_cb(audio_in_h input) {
 /**
  * Audio Out
  */
-int cpp_audio_out_create(int sample_rate, audio_channel_e channel, audio_sample_type_e type, sound_type_e sound_type, audio_out_h *output) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
 int cpp_audio_out_create_new(int sample_rate, audio_channel_e channel, audio_sample_type_e type, audio_out_h *output) {
     audio_io_s* handle = NULL;
     try {
@@ -1209,18 +1204,6 @@ int cpp_audio_out_get_sound_type(audio_out_h output, sound_type_e *type) {
     return AUDIO_IO_ERROR_NONE;
 }
 
-int cpp_audio_out_set_interrupted_cb(audio_out_h output, audio_io_interrupted_cb callback, void *user_data) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
-int cpp_audio_out_unset_interrupted_cb(audio_out_h output) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
-int cpp_audio_out_ignore_session(audio_out_h output) {
-    return AUDIO_IO_ERROR_NOT_SUPPORTED;
-}
-
 int cpp_audio_out_set_stream_cb(audio_out_h output, audio_out_stream_cb callback, void* user_data) {
     audio_io_s* handle = static_cast<audio_io_s*>(output);