00001 /* 00002 Copyright Remco Bras 2007,2008 00003 This file is part of RPGE. 00004 00005 RPGE is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 RPGE is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/> 00017 */ 00018 00019 /* 00020 dispatch.h: define the data structures required for automated dispatching of (SDL) events, declare registration functions etc. 00021 */ 00022 00023 #ifndef DISPATCH_H 00024 #define DISPATCH_H 00025 #include <SDL/SDL.h> 00026 #include <libguile.h> 00027 #include "sequence.h" 00028 00029 typedef struct 00030 { 00031 Uint32 eventid; 00032 SCM (* typefunc)(SDL_Event); 00033 SCM (* datafunc)(SDL_Event); 00034 } dispatch_pair; 00035 00036 00037 dispatch_pair make_dispatch_pair(Uint32 eventtype, SCM (* typeproc)(SDL_Event) , SCM(* dataproc)(SDL_Event) ); 00038 void add_dispatch_pair(dispatch_pair dp); 00039 void remove_dispatch_pair(dispatch_pair dp); 00040 SCM dispatch(SDL_Event e); 00041 void dispatch_init(); 00042 00043 #endif