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

📄 timer.cpp

📁 uclinux 下的vlc播放器源代码
💻 CPP
字号:
/***************************************************************************** * timer.cpp : wxWindows plugin for vlc ***************************************************************************** * Copyright (C) 2000-2005 the VideoLAN team * $Id: timer.cpp 13905 2006-01-12 23:10:04Z dionoea $ * * Authors: 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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#include "timer.hpp"#include "input_manager.hpp"#include "interface.hpp"#include "vlc_meta.h"//void DisplayStreamDate( wxControl *, intf_thread_t *, int );/* Callback prototypes */static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable,                        vlc_value_t old_val, vlc_value_t new_val, void *param );static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable,                       vlc_value_t old_val, vlc_value_t new_val, void *param );/***************************************************************************** * Constructor. *****************************************************************************/Timer::Timer( intf_thread_t *_p_intf, Interface *_p_main_interface ){    p_intf = _p_intf;    p_main_interface = _p_main_interface;    b_init = 0;    /* Register callback for the intf-popupmenu variable */    playlist_t *p_playlist =        (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                       FIND_ANYWHERE );    if( p_playlist != NULL )    {        var_AddCallback( p_playlist, "intf-popupmenu", PopupMenuCB, p_intf );        var_AddCallback( p_playlist, "intf-show", IntfShowCB, p_intf );        vlc_object_release( p_playlist );    }    Start( 100 /*milliseconds*/, wxTIMER_CONTINUOUS );}Timer::~Timer(){    /* Unregister callback */    playlist_t *p_playlist =        (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,                                       FIND_ANYWHERE );    if( p_playlist != NULL )    {        var_DelCallback( p_playlist, "intf-popupmenu", PopupMenuCB, p_intf );        var_DelCallback( p_playlist, "intf-show", IntfShowCB, p_intf );        vlc_object_release( p_playlist );    }}/***************************************************************************** * Private methods. *****************************************************************************//***************************************************************************** * Manage: manage main thread messages ***************************************************************************** * In this function, called approx. 10 times a second, we check what the * main program wanted to tell us. *****************************************************************************/void Timer::Notify(){#if defined( __WXMSW__ ) /* Work-around a bug with accelerators */    if( !b_init )    {        p_main_interface->Init();        b_init = VLC_TRUE;    }#endif    vlc_mutex_lock( &p_intf->change_lock );    /* Call update */    p_main_interface->input_manager->Update();    p_main_interface->Update();    /* Show the interface, if requested */    if( p_intf->p_sys->b_intf_show )    {        p_main_interface->Raise();        p_intf->p_sys->b_intf_show = VLC_FALSE;    }    if( p_intf->b_die )    {        vlc_mutex_unlock( &p_intf->change_lock );        /* Prepare to die, young Skywalker */        p_main_interface->Close(TRUE);        return;    }    vlc_mutex_unlock( &p_intf->change_lock );}/***************************************************************************** * PopupMenuCB: callback triggered by the intf-popupmenu playlist variable. *  We don't show the menu directly here because we don't want the *  caller to block for a too long time. *****************************************************************************/static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable,                        vlc_value_t old_val, vlc_value_t new_val, void *param ){    intf_thread_t *p_intf = (intf_thread_t *)param;    if( p_intf->p_sys->pf_show_dialog )    {        p_intf->p_sys->pf_show_dialog( p_intf, INTF_DIALOG_POPUPMENU,                                       new_val.b_bool, 0 );    }    return VLC_SUCCESS;}/***************************************************************************** * IntfShowCB: callback triggered by the intf-show playlist variable. *****************************************************************************/static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable,                       vlc_value_t old_val, vlc_value_t new_val, void *param ){    intf_thread_t *p_intf = (intf_thread_t *)param;    p_intf->p_sys->b_intf_show = VLC_TRUE;    return VLC_SUCCESS;}

⌨️ 快捷键说明

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