Changeset 0fee43a45c5c05c42ca8da004fc15eba9442970b

Show
Ignore:
Timestamp:
04/03/01 05:39:41 (7 years ago)
Author:
Stéphane Borel <stef@videolan.org>
git-committer:
Stéphane Borel <stef@videolan.org> 986269181 +0000
git-parent:

[8ccd224ce68ba37052c2dfff1d8a34b2c12d32ae]

git-author:
Stéphane Borel <stef@videolan.org> 986269181 +0000
Message:

-Fall back to one-packet-once reading in dvd input since multi-block
seems to have a bug that make the vlc crash on title/audio/spu change. I
hope that this bug will be fixed soon for the performance is poorer now

-add-ons and changes in gnome interface:

*menu subdivision is done only if there are over 20 items,
*in DVD mode next/prev apply to title,
*in DVD mode, added a box with button to navigate through

chapters.

This has not been finished yet (and it is not in gtk plugin then). And I
think I will leave toolbar next/prev buttons for playlist and add
button specifically for title change like for chapters.*

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/dvd/input_dvd.c

    r8ccd224 r0fee43a  
    1111 ***************************************************************************** 
    1212 * Copyright (C) 1998-2001 VideoLAN 
    13  * $Id: input_dvd.c,v 1.36 2001/04/02 23:30:41 sam Exp $ 
     13 * $Id: input_dvd.c,v 1.37 2001/04/03 03:39:41 stef Exp $ 
    1414 * 
    1515 * Author: St�ane Borel <stef@via.ecp.fr> 
     
    692692            input_SelectES( p_input, p_input->stream.pp_es[i_spu] ); 
    693693        } 
    694     } // i_title >= 0 
     694    } /* i_title >= 0 */ 
    695695    else 
    696696    { 
     
    748748    p_dvd->i_fd = p_input->i_handle; 
    749749 
    750     p_dvd->i_block_once = 32; 
    751     p_input->i_read_once = 128; 
     750    /* reading several block once seems to cause lock-up 
     751     * when using input_ToggleES 
     752     * who wrote thez damn buggy piece of shit ??? --stef */ 
     753    p_dvd->i_block_once = 1;//32; 
     754    p_input->i_read_once = 4;//128; 
    752755 
    753756    i = CSSTest( p_input->i_handle ); 
     
    767770    /* Reading structures initialisation */ 
    768771    p_input->p_method_data = 
    769         DVDNetlistInit( 8192, 16384, 2048, DVD_LB_SIZE, p_dvd->i_block_once ); 
     772        DVDNetlistInit( 2048, 8192, 2048, DVD_LB_SIZE, p_dvd->i_block_once ); 
    770773    intf_WarnMsg( 2, "dvd info: netlist initialized" ); 
    771774 
  • plugins/gnome/gnome_callbacks.c

    rf6c80a7 r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 2000, 2001 VideoLAN 
    5  * $Id: gnome_callbacks.c,v 1.19 2001/04/01 07:31:38 stef Exp $ 
     5 * $Id: gnome_callbacks.c,v 1.20 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Samuel Hocevar <sam@zoy.org> 
     
    161161 
    162162 
     163void 
     164on_button_chapter_prev_clicked         (GtkButton       *button, 
     165                                        gpointer         user_data) 
     166{ 
     167    intf_thread_t * p_intf; 
     168    input_area_t *  p_area; 
     169 
     170    p_intf = GetIntf( GTK_WIDGET(button), "intf_window" ); 
     171    p_area = p_intf->p_input->stream.p_selected_area; 
     172 
     173    if( p_area->i_part - 1 >= 0 ) 
     174    { 
     175        p_area->i_part--; 
     176        p_intf->p_input->pf_set_area( p_intf->p_input, (input_area_t*)p_area ); 
     177        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); 
     178    } 
     179} 
     180 
     181 
     182void 
     183on_button_chapter_next_clicked         (GtkButton       *button, 
     184                                        gpointer         user_data) 
     185{ 
     186    intf_thread_t * p_intf; 
     187    input_area_t *  p_area; 
     188 
     189    p_intf = GetIntf( GTK_WIDGET(button), "intf_window" ); 
     190    p_area = p_intf->p_input->stream.p_selected_area; 
     191 
     192    if( p_area->i_part + 1 < p_area->i_part_nb ) 
     193    { 
     194        p_area->i_part++; 
     195        p_intf->p_input->pf_set_area( p_intf->p_input, (input_area_t*)p_area ); 
     196        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); 
     197    } 
     198} 
     199 
     200 
    163201/***************************************************************************** 
    164202 * Menubar callbacks 
     
    506544 
    507545 
     546void 
     547on_toolbar_prev_title_clicked         (GtkButton       *button, 
     548                                       gpointer         user_data) 
     549{ 
     550    intf_thread_t * p_intf; 
     551    input_area_t *  p_area; 
     552    int             i_id; 
     553 
     554    p_intf = GetIntf( GTK_WIDGET(button), "intf_window" ); 
     555    i_id = p_intf->p_input->stream.p_selected_area->i_id - 1; 
     556 
     557    if( i_id >= 0 ) 
     558    { 
     559        p_area = p_intf->p_input->stream.pp_areas[i_id]; 
     560        p_intf->p_input->pf_set_area( p_intf->p_input, (input_area_t*)p_area ); 
     561        p_intf->p_sys->b_menus_update = 1; 
     562        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); 
     563    } 
     564} 
     565 
     566 
     567void 
     568on_toolbar_next_title_clicked          (GtkButton       *button, 
     569                                        gpointer         user_data) 
     570{ 
     571    intf_thread_t * p_intf; 
     572    input_area_t *  p_area; 
     573    int             i_id; 
     574 
     575    p_intf = GetIntf( GTK_WIDGET(button), "intf_window" ); 
     576    i_id = p_intf->p_input->stream.p_selected_area->i_id + 1; 
     577 
     578    if( i_id < p_intf->p_input->stream.i_area_nb ) 
     579    { 
     580        p_area = p_intf->p_input->stream.pp_areas[i_id];    
     581        p_intf->p_input->pf_set_area( p_intf->p_input, (input_area_t*)p_area ); 
     582        p_intf->p_sys->b_menus_update = 1; 
     583        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY ); 
     584    } 
     585} 
     586 
     587 
    508588/***************************************************************************** 
    509589 * Popup callbacks 
     
    857937    { 
    858938        psz_method = "dvd"; 
     939        p_intf->p_sys->i_intf_mode = DVD_MODE; 
     940        p_intf->p_sys->b_mode_changed = 1; 
    859941    } 
    860942    else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), 
  • plugins/gnome/gnome_callbacks.h

    r4f551c2 r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 2000, 2001 VideoLAN 
    5  * $Id: gnome_callbacks.h,v 1.12 2001/03/21 13:42:34 sam Exp $ 
     5 * $Id: gnome_callbacks.h,v 1.13 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Samuel Hocevar <sam@zoy.org> 
     
    8888 
    8989void 
     90on_toolbar_prev_title_clicked          (GtkButton       *button, 
     91                                        gpointer         user_data); 
     92 
     93void 
     94on_toolbar_next_title_clicked          (GtkButton       *button, 
     95                                        gpointer         user_data); 
     96 
     97void 
    9098on_popup_play_activate                 (GtkMenuItem     *menuitem, 
    9199                                        gpointer         user_data); 
     
    274282on_menubar_chapter_toggle              (GtkCheckMenuItem     *menuitem, 
    275283                                        gpointer             user_data); 
     284 
     285void 
     286on_button_chapter_prev_clicked         (GtkButton       *button, 
     287                                        gpointer         user_data); 
     288 
     289void 
     290on_button_chapter_next_clicked         (GtkButton       *button, 
     291                                        gpointer         user_data); 
  • plugins/gnome/gnome_interface.c

    r52f0fa6 r0fee43a  
    141141  GtkWidget *label_bar; 
    142142  GtkWidget *slider; 
     143  GtkWidget *dvd_box; 
     144  GtkWidget *label_title; 
     145  GtkWidget *hbox6; 
     146  GtkWidget *button_chapter_prev; 
     147  GtkWidget *label_chapter; 
     148  GtkWidget *button_chapter_next; 
    143149  GtkWidget *appbar; 
     150  GtkTooltips *tooltips; 
     151 
     152  tooltips = gtk_tooltips_new (); 
    144153 
    145154  intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client")); 
     
    463472  gtk_scale_set_digits (GTK_SCALE (slider), 3); 
    464473 
     474  dvd_box = gtk_hbox_new (FALSE, 0); 
     475  gtk_widget_ref (dvd_box); 
     476  gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box, 
     477                            (GtkDestroyNotify) gtk_widget_unref); 
     478  gtk_box_pack_start (GTK_BOX (vbox2), dvd_box, TRUE, TRUE, 0); 
     479 
     480  label_title = gtk_label_new (_("Title:")); 
     481  gtk_widget_ref (label_title); 
     482  gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_title", label_title, 
     483                            (GtkDestroyNotify) gtk_widget_unref); 
     484  gtk_widget_show (label_title); 
     485  gtk_box_pack_start (GTK_BOX (dvd_box), label_title, TRUE, FALSE, 0); 
     486 
     487  hbox6 = gtk_hbox_new (FALSE, 10); 
     488  gtk_widget_ref (hbox6); 
     489  gtk_object_set_data_full (GTK_OBJECT (intf_window), "hbox6", hbox6, 
     490                            (GtkDestroyNotify) gtk_widget_unref); 
     491  gtk_widget_show (hbox6); 
     492  gtk_box_pack_start (GTK_BOX (dvd_box), hbox6, TRUE, FALSE, 0); 
     493 
     494  button_chapter_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV); 
     495  gtk_widget_ref (button_chapter_prev); 
     496  gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev, 
     497                            (GtkDestroyNotify) gtk_widget_unref); 
     498  gtk_widget_show (button_chapter_prev); 
     499  gtk_box_pack_start (GTK_BOX (hbox6), button_chapter_prev, FALSE, FALSE, 0); 
     500  gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL); 
     501  gtk_button_set_relief (GTK_BUTTON (button_chapter_prev), GTK_RELIEF_NONE); 
     502 
     503  label_chapter = gtk_label_new (_("Chapter:   ")); 
     504  gtk_widget_ref (label_chapter); 
     505  gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_chapter", label_chapter, 
     506                            (GtkDestroyNotify) gtk_widget_unref); 
     507  gtk_widget_show (label_chapter); 
     508  gtk_box_pack_start (GTK_BOX (hbox6), label_chapter, FALSE, FALSE, 0); 
     509 
     510  button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT); 
     511  gtk_widget_ref (button_chapter_next); 
     512  gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next, 
     513                            (GtkDestroyNotify) gtk_widget_unref); 
     514  gtk_widget_show (button_chapter_next); 
     515  gtk_box_pack_start (GTK_BOX (hbox6), button_chapter_next, FALSE, FALSE, 0); 
     516  gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL); 
     517  gtk_button_set_relief (GTK_BUTTON (button_chapter_next), GTK_RELIEF_NONE); 
     518 
    465519  appbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER); 
    466520  gtk_widget_ref (appbar); 
     
    519573                      GTK_SIGNAL_FUNC (on_slider_button_release_event), 
    520574                      NULL); 
     575  gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked", 
     576                      GTK_SIGNAL_FUNC (on_button_chapter_prev_clicked), 
     577                      NULL); 
     578  gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked", 
     579                      GTK_SIGNAL_FUNC (on_button_chapter_next_clicked), 
     580                      NULL); 
     581 
     582  gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips); 
    521583 
    522584  return intf_window; 
  • plugins/gnome/intf_gnome.c

    rf6c80a7 r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 1999, 2000 VideoLAN 
    5  * $Id: intf_gnome.c,v 1.24 2001/04/01 07:31:38 stef Exp $ 
     5 * $Id: intf_gnome.c,v 1.25 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Samuel Hocevar <sam@zoy.org> 
     
    5050#include "intf_msg.h" 
    5151#include "interface.h" 
     52#include "intf_playlist.h" 
    5253 
    5354#include "gnome_callbacks.h" 
     
    7576static gint GnomeSetupMenu    ( intf_thread_t * p_intf ); 
    7677static void GnomeDisplayDate  ( GtkAdjustment *p_adj ); 
     78static gint GnomeDVDModeManage( intf_thread_t * p_intf ); 
    7779 
    7880/***************************************************************************** 
     
    150152    p_intf->p_sys->b_slider_free = 1; 
    151153 
     154    p_intf->p_sys->b_mode_changed = 0; 
     155    p_intf->p_sys->i_intf_mode = FILE_MODE; 
     156 
    152157    p_intf->p_sys->pf_gtk_callback = NULL; 
    153158    p_intf->p_sys->pf_gdk_callback = NULL; 
     
    199204    p_intf->p_sys->p_network = create_intf_network( ); 
    200205 
     206    /* Sets the interface mode according to playlist item */ 
     207    if( p_main->p_playlist->p_item != NULL ) 
     208    { 
     209        if( !strncmp( p_main->p_playlist->p_item->psz_name, "dvd:", 4 ) ) 
     210        { 
     211            p_intf->p_sys->i_intf_mode = DVD_MODE; 
     212            p_intf->p_sys->b_mode_changed = 1; 
     213        } 
     214    } 
     215 
    201216    /* Set the title of the main window */ 
    202217    gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window), 
     
    213228    p_intf->p_sys->p_label_date = P_LABEL( "label_date" ); 
    214229    p_intf->p_sys->p_label_status = P_LABEL( "label_status" ); 
     230    p_intf->p_sys->p_label_title = P_LABEL( "label_title" ); 
     231    p_intf->p_sys->p_label_chapter = P_LABEL( "label_chapter" ); 
    215232    #undef P_LABEL 
    216233 
     
    296313        p_intf->b_menu_change = 0; 
    297314    } 
     315 
     316    if( p_intf->p_input != NULL && p_intf->p_sys->p_window != NULL && 
     317        p_intf->p_sys->b_mode_changed ) 
     318    { 
     319        switch( p_intf->p_sys->i_intf_mode ) 
     320        { 
     321            case DVD_MODE: 
     322                GnomeDVDModeManage( p_intf ); 
     323                break; 
     324        } 
     325 
     326        p_intf->p_sys->b_mode_changed = 0; 
     327    } 
     328 
    298329 
    299330    /* Update language/chapter menus after user request */ 
     
    446477                /* don't lose p_item when we append into menu */ 
    447478                p_item_active = p_item; 
    448                 gtk_object_ref( GTK_OBJECT( p_item_active ) ); 
    449479            } 
    450480 
     
    471501        gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), 
    472502                                        TRUE ); 
    473         gtk_object_unref( GTK_OBJECT( p_item_active ) ); 
    474503    } 
    475504 
     
    520549    { 
    521550        /* we group chapters in packets of ten for small screens */ 
    522         if( ( i_chapter % 10 == 0 ) )// && ( i_nb > 20 ) ) 
     551        if( ( i_chapter % 10 == 0 ) && ( i_nb > 20 ) ) 
    523552        { 
    524553            if( i_chapter != 0 ) 
     
    546575        { 
    547576            p_item_selected = p_item; 
    548             gtk_object_ref( GTK_OBJECT( p_item_selected ) ); 
    549577        } 
    550578         
     
    557585                        (gpointer)(i_chapter + 1) ); 
    558586 
    559         gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item ); 
    560     } 
    561  
    562     gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_menu_item ), 
    563                                p_chapter_submenu ); 
    564     gtk_menu_append( GTK_MENU( p_chapter_menu ), p_menu_item ); 
    565  
     587        if( i_nb > 20 ) 
     588        { 
     589            gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item ); 
     590        } 
     591        else 
     592        { 
     593            gtk_menu_append( GTK_MENU( p_chapter_menu ), p_item ); 
     594        } 
     595    } 
     596 
     597    if( i_nb > 20 ) 
     598    { 
     599        gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_menu_item ), 
     600                                   p_chapter_submenu ); 
     601        gtk_menu_append( GTK_MENU( p_chapter_menu ), p_menu_item ); 
     602    } 
    566603 
    567604    /* link the new menu to the title menu item */ 
     
    574611        gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_selected ), 
    575612                                        TRUE ); 
    576         gtk_object_unref( GTK_OBJECT( p_item_selected ) ); 
    577613    } 
    578614 
     
    612648    gint                i_title; 
    613649    gint                i_chapter; 
    614     gint                i_nb; 
     650    gint                i_title_nb; 
     651    gint                i_chapter_nb; 
    615652 
    616653    /* cast */ 
     
    625662    p_chapter_menu_item = NULL; 
    626663    p_item_active = NULL; 
    627     i_nb = p_intf->p_input->stream.i_area_nb; 
     664    i_title_nb = p_intf->p_input->stream.i_area_nb; 
    628665 
    629666    /* loop on titles */ 
    630     for( i_title = 1 ; i_title < i_nb ; i_title++ ) 
     667    for( i_title = 1 ; i_title < i_title_nb ; i_title++ ) 
    631668    { 
    632669        /* we group titles in packets of ten for small screens */ 
    633         if( ( i_title % 10 == 1 ))// && ( i_nb > 20 ) ) 
     670        if( ( i_title % 10 == 1 ) && ( i_title_nb > 20 ) ) 
    634671        { 
    635672            if( i_title != 1 ) 
     
    659696            { 
    660697                p_item_active = p_title_item; 
    661                 gtk_object_ref( GTK_OBJECT( p_item_active ) ); 
    662698            } 
    663699 
     
    679715            p_title_item = gtk_menu_item_new_with_label( psz_name ); 
    680716            p_chapter_menu = gtk_menu_new(); 
     717            i_chapter_nb = 
     718                    p_intf->p_input->stream.pp_areas[i_title]->i_part_nb; 
    681719     
    682             for( i_chapter = 0; 
    683                  i_chapter < 
    684                         p_intf->p_input->stream.pp_areas[i_title]->i_part_nb ; 
    685                  i_chapter++ ) 
     720            for( i_chapter = 0 ; i_chapter < i_chapter_nb ; i_chapter++ ) 
    686721            { 
    687722                /* we group chapters in packets of ten for small screens */ 
    688                 if( ( i_chapter % 10 == 0 ) )// && ( i_nb > 20 ) ) 
     723                if( ( i_chapter % 10 == 0 ) && ( i_chapter_nb > 20 ) ) 
    689724                { 
    690725                    if( i_chapter != 0 ) 
     
    717752                { 
    718753                    p_item_active = p_item; 
    719                     gtk_object_ref( GTK_OBJECT( p_item_active ) ); 
    720754                } 
    721755 
     
    726760                           (gpointer)( ( i_title * 100 ) + ( i_chapter + 1) ) ); 
    727761 
    728                 gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item ); 
     762                if( i_chapter_nb > 20 ) 
     763                { 
     764                    gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item ); 
     765                } 
     766                else 
     767                { 
     768                    gtk_menu_append( GTK_MENU( p_chapter_menu ), p_item ); 
     769                } 
    729770            } 
    730771 
    731             gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_chapter_menu_item ), 
    732                                        p_chapter_submenu ); 
    733             gtk_menu_append( GTK_MENU( p_chapter_menu ), p_chapter_menu_item ); 
     772            if( i_chapter_nb > 20 ) 
     773            { 
     774                gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_chapter_menu_item ), 
     775                                           p_chapter_submenu ); 
     776                gtk_menu_append( GTK_MENU( p_chapter_menu ), 
     777                                 p_chapter_menu_item ); 
     778            } 
    734779 
    735780            /* link the new menu to the title menu item */ 
     
    745790        gtk_widget_show( p_title_item ); 
    746791 
    747         gtk_menu_append( GTK_MENU( p_title_submenu ), p_title_item ); 
    748     } 
    749  
    750     gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ), 
    751                                p_title_submenu ); 
    752     gtk_menu_append( GTK_MENU( p_title_menu ), p_title_menu_item ); 
     792        if( i_title_nb > 20 ) 
     793        { 
     794            gtk_menu_append( GTK_MENU( p_title_submenu ), p_title_item ); 
     795        } 
     796        else 
     797        { 
     798            gtk_menu_append( GTK_MENU( p_title_menu ), p_title_item ); 
     799        } 
     800    } 
     801 
     802    if( i_title_nb > 20 ) 
     803    { 
     804        gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ), 
     805                                   p_title_submenu ); 
     806        gtk_menu_append( GTK_MENU( p_title_menu ), p_title_menu_item ); 
     807    } 
    753808 
    754809    /* be sure that menu is sensitive */ 
     
    762817        gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), 
    763818                                        TRUE ); 
    764         gtk_object_unref( GTK_OBJECT( p_item_active ) ); 
    765819    } 
    766820 
     
    780834    GtkWidget *         p_popup_menu; 
    781835    gint                i; 
    782  
    783     vlc_mutex_lock( &p_intf->p_input->stream.stream_lock ); 
    784836 
    785837    if( p_intf->p_input->stream.i_area_nb > 1 ) 
     
    815867    } 
    816868 
    817     vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock ); 
    818  
    819869    /* audio menus */ 
    820870 
     
    880930 
    881931 
     932/***************************************************************************** 
     933 * GnomeDVDModeManage 
     934 *****************************************************************************/ 
     935static gint GnomeDVDModeManage( intf_thread_t * p_intf ) 
     936{ 
     937    GtkWidget *     p_dvd_box; 
     938    GtkWidget *     p_toolbar_next; 
     939    GtkWidget *     p_toolbar_prev; 
     940 
     941    p_dvd_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( 
     942                 p_intf->p_sys->p_window ), "dvd_box" ) ); 
     943    gtk_widget_show( GTK_WIDGET( p_dvd_box ) ); 
     944 
     945    p_toolbar_next = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( 
     946                 p_intf->p_sys->p_window ), "toolbar_next" ) ); 
     947    gtk_signal_disconnect_by_data( GTK_OBJECT( p_toolbar_next ), NULL ); 
     948    gtk_signal_connect( GTK_OBJECT( p_toolbar_next ), "clicked", 
     949                        GTK_SIGNAL_FUNC( on_toolbar_next_title_clicked ), 
     950                        NULL); 
     951 
     952    p_toolbar_prev = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( 
     953                 p_intf->p_sys->p_window ), "toolbar_prev" ) ); 
     954    gtk_signal_disconnect_by_data( GTK_OBJECT( p_toolbar_prev ), NULL ); 
     955    gtk_signal_connect( GTK_OBJECT( p_toolbar_prev ), "clicked", 
     956                        GTK_SIGNAL_FUNC( on_toolbar_prev_title_clicked ), 
     957                        NULL); 
     958 
     959    return TRUE; 
     960} 
     961 
  • plugins/gnome/intf_gnome.glade

    r52f0fa6 r0fee43a  
    581581      <fill>True</fill> 
    582582    </child> 
     583      </widget> 
     584 
     585      <widget> 
     586    <class>GtkHBox</class> 
     587    <name>dvd_box</name> 
     588    <visible>False</visible> 
     589    <homogeneous>False</homogeneous> 
     590    <spacing>0</spacing> 
     591    <child> 
     592      <padding>0</padding> 
     593      <expand>True</expand> 
     594      <fill>True</fill> 
     595    </child> 
     596 
     597    <widget> 
     598      <class>GtkLabel</class> 
     599      <name>label_title</name> 
     600      <label>Title:</label> 
     601      <justify>GTK_JUSTIFY_CENTER</justify> 
     602      <wrap>False</wrap> 
     603      <xalign>0.5</xalign> 
     604      <yalign>0.5</yalign> 
     605      <xpad>0</xpad> 
     606      <ypad>0</ypad> 
     607      <child> 
     608        <padding>0</padding> 
     609        <expand>True</expand> 
     610        <fill>False</fill> 
     611      </child> 
     612    </widget> 
     613 
     614    <widget> 
     615      <class>GtkHBox</class> 
     616      <name>hbox6</name> 
     617      <homogeneous>False</homogeneous> 
     618      <spacing>10</spacing> 
     619      <child> 
     620        <padding>0</padding> 
     621        <expand>True</expand> 
     622        <fill>False</fill> 
     623      </child> 
     624 
     625      <widget> 
     626        <class>GtkButton</class> 
     627        <name>button_chapter_prev</name> 
     628        <tooltip>Select previous chapter</tooltip> 
     629        <can_focus>True</can_focus> 
     630        <signal> 
     631          <name>clicked</name> 
     632          <handler>on_button_chapter_prev_clicked</handler> 
     633          <last_modification_time>Tue, 03 Apr 2001 00:53:47 GMT</last_modification_time> 
     634        </signal> 
     635        <stock_button>GNOME_STOCK_BUTTON_PREV</stock_button> 
     636        <relief>GTK_RELIEF_NONE</relief> 
     637        <child> 
     638          <padding>0</padding> 
     639          <expand>False</expand> 
     640          <fill>False</fill> 
     641        </child> 
     642      </widget> 
     643 
     644      <widget> 
     645        <class>GtkLabel</class> 
     646        <name>label_chapter</name> 
     647        <label>Chapter:   </label> 
     648        <justify>GTK_JUSTIFY_CENTER</justify> 
     649        <wrap>False</wrap> 
     650        <xalign>0.5</xalign> 
     651        <yalign>0.5</yalign> 
     652        <xpad>0</xpad> 
     653        <ypad>0</ypad> 
     654        <child> 
     655          <padding>0</padding> 
     656          <expand>False</expand> 
     657          <fill>False</fill> 
     658        </child> 
     659      </widget> 
     660 
     661      <widget> 
     662        <class>GtkButton</class> 
     663        <name>button_chapter_next</name> 
     664        <tooltip>Select next chapter</tooltip> 
     665        <can_focus>True</can_focus> 
     666        <signal> 
     667          <name>clicked</name> 
     668          <handler>on_button_chapter_next_clicked</handler> 
     669          <last_modification_time>Tue, 03 Apr 2001 00:53:40 GMT</last_modification_time> 
     670        </signal> 
     671        <stock_button>GNOME_STOCK_BUTTON_NEXT</stock_button> 
     672        <relief>GTK_RELIEF_NONE</relief> 
     673        <child> 
     674          <padding>0</padding> 
     675          <expand>False</expand> 
     676          <fill>False</fill> 
     677        </child> 
     678      </widget> 
     679    </widget> 
    583680      </widget> 
    584681    </widget> 
  • plugins/gnome/intf_gnome.h

    rf6c80a7 r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 1999, 2000 VideoLAN 
    5  * $Id: intf_gnome.h,v 1.4 2001/04/01 07:31:38 stef Exp $ 
     5 * $Id: intf_gnome.h,v 1.5 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Samuel Hocevar <sam@zoy.org> 
     
    2727#define DROP_ACCEPT_TEXT_URI_LIST  0 
    2828#define DROP_ACCEPT_TEXT_PLAIN     1 
     29 
     30/***************************************************************************** 
     31 * interface modes 
     32 *****************************************************************************/ 
     33#define FILE_MODE   0 
     34#define NET_MODE    1 
     35#define DVD_MODE    2 
     36#define VCD_MODE    3 
    2937 
    3038/***************************************************************************** 
     
    5866    GtkLabel *          p_label_date; 
    5967    GtkLabel *          p_label_status; 
     68    GtkLabel *          p_label_title; 
     69    GtkLabel *          p_label_chapter; 
     70 
     71    /* input mode management */ 
     72    boolean_t           b_mode_changed; 
     73    gint                i_intf_mode;      /* interface mode: file, net, disc */ 
    6074 
    6175    /* XXX: Ugly kludge, see intf_gnome.c */ 
  • src/input/input_dec.c

    r785049d r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 1999, 2000 VideoLAN 
    5  * $Id: input_dec.c,v 1.8 2001/02/08 13:52:35 massiot Exp $ 
     5 * $Id: input_dec.c,v 1.9 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    7171 
    7272    /* Waiting for the thread to exit */ 
     73    /* I thought that unlocking was better since thread join can be long 
     74     * but it actually creates late pictures and freezes --stef */ 
     75//    vlc_mutex_unlock( &p_input->stream.stream_lock ); 
    7376    vlc_thread_join( p_es->thread_id ); 
     77//    vlc_mutex_lock( &p_input->stream.stream_lock ); 
    7478 
    7579    /* Freeing all packets still in the decoder fifo. */ 
     
    112116        p_decoder_fifo->pf_delete_pes( p_decoder_fifo->p_packets_mgt, 
    113117                                       p_pes ); 
    114         intf_ErrMsg( "PES trashed - fifo full !" ); 
     118        intf_ErrMsg( "PES trashed - decoder fifo full !" ); 
    115119    } 
    116120    vlc_mutex_unlock( &p_decoder_fifo->data_lock ); 
  • src/input/input_programs.c

    rf6c80a7 r0fee43a  
    33 ***************************************************************************** 
    44 * Copyright (C) 1999, 2000 VideoLAN 
    5  * $Id: input_programs.c,v 1.42 2001/04/01 07:31:38 stef Exp $ 
     5 * $Id: input_programs.c,v 1.43 2001/04/03 03:39:41 stef Exp $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    731731        { 
    732732            intf_ErrMsg( "No more selected ES in input_UnselectES" ); 
    733             vlc_mutex_unlock( &p_input->stream.stream_lock ); 
    734733            return( 1 ); 
    735734        }