Update Eq factory presets on upgrade
Add search paths for EQDefaultCurves.xml
This commit is contained in:
parent
6f63226291
commit
36f3f8aab2
|
@ -1390,45 +1390,22 @@ void EffectEqualization::LoadCurves(const wxString &fileName, bool append)
|
||||||
// UpdateDefaultCurves allows us to import new factory presets only,
|
// UpdateDefaultCurves allows us to import new factory presets only,
|
||||||
// or update all factory preset curves.
|
// or update all factory preset curves.
|
||||||
if (needUpdate)
|
if (needUpdate)
|
||||||
this->UpdateDefaultCurves( UPDATE_ALL != 0 );
|
UpdateDefaultCurves( UPDATE_ALL != 0 );
|
||||||
fn = wxFileName( FileNames::DataDir(), wxT("EQCurves.xml") );
|
fn = wxFileName( FileNames::DataDir(), wxT("EQCurves.xml") );
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
fn = wxFileName(fileName); // user is loading a specific set of curves
|
fn = wxFileName(fileName); // user is loading a specific set of curves
|
||||||
|
}
|
||||||
|
|
||||||
// If requested file doesn't exist...
|
// If requested file doesn't exist...
|
||||||
if( !fn.FileExists() )
|
if( !fn.FileExists() && !GetDefaultFileName(fn) ) {
|
||||||
{
|
mCurves.Clear();
|
||||||
// look in data dir first, in case the user has their own defaults (maybe downloaded ones)
|
mCurves.Add( _("unnamed") ); // we still need a default curve to use
|
||||||
fn = wxFileName( FileNames::DataDir(), wxT("EQDefaultCurves.xml") );
|
return;
|
||||||
if( !fn.FileExists() )
|
|
||||||
{ // Default file not found in the data dir. Fall back to Resources dir.
|
|
||||||
// See http://docs.wxwidgets.org/trunk/classwx_standard_paths.html#5514bf6288ee9f5a0acaf065762ad95d
|
|
||||||
static wxString resourcesDir;
|
|
||||||
resourcesDir = wxStandardPaths::Get().GetResourcesDir();
|
|
||||||
fn = wxFileName( resourcesDir, wxT("EQDefaultCurves.xml") );
|
|
||||||
}
|
|
||||||
if( !fn.FileExists() )
|
|
||||||
{
|
|
||||||
// LLL: Is there really a need for an error message at all???
|
|
||||||
//wxString errorMessage;
|
|
||||||
//errorMessage.Printf(_("EQCurves.xml and EQDefaultCurves.xml were not found on your system.\nPlease press 'help' to visit the download page.\n\nSave the curves at %s"), FileNames::DataDir().c_str());
|
|
||||||
//ShowErrorDialog(mUIParent, _("EQCurves.xml and EQDefaultCurves.xml missing"),
|
|
||||||
// errorMessage, wxT("http://wiki.audacityteam.org/wiki/EQCurvesDownload"), false);
|
|
||||||
|
|
||||||
// Have another go at finding EQCurves.xml in the data dir, in case 'help' helped
|
|
||||||
fn = wxFileName( FileNames::DataDir(), wxT("EQDefaultCurves.xml") );
|
|
||||||
if( !fn.FileExists() )
|
|
||||||
{
|
|
||||||
mCurves.Clear();
|
|
||||||
mCurves.Add( _("unnamed") ); // we still need a default curve to use
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EQCurve tempCustom(wxT("temp"));
|
EQCurve tempCustom(wxT("temp"));
|
||||||
if( append == false) // Start from scratch
|
if( append == false ) // Start from scratch
|
||||||
mCurves.Clear();
|
mCurves.Clear();
|
||||||
else // appending so copy and remove 'unnamed', to replace later
|
else // appending so copy and remove 'unnamed', to replace later
|
||||||
{
|
{
|
||||||
|
@ -1495,12 +1472,10 @@ void EffectEqualization::UpdateDefaultCurves(bool updateAll /* false */)
|
||||||
EQCurveArray userCurves = mCurves;
|
EQCurveArray userCurves = mCurves;
|
||||||
mCurves.Clear();
|
mCurves.Clear();
|
||||||
wxFileName fn;
|
wxFileName fn;
|
||||||
|
|
||||||
XMLFileReader reader;
|
XMLFileReader reader;
|
||||||
fn = wxFileName( FileNames::DataDir(), wxT("EQDefaultCurves.xml") );
|
|
||||||
|
|
||||||
if(!fn.FileExists() || !reader.Parse(this, fn.GetFullPath())) {
|
if(!GetDefaultFileName(fn) || !reader.Parse(this, fn.GetFullPath())) {
|
||||||
wxLogError(wxT("%s could not be read."), fn.GetFullPath().c_str());
|
wxLogError(wxT("EQDefaultCurves.xml could not be read."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1592,6 +1567,34 @@ void EffectEqualization::UpdateDefaultCurves(bool updateAll /* false */)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get fully qualified filename of EQDefaultCurves.xml
|
||||||
|
//
|
||||||
|
bool EffectEqualization::GetDefaultFileName(wxFileName &fileName)
|
||||||
|
{
|
||||||
|
// look in data dir first, in case the user has their own defaults (maybe downloaded ones)
|
||||||
|
fileName = wxFileName( FileNames::DataDir(), wxT("EQDefaultCurves.xml") );
|
||||||
|
if( !fileName.FileExists() )
|
||||||
|
{ // Default file not found in the data dir. Fall back to Resources dir.
|
||||||
|
// See http://docs.wxwidgets.org/trunk/classwx_standard_paths.html#5514bf6288ee9f5a0acaf065762ad95d
|
||||||
|
static wxString resourcesDir;
|
||||||
|
resourcesDir = wxStandardPaths::Get().GetResourcesDir();
|
||||||
|
fileName = wxFileName( resourcesDir, wxT("EQDefaultCurves.xml") );
|
||||||
|
}
|
||||||
|
if( !fileName.FileExists() )
|
||||||
|
{
|
||||||
|
// LLL: Is there really a need for an error message at all???
|
||||||
|
//wxString errorMessage;
|
||||||
|
//errorMessage.Printf(_("EQCurves.xml and EQDefaultCurves.xml were not found on your system.\nPlease press 'help' to visit the download page.\n\nSave the curves at %s"), FileNames::DataDir().c_str());
|
||||||
|
//ShowErrorDialog(mUIParent, _("EQCurves.xml and EQDefaultCurves.xml missing"),
|
||||||
|
// errorMessage, wxT("http://wiki.audacityteam.org/wiki/EQCurvesDownload"), false);
|
||||||
|
|
||||||
|
// Have another go at finding EQCurves.xml in the data dir, in case 'help' helped
|
||||||
|
fileName = wxFileName( FileNames::DataDir(), wxT("EQDefaultCurves.xml") );
|
||||||
|
}
|
||||||
|
return (fileName.FileExists());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Save curves to external file
|
// Save curves to external file
|
||||||
|
|
|
@ -149,6 +149,7 @@ private:
|
||||||
void setCurve(int currentCurve);
|
void setCurve(int currentCurve);
|
||||||
void setCurve(const wxString &curveName);
|
void setCurve(const wxString &curveName);
|
||||||
void setCurve(void);
|
void setCurve(void);
|
||||||
|
bool GetDefaultFileName(wxFileName &fileName);
|
||||||
|
|
||||||
// XMLTagHandler callback methods for loading and saving
|
// XMLTagHandler callback methods for loading and saving
|
||||||
bool HandleXMLTag(const wxChar *tag, const wxChar **attrs);
|
bool HandleXMLTag(const wxChar *tag, const wxChar **attrs);
|
||||||
|
|
Loading…
Reference in New Issue