Repository navigation
0.6.0 (2026-10-30)
0.6.0 makes four more calls leave zeros or silence behind when they fail, never data from an earlier call, as the Maul family's rule for outputs asks. A call refused as busy because the object's own callback made it is the exception: it writes none of its outputs, since the call it interrupted may still be filling them. No backend changes what it does, so the device checklist on real hardware, which runs before a release that changes a backend, is not run for it. The golden renders and the office bake are unchanged.
Changed
- Breaking:
maudStream_Renderwrites silence overframeCountframes of the stream's channels on any failure but a call back in, where it used to leave the frames as they were. A program that missed one status, on a stopped stream or a call of the wrong kind, played the previous block again; it now hears silence. A call back in is amaud_errorBusyrefusal of a render made from the stream's own callback or from the context's allocator. A render refused because another thread holds the stream is silenced, even when it comes from inside another stream's callback. A NULL context or a stale stream leaves the frames as they were, since no stream gives their size.maudStream_RenderObjectssilences the bed the same way. On any failure but a call back in, NULL and stale included, it clears each object record and the frames itssamplespoints to, keeping the pointer (#216). - Breaking:
maudContext_NextNotificationleaves its record as it was when it is refused as busy from one of the context's own callbacks (a stream's callback or the allocator), where it used to zero it. The interrupted code may still be reading that record. Every other failure still zeroes it (#215). - Breaking:
maudContext_GetDeviceswrites the null id over all ofidsOut's capacity before it answers, so the ids past the devices listed, and every id after a failure, are null instead of an earlier call's.maudDevice_GetNameandmaudDevice_GetKeywrite zeros over all ofbytesOut's capacity first. A stale device leaves zeros instead of an earlier device's name or key, and a text longer than the room (maud_errorCapacity) leaves zeros, with the length it needs inlengthOut(#207). - Breaking:
maudProbeSet_GetInfowritescountzero points overpointsOuton any failure, where it used to leave them as they were. A caller that reads a set's points into a buffer it reuses, and misses one refused call, no longer takes the previous read's points for this set's (#204).