+ else if( p_sys->i_box_type == BOX_META )
+ {
+ /* Meta data box */
+ int l = 0;
+
+ int i_len = strlen( VLC_META_INFO_CAT );
+ char psz_title[i_len + 3];
+ psz_title[0] = ' ';
+ psz_title[1] = '\0';
+ strcat( &psz_title[1], VLC_META_INFO_CAT );
+ psz_title[i_len + 1] = ' ';
+ psz_title[i_len + 2] = '\0';
+ DrawBox( p_sys->w, y++, 0, h, COLS, psz_title );
+
+ if( p_input )
+ {
+ int i;
+ input_item_t *p_item = input_GetItem( p_input );
+ vlc_mutex_lock( &p_item->lock );
+ for( i=0; i<VLC_META_TYPE_COUNT; i++ )
+ {
+ if( y >= y_end ) break;
+ char *psz_meta = p_item->p_meta->ppsz_meta[i];
+ if( psz_meta && *psz_meta )
+ {
+ const char *psz_meta_title;
+ switch( i )
+ {
+ case 0:
+ psz_meta_title = VLC_META_TITLE; break;
+ case 1:
+ psz_meta_title = VLC_META_ARTIST; break;
+ case 2:
+ psz_meta_title = VLC_META_GENRE ; break;
+ case 3:
+ psz_meta_title = VLC_META_COPYRIGHT; break;
+ case 4:
+ psz_meta_title = VLC_META_COLLECTION; break;
+ case 5:
+ psz_meta_title = VLC_META_SEQ_NUM; break;
+ case 6:
+ psz_meta_title = VLC_META_DESCRIPTION; break;
+ case 7:
+ psz_meta_title = VLC_META_RATING; break;
+ case 8:
+ psz_meta_title = VLC_META_DATE; break;
+ case 9:
+ psz_meta_title = VLC_META_SETTING; break;
+ case 10:
+ psz_meta_title = VLC_META_URL; break;
+ case 11:
+ psz_meta_title = VLC_META_LANGUAGE; break;
+ case 12:
+ psz_meta_title = VLC_META_NOW_PLAYING; break;
+ case 13:
+ psz_meta_title = VLC_META_PUBLISHER; break;
+ case 14:
+ psz_meta_title = VLC_META_ENCODED_BY; break;
+ case 15:
+ psz_meta_title = VLC_META_ART_URL; break;
+ case 16:
+ psz_meta_title = VLC_META_TRACKID; break;
+ default:
+ psz_meta_title = ""; break;
+ }
+ MainBoxWrite( p_intf, l++, 1, " [%s]", psz_meta_title );
+ MainBoxWrite( p_intf, l++, 1, " %s", psz_meta );
+ }
+ }
+ vlc_mutex_unlock( &p_item->lock );
+ }
+ else
+ {
+ MainBoxWrite( p_intf, l++, 1, "No item currently playing" );
+ }
+ p_sys->i_box_lines_total = l;
+ if( p_sys->i_box_start >= p_sys->i_box_lines_total )
+ {
+ p_sys->i_box_start = p_sys->i_box_lines_total - 1;
+ }
+
+ if( l - p_sys->i_box_start < p_sys->i_box_lines )
+ {
+ y += l - p_sys->i_box_start;
+ }
+ else
+ {
+ y += p_sys->i_box_lines;
+ }
+ }