亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pda.c

?? VLC媒體播放程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************** * pda.c : PDA Gtk2 plugin for vlc ***************************************************************************** * Copyright (C) 2002 VideoLAN * $Id: pda.c,v 1.22 2004/02/29 22:59:59 jpsaman Exp $ * * Authors: Jean-Paul Saman <jpsaman@wxs.nl> *          Marc Ariberti <marcari@videolan.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#include <stdlib.h>                                      /* malloc(), free() */#include <errno.h>                                                 /* ENOMEM */#include <string.h>                                            /* strerror() */#include <stdio.h>#include <vlc/vlc.h>#include <vlc/intf.h>#include <gtk/gtk.h>#include "pda_callbacks.h"#include "pda_interface.h"#include "pda_support.h"#include "pda.h"/***************************************************************************** * Local prototypes. *****************************************************************************/static int  Open         ( vlc_object_t * );static void Close        ( vlc_object_t * );static void Run          ( intf_thread_t * );void GtkAutoPlayFile     ( vlc_object_t * );static int Manage        ( intf_thread_t *p_intf );void E_(GtkDisplayDate)  ( GtkAdjustment *p_adj, gpointer userdata );gint E_(GtkModeManage)   ( intf_thread_t * p_intf );/***************************************************************************** * Module descriptor *****************************************************************************/#define AUTOPLAYFILE_TEXT  N_("Autoplay selected file")#define AUTOPLAYFILE_LONGTEXT N_("Automatically play a file when selected in the "\        "file selection list")/***************************************************************************** * Module descriptor *****************************************************************************/vlc_module_begin();    set_description( N_("PDA Linux Gtk2+ interface") );//    add_bool( "pda-autoplayfile", 1, GtkAutoPlayFile, AUTOPLAYFILE_TEXT, AUTOPLAYFILE_LONGTEXT, VLC_TRUE );    set_capability( "interface", 70 );    set_callbacks( Open, Close );    add_shortcut( "pda" );vlc_module_end();/***************************************************************************** * Open: initialize and create window *****************************************************************************/static int Open( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    /* Allocate instance and initialize some members */    p_intf->p_sys = malloc( sizeof( intf_sys_t ) );    if( p_intf->p_sys == NULL )    {        msg_Err( p_intf, "out of memory" );        return VLC_ENOMEM;    }#ifdef NEED_GTK2_MAIN    msg_Dbg( p_intf, "Using gui-helper" );    p_intf->p_sys->p_gtk_main = module_Need( p_this, "gui-helper", "gtk2" );    if( p_intf->p_sys->p_gtk_main == NULL )    {        free( p_intf->p_sys );        return VLC_ENOMOD;    }#endif    /* Initialize Gtk+ thread */    p_intf->p_sys->p_input = NULL;    p_intf->p_sys->b_autoplayfile = 1;    p_intf->p_sys->b_playing = 0;    p_intf->p_sys->b_slider_free = 1;    p_intf->pf_run = Run;    return VLC_SUCCESS;}/***************************************************************************** * Close: destroy interface window *****************************************************************************/static void Close( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    if( p_intf->p_sys->p_input )    {        vlc_object_release( p_intf->p_sys->p_input );    }#ifdef NEED_GTK2_MAIN    msg_Dbg( p_intf, "Releasing gui-helper" );    module_Unneed( p_intf, p_intf->p_sys->p_gtk_main );#endif    /* Destroy structure */    free( p_intf->p_sys );}/***************************************************************************** * Run: Gtk+ thread ***************************************************************************** * this part of the interface is in a separate thread so that we can call * gtk_main() from within it without annoying the rest of the program. *****************************************************************************/static void Run( intf_thread_t *p_intf ){#ifndef NEED_GTK2_MAIN    /* gtk_init needs to know the command line. We don't care, so we     * give it an empty one */    char  *p_args[] = { "", NULL };    char **pp_args  = p_args;    int    i_args   = 1;    int    i_dummy;#endif    playlist_t        *p_playlist;    GtkCellRenderer   *p_renderer = NULL;    GtkTreeViewColumn *p_column   = NULL;    GtkListStore      *p_filelist = NULL;    GtkListStore      *p_playlist_store = NULL;#ifndef NEED_GTK2_MAIN    gtk_set_locale ();    msg_Dbg( p_intf, "Starting pda GTK2+ interface" );    gtk_init( &i_args, &pp_args );#else    /* Initialize Gtk+ */    msg_Dbg( p_intf, "Starting pda GTK2+ interface thread" );    gdk_threads_enter();#endif    /* Create some useful widgets that will certainly be used *//* FIXME: magic path */    add_pixmap_directory("share");    add_pixmap_directory("/usr/share/vlc");    /* Path for pixmaps under linupy 1.4 */    add_pixmap_directory("/usr/local/share/pixmaps/vlc");    /* Path for pixmaps under linupy 2.0 */    add_pixmap_directory("/usr/share/pixmaps/vlc");    p_intf->p_sys->p_window = create_pda();    if (p_intf->p_sys->p_window == NULL)    {        msg_Err( p_intf, "unable to create pda interface" );    }    /* Store p_intf to keep an eye on it */    gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window),                         "p_intf", p_intf );    /* Set the title of the main window */    gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window),                          VOUT_TITLE " (PDA Linux interface)");    /* Get the notebook object */    p_intf->p_sys->p_notebook = GTK_NOTEBOOK( gtk_object_get_data(        GTK_OBJECT( p_intf->p_sys->p_window ), "notebook" ) );    /* Get the slider object */    p_intf->p_sys->p_slider = (GtkHScale*) lookup_widget( p_intf->p_sys->p_window, "timeSlider" );    p_intf->p_sys->p_slider_label = (GtkLabel*) lookup_widget( p_intf->p_sys->p_window, "timeLabel" );    if (p_intf->p_sys->p_slider == NULL)        msg_Err( p_intf, "Time slider widget not found." );    if (p_intf->p_sys->p_slider_label == NULL)        msg_Err( p_intf, "Time label widget not found." );    /* Connect the date display to the slider */    p_intf->p_sys->p_adj = gtk_range_get_adjustment( GTK_RANGE(p_intf->p_sys->p_slider) );    if (p_intf->p_sys->p_adj == NULL)        msg_Err( p_intf, "Adjustment range not found." );    g_signal_connect( GTK_OBJECT( p_intf->p_sys->p_adj ), "value_changed",                         G_CALLBACK( E_(GtkDisplayDate) ), p_intf );    p_intf->p_sys->f_adj_oldvalue = 0;    p_intf->p_sys->i_adj_oldvalue = 0;    /* BEGIN OF FILEVIEW GTK_TREE_VIEW */    p_intf->p_sys->p_tvfile = NULL;    p_intf->p_sys->p_tvfile = (GtkTreeView *) lookup_widget( p_intf->p_sys->p_window,                                                             "tvFileList");    if (NULL == p_intf->p_sys->p_tvfile)       msg_Err(p_intf, "Error obtaining pointer to File List");    /* Insert columns 0 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 0, (gchar *) N_("Filename"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 0 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 0 );    gtk_tree_view_column_set_sort_column_id(p_column, 0);    /* Insert columns 1 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 1, (gchar *) N_("Permissions"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 1 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 1 );    gtk_tree_view_column_set_sort_column_id(p_column, 1);    /* Insert columns 2 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 2, (gchar *) N_("Size"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 2 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 2 );    gtk_tree_view_column_set_sort_column_id(p_column, 2);    /* Insert columns 3 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 3, (gchar *) N_("Owner"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 3 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 3 );    gtk_tree_view_column_set_sort_column_id(p_column, 3);    /* Insert columns 4 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvfile, 4, (gchar *) N_("Group"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvfile, 4 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 4 );    gtk_tree_view_column_set_sort_column_id(p_column, 4);    /* Get new directory listing */    p_filelist = gtk_list_store_new (5,                G_TYPE_STRING, /* Filename */                G_TYPE_STRING, /* permissions */                G_TYPE_UINT64, /* File size */                G_TYPE_STRING, /* Owner */                G_TYPE_STRING);/* Group */    ReadDirectory(p_intf, p_filelist, ".");    gtk_tree_view_set_model(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile), GTK_TREE_MODEL(p_filelist));    g_object_unref(p_filelist);     /* Model will be released by GtkTreeView */    gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile)),GTK_SELECTION_MULTIPLE);    /* Column properties */    gtk_tree_view_set_headers_visible(p_intf->p_sys->p_tvfile, TRUE);    gtk_tree_view_columns_autosize(p_intf->p_sys->p_tvfile);    gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(p_intf->p_sys->p_tvfile),TRUE);    /* END OF FILEVIEW GTK_TREE_VIEW */    /* BEGIN OF PLAYLIST GTK_TREE_VIEW */    p_intf->p_sys->p_tvplaylist = NULL;    p_intf->p_sys->p_tvplaylist = (GtkTreeView *) lookup_widget( p_intf->p_sys->p_window, "tvPlaylist");    if (NULL == p_intf->p_sys->p_tvplaylist)       msg_Err(p_intf, "Error obtaining pointer to Play List");    /* Columns 1 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 0, (gchar *) N_("Filename"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 0 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 0 );    gtk_tree_view_column_set_sort_column_id(p_column, 0);    /* Column 2 */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 1, (gchar *) N_("Time"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 1 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 1 );    gtk_tree_view_column_set_sort_column_id(p_column, 1);#if 0    /* Column 3 - is a hidden column used for reliable deleting items from the underlying playlist */    p_renderer = gtk_cell_renderer_text_new ();    gtk_tree_view_insert_column_with_attributes(p_intf->p_sys->p_tvplaylist, 2, (gchar *) N_("Index"), p_renderer, NULL);    p_column = gtk_tree_view_get_column(p_intf->p_sys->p_tvplaylist, 2 );    gtk_tree_view_column_add_attribute(p_column, p_renderer, "text", 2 );    gtk_tree_view_column_set_sort_column_id(p_column, 2);#endif    /* update the playlist */    p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    p_playlist_store = gtk_list_store_new (3,                G_TYPE_STRING, /* Filename */                G_TYPE_STRING, /* Time */                G_TYPE_UINT);  /* Hidden index */    PlaylistRebuildListStore(p_playlist_store, p_playlist);    gtk_tree_view_set_model(GTK_TREE_VIEW(p_intf->p_sys->p_tvplaylist), GTK_TREE_MODEL(p_playlist_store));    g_object_unref(p_playlist_store);    vlc_object_release(p_playlist); /* Free the playlist */    gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(p_intf->p_sys->p_tvplaylist)),GTK_SELECTION_MULTIPLE);    /* Column properties */    gtk_tree_view_set_headers_visible(p_intf->p_sys->p_tvplaylist, TRUE);    gtk_tree_view_columns_autosize(p_intf->p_sys->p_tvplaylist);    gtk_tree_view_set_headers_clickable(p_intf->p_sys->p_tvplaylist, TRUE);    /* END OF PLAYLIST GTK_TREE_VIEW */    /* Hide the Preference TAB for now. */    GtkWidget *p_preference_tab = NULL;    p_preference_tab = gtk_notebook_get_nth_page(p_intf->p_sys->p_notebook,5);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美加勒比视频| 国产美女视频91| 久久久久久97三级| 成人动漫一区二区在线| 懂色av一区二区三区免费看| 国产在线播放一区三区四| 美女视频一区二区| 精品一区二区三区免费毛片爱| 天堂一区二区在线| 视频在线在亚洲| 久久成人综合网| 久久国产福利国产秒拍| 卡一卡二国产精品 | 国产精品美女久久福利网站| 久久亚洲综合色| 国产精品少妇自拍| 一区二区三区在线观看动漫 | 蜜桃视频一区二区三区| 蜜臀久久99精品久久久久宅男| 日韩av中文字幕一区二区| 午夜电影网亚洲视频| 久久草av在线| 国产一区二区三区在线观看免费视频| 久久99精品国产.久久久久久| 午夜久久久久久| 日本欧美韩国一区三区| 国产成人免费视频一区| 91污在线观看| 日韩一区二区三| 国产日韩视频一区二区三区| 亚洲欧美一区二区久久| 调教+趴+乳夹+国产+精品| 久久99国产精品麻豆| 成人美女视频在线看| 在线观看日韩国产| 精品国产在天天线2019| 欧美激情在线看| 亚洲国产美女搞黄色| 久久精品国产亚洲高清剧情介绍| 国产成人精品免费| 欧美亚洲综合色| 久久久亚洲精品一区二区三区| 亚洲人精品一区| 麻豆国产欧美一区二区三区| 成人ar影院免费观看视频| 欧美亚洲国产一区二区三区| 26uuu亚洲| 亚洲高清三级视频| 国产成人自拍网| 欧美性一级生活| 久久久久亚洲蜜桃| 亚洲成a人片在线观看中文| 国产剧情在线观看一区二区| 欧美亚洲另类激情小说| 国产精品久久久久久一区二区三区| 亚洲.国产.中文慕字在线| 国产高清久久久| 欧美日高清视频| 中文字幕亚洲区| 久久99精品网久久| 欧美日韩三级一区| 国产精品久久久久aaaa樱花| 免费观看91视频大全| 日本福利一区二区| 中文字幕免费不卡在线| 麻豆成人在线观看| 在线观看www91| 国产精品久久久久久久久搜平片| 蜜臀av一级做a爰片久久| 一本一道久久a久久精品| 久久久综合激的五月天| 麻豆精品视频在线| 欧美人与禽zozo性伦| 亚洲图片你懂的| 成人中文字幕在线| 欧美刺激午夜性久久久久久久 | 国产福利精品导航| 日韩午夜电影av| 亚洲永久精品大片| 99久久精品国产精品久久 | 国产在线一区二区综合免费视频| 欧洲精品中文字幕| 亚洲欧洲精品成人久久奇米网| 国产精品91一区二区| 欧美大片在线观看一区二区| 亚洲成a人v欧美综合天堂| 一本久久综合亚洲鲁鲁五月天| 国产亚洲综合性久久久影院| 韩日av一区二区| 欧美成人a∨高清免费观看| 天天综合色天天| 欧美日韩一卡二卡三卡| 亚洲一区二区三区中文字幕| 色狠狠综合天天综合综合| 国产精品久99| 波多野结衣中文一区| 欧美国产一区视频在线观看| 国产精一区二区三区| www日韩大片| 精品一二三四在线| 久久女同精品一区二区| 国产一区二区日韩精品| 久久亚洲捆绑美女| 风间由美性色一区二区三区| 中文天堂在线一区| 不卡一卡二卡三乱码免费网站| 老司机免费视频一区二区三区| 亚洲一区二区三区自拍| 国产成人午夜精品影院观看视频| 亚洲国产精品传媒在线观看| 国产白丝精品91爽爽久久| 亚洲图片自拍偷拍| 欧美日韩精品一区二区三区蜜桃| 国产黄色91视频| 日韩av电影免费观看高清完整版在线观看| 国产精品每日更新| 国产精品久久久久久久久快鸭| 精品美女在线观看| 26uuu另类欧美亚洲曰本| 一本色道久久加勒比精品| 轻轻草成人在线| 亚洲成人动漫精品| 国产免费观看久久| 91精品国产福利| 精品亚洲免费视频| 欧美激情在线观看视频免费| 久久亚洲春色中文字幕久久久| 99久久精品国产网站| 成人中文字幕合集| 欧洲精品一区二区| 欧美人体做爰大胆视频| 欧美精品第1页| 久久女同精品一区二区| 国产精品国模大尺度视频| 亚洲欧美国产毛片在线| 亚洲一级电影视频| 精品中文字幕一区二区小辣椒| 国产精品18久久久久| 国产一区二区主播在线| 成人免费毛片aaaaa**| 欧美男人的天堂一二区| 国产人成亚洲第一网站在线播放| 26uuu成人网一区二区三区| 日韩一区欧美一区| 亚洲成人三级小说| 国产成人精品免费在线| 欧美电影在哪看比较好| 久久精品欧美一区二区三区麻豆| 一区二区三区毛片| 国产一区欧美一区| 欧美人妇做爰xxxⅹ性高电影| 久久久高清一区二区三区| 亚洲成人先锋电影| 99精品久久99久久久久| 欧美日韩情趣电影| 精品国产免费视频| 亚洲国产wwwccc36天堂| 一本久久a久久免费精品不卡| 亚洲精品在线观| 精品伊人久久久久7777人| 欧美精品色综合| 一区二区三区不卡视频| 9色porny自拍视频一区二区| 久久精品亚洲精品国产欧美| 蜜臀久久99精品久久久画质超高清 | 日本一二三四高清不卡| 韩国精品免费视频| 久久久无码精品亚洲日韩按摩| 亚洲va国产va欧美va观看| 成人国产视频在线观看| 久久精品在线观看| 国产成人福利片| 久久精品亚洲麻豆av一区二区| 日韩一区二区三免费高清| 亚洲男人的天堂av| 色婷婷综合激情| 日韩1区2区日韩1区2区| 国产精品久久久久婷婷 | 国产在线播放一区| 久久久一区二区三区捆绑**| 国内精品在线播放| 欧美日韩一区二区三区在线| 亚洲国产中文字幕在线视频综合| av一区二区不卡| 亚洲国产日韩一区二区| 国产日韩欧美精品综合| 3atv一区二区三区| www.在线欧美| 国产乱码精品1区2区3区| 亚洲国产日韩精品| 白白色 亚洲乱淫| 美女被吸乳得到大胸91| 亚洲精品五月天| 国产午夜亚洲精品不卡| 欧美一区二区播放| 在线亚洲精品福利网址导航| 国产成人精品综合在线观看 | 亚洲日本青草视频在线怡红院| 欧美一区二区三区四区五区| 色综合 综合色|