+
+ /* now we flip all to surface */
+ d3_l->p_surface->Flip(d3_l->p_surface,NULL,0);
+
+ return 1;
+}
+
+int d2_event_init(d2_lattice *d2_l)
+{
+ d2_l->dfb->GetInputDevice(d2_l->dfb,DIDID_KEYBOARD,&(d2_l->keyboard));
+ d2_l->keyboard->CreateEventBuffer(d2_l->keyboard,&(d2_l->k_buffer));
+
+ return 1;
+}
+
+int d3_event_init(d3_lattice *d3_l)
+{
+ d3_l->dfb->GetInputDevice(d3_l->dfb,DIDID_KEYBOARD,&(d3_l->keyboard));
+ d3_l->keyboard->CreateEventBuffer(d3_l->keyboard,&(d3_l->k_buffer));
+
+ return 1;
+}
+
+int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc,int *switchmode,int *bmp,int *ac_distr)
+{
+ DFBInputEvent ke;
+
+ d3_l->k_buffer->WaitForEvent(d3_l->k_buffer);
+ d3_l->k_buffer->GetEvent(d3_l->k_buffer,DFB_EVENT(&ke));
+ if(ke.type==DIET_KEYPRESS)
+ {
+ if(ke.key_id==DIKI_LEFT && *x!=0) *x-=1;
+ if(ke.key_id==DIKI_RIGHT && *x!=d3_l->max_x-1) *x+=1;
+ if(ke.key_id==DIKI_UP && *y!=0) *y-=1;
+ if(ke.key_id==DIKI_DOWN && *y!=d3_l->max_y-1) *y+=1;
+ if(ke.key_id==DIKI_PAGE_UP && *z!=0) *z-=1;
+ if(ke.key_id==DIKI_PAGE_DOWN && *z!=d3_l->max_z-1) *z+=1;
+ if(ke.key_id==DIKI_Q) *q=1;
+ if(ke.key_id==DIKI_ESCAPE) *esc=1;
+ if(ke.key_id==DIKI_M) *switchmode=(*switchmode+1)%4;
+ if(ke.key_id==DIKI_1) *bmp=1;
+ if(ke.key_id==DIKI_2) *bmp=2;
+ if(ke.key_id==DIKI_3) *bmp=3;
+ if(ke.key_id==DIKI_4) *bmp=4;
+ if(ke.key_id==DIKI_5) *bmp=5;
+ if(ke.key_id==DIKI_6) *bmp=6;
+ if(ke.key_id==DIKI_7) *bmp=7;
+ if(ke.key_id==DIKI_8) *bmp=8;
+ if(ke.key_id==DIKI_9) *bmp=9;
+ if(ke.key_id==DIKI_W) *bmp=10;
+ if(ke.key_id==DIKI_E) *bmp=11;
+ if(ke.key_id==DIKI_R) *bmp=12;
+ if(ke.key_id==DIKI_A) *ac_distr=1;
+ if(ke.key_id==DIKI_C) *ac_distr=2;
+ if(ke.key_id==DIKI_B) *ac_distr=3;
+ if(ke.key_id==DIKI_X) *ac_distr=4;