[SDL] pushing iphone events to sdl - its easy

michelleC michelle at mooncatventures.com
Fri Mar 26 21:38:15 PDT 2010


So I set out to create an OSD overlay for the sdl/opengl iphone player I've been building.

Please look at this picture before reading more.

http://web.me.com/cannonwc/Site_4/Photos.html#1

But How to translate the uikit touches to an sdl event, turns out it was a lot easier than I thought.

Here's how.

1) first lets create a simple event loop, for simplicity lets include only two events.

SDL_Event event;
	double incr, pos, frac;
	int done = 0;
	while (!done) {
		SDL_WaitEvent(&event);
		switch(event.type) {
			case SDL_KEYDOWN:
				switch(event.key.keysym.sym) {
					case SDLK_f:
						toggle_full_screen();
						break;
					case SDLK_F11:
					do_exit(&done);					
						break;
                                        default:
				sdl_quit;
				fprintf(stdout, "Release control");
				break;



Now on the iphone uikit HUDView.m we create the button bar.

Again for simplicity we will only show the quit_event we are handling.

	UIButton *quitButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 10, 48.0f, 48.0f)];
	[quitButton setBackgroundImage:[[UIImage imageNamed:@"quit.png"] stretchableImageWithLeftCapWidth:48.0 topCapHeight:0.0] forState:UIControlStateNormal];
	//[stopButton setCenter:CGPointMake(195.0f, 208.0f)];
    quitButton.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
   [quitButton addTarget:self action:@selector(quitClicked)
	forControlEvents:UIControlEventTouchUpInside];
	[self addSubview:quitButton];



//Notice the selector

//when we click the quitbutton  the quitClicked method is called.



//we create an event simulating pressing the f11 key.

-(void)quitClicked {
  
   SDL_KeyboardEvent event;
    event.type = SDL_KEYDOWN;
    event.which = 0;
    event.state = SDL_PRESSED;
    event.keysym.sym = SDLK_F11;
    SDL_PushEvent((SDL_Event*)&event);  // Send the F11 key press
    event.type = SDL_KEYUP;
    event.state = SDL_RELEASED;
    SDL_PushEvent((SDL_Event*)&event);  // Send the F11 key release

}


//Thats all


To see the viewer in action you can see this on youtube

http://www.youtube.com/watch?v=Rdb0eKhmH4Q




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20100326/0022c479/attachment.htm>


More information about the SDL mailing list