+ for (int n = 0; n < boost::lexical_cast<int>(result.size()); n += nb_channels)\r
+ {\r
+ for (int k = 0; k < nb_channels; ++k)\r
+ {\r
+ min[k] = std::min(min[k], result[n+k]);\r
+ max[k] = std::max(max[k], result[n+k]);\r
+ }\r
+ }\r
+ \r
+ for (int k = 0; k < nb_channels; ++k)\r
+ {\r
+ const auto pFS = std::max(-min[k], max[k]) / static_cast<float>(std::numeric_limits<int32_t>::max());\r
+ const auto dBFS = 20.0f * std::log10(pFS);\r
+ \r
+ auto chan_str = boost::lexical_cast<std::string>(k+1);\r
+\r
+ monitor_subject_ << monitor::message("/nb_channels") % nb_channels;\r
+ monitor_subject_ << monitor::message("/"+ chan_str +"/pFS") % pFS;\r
+ monitor_subject_ << monitor::message("/"+ chan_str +"/dBFS") % dBFS;\r
+ }\r