SET(INC_DIR include)
INCLUDE_DIRECTORIES(${INC_DIR})
-SET(dependents "dlog mm-sound capi-base-common capi-media-sound-manager mm-common mm-session libpulse vconf dpm capi-system-info")
+SET(dependents "dlog mm-sound capi-base-common capi-media-sound-manager mm-common mm-session libpulse dpm capi-system-info")
SET(pc_dependents "capi-base-common capi-media-sound-manager")
INCLUDE(FindPkgConfig)
} /* namespace tizen_media_audio */
#endif
-#endif /* __TIZEN_MEDIA_CPP_OBJECTS_IO_H__ */
+#endif /* __TIZEN_MEDIA_AUDIO_IO_CAUDIOERROR_H__ */
#include <stdio.h>
#include <dlog.h>
-#include <vconf.h>
#include "CAudioError.h"
#include "CAudioInfo.h"
/* Overridden Handler */
virtual void onStream(CPulseAudioClient* pClient, size_t length);
- virtual void onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info);
+ virtual void onInterrupt(CAudioSessionHandler* pHandler, int id,
+ mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state,
+ const char *reason_for_change, const char *additional_info);
virtual void onSignal(CAudioSessionHandler* pHandler, mm_sound_signal_name_t signal, int value);
/* Implemented Methods */
Name: capi-media-audio-io
Summary: An Audio Input & Audio Output library in Tizen Native API
-Version: 0.3.60
+Version: 0.3.61
Release: 0
Group: Multimedia/API
License: Apache-2.0
BuildRequires: pkgconfig(mm-common)
BuildRequires: pkgconfig(mm-session)
BuildRequires: pkgconfig(mm-sound)
-BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(capi-media-sound-manager)
BuildRequires: pkgconfig(capi-base-common)
BuildRequires: pkgconfig(libpulse)
CAudioIO::onStream(pClient, length);
}
-void CAudioInput::onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info) {
+void CAudioInput::onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type,
+ mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info) {
assert(pHandler);
- AUDIO_IO_LOGD("[pHandler:0x%x], [focus_type:%d], [state:%d], [reason_for_change:%s], [additional_info:%s]", pHandler, focus_type, state, reason_for_change, additional_info);
+ AUDIO_IO_LOGD("[pHandler:0x%x], [focus_type:%d], [state:%d], [reason_for_change:%s], [additional_info:%s]",
+ pHandler, focus_type, state, reason_for_change, additional_info);
CAudioIO::onInterrupt(pHandler, id, focus_type, state, reason_for_change, additional_info);
}
if (!PA_CONTEXT_IS_GOOD(state)) {
err = pa_context_errno(c);
pa_threaded_mainloop_unlock(prData.paMainloop);
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION, "pa_context's state is not good : err[%d]", err);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION,
+ "pa_context's state is not good : err[%d]", err);
}
/* Wait until the context is ready */
// Check to invalid AudioType
CAudioInfo::EAudioType audioType = mAudioInfo.getAudioType();
if (audioType < CAudioInfo::EAudioType::AUDIO_IN_TYPE_MEDIA || audioType > CAudioInfo::EAudioType::AUDIO_IN_TYPE_LOOPBACK) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "The audioType is invalid [type:%d]", static_cast<int>(audioType));
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "The audioType is invalid [type:%d]", static_cast<int>(audioType));
}
if (mpAudioSessionHandler->getId() < 0) { // Did not registerSound()
// Create PulseAudio Handler
mpPulseAudioClient = new CPulseAudioClient(CPulseAudioClient::EStreamDirection::STREAM_DIRECTION_RECORD, spec, this);
if (mpPulseAudioClient == NULL) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY, "Failed to allocate CPulseAudioClient object");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY,
+ "Failed to allocate CPulseAudioClient object");
}
// Initialize PulseAudio Handler
void CAudioInput::unprepare() throw(CAudioError) {
if (__IsInit() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize CAudioInput");
}
if (__IsReady() == false) {
void CAudioInput::pause() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_RUNNING) {
void CAudioInput::resume() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED) {
void CAudioInput::flush() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
try {
size_t CAudioInput::read(void* buffer, size_t length) throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
-
if (buffer == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL buffer:%p", buffer);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL buffer:%p", buffer);
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_RUNNING) {
THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
}
/* Checks synchronous flag */
if (__mIsUsedSyncRead == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "Invalid operation of read() if receive stream callback");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
+ "Invalid operation of read() if receive stream callback");
}
int ret = 0;
// If another thread did call unprepare, do not read
if (mpPulseAudioClient == NULL)
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize CPulseAudioClient");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize CPulseAudioClient");
// Block until read done
ret = mpPulseAudioClient->read(buffer, length);
int CAudioInput::peek(const void** buffer, size_t* length) throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
if (buffer == NULL || length == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL buffer:%p, length:%p", buffer, length);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL buffer:%p, length:%p", buffer, length);
}
/* Checks synchronous flag */
if (__mIsUsedSyncRead == true) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "Invalid operation of peek() if does not receive a stream callback");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
+ "Invalid operation of peek() if does not receive a stream callback");
}
int ret = 0;
int CAudioInput::drop() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioInput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioInput");
}
/* Checks synchronous flag */
if (__mIsUsedSyncRead == true) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "Invalid operation of drop() if does not receive a stream callback");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
+ "Invalid operation of drop() if does not receive a stream callback");
}
int ret = 0;
*/
-#include <vconf.h>
#include "CAudioIODef.h"
using namespace std;
CAudioIO::onStream(pClient, length);
}
-void CAudioOutput::onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info) {
+void CAudioOutput::onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type,
+ mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info) {
assert(pHandler);
- AUDIO_IO_LOGD("[pHandler:0x%x], [focus_type:%d], [state:%d], [reason_for_change:%s], [additional_info:%s]", pHandler, focus_type, state, reason_for_change, additional_info);
+ AUDIO_IO_LOGD("[pHandler:0x%x], [focus_type:%d], [state:%d], [reason_for_change:%s], [additional_info:%s]",
+ pHandler, focus_type, state, reason_for_change, additional_info);
CAudioIO::onInterrupt(pHandler, id, focus_type, state, reason_for_change, additional_info);
}
// Create ASM Handler
mpAudioSessionHandler = new CAudioSessionHandler(CAudioSessionHandler::EAudioSessionType::AUDIO_SESSION_TYPE_PLAYBACK, mAudioInfo, this);
if (mpAudioSessionHandler == NULL) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY, "Failed to allocate CAudioSessionHandler object");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY,
+ "Failed to allocate CAudioSessionHandler object");
}
// Initialize ASM Handler
// Check to invalid AudioType
CAudioInfo::EAudioType audioType = mAudioInfo.getAudioType();
if (audioType < CAudioInfo::EAudioType::AUDIO_OUT_TYPE_MEDIA || audioType >= CAudioInfo::EAudioType::AUDIO_TYPE_MAX) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "The audioType is invalid [type:%d]", static_cast<int>(audioType));
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "The audioType is invalid [type:%d]", static_cast<int>(audioType));
}
if (mpAudioSessionHandler->getId() < 0) { // Did not registerSound()
// Create PulseAudio Handler
mpPulseAudioClient = new CPulseAudioClient(CPulseAudioClient::EStreamDirection::STREAM_DIRECTION_PLAYBACK, spec, this);
if (mpPulseAudioClient == NULL) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY, "Failed to allocate CPulseAudioClient object");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY,
+ "Failed to allocate CPulseAudioClient object");
}
// Initialize PulseAudio Handler
mpPulseAudioClient->initialize();
- if (isForceIgnore() == false && mpAudioSessionHandler->isSkipSessionEvent() == false) {
+ if (isForceIgnore() == false &&
+ mpAudioSessionHandler->isSkipSessionEvent() == false) {
/* Updates ASM to PLAYING */
mpAudioSessionHandler->updatePlaying();
}
void CAudioOutput::unprepare() throw(CAudioError) {
if (__IsInit() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize CAudioOutput");
}
if (__IsReady() == false) {
if (mpAudioSessionHandler->getId() >= 0) {
/* Updates ASM to STOP */
- if (isForceIgnore() == false && mpAudioSessionHandler->isSkipSessionEvent() == false) {
+ if (isForceIgnore() == false &&
+ mpAudioSessionHandler->isSkipSessionEvent() == false) {
mpAudioSessionHandler->updateStop();
}
void CAudioOutput::pause() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_RUNNING) {
internalLock();
/* Updates ASM to STOP */
- if (isForceIgnore() == false && mpAudioSessionHandler->isSkipSessionEvent() == false) {
+ if (isForceIgnore() == false &&
+ mpAudioSessionHandler->isSkipSessionEvent() == false) {
mpAudioSessionHandler->updateStop();
}
void CAudioOutput::resume() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_PAUSED) {
try {
internalLock();
- if (isForceIgnore() == false && mpAudioSessionHandler->isSkipSessionEvent() == false) {
+ if (isForceIgnore() == false &&
+ mpAudioSessionHandler->isSkipSessionEvent() == false) {
/* Updates ASM to PLAYING */
mpAudioSessionHandler->updatePlaying();
}
void CAudioOutput::drain() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
try {
void CAudioOutput::flush() throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
try {
int CAudioOutput::getBufferSize() throw(CAudioError) {
if (__IsInit() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
/* FIXME : return calculated size here to satisfy backward compatibility */
size_t CAudioOutput::write(const void* buffer, size_t length) throw(CAudioError) {
if (__IsInit() == false || __IsReady() == false) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioOutput");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize or prepare CAudioOutput");
}
if (buffer == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are invalid - buffer:%p, length:%zu", buffer, length);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are invalid - buffer:%p, length:%zu", buffer, length);
}
if (CAudioIO::getState() != CAudioInfo::EAudioIOState::AUDIO_IO_STATE_RUNNING) {
THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
if (mpPulseAudioClient->isInThread() == true) {
int ret = mpPulseAudioClient->write(buffer, length);
if (ret < 0) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION, "The written result is invalid ret:%d", ret);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION,
+ "The written result is invalid ret:%d", ret);
}
#ifdef _AUDIO_IO_DEBUG_TIMING_
// If another thread did call unprepare, do not write
if (mpPulseAudioClient == NULL)
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize CPulseAudioClient");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED,
+ "Did not initialize CPulseAudioClient");
// Sets synchronous flag
__mIsUsedSyncWrite = true;
int ret = mpPulseAudioClient->write(buffer, l);
if (ret < 0) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION, "The written result is invalid ret:%d", ret);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INTERNAL_OPERATION,
+ "The written result is invalid ret:%d", ret);
}
buffer = static_cast<const uint8_t*>(buffer) + l;
lengthIter -= l;
} // End of while (length > 0)
- // Unsets synchronous flag
__mIsUsedSyncWrite = false;
internalUnlock();
} catch (CAudioError e) {
- // Unsets synchronous flag
__mIsUsedSyncWrite = false;
internalUnlock();
throw e;
return ret;
}
-static void __convert_channel_2_audio_info_channel(const audio_channel_e& src_channel, CAudioInfo::EChannel& dst_channel) {
+static void __convert_channel_2_audio_info_channel(const audio_channel_e& src_channel,
+ CAudioInfo::EChannel& dst_channel) {
switch (src_channel) {
case AUDIO_CHANNEL_MONO:
dst_channel = CAudioInfo::EChannel::CHANNEL_MONO;
break;
default:
dst_channel = CAudioInfo::EChannel::CHANNEL_MONO;
+ break;
}
}
-static void __convert_audio_info_channel_2_channel(const CAudioInfo::EChannel& src_channel, audio_channel_e& dst_channel) {
+static void __convert_audio_info_channel_2_channel(const CAudioInfo::EChannel& src_channel,
+ audio_channel_e& dst_channel) {
switch (src_channel) {
case CAudioInfo::EChannel::CHANNEL_MONO:
dst_channel = AUDIO_CHANNEL_MONO;
break;
default:
dst_channel = AUDIO_CHANNEL_MONO;
+ break;
}
}
-static void __convert_sample_type_2_audio_info_sample_type(const audio_sample_type_e& src_type, CAudioInfo::ESampleType& dst_type) {
+static void __convert_sample_type_2_audio_info_sample_type(const audio_sample_type_e& src_type,
+ CAudioInfo::ESampleType& dst_type) {
switch (src_type) {
case AUDIO_SAMPLE_TYPE_U8:
dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_U8;
break;
default:
dst_type = CAudioInfo::ESampleType::SAMPLE_TYPE_U8;
+ break;
}
}
-static void __convert_audio_info_sample_type_2_sample_type(const CAudioInfo::ESampleType& src_type, audio_sample_type_e& dst_type) {
+static void __convert_audio_info_sample_type_2_sample_type(const CAudioInfo::ESampleType& src_type,
+ audio_sample_type_e& dst_type) {
switch (src_type) {
case CAudioInfo::ESampleType::SAMPLE_TYPE_U8:
dst_type = AUDIO_SAMPLE_TYPE_U8;
break;
default:
dst_type = AUDIO_SAMPLE_TYPE_U8;
+ break;
}
}
-static void __convert_sound_type_2_audio_info_audio_type(const sound_type_e& src_type, CAudioInfo::EAudioType& dst_type) {
+static void __convert_sound_type_2_audio_info_audio_type(const sound_type_e& src_type,
+ CAudioInfo::EAudioType& dst_type) {
switch (src_type) {
case SOUND_TYPE_SYSTEM:
dst_type = CAudioInfo::EAudioType::AUDIO_OUT_TYPE_SYSTEM;
}
}
-static void __convert_audio_info_audio_type_2_sound_type(const CAudioInfo::EAudioType& src_type, sound_type_e& dst_type) {
+static void __convert_audio_info_audio_type_2_sound_type(const CAudioInfo::EAudioType& src_type,
+ sound_type_e& dst_type) {
switch (src_type) {
case CAudioInfo::EAudioType::AUDIO_OUT_TYPE_MEDIA:
dst_type = SOUND_TYPE_MEDIA;
static audio_io_state_e __convert_state_type(const CAudioInfo::EAudioIOState src_state) {
audio_io_state_e dst_state;
+
switch (src_state) {
case CAudioInfo::EAudioIOState::AUDIO_IO_STATE_NONE:
dst_state = AUDIO_IO_STATE_IDLE;
break;
default:
dst_state = AUDIO_IO_STATE_IDLE;
+ break;
}
return dst_state;
}
int ret = 0;
try {
if (input == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
__check_audio_param(sample_rate, channel, type);
audio_io_s* handle = NULL;
try {
if (input == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
__check_audio_param(sample_rate, channel, type);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || stream_info == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, stream_info:%p", input, stream_info);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, stream_info:%p", input, stream_info);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
-
assert(handle->audioIoHandle);
handle->audioIoHandle->unprepare();
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
-
assert(handle->audioIoHandle);
handle->audioIoHandle->pause();
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
-
assert(handle->audioIoHandle);
handle->audioIoHandle->resume();
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
-
assert(handle->audioIoHandle);
handle->audioIoHandle->drain();
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || buffer == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, buffer:%p", input, buffer);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, buffer:%p", input, buffer);
}
-
assert(handle->audioIoHandle);
CAudioInput* inputHandle = dynamic_cast<CAudioInput*>(handle->audioIoHandle);
if (inputHandle == NULL) {
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_HANDLE, "Handle is NULL");
}
+
size_t readn = inputHandle->read(buffer, static_cast<size_t>(length));
ret = static_cast<int>(readn);
#ifdef _AUDIO_IO_DEBUG_TIMING_
try {
if (handle == NULL || size == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, size:%p", input, size);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, size:%p", input, size);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || sample_rate == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, sample_rate:%p", input, sample_rate);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, sample_rate:%p", input, sample_rate);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || channel == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, channel:%p", input, channel);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, channel:%p", input, channel);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || type == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, type:%p", input, type);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, type:%p", input, type);
}
-
assert(handle->audioIoHandle);
const CAudioInfo::ESampleType srcSampleType = handle->audioIoHandle->getAudioInfo().getSampleType();
- audio_sample_type_e dstSampleType = AUDIO_SAMPLE_TYPE_U8;
+ audio_sample_type_e dstSampleType = AUDIO_SAMPLE_TYPE_U8;
__convert_audio_info_sample_type_2_sample_type(srcSampleType, dstSampleType);
*type = dstSampleType;
assert(handle);
- if (handle->interrupt_callback.onInterrupt != NULL) {
+ if (handle->interrupt_callback.onInterrupt) {
handle->interrupt_callback.onInterrupt(code, handle->interrupt_callback.user_data);
}
}
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, callback:%p", input, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, callback:%p", input, callback);
}
assert(handle->audioIoHandle);
handle->interrupt_callback.onInterrupt = callback;
- handle->interrupt_callback.user_data = user_data;
+ handle->interrupt_callback.user_data = user_data;
CAudioIO::SInterruptCallback cb = handle->audioIoHandle->getInterruptCallback();
- cb.mUserData = static_cast<void*>(handle);
+ cb.mUserData = static_cast<void*>(handle);
cb.onInterrupt = __interrupt_cb_internal;
handle->audioIoHandle->setInterruptCallback(cb);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
assert(handle->audioIoHandle);
handle->interrupt_callback.user_data = NULL;
CAudioIO::SInterruptCallback cb = handle->audioIoHandle->getInterruptCallback();
- cb.mUserData = NULL;
+ cb.mUserData = NULL;
cb.onInterrupt = NULL;
handle->audioIoHandle->setInterruptCallback(cb);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
if (handle->stream_callback.onStream) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "Not support ignore session in async mode");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
+ "Not support ignore session in async mode");
}
assert(handle->audioIoHandle);
audio_io_s* audioIo = static_cast<audio_io_s*>(user_data);
assert(audioIo);
- if (audioIo->stream_callback.onStream != NULL) {
+ if (audioIo->stream_callback.onStream) {
audioIo->stream_callback.onStream(audioIo, nbytes, audioIo->stream_callback.user_data);
}
}
-static void __state_changed_cb_internal(CAudioInfo::EAudioIOState state, CAudioInfo::EAudioIOState state_prev, bool by_policy, void *user_data) {
+static void __state_changed_cb_internal(CAudioInfo::EAudioIOState state,
+ CAudioInfo::EAudioIOState state_prev,
+ bool by_policy,
+ void *user_data) {
audio_io_s* audioIo = static_cast<audio_io_s*>(user_data);
assert(audioIo);
- if (audioIo->state_changed_callback.onStateChanged != NULL) {
- audioIo->state_changed_callback.onStateChanged(audioIo, __convert_state_type(state_prev), __convert_state_type(state), by_policy, audioIo->state_changed_callback.user_data);
+ if (audioIo->state_changed_callback.onStateChanged) {
+ audioIo->state_changed_callback.onStateChanged(audioIo, __convert_state_type(state_prev),
+ __convert_state_type(state), by_policy,
+ audioIo->state_changed_callback.user_data);
}
}
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, callback:%p", input, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, callback:%p", input, callback);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || buffer == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, buffer:%p", input, buffer);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, buffer:%p", input, buffer);
}
CAudioInput* inputHandle = dynamic_cast<CAudioInput*>(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p", input);
}
CAudioInput* inputHandle = dynamic_cast<CAudioInput*>(handle->audioIoHandle);
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL input:%p, callback:%p", input, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL input:%p, callback:%p", input, callback);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", input);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", input);
}
assert(handle->audioIoHandle);
audio_io_s* handle = NULL;
try {
if (output == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
__check_audio_param(sample_rate, channel, type, sound_type);
audio_io_s* handle = NULL;
try {
if (output == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
__check_audio_param(sample_rate, channel, type, SOUND_TYPE_SYSTEM /*default check */);
THROW_ERROR_MSG(CAudioError::EError::ERROR_OUT_OF_MEMORY, "Failed allocation handle");
}
- CAudioInfo audioInfo = __generate_audio_output_info(sample_rate, channel, type, SOUND_TYPE_MEDIA /* default sound_type */);
+ CAudioInfo audioInfo = __generate_audio_output_info(sample_rate, channel, type, SOUND_TYPE_MEDIA);
handle->audioIoHandle = new CAudioOutput(audioInfo);
if (handle->audioIoHandle == NULL) {
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || stream_info == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, stream_info:%p", output, stream_info);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, stream_info:%p", output, stream_info);
}
assert(handle->audioIoHandle);
}
handle->audioIoHandle->getAudioInfo().setAudioIndex(index);
} else {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_NOT_SUPPORTED_TYPE, "Output stream is not supported");
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_NOT_SUPPORTED_TYPE,
+ "Output stream is not supported");
}
} catch (CAudioError e) {
AUDIO_IO_LOGE("%s", e.getErrorMsg());
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p", output);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || buffer == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameter is NULL output:%p, buffer:%p", output, buffer);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameter is NULL output:%p, buffer:%p", output, buffer);
}
assert(handle->audioIoHandle);
if (outputHandle == NULL) {
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_HANDLE, "Handle is NULL");
}
+
size_t written = outputHandle->write(buffer, static_cast<size_t>(length));
ret = static_cast<int>(written);
#ifdef _AUDIO_IO_DEBUG_TIMING_
try {
if (handle == NULL || size == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, size:%p", output, size);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, size:%p", output, size);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || sample_rate == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, sample_rate:%p", output, sample_rate);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, sample_rate:%p", output, sample_rate);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || channel == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, channel:%p", output, channel);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, channel:%p", output, channel);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || type == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, type:%p", output, type);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, type:%p", output, type);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || type == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, type:%p", output, type);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, type:%p", output, type);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, callback:%p", output, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, callback:%p", output, callback);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
assert(handle->audioIoHandle);
handle->interrupt_callback.onInterrupt = NULL;
- handle->interrupt_callback.user_data = NULL;
+ handle->interrupt_callback.user_data = NULL;
CAudioIO::SInterruptCallback cb = handle->audioIoHandle->getInterruptCallback();
- cb.mUserData = NULL;
+ cb.mUserData = NULL;
cb.onInterrupt = NULL;
handle->audioIoHandle->setInterruptCallback(cb);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
if (handle->stream_callback.onStream) {
- THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "Not support ignore session in async mode");
+ THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION,
+ "Not support ignore session in async mode");
}
assert(handle->audioIoHandle);
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, callback:%p", output, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, callback:%p", output, callback);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
assert(handle->audioIoHandle);
CAudioIO::SStreamCallback cb = handle->audioIoHandle->getStreamCallback();
cb.mUserData = NULL;
- cb.onStream = NULL;
+ cb.onStream = NULL;
handle->audioIoHandle->setStreamCallback(cb);
} catch (CAudioError e) {
try {
if (handle == NULL || callback == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p, callback:%p", output, callback);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p, callback:%p", output, callback);
}
assert(handle->audioIoHandle);
try {
if (handle == NULL) {
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Parameters are NULL output:%p", output);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
+ "Parameters are NULL output:%p", output);
}
assert(handle->audioIoHandle);
CAudioIO::SStateChangedCallback cb = handle->audioIoHandle->getStateChangedCallback();
cb.mUserData = NULL;
- cb.onStateChanged = NULL;
+ cb.onStateChanged = NULL;
handle->audioIoHandle->setStateChangedCallback(cb);
} catch (CAudioError e) {
static int ch_table[3] = { 0, AUDIO_CHANNEL_MONO, AUDIO_CHANNEL_STEREO };
-void play_file(char *file, int length, int ch)
+static char *state_str[] = { "IDLE", "RUNNING", "PAUSED" };
+
+static void _audio_in_state_cb(audio_in_h handle, audio_io_state_e previous, audio_io_state_e current, bool by_policy, void *user_data)
+{
+ printf(">>> _audio_in_state_cb() : handle(%p), previous(%d,%s) => current(%d,%s), by_policy(%d), user_data(%p)\n",
+ handle, previous, state_str[previous], current, state_str[current], by_policy, user_data);
+}
+
+static void _audio_out_state_cb(audio_in_h handle, audio_io_state_e previous, audio_io_state_e current, bool by_policy, void *user_data)
{
+ printf(">>> _audio_out_state_cb() : handle(%p), previous(%d,%s) => current(%d,%s), by_policy(%d), user_data(%p)\n",
+ handle, previous, state_str[previous], current, state_str[current], by_policy, user_data);
+}
+
+void play_file(char *file, int length, int num, int ch)
+{
+ int i = 0;
+ int ret = 0;
+ int total_length = length * num;
audio_out_h output;
FILE *fp = fopen(file, "r");
if (fp == NULL) {
return;
}
- char *buf = malloc(length);
+ char *buf = malloc(total_length);
if (buf == NULL) {
printf("malloc failed\n");
fclose(fp);
return;
}
- printf("start to play [%s][%d][%d]\n", file, length, ch);
+ printf("start to play [%s][%d][%d]\n", file, total_length, ch);
+ printf("create\n");
audio_out_create_new(44100, ch_table[ch], AUDIO_SAMPLE_TYPE_S16_LE, &output);
- if (fread(buf, 1, length, fp) != length)
+ if (fread(buf, 1, total_length, fp) != length)
printf("error!!!!\n");
+ ret = audio_out_set_state_changed_cb(output, _audio_out_state_cb, NULL);
+ if (ret != AUDIO_IO_ERROR_NONE) {
+ printf("audio_out_set_state_changed_cb failed. \n");
+ }
+
+ printf("prepare\n");
audio_out_prepare(output);
- audio_out_write(output, buf, length);
+
+ char *pbuf = buf;
+ for (i = 0; i < num; i++) {
+ printf("### write = (%d/%d) ============== \n", i, num);
+ audio_out_write(output, pbuf, length);
+ pbuf += length;
+
+ }
+ printf("unprepare\n");
audio_out_drain(output);
audio_out_unprepare(output);
+ printf("destroy\n");
audio_out_destroy(output);
fclose(fp);
int ret, size, i;
audio_in_h input;
if ((ret = audio_in_create(44100, ch_table[ch], AUDIO_SAMPLE_TYPE_S16_LE, &input)) == AUDIO_IO_ERROR_NONE) {
- ret = audio_in_ignore_session(input);
- if (ret != 0) {
- printf("ERROR, set session mix\n");
- audio_in_destroy(input);
- return 0;
+ ret = audio_in_set_state_changed_cb(input, _audio_in_state_cb, NULL);
+ if (ret != AUDIO_IO_ERROR_NONE) {
+ printf("audio_in_set_state_changed_cb failed. \n");
+ goto error;
}
ret = audio_in_prepare(input);
if (ret != 0) {
printf("ERROR, prepare\n");
- audio_in_destroy(input);
- return 0;
+ goto error;
}
FILE *fp = fopen(DUMP_FILE, "wb+");
-
if (fp == NULL) {
printf("ERROR, file open failed\n");
- audio_in_destroy(input);
- return 0;
+ goto error;
}
if ((ret = audio_in_get_buffer_size(input, &size)) == AUDIO_IO_ERROR_NONE) {
char *buffer = alloca(size);
for (i = 0; i < num; i++) {
- printf("### loop = %d ============== \n", i);
+ printf("### read = (%d/%d) ============== ", i, num);
if ((ret = audio_in_read(input, (void *)buffer, size)) > AUDIO_IO_ERROR_NONE) {
fwrite(buffer, size, sizeof(char), fp);
- printf("PASS, size=%d, ret=%d\n", size, ret);
+ printf("PASS, size=%d, ret=0x%x\n", size, ret);
} else {
- printf("FAIL, size=%d, ret=%d\n", size, ret);
+ printf("FAIL, size=%d, ret=0x%x\n", size, ret);
}
}
}
audio_in_destroy(input);
}
- play_file(DUMP_FILE, length * num, ch);
+ play_file(DUMP_FILE, length, num, ch);
- return 1;
+ return 0;
+error:
+ audio_in_destroy(input);
+ return -1;
}
int audio_io_loopback_in_test()
if (fp == NULL) {
printf("open failed \n");
- return 0;
+ return -1;
}
if ((ret = audio_in_create(16000, AUDIO_CHANNEL_MONO, AUDIO_SAMPLE_TYPE_S16_LE, &input)) == AUDIO_IO_ERROR_NONE) {
char *buffer = alloca(size);
if ((ret = audio_in_read(input, (void *)buffer, size)) > AUDIO_IO_ERROR_NONE) {
fwrite(buffer, size, sizeof(char), fp);
- printf("PASS, size=%d, ret=%d\n", size, ret);
+ printf("PASS, size=%d, ret=0x%x\n", size, ret);
} else {
- printf("FAIL, size=%d, ret=%d\n", size, ret);
+ printf("FAIL, size=%d, ret=0x%x\n", size, ret);
}
}
}
ret = audio_in_create(16000, AUDIO_CHANNEL_MONO, AUDIO_SAMPLE_TYPE_S16_LE, &input);
if (ret != AUDIO_IO_ERROR_NONE) {
printf("audio_in_create_ex failed. \n");
- return 0;
+ return ret;
}
ret = audio_out_create_new(16000, AUDIO_CHANNEL_MONO, AUDIO_SAMPLE_TYPE_S16_LE, &output);
if (ret != AUDIO_IO_ERROR_NONE) {
printf("audio_out_create failed. \n");
- return 0;
+ return ret;
}
ret = audio_in_prepare(input);
if (ret != 0) {
printf("audio_in_prepare failed, err(0x%x)\n", ret);
audio_in_destroy(input);
- return 0;
+ return ret;
} else {
ret = audio_in_get_buffer_size(input, &size);
if (ret != AUDIO_IO_ERROR_NONE) {
if (ret != 0) {
printf("audio_out_prepare failed, err(0x%x)\n", ret);
audio_out_destroy(output);
- return 0;
+ return ret;
}
if (buffer == NULL) {
printf("buffer is null\n");
- return 0;
+ return -1;
}
while (1) {
}
}
-static void _audio_in_state_cb(audio_in_h handle, audio_io_state_e previous, audio_io_state_e current, bool by_policy, void *user_data)
-{
- printf(">>> _audio_in_state_cb() : handle(%p), current(%d), previous(%d), by_policy(%d), user_data(%p)\n", handle, current, previous, by_policy, user_data);
-}
-
-static void _audio_out_state_cb(audio_in_h handle, audio_io_state_e previous, audio_io_state_e current, bool by_policy, void *user_data)
-{
- printf(">>> _audio_out_state_cb() : handle(%p), current(%d), previous(%d), by_policy(%d), user_data(%p)\n", handle, current, previous, by_policy, user_data);
-}
-
int _convert_cmd_and_run(char cmd, int mode)
{
int ret = 0;
printf("fail to sound_manager_create_stream_information(), ret(0x%x)\n", ret);
goto EXIT;
}
+
ret = audio_out_set_sound_stream_info(output, g_stream_info_write_h);
if (ret)
printf("fail to audio_out_set_sound_stream_info(), ret(0x%x)\n", ret);