Changeset aaf50f16cfb838418703d90ee3e62bd0e649b978

Show
Ignore:
Timestamp:
15/01/08 11:40:47 (11 months ago)
Author:
Rafaël Carré <funman@videolan.org>
git-committer:
Rafaël Carré <funman@videolan.org> 1200393647 +0000
git-parent:

[ab8ac15710d38ae627b8269436470205b908fcb8]

git-author:
Rafaël Carré <funman@videolan.org> 1200393647 +0000
Message:

ncurses: new box representing the vlc objects hierarchy (similar to rc's "tree" command)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/gui/ncurses.c

    r9bd7b37 raaf50f1  
    137137    BOX_OPEN, 
    138138    BOX_BROWSE, 
    139     BOX_META 
     139    BOX_META, 
     140    BOX_OBJECTS 
    140141}; 
    141142enum 
     
    807808    } 
    808809    else if( p_sys->i_box_type == BOX_HELP || p_sys->i_box_type == BOX_INFO || 
    809              p_sys->i_box_type == BOX_META
     810             p_sys->i_box_type == BOX_META || p_sys->i_box_type == BOX_OBJECTS
    810811    { 
    811812        switch( i_key ) 
     
    10691070                p_sys->i_box_type = BOX_BROWSE; 
    10701071            return 1; 
     1072        case 'x': 
     1073            if( p_sys->i_box_type == BOX_OBJECTS ) 
     1074                p_sys->i_box_type = BOX_NONE; 
     1075            else 
     1076                p_sys->i_box_type = BOX_OBJECTS; 
     1077            return 1; 
    10711078        case 'c': 
    10721079            p_sys->b_color = !p_sys->b_color; 
     
    14531460} 
    14541461 
     1462static void DumpObject( intf_thread_t *p_intf, int *l, vlc_object_t *p_obj, int i_level ) 
     1463{ 
     1464    vlc_object_yield( p_obj ); 
     1465 
     1466    if( p_obj->psz_object_name ) 
     1467        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s \"%s\" (%d)", 
     1468                p_obj->psz_object_type, p_obj->psz_object_name, 
     1469                p_obj->i_object_id ); 
     1470    else 
     1471        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s (%d)", 
     1472                p_obj->psz_object_type, p_obj->i_object_id ); 
     1473    int i; 
     1474    for( i = 0; i < p_obj->i_children ; i++ ) 
     1475    { 
     1476        MainBoxWrite( p_intf, *l, 1 + 2 * i_level,  
     1477            i == p_obj->i_children - 1 ? "`-" : "|-" ); 
     1478        DumpObject( p_intf, l, p_obj->pp_children[i], i_level + 1 ); 
     1479    } 
     1480 
     1481    vlc_object_release( p_obj ); 
     1482} 
     1483 
    14551484static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh ) 
    14561485{ 
     
    16051634        MainBoxWrite( p_intf, l++, 1, _("     P           Show/Hide playlist box") ); 
    16061635        MainBoxWrite( p_intf, l++, 1, _("     B           Show/Hide filebrowser") ); 
     1636        MainBoxWrite( p_intf, l++, 1, _("     x           Show/Hide objects box") ); 
    16071637        MainBoxWrite( p_intf, l++, 1, _("     c           Switch color on/off") ); 
    16081638        MainBoxWrite( p_intf, l++, 1, _("     Esc         Close Add/Search entry") ); 
     
    19361966 
    19371967    } 
     1968    else if( p_sys->i_box_type == BOX_OBJECTS ) 
     1969    { 
     1970        int l = 0; 
     1971        DrawBox( p_sys->w, y++, 0, h, COLS, _(" Objects "), p_sys->b_color ); 
     1972        DumpObject( p_intf, &l, VLC_OBJECT( p_intf->p_libvlc ), 0 ); 
     1973 
     1974        p_sys->i_box_lines_total = l; 
     1975        if( p_sys->i_box_start >= p_sys->i_box_lines_total ) 
     1976            p_sys->i_box_start = p_sys->i_box_lines_total - 1; 
     1977 
     1978        if( l - p_sys->i_box_start < p_sys->i_box_lines ) 
     1979            y += l - p_sys->i_box_start; 
     1980        else 
     1981            y += p_sys->i_box_lines; 
     1982    } 
    19381983    else if( p_sys->i_box_type == BOX_PLAYLIST || 
    19391984               p_sys->i_box_type == BOX_SEARCH ||