---
 src/gui/videoin.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/gui/videoin.c b/src/gui/videoin.c
index 4971de1..7aa6d8c 100644
--- a/src/gui/videoin.c
+++ b/src/gui/videoin.c
@@ -32,6 +32,8 @@
 #include "cp.h"
 #include "../input.h"
 #include "videoin.h"
+#include "../compiler/compiler.h"
+#include "guirender.h"
 
 static int appid;
 
@@ -193,8 +195,41 @@ static void close_videoin_window(void)
        resmgr_release(RESOURCE_VIDEOIN);
 }
 
+static void dummy_rmc(const char *msg)
+{
+}
+
+static void stop_callback(void)
+{
+       if(!resmgr_acquire("Video in settings", RESOURCE_VIDEOIN))
+               return;
+
+       video_fd = open("/dev/video", O_RDWR);
+       if(video_fd == -1) {
+               perror("Unable to open video device");
+               resmgr_release(RESOURCE_VIDEOIN);
+               return;
+       }
+       input_add_callback(preview_update);
+}
+
 static void fullscreen_callback(mtk_event *e, void *arg)
 {
+       struct patch *p;
+       char *dummy_filename = "FS";
+       char *code = "video_a=1;decay=0;";
+
+       p = patch_compile_filename(dummy_filename, code, dummy_rmc);
+       if(p == NULL)
+               return;
+
+       close(video_fd);
+       input_delete_callback(preview_update);
+       resmgr_release(RESOURCE_VIDEOIN);
+
+       guirender(appid, p, stop_callback);
+
+       patch_free(p);
 }
 
 static void ok_callback(mtk_event *e, void *arg)
-- 
1.7.5.4

_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode

Reply via email to