Beispiel #1
0
/** Generate RTSP header field */
static apr_size_t rtsp_header_field_generate(rtsp_header_t *header, apr_size_t id, apt_text_stream_t *value)
{
    switch(id) {
    case RTSP_HEADER_FIELD_CSEQ:
        apt_size_value_generate(header->cseq,value);
        break;
    case RTSP_HEADER_FIELD_TRANSPORT:
        rtsp_transport_generate(&header->transport,value);
        break;
    case RTSP_HEADER_FIELD_SESSION_ID:
        apt_string_value_generate(&header->session_id,value);
        break;
    case RTSP_HEADER_FIELD_RTP_INFO:
        apt_string_value_generate(&header->rtp_info,value);
        break;
    case RTSP_HEADER_FIELD_CONTENT_TYPE:
    {
        const apt_str_t *name = apt_string_table_str_get(rtsp_content_type_string_table,RTSP_CONTENT_TYPE_COUNT,header->content_type);
        if(name) {
            apt_string_value_generate(name,value);
        }
        break;
    }
    case RTSP_HEADER_FIELD_CONTENT_LENGTH:
        apt_size_value_generate(header->content_length,value);
        break;
    default:
        break;
    }
    return TRUE;
}
/** Generate generic-header */
static apt_bool_t mrcp_generic_header_generate(mrcp_header_accessor_t *accessor, size_t id, apt_text_stream_t *value)
{
	mrcp_generic_header_t *generic_header = accessor->data;
	switch(id) {
		case GENERIC_HEADER_ACTIVE_REQUEST_ID_LIST:
			mrcp_request_id_list_generate(&generic_header->active_request_id_list,value);
			break;
		case GENERIC_HEADER_PROXY_SYNC_ID:
			apt_string_value_generate(&generic_header->proxy_sync_id,value);
			break;
		case GENERIC_HEADER_ACCEPT_CHARSET:
			apt_string_value_generate(&generic_header->accept_charset,value);
			break;
		case GENERIC_HEADER_CONTENT_TYPE:
			apt_string_value_generate(&generic_header->content_type,value);
			break;
		case GENERIC_HEADER_CONTENT_ID:
			apt_string_value_generate(&generic_header->content_id,value);
			break;
		case GENERIC_HEADER_CONTENT_BASE:
			apt_string_value_generate(&generic_header->content_base,value);
			break;
		case GENERIC_HEADER_CONTENT_ENCODING:
			apt_string_value_generate(&generic_header->content_encoding,value);
			break;
		case GENERIC_HEADER_CONTENT_LOCATION:
			apt_string_value_generate(&generic_header->content_location,value);
			break;
		case GENERIC_HEADER_CONTENT_LENGTH:
			apt_size_value_generate(generic_header->content_length,value);
			break;
		case GENERIC_HEADER_CACHE_CONTROL:
			apt_string_value_generate(&generic_header->cache_control,value);
			break;
		case GENERIC_HEADER_LOGGING_TAG:
			apt_string_value_generate(&generic_header->logging_tag,value);
			break;
		case GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS:
			apt_pair_array_generate(generic_header->vendor_specific_params,value);
			break;
		case GENERIC_HEADER_ACCEPT:
			apt_string_value_generate(&generic_header->accept,value);
			break;
		case GENERIC_HEADER_FETCH_TIMEOUT:
			apt_size_value_generate(generic_header->fetch_timeout,value);
			break;
		case GENERIC_HEADER_SET_COOKIE:
			apt_string_value_generate(&generic_header->set_cookie,value);
			break;
		case GENERIC_HEADER_SET_COOKIE2:
			apt_string_value_generate(&generic_header->set_cookie2,value);
			break;
		default:
			break;
	}
	return TRUE;
}
Beispiel #3
0
/** Generate RTSP transport port range */
static apt_bool_t rtsp_port_range_generate(rtsp_transport_attrib_e attrib, const rtsp_port_range_t *port_range, apt_text_stream_t *text_stream)
{
    const apt_str_t *str;
    str = apt_string_table_str_get(rtsp_transport_attrib_string_table,RTSP_TRANSPORT_ATTRIB_COUNT,attrib);
    if(!str) {
        return FALSE;
    }
    apt_string_value_generate(str,text_stream);
    apt_text_char_insert(text_stream,'=');
    apt_size_value_generate(port_range->min,text_stream);
    if(port_range->max > port_range->min) {
        apt_text_char_insert(text_stream,'-');
        apt_size_value_generate(port_range->max,text_stream);
    }
    return TRUE;
}
Beispiel #4
0
/** Generate MRCP version */
static apt_bool_t mrcp_version_generate(mrcp_version_e version, apt_text_stream_t *stream)
{
	memcpy(stream->pos,MRCP_NAME,MRCP_NAME_LENGTH);
	stream->pos += MRCP_NAME_LENGTH;
	*stream->pos++ = MRCP_NAME_VERSION_SEPARATOR;
	apt_size_value_generate(version,stream);
	*stream->pos++ = MRCP_VERSION_MAJOR_MINOR_SEPARATOR;
	*stream->pos++ = '0';
	return TRUE;
}
/** Generate mrcp request-id list */
static apt_bool_t mrcp_request_id_list_generate(mrcp_request_id_list_t *request_id_list, apt_text_stream_t *stream)
{
	size_t i;
	for(i=0; i<request_id_list->count; i++) {
		apt_size_value_generate(request_id_list->ids[i],stream);
		if(i < request_id_list->count-1) {
			*stream->pos++ = ',';
		}
	}
	return TRUE;
}
/** Generate generic-header */
static apt_bool_t mrcp_generic_header_generate(mrcp_header_accessor_t *accessor, size_t id, apt_text_stream_t *value)
{
	mrcp_generic_header_t *generic_header = accessor->data;
	switch(id) {
		case GENERIC_HEADER_ACTIVE_REQUEST_ID_LIST:
			mrcp_request_id_list_generate(&generic_header->active_request_id_list,value);
			break;
		case GENERIC_HEADER_PROXY_SYNC_ID:
			apt_string_value_generate(&generic_header->proxy_sync_id,value);
			break;
		case GENERIC_HEADER_ACCEPT_CHARSET:
			apt_string_value_generate(&generic_header->accept_charset,value);
			break;
		case GENERIC_HEADER_CONTENT_TYPE:
			apt_string_value_generate(&generic_header->content_type,value);
			break;
		case GENERIC_HEADER_CONTENT_ID:
			apt_string_value_generate(&generic_header->content_id,value);
			break;
		case GENERIC_HEADER_CONTENT_BASE:
			apt_string_value_generate(&generic_header->content_base,value);
			break;
		case GENERIC_HEADER_CONTENT_ENCODING:
			apt_string_value_generate(&generic_header->content_encoding,value);
			break;
		case GENERIC_HEADER_CONTENT_LOCATION:
			apt_string_value_generate(&generic_header->content_location,value);
			break;
		case GENERIC_HEADER_CONTENT_LENGTH:
			apt_size_value_generate(generic_header->content_length,value);
			break;
		case GENERIC_HEADER_CACHE_CONTROL:
			apt_string_value_generate(&generic_header->cache_control,value);
			break;
		case GENERIC_HEADER_LOGGING_TAG:
			apt_string_value_generate(&generic_header->logging_tag,value);
			break;
		default:
			break;
	}
	return TRUE;
}
/** Add content part to multipart content */
APT_DECLARE(apt_bool_t) apt_multipart_content_add(apt_multipart_content_t *multipart_content, const apt_str_t *content_type, const apt_str_t *content)
{
	if(!content || !content_type) {
		return FALSE;
	}

	if(multipart_content->hyphens.length + multipart_content->boundary.length + 
		multipart_content->content_type_header.length + content_type->length +
		multipart_content->content_length_header.length + 10 /* max number of digits in content-length */ +
		content->length + 10 /* 5*2 eol */ + multipart_content->stream.pos > multipart_content->stream.end  ) { 
		return FALSE;
	}

	/* insert preceding end-of-line */
	apt_text_eol_insert(&multipart_content->stream);
	/* insert hyphens */
	apt_string_value_generate(&multipart_content->hyphens,&multipart_content->stream);
	/* insert boundary */
	apt_string_value_generate(&multipart_content->boundary,&multipart_content->stream);
	apt_text_eol_insert(&multipart_content->stream);

	/* insert content-type */
	apt_text_header_name_generate(&multipart_content->content_type_header,&multipart_content->stream);
	apt_string_value_generate(content_type,&multipart_content->stream);
	apt_text_eol_insert(&multipart_content->stream);

	/* insert content-lebgth */
	apt_text_header_name_generate(&multipart_content->content_length_header,&multipart_content->stream);
	apt_size_value_generate(content->length,&multipart_content->stream);
	apt_text_eol_insert(&multipart_content->stream);

	/* insert empty line */
	apt_text_eol_insert(&multipart_content->stream);

	/* insert content */
	apt_string_value_generate(content, &multipart_content->stream);
	return TRUE;
}
/** Generate MRCP recognizer header */
static apt_bool_t mrcp_recog_header_generate(const mrcp_recog_header_t *recog_header, apr_size_t id, apt_str_t *value, apr_pool_t *pool)
{
	switch(id) {
		case RECOGNIZER_HEADER_N_BEST_LIST_LENGTH:
			apt_size_value_generate(recog_header->n_best_list_length,value,pool);
			break;
		case RECOGNIZER_HEADER_NO_INPUT_TIMEOUT:
			apt_size_value_generate(recog_header->no_input_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_TIMEOUT:
			apt_size_value_generate(recog_header->recognition_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_WAVEFORM_URI:
			*value = recog_header->waveform_uri;
			break;
		case RECOGNIZER_HEADER_RECOGNIZER_CONTEXT_BLOCK:
			*value = recog_header->recognizer_context_block;
			break;
		case RECOGNIZER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_generate(recog_header->start_input_timers,value,pool);
			break;
		case RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT:
			apt_size_value_generate(recog_header->speech_complete_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT:
			apt_size_value_generate(recog_header->speech_incomplete_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT:
			apt_size_value_generate(recog_header->dtmf_interdigit_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_TIMEOUT:
			apt_size_value_generate(recog_header->dtmf_term_timeout,value,pool);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_CHAR:
			value->length = 1;
			value->buf = apr_palloc(pool,value->length);
			*value->buf	= recog_header->dtmf_term_char;
			break;
		case RECOGNIZER_HEADER_FAILED_URI:
			*value = recog_header->failed_uri;
			break;
		case RECOGNIZER_HEADER_FAILED_URI_CAUSE:
			*value = recog_header->failed_uri_cause;
			break;
		case RECOGNIZER_HEADER_SAVE_WAVEFORM:
			apt_boolean_value_generate(recog_header->save_waveform,value,pool);
			break;
		case RECOGNIZER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_generate(recog_header->new_audio_channel,value,pool);
			break;
		case RECOGNIZER_HEADER_SPEECH_LANGUAGE:
			*value = recog_header->speech_language;
			break;
		case RECOGNIZER_HEADER_INPUT_TYPE:
			*value = recog_header->input_type;
			break;
		case RECOGNIZER_HEADER_INPUT_WAVEFORM_URI:
			*value = recog_header->input_waveform_uri;
			break;
		case RECOGNIZER_HEADER_COMPLETION_REASON:
			*value = recog_header->completion_reason;
			break;
		case RECOGNIZER_HEADER_MEDIA_TYPE:
			*value = recog_header->media_type;
			break;
		case RECOGNIZER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_generate(recog_header->ver_buffer_utterance,value,pool);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_MODE:
			*value = recog_header->recognition_mode;
			break;
		case RECOGNIZER_HEADER_CANCEL_IF_QUEUE:
			apt_boolean_value_generate(recog_header->cancel_if_queue,value,pool);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MAX_DURATION:
			apt_size_value_generate(recog_header->hotword_max_duration,value,pool);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MIN_DURATION:
			apt_size_value_generate(recog_header->hotword_min_duration,value,pool);
			break;
		case RECOGNIZER_HEADER_INTERPRET_TEXT:
			*value = recog_header->interpret_text;
			break;
		case RECOGNIZER_HEADER_DTMF_BUFFER_TIME:
			apt_size_value_generate(recog_header->dtmf_buffer_time,value,pool);
			break;
		case RECOGNIZER_HEADER_CLEAR_DTMF_BUFFER:
			apt_boolean_value_generate(recog_header->clear_dtmf_buffer,value,pool);
			break;
		case RECOGNIZER_HEADER_EARLY_NO_MATCH:
			apt_boolean_value_generate(recog_header->early_no_match,value,pool);
			break;
		case RECOGNIZER_HEADER_NUM_MIN_CONSISTENT_PRONUNCIATIONS:
			apt_size_value_generate(recog_header->num_min_consistent_pronunciations,value,pool);
			break;
		case RECOGNIZER_HEADER_CONSISTENCY_THRESHOLD:
			apt_float_value_generate(recog_header->consistency_threshold,value,pool);
			break;
		case RECOGNIZER_HEADER_CLASH_THRESHOLD:
			apt_float_value_generate(recog_header->clash_threshold,value,pool);
			break;
		case RECOGNIZER_HEADER_PERSONAL_GRAMMAR_URI:
			*value = recog_header->personal_grammar_uri;
			break;
		case RECOGNIZER_HEADER_ENROLL_UTTERANCE:
			apt_boolean_value_generate(recog_header->enroll_utterance,value,pool);
			break;
		case RECOGNIZER_HEADER_PHRASE_ID:
			*value = recog_header->phrase_id;
			break;
		case RECOGNIZER_HEADER_PHRASE_NL:
			*value = recog_header->phrase_nl;
			break;
		case RECOGNIZER_HEADER_WEIGHT:
			apt_float_value_generate(recog_header->weight,value,pool);
			break;
		case RECOGNIZER_HEADER_SAVE_BEST_WAVEFORM:
			apt_boolean_value_generate(recog_header->save_best_waveform,value,pool);
			break;
		case RECOGNIZER_HEADER_NEW_PHRASE_ID:
			*value = recog_header->new_phrase_id;
			break;
		case RECOGNIZER_HEADER_CONFUSABLE_PHRASES_URI:
			*value = recog_header->confusable_phrases_uri;
			break;
		case RECOGNIZER_HEADER_ABORT_PHRASE_ENROLLMENT:
			apt_boolean_value_generate(recog_header->abort_phrase_enrollment,value,pool);
			break;
		default:
			break;
	}
	return TRUE;
}
static APR_INLINE apt_bool_t apt_size_value_generate_from_float(float value, apt_str_t *str, apr_pool_t *pool)
{
	apr_size_t s = (apr_size_t)((value + 0.001f) * 100);
	return apt_size_value_generate(s,str,pool);
}
/** Generate MRCP recorder header */
static apt_bool_t mrcp_recorder_header_generate(const mrcp_header_accessor_t *accessor, apr_size_t id, apt_str_t *value, apr_pool_t *pool)
{
	mrcp_recorder_header_t *recorder_header = accessor->data;
	switch(id) {
		case RECORDER_HEADER_SENSITIVITY_LEVEL:
			apt_float_value_generate(recorder_header->sensitivity_level,value,pool);
			break;
		case RECORDER_HEADER_NO_INPUT_TIMEOUT:
			apt_size_value_generate(recorder_header->no_input_timeout,value,pool);
			break;
		case RECORDER_HEADER_COMPLETION_CAUSE:
		{
			apt_completion_cause_generate(
				completion_cause_string_table,
				RECORDER_COMPLETION_CAUSE_COUNT,
				recorder_header->completion_cause,
				value,
				pool);
			break;
		}
		case RECORDER_HEADER_COMPLETION_REASON:
			*value = recorder_header->completion_reason;
			break;
		case RECORDER_HEADER_FAILED_URI:
			*value = recorder_header->failed_uri;
			break;
		case RECORDER_HEADER_FAILED_URI_CAUSE:
			*value = recorder_header->failed_uri_cause;
			break;
		case RECORDER_HEADER_RECORD_URI:
			*value = recorder_header->record_uri;
			break;
		case RECORDER_HEADER_MEDIA_TYPE:
			*value = recorder_header->media_type;
			break;
		case RECORDER_HEADER_MAX_TIME:
			apt_size_value_generate(recorder_header->max_time,value,pool);
			break;
		case RECORDER_HEADER_TRIM_LENGTH:
			apt_size_value_generate(recorder_header->trim_length,value,pool);
			break;
		case RECORDER_HEADER_FINAL_SILENCE:
			apt_size_value_generate(recorder_header->final_silence,value,pool);
			break;
		case RECORDER_HEADER_CAPTURE_ON_SPEECH:
			apt_boolean_value_generate(recorder_header->capture_on_speech,value,pool);
			break;
		case RECORDER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_generate(recorder_header->ver_buffer_utterance,value,pool);
			break;
		case RECORDER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_generate(recorder_header->start_input_timers,value,pool);
			break;
		case RECORDER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_generate(recorder_header->new_audio_channel,value,pool);
			break;
		default:
			break;
	}
	return TRUE;
}
Beispiel #11
0
/** Generate MRCP status-code */
static APR_INLINE size_t  mrcp_status_code_generate(mrcp_status_code_e status_code, apt_text_stream_t *stream)
{
	return apt_size_value_generate(status_code,stream);
}
Beispiel #12
0
/** Generate MRCP request-id */
static APR_INLINE apt_bool_t mrcp_request_id_generate(mrcp_request_id request_id, apt_text_stream_t *stream)
{
	return apt_size_value_generate(request_id,stream);
}
Beispiel #13
0
/** Generate MRCP recognizer header */
static apt_bool_t mrcp_recog_header_generate(mrcp_recog_header_t *recog_header, apr_size_t id, apt_text_stream_t *value)
{
	switch(id) {
		case RECOGNIZER_HEADER_N_BEST_LIST_LENGTH:
			apt_size_value_generate(recog_header->n_best_list_length,value);
			break;
		case RECOGNIZER_HEADER_NO_INPUT_TIMEOUT:
			apt_size_value_generate(recog_header->no_input_timeout,value);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_TIMEOUT:
			apt_size_value_generate(recog_header->recognition_timeout,value);
			break;
		case RECOGNIZER_HEADER_WAVEFORM_URI:
			apt_string_value_generate(&recog_header->waveform_uri,value);
			break;
		case RECOGNIZER_HEADER_RECOGNIZER_CONTEXT_BLOCK:
			apt_string_value_generate(&recog_header->recognizer_context_block,value);
			break;
		case RECOGNIZER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_generate(recog_header->start_input_timers,value);
			break;
		case RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT:
			apt_size_value_generate(recog_header->speech_complete_timeout,value);
			break;
		case RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT:
			apt_size_value_generate(recog_header->speech_incomplete_timeout,value);
			break;
		case RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT:
			apt_size_value_generate(recog_header->dtmf_interdigit_timeout,value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_TIMEOUT:
			apt_size_value_generate(recog_header->dtmf_term_timeout,value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_CHAR:
			*value->pos++ = recog_header->dtmf_term_char;
			break;
		case RECOGNIZER_HEADER_FAILED_URI:
			apt_string_value_generate(&recog_header->failed_uri,value);
			break;
		case RECOGNIZER_HEADER_FAILED_URI_CAUSE:
			apt_string_value_generate(&recog_header->failed_uri_cause,value);
			break;
		case RECOGNIZER_HEADER_SAVE_WAVEFORM:
			apt_boolean_value_generate(recog_header->save_waveform,value);
			break;
		case RECOGNIZER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_generate(recog_header->new_audio_channel,value);
			break;
		case RECOGNIZER_HEADER_SPEECH_LANGUAGE:
			apt_string_value_generate(&recog_header->speech_language,value);
			break;
		case RECOGNIZER_HEADER_INPUT_TYPE:
			apt_string_value_generate(&recog_header->input_type,value);
			break;
		case RECOGNIZER_HEADER_INPUT_WAVEFORM_URI:
			apt_string_value_generate(&recog_header->input_waveform_uri,value);
			break;
		case RECOGNIZER_HEADER_COMPLETION_REASON:
			apt_string_value_generate(&recog_header->completion_reason,value);
			break;
		case RECOGNIZER_HEADER_MEDIA_TYPE:
			apt_string_value_generate(&recog_header->media_type,value);
			break;
		case RECOGNIZER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_generate(recog_header->ver_buffer_utterance,value);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_MODE:
			apt_string_value_generate(&recog_header->recognition_mode,value);
			break;
		case RECOGNIZER_HEADER_CANCEL_IF_QUEUE:
			apt_boolean_value_generate(recog_header->cancel_if_queue,value);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MAX_DURATION:
			apt_size_value_generate(recog_header->hotword_max_duration,value);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MIN_DURATION:
			apt_size_value_generate(recog_header->hotword_min_duration,value);
			break;
		case RECOGNIZER_HEADER_INTERPRET_TEXT:
			apt_string_value_generate(&recog_header->interpret_text,value);
			break;
		case RECOGNIZER_HEADER_DTMF_BUFFER_TIME:
			apt_size_value_generate(recog_header->dtmf_buffer_time,value);
			break;
		case RECOGNIZER_HEADER_CLEAR_DTMF_BUFFER:
			apt_boolean_value_generate(recog_header->clear_dtmf_buffer,value);
			break;
		case RECOGNIZER_HEADER_EARLY_NO_MATCH:
			apt_boolean_value_generate(recog_header->early_no_match,value);
			break;
		default:
			break;
	}
	return TRUE;
}
/** Generate MRCP synthesizer header */
static apt_bool_t mrcp_synth_header_generate(const mrcp_header_accessor_t *accessor, size_t id, apt_str_t *value, apr_pool_t *pool)
{
	mrcp_synth_header_t *synth_header = accessor->data;
	switch(id) {
		case SYNTHESIZER_HEADER_JUMP_SIZE:
			mrcp_speech_length_generate(&synth_header->jump_size,value,pool);
			break;
		case SYNTHESIZER_HEADER_KILL_ON_BARGE_IN:
			apt_boolean_value_generate(synth_header->kill_on_barge_in,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEAKER_PROFILE:
			*value = synth_header->speaker_profile,value;
			break;
		case SYNTHESIZER_HEADER_COMPLETION_CAUSE:
			apt_completion_cause_generate(
				completion_cause_string_table,
				SYNTHESIZER_COMPLETION_CAUSE_COUNT,
				synth_header->completion_cause,
				value,
				pool);
			break;
		case SYNTHESIZER_HEADER_COMPLETION_REASON:
			*value = synth_header->completion_reason;
			break;
		case SYNTHESIZER_HEADER_VOICE_GENDER:
			apt_string_table_value_pgenerate(
				voice_gender_string_table,
				VOICE_GENDER_COUNT,
				synth_header->voice_param.gender,
				value,
				pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_AGE:
			apt_size_value_generate(synth_header->voice_param.age,value,pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_VARIANT:
			apt_size_value_generate(synth_header->voice_param.variant,value,pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_NAME:
			*value = synth_header->voice_param.name,value;
			break;
		case SYNTHESIZER_HEADER_PROSODY_VOLUME:
			mrcp_prosody_volume_generate(&synth_header->prosody_param.volume,value,pool);
			break;
		case SYNTHESIZER_HEADER_PROSODY_RATE:
			mrcp_prosody_rate_generate(&synth_header->prosody_param.rate,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEECH_MARKER:
			*value = synth_header->speech_marker;
			break;
		case SYNTHESIZER_HEADER_SPEECH_LANGUAGE:
			*value = synth_header->speech_language;
			break;
		case SYNTHESIZER_HEADER_FETCH_HINT:
			*value = synth_header->fetch_hint;
			break;
		case SYNTHESIZER_HEADER_AUDIO_FETCH_HINT:
			*value = synth_header->audio_fetch_hint;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI:
			*value = synth_header->failed_uri;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI_CAUSE:
			*value = synth_header->failed_uri_cause;
			break;
		case SYNTHESIZER_HEADER_SPEAK_RESTART:
			apt_boolean_value_generate(synth_header->speak_restart,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEAK_LENGTH:
			mrcp_speech_length_generate(&synth_header->speak_length,value,pool);
			break;
		case SYNTHESIZER_HEADER_LOAD_LEXICON:
			apt_boolean_value_generate(synth_header->load_lexicon,value,pool);
			break;
		case SYNTHESIZER_HEADER_LEXICON_SEARCH_ORDER:
			*value = synth_header->lexicon_search_order;
			break;
		default:
			break;
	}
	return TRUE;
}