char *title_txt="directfb photoshow";
char *exp_txt="an image presenter ...";
char *hp_txt="http://hackdaworld.dyndns.org";
-char *msg1_txt="(press key to continue ...)";
+char *msg1_txt="(press key to continue, space pauses, esc quits ...)";
void clear_primary(void) {
DFBCHECK(primary->SetColor(primary,0x00,0x00,0x00,0x00));
DFBCHECK(k_buf->WaitForEvent(k_buf));
/* display pictures */
- DFBCHECK(k_buf->Reset(k_buf));
i=2;
while(i<argc) {
do {
- if(k_event.type==DIET_KEYPRESS) {
- int a;
- puts("debug: key pressed!");
- a=(int)k_event.key_id;
- printf("debug: key id -> %d\n",a);
- printf("\tp=%d,' '=%d\n",(int)DIKI_ESCAPE,(int)DIKI_SPACE);
- if(a==(int)DIKI_ESCAPE) {
- i=argc;
- break;
+ if((int)k_buf->GetEvent(k_buf,DFB_EVENT(&k_event))!=0) {
+ if(k_event.type==DIET_KEYPRESS) {
+ int a;
+ a=(int)k_event.key_id;
+ if(a==(int)DIKI_ESCAPE) {
+ i=argc;
+ break;
+ }
+ if(a==(int)DIKI_SPACE) {
+ char *pause_txt="paused (press button to continue)";
+ DFBCHECK(font->GetStringWidth(font,pause_txt,-1,&str_width));
+ DFBCHECK(primary->DrawString(primary,pause_txt,-1,(screen_width-str_width)/2,screen_height/2,DSTF_LEFT));
+ DFBCHECK(primary->Flip(primary,NULL,DSFLIP_WAITFORSYNC));
+ DFBCHECK(k_buf->Reset(k_buf));
+ DFBCHECK(k_buf->WaitForEvent(k_buf));
+ k_event.key_id=DIKI_A; /* no longer pause! */
+ }
}
- if(a==(int)DIKI_SPACE) {
- char *pause_txt="paused (press button to continue)";
- DFBCHECK(font->GetStringWidth(font,pause_txt,-1,&str_width));
- DFBCHECK(primary->DrawString(primary,pause_txt,-1,(screen_width-str_width)/2,screen_height/2,DSTF_LEFT));
- DFBCHECK(primary->Flip(primary,NULL,DSFLIP_WAITFORSYNC));
- DFBCHECK(k_buf->Reset(k_buf));
- DFBCHECK(k_buf->WaitForEvent(k_buf));
- }
- DFBCHECK(k_buf->Reset(k_buf)); /* destroy space press */
- DFBCHECK(k_buf->Reset(k_buf)); /* destroy space release */
}
DFBCHECK(dfb->CreateImageProvider(dfb,argv[i],&img_prov));
DFBCHECK(img_prov->GetSurfaceDescription(img_prov,&dsc));
}
DFBCHECK(primary->Flip(primary,NULL,DSFLIP_WAITFORSYNC));
// sleep(atoi(argv[1]));
+ // DFBCHECK(k_buf->Reset(k_buf));
+ DFBCHECK(k_buf->Reset(k_buf));
k_buf->WaitForEventWithTimeout(k_buf,atoi(argv[1]),0);
logo->Release(logo);
++i;