1 /***************************************************************************** 2 * os2_loop.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_LOOP_HPP 26 #define OS2_LOOP_HPP 27 28 #include "../events/evt_mouse.hpp" 29 #include "../src/os_loop.hpp" 30 #include <map> 31 32 33 class GenericWindow; 34 35 /// Main event loop for OS2 36 class OS2Loop: public OSLoop 37 { 38 public: 39 /// Get the instance of OS2Loop 40 static OSLoop *instance( intf_thread_t *pIntf ); 41 42 /// Destroy the instance of OS2Loop 43 static void destroy( intf_thread_t *pIntf ); 44 45 /// Enter the event loop 46 virtual void run(); 47 48 /// Exit the main loop 49 virtual void exit(); 50 51 /// called by the window procedure callback 52 virtual MRESULT EXPENTRY processEvent( HWND hwnd, ULONG msg, 53 MPARAM mp1, MPARAM mp2 ); 54 55 private: 56 // Private because it is a singleton 57 OS2Loop( intf_thread_t *pIntf ); 58 virtual ~OS2Loop(); 59 60 /// Map associating special (i.e. non ascii) virtual key codes with 61 /// internal vlc key codes 62 std::map<int, int> virtKeyToVlcKey; 63 64 /// Helper function to find the modifier in a Windows message 65 int getMod( MPARAM mp ) const; 66 }; 67 68 #endif 69