2016-06-15 Fred Gleason <fredg@paravelsystems.com>

* Added an '--xml' switch to rdexport(1) in
	'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'.
This commit is contained in:
Fred Gleason 2016-06-15 13:01:03 -04:00
parent aa610a739c
commit d48935a00a
6 changed files with 55 additions and 10 deletions

View File

@ -15240,3 +15240,6 @@
* Added '--bitrate=', '--channels=', '--format=', '--quality='
and '--samplerate=' to rdexport(1) in 'utils/rdexport/rdexport.cpp'
and 'utils/rdexport/rdexport.h'.
2016-06-15 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdexport(1) in
'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'.

View File

@ -380,6 +380,18 @@
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--xml</option>
</term>
<listitem>
<para>
Generate an XML file for each generated audio file containing
its cart/cut metadata.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -971,7 +971,7 @@ bool RDCart::validateLengths(int len) const
}
QString RDCart::xml(bool include_cuts) const
QString RDCart::xml(bool include_cuts,int cutnum) const
{
#ifdef WIN32
return QString();
@ -1040,15 +1040,24 @@ QString RDCart::xml(bool include_cuts) const
case RDCart::Audio:
if(include_cuts) {
ret+="<cutList>\n";
sql=QString().sprintf("select CUT_NAME from CUTS where CART_NUMBER=%u",
cart_number);
q1=new RDSqlQuery(sql);
while(q1->next()) {
cut=new RDCut(q1->value(0).toString());
ret+=cut->xml();
if(cutnum<0) {
sql=QString("select CUT_NAME from CUTS where ")+
QString().sprintf("(CART_NUMBER=%u)",cart_number);
q1=new RDSqlQuery(sql);
while(q1->next()) {
cut=new RDCut(q1->value(0).toString());
ret+=cut->xml();
delete cut;
}
delete q1;
}
else {
cut=new RDCut(RDCut::cutName(cart_number,cutnum));
if(cut->exists()) {
ret+=cut->xml();
}
delete cut;
}
delete q1;
ret+="</cutList>\n";
}
break;

View File

@ -135,7 +135,7 @@ class RDCart
bool validateLengths(int len) const;
void getMetadata(RDWaveData *data) const;
void setMetadata(const RDWaveData *data);
QString xml(bool include_cuts) const;
QString xml(bool include_cuts,int cutnum=-1) const;
void updateLength();
void updateLength(bool enforce_length,unsigned length);
void resetRotation() const;

View File

@ -48,6 +48,7 @@ MainObject::MainObject(QObject *parent)
export_bitrate=0;
export_channels=0;
export_quality=3;
export_xml=false;
//
// Read Command Options
@ -178,6 +179,10 @@ MainObject::MainObject(QObject *parent)
export_verbose=true;
cmd->setProcessed(i,true);
}
if(cmd->key(i)=="--xml") {
export_xml=true;
cmd->setProcessed(i,true);
}
if(!cmd->processed(i)) {
fprintf(stderr,"rdexport: unrecognized option\n");
exit(256);
@ -419,7 +424,22 @@ void MainObject::ExportCut(RDCart *cart,RDCut *cut)
conv->setEnableMetadata(true);
if((export_err=conv->runExport(export_user->name(),export_user->password(),
&conv_err))!=RDAudioExport::ErrorOk) {
&conv_err))==RDAudioExport::ErrorOk) {
if(export_xml) {
FILE *f=NULL;
QStringList f0=f0.split(".",conv->destinationFile(),true);
QString filename;
for(unsigned i=0;i<f0.size()-1;i++) {
filename+=f0[i]+".";
}
filename+="xml";
if((f=fopen(filename,"w"))!=NULL) {
fprintf(f,"%s\n",(const char *)cart->xml(true,cut->cutNumber()));
fclose(f);
}
}
}
else {
fprintf(stderr,"rdexport: exporter error for output file \"%s\" [%s]\n",
(const char *)conv->destinationFile(),
(const char *)RDAudioExport::errorText(export_err,conv_err));

View File

@ -62,6 +62,7 @@ class MainObject : public QObject
unsigned export_bitrate;
unsigned export_channels;
int export_quality;
bool export_xml;
RDConfig *export_config;
RDRipc *export_ripc;
RDStation *export_station;