diff options
Diffstat (limited to 'include/audio_io_private.h')
-rw-r--r-- | include/audio_io_private.h | 76 |
1 files changed, 58 insertions, 18 deletions
diff --git a/include/audio_io_private.h b/include/audio_io_private.h index 9645657..6fbe201 100644 --- a/include/audio_io_private.h +++ b/include/audio_io_private.h @@ -1,47 +1,87 @@ /* -* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #ifndef __TIZEN_MEDIA_AUDIO_IO_PRIVATE_H__ -#define __TIZEN_MEDIA_AUDIO_IO_PRIVATE_H__ -#include <audio_io.h> +#define __TIZEN_MEDIA_AUDIO_IO_PRIVATE_H__ + #include <sound_manager.h> #include <mm_sound.h> +#include "audio_io.h" + +/* + * Internal Macros + */ + +#define AUDIO_IO_INTERRUPTED_BY_RESUMABLE_MEDIA (AUDIO_IO_INTERRUPTED_BY_NOTIFICATION + 1) +#define AUDIO_IO_INTERRUPTED_BY_RESUMABLE_CANCELED (AUDIO_IO_INTERRUPTED_BY_NOTIFICATION + 2) + +#define AUDIO_IO_CHECK_CONDITION(condition,error,msg) \ + if(condition) {} else \ + { LOGE("[%s] %s(0x%08x)",__FUNCTION__, msg,error); return error;}; \ + +#define AUDIO_IO_NULL_ARG_CHECK(arg) \ + AUDIO_IO_CHECK_CONDITION(arg != NULL, AUDIO_IO_ERROR_INVALID_PARAMETER, "AUDIO_IO_ERROR_INVALID_PARAMETER" ) #ifdef __cplusplus extern "C" { #endif - typedef struct _audio_in_s{ MMSoundPcmHandle_t mm_handle; + int is_async; + int is_loopback; int _buffer_size; int _sample_rate; audio_channel_e _channel; - audio_sample_type_e _type; + audio_sample_type_e _type; + audio_io_interrupted_cb user_cb; + void* user_data; + audio_in_stream_cb stream_cb; + void* stream_userdata; } audio_in_s; typedef struct _audio_out_s{ MMSoundPcmHandle_t mm_handle; + int is_async; + int is_loopback; int _buffer_size; int _sample_rate; audio_channel_e _channel; audio_sample_type_e _type; sound_type_e _sound_type; + audio_io_interrupted_cb user_cb; + void* user_data; + audio_out_stream_cb stream_cb; + void* stream_userdata; } audio_out_s; +int __convert_audio_io_error_code(int code, char *func_name); +int __check_parameter(int sample_rate, audio_channel_e channel, audio_sample_type_e type); +int __mm_sound_pcm_capture_msg_cb (int message, void *param, void *user_param); +audio_io_interrupted_code_e __translate_interrupted_code (int code); + +int audio_in_create_private(int sample_rate, audio_channel_e channel, audio_sample_type_e type , int source_type, audio_in_h* input); + +int audio_in_set_callback_private(audio_in_h input, audio_in_stream_cb callback, void* userdata); + +int audio_out_create_private(int sample_rate, audio_channel_e channel, audio_sample_type_e type, sound_type_e sound_type, audio_out_h* output); + +int audio_out_set_callback_private(audio_out_h output, audio_out_stream_cb callback, void* userdata); + + #ifdef __cplusplus } #endif |