Good morning, Xavier Cazin wrote:
It would seem more natural to me to use a "pick" operator that would pick one (by default) or more tracks in the scheduled source:schedule([("0m",pick(clock))]);
The problem here is that pick doesn't know what's going on on top of him, thus cannot distinguish between * the situation where schedule just entered the "0m" period and asks for data * the situation where schedule is still in "0m" and asks for (more) data Actually pick is the once() operator I had defined in the previous mail, and has the same problems: it would need to be reinitialized at some point. Moreover, in the current implementation, your schedule node in that example would declare itself as not being ready to stream as soon as "0m" is false, which could cause the interruption of the clock streaming. That's a minor problem, I can change the default behaviour, or add a parameter for modifying it. The architecture of liquidsoap is a strength, but imposes some constraints on the design of operators: everything has to be local, the same protocol is used everywhere between sources, etc. -- David
