start of ivac (webcam tests)
[my-code/ivac.git] / dfbapi.c
1 /* dfb functions
2  *
3  * author: hackbard@hackdaworld.dyndns.org
4  *
5  */
6
7 #include <stdio.h>
8 #include <directfb.h>
9 #include "ivac.h"
10
11 int dfb_init(int arg_c,char **arg_v,struct ivac *ivac) {
12         DFBSurfaceDescription surface_dsc;
13         DFBFontDescription font_dsc;
14         
15         DirectFBInit(&arg_c,&arg_v);
16         DirectFBCreate(&(ivac->dfb_stuff.dfb));
17         ivac->dfb_stuff.dfb->SetCooperativeLevel(ivac->dfb_stuff.dfb,DFSCL_FULLSCREEN);
18
19         surface_dsc.flags=DSDESC_CAPS;
20         surface_dsc.caps=DSCAPS_PRIMARY|DSCAPS_FLIPPING;
21         ivac->dfb_stuff.dfb->CreateSurface(ivac->dfb_stuff.dfb,&surface_dsc,&(ivac->dfb_stuff.p_surface));
22         ivac->dfb_stuff.p_surface->GetSize(ivac->dfb_stuff.p_surface,&(ivac->dfb_stuff.s_width),&(ivac->dfb_stuff.s_height));
23
24         font_dsc.flags=DFDESC_HEIGHT;
25         font_dsc.height=ivac->dfb_stuff.s_height/20;
26         ivac->dfb_stuff.dfb->CreateVideoProvider(ivac->dfb_stuff.dfb,ivac->video_dev,&(ivac->dfb_stuff.v_provider));
27
28         return 1;
29 }
30
31 int dfb_tini(struct ivac *ivac) {
32         ivac->dfb_stuff.v_provider->Release(ivac->dfb_stuff.v_provider);
33         ivac->dfb_stuff.p_surface->Release(ivac->dfb_stuff.p_surface);
34         ivac->dfb_stuff.dfb->Release(ivac->dfb_stuff.dfb);
35         
36         return 1;
37 }
38