3 * author: hackbard@hackdaworld.dyndns.org
12 // int flip_blit_callback()
13 // int dfb_play_video()
14 // int dfb_stop_video()
16 int dfb_init(int arg_c,char **arg_v,struct ivac *ivac) {
17 DFBSurfaceDescription sdsc;
18 // DFBFontDescription fdsc;
19 DFBWindowDescription wdsc;
22 DirectFBInit(&arg_c,&arg_v);
23 DirectFBCreate(&(ivac->dfb_stuff.dfb));
25 /* input devices and event stuff */
26 ivac->dfb_stuff.dfb->GetInputDevice(ivac->dfb_stuff.dfb,DIDID_MOUSE,&(ivac->dfb_stuff.mouse));
27 ivac->dfb_stuff.dfb->GetInputDevice(ivac->dfb_stuff.dfb,DIDID_KEYBOARD,&(ivac->dfb_stuff.keyboard));
28 ivac->dfb_stuff.mouse->CreateEventBuffer(ivac->dfb_stuff.mouse,&(ivac->dfb_stuff.buffer));
30 /* first window -- video window */
31 ivac->dfb_stuff.dfb->GetDisplayLayer(ivac->dfb_stuff.dfb,DLID_PRIMARY,&(ivac->dfb_stuff.layer));
32 ivac->dfb_stuff.dfb->CreateVideoProvider(ivac->dfb_stuff.dfb,ivac->video_dev,&(ivac->dfb_stuff.v_provider));
33 ivac->dfb_stuff.v_provider->GetSurfaceDescription(ivac->dfb_stuff.v_provider,&sdsc);
35 wdsc.flags=DWDESC_POSX|DWDESC_POSY|DWDESC_WIDTH|DWDESC_HEIGHT;
38 wdsc.width=sdsc.width;
39 wdsc.height=sdsc.height;
41 ivac->dfb_stuff.layer->CreateWindow(ivac->dfb_stuff.layer,&wdsc,&(ivac->dfb_stuff.v_window));
42 ivac->dfb_stuff.v_window->GetSurface(ivac->dfb_stuff.v_window,&(ivac->dfb_stuff.v_surface));
43 ivac->dfb_stuff.v_window->SetOpacity(ivac->dfb_stuff.v_window,0xff);
44 ivac->dfb_stuff.v_provider->PlayTo(ivac->dfb_stuff.v_provider,ivac->dfb_stuff.v_surface,NULL,NULL,NULL);
49 int dfb_tini(struct ivac *ivac) {
50 ivac->dfb_stuff.v_provider->Release(ivac->dfb_stuff.v_provider);
51 ivac->dfb_stuff.v_window->Release(ivac->dfb_stuff.v_window);
52 ivac->dfb_stuff.layer->Release(ivac->dfb_stuff.layer);
53 ivac->dfb_stuff.dfb->Release(ivac->dfb_stuff.dfb);