/* ******************************************************************************* * INCLUDE ******************************************************************************* */ #include "ChannelLayout.h" #include namespace Video { namespace Core { /* ******************************************************************************* * TYPEDEFS ******************************************************************************* */ struct ChannelLayoutInfo { std::string name; int channels; }; /* ******************************************************************************* * LOCAL VARIABLES ******************************************************************************* */ static const ChannelLayoutInfo channelLayoutInfo[(int)ChannelLayout::NB] = { { "L", 1, }, { "R", 1, }, { "MONO", 1, }, { "STEREO", 2, }, }; /* ******************************************************************************* * LOCAL FUNCTIONS ******************************************************************************* */ static inline bool isChannelLayoutValid(ChannelLayout layout) { return ((int)layout >= 0) && (layout < ChannelLayout::NB); } /* ******************************************************************************* * FUNCTIONS ******************************************************************************* */ int channelLayoutChannels(ChannelLayout layout) { if (isChannelLayoutValid(layout)) return channelLayoutInfo[(int)layout].channels; return 0; } const std::string channelLayoutToString(const ChannelLayout layout) { if (isChannelLayoutValid(layout)) return channelLayoutInfo[(int)layout].name; return Poco::format("UNKNOWN(%u)", (uint32_t)layout); } } }