1*f5210bb6SBen Tyner #include "primary_src.hpp" 2*f5210bb6SBen Tyner 3*f5210bb6SBen Tyner namespace attn 4*f5210bb6SBen Tyner { 5*f5210bb6SBen Tyner namespace pel 6*f5210bb6SBen Tyner { 7*f5210bb6SBen Tyner PrimarySrc(Stream & pel)8*f5210bb6SBen TynerPrimarySrc::PrimarySrc(Stream& pel) 9*f5210bb6SBen Tyner { 10*f5210bb6SBen Tyner unflatten(pel); 11*f5210bb6SBen Tyner } 12*f5210bb6SBen Tyner flatten(Stream & stream) const13*f5210bb6SBen Tynervoid PrimarySrc::flatten(Stream& stream) const 14*f5210bb6SBen Tyner { 15*f5210bb6SBen Tyner stream << _header << _version << _flags << _reserved1B << _wordCount 16*f5210bb6SBen Tyner << _reserved2B << _size; 17*f5210bb6SBen Tyner 18*f5210bb6SBen Tyner for (auto& word : _srcWords) 19*f5210bb6SBen Tyner { 20*f5210bb6SBen Tyner stream << word; 21*f5210bb6SBen Tyner } 22*f5210bb6SBen Tyner 23*f5210bb6SBen Tyner stream.write(_asciiString.data(), _asciiString.size()); 24*f5210bb6SBen Tyner } 25*f5210bb6SBen Tyner unflatten(Stream & stream)26*f5210bb6SBen Tynervoid PrimarySrc::unflatten(Stream& stream) 27*f5210bb6SBen Tyner { 28*f5210bb6SBen Tyner stream >> _header >> _version >> _flags >> _reserved1B >> _wordCount >> 29*f5210bb6SBen Tyner _reserved2B >> _size; 30*f5210bb6SBen Tyner 31*f5210bb6SBen Tyner for (auto& word : _srcWords) 32*f5210bb6SBen Tyner { 33*f5210bb6SBen Tyner stream >> word; 34*f5210bb6SBen Tyner } 35*f5210bb6SBen Tyner 36*f5210bb6SBen Tyner stream.read(_asciiString.data(), _asciiString.size()); 37*f5210bb6SBen Tyner } 38*f5210bb6SBen Tyner setSrcWords(std::array<uint32_t,numSrcWords> srcWords)39*f5210bb6SBen Tynervoid PrimarySrc::setSrcWords(std::array<uint32_t, numSrcWords> srcWords) 40*f5210bb6SBen Tyner { 41*f5210bb6SBen Tyner _srcWords = srcWords; 42*f5210bb6SBen Tyner } 43*f5210bb6SBen Tyner setAsciiString(std::array<char,asciiStringSize> asciiString)44*f5210bb6SBen Tynervoid PrimarySrc::setAsciiString(std::array<char, asciiStringSize> asciiString) 45*f5210bb6SBen Tyner { 46*f5210bb6SBen Tyner _asciiString = asciiString; 47*f5210bb6SBen Tyner } 48*f5210bb6SBen Tyner 49*f5210bb6SBen Tyner } // namespace pel 50*f5210bb6SBen Tyner } // namespace attn 51