Jump to content

gapidraw : how to handle incoming call ?


Guest STuFF

Recommended Posts

im beginning in win32 developpement, and I found that Gapidraw is a great lib, especially its GapiApplication Class, which avoid me to handle a lot of win32 stuff i really dont understand... But this class do not catch incomming call properly (and probably other things like reminder, etc)

I've finished (almost 8D) a game (sokoban clone) for the SPV, but the only thing stopping me is this anoying problem.

I've asked the question on the pocketmatrix forum, but no one gave me a solution to my problem. If someone know the solution, or better, can give me the modified GapiDrawApplication.h, it would be great.

thanks by advance.

Link to comment
Share on other sites

Guest spacemonkey

It should be catching messages from the OS in the main loop somewhere. What you need to catch is a few specific messages,

WM_KILLFOCUS, when a call comes in your app goes into background and this message tells it that is happening. GAPI, cos it access the screen directly will keep drawing to the screen even if it's in the background.

When you get a WM_KILLFOCUS you need to either, close your app (and save states), or stop screen access and put your app in a paused mode.

WM_QUIT? (I think that's the one). If your app goes background (ie you had the WM_KILLFOCUS above and you just paused it and left it there, then the OS may later decide that it needs the system resources back and send your app a WM_QUIT. When you receive this message you MUST program your app to shutdown.

Hope that helps... if the app doesn't seem to have a message handling routine (I haven't looked at gapi draw too much myself, and I know it does some of these things itself), post again and I'll go look some stuff up.

PS. WM_KILLFOCUS covers all possibilitys including reminders etc (I think)

Link to comment
Share on other sites

Guest STuFF

thanx again for help spacemonkey :)

You already told me quickly those things, and with your help, i manage to "minimize" my game when a call is comming. The other problem, but maybe it's a "normal" thing, when my game is minimized, i cant answer the call, but at the end, my games is still minimized, and doesnt seem to receive any other message, so it can't get on foreground by itself.

Maybe I should not "minimize" it, but just hide, or whatever else. Maybe im going to save states and exit as you say. Forcing the player to restart the game after all.

I have to say i didnt catch WM_KILLFOCUS for that, but WM_ACTIVATE, looking for WA_INACTIVE.

The original main loop uses a 'SetForegroundWindow' their to keep it in foreground at any cost, which is not (for me) very clever...

another time, thank you spacemonkey !

Link to comment
Share on other sites

Guest spacemonkey

Yeah... depends how you want it to run... It seems that it's dropping to the background but the process is still intercepting all the key presses which is why you can't answer the call.

My stuff I've gone for a full quit when a call comes in, but cos I've just been playing with emulators I think that behaviour is appropriate, cos they take lots of memory etc. Also, when I save state it's the full game state, so when you reload your game is exactly where it was when you quit. This means that the player isn't loseing anything by me closing it fully. The other factor I looked at, was if I just went background, what if they never went back to the game and maybe didn't shutdown their phone cleanly, removed the battery or something weird... then they would have never saved their game which would be bad.

Anyway, good luck and I look forwards to playing your sokoban clone :)

Link to comment
Share on other sites

Guest STuFF

oups...

i've wrote "i cant answer the call". It was "I CAN answer" all is fine. The only thing is that my game keep itself in background. Weird thing, the sound thread (fmodCE) is really well done, the sound stop when a call appends, and came back when the call stops ! At the end, the gapidraw thread is "minimized" but the sound is there :)

I've finished all the game, and im going to look further to resolve this fuc**** problem !

Here is some snapshots, to wait a bit until the release ;)

boxy1.gifboxy2.gif

boxy3.gifboxy4.gif

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.