Example #1
0
void var_buffer_addUTF16( var_buffer_t *p_buf, const char *p_str )
{
    unsigned int i;
    if( !p_str )
    {
        var_buffer_add16( p_buf, 0 );
    }
    else
    {
        vlc_iconv_t iconv_handle;
        size_t i_in = strlen( p_str );
        size_t i_out = i_in * 4;
        char *psz_out, *psz_tmp;

        psz_out = psz_tmp = malloc( i_out + 1 );
        iconv_handle = vlc_iconv_open( "UTF-16LE", "UTF-8" );
        vlc_iconv( iconv_handle, &p_str, &i_in, &psz_tmp, &i_out );
        vlc_iconv_close( iconv_handle );
        psz_tmp[0] = '\0';
        psz_tmp[1] = '\0';

        for( i = 0; ; i += 2 )
        {
            uint16_t v = GetWLE( &psz_out[i] );
            var_buffer_add16( p_buf, v );
            if( !v )
                break;
        }
        free( psz_out );
    }
}
Example #2
0
void var_buffer_addUTF16( var_buffer_t *p_buf, char *p_str )
{
    unsigned int i;
    if( !p_str )
    {
        var_buffer_add16( p_buf, 0 );
    }
    else
    {
        for( i = 0; i < strlen( p_str ) + 1; i++ ) // and 0
        {
            var_buffer_add16( p_buf, p_str[i] );
        }
    }
}
Example #3
0
void var_buffer_add32( var_buffer_t *p_buf, uint32_t i_dword )
{
    var_buffer_add16( p_buf, i_dword&0xffff );
    var_buffer_add16( p_buf, ( i_dword >> 16 )&0xffff );
}