Skip to content

Commit 6a158a2

Browse files
committed
Rename realtime out transform
1 parent 72c9246 commit 6a158a2

File tree

4 files changed

+29
-29
lines changed

4 files changed

+29
-29
lines changed

src/simulflow/transport.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,13 @@
9393
{:src out/realtime-out-describe}
9494
{:src out/realtime-out-init!}
9595
{:src out/realtime-out-transition}
96-
{:src out/realtime-out-transform}
96+
{:alias realtime-out-transform :src out/base-realtime-out-transform}
9797
{:src out/realtime-out-fn}
9898
{:src out/realtime-out-processor}
9999
{:src out/realtime-speakers-out-describe}
100100
{:src out/realtime-speakers-out-init!}
101101
{:alias realtime-speakers-out-transition :src out/realtime-out-transition}
102-
{:alias realtime-speakers-out-transform :src out/realtime-out-transform}
102+
{:alias realtime-speakers-out-transform :src out/base-realtime-out-transform}
103103
{:src out/realtime-speakers-out-fn}
104104
{:src out/realtime-speakers-out-processor}
105105

src/simulflow/transport/out.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194
[updated-state (-> (frame/send (when should-emit-start? (frame/bot-speech-start true)))
195195
(assoc :audio-write [audio-command]))]))
196196

197-
(defn realtime-out-transform
197+
(defn base-realtime-out-transform
198198
[{::keys [now] :as state
199199
:or {now (u/mono-time)}} input-port frame]
200200
(cond
@@ -232,7 +232,7 @@
232232
([] realtime-out-describe)
233233
([params] (realtime-out-init! params))
234234
([state transition] (realtime-out-transition state transition))
235-
([state input-port frame] (realtime-out-transform state input-port frame)))
235+
([state input-port frame] (base-realtime-out-transform state input-port frame)))
236236

237237
(def realtime-out-processor
238238
"Processor that sends audio chunks to output channel in a realtime manner"
@@ -243,7 +243,7 @@
243243
([] realtime-speakers-out-describe)
244244
([params] (realtime-speakers-out-init! params))
245245
([state transition] (realtime-out-transition state transition))
246-
([state input-port frame] (realtime-out-transform state input-port frame)))
246+
([state input-port frame] (base-realtime-out-transform state input-port frame)))
247247

248248
(def realtime-speakers-out-processor
249249
"Processor that sends audio chunks to output speakers in a realtime manner"

test/simulflow/transport/out_test.clj

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
(testing "transform with audio frame"
4444
(let [state {::sut/speaking? false ::sut/sending-interval 25}
4545
frame (frame/audio-output-raw {:audio (byte-array [1 2 3]) :sample-rate 16000})
46-
[new-state output] (sut/realtime-out-transform state :in frame)]
46+
[new-state output] (sut/base-realtime-out-transform state :in frame)]
4747

4848
(is (true? (::sut/speaking? new-state)))
4949
(is (= 1 (count (:sys-out output))))
@@ -55,7 +55,7 @@
5555
::sut/last-send-time 1000
5656
::sut/silence-threshold 200}
5757
timer-frame {:timer/tick true :timer/timestamp 1300}
58-
[new-state output] (sut/realtime-out-transform state :timer-out timer-frame)]
58+
[new-state output] (sut/base-realtime-out-transform state :timer-out timer-frame)]
5959

6060
(is (false? (::sut/speaking? new-state)))
6161
(is (= 1 (count (:sys-out output))))
@@ -84,7 +84,7 @@
8484
::sut/last-send-time 1000
8585
::sut/silence-threshold 200}
8686
timer-frame {:timer/tick true :timer/timestamp 1500}
87-
[new-state output] (sut/realtime-out-transform state :timer-out timer-frame)]
87+
[new-state output] (sut/base-realtime-out-transform state :timer-out timer-frame)]
8888

8989
(is (false? (::sut/speaking? new-state)))
9090
(is (empty? (:out output)))))
@@ -94,7 +94,7 @@
9494
::sut/last-send-time 1000
9595
::sut/silence-threshold 200}
9696
timer-frame {:timer/tick true :timer/timestamp 1100} ; Only 100ms silence
97-
[new-state output] (sut/realtime-out-transform state :timer-out timer-frame)]
97+
[new-state output] (sut/base-realtime-out-transform state :timer-out timer-frame)]
9898

9999
(is (true? (::sut/speaking? new-state)))
100100
(is (empty? (:out output)))))
@@ -104,7 +104,7 @@
104104
::sut/last-send-time 1000
105105
::sut/silence-threshold 200}
106106
timer-frame {:timer/tick true :timer/timestamp 1300} ; 300ms silence > 200ms threshold
107-
[new-state output] (sut/realtime-out-transform state :timer-out timer-frame)]
107+
[new-state output] (sut/base-realtime-out-transform state :timer-out timer-frame)]
108108

109109
(is (false? (::sut/speaking? new-state)))
110110
(is (= 1 (count (:sys-out output))))
@@ -116,15 +116,15 @@
116116
(serialize-frame [_ frame] (assoc frame :serialized? true)))
117117
config-frame (frame/system-config-change {:transport/serializer new-serializer})
118118
initial-state {:transport/serializer nil}
119-
[new-state output] (sut/realtime-out-transform initial-state :in config-frame)]
119+
[new-state output] (sut/base-realtime-out-transform initial-state :in config-frame)]
120120

121121
(is (= new-serializer (:transport/serializer new-state)))
122122
(is (empty? output))))
123123

124124
(testing "system config change without serializer"
125125
(let [config-frame (frame/system-config-change {:other/setting "value"})
126126
initial-state {:transport/serializer nil}
127-
[new-state output] (sut/realtime-out-transform initial-state :in config-frame)]
127+
[new-state output] (sut/base-realtime-out-transform initial-state :in config-frame)]
128128

129129
(is (= initial-state new-state))
130130
(is (empty? output)))))
@@ -141,7 +141,7 @@
141141
:transport/serializer mock-serializer}
142142
frame (frame/audio-output-raw {:audio (byte-array [1 2 3]) :sample-rate 16000})]
143143
(with-redefs [u/mono-time (constantly 1000)]
144-
(let [[_ output] (sut/realtime-out-transform state :in frame)
144+
(let [[_ output] (sut/base-realtime-out-transform state :in frame)
145145
audio-write (first (:audio-write output))]
146146
(is (= :write-audio (:command audio-write)))
147147
(is (= [99 99 99] (:frame/data (:data audio-write)))))))) ; Should use serialized data
@@ -153,7 +153,7 @@
153153
:transport/serializer nil}
154154
frame (frame/audio-output-raw {:audio (byte-array [1 2 3]) :sample-rate 16000})]
155155
(with-redefs [u/mono-time (constantly 1000)]
156-
(let [[_ output] (sut/realtime-out-transform state :in frame)
156+
(let [[_ output] (sut/base-realtime-out-transform state :in frame)
157157
audio-write (first (:audio-write output))]
158158
(is (= :write-audio (:command audio-write)))
159159
(is (= [1 2 3] (vec (:data audio-write)))))))))
@@ -162,23 +162,23 @@
162162
(testing "unknown input port"
163163
(let [state {}
164164
frame {:some :data}
165-
[new-state output] (sut/realtime-out-transform state :unknown-port frame)]
165+
[new-state output] (sut/base-realtime-out-transform state :unknown-port frame)]
166166

167167
(is (= state new-state))
168168
(is (empty? output))))
169169

170170
(testing "non-audio frame on input port"
171171
(let [state {}
172172
non-audio-frame {:frame/type :other}
173-
[new-state output] (sut/realtime-out-transform state :in non-audio-frame)]
173+
[new-state output] (sut/base-realtime-out-transform state :in non-audio-frame)]
174174

175175
(is (= state new-state))
176176
(is (empty? output))))
177177

178178
(testing "non-timer frame on timer-out port"
179179
(let [state {}
180180
non-timer-frame {:other :data}
181-
[new-state output] (sut/realtime-out-transform state :timer-out non-timer-frame)]
181+
[new-state output] (sut/base-realtime-out-transform state :timer-out non-timer-frame)]
182182

183183
(is (= state new-state))
184184
(is (empty? output)))))
@@ -201,7 +201,7 @@
201201
input-port :in
202202
frame {:test :frame}
203203
multi-arity-result (sut/realtime-speakers-out-fn state input-port frame)
204-
direct-result (sut/realtime-out-transform state input-port frame)]
204+
direct-result (sut/base-realtime-out-transform state input-port frame)]
205205
(is (= multi-arity-result direct-result)))))
206206

207207
(deftest test-realtime-out-state-transitions
@@ -215,17 +215,17 @@
215215
(with-redefs [u/mono-time (let [counter (atom 0)]
216216
#(swap! counter + 100))] ; Increment by 100ms each call
217217
(let [;; Process first frame (should start speaking)
218-
[state1 output1] (sut/realtime-out-transform initial-state :in frame1)
218+
[state1 output1] (sut/base-realtime-out-transform initial-state :in frame1)
219219

220220
;; Process second frame (should continue speaking)
221-
[state2 output2] (sut/realtime-out-transform state1 :in frame2)
221+
[state2 output2] (sut/base-realtime-out-transform state1 :in frame2)
222222

223223
;; Process timer tick after silence threshold
224224
timer-frame {:timer/tick true
225225
:timer/timestamp (+ (::sut/last-send-time state2) 1000)}
226-
[state3 output3] (sut/realtime-out-transform
227-
(assoc state2 ::sut/silence-threshold 500)
228-
:timer-out timer-frame)]
226+
[state3 output3] (sut/base-realtime-out-transform
227+
(assoc state2 ::sut/silence-threshold 500)
228+
:timer-out timer-frame)]
229229

230230
;; Verify state progression
231231
(is (false? (::sut/speaking? initial-state)))
@@ -248,10 +248,10 @@
248248
::sut/sending-interval sending-interval
249249
::sut/now current-time}
250250
frame (frame/audio-output-raw {:audio (byte-array [1 2 3]) :sample-rate 16000})
251-
[new-state output] (sut/realtime-out-transform state :in frame)
251+
[new-state output] (sut/base-realtime-out-transform state :in frame)
252252
audio-write (first (:audio-write output))
253-
[next-state] (sut/realtime-out-transform (assoc new-state ::sut/now 1020) :in frame)
254-
[next-state2] (sut/realtime-out-transform (assoc next-state ::sut/now 1025) :in frame)]
253+
[next-state] (sut/base-realtime-out-transform (assoc new-state ::sut/now 1020) :in frame)
254+
[next-state2] (sut/base-realtime-out-transform (assoc next-state ::sut/now 1025) :in frame)]
255255

256256
(is (= current-time (:delay-until audio-write)))
257257
(is (= current-time (::sut/last-send-time new-state)))
@@ -274,11 +274,11 @@
274274

275275
;; Timer tick just under threshold
276276
timer-frame-under {:timer/tick true :timer/timestamp (+ base-time 250)}
277-
[state-under output-under] (sut/realtime-out-transform state :timer-out timer-frame-under)
277+
[state-under output-under] (sut/base-realtime-out-transform state :timer-out timer-frame-under)
278278

279279
;; Timer tick over threshold
280280
timer-frame-over {:timer/tick true :timer/timestamp (+ base-time 350)}
281-
[state-over output-over] (sut/realtime-out-transform state :timer-out timer-frame-over)]
281+
[state-over output-over] (sut/base-realtime-out-transform state :timer-out timer-frame-over)]
282282

283283
;; Under threshold: still speaking
284284
(is (true? (::sut/speaking? state-under)))

test/simulflow/transport_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@
249249
(Thread/sleep 5)) ; Small delay to simulate processing time
250250

251251
(let [;; Process through realtime speakers transform
252-
[new-state output] (out/realtime-out-transform
252+
[new-state output] (out/base-realtime-out-transform
253253
current-state :in chunk)]
254254

255255
;; Store results for analysis

0 commit comments

Comments
 (0)