Esempio n. 1
0
/*****************************************************************************
 * FUNCTION
 *  daf_seek
 * DESCRIPTION
 *  
 * PARAMETERS
 *  input_stream        [?]     
 *  offset              [?]     
 *  aud_info_struct *info_p(?)
 * RETURNS
 *  kal_bool
 *****************************************************************************/
kal_bool daf_seek(audio_input_stream_struct *input_stream, kal_uint32 *offset)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 v2_tag_size;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (*offset == 0)
    {
        /* skip id3v2 tag */
        if (audio_input_stream_read(input_stream, 10) != 10)
        {
            return KAL_FALSE;
        }
        if ((v2_tag_size = id3_tag_parse_v2_tag_size(input_stream->ptr)) > 0)
        {
            *offset = v2_tag_size;
        }
    }
    audio_input_stream_seek(input_stream, (kal_int32) * offset);
    if (!daf_parse(input_stream, offset, NULL))
    {
        return KAL_FALSE;
    }
    audio_input_stream_seek(input_stream, (kal_int32) * offset);
    return KAL_TRUE;
}
Esempio n. 2
0
/*****************************************************************************
* FUNCTION
*     daf_seek
* DESCRIPTION
*     
* IMPACT 
*     
* PARAMETERS
*     aud_info_struct *info_p
*     kal_uint32* offset
* RETURNS
*     kal_bool
* GLOBALS AFFECTED
*     
*****************************************************************************/
kal_bool daf_seek( audio_input_stream_struct *input_stream, kal_uint32* offset )
{
	kal_int32 v2_tag_size;
	
	if( *offset == 0 )
	{
		// skip id3v2 tag
		if( audio_input_stream_read( input_stream, 10 ) != 10 )
			return KAL_FALSE;
		if( ( v2_tag_size = id3_tag_parse_v2_tag_size( input_stream->ptr )) > 0 )
			*offset = v2_tag_size;
	}
	audio_input_stream_seek( input_stream, (kal_int32) *offset );
	if( !daf_parse( input_stream, offset, NULL ) )
		return KAL_FALSE;
	audio_input_stream_seek( input_stream, (kal_int32) *offset );
	return KAL_TRUE;
}