{ LOGE("[%s] %s(0x%08x)",__FUNCTION__, msg,error); return error;}; \
#define SM_INSTANCE_CHECK(handle) \
- _CHECK_CONDITION(handle != NULL, SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
+ _CHECK_CONDITION(handle != NULL,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
#define SM_NULL_ARG_CHECK(arg) \
_CHECK_CONDITION(arg != NULL,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
_CHECK_CONDITION(arg <= max,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER") \
_CHECK_CONDITION(arg >= min,SOUND_MANAGER_ERROR_INVALID_PARAMETER,"SOUND_MANAGER_ERROR_INVALID_PARAMETER")
+#define SM_INSTANCE_CHECK_FOR_PRIV(handle) \
+ _CHECK_CONDITION(handle != NULL,MM_ERROR_INVALID_ARGUMENT,"MM_ERROR_INVALID_ARGUMENT")
+
+#define SM_NULL_ARG_CHECK_FOR_PRIV(arg) \
+ _CHECK_CONDITION(arg != NULL,MM_ERROR_INVALID_ARGUMENT,"MM_ERROR_INVALID_ARGUMENT")
+
+#define SM_STATE_CHECK_FOR_PRIV(handle,expected_state) \
+ _CHECK_CONDITION(handle->state == expected_state,MM_ERROR_SOUND_INVALID_STATE,"MM_ERROR_SOUND_INVALID_STATE")
+
#define SM_ENTER_CRITICAL_SECTION_WITH_RETURN(x_mutex,x_return) \
switch ( pthread_mutex_lock( x_mutex ) ) \
{ \
{
int ret = MM_ERROR_NONE;
- SM_NULL_ARG_CHECK(stream_type);
- SM_NULL_ARG_CHECK(change_reason);
+ SM_NULL_ARG_CHECK_FOR_PRIV(stream_type);
+ SM_NULL_ARG_CHECK_FOR_PRIV(change_reason);
if (!strncmp(stream_type, "media", SOUND_STREAM_TYPE_LEN) ||
!strncmp(stream_type, "radio", SOUND_STREAM_TYPE_LEN) ||
{
int ret = MM_ERROR_NONE;
- SM_NULL_ARG_CHECK(stream_type);
- SM_NULL_ARG_CHECK(change_reason);
+ SM_NULL_ARG_CHECK_FOR_PRIV(stream_type);
+ SM_NULL_ARG_CHECK_FOR_PRIV(change_reason);
if (!strncmp(stream_type, "media", SOUND_STREAM_TYPE_LEN) ||
!strncmp(stream_type, "radio", SOUND_STREAM_TYPE_LEN) ||
{
int ret = MM_ERROR_NONE;
- SM_NULL_ARG_CHECK(volume_type);
+ SM_NULL_ARG_CHECK_FOR_PRIV(volume_type);
switch (sound_type) {
case SOUND_TYPE_SYSTEM:
{
int ret = MM_ERROR_NONE;
- SM_NULL_ARG_CHECK(sound_type);
- SM_NULL_ARG_CHECK(sound_type_enum);
+ SM_NULL_ARG_CHECK_FOR_PRIV(sound_type);
+ SM_NULL_ARG_CHECK_FOR_PRIV(sound_type_enum);
if (!strncmp(sound_type, "system", strlen(sound_type))) {
*sound_type_enum = SOUND_TYPE_SYSTEM;
{
int ret = MM_ERROR_NONE;
- SM_NULL_ARG_CHECK(device_type);
+ SM_NULL_ARG_CHECK_FOR_PRIV(device_type);
switch (device_type_enum) {
case SOUND_DEVICE_BUILTIN_SPEAKER:
mm_sound_device_type_e device_type;
mm_sound_device_io_direction_e device_direction;
- SM_INSTANCE_CHECK(stream_info);
- SM_NULL_ARG_CHECK(device);
+ SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
+ SM_NULL_ARG_CHECK_FOR_PRIV(device);
if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
ret = mm_sound_get_device_id(device, &device_id);
mm_sound_device_type_e device_type;
mm_sound_device_io_direction_e device_direction;
- SM_INSTANCE_CHECK(stream_info);
- SM_NULL_ARG_CHECK(device);
+ SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
+ SM_NULL_ARG_CHECK_FOR_PRIV(device);
if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
ret = mm_sound_get_device_id(device, &device_id);
int i = 0;
bool need_to_apply = false;
- SM_INSTANCE_CHECK(stream_info);
+ SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
if (stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
for (i = 0; i < AVAIL_DEVICES_MAX; i++) {
const char *name = NULL;
int i = 0;
- SM_INSTANCE_CHECK(virtual_stream);
- SM_INSTANCE_CHECK(stream_info);
+ SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+ SM_INSTANCE_CHECK_FOR_PRIV(stream_info);
/* check if this stream_info is available for virtual stream */
name = _convert_api_name(NATIVE_API_SOUND_MANAGER);
{
int ret = MM_ERROR_NONE;
- SM_INSTANCE_CHECK(virtual_stream);
- SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_READY);
+ SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+ SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_READY);
virtual_stream->pa_mainloop = NULL;
virtual_stream->pa_context = NULL;
pa_sample_spec ss;
pa_channel_map maps;
- SM_INSTANCE_CHECK(virtual_stream);
- SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_READY);
+ SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+ SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_READY);
if (virtual_stream->stream_info->stream_conf_info.route_type == STREAM_ROUTE_TYPE_MANUAL) {
/* check if the manual route info. is set when it comes to the manual route type */
int ret = MM_ERROR_NONE;
int i = 0;
- SM_INSTANCE_CHECK(virtual_stream);
- SM_STATE_CHECK(virtual_stream, _VSTREAM_STATE_RUNNING);
+ SM_INSTANCE_CHECK_FOR_PRIV(virtual_stream);
+ SM_STATE_CHECK_FOR_PRIV(virtual_stream, _VSTREAM_STATE_RUNNING);
/* LOCK the pa_threaded_mainloop */
pa_threaded_mainloop_lock(virtual_stream->pa_mainloop);