2 * dfb_api.c - api to dfb interface
13 #define MY_FONT_HEIGHT 18
18 IDirectFB *dfb = NULL;
20 IDirectFBSurface *primary = NULL;
21 IDirectFBSurface *logo = NULL;
22 IDirectFBSurface *subsurface = NULL;
23 IDirectFBSurface *window = NULL;
25 IDirectFBImageProvider *image_provider = NULL;
26 IDirectFBVideoProvider *video_provider = NULL;
28 static int screen_width = 0;
29 static int screen_height = 0;
31 char dfb_video_dev[]="/dev/v4l/video0";
32 char text_top[]="Internet Video / Audio Conferencing";
33 char dfb_image[]="./images/ivac_logo.png";
34 char dfb_font[]="./fonts/decker.ttf";
37 int dfb_init(int *argc,char **argv) {
38 DirectFBInit(argc,&argv);
40 dfb->SetCooperativeLevel(dfb,DFSCL_FULLSCREEN);
44 int check_accel(void) {
45 DFBCardCapabilities caps;
46 dfb->GetCardCapabilities(dfb,&caps);
47 return (caps.acceleration_mask);
50 int create_primary_surface(void) {
51 DFBSurfaceDescription desc;
52 memset(&desc,0,sizeof(DFBSurfaceDescription));
53 desc.flags=DSDESC_CAPS;
54 desc.caps=DSCAPS_PRIMARY;
55 dfb->CreateSurface(dfb,&desc,&primary);
59 int show_image(IDirectFBSurface *surface) {
60 dfb->CreateImageProvider(dfb,dfb_image,&image_provider);
61 image_provider->RenderTo(image_provider,surface,NULL);
62 image_provider->Release(image_provider);
66 int play_video(IDirectFBSurface *surface) {
67 dfb->CreateVideoProvider(dfb,dfb_video_dev,&video_provider);
68 video_provider->PlayTo(video_provider,surface,NULL,NULL,NULL);
69 // video_provider->Release(video_provider);
73 int release_surface(IDirectFBSurface *surface) {
74 surface->Release(surface);
78 int release_dfb(void) {
85 int main (int argc, char **argv) {
91 create_primary_surface();
93 // play_video(primary);
96 primary->Flip(primary,NULL,DSFLIP_WAITFORSYNC);
100 release_surface(primary);