/** @file * @author Edouard DUPIN * @copyright 2011, Edouard DUPIN, all right reserved * @license APACHE v2.0 (see license file) */ #include #include "debug.h" std::ostream& airtalgo::operator <<(std::ostream& _os, enum airtalgo::channel _obj) { _os << getChannelString(_obj); return _os; } std::string airtalgo::getChannelString(enum airtalgo::channel _value) { switch (_value) { case channel_frontLeft: return "front-left"; break; case channel_frontCenter: return "front-center"; break; case channel_frontRight: return "front-right"; break; case channel_rearLeft: return "rear-left"; break; case channel_rearCenter: return "rear-center"; break; case channel_rearRight: return "rear-right"; break; case channel_surroundLeft: return "surround-left"; break; case channel_surroundRight: return "surround-right"; break; case channel_subWoofer: return "sub-woofer"; break; case channel_lfe: return "lfe"; break; }; } std::string airtalgo::getChannelString(const std::vector& _value) { std::string out; for (size_t iii=0; iii<_value.size(); ++iii) { if (iii != 0) { out += ";"; } out += getChannelString(_value[iii]); } return out; } std::ostream& airtalgo::operator <<(std::ostream& _os, const std::vector& _obj) { _os << std::string("{"); for (size_t iii=0; iii<_obj.size(); ++iii) { if (iii!=0) { _os << std::string(";"); } _os << _obj[iii]; } _os << std::string("}"); return _os; } std::ostream& airtalgo::operator <<(std::ostream& _os, const std::vector>& _obj) { _os << std::string("{"); for (size_t iii=0; iii<_obj.size(); ++iii) { if (iii!=0) { _os << std::string(";"); } _os << _obj[iii]; } _os << std::string("}"); return _os; } static std::vector split(const std::string& _input, char _val) { std::vector list; size_t lastStartPos = 0; for(size_t iii=0; iii<_input.size(); iii++) { if (_input[iii]==_val) { list.push_back(std::string(_input, lastStartPos, iii - lastStartPos)); lastStartPos = iii+1; } } if (lastStartPos<_input.size()) { list.push_back(std::string(_input, lastStartPos)); } return list; } std::vector airtalgo::getChannelFromString(const std::string& _value) { std::vector out; std::vector listIO = split(_value, ';'); for (size_t iii=0; iii