# HG changeset patch # User Robert McIntyre # Date 1346595523 18000 # Node ID 4503899241e65ee71810d4974f125298eea30230 # Parent 0b4ff504157da4f918c91887227c982f3b5f1e93 going to render the advanced choreo. diff -r 0b4ff504157d -r 4503899241e6 clojure/com/aurellem/run/adv_choreo.clj --- a/clojure/com/aurellem/run/adv_choreo.clj Sun Sep 02 06:37:11 2012 -0500 +++ b/clojure/com/aurellem/run/adv_choreo.clj Sun Sep 02 09:18:43 2012 -0500 @@ -341,13 +341,73 @@ (defn advanced-steps [] (first (activate-program))) + +(def gb-button-bar + (File. user-home "/proj/vba-clojure/images/gb-button-bar.png")) + +(def gb-button-mark + (File. user-home "/proj/vba-clojure/images/gb-button-mark.png")) + +(defn adv-write-move-image! [move target-file] + (let [buttons (set move) + key-positions + {:l [23 23] + :u [33 11] + :r [46 23] + :d [33 26] + + :start [65 24] + :select [80 24] + + :b [100 25] + :a [121 25]}] + (apply + clojure.java.shell/sh + (flatten + ["convert" + (.getCanonicalPath gb-button-bar) + (map + (fn [key] + (let [[x y] (key-positions key)] + (.getCanonicalPath gb-button-mark) + "-geometry" (str "+" x "+" y) "-composite")) + buttons) + (.getCanonicalPath target-file)])))) + +(defn adv-composite-frames-command + [move-image screenshot target] + ["convert" + screenshot + move-image "-append" + target]) + +(defn adv-generate-composite-frames! + [^File rendered-dir] + (let [final-frames (File. rendered-dir "final") + _ (.mkdir final-frames) + move-images (file-names (File. rendered-dir "moves")) + screenshots (file-names (File. rendered-dir "frames")) + targets (map #(.getCanonicalPath + (File. final-frames (format "%07d.bmp" %))) + (range (count screenshots)))] + (dorun + (map + (comp + (partial apply clojure.java.shell/sh) + flatten + (partial apply adv-composite-frames-command) + (fn [a b d] (println d) [a b d])) + move-images screenshots targets)))) + (defn advanced-step-1! [] (render-files! advanced-render-dir + adv-write-move-image! + false (root) (advanced-steps))) (defn advanced-step-2! [] - (generate-composite-frames! + (adv-generate-composite-frames! advanced-render-dir)) (defn advanced-step-3! [] (final-cut! advanced-render-dir)) diff -r 0b4ff504157d -r 4503899241e6 clojure/com/aurellem/run/basic_choreo.clj --- a/clojure/com/aurellem/run/basic_choreo.clj Sun Sep 02 06:37:11 2012 -0500 +++ b/clojure/com/aurellem/run/basic_choreo.clj Sun Sep 02 09:18:43 2012 -0500 @@ -69,6 +69,55 @@ (transfer-control image-program-start) (do-nothing 1800)))) +(defn basic-write-move-image! [move target-file] + (let [actual-keys (set move) + keys [:a :b :start :select :u :d :l :r] + button-on-name ["-size" "5x5" "xc:red"] + button-off-name ["-size" "5x5" "xc:white"]] + (apply + clojure.java.shell/sh + (flatten + ["convert" + "-size" "64x5" "xc:white" + (map + (fn [index] + (let [position ["-geometry" + (str "+" (* index 8) + "+" "0") "-composite"]] + (if (actual-keys (keys index)) + [button-on-name position] + [button-off-name position]))) + (range (count keys))) + (.getCanonicalPath target-file)])))) + +(defn basic-composite-frames-command + [move-image screenshot ram-map target] + ["convert" + "-size" "318x276" "xc:white" + move-image "-geometry" "+30+225" "-composite" + screenshot "-geometry" "+10+10" "-composite" + ram-map "-geometry" "+180+10" "-composite" + target]) + +(defn basic-generate-composite-frames! + [^File rendered-dir] + (let [final-frames (File. rendered-dir "final") + _ (.mkdir final-frames) + move-images (file-names (File. rendered-dir "moves")) + screenshots (file-names (File. rendered-dir "frames")) + ram-maps (file-names (File. rendered-dir "ram-map")) + targets (map #(.getCanonicalPath + (File. final-frames (format "%07d.bmp" %))) + (range (count screenshots)))] + (dorun + (map + (comp + (partial apply clojure.java.shell/sh) + flatten + (partial apply basic-composite-frames-command) + (fn [a b c d] (println d) [a b c d])) + move-images screenshots ram-maps targets)))) + (def basic-render-dir (File. user-home "proj/vba-clojure/render/basic")) @@ -77,10 +126,12 @@ (defn basic-step-1! [] (render-files! basic-render-dir + basic-write-move-image! + true (root) (basic-steps))) (defn basic-step-2! [] - (generate-composite-frames! + (basic-generate-composite-frames! basic-render-dir)) (defn basic-step-3! [] (final-cut! basic-render-dir)) diff -r 0b4ff504157d -r 4503899241e6 clojure/com/aurellem/run/final_cut.clj --- a/clojure/com/aurellem/run/final_cut.clj Sun Sep 02 06:37:11 2012 -0500 +++ b/clojure/com/aurellem/run/final_cut.clj Sun Sep 02 09:18:43 2012 -0500 @@ -15,29 +15,15 @@ (def render-dir (File. user-home "proj/vba-clojure/render/test")) -(defn write-move-image! [move target-file] - (let [actual-keys (set move) - keys [:a :b :start :select :u :d :l :r] - button-on-name ["-size" "5x5" "xc:red"] - button-off-name ["-size" "5x5" "xc:white"]] - (apply - clojure.java.shell/sh - (flatten - ["convert" - "-size" "64x5" "xc:white" - (map - (fn [index] - (let [position ["-geometry" - (str "+" (* index 8) - "+" "0") "-composite"]] - (if (actual-keys (keys index)) - [button-on-name position] - [button-off-name position]))) - (range (count keys))) - (.getCanonicalPath target-file)])))) (defn render-files! - ([^File target-dir initial-state moves] + ([^File target-dir + moves-render-fn + render-ram-map? + initial-state + moves + + ] (let [ram-map-dir (File. target-dir "ram-map") frames-dir (File. target-dir "frames") moves-dir (File. target-dir "moves") @@ -75,7 +61,7 @@ write-video! (fn [index] ;; write screenshot - (write-move-image! + (moves-render-fn move (File. moves-dir (format "%07d.png" index))) @@ -84,9 +70,10 @@ (File. frames-dir (format "%07d.png" index))) ;; write ram-image - (write-ram-image! - @current-state - (File. ram-map-dir (format "%07d.png" index))))] + (if render-ram-map? + (write-ram-image! + @current-state + (File. ram-map-dir (format "%07d.png" index)))))] ;;(println "audio-samples:" (count sound)) ;; record audio @@ -126,33 +113,6 @@ (defn file-names [#^File dir] (mapv #(.getCanonicalPath %) (next (sort (file-seq dir))))) -(defn composite-frames-command - [move-image screenshot ram-map target] - ["convert" - "-size" "318x276" "xc:white" - move-image "-geometry" "+30+225" "-composite" - screenshot "-geometry" "+10+10" "-composite" - ram-map "-geometry" "+180+10" "-composite" - target]) - -(defn generate-composite-frames! - [^File rendered-dir] - (let [final-frames (File. rendered-dir "final") - _ (.mkdir final-frames) - move-images (file-names (File. rendered-dir "moves")) - screenshots (file-names (File. rendered-dir "frames")) - ram-maps (file-names (File. rendered-dir "ram-map")) - targets (map #(.getCanonicalPath - (File. final-frames (format "%07d.bmp" %))) - (range (count screenshots)))] - (dorun - (map - (comp - (partial apply clojure.java.shell/sh) - flatten - (partial apply composite-frames-command) - (fn [a b c d] (println d) [a b c d])) - move-images screenshots ram-maps targets)))) ;; (defn final-cut! [^File render-dir] diff -r 0b4ff504157d -r 4503899241e6 images/big-button-bar.png Binary file images/big-button-bar.png has changed diff -r 0b4ff504157d -r 4503899241e6 images/gb-button-bar.png Binary file images/gb-button-bar.png has changed diff -r 0b4ff504157d -r 4503899241e6 images/gb-button-mark.png Binary file images/gb-button-mark.png has changed diff -r 0b4ff504157d -r 4503899241e6 images/gb-yellow.png Binary file images/gb-yellow.png has changed diff -r 0b4ff504157d -r 4503899241e6 images/gb-yellow.xcf Binary file images/gb-yellow.xcf has changed