mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-25 16:58:04 +02:00
2016-07-12 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdimport(1) in 'utils/rdimport/rdimport.cpp' and 'utils/rdimport/rdimport.h'.
This commit is contained in:
parent
edd8221b6f
commit
fc332c3655
@ -15278,3 +15278,6 @@
|
|||||||
method in 'lib/rdcart.cpp'.
|
method in 'lib/rdcart.cpp'.
|
||||||
* Removed the 'validity' and 'localCounter' fields from the output
|
* Removed the 'validity' and 'localCounter' fields from the output
|
||||||
of the 'RDCut::xml()' method in 'lib/rdcut.cpp'.
|
of the 'RDCut::xml()' method in 'lib/rdcut.cpp'.
|
||||||
|
2016-07-12 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added an '--xml' switch to rdimport(1) in
|
||||||
|
'utils/rdimport/rdimport.cpp' and 'utils/rdimport/rdimport.h'.
|
||||||
|
@ -243,7 +243,8 @@
|
|||||||
Attempt to read metadata parameters from the source filename,
|
Attempt to read metadata parameters from the source filename,
|
||||||
using the pattern <replaceable>pattern</replaceable>. Patterns
|
using the pattern <replaceable>pattern</replaceable>. Patterns
|
||||||
consist of a sequence of wildcards and regular characters to
|
consist of a sequence of wildcards and regular characters to
|
||||||
indicate boundaries between metadata fields.
|
indicate boundaries between metadata fields. This option is
|
||||||
|
mutually exclusive with the <option>--xml</option> option.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The available wildcards are:
|
The available wildcards are:
|
||||||
@ -774,6 +775,20 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<option>--xml</option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Attempt to read file metadata in RDXML format from the file
|
||||||
|
<userinput><replaceable>basename</replaceable>.xml</userinput>.
|
||||||
|
This option is mututally exclusive with the
|
||||||
|
<option>--metadata-pattern</option> option.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
@ -1610,85 +1610,109 @@ unsigned RDCart::readXml(std::vector<RDWaveData> *data,const QString &xml)
|
|||||||
case 1: // Cart-level objects
|
case 1: // Cart-level objects
|
||||||
if(f0[i].contains("<number>")) {
|
if(f0[i].contains("<number>")) {
|
||||||
cartdata.setCartNumber(GetXmlValue("number",f0[i]).toUInt());
|
cartdata.setCartNumber(GetXmlValue("number",f0[i]).toUInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<groupName>")) {
|
if(f0[i].contains("<groupName>")) {
|
||||||
cartdata.setCategory(GetXmlValue("groupName",f0[i]).toString());
|
cartdata.setCategory(GetXmlValue("groupName",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<title>")) {
|
if(f0[i].contains("<title>")) {
|
||||||
cartdata.setTitle(GetXmlValue("title",f0[i]).toString());
|
cartdata.setTitle(GetXmlValue("title",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<artist>")) {
|
if(f0[i].contains("<artist>")) {
|
||||||
cartdata.setArtist(GetXmlValue("artist",f0[i]).toString());
|
cartdata.setArtist(GetXmlValue("artist",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<album>")) {
|
if(f0[i].contains("<album>")) {
|
||||||
cartdata.setAlbum(GetXmlValue("album",f0[i]).toString());
|
cartdata.setAlbum(GetXmlValue("album",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<label>")) {
|
if(f0[i].contains("<label>")) {
|
||||||
cartdata.setLabel(GetXmlValue("label",f0[i]).toString());
|
cartdata.setLabel(GetXmlValue("label",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<client>")) {
|
if(f0[i].contains("<client>")) {
|
||||||
cartdata.setClient(GetXmlValue("client",f0[i]).toString());
|
cartdata.setClient(GetXmlValue("client",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<agency>")) {
|
if(f0[i].contains("<agency>")) {
|
||||||
cartdata.setAgency(GetXmlValue("agency",f0[i]).toString());
|
cartdata.setAgency(GetXmlValue("agency",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<composer>")) {
|
if(f0[i].contains("<composer>")) {
|
||||||
cartdata.setComposer(GetXmlValue("composer",f0[i]).toString());
|
cartdata.setComposer(GetXmlValue("composer",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<publisher>")) {
|
if(f0[i].contains("<publisher>")) {
|
||||||
cartdata.setPublisher(GetXmlValue("publisher",f0[i]).toString());
|
cartdata.setPublisher(GetXmlValue("publisher",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<conductor>")) {
|
if(f0[i].contains("<conductor>")) {
|
||||||
cartdata.setConductor(GetXmlValue("conductor",f0[i]).toString());
|
cartdata.setConductor(GetXmlValue("conductor",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<userDefined>")) {
|
if(f0[i].contains("<userDefined>")) {
|
||||||
cartdata.setUserDefined(GetXmlValue("userDefined",f0[i]).toString());
|
cartdata.setUserDefined(GetXmlValue("userDefined",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<year>")) {
|
if(f0[i].contains("<year>")) {
|
||||||
cartdata.setReleaseYear(GetXmlValue("year",f0[i]).toInt());
|
cartdata.setReleaseYear(GetXmlValue("year",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<forcedLength>")) {
|
if(f0[i].contains("<forcedLength>")) {
|
||||||
cartdata.
|
cartdata.
|
||||||
setForcedLength(RDSetTimeLength(GetXmlValue("forcedLength",f0[i]).
|
setForcedLength(RDSetTimeLength(GetXmlValue("forcedLength",f0[i]).
|
||||||
toString()));
|
toString()));
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<averageLength>")) {
|
if(f0[i].contains("<averageLength>")) {
|
||||||
cartdata.
|
cartdata.
|
||||||
setAverageLength(RDSetTimeLength(GetXmlValue("averageLength",f0[i]).
|
setAverageLength(RDSetTimeLength(GetXmlValue("averageLength",f0[i]).
|
||||||
toString()));
|
toString()));
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<lengthDeviation>")) {
|
if(f0[i].contains("<lengthDeviation>")) {
|
||||||
cartdata.setLengthDeviation(RDSetTimeLength(GetXmlValue("lengthDeviation",f0[i]).
|
cartdata.setLengthDeviation(RDSetTimeLength(GetXmlValue("lengthDeviation",f0[i]).
|
||||||
toString()));
|
toString()));
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<averageHookLength>")) {
|
if(f0[i].contains("<averageHookLength>")) {
|
||||||
cartdata.
|
cartdata.
|
||||||
setAverageHookLength(RDSetTimeLength(GetXmlValue("averageHookLength",f0[i]).
|
setAverageHookLength(RDSetTimeLength(GetXmlValue("averageHookLength",f0[i]).
|
||||||
toString()));
|
toString()));
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<averageSegueLength>")) {
|
if(f0[i].contains("<averageSegueLength>")) {
|
||||||
cartdata.
|
cartdata.
|
||||||
setAverageSegueLength(RDSetTimeLength(GetXmlValue("averageSegueLength",f0[i]).
|
setAverageSegueLength(RDSetTimeLength(GetXmlValue("averageSegueLength",f0[i]).
|
||||||
toString()));
|
toString()));
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<cutQuantity>")) {
|
if(f0[i].contains("<cutQuantity>")) {
|
||||||
cartdata.setCutQuantity(GetXmlValue("cutQuantity",f0[i]).toInt());
|
cartdata.setCutQuantity(GetXmlValue("cutQuantity",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<lastCutPlayed>")) {
|
if(f0[i].contains("<lastCutPlayed>")) {
|
||||||
cartdata.setLastCutPlayed(GetXmlValue("lastCutPlayed",f0[i]).toInt());
|
cartdata.setLastCutPlayed(GetXmlValue("lastCutPlayed",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<enforceLength>")) {
|
if(f0[i].contains("<enforceLength>")) {
|
||||||
cartdata.setEnforceLength(GetXmlValue("enforceLength",f0[i]).toBool());
|
cartdata.setEnforceLength(GetXmlValue("enforceLength",f0[i]).toBool());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<asyncronous>")) {
|
if(f0[i].contains("<asyncronous>")) {
|
||||||
cartdata.setAsyncronous(GetXmlValue("asyncronous",f0[i]).toBool());
|
cartdata.setAsyncronous(GetXmlValue("asyncronous",f0[i]).toBool());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<owner>")) {
|
if(f0[i].contains("<owner>")) {
|
||||||
cartdata.setOwner(GetXmlValue("owner",f0[i]).toString());
|
cartdata.setOwner(GetXmlValue("owner",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<metadataDatetime>")) {
|
if(f0[i].contains("<metadataDatetime>")) {
|
||||||
cartdata.setMetadataDatetime(GetXmlValue("metadataDatetime",f0[i]).
|
cartdata.setMetadataDatetime(GetXmlValue("metadataDatetime",f0[i]).
|
||||||
toDateTime());
|
toDateTime());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(f0[i]=="</cart>") {
|
if(f0[i]=="</cart>") {
|
||||||
@ -1716,108 +1740,139 @@ unsigned RDCart::readXml(std::vector<RDWaveData> *data,const QString &xml)
|
|||||||
|
|
||||||
case 3: // Cut Object
|
case 3: // Cut Object
|
||||||
if(f0[i].contains("<description>")) {
|
if(f0[i].contains("<description>")) {
|
||||||
data->back().setDescription(GetXmlValue("description",f0[i]).toString());
|
data->
|
||||||
|
back().setDescription(GetXmlValue("description",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<cutNumber>")) {
|
if(f0[i].contains("<cutNumber>")) {
|
||||||
data->back().setCutNumber(GetXmlValue("cutNumber",f0[i]).toInt());
|
data->back().setCutNumber(GetXmlValue("cutNumber",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<cutName>")) {
|
if(f0[i].contains("<cutName>")) {
|
||||||
data->back().setCutName(GetXmlValue("cutName",f0[i]).toString());
|
data->back().setCutName(GetXmlValue("cutName",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<evergreen>")) {
|
if(f0[i].contains("<evergreen>")) {
|
||||||
data->back().setEvergreen(GetXmlValue("evergreen",f0[i]).toBool());
|
data->back().setEvergreen(GetXmlValue("evergreen",f0[i]).toBool());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<outcue>")) {
|
if(f0[i].contains("<outcue>")) {
|
||||||
data->back().setOutCue(GetXmlValue("outcue",f0[i]).toString());
|
data->back().setOutCue(GetXmlValue("outcue",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<isrc>")) {
|
if(f0[i].contains("<isrc>")) {
|
||||||
data->back().setIsrc(GetXmlValue("isrc",f0[i]).toString());
|
data->back().setIsrc(GetXmlValue("isrc",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<isci>")) {
|
if(f0[i].contains("<isci>")) {
|
||||||
data->back().setIsci(GetXmlValue("isci",f0[i]).toString());
|
data->back().setIsci(GetXmlValue("isci",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<length>")) {
|
if(f0[i].contains("<length>")) {
|
||||||
data->back().setLength(GetXmlValue("length",f0[i]).toInt());
|
data->back().setLength(GetXmlValue("length",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<originName>")) {
|
if(f0[i].contains("<originName>")) {
|
||||||
data->back().setOriginator(GetXmlValue("originName",f0[i]).toString());
|
data->back().setOriginator(GetXmlValue("originName",f0[i]).toString());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<originDatetime>")) {
|
if(f0[i].contains("<originDatetime>")) {
|
||||||
data->back().setOriginationDate(GetXmlValue("originDatetime",f0[i]).
|
data->back().setOriginationDate(GetXmlValue("originDatetime",f0[i]).
|
||||||
toDateTime().date());
|
toDateTime().date());
|
||||||
data->back().setOriginationTime(GetXmlValue("originDatetime",f0[i]).
|
data->back().setOriginationTime(GetXmlValue("originDatetime",f0[i]).
|
||||||
toDateTime().time());
|
toDateTime().time());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<playCounter>")) {
|
if(f0[i].contains("<playCounter>")) {
|
||||||
data->back().setPlayCounter(GetXmlValue("playCounter",f0[i]).toInt());
|
data->back().setPlayCounter(GetXmlValue("playCounter",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<startDatetime>")) {
|
if(f0[i].contains("<startDatetime>")) {
|
||||||
data->back().setStartDate(GetXmlValue("startDatetime",f0[i]).
|
data->back().setStartDate(GetXmlValue("startDatetime",f0[i]).
|
||||||
toDateTime().date());
|
toDateTime().date());
|
||||||
data->back().setStartTime(GetXmlValue("startDatetime",f0[i]).
|
data->back().setStartTime(GetXmlValue("startDatetime",f0[i]).
|
||||||
toDateTime().time());
|
toDateTime().time());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<endDatetime>")) {
|
if(f0[i].contains("<endDatetime>")) {
|
||||||
data->back().setEndDate(GetXmlValue("endDatetime",f0[i]).
|
data->back().setEndDate(GetXmlValue("endDatetime",f0[i]).
|
||||||
toDateTime().date());
|
toDateTime().date());
|
||||||
data->back().setEndTime(GetXmlValue("endDatetime",f0[i]).
|
data->back().setEndTime(GetXmlValue("endDatetime",f0[i]).
|
||||||
toDateTime().time());
|
toDateTime().time());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<lastPlayDatetime>")) {
|
if(f0[i].contains("<lastPlayDatetime>")) {
|
||||||
data->back().setLastPlayDatetime(GetXmlValue("lastPlayDatetime",f0[i]).
|
data->back().setLastPlayDatetime(GetXmlValue("lastPlayDatetime",f0[i]).
|
||||||
toDateTime());
|
toDateTime());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<codingFormat>")) {
|
if(f0[i].contains("<codingFormat>")) {
|
||||||
settings->setFormat((RDSettings::Format)GetXmlValue("codingFormat",f0[i]).
|
settings->setFormat((RDSettings::Format)GetXmlValue("codingFormat",f0[i]).
|
||||||
toUInt());
|
toUInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<sampleRate>")) {
|
if(f0[i].contains("<sampleRate>")) {
|
||||||
settings->setSampleRate(GetXmlValue("sampleRate",f0[i]).toUInt());
|
settings->setSampleRate(GetXmlValue("sampleRate",f0[i]).toUInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<bitRate>")) {
|
if(f0[i].contains("<bitRate>")) {
|
||||||
settings->setBitRate(GetXmlValue("bitRate",f0[i]).toUInt());
|
settings->setBitRate(GetXmlValue("bitRate",f0[i]).toUInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<channels>")) {
|
if(f0[i].contains("<channels>")) {
|
||||||
settings->setChannels(GetXmlValue("channels",f0[i]).toUInt());
|
settings->setChannels(GetXmlValue("channels",f0[i]).toUInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<playGain>")) {
|
if(f0[i].contains("<playGain>")) {
|
||||||
data->back().setPlayGain(GetXmlValue("playGain",f0[i]).toInt());
|
data->back().setPlayGain(GetXmlValue("playGain",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<startPoint>")) {
|
if(f0[i].contains("<startPoint>")) {
|
||||||
data->back().setStartPos(GetXmlValue("startPoint",f0[i]).toInt());
|
data->back().setStartPos(GetXmlValue("startPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<endPoint>")) {
|
if(f0[i].contains("<endPoint>")) {
|
||||||
data->back().setEndPos(GetXmlValue("endPoint",f0[i]).toInt());
|
data->back().setEndPos(GetXmlValue("endPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<segueStartPoint>")) {
|
if(f0[i].contains("<segueStartPoint>")) {
|
||||||
data->back().setSegueStartPos(GetXmlValue("segueStartPoint",f0[i]).
|
data->back().setSegueStartPos(GetXmlValue("segueStartPoint",f0[i]).
|
||||||
toInt());
|
toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<segueEndPoint>")) {
|
if(f0[i].contains("<segueEndPoint>")) {
|
||||||
data->back().setSegueEndPos(GetXmlValue("segueEndPoint",f0[i]).toInt());
|
data->back().setSegueEndPos(GetXmlValue("segueEndPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<segueGain>")) {
|
if(f0[i].contains("<segueGain>")) {
|
||||||
data->back().setSegueGain(GetXmlValue("segueGain",f0[i]).toInt());
|
data->back().setSegueGain(GetXmlValue("segueGain",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<talkStartPoint>")) {
|
if(f0[i].contains("<talkStartPoint>")) {
|
||||||
data->back().setIntroStartPos(GetXmlValue("talkStartPoint",f0[i]).
|
data->back().setIntroStartPos(GetXmlValue("talkStartPoint",f0[i]).
|
||||||
toInt());
|
toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<talkEndPoint>")) {
|
if(f0[i].contains("<talkEndPoint>")) {
|
||||||
data->back().setIntroEndPos(GetXmlValue("talkEndPoint",f0[i]).toInt());
|
data->back().setIntroEndPos(GetXmlValue("talkEndPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<hookStartPoint>")) {
|
if(f0[i].contains("<hookStartPoint>")) {
|
||||||
data->back().setHookStartPos(GetXmlValue("hookStartPoint",f0[i]).
|
data->back().setHookStartPos(GetXmlValue("hookStartPoint",f0[i]).
|
||||||
toInt());
|
toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<hookEndPoint>")) {
|
if(f0[i].contains("<hookEndPoint>")) {
|
||||||
data->back().setHookEndPos(GetXmlValue("hookEndPoint",f0[i]).toInt());
|
data->back().setHookEndPos(GetXmlValue("hookEndPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<fadeupPoint>")) {
|
if(f0[i].contains("<fadeupPoint>")) {
|
||||||
data->back().setFadeUpPos(GetXmlValue("fadeupPoint",f0[i]).toInt());
|
data->back().setFadeUpPos(GetXmlValue("fadeupPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
if(f0[i].contains("<fadedownPoint>")) {
|
if(f0[i].contains("<fadedownPoint>")) {
|
||||||
data->back().setFadeDownPos(GetXmlValue("fadedownPoint",f0[i]).toInt());
|
data->back().setFadeDownPos(GetXmlValue("fadedownPoint",f0[i]).toInt());
|
||||||
|
cartdata.setMetadataFound(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(f0[i]=="</cut>") { // End of cut
|
if(f0[i]=="</cut>") { // End of cut
|
||||||
@ -1829,9 +1884,6 @@ unsigned RDCart::readXml(std::vector<RDWaveData> *data,const QString &xml)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("DUMP:\n%s\n",(const char *)cartdata.dump());
|
|
||||||
|
|
||||||
return data->size();
|
return data->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,6 +89,7 @@ MainObject::MainObject(QObject *parent)
|
|||||||
import_string_year=0;
|
import_string_year=0;
|
||||||
import_clear_datetimes=false;
|
import_clear_datetimes=false;
|
||||||
import_clear_dayparts=false;
|
import_clear_dayparts=false;
|
||||||
|
import_xml=false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Read Command Options
|
// Read Command Options
|
||||||
@ -379,7 +380,15 @@ MainObject::MainObject(QObject *parent)
|
|||||||
}
|
}
|
||||||
import_cmd->setProcessed(i,true);
|
import_cmd->setProcessed(i,true);
|
||||||
}
|
}
|
||||||
|
if(import_cmd->key(i)=="--xml") {
|
||||||
|
import_xml=true;
|
||||||
|
import_cmd->setProcessed(i,true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sanity Checks
|
||||||
|
//
|
||||||
if(import_datetimes[0].isValid()&&import_clear_datetimes) {
|
if(import_datetimes[0].isValid()&&import_clear_datetimes) {
|
||||||
fprintf(stderr,"rdimport: --set-datetimes and --clear-datetimes are mutually exclusive\n");
|
fprintf(stderr,"rdimport: --set-datetimes and --clear-datetimes are mutually exclusive\n");
|
||||||
exit(255);
|
exit(255);
|
||||||
@ -388,6 +397,10 @@ MainObject::MainObject(QObject *parent)
|
|||||||
fprintf(stderr,"rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive\n");
|
fprintf(stderr,"rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive\n");
|
||||||
exit(255);
|
exit(255);
|
||||||
}
|
}
|
||||||
|
if((!import_metadata_pattern.isEmpty())&&import_xml) {
|
||||||
|
fprintf(stderr,"rdimport: --metadata-pattern and --xml are mutually exclusive\n");
|
||||||
|
exit(255);
|
||||||
|
}
|
||||||
|
|
||||||
import_cut_markers=new MarkerSet();
|
import_cut_markers=new MarkerSet();
|
||||||
import_cut_markers->loadMarker(import_cmd,"cut");
|
import_cut_markers->loadMarker(import_cmd,"cut");
|
||||||
@ -722,6 +735,9 @@ MainObject::MainObject(QObject *parent)
|
|||||||
if(import_string_year!=0) {
|
if(import_string_year!=0) {
|
||||||
printf(" Year set to: %d\n",import_string_year);
|
printf(" Year set to: %d\n",import_string_year);
|
||||||
}
|
}
|
||||||
|
if(import_xml) {
|
||||||
|
printf(" Importing RDXML metadata from external file\n");
|
||||||
|
}
|
||||||
import_cut_markers->dump();
|
import_cut_markers->dump();
|
||||||
import_talk_markers->dump();
|
import_talk_markers->dump();
|
||||||
import_hook_markers->dump();
|
import_hook_markers->dump();
|
||||||
@ -1026,6 +1042,10 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(import_xml) {
|
||||||
|
ReadXmlFile(filename,wavedata);
|
||||||
|
}
|
||||||
|
|
||||||
if(import_use_cartchunk_cutid||found_cart) {
|
if(import_use_cartchunk_cutid||found_cart) {
|
||||||
*cartnum=0;
|
*cartnum=0;
|
||||||
sscanf(wavedata->cutId(),"%u",cartnum);
|
sscanf(wavedata->cutId(),"%u",cartnum);
|
||||||
@ -1897,6 +1917,53 @@ bool MainObject::SchedulerCodeExists(const QString &code) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainObject::ReadXmlFile(const QString &basename,RDWaveData *wavedata) const
|
||||||
|
{
|
||||||
|
QString xmlname="";
|
||||||
|
FILE *f=NULL;
|
||||||
|
char line[1024];
|
||||||
|
QString xml="";
|
||||||
|
std::vector<RDWaveData> wavedatas;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get XML Filename
|
||||||
|
//
|
||||||
|
QStringList f0=f0.split(".",basename);
|
||||||
|
for(unsigned i=0;i<f0.size()-1;i++) {
|
||||||
|
xmlname+=f0[i]+".";
|
||||||
|
}
|
||||||
|
xmlname+="xml";
|
||||||
|
if(import_verbose) {
|
||||||
|
printf(" Reading xml metadata from \"%s\": ",(const char *)xmlname);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Read XML
|
||||||
|
//
|
||||||
|
wavedata->clear();
|
||||||
|
if((f=fopen(xmlname,"r"))==NULL) {
|
||||||
|
if(import_verbose) {
|
||||||
|
printf("failed [%s]\n",strerror(errno));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(import_verbose) {
|
||||||
|
printf("success\n");
|
||||||
|
}
|
||||||
|
while(fgets(line,1024,f)!=NULL) {
|
||||||
|
xml+=line;
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse
|
||||||
|
//
|
||||||
|
if(RDCart::readXml(&wavedatas,xml)>0) {
|
||||||
|
*wavedata=wavedatas[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc,char *argv[])
|
int main(int argc,char *argv[])
|
||||||
{
|
{
|
||||||
QApplication a(argc,argv,false);
|
QApplication a(argc,argv,false);
|
||||||
|
@ -78,6 +78,7 @@ class MainObject : public QObject
|
|||||||
QDateTime GetCachedTimestamp(const QString &filename);
|
QDateTime GetCachedTimestamp(const QString &filename);
|
||||||
void WriteTimestampCache(const QString &filename,const QDateTime &dt);
|
void WriteTimestampCache(const QString &filename,const QDateTime &dt);
|
||||||
bool SchedulerCodeExists(const QString &code) const;
|
bool SchedulerCodeExists(const QString &code) const;
|
||||||
|
void ReadXmlFile(const QString &basename,RDWaveData *wavedata) const;
|
||||||
RDConfig *import_config;
|
RDConfig *import_config;
|
||||||
RDCmdSwitch *import_cmd;
|
RDCmdSwitch *import_cmd;
|
||||||
unsigned import_file_key;
|
unsigned import_file_key;
|
||||||
@ -107,6 +108,7 @@ class MainObject : public QObject
|
|||||||
bool import_clear_dayparts;
|
bool import_clear_dayparts;
|
||||||
bool import_fix_broken_formats;
|
bool import_fix_broken_formats;
|
||||||
int import_persistent_dropbox_id;
|
int import_persistent_dropbox_id;
|
||||||
|
bool import_xml;
|
||||||
unsigned import_format;
|
unsigned import_format;
|
||||||
unsigned import_samprate;
|
unsigned import_samprate;
|
||||||
unsigned import_bitrate;
|
unsigned import_bitrate;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user