From d48935a00ae4dc73a8c642c6287aaab71b1448b9 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 15 Jun 2016 13:01:03 -0400 Subject: [PATCH] 2016-06-15 Fred Gleason * Added an '--xml' switch to rdexport(1) in 'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'. --- ChangeLog | 3 +++ docs/docbook/rdexport.xml | 12 ++++++++++++ lib/rdcart.cpp | 25 +++++++++++++++++-------- lib/rdcart.h | 2 +- utils/rdexport/rdexport.cpp | 22 +++++++++++++++++++++- utils/rdexport/rdexport.h | 1 + 6 files changed, 55 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index b93c96c9..2d89cda5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 + * Added an '--xml' switch to rdexport(1) in + 'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'. diff --git a/docs/docbook/rdexport.xml b/docs/docbook/rdexport.xml index 34f34c46..caa92cf7 100644 --- a/docs/docbook/rdexport.xml +++ b/docs/docbook/rdexport.xml @@ -380,6 +380,18 @@ + + + + + + + Generate an XML file for each generated audio file containing + its cart/cut metadata. + + + + diff --git a/lib/rdcart.cpp b/lib/rdcart.cpp index 28181c68..dc067efb 100644 --- a/lib/rdcart.cpp +++ b/lib/rdcart.cpp @@ -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+="\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+="\n"; } break; diff --git a/lib/rdcart.h b/lib/rdcart.h index c3f8e802..13d1e02f 100644 --- a/lib/rdcart.h +++ b/lib/rdcart.h @@ -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; diff --git a/utils/rdexport/rdexport.cpp b/utils/rdexport/rdexport.cpp index c4c4c279..46be8ba8 100644 --- a/utils/rdexport/rdexport.cpp +++ b/utils/rdexport/rdexport.cpp @@ -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;ixml(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)); diff --git a/utils/rdexport/rdexport.h b/utils/rdexport/rdexport.h index 725897bb..a0b80fd4 100644 --- a/utils/rdexport/rdexport.h +++ b/utils/rdexport/rdexport.h @@ -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;