hsc3-0.12: Sound/SC3/Server/Status.hs
-- | Request and display status information from the synthesis server.
module Sound.SC3.Server.Status where
import Sound.OpenSoundControl.Type
-- | Get /n/th field of status as 'Double'.
extractStatusField :: Int -> [Datum] -> Double
extractStatusField n = datum_real_err . (!! n)
-- | Names of status fields.
statusFields :: [String]
statusFields = ["Unused ",
"# UGens ",
"# Synths ",
"# Groups ",
"# Instruments ",
"% CPU (Average) ",
"% CPU (Peak) ",
"Sample Rate (Nominal) ",
"Sample Rate (Actual) "]
-- | Status pretty printer.
statusFormat :: [Datum] -> [String]
statusFormat d =
let s = "***** SuperCollider Server Status *****"
in s : zipWith (++) (tail statusFields) (map show (tail d))