MCPcopy Create free account
hub / github.com/audacity/audacity / UpdateDefaultCurves

Method UpdateDefaultCurves

libraries/lib-builtin-effects/EqualizationCurves.cpp:136–249  ·  view source on GitHub ↗

Update presets to match Audacity version.

Source from the content-addressed store, hash-verified

134// Update presets to match Audacity version.
135//
136void EQCurveReader::UpdateDefaultCurves(bool updateAll /* false */)
137{
138 if (mCurves.size() == 0)
139 return;
140
141 wxString unnamed = wxT("unnamed");
142
143 // Save the "unnamed" curve and remove it so we can add it back as the final curve.
144 EQCurve userUnnamed(wxT("temp"));
145 userUnnamed = mCurves.back();
146 mCurves.pop_back();
147
148 EQCurveArray userCurves = mCurves;
149 mCurves.clear();
150 // We only wamt to look for the shipped EQDefaultCurves.xml
151 wxFileName fn = wxFileName(FileNames::ResourcesDir(), wxT("EQDefaultCurves.xml"));
152 wxLogDebug(wxT("Attempting to load EQDefaultCurves.xml from %s"),fn.GetFullPath());
153 XMLFileReader reader;
154
155 if(!reader.Parse(this, fn.GetFullPath())) {
156 wxLogError(wxT("EQDefaultCurves.xml could not be read."));
157 return;
158 }
159 else {
160 wxLogDebug(wxT("Loading EQDefaultCurves.xml successful."));
161 }
162
163 EQCurveArray defaultCurves = mCurves;
164 mCurves.clear(); // clear now so that we can sort then add back.
165
166 // Remove "unnamed" if it exists.
167 if (defaultCurves.back().Name == unnamed) {
168 defaultCurves.pop_back();
169 }
170 else {
171 wxLogError(wxT("Error in EQDefaultCurves.xml"));
172 }
173
174 int numUserCurves = userCurves.size();
175 int numDefaultCurves = defaultCurves.size();
176 EQCurve tempCurve(wxT("test"));
177
178 if (updateAll) {
179 // Update all factory preset curves.
180 // Sort and add factory defaults first;
181 mCurves = defaultCurves;
182 std::sort(mCurves.begin(), mCurves.end());
183 // then add remaining user curves:
184 for (int curveCount = 0; curveCount < numUserCurves; curveCount++) {
185 bool isCustom = true;
186 tempCurve = userCurves[curveCount];
187 // is the name in the default set?
188 for (int defCurveCount = 0; defCurveCount < numDefaultCurves; defCurveCount++) {
189 if (tempCurve.Name == mCurves[defCurveCount].Name) {
190 isCustom = false;
191 break;
192 }
193 }

Callers

nothing calls this directly

Calls 10

SaveCurvesMethod · 0.80
wxFileNameClass · 0.50
sizeMethod · 0.45
clearMethod · 0.45
ParseMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45
WriteMethod · 0.45
FlushMethod · 0.45

Tested by

no test coverage detected