diff --git a/Source/Processors/DataThreads/DataThread.cpp b/Source/Processors/DataThreads/DataThread.cpp index 870c5b84bac8337cad53a6b7ad173f1358517324..b1e0aa4a1d0f32fff27cd9c2a0bc4f95ec7eeb98 100755 --- a/Source/Processors/DataThreads/DataThread.cpp +++ b/Source/Processors/DataThreads/DataThread.cpp @@ -69,6 +69,12 @@ DataBuffer* DataThread::getBufferAddress() return dataBuffer; } +void DataThread::getChannelInfo(Array<ChannelCustomInfo>& infoArray) +{ + infoArray.clear(); + infoArray.addArray(channelInfo); +} + void DataThread::updateChannels() { diff --git a/Source/Processors/DataThreads/DataThread.h b/Source/Processors/DataThreads/DataThread.h index 453b714fbd94678a98177d9da85d1987f2df7bcb..5e016c875420962b8949fdde191cd40a73b4378a 100755 --- a/Source/Processors/DataThreads/DataThread.h +++ b/Source/Processors/DataThreads/DataThread.h @@ -138,6 +138,7 @@ public: return 0; } + void getChannelInfo(Array<ChannelCustomInfo>& infoArray); protected: virtual void setDefaultChannelNames() diff --git a/Source/Processors/SourceNode/SourceNode.cpp b/Source/Processors/SourceNode/SourceNode.cpp index d8c568fc957d14c5953a0f5a81d4d1ab304ec4c7..a3b034d822bc783397abb00ffbcb62362a164c9f 100755 --- a/Source/Processors/SourceNode/SourceNode.cpp +++ b/Source/Processors/SourceNode/SourceNode.cpp @@ -438,21 +438,18 @@ void SourceNode::process(AudioSampleBuffer& buffer, void SourceNode::saveCustomParametersToXml(XmlElement* parentElement) { - StringArray names; - Array<ChannelType> types; - Array<int> stream; - Array<int> originalChannelNumber; - Array<float> gains; - // getChannelsInfo(names, types, stream, originalChannelNumber, gains); - XmlElement *channelInfo = parentElement->createNewChildElement("CHANNEL_INFO"); - for (int i = 0; i < names.size(); i++) + XmlElement *channelXml = parentElement->createNewChildElement("CHANNEL_INFO"); + if (dataThread->usesCustomNames()) { - XmlElement* chan = channelInfo->createNewChildElement("CHANNEL"); - chan->setAttribute("name",names[i]); - chan->setAttribute("stream",stream[i]); - chan->setAttribute("number",originalChannelNumber[i]); - chan->setAttribute("type",(int)types[i]); - chan->setAttribute("gain",gains[i]); + Array<ChannelCustomInfo> channelInfo; + dataThread->getChannelInfo(channelInfo); + for (int i = 0; i < channelInfo.size(); i++) + { + XmlElement* chan = channelXml->createNewChildElement("CHANNEL"); + chan->setAttribute("name", channelInfo[i].name); + chan->setAttribute("number", i); + chan->setAttribute("gain", channelInfo[i].gain); + } } } @@ -471,12 +468,10 @@ void SourceNode::loadCustomParametersFromXml() forEachXmlChildElementWithTagName(*xmlNode,chan,"CHANNEL") { String name = chan->getStringAttribute("name"); - int stream = chan->getIntAttribute("stream"); int number = chan->getIntAttribute("number"); - ChannelType type = static_cast<ChannelType>(chan->getIntAttribute("type")); float gain = chan->getDoubleAttribute("gain"); -// modifyChannelName(type,stream,number,name,false); -// modifyChannelGain(stream,number,type,gain,false); + dataThread->modifyChannelGain(number, gain); + dataThread->modifyChannelName(number, name); } } }