11 #include "../Audacity.h"
16 #include <wx/wxcrtvararg.h>
21 #include "../FileFormats.h"
23 #include "../DirManager.h"
29 size_t aliasLen,
int aliasChannel)
30 : AliasBlockFile{ std::move(fileName), std::move(aliasedFileName),
31 aliasStart, aliasLen, aliasChannel }
33 AliasBlockFile::WriteSummary();
40 size_t aliasLen,
int aliasChannel,
bool writeSummary)
41 : AliasBlockFile{ std::move(fileName), std::move(aliasedFileName),
42 aliasStart, aliasLen, aliasChannel }
45 AliasBlockFile::WriteSummary();
52 size_t aliasLen,
int aliasChannel,
53 float min,
float max,
float rms)
54 : AliasBlockFile{ std::move(existingSummaryFileName), std::move(aliasedFileName),
56 aliasChannel,
min, max, rms }
72 size_t start,
size_t len,
bool mayThrow)
const
74 if(!mAliasedFileName.IsOk()){
79 return CommonReadData( mayThrow,
80 mAliasedFileName, mSilentAliasLog,
this, mAliasStart, mAliasChannel,
90 auto newBlockFile = make_blockfile<PCMAliasBlockFile>
92 mAliasStart, mLen, mAliasChannel, mMin, mMax, mRMS);
100 xmlFile.
StartTag(wxT(
"pcmaliasblockfile"));
102 xmlFile.
WriteAttr(wxT(
"summaryfile"), mFileName.GetFullName());
103 xmlFile.
WriteAttr(wxT(
"aliasfile"), mAliasedFileName.GetFullPath());
105 mAliasStart.as_long_long());
106 xmlFile.
WriteAttr(wxT(
"aliaslen"), mLen);
107 xmlFile.
WriteAttr(wxT(
"aliaschannel"), mAliasChannel);
112 xmlFile.
EndTag(wxT(
"pcmaliasblockfile"));
122 int aliasStart=0, aliasLen=0, aliasChannel=0;
123 float min = 0.0f, max = 0.0f, rms = 0.0f;
130 const wxChar *attr = *attrs++;
131 const wxChar *value = *attrs++;
135 const wxString strValue = value;
136 if (!wxStricmp(attr, wxT(
"summaryfile")) &&
141 if (!dm.AssignFile(summaryFileName, strValue,
false))
143 summaryFileName.Clear();
145 else if (!wxStricmp(attr, wxT(
"aliasfile")))
148 aliasFileName.Assign(strValue);
151 aliasFileName.Assign(dm.GetProjectDataDir(), strValue);
156 aliasFileName.Assign(strValue);
158 else if ( !wxStricmp(attr, wxT(
"aliasstart")) )
161 strValue.ToLongLong(&nnValue) && (nnValue >= 0))
162 aliasStart = nnValue;
166 if (!wxStricmp(attr, wxT(
"aliaslen")) && (nValue >= 0))
169 aliasChannel = nValue;
170 else if (!wxStricmp(attr, wxT(
"min")))
172 else if (!wxStricmp(attr, wxT(
"max")))
174 else if (!wxStricmp(attr, wxT(
"rms")) && (nValue >= 0))
184 if (!wxStricmp(attr, wxT(
"min")))
186 else if (!wxStricmp(attr, wxT(
"max")))
188 else if (!wxStricmp(attr, wxT(
"rms")) && (dblValue >= 0.0))
193 return make_blockfile<PCMAliasBlockFile>
194 (std::move(summaryFileName), std::move(aliasFileName),
195 aliasStart, aliasLen, aliasChannel,
min, max, rms);
205 []( DirManager &dm,
const wxChar **attrs ){