mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-14 16:46:28 +01:00
Register factory functions with DirManager to interpret XML tags...
... Removes direct dependency on ODManager.h and some BlockFile subclasses, but does not yet break any dependency cycles
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <sndfile.h>
|
||||
|
||||
#include "LegacyBlockFile.h"
|
||||
#include "../DirManager.h"
|
||||
#include "../FileFormats.h"
|
||||
#include "../xml/XMLTagHandler.h"
|
||||
|
||||
@@ -147,3 +148,36 @@ BlockFilePtr LegacyAliasBlockFile::BuildFromXML(const FilePath &projDir, const w
|
||||
void LegacyAliasBlockFile::Recover(){
|
||||
WriteSummary();
|
||||
}
|
||||
|
||||
static const auto sFactory = []( DirManager &dm, const wxChar **attrs ){
|
||||
|
||||
// Support Audacity version 1.1.1 project files
|
||||
|
||||
int i=0;
|
||||
bool alias = false;
|
||||
|
||||
while(attrs[i]) {
|
||||
if (!wxStricmp(attrs[i], wxT("alias"))) {
|
||||
if (wxAtoi(attrs[i+1])==1)
|
||||
alias = true;
|
||||
}
|
||||
i++;
|
||||
if (attrs[i])
|
||||
i++;
|
||||
}
|
||||
|
||||
if (alias)
|
||||
return LegacyAliasBlockFile::BuildFromXML(
|
||||
dm.GetProjectDataDir(), attrs);
|
||||
else
|
||||
return LegacyBlockFile::BuildFromXML(dm.GetProjectDataDir(), attrs,
|
||||
dm.GetLoadingBlockLength(),
|
||||
dm.GetLoadingFormat());
|
||||
};
|
||||
|
||||
static DirManager::RegisteredBlockFileDeserializer sRegistration1 {
|
||||
"blockfile", sFactory
|
||||
};
|
||||
static DirManager::RegisteredBlockFileDeserializer sRegistration2 {
|
||||
"legacyblockfile", sFactory
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user