Functions | |
| DECLSPEC SDL_EventMap *SDLCALL | SDLH_Create () |
| Creates an SDL_EventMap structure. | |
| DECLSPEC void SDLCALL | SDLH_Free (SDL_EventMap *) |
| Frees an SDL_EventMap structure and it's contents. | |
| DECLSPEC void SDLCALL | SDLH_Clear (SDL_EventMap *) |
| Removes all event associations fron an SDL_EventMap. | |
| DECLSPEC int SDLCALL | SDLH_RemoveEvent (SDL_EventMap *, Uint32 hash) |
| Removes specified input association from an SDL_EventMap. | |
| DECLSPEC int SDLCALL | SDLH_RemoveID (SDL_EventMap *, int id) |
| Removes specified output association from an SDL_EventMap. | |
| DECLSPEC int SDLCALL | SDLH_AddHashEvent (SDL_EventMap *, Uint32, int id) |
| Adds an event association to an SDL_EventMap. | |
| DECLSPEC int SDLCALL | SDLH_AddEvent (SDL_EventMap *, SDL_Event *, int, Uint32 flag) |
| Adds an event association to an SDL_EventMap directly. | |
| DECLSPEC Uint32 SDLCALL | SDLH_Learn (SDL_EventMap *, int eid, Uint32 flags) |
| Adds an event to an SDL_EventMap based on input. Warning, blocks. | |
| DECLSPEC int SDLCALL | SDLH_TranslateEvent (SDL_EventMap *, SDL_Event *, Uint32 flag) |
| Translates a SDL_Event to SDL_Events specified by the SDL_EventMap. | |
| DECLSPEC int SDLCALL | SDLH_Save (SDL_EventMap *, SDL_RWops *stream) |
| Saves an SDL_EventMap to a SDL_RWops stream. | |
| DECLSPEC SDL_EventMap *SDLCALL | SDLH_Load (SDL_RWops *stream) |
| Loads an SDL_EventMap from a SDL_RWops stream. | |
|
||||||||||||||||||||
|
Adds an event association to the SDL_EventMap if 'event' is a valid event given the filter flags. Definition at line 188 of file SDL_eventmap.cpp. References SDL_EventMap, SDLH_AddHashEvent(), and SDLH_HashEvent().
00189 {
00190 Uint32 hash=SDLH_HashEvent(event,flag);
00191
00192 return(SDLH_AddHashEvent(eventmap,hash,id));
00193 }
|
|
||||||||||||||||
|
Adds a raw event hash to the SDL_EventMap. Definition at line 199 of file SDL_eventmap.cpp. References SDL_EventMap. Referenced by SDLH_AddEvent(), and SDLH_Learn().
00200 {
00201 SDL_EM *em=(SDL_EM *)eventmap;
00202
00203 if((eventmap==NULL)||(id<0)||(hash==0))
00204 return(-1);
00205
00206 (*em)[hash]=(id+1);
00207
00208 return(0);
00209 }
|
|
||||||||||||||||
|
Learns an event association from user input. Takes the event map, the SDL_UserEvent code, and filter flags. It will wait for a valid event until one is received or an SDL_QUIT event occurs. Definition at line 54 of file SDL_eventmap.cpp. References SDL_EventMap, SDLH_AddHashEvent(), and SDLH_HashEvent(). Referenced by main().
00055 {
00056 int running=1;
00057 SDL_Event event;
00058 if((emap==NULL)||(id<0))
00059 return(0);
00060
00061 while(running)
00062 {
00063 while(SDL_PollEvent(&event))
00064 {
00065 Uint32 hash=0;
00066 switch(event.type)
00067 {
00068 case SDL_QUIT:
00069 return(0);
00070
00071 default:
00072 hash=SDLH_HashEvent(&event,flag);
00073 break;
00074 }
00075
00076 if(hash!=0)
00077 {
00078 if(SDLH_AddHashEvent(emap,hash,id)<0)
00079 return(0);
00080 else
00081 return(hash);
00082 }
00083 }
00084
00085 SDL_Delay(10);
00086 }
00087 return(0);
00088 }
|
|
||||||||||||
|
Removes the event association with the input hash 'hash' from the SDL_EventMap. Definition at line 161 of file SDL_eventmap.cpp. References SDL_EventMap.
00162 {
00163 SDL_EM *em=(SDL_EM *)eventmap;
00164
00165 if((em==NULL)||(hash==0))
00166 return(-1);
00167
00168 SDL_EM::iterator i=em->begin();
00169
00170 while(i!=em->end())
00171 {
00172 if(i->first==hash)
00173 {
00174 em->erase(i);
00175 return(0);
00176 }
00177
00178 i++;
00179 }
00180
00181 return(-1);
00182 }
|
|
||||||||||||
|
Removes event hashes attached to the output SDL_UserEvent 'id'. If Definition at line 21 of file SDL_eventmap.cpp. References SDL_EventMap.
00022 {
00023 SDL_EM *em=(SDL_EM *)emap;
00024 int removed=0;
00025
00026 if((em==NULL)||(id<0))
00027 return(-1);
00028
00029 SDL_EM::iterator i=em->begin();
00030
00031 while(i!=em->end())
00032 {
00033 SDL_EM::iterator next=i;
00034 ++next;
00035
00036 if((i->second)==(id+1))
00037 {
00038 em->erase(i);
00039 removed++;
00040 }
00041 i=next;
00042 }
00043
00044 return(removed);
00045 }
|
|
||||||||||||||||
|
Given an event map and an event, it translates mapped SDL_Events to SDL_UserEvents. Returns -1 for unmapped events, 0 for mapped ones. Definition at line 215 of file SDL_eventmap.cpp. References SDL_EventMap, and SDLH_HashEvent(). Referenced by main().
00216 {
00217 int hash;
00218 SDL_EM *em=(SDL_EM *)emap;
00219
00220 if((emap==NULL)||(event==NULL))
00221 return(-1);
00222
00223 hash=SDLH_HashEvent(event,flag);
00224 if(hash==0)
00225 return(-1);
00226
00227 if(!(*em)[hash])
00228 return(-1);
00229 else
00230 {
00231 SDL_Event uevent;
00232 uevent.type=SDL_USEREVENT;
00233 uevent.user.code=(*em)[hash]-1;
00234 uevent.user.data1=(void *)(long int)hash;
00235 uevent.user.data2=NULL;
00236 SDL_PushEvent(&uevent);
00237 return(0);
00238 }
00239 }
|
1.3.5