//--------------------------------------------------------------------------- void File_Dsdiff::DSD__PROP_CHNL() { Element_Name("Channels"); //Parsing int16u numChannels; vector<int32u> chIDs; Get_B2 (numChannels, "numChannels"); while (Element_Offset<Element_Size) { int32u chID; Get_C4 (chID, "chID"); chIDs.push_back(chID); } FILLING_BEGIN(); Fill(Stream_Audio, 0, Audio_Channel_s_, numChannels); int32u ChannelPositions=0; int32u ChannelPositions2=0; ZtringList ChannelLayout; ChannelLayout.Separator_Set(0, __T(" ")); for (size_t i=0; i<chIDs.size(); i++) { DSDIFF_CHNL_chID_ChannelPositions(chIDs[i], ChannelPositions); DSDIFF_CHNL_chID_ChannelPositions2(chIDs[i], ChannelPositions2); ChannelLayout.push_back(DSDIFF_CHNL_chID(chIDs[i])); } Ztring ChannelPositions_New=DSDIFF_CHNL_chID_ChannelPositions(ChannelPositions); const Ztring& ChannelPositions_Old=Retrieve_Const(Stream_Audio, 0, Audio_ChannelPositions); if (ChannelPositions_New!=ChannelPositions_Old) Fill(Stream_Audio, 0, Audio_ChannelPositions, ChannelPositions_New); Ztring ChannelPositions2_New=DSDIFF_CHNL_chID_ChannelPositions2(ChannelPositions2); const Ztring& ChannelPositions2_Old=Retrieve_Const(Stream_Audio, 0, Audio_ChannelPositions_String2); if (ChannelPositions2_New!=ChannelPositions2_Old) Fill(Stream_Audio, 0, Audio_ChannelPositions_String2, ChannelPositions2_New); const Ztring& ChannelLayout_New=ChannelLayout.Read(); const Ztring& ChannelLayout_Old=Retrieve_Const(Stream_Audio, 0, Audio_ChannelLayout); if (ChannelLayout_New!=ChannelLayout_Old) Fill(Stream_Audio, 0, Audio_ChannelLayout, ChannelLayout_New); FILLING_END(); }
//--------------------------------------------------------------------------- // Operator == bool ZtringList::operator== (const ZtringList &Source) const { return (Read()==Source.Read()); }