From 795a40258a19b71756771de3e1bb7b14218df9c0 Mon Sep 17 00:00:00 2001 From: Christopher Arndt Date: Thu, 8 Jan 2026 04:44:54 +0100 Subject: [PATCH] feat: log feature tweaks Signed-off-by: Christopher Arndt --- examples/amp_plugin.nim | 7 +++++-- src/nymph/log.nim | 28 +++++++++++++++------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/examples/amp_plugin.nim b/examples/amp_plugin.nim index 209f397..75d3f25 100644 --- a/examples/amp_plugin.nim +++ b/examples/amp_plugin.nim @@ -36,8 +36,11 @@ proc instantiate(descriptor: ptr Lv2Descriptor; sampleRate: cdouble; return nil 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) except OutOfMemDefect: return nil diff --git a/src/nymph/log.nim b/src/nymph/log.nim index da410d3..3987a9e 100644 --- a/src/nymph/log.nim +++ b/src/nymph/log.nim @@ -21,7 +21,7 @@ const lv2LogLog* = lv2LogPrefix & "log" type - LogHandle* = distinct pointer + LogHandle = distinct pointer Log* = object handle: LogHandle @@ -32,7 +32,7 @@ type 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 if not map.isNil: @@ -46,25 +46,27 @@ proc init*(logger: var Logger, log: ptr Log, map: ptr UridMap) = logger.Trace = 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: - echo(msg) + echo(mmsg) 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) = - log(logger, logger.Error, msg) +proc error*(logger: Logger, msg: string, nl: string = "\n") = + log(logger, logger.Error, msg, nl) -proc note*(logger: Logger, msg: string) = - log(logger, logger.Note, msg) +proc note*(logger: Logger, msg: string, nl: string = "\n") = + log(logger, logger.Note, msg, nl) -proc trace*(logger: Logger, msg: string) = - log(logger, logger.Trace, msg) +proc trace*(logger: Logger, msg: string, nl: string = "\n") = + log(logger, logger.Trace, msg, nl) -proc warning*(logger: Logger, msg: string) = - log(logger, logger.Warning, msg) +proc warning*(logger: Logger, msg: string, nl: string = "\n") = + log(logger, logger.Warning, msg, nl)