paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [4811] add "plugin" renderer for video_plugin papget


From: Pascal Brisset
Subject: [paparazzi-commits] [4811] add "plugin" renderer for video_plugin papget
Date: Mon, 19 Apr 2010 13:22:50 +0000

Revision: 4811
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4811
Author:   hecto
Date:     2010-04-19 13:22:50 +0000 (Mon, 19 Apr 2010)
Log Message:
-----------
 add "plugin" renderer for video_plugin papget

Modified Paths:
--------------
    paparazzi3/trunk/sw/ground_segment/cockpit/papgets.ml
    paparazzi3/trunk/sw/lib/ocaml/papget_renderer.ml
    paparazzi3/trunk/sw/lib/ocaml/papget_renderer.mli

Modified: paparazzi3/trunk/sw/ground_segment/cockpit/papgets.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/cockpit/papgets.ml       2010-04-18 
23:31:35 UTC (rev 4810)
+++ paparazzi3/trunk/sw/ground_segment/cockpit/papgets.ml       2010-04-19 
13:22:50 UTC (rev 4811)
@@ -176,6 +176,8 @@
          match display with
            "mplayer" ->
              (new Papget_renderer.canvas_mplayer canvas_group ~config x y :> 
Papget_renderer.t)
+         | "plugin" ->
+             (new Papget_renderer.canvas_plugin canvas_group ~config x y :> 
Papget_renderer.t)
          | _ -> failwith (sprintf "Unexpected papget display: %s" display) in
        
        let properties = locked papget in

Modified: paparazzi3/trunk/sw/lib/ocaml/papget_renderer.ml
===================================================================
--- paparazzi3/trunk/sw/lib/ocaml/papget_renderer.ml    2010-04-18 23:31:35 UTC 
(rev 4810)
+++ paparazzi3/trunk/sw/lib/ocaml/papget_renderer.ml    2010-04-19 13:22:50 UTC 
(rev 4811)
@@ -344,7 +344,33 @@
   end
 
 
+(****************************************************************************)
+class canvas_plugin = fun ?(config=[]) canvas_group x y ->
+  let command = PC.get_prop "command" config "missing_plugin_command" in
+  let width = float_of_string (PC.get_prop "width" config "320.")
+  and height = float_of_string (PC.get_prop "height" config "240.") in
+  let socket = GWindow.socket () in
+  let group = GnoCanvas.group ~x ~y canvas_group in
+  let _item = GnoCanvas.widget ~width ~height ~widget:socket group in
 
+  object
+    method tag = "Plugin"
+    method item = (group :> movable_item)
+    method edit = fun (pack:GObj.widget -> unit) -> ()
+    method update = fun (value:string) -> ()
+    method config = fun () ->
+      [ PC.property "command" command;
+       PC.float_property "width" width;
+       PC.float_property "height" height ]
+    initializer
+      group#lower_to_bottom ();
+      let com = sprintf "exec %s0x%lx" command socket#xwindow in
+      let dev_null = Unix.descr_of_out_channel (open_out "/dev/null") in
+      ignore (Unix.create_process "/bin/sh" [|"/bin/sh"; "-c"; com|] dev_null 
dev_null dev_null)
+  end
+
+
+
 let renderers =
   [ (new canvas_text :> ?config:Xml.xml list -> #GnoCanvas.group -> float -> 
float -> t);
     (new canvas_ruler :> ?config:Xml.xml list -> #GnoCanvas.group -> float -> 
float -> t);

Modified: paparazzi3/trunk/sw/lib/ocaml/papget_renderer.mli
===================================================================
--- paparazzi3/trunk/sw/lib/ocaml/papget_renderer.mli   2010-04-18 23:31:35 UTC 
(rev 4810)
+++ paparazzi3/trunk/sw/lib/ocaml/papget_renderer.mli   2010-04-19 13:22:50 UTC 
(rev 4811)
@@ -57,6 +57,9 @@
 class canvas_mplayer : ?config:Xml.xml list -> #GnoCanvas.group -> float -> 
float -> t
 (** [canvas_mplayer config group x y] *)
 
+class canvas_plugin : ?config:Xml.xml list -> #GnoCanvas.group -> float -> 
float -> t
+(** [canvas_plugin config group x y] *)
+
 val lazy_tagged_renderers :
   (string * (?config:Xml.xml list -> GnoCanvas.group -> float -> float -> t))
   list lazy_t





reply via email to

[Prev in Thread] Current Thread [Next in Thread]