libretime/pypo/scripts/include_daypart.liq

71 lines
2.2 KiB
Plaintext

#########################################
# A/B queue-setup daypart
#########################################
# a/b queue setup
daypart_q0 = request.queue(conservative=true,length=600.,id="daypart_q0")
daypart_q1 = request.queue(conservative=true,length=600.,id="daypart_q1")
daypart_q0 = audio_to_stereo(daypart_q0)
daypart_q1 = audio_to_stereo(daypart_q1)
daypart_active = ref 0
daypart_queue = ref 1
daypart_q0_enabled = ref false
daypart_q1_enabled = ref false
# push function, enqueues file in inactive queue (does not start automatically)
def daypart_push(s)
list.hd(server.execute("daypart_q#{!daypart_queue}.push #{s}"))
print('push to #{!daypart_queue} - #{s}')
"Done"
end
# flips the queues
def daypart_flip()
# set a/b-queue corresponding to active, see fallback below
if !daypart_active==1 then daypart_q0_enabled:=true else daypart_q0_enabled:=false end
if !daypart_active==0 then daypart_q1_enabled:=true else daypart_q1_enabled:=false end
# get playing (active) queue and flush it
l = list.hd(server.execute("daypart_q#{!daypart_active}.queue"))
l = string.split(separator=" ",l)
list.iter(fun (rid) -> ignore(server.execute("daypart_q#{!daypart_active}.ignore #{rid}")), l)
# skip the playing item
# source.skip(if !daypart_active==0 then daypart_q0 else daypart_q1 end)
# flip variables
daypart_active := 1-!daypart_active
daypart_queue := 1-!daypart_active
"Done"
end
# print status
def daypart_status()
print('daypart_active: #{!daypart_active}')
print('daypart_queue : #{!daypart_queue}')
"Done"
end
# register for telnet access
server.register(namespace="daypart","push", daypart_push)
server.register(namespace="daypart","flip", fun (_) -> daypart_flip())
server.register(namespace="daypart","status", fun (_) -> daypart_status())
# activate / deactivate queues, needed for fallback to work
daypart_q0 = switch(track_sensitive=true, [({!daypart_q0_enabled},daypart_q0)])
daypart_q1 = switch(track_sensitive=true, [({!daypart_q1_enabled},daypart_q1)])
daypart_q_holder = fallback(track_sensitive=true, [daypart_q0, daypart_q1])
# finally the resulting daypart source
daypart = fallback(track_sensitive=false, [daypart_q_holder, default])