x_count--; \
} \
-#define SM_STRNCPY(dst,src,size,err) \
-do { \
- if(src != NULL && dst != NULL && size > 0) { \
- strncpy(dst,src,size); \
- dst[size-1] = '\0'; \
- } else if(dst == NULL) { \
- LOGE("STRNCPY ERROR: Destination String is NULL\n"); \
- err = MM_ERROR_SOUND_INTERNAL; \
- } else if(size <= 0) { \
- LOGE("STRNCPY ERROR: Destination String is NULL\n"); \
- err = MM_ERROR_SOUND_INTERNAL; \
- } else { \
- LOGE("STRNCPY ERROR: Destination String is NULL\n"); \
- err = MM_ERROR_SOUND_INTERNAL; \
- } \
-} while(0)
-
#define SOUND_SESSION_TYPE_DEFAULT SOUND_SESSION_TYPE_MEDIA
#define SOUND_STREAM_INFO_ARR_MAX 128
#define SOUND_STREAM_TYPE_LEN 64
typedef struct _sound_stream_info_s {
unsigned int index;
- char stream_type[SOUND_STREAM_TYPE_LEN];
+ char *stream_type;
pa_threaded_mainloop *pa_mainloop;
pa_context *pa_context;
stream_conf_info_s stream_conf_info;
typedef struct _virtual_stream_info_s {
_vstream_state state;
- char stream_type[SOUND_STREAM_TYPE_LEN];
+ char *stream_type;
pa_threaded_mainloop *pa_mainloop;
pa_context *pa_context;
pa_stream *pa_stream[SOUND_STREAM_DIRECTION_MAX];
int __find_empty_slot (int *index);
-int __convert_stream_type (sound_stream_type_e enum_type, char *stream_type);
+int __convert_stream_type (sound_stream_type_e enum_type, char **stream_type);
-int __convert_stream_type_for_internal (sound_stream_type_internal_e stream_type_enum, char *stream_type);
+int __convert_stream_type_for_internal (sound_stream_type_internal_e stream_type_enum, char **stream_type);
int __convert_stream_type_to_change_reason (const char *stream_type, sound_stream_focus_change_reason_e *change_reason);
ret = MM_ERROR_OUT_OF_MEMORY;
} else {
memset(stream_h, 0, sizeof(sound_stream_info_s));
- ret = __convert_stream_type_for_internal(stream_type, stream_h->stream_type);
+ ret = __convert_stream_type_for_internal(stream_type, &stream_h->stream_type);
if (ret == MM_ERROR_NONE) {
ret = _make_pa_connection_and_register_focus(stream_h, callback, user_data);
if (!ret) {
ret = MM_ERROR_OUT_OF_MEMORY;
} else {
memset(vstream_h, 0, sizeof(virtual_sound_stream_info_s));
- memcpy(vstream_h->stream_type, stream_h->stream_type, SOUND_STREAM_TYPE_LEN);
+ vstream_h->stream_type = stream_h->stream_type;
vstream_h->pa_mainloop = stream_h->pa_mainloop;
vstream_h->pa_context = stream_h->pa_context;
vstream_h->pa_proplist = pa_proplist_new();
return ret;
}
-int __convert_stream_type (sound_stream_type_e stream_type_enum, char *stream_type)
+int __convert_stream_type (sound_stream_type_e stream_type_enum, char **stream_type)
{
int ret = MM_ERROR_NONE;
switch (stream_type_enum) {
case SOUND_STREAM_TYPE_MEDIA:
- SM_STRNCPY(stream_type,"media",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "media";
break;
case SOUND_STREAM_TYPE_SYSTEM:
- SM_STRNCPY(stream_type,"system",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "system";
break;
case SOUND_STREAM_TYPE_ALARM:
- SM_STRNCPY(stream_type,"alarm",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "alarm";
break;
case SOUND_STREAM_TYPE_NOTIFICATION:
- SM_STRNCPY(stream_type,"notification",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "notification";
break;
case SOUND_STREAM_TYPE_EMERGENCY:
- SM_STRNCPY(stream_type,"emergency",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "emergency";
break;
case SOUND_STREAM_TYPE_VOICE_INFORMATION:
- SM_STRNCPY(stream_type,"voice-information",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "voice-information";
break;
case SOUND_STREAM_TYPE_VOICE_RECOGNITION:
- SM_STRNCPY(stream_type,"voice-recognition",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "voice-recognition";
break;
case SOUND_STREAM_TYPE_RINGTONE_VOIP:
- SM_STRNCPY(stream_type,"ringtone-voip",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "ringtone-voip";
break;
case SOUND_STREAM_TYPE_VOIP:
- SM_STRNCPY(stream_type,"voip",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "voip";
break;
default:
LOGE("could not find the stream_type[%d] in this switch case statement", stream_type_enum);
return ret;
}
-int __convert_stream_type_for_internal (sound_stream_type_internal_e stream_type_enum, char *stream_type)
+int __convert_stream_type_for_internal (sound_stream_type_internal_e stream_type_enum, char **stream_type)
{
int ret = MM_ERROR_NONE;
switch (stream_type_enum) {
case SOUND_STREAM_TYPE_RINGTONE_CALL:
- SM_STRNCPY(stream_type,"ringtone-call",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "ringtone-call";
break;
case SOUND_STREAM_TYPE_VOICE_CALL:
- SM_STRNCPY(stream_type,"call-voice",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "call-voice";
break;
case SOUND_STREAM_TYPE_VIDEO_CALL:
- SM_STRNCPY(stream_type,"call-video",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "call-video";
break;
case SOUND_STREAM_TYPE_RADIO:
- SM_STRNCPY(stream_type,"radio",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "radio";
break;
case SOUND_STREAM_TYPE_LOOPBACK:
- SM_STRNCPY(stream_type,"loopback",SOUND_STREAM_TYPE_LEN,ret);
+ *stream_type = "loopback";
break;
default:
LOGE("could not find the stream_type[%d] in this switch case statement", stream_type_enum);
*volume_type = "voice";
break;
}
- if (!strncmp(*volume_type,"",SOUND_DEVICE_TYPE_LEN)) {
- LOGE("could not find the sound_type[%d] in this switch case statement", sound_type);
- ret = MM_ERROR_SOUND_INTERNAL;
- } else {
- LOGI("volume_type[%s]", *volume_type);
- }
+ LOGI("volume_type[%s]", *volume_type);
+
return ret;
}
case NATIVE_API_AUDIO_IO:
name = "audio-io";
break;
- case NATIVE_API_RECORDER:
- name = "recorder";
- break;
}
return name;
}