test makefile added
[my-code/ivac.git] / dfbapi.c
index 7de46c3..f1444e1 100644 (file)
--- a/dfbapi.c
+++ b/dfbapi.c
@@ -8,10 +8,27 @@
 #include <directfb.h>
 #include "ivac.h"
 
-// do
-// int flip_blit_callback()
-// int dfb_play_video()
-// int dfb_stop_video()
+int flip_blit_callback(void *ctx) {
+       struct ivac *ivac=ctx;
+
+       ivac->dfb_stuff.v_surface->Flip(ivac->dfb_stuff.v_surface,NULL,0);
+
+       return 1;
+}
+
+int dfb_play_video(struct ivac *ivac) {
+
+       ivac->dfb_stuff.v_provider->PlayTo(ivac->dfb_stuff.v_provider,ivac->dfb_stuff.v_surface,NULL,flip_blit_callback,(void *)ivac);
+
+       return 1;
+}
+       
+int dfb_stop_video(struct ivac *ivac) {
+
+       ivac->dfb_stuff.v_provider->Stop(ivac->dfb_stuff.v_provider);
+       
+       return 1;
+}
 
 int dfb_init(int arg_c,char **arg_v,struct ivac *ivac) {
        DFBSurfaceDescription sdsc;
@@ -41,7 +58,6 @@ int dfb_init(int arg_c,char **arg_v,struct ivac *ivac) {
        ivac->dfb_stuff.layer->CreateWindow(ivac->dfb_stuff.layer,&wdsc,&(ivac->dfb_stuff.v_window));
        ivac->dfb_stuff.v_window->GetSurface(ivac->dfb_stuff.v_window,&(ivac->dfb_stuff.v_surface));
        ivac->dfb_stuff.v_window->SetOpacity(ivac->dfb_stuff.v_window,0xff);
-       ivac->dfb_stuff.v_provider->PlayTo(ivac->dfb_stuff.v_provider,ivac->dfb_stuff.v_surface,NULL,NULL,NULL);
 
        return 1;
 }
@@ -54,4 +70,3 @@ int dfb_tini(struct ivac *ivac) {
        
        return 1;
 }
-