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

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

?? wince.cpp

?? uclinux 下的vlc播放器源代碼
?? CPP
字號:
/***************************************************************************** * wince.cpp: WinCE gui plugin for VLC ***************************************************************************** * Copyright (C) 2003 the VideoLAN team * $Id: wince.cpp 13859 2006-01-04 22:29:53Z zorglub $ * * Author: Gildas Bazin <gbazin@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 <vlc/vlc.h>#include <vlc/intf.h>#if defined( UNDER_CE ) && defined(__MINGW32__)/* This is a gross hack for the wince gcc cross-compiler */#define _off_t long#endif#include "wince.h"#include <objbase.h>/***************************************************************************** * Local prototypes. *****************************************************************************/static int  Open   ( vlc_object_t * );static void Close  ( vlc_object_t * );static void Run    ( intf_thread_t * );static int  OpenDialogs( vlc_object_t * );static void MainLoop  ( intf_thread_t * );static void ShowDialog( intf_thread_t *, int, int, intf_dialog_args_t * );/***************************************************************************** * Module descriptor *****************************************************************************/#define EMBED_TEXT N_("Embed video in interface")#define EMBED_LONGTEXT N_("Embed the video inside the interface instead " \    "of having it in a separate window.")vlc_module_begin();    set_description( (char *) _("WinCE interface module") );    set_capability( "interface", 100 );    set_callbacks( Open, Close );    add_shortcut( "wince" );    set_program( "wcevlc" );    add_bool( "wince-embed", 1, NULL,              EMBED_TEXT, EMBED_LONGTEXT, VLC_FALSE );    add_submodule();    set_description( _("WinCE dialogs provider") );    set_capability( "dialogs provider", 10 );    set_callbacks( OpenDialogs, Close );vlc_module_end();HINSTANCE hInstance = 0;#if !defined(__BUILTIN__)extern "C" BOOL WINAPIDllMain( HANDLE hModule, DWORD fdwReason, LPVOID lpReserved ){    hInstance = (HINSTANCE)hModule;    return TRUE;}#endif/* Global variables used by _TOMB() / _FROMB() */wchar_t pwsz_mbtow_wince[2048];char psz_wtomb_wince[2048];/***************************************************************************** * Open: initialize interface *****************************************************************************/static int Open( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    // Check if the application is running.    // If it's running then focus its window and bail out.    HWND hwndMain = FindWindow( _T("VLC WinCE"), _T("VLC media player") );      if( hwndMain )    {        SetForegroundWindow( hwndMain );        return VLC_EGENERIC;    }    // Allocate instance and initialize some members    p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) );    if( p_intf->p_sys == NULL )    {        msg_Err( p_intf, "out of memory" );        return VLC_EGENERIC;    }    // Suscribe to messages bank    p_intf->p_sys->p_sub = msg_Subscribe( p_intf, MSG_QUEUE_NORMAL );    // Misc init    p_intf->p_sys->p_audio_menu = NULL;    p_intf->p_sys->p_video_menu = NULL;    p_intf->p_sys->p_navig_menu = NULL;    p_intf->p_sys->p_settings_menu = NULL;    p_intf->pf_run = Run;    p_intf->pf_show_dialog = NULL;    p_intf->p_sys->p_input = NULL;    p_intf->p_sys->b_playing = 0;    p_intf->p_sys->i_playing = -1;    p_intf->p_sys->b_slider_free = 1;    p_intf->p_sys->i_slider_pos = p_intf->p_sys->i_slider_oldpos = 0;    return VLC_SUCCESS;}static int OpenDialogs( vlc_object_t *p_this ){    intf_thread_t *p_intf = (intf_thread_t *)p_this;    int i_ret = Open( p_this );    p_intf->pf_show_dialog = ShowDialog;    return i_ret;}/***************************************************************************** * Close: destroy interface *****************************************************************************/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 );    }    MenuItemExt::ClearList( p_intf->p_sys->p_video_menu );    delete p_intf->p_sys->p_video_menu;    MenuItemExt::ClearList( p_intf->p_sys->p_audio_menu );    delete p_intf->p_sys->p_audio_menu;    MenuItemExt::ClearList( p_intf->p_sys->p_settings_menu );    delete p_intf->p_sys->p_settings_menu;    MenuItemExt::ClearList( p_intf->p_sys->p_navig_menu );    delete p_intf->p_sys->p_navig_menu;    if( p_intf->pf_show_dialog )    {        /* We must destroy the dialogs thread */#if 0        wxCommandEvent event( wxEVT_DIALOG, INTF_DIALOG_EXIT );        p_intf->p_sys->p_wxwindow->AddPendingEvent( event );#endif        vlc_thread_join( p_intf );    }    // Unsuscribe to messages bank    msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );    // Destroy structure    free( p_intf->p_sys );}/***************************************************************************** * Run: main loop *****************************************************************************/static void Run( intf_thread_t *p_intf ){    if( p_intf->pf_show_dialog )    {        /* The module is used in dialog provider mode */        /* Create a new thread for the dialogs provider */        if( vlc_thread_create( p_intf, "Skins Dialogs Thread",                               MainLoop, 0, VLC_TRUE ) )        {            msg_Err( p_intf, "cannot create Skins Dialogs Thread" );            p_intf->pf_show_dialog = NULL;        }    }    else    {        /* The module is used in interface mode */        MainLoop( p_intf );    }}static void MainLoop( intf_thread_t *p_intf ){    MSG msg;    Interface *intf = 0;    if( !hInstance ) hInstance = GetModuleHandle(NULL);    // Register window class    WNDCLASS wc;    wc.style = CS_HREDRAW | CS_VREDRAW ;    wc.lpfnWndProc = (WNDPROC)CBaseWindow::BaseWndProc;    wc.cbClsExtra = 0;    wc.cbWndExtra = 0;    wc.hIcon = NULL;    wc.hInstance = hInstance;    wc.hCursor = NULL;    wc.hbrBackground = (HBRUSH)(COLOR_MENU+1);    wc.lpszMenuName = NULL;    wc.lpszClassName = _T("VLC WinCE");    RegisterClass( &wc );#ifndef UNDER_CE    /* Initialize OLE/COM */    CoInitialize( 0 );#endif    if( !p_intf->pf_show_dialog )    {        /* The module is used in interface mode */        p_intf->p_sys->p_window = intf = new Interface( p_intf, 0, hInstance );        /* Create/Show the interface */        if( !intf->InitInstance() ) goto end;    }    /* Creates the dialogs provider */    p_intf->p_sys->p_window =        CreateDialogsProvider( p_intf, p_intf->pf_show_dialog ?                               NULL : p_intf->p_sys->p_window, hInstance );    p_intf->p_sys->pf_show_dialog = ShowDialog;    /* OK, initialization is over */    vlc_thread_ready( p_intf );    /* Check if we need to start playing */    if( !p_intf->pf_show_dialog && p_intf->b_play )    {        playlist_t *p_playlist =            (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                           FIND_ANYWHERE );        if( p_playlist )        {            playlist_Play( p_playlist );            vlc_object_release( p_playlist );        }    }    // Main message loop    while( GetMessage( &msg, NULL, 0, 0 ) > 0 )    {        TranslateMessage( &msg );        DispatchMessage( &msg );    } end:    if( intf ) delete intf;#ifndef UNDER_CE    /* Uninitialize OLE/COM */    CoUninitialize();#endif}/***************************************************************************** * CBaseWindow Implementation *****************************************************************************/LRESULT CALLBACK CBaseWindow::BaseWndProc( HWND hwnd, UINT msg, WPARAM wParam,                                           LPARAM lParam ){    CBaseWindow *p_obj;    // check to see if a copy of the 'this' pointer needs to be saved    if( msg == WM_CREATE )    {        p_obj = (CBaseWindow *)(((LPCREATESTRUCT)lParam)->lpCreateParams);        SetWindowLong( hwnd, GWL_USERDATA,                       (LONG)((LPCREATESTRUCT)lParam)->lpCreateParams );        p_obj->hWnd = hwnd;    }    if( msg == WM_INITDIALOG )    {        p_obj = (CBaseWindow *)lParam;        SetWindowLong( hwnd, GWL_USERDATA, lParam );        p_obj->hWnd = hwnd;    }    // Retrieve the pointer    p_obj = (CBaseWindow *)GetWindowLong( hwnd, GWL_USERDATA );    if( !p_obj ) return DefWindowProc( hwnd, msg, wParam, lParam );    // Filter message through child classes    return p_obj->WndProc( hwnd, msg, wParam, lParam );}int CBaseWindow::CreateDialogBox( HWND hwnd, CBaseWindow *p_obj ){    uint8_t p_buffer[sizeof(DLGTEMPLATE) + sizeof(WORD) * 4];    DLGTEMPLATE *p_dlg_template = (DLGTEMPLATE *)p_buffer;    memset( p_dlg_template, 0, sizeof(DLGTEMPLATE) + sizeof(WORD) * 4 );    // these values are arbitrary, they won't be used normally anyhow    p_dlg_template->x  = 0; p_dlg_template->y  = 0;    p_dlg_template->cx = 300; p_dlg_template->cy = 300;    p_dlg_template->style =        DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_SIZEBOX;    return DialogBoxIndirectParam( GetModuleHandle(0), p_dlg_template, hwnd,                                   (DLGPROC)p_obj->BaseWndProc, (LPARAM)p_obj);}/***************************************************************************** * ShowDialog *****************************************************************************/static void ShowDialog( intf_thread_t *p_intf, int i_dialog_event, int i_arg,                        intf_dialog_args_t *p_arg ){    SendMessage( p_intf->p_sys->p_window->GetHandle(), WM_CANCELMODE, 0, 0 );    if( i_dialog_event == INTF_DIALOG_POPUPMENU && i_arg == 0 ) return;    /* Hack to prevent popup events to be enqueued when     * one is already active */#if 0    if( i_dialog_event != INTF_DIALOG_POPUPMENU ||        !p_intf->p_sys->p_popup_menu )#endif    {        SendMessage( p_intf->p_sys->p_window->GetHandle(),                     WM_APP + i_dialog_event, (WPARAM)i_arg, (LPARAM)p_arg );    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人禁用看黄a在线| 国产精品青草久久| 最新中文字幕一区二区三区| 免费的国产精品| av在线播放不卡| www久久久久| 亚洲成人三级小说| 一本到不卡免费一区二区| 精品日韩av一区二区| 亚洲妇女屁股眼交7| 成人av在线影院| 国产婷婷一区二区| 国产综合一区二区| 日韩欧美视频一区| 日欧美一区二区| 欧洲一区在线观看| 亚洲欧美日韩国产综合| 岛国一区二区在线观看| 久久精品一区蜜桃臀影院| 美国三级日本三级久久99| 欧美日韩成人在线一区| 亚洲一区av在线| 欧美亚洲一区二区在线观看| 综合欧美亚洲日本| 99re在线精品| 亚洲伦在线观看| 91丨国产丨九色丨pron| 中文字幕一区二区5566日韩| 成人午夜免费电影| 中文字幕第一区第二区| 福利一区福利二区| 亚洲国产精品成人综合 | 成人一级片在线观看| 久久精品网站免费观看| 国产精品一区久久久久| 欧美激情资源网| 北岛玲一区二区三区四区| 亚洲视频免费在线观看| 91电影在线观看| 同产精品九九九| 日韩美一区二区三区| 国产一区欧美一区| 国产欧美一区二区在线| www.66久久| 樱桃视频在线观看一区| 欧美一区二区三区男人的天堂| 久久 天天综合| 欧美激情一区三区| 日本久久精品电影| 日韩电影一区二区三区| 久久精品人人做人人爽人人| 国产69精品久久久久毛片| 国产精品女主播av| 精品视频免费在线| 精品在线视频一区| 国产精品福利在线播放| 欧美日韩精品免费| 国产一本一道久久香蕉| 日韩理论片在线| 欧美一区二区在线视频| 国产**成人网毛片九色| 亚洲国产日韩av| 国产香蕉久久精品综合网| 99视频超级精品| 奇米四色…亚洲| 国产精品乱人伦| 欧美一区午夜视频在线观看| 国产成人免费视频网站 | 国产精品乱码一区二区三区软件| 日本高清免费不卡视频| 国产在线看一区| 亚洲成av人片一区二区梦乃| 久久九九99视频| 欧美精品欧美精品系列| 91色九色蝌蚪| 国产一区二区三区精品欧美日韩一区二区三区 | 91热门视频在线观看| 蜜臀久久99精品久久久久久9| 国产精品成人免费| 精品女同一区二区| 欧美视频在线一区二区三区 | 欧美性感一类影片在线播放| 国产尤物一区二区| 亚瑟在线精品视频| 亚洲欧洲99久久| 久久久蜜桃精品| 91精品国产入口| 日本伦理一区二区| 成人免费毛片高清视频| 激情文学综合网| 日日噜噜夜夜狠狠视频欧美人| 亚洲欧洲99久久| 国产欧美日韩不卡免费| 欧美成人乱码一区二区三区| 在线免费亚洲电影| 97精品电影院| 丁香婷婷综合激情五月色| 另类人妖一区二区av| 午夜精品一区二区三区三上悠亚| 国产精品美女久久久久久久网站| 精品国产伦理网| 日韩一区二区三区免费看 | 日本视频一区二区| 亚洲成人午夜电影| 亚洲成av人片在线观看| 亚洲成人免费视频| 天使萌一区二区三区免费观看| 一区二区三区视频在线看| 中文字幕一区二区不卡| 一区视频在线播放| 亚洲日本一区二区| 依依成人精品视频| 亚洲一区二区高清| 视频一区视频二区在线观看| 亚洲成人激情综合网| 午夜精品久久久久久久久| 亚洲高清免费一级二级三级| 午夜久久久久久| 蜜桃视频第一区免费观看| 蜜桃视频第一区免费观看| 久久99热这里只有精品| 国产一区二区三区四| 丁香婷婷综合网| 色婷婷综合视频在线观看| 欧美综合天天夜夜久久| 欧美电影一区二区三区| 日韩免费一区二区三区在线播放| 亚洲精品一线二线三线无人区| 久久女同精品一区二区| 18成人在线观看| 亚洲自拍欧美精品| 强制捆绑调教一区二区| 韩国女主播成人在线观看| 成人免费黄色大片| 欧美中文字幕一区| 日韩美女视频在线| 最好看的中文字幕久久| 午夜激情综合网| 国产白丝网站精品污在线入口| 97精品久久久午夜一区二区三区 | 99热99精品| 欧美狂野另类xxxxoooo| 久久综合九色欧美综合狠狠| 国产精品理伦片| 日韩国产欧美三级| 国产suv精品一区二区三区| 欧美在线看片a免费观看| 日韩小视频在线观看专区| 国产精品久久久久桃色tv| 亚欧色一区w666天堂| 国产不卡一区视频| 欧美挠脚心视频网站| 国产精品情趣视频| 免费看欧美女人艹b| 91在线无精精品入口| 欧美一级艳片视频免费观看| 亚洲欧美自拍偷拍色图| 日本系列欧美系列| 99久久伊人精品| 久久综合成人精品亚洲另类欧美| 亚洲精品免费播放| 国产一区二区精品在线观看| 91福利视频在线| 中文字幕欧美国产| 青青草精品视频| 欧美影视一区在线| 国产精品麻豆网站| 九九国产精品视频| 在线不卡的av| 亚洲美腿欧美偷拍| 国产丶欧美丶日本不卡视频| 欧美日本一区二区在线观看| 亚洲丝袜自拍清纯另类| 国内成人自拍视频| 欧美理论片在线| 亚洲一区在线电影| 一本一道久久a久久精品| 中文字幕巨乱亚洲| 久久99精品一区二区三区| 欧美日韩在线直播| 亚洲午夜激情网站| 91麻豆免费观看| 亚洲天堂av老司机| 99久久99久久久精品齐齐| 国产精品无人区| 国产一本一道久久香蕉| 精品噜噜噜噜久久久久久久久试看| 一区二区三区在线视频观看58| 99热精品一区二区| 国产精品高潮呻吟| 北条麻妃国产九九精品视频| 日本一区二区综合亚洲| 国产精品一区免费在线观看| 亚洲精品一区二区三区在线观看| 美女脱光内衣内裤视频久久网站| 欧美日韩国产精选| 爽好久久久欧美精品| 欧美人与性动xxxx| 日韩高清不卡一区二区| 精品久久一区二区|