From bfdf5897cd09b15d84608828f82cbd5163c11ab9 Mon Sep 17 00:00:00 2001 From: hackbard Date: Wed, 26 Feb 2003 19:57:53 +0000 Subject: [PATCH] event stuff fixed, begin with directory parsing now --- dfb-photoshow.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/dfb-photoshow.c b/dfb-photoshow.c index f13b926..de27606 100644 --- a/dfb-photoshow.c +++ b/dfb-photoshow.c @@ -39,7 +39,7 @@ IDirectFBEventBuffer *k_buf=NULL; 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)); @@ -91,30 +91,27 @@ int main(int argc,char **argv) { DFBCHECK(k_buf->WaitForEvent(k_buf)); /* display pictures */ - DFBCHECK(k_buf->Reset(k_buf)); i=2; while(i %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)); @@ -133,6 +130,8 @@ int main(int argc,char **argv) { } 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; -- 2.39.2