feat: garbage collection on startup, readable status strings, audio/float32
studio-manager: call mxlGarbageCollectFlows before launching nodes to
clean up stale flow directories left by previous crashed runs.
shared/NodeBase.hpp: add mxl_status_str(mxlStatus) — converts error
codes to readable names (e.g. MXL_ERR_OUT_OF_RANGE_TOO_LATE). All
nodes now log these names instead of raw integers.
shared/FlowDef.hpp: use "audio/float32" as media_type for 32-bit audio
flows, matching the MXL SDK examples. audio/L{n} kept for other depths.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,35 @@
|
||||
|
||||
namespace dmf {
|
||||
|
||||
inline const char* mxl_status_str(mxlStatus s) noexcept {
|
||||
switch (s) {
|
||||
case MXL_STATUS_OK: return "MXL_STATUS_OK";
|
||||
case MXL_ERR_UNKNOWN: return "MXL_ERR_UNKNOWN";
|
||||
case MXL_ERR_FLOW_NOT_FOUND: return "MXL_ERR_FLOW_NOT_FOUND";
|
||||
case MXL_ERR_OUT_OF_RANGE_TOO_LATE: return "MXL_ERR_OUT_OF_RANGE_TOO_LATE";
|
||||
case MXL_ERR_OUT_OF_RANGE_TOO_EARLY: return "MXL_ERR_OUT_OF_RANGE_TOO_EARLY";
|
||||
case MXL_ERR_INVALID_FLOW_READER: return "MXL_ERR_INVALID_FLOW_READER";
|
||||
case MXL_ERR_INVALID_FLOW_WRITER: return "MXL_ERR_INVALID_FLOW_WRITER";
|
||||
case MXL_ERR_TIMEOUT: return "MXL_ERR_TIMEOUT";
|
||||
case MXL_ERR_INVALID_ARG: return "MXL_ERR_INVALID_ARG";
|
||||
case MXL_ERR_CONFLICT: return "MXL_ERR_CONFLICT";
|
||||
case MXL_ERR_PERMISSION_DENIED: return "MXL_ERR_PERMISSION_DENIED";
|
||||
case MXL_ERR_FLOW_INVALID: return "MXL_ERR_FLOW_INVALID";
|
||||
case MXL_ERR_STRLEN: return "MXL_ERR_STRLEN";
|
||||
case MXL_ERR_INTERRUPTED: return "MXL_ERR_INTERRUPTED";
|
||||
case MXL_ERR_NO_FABRIC: return "MXL_ERR_NO_FABRIC";
|
||||
case MXL_ERR_INVALID_STATE: return "MXL_ERR_INVALID_STATE";
|
||||
case MXL_ERR_INTERNAL: return "MXL_ERR_INTERNAL";
|
||||
case MXL_ERR_NOT_READY: return "MXL_ERR_NOT_READY";
|
||||
case MXL_ERR_NOT_FOUND: return "MXL_ERR_NOT_FOUND";
|
||||
case MXL_ERR_EXISTS: return "MXL_ERR_EXISTS";
|
||||
case MXL_ERR_UNSUPPORTED_OPERATION: return "MXL_ERR_UNSUPPORTED_OPERATION";
|
||||
default: return "MXL_ERR_UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Base class for all DMF node binaries.
|
||||
//
|
||||
// Handles the boilerplate every node needs:
|
||||
|
||||
Reference in New Issue
Block a user