home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 July / CMCD0704.ISO / Software / Freeware / Utilitare / VisualBoyAdvance-1.7.2 / src / gtk / input.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-03-25  |  1.4 KB  |  54 lines

  1. // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
  2. // Copyright (C) 1999-2003 Forgotten
  3. // Copyright (C) 2004 Forgotten and the VBA development team
  4.  
  5. // This program is free software; you can redistribute it and/or modify
  6. // it under the terms of the GNU General Public License as published by
  7. // the Free Software Foundation; either version 2, or(at your option)
  8. // any later version.
  9. //
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. //
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software Foundation,
  17. // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18.  
  19. #include "input.h"
  20.  
  21. #include <new>
  22.  
  23. namespace VBA
  24. {
  25.  
  26. Keymap::Keymap()
  27. {
  28.   m_pstTable = g_hash_table_new(g_direct_hash, g_direct_equal);
  29.   if (m_pstTable == NULL)
  30.   {
  31.     throw std::bad_alloc();
  32.   }
  33. }
  34.  
  35. Keymap::~Keymap()
  36. {
  37.   g_hash_table_destroy(m_pstTable);
  38. }
  39.  
  40. void Keymap::vRegister(guint _uiVal, EKey _eKey)
  41. {
  42.   g_hash_table_insert(m_pstTable,
  43.                       GUINT_TO_POINTER(_uiVal),
  44.                       GUINT_TO_POINTER(_eKey));
  45. }
  46.  
  47. void Keymap::vClear()
  48. {
  49.   g_hash_table_destroy(m_pstTable);
  50.   m_pstTable = g_hash_table_new(g_direct_hash, g_direct_equal);
  51. }
  52.  
  53. } // namespace VBA
  54.