feat: log feature tweaks

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
This commit is contained in:
Christopher Arndt 2026-01-08 04:44:54 +01:00
parent 2fe62a77da
commit 795a40258a
2 changed files with 20 additions and 15 deletions

View File

@ -36,8 +36,11 @@ proc instantiate(descriptor: ptr Lv2Descriptor; sampleRate: cdouble;
return nil return nil
let logPtr = cast[ptr Log](lv2FeaturesData(features, lv2LogLog)) let logPtr = cast[ptr Log](lv2FeaturesData(features, lv2LogLog))
plug.log.init(logPtr, plug.map)
plug.log.note("nymph amp plugin instance created.") if not plug.log.setup(logPtr, plug.map):
plug.log.warning("LV2 Log feature not available.")
plug.log.note("nymph amp LV2 plugin instance created.")
return cast[Lv2Handle](plug) return cast[Lv2Handle](plug)
except OutOfMemDefect: except OutOfMemDefect:
return nil return nil

View File

@ -21,7 +21,7 @@ const
lv2LogLog* = lv2LogPrefix & "log" lv2LogLog* = lv2LogPrefix & "log"
type type
LogHandle* = distinct pointer LogHandle = distinct pointer
Log* = object Log* = object
handle: LogHandle handle: LogHandle
@ -32,7 +32,7 @@ type
Error, Note, Trace, Warning: Urid Error, Note, Trace, Warning: Urid
proc init*(logger: var Logger, log: ptr Log, map: ptr UridMap) = proc setup*(logger: var Logger, log: ptr Log, map: ptr UridMap): bool =
logger.pLog = log logger.pLog = log
if not map.isNil: if not map.isNil:
@ -46,25 +46,27 @@ proc init*(logger: var Logger, log: ptr Log, map: ptr UridMap) =
logger.Trace = Urid(0) logger.Trace = Urid(0)
logger.Warning = Urid(0) logger.Warning = Urid(0)
return not (log.isNil or map.isNil)
proc log*(logger: Logger, `type`: Urid, msg: string) = proc log*(logger: Logger, `type`: Urid, msg: string, nl: string = "\n") =
let mmsg = msg & nl
if logger.pLog.isNil: if logger.pLog.isNil:
echo(msg) echo(mmsg)
else: else:
logger.pLog.printf(logger.pLog.handle, `type`, msg.cstring) logger.pLog.printf(logger.pLog.handle, `type`, mmsg.cstring)
proc error*(logger: Logger, msg: string) = proc error*(logger: Logger, msg: string, nl: string = "\n") =
log(logger, logger.Error, msg) log(logger, logger.Error, msg, nl)
proc note*(logger: Logger, msg: string) = proc note*(logger: Logger, msg: string, nl: string = "\n") =
log(logger, logger.Note, msg) log(logger, logger.Note, msg, nl)
proc trace*(logger: Logger, msg: string) = proc trace*(logger: Logger, msg: string, nl: string = "\n") =
log(logger, logger.Trace, msg) log(logger, logger.Trace, msg, nl)
proc warning*(logger: Logger, msg: string) = proc warning*(logger: Logger, msg: string, nl: string = "\n") =
log(logger, logger.Warning, msg) log(logger, logger.Warning, msg, nl)