1 /***************************************************************************** 2 * os2_timer.hpp 3 ***************************************************************************** 4 * Copyright (C) 2003, 2013 the VideoLAN team 5 * 6 * Authors: Cyril Deguet <asmax@via.ecp.fr> 7 * Olivier Teulière <ipkiss@via.ecp.fr> 8 * KO Myung-Hun <komh@chollian.net> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License along 21 * with this program; if not, write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 23 *****************************************************************************/ 24 25 #ifndef OS2_TIMER_HPP 26 #define OS2_TIMER_HPP 27 28 #include "../src/os_timer.hpp" 29 30 class CmdGeneric; 31 32 // OS2 specific timer 33 class OS2Timer: public OSTimer 34 { 35 public: 36 OS2Timer( intf_thread_t *pIntf, CmdGeneric &rCmd, HWND hWnd ); 37 virtual ~OS2Timer(); 38 39 /// (Re)start the timer with the given delay (in ms). If oneShot is 40 /// true, stop it after the first execution of the callback. 41 virtual void start( int delay, bool oneShot ); 42 43 /// Stop the timer 44 virtual void stop(); 45 46 /// Execute the callback 47 void execute(); 48 49 private: 50 /// Command to execute 51 CmdGeneric &m_rCommand; 52 53 /// Delay between two execute 54 mtime_t m_interval; 55 56 /// Flag to tell whether the timer must be stopped after the 57 /// first execution 58 bool m_oneShot; 59 60 /// Handle of the window to which the timer will be attached 61 HWND m_hWnd; 62 63 /// Handle of the timer window 64 HWND m_hwndTimer; 65 }; 66 67 68 #endif 69