From 3806bd1f5ce56afdbb4cc0c1ed54d53e25603be2 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Mon, 25 Aug 2025 03:05:35 +0000 Subject: Improves `hsm-cam` - Moves C++ constants to Haskell side - Uses better names for request callback related variables - Captures and redirects libcamera's internal logging --- hsm-log/Hsm/Log.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'hsm-log/Hsm') diff --git a/hsm-log/Hsm/Log.hs b/hsm-log/Hsm/Log.hs index d8dbab0..570b19a 100644 --- a/hsm-log/Hsm/Log.hs +++ b/hsm-log/Hsm/Log.hs @@ -5,6 +5,7 @@ module Hsm.Log ( Severity(Attention, Info, Trace) , Log + , getLevel , makeLoggerIO , logMsg , logBlock @@ -37,10 +38,13 @@ type instance DispatchOf (Log d) = Static WithSideEffects newtype instance StaticRep (Log d) = Log Severity +getLevel :: Log d :> es => Eff es Severity +getLevel = getStaticRep >>= \(Log level) -> return level + makeLoggerIO :: forall d es. (KnownSymbol d, Log d :> es) => Eff es (Severity -> String -> IO ()) -makeLoggerIO = getStaticRep >>= \(Log level) -> return $ loggerIO level +makeLoggerIO = loggerIO <$> getLevel where loggerIO level severity message = when (severity <= level) $ do -- cgit v1.2.1