⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 open.c

📁 VLC媒体播放程序
💻 C
📖 第 1 页 / 共 2 页
字号:
        g_string_sprintfa( p_target, "udp://@%s",                           gtk_entry_get_text( GTK_ENTRY(                            lookup_widget( GTK_WIDGET(button),                                           "network_multicast_address" ) ) ) );        i_port = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(                               lookup_widget( GTK_WIDGET(button),                                              "network_multicast_port" ) ) );        if( i_port != 1234 )        {            g_string_sprintfa( p_target, ":%i", i_port );        }    }    else if( SELECTED( "network_http" ) )    {        g_string_assign( p_target,                         gtk_entry_get_text( GTK_ENTRY( lookup_widget(                               GTK_WIDGET(button), "network_http_url" ) ) ) );    }    gtk_entry_set_text( GTK_ENTRY( lookup_widget(                                   GTK_WIDGET(button), "entry_open" ) ),                        p_target->str );    g_string_free( p_target, TRUE );}void GtkNetworkOpenUDP( GtkToggleButton *togglebutton,                                        gpointer user_data ){    GtkWidget *     p_open;    p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_udp_port_label" ),                    gtk_toggle_button_get_active( togglebutton ) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_udp_port" ),                    gtk_toggle_button_get_active( togglebutton ) );    GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data );}void GtkNetworkOpenMulticast( GtkToggleButton *togglebutton,                                              gpointer user_data ){    GtkWidget *     p_open;    p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_multicast_address_label" ),                    gtk_toggle_button_get_active( togglebutton ) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_multicast_address_combo" ),                    gtk_toggle_button_get_active( togglebutton ) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_multicast_port_label" ),                    gtk_toggle_button_get_active( togglebutton ) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_multicast_port" ),                    gtk_toggle_button_get_active( togglebutton ) );    GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data );}void GtkNetworkOpenHTTP( GtkToggleButton *togglebutton,                                         gpointer user_data ){    GtkWidget *     p_open;    p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_http_url_label" ),                    gtk_toggle_button_get_active( togglebutton ) );    gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),                    "network_http_url" ),                    gtk_toggle_button_get_active( togglebutton ) );    GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data );}/***************************************************************************** * Open satellite callbacks ***************************************************************************** * The following callbacks are related to the satellite card manager. *****************************************************************************/gboolean GtkSatOpenShow( GtkWidget       *widget,                         gpointer         user_data){    GtkOpenShow( GtkGetIntf( widget ), 3 );    return TRUE;}static void GtkSatOpenChanged( GtkWidget * button, gpointer user_data ){    GString *       p_target = g_string_new( "" );    g_string_sprintfa( p_target, "%s://%d,%d,%ld,%d", "satellite",                       gtk_spin_button_get_value_as_int(                              GTK_SPIN_BUTTON( lookup_widget(                                  GTK_WIDGET(button), "sat_freq" ) ) ),                       !GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET( button ),                                               "sat_pol_vert" ) )->active,                       strtol( gtk_entry_get_text( GTK_ENTRY( GTK_COMBO(                               lookup_widget( GTK_WIDGET( button ), "sat_fec" )                               )->entry ) ), NULL, 10 ),                       gtk_spin_button_get_value_as_int(                              GTK_SPIN_BUTTON( lookup_widget(                                  GTK_WIDGET(button), "sat_srate" ) ) ) );    gtk_entry_set_text( GTK_ENTRY( lookup_widget(                                   GTK_WIDGET(button), "entry_open" ) ),                        p_target->str );    g_string_free( p_target, TRUE );}voidGtkSatOpenToggle                       (GtkToggleButton *togglebutton,                                        gpointer         user_data){    if( togglebutton->active )    {        GtkSatOpenChanged( GTK_WIDGET( togglebutton ), user_data );    }}/***************************************************************************** * Open subtitle callbacks ***************************************************************************** * The following callbacks are related to the subtitle *****************************************************************************/voidGtkOpenSubtitleShow                    (GtkButton       *button,                                        gpointer         user_data){    intf_thread_t * p_intf = GtkGetIntf( button );    if( GTK_TOGGLE_BUTTON( button )->active )    {        /* show hbox_subtitle */        gtk_widget_show_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) );    }    else    {        /* hide hbox_subtitle */        gtk_widget_hide_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) );    }}/***************************************************************************** * Open sout callbacks ***************************************************************************** * The following callbacks are related to the sout *****************************************************************************/void GtkOpenSoutShow  ( GtkButton       *button,                        gpointer         user_data){    intf_thread_t * p_intf = GtkGetIntf( button );    if( GTK_TOGGLE_BUTTON( button )->active )    {        gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), TRUE );    }    else    {        gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), FALSE );    }}/******************************  ******************************/static void GtkOpenShow( intf_thread_t *p_intf, int i_page ){    char *psz_var;    GtkWidget *p_notebook;    /* If we have already created this window, do nothing */    if( GTK_IS_WIDGET( p_intf->p_sys->p_open ) )    {        goto setpage;    }    p_intf->p_sys->p_open = create_intf_open();    gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_open ),                         "p_intf", p_intf );    /* FileOpen stuff */    psz_var = config_GetPsz( p_intf, "search-path" );    if( psz_var )    {        gtk_file_selection_set_filename( GTK_FILE_SELECTION(            p_intf->p_sys->p_open ), psz_var );        free( psz_var );    }    /* Disc stuff */    psz_var = config_GetPsz( p_intf, "dvd" );    if( psz_var )    {        gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data(            GTK_OBJECT( p_intf->p_sys->p_open ), "disc_name" ) ),            psz_var );        free( psz_var );    }    /* Network stuff */    gtk_spin_button_set_value( GTK_SPIN_BUTTON( gtk_object_get_data(        GTK_OBJECT( p_intf->p_sys->p_open ), "network_udp_port" ) ),        config_GetInt( p_intf, "server-port" ) );    gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data(        GTK_OBJECT( p_intf->p_sys->p_open ), "network_http_url" ) ),        "http://" );#ifdef HAVE_SATELLITE    /* Satellite stuff */    psz_var = config_GetPsz( p_intf, "frequency" );    if( psz_var )    {        gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data(            GTK_OBJECT( p_intf->p_sys->p_open ), "sat_freq" ) ),            psz_var );        free( psz_var );    }    psz_var = config_GetPsz( p_intf, "symbol-rate" );    if( psz_var )    {        gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data(            GTK_OBJECT( p_intf->p_sys->p_open ), "sat_srate" ) ),            psz_var );        free( psz_var );    }#endif /*HAVE_SATELITE*/    /* subtitle stuff */    /* hide hbox_subtitle */    gtk_widget_hide_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) );    /* sout */    psz_var = config_GetPsz( p_intf, "sout" );    if( psz_var && *psz_var )    {        gtk_toggle_button_set_active(  gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "show_sout_settings" ), TRUE );        gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), TRUE );    }    else    {        gtk_toggle_button_set_active(  gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "show_sout_settings" ), FALSE );        gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), FALSE );    }    if( psz_var ) free( psz_var );    /* Set the right page */setpage:    p_notebook = lookup_widget( GTK_WIDGET( p_intf->p_sys->p_open ),                                "open_notebook" );    gtk_notebook_set_page( GTK_NOTEBOOK( p_notebook ), i_page );    gtk_widget_show( p_intf->p_sys->p_open );    gdk_window_raise( p_intf->p_sys->p_open->window );}void GtkOpenOk( GtkButton * button, gpointer user_data ){    /* Check what was pressed */    intf_thread_t * p_intf = GtkGetIntf( button );    playlist_t *    p_playlist;    GtkCList *      p_playlist_clist;    gchar *         psz_target;    /* Hide the dialog box */    gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );    /* Update the playlist */    p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL )    {        return;    }    psz_target = gtk_entry_get_text( GTK_ENTRY( lookup_widget(                                       GTK_WIDGET(button), "entry_open" ) ) );    playlist_Add( p_playlist, (char*)psz_target, (char*)psz_target,                  PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );    /* catch the GTK CList */    p_playlist_clist = GTK_CLIST( gtk_object_get_data(        GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );    /* update the plugin display */    GtkRebuildCList( p_playlist_clist, p_playlist );    vlc_object_release( p_playlist );    /* export subtitle */    if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),                           "show_subtitle" ) )->active )    {        /* yeah subtitle */        char    *psz_subtitle;        gfloat  delay;        gfloat  fps;        psz_subtitle = gtk_entry_get_text( GTK_ENTRY( lookup_widget( GTK_WIDGET(button), "entry_subtitle" ) ) );        delay = gtk_spin_button_get_value_as_float( GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET(button), "subtitle_delay" ) ) );        fps = gtk_spin_button_get_value_as_float( GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET(button), "subtitle_fps" ) ) );        config_PutPsz( p_intf, "sub-file", psz_subtitle );        config_PutInt( p_intf, "sub-delay", (int)( delay * 10 ) );        config_PutFloat( p_intf, "sub-fps", fps );    }    else    {        config_PutPsz( p_intf, "sub-file", "" );    }    /* export sout */    if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),                           "show_sout_settings" ) )->active )    {        char    *psz_sout;        psz_sout = gtk_entry_get_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( p_intf->p_sys->p_sout ), "sout_entry_target" ) ) );        config_PutPsz( p_intf, "sout", psz_sout );    }    else    {        config_PutPsz( p_intf, "sout", "" );    }}void GtkOpenCancel( GtkButton * button, gpointer user_data ){    gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );}void GtkOpenChanged( GtkWidget * button, gpointer user_data ){    intf_thread_t * p_intf = GtkGetIntf( button );    GtkWidget *p_notebook;    int i_page;    p_notebook = lookup_widget( GTK_WIDGET( p_intf->p_sys->p_open ),                                "open_notebook" );    i_page = gtk_notebook_get_current_page( GTK_NOTEBOOK( p_notebook ) );    switch( i_page )    {        case 0:            GtkFileOpenChanged( button, NULL );            break;        case 1:            GtkDiscOpenChanged( button, NULL );            break;        case 2:            GtkNetworkOpenChanged( button, NULL );            break;        case 3:            GtkSatOpenChanged( button, NULL );            break;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -