-
Notifications
You must be signed in to change notification settings - Fork 2
/
move-sync.tin
126 lines (107 loc) · 5.78 KB
/
move-sync.tin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defnet move-sync-left-cb (self)
(deflocal n1 n2 lm rm left right)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not lm)
(if (= left 0)
then (sound-pop) )
(move-sync-post n1 n2 -1) ))
(defnet move-sync-right-cb (self)
(deflocal n1 n2 lm rm left right)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not rm)
(if (= right 0)
then (sound-pop) )
(move-sync-post n1 n2 1) ))
(defnet move-sync-left-fast-cb (self)
(deflocal n1 n2 lm rm left right n)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not lm)
(if (= left 0)
then (sound-pop)
(set n -1)
else (set n (max -(cfg-get-or-default-num "supervision-skip-double" <_kv "default">) left)) )
(move-sync-post n1 n2 n) ))
(defnet move-sync-right-fast-cb (self)
(deflocal n1 n2 lm rm left right n)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not rm)
(if (= right 0)
then (sound-pop)
(set n 1)
else (set n (min (cfg-get-or-default-num "supervision-skip-double" <_kv "default">) right)) )
(move-sync-post n1 n2 n) ))
(defnet move-sync-left-first-cb (self)
(deflocal n1 n2 lm rm left right)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not lm)
(move-sync-post n1 n2 left) ))
(defnet move-sync-right-last-cb (self)
(deflocal n1 n2 lm rm left right)
(opt (movie-sync-pre n1 n2 lm rm left right)
(not rm)
(move-sync-post n1 n2 right) ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defnet movie-sync-pre (@n1 @n2 @left-is-min @right-is-max @left @right)
(deflocal k n1 n2 map p q n i1 i2)
(gui-not-locked)
(set k (cfg-get (key-map <_kv "av1">
<_kv "av2">
(fullpath->name <_kv "path1">)
(fullpath->name <_kv "path2">) )))
(<> k undef)
(set @n1 (gui-spin-value 1))
(set @n2 (gui-spin-value 2))
(set @left-is-min (or (= @n1 1) (= @n2 1)))
(set @right-is-max (or (= @n1 <k 0>) (= @n2 <k 1>)))
(set map (map-create <k 0> <k 1>))
(for i1 in <k 2> do
(set p <i1 0>)
(set q <i1 1>)
(set n <i1 2>)
(map-bind-low (car map) p q n)
(map-bind-low (cdr map) q p n) )
(for i1 in (car map) do
until (in @n1 <i1 0> .. <i1 1>) )
(for i2 in (cdr map) do
until (in @n2 <i2 0> .. <i2 1>) )
(set @left (max (- <i1 0> @n1) (- <i2 0> @n2)))
(set @right (min (- <i1 1> @n1) (- <i2 1> @n2))) )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defnet move-sync-post (n1 n2 n)
(gui-spin-set-value 1 (+ n1 n))
(gui-spin-set-value 2 (+ n2 n))
(gui-update-image) )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;