Send all errors to stderr in addition to rda->log()

This commit is contained in:
Patrick Linstruth
2018-10-16 09:34:17 -07:00
parent d65e81981b
commit ff98934f23

View File

@@ -135,11 +135,12 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--to-cart") { if(rda->cmdSwitch()->key(i)=="--to-cart") {
import_cart_number=rda->cmdSwitch()->value(i).toUInt(&ok); import_cart_number=rda->cmdSwitch()->value(i).toUInt(&ok);
if((!ok)||(import_cart_number<1)||(import_cart_number>999999)) { if((!ok)||(import_cart_number<1)||(import_cart_number>999999)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid cart number")); fprintf(stderr,(const char *)QString("rdimport: invalid cart number"));
LogError(RDConfig::LogErr,QString("rdimport: invalid cart number"));
exit(2); exit(2);
} }
if(import_use_cartchunk_cutid) { if(import_use_cartchunk_cutid) {
rda->log(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive")); LogError(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive"));
exit(2); exit(2);
} }
import_single_cart=true; import_single_cart=true;
@@ -147,7 +148,7 @@ MainObject::MainObject(QObject *parent)
} }
if(rda->cmdSwitch()->key(i)=="--use-cartchunk-cutid") { if(rda->cmdSwitch()->key(i)=="--use-cartchunk-cutid") {
if(import_cart_number!=0) { if(import_cart_number!=0) {
rda->log(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive")); LogError(RDConfig::LogErr,QString("rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive"));
exit(2); exit(2);
} }
import_use_cartchunk_cutid=true; import_use_cartchunk_cutid=true;
@@ -156,7 +157,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--cart-number-offset") { if(rda->cmdSwitch()->key(i)=="--cart-number-offset") {
import_cart_number_offset=rda->cmdSwitch()->value(i).toInt(&ok); import_cart_number_offset=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid --cart-number-offset")); LogError(RDConfig::LogErr,QString("rdimport: invalid --cart-number-offset"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -176,7 +177,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--startdate-offset") { if(rda->cmdSwitch()->key(i)=="--startdate-offset") {
import_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok); import_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid startdate-offset")); LogError(RDConfig::LogErr,QString("rdimport: invalid startdate-offset"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -184,7 +185,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--enddate-offset") { if(rda->cmdSwitch()->key(i)=="--enddate-offset") {
import_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok); import_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid enddate-offset")); LogError(RDConfig::LogErr,QString("rdimport: invalid enddate-offset"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -196,52 +197,52 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--set-datetimes") { if(rda->cmdSwitch()->key(i)=="--set-datetimes") {
QStringList f0=rda->cmdSwitch()->value(i).split(","); QStringList f0=rda->cmdSwitch()->value(i).split(",");
if(f0.size()!=2) { if(f0.size()!=2) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes"));
exit(2); exit(2);
} }
for(unsigned j=0;j<2;j++) { for(unsigned j=0;j<2;j++) {
if((f0[j].length()!=15)||(f0[j].mid(8,1)!="-")) { if((f0[j].length()!=15)||(f0[j].mid(8,1)!="-")) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned year=f0[j].left(4).toUInt(&ok); unsigned year=f0[j].left(4).toUInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid year argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid year argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned month=f0[j].mid(4,2).toUInt(&ok); unsigned month=f0[j].mid(4,2).toUInt(&ok);
if((!ok)||(month>12)) { if((!ok)||(month>12)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid month argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid month argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned day=f0[j].mid(6,2).toUInt(&ok); unsigned day=f0[j].mid(6,2).toUInt(&ok);
if((!ok)||(day>31)) { if((!ok)||(day>31)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid day argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid day argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned hour=f0[j].mid(9,2).toUInt(&ok); unsigned hour=f0[j].mid(9,2).toUInt(&ok);
if((!ok)||(hour>23)) { if((!ok)||(hour>23)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned min=f0[j].mid(11,2).toUInt(&ok); unsigned min=f0[j].mid(11,2).toUInt(&ok);
if((!ok)||(min>59)) { if((!ok)||(min>59)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-datetimes"));
exit(2); exit(2);
} }
unsigned sec=f0[j].right(2).toUInt(&ok); unsigned sec=f0[j].right(2).toUInt(&ok);
if((!ok)||(sec>59)) { if((!ok)||(sec>59)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-datetimes"));
exit(2); exit(2);
} }
import_datetimes[j]=QDateTime(QDate(year,month,day), import_datetimes[j]=QDateTime(QDate(year,month,day),
QTime(hour,min,sec)); QTime(hour,min,sec));
if(!import_datetimes[j].isValid()) { if(!import_datetimes[j].isValid()) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes")); LogError(RDConfig::LogErr,QString("rdimport: invalid argument to --set-datetimes"));
} }
} }
if(import_datetimes[0]>=import_datetimes[1]) { if(import_datetimes[0]>=import_datetimes[1]) {
rda->log(RDConfig::LogErr,QString("rdimport: datetime cannot end before it begins")); LogError(RDConfig::LogErr,QString("rdimport: datetime cannot end before it begins"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -249,33 +250,33 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--set-daypart-times") { if(rda->cmdSwitch()->key(i)=="--set-daypart-times") {
QStringList f0=rda->cmdSwitch()->value(i).split(","); QStringList f0=rda->cmdSwitch()->value(i).split(",");
if(f0.size()!=2) { if(f0.size()!=2) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times")); LogError(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times"));
exit(2); exit(2);
} }
for(unsigned j=0;j<2;j++) { for(unsigned j=0;j<2;j++) {
if(f0[j].length()!=6) { if(f0[j].length()!=6) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times")); LogError(RDConfig::LogErr,QString("rdimport: invalid argument to --set-daypart-times"));
exit(2); exit(2);
} }
unsigned hour=f0[j].left(2).toUInt(&ok); unsigned hour=f0[j].left(2).toUInt(&ok);
if((!ok)||(hour>23)) { if((!ok)||(hour>23)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-daypart-times")); LogError(RDConfig::LogErr,QString("rdimport: invalid hour argument to --set-daypart-times"));
exit(2); exit(2);
} }
unsigned min=f0[j].mid(2,2).toUInt(&ok); unsigned min=f0[j].mid(2,2).toUInt(&ok);
if((!ok)||(min>59)) { if((!ok)||(min>59)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-daypart-times")); LogError(RDConfig::LogErr,QString("rdimport: invalid minute argument to --set-daypart-times"));
exit(2); exit(2);
} }
unsigned sec=f0[j].right(2).toUInt(&ok); unsigned sec=f0[j].right(2).toUInt(&ok);
if((!ok)||(sec>59)) { if((!ok)||(sec>59)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-daypart-times")); LogError(RDConfig::LogErr,QString("rdimport: invalid seconds argument to --set-daypart-times"));
exit(2); exit(2);
} }
import_dayparts[j].setHMS(hour,min,sec); import_dayparts[j].setHMS(hour,min,sec);
} }
if(import_dayparts[0]>=import_dayparts[1]) { if(import_dayparts[0]>=import_dayparts[1]) {
rda->log(RDConfig::LogErr,QString("rdimport: daypart cannot end before it begins")); LogError(RDConfig::LogErr,QString("rdimport: daypart cannot end before it begins"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -306,7 +307,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--metadata-pattern") { if(rda->cmdSwitch()->key(i)=="--metadata-pattern") {
import_metadata_pattern=rda->cmdSwitch()->value(i); import_metadata_pattern=rda->cmdSwitch()->value(i);
if(!VerifyPattern(import_metadata_pattern)) { if(!VerifyPattern(import_metadata_pattern)) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid metadata pattern")); LogError(RDConfig::LogErr,QString("rdimport: invalid metadata pattern"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -318,7 +319,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--persistent-dropbox-id") { if(rda->cmdSwitch()->key(i)=="--persistent-dropbox-id") {
import_persistent_dropbox_id=rda->cmdSwitch()->value(i).toInt(&ok); import_persistent_dropbox_id=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid persistent dropbox id")); LogError(RDConfig::LogErr,QString("rdimport: invalid persistent dropbox id"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -326,7 +327,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--create-startdate-offset") { if(rda->cmdSwitch()->key(i)=="--create-startdate-offset") {
import_create_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok); import_create_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid create-startddate-offset")); LogError(RDConfig::LogErr,QString("rdimport: invalid create-startddate-offset"));
exit(2); exit(2);
} }
import_create_dates=true; import_create_dates=true;
@@ -336,7 +337,7 @@ MainObject::MainObject(QObject *parent)
import_create_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok); import_create_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
if((!ok) || if((!ok) ||
(import_create_startdate_offset > import_create_enddate_offset )) { (import_create_startdate_offset > import_create_enddate_offset )) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid create-enddate-offset")); LogError(RDConfig::LogErr,QString("rdimport: invalid create-enddate-offset"));
exit(2); exit(2);
} }
import_create_dates=true; import_create_dates=true;
@@ -357,7 +358,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--set-string-bpm") { if(rda->cmdSwitch()->key(i)=="--set-string-bpm") {
import_string_bpm=rda->cmdSwitch()->value(i).toInt(&ok); import_string_bpm=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-bpm")); LogError(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-bpm"));
exit(255); exit(255);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -396,7 +397,7 @@ MainObject::MainObject(QObject *parent)
} }
if(rda->cmdSwitch()->key(i)=="--set-string-title") { if(rda->cmdSwitch()->key(i)=="--set-string-title") {
if(rda->cmdSwitch()->value(i).isEmpty()) { if(rda->cmdSwitch()->value(i).isEmpty()) {
rda->log(RDConfig::LogErr,QString("title field cannot be empty")); LogError(RDConfig::LogErr,QString("title field cannot be empty"));
exit(255); exit(255);
} }
import_string_title=rda->cmdSwitch()->value(i); import_string_title=rda->cmdSwitch()->value(i);
@@ -409,7 +410,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i)=="--set-string-year") { if(rda->cmdSwitch()->key(i)=="--set-string-year") {
import_string_year=rda->cmdSwitch()->value(i).toInt(&ok); import_string_year=rda->cmdSwitch()->value(i).toInt(&ok);
if(!ok) { if(!ok) {
rda->log(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-year")); LogError(RDConfig::LogErr,QString("rdimport: invalid value for --set-string-year"));
exit(255); exit(255);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -424,27 +425,27 @@ MainObject::MainObject(QObject *parent)
// Sanity Checks // Sanity Checks
// //
if(import_datetimes[0].isValid()&&import_clear_datetimes) { if(import_datetimes[0].isValid()&&import_clear_datetimes) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --set-datetimes and --clear-datetimes are mutually exclusive")); LogError(RDConfig::LogErr,QString("rdimport: --set-datetimes and --clear-datetimes are mutually exclusive"));
exit(255); exit(255);
} }
if((!import_dayparts[1].isNull())&&import_clear_dayparts) { if((!import_dayparts[1].isNull())&&import_clear_dayparts) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive")); LogError(RDConfig::LogErr,QString("rdimport: --set-daypart-times and --clear-daypart-times are mutually exclusive"));
exit(255); exit(255);
} }
if((!import_metadata_pattern.isEmpty())&&import_xml) { if((!import_metadata_pattern.isEmpty())&&import_xml) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --metadata-pattern and --xml are mutually exclusive")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: --metadata-pattern and --xml are mutually exclusive"));
exit(255); exit(255);
} }
if((!import_log_directory.isEmpty())&&import_log_filename.isEmpty()) { if((!import_log_directory.isEmpty())&&import_log_filename.isEmpty()) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --log-directory requires --log-filename")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: --log-directory requires --log-filename"));
exit(255); exit(255);
} }
if((!import_log_filename.isEmpty())&&import_log_directory.isEmpty()) { if((!import_log_filename.isEmpty())&&import_log_directory.isEmpty()) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename requires --log-directory")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename requires --log-directory"));
exit(255); exit(255);
} }
if((!import_log_filename.isEmpty())&&import_log_syslog) { if((!import_log_filename.isEmpty())&&import_log_syslog) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename and --log-syslog are mutually exclusive")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: --log-filename and --log-syslog are mutually exclusive"));
exit(255); exit(255);
} }
@@ -487,7 +488,7 @@ MainObject::MainObject(QObject *parent)
if(rda->cmdSwitch()->key(i).left(2)!="--") { if(rda->cmdSwitch()->key(i).left(2)!="--") {
import_group=new RDGroup(rda->cmdSwitch()->key(i)); import_group=new RDGroup(rda->cmdSwitch()->key(i));
if(!import_group->exists()) { if(!import_group->exists()) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified"));
delete import_group; delete import_group;
exit(2); exit(2);
} }
@@ -496,12 +497,12 @@ MainObject::MainObject(QObject *parent)
} }
} }
if(import_group==NULL) { if(import_group==NULL) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: invalid group specified"));
exit(2); exit(2);
} }
if(import_cart_number>0) { if(import_cart_number>0) {
if(!import_group->cartNumberValid(import_cart_number)) { if(!import_group->cartNumberValid(import_cart_number)) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: invalid cart number for group")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: invalid cart number for group"));
delete import_group; delete import_group;
exit(2); exit(2);
} }
@@ -512,7 +513,7 @@ MainObject::MainObject(QObject *parent)
// //
for(unsigned i=0;i<import_add_scheduler_codes.size();i++) { for(unsigned i=0;i<import_add_scheduler_codes.size();i++) {
if(!SchedulerCodeExists(import_add_scheduler_codes[i])) { if(!SchedulerCodeExists(import_add_scheduler_codes[i])) {
rda->log(RDConfig::LogErr,QString().sprintf("scheduler code \"%s\" does not exist", LogError(RDConfig::LogErr,QString().sprintf("scheduler code \"%s\" does not exist",
(const char *)import_add_scheduler_codes[i].utf8())); (const char *)import_add_scheduler_codes[i].utf8()));
exit(2); exit(2);
} }
@@ -538,7 +539,7 @@ MainObject::MainObject(QObject *parent)
import_normalization_level=100*n; import_normalization_level=100*n;
} }
else { else {
rda->log(RDConfig::LogErr,QString("rdimport: invalid normalization level")); LogError(RDConfig::LogErr,QString("rdimport: invalid normalization level"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -549,7 +550,7 @@ MainObject::MainObject(QObject *parent)
import_autotrim_level=100*n; import_autotrim_level=100*n;
} }
else { else {
rda->log(RDConfig::LogErr,QString("rdimport: invalid autotrim level")); LogError(RDConfig::LogErr,QString("rdimport: invalid autotrim level"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -560,7 +561,7 @@ MainObject::MainObject(QObject *parent)
import_segue_level=n; import_segue_level=n;
} }
else { else {
rda->log(RDConfig::LogErr,QString("rdimport: invalid segue level")); LogError(RDConfig::LogErr,QString("rdimport: invalid segue level"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -571,7 +572,7 @@ MainObject::MainObject(QObject *parent)
import_segue_length=n; import_segue_length=n;
} }
else { else {
rda->log(RDConfig::LogErr,QString("rdimport: invalid segue length")); LogError(RDConfig::LogErr,QString("rdimport: invalid segue length"));
exit(2); exit(2);
} }
rda->cmdSwitch()->setProcessed(i,true); rda->cmdSwitch()->setProcessed(i,true);
@@ -582,7 +583,7 @@ MainObject::MainObject(QObject *parent)
} }
if((!rda->cmdSwitch()->processed(i))&& if((!rda->cmdSwitch()->processed(i))&&
(rda->cmdSwitch()->key(i).left(2)=="--")) { (rda->cmdSwitch()->key(i).left(2)=="--")) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: unknown command option \"%s\"", LogError(RDConfig::LogErr,QString().sprintf("rdimport: unknown command option \"%s\"",
(const char *)rda->cmdSwitch()->key(i))); (const char *)rda->cmdSwitch()->key(i)));
exit(2); exit(2);
} }
@@ -790,7 +791,7 @@ void MainObject::userData()
// Verify Permissions // Verify Permissions
// //
if(!rda->user()->editAudio()) { if(!rda->user()->editAudio()) {
rda->log(RDConfig::LogErr, LogError(RDConfig::LogErr,
QString().sprintf("rdimport: user \"%s\" has no edit audio permission", QString().sprintf("rdimport: user \"%s\" has no edit audio permission",
(const char *)rda->user()->name())); (const char *)rda->user()->name()));
exit(256); exit(256);
@@ -935,7 +936,7 @@ void MainObject::ProcessFileEntry(const QString &entry)
while((globbuf.gl_pathc==RDIMPORT_GLOB_SIZE)||(gflags==GLOB_MARK)) { while((globbuf.gl_pathc==RDIMPORT_GLOB_SIZE)||(gflags==GLOB_MARK)) {
glob(RDEscapeString(entry),gflags,NULL,&globbuf); glob(RDEscapeString(entry),gflags,NULL,&globbuf);
if((globbuf.gl_pathc==0)&&(gflags==GLOB_MARK)&&(!import_drop_box)) { if((globbuf.gl_pathc==0)&&(gflags==GLOB_MARK)&&(!import_drop_box)) {
rda->log(RDConfig::LogErr,QString().sprintf(" Unable to open \"%s\", skipping...", LogError(RDConfig::LogErr,QString().sprintf(" Unable to open \"%s\", skipping...",
(const char *)entry)); (const char *)entry));
globfree(&globbuf); globfree(&globbuf);
} }
@@ -979,15 +980,15 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
else { else {
if(import_fix_broken_formats) { if(import_fix_broken_formats) {
if(import_verbose) { if(import_verbose) {
rda->log(RDConfig::LogWarning,QString().sprintf(" File \"%s\" appears to be malformed, trying workaround ... ", LogError(RDConfig::LogWarning,QString().sprintf(" File \"%s\" appears to be malformed, trying workaround ... ",
(const char *)RDGetBasePart(filename).utf8())); (const char *)RDGetBasePart(filename).utf8()));
} }
delete wavefile; delete wavefile;
if((wavefile=FixFile(filename,wavedata))==NULL) { if((wavefile=FixFile(filename,wavedata))==NULL) {
if(import_verbose) { if(import_verbose) {
rda->log(RDConfig::LogWarning,QString().sprintf("failed.")); LogError(RDConfig::LogWarning,QString().sprintf("failed."));
} }
rda->log(RDConfig::LogWarning,QString().sprintf( LogError(RDConfig::LogWarning,QString().sprintf(
" File \"%s\" is not readable or not a recognized format, skipping...", " File \"%s\" is not readable or not a recognized format, skipping...",
(const char *)RDGetBasePart(filename).utf8())); (const char *)RDGetBasePart(filename).utf8()));
delete wavefile; delete wavefile;
@@ -1004,12 +1005,12 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
return MainObject::FileBad; return MainObject::FileBad;
} }
if(import_verbose) { if(import_verbose) {
rda->log(RDConfig::LogWarning,QString().sprintf("success.")); LogError(RDConfig::LogWarning,QString().sprintf("success."));
} }
effective_filename=import_temp_fix_filename; effective_filename=import_temp_fix_filename;
} }
else { else {
rda->log(RDConfig::LogWarning,QString().sprintf( LogError(RDConfig::LogWarning,QString().sprintf(
" File \"%s\" is not readable or not a recognized format, skipping...", " File \"%s\" is not readable or not a recognized format, skipping...",
(const char *)RDGetBasePart(filename).utf8())); (const char *)RDGetBasePart(filename).utf8()));
delete wavefile; delete wavefile;
@@ -1030,7 +1031,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
found_cart=RunPattern(import_metadata_pattern,RDGetBasePart(filename), found_cart=RunPattern(import_metadata_pattern,RDGetBasePart(filename),
wavedata,&groupname); wavedata,&groupname);
if(!wavedata->checkDateTimes()) { if(!wavedata->checkDateTimes()) {
rda->log(RDConfig::LogErr,QString().sprintf( LogError(RDConfig::LogErr,QString().sprintf(
" File \"%s\": End date/time cannot be prior to start date/time, ignoring...", " File \"%s\": End date/time cannot be prior to start date/time, ignoring...",
(const char *)filename.utf8())); (const char *)filename.utf8()));
} }
@@ -1038,7 +1039,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
delete effective_group; delete effective_group;
effective_group=new RDGroup(groupname); effective_group=new RDGroup(groupname);
if(!effective_group->exists()) { if(!effective_group->exists()) {
rda->log(RDConfig::LogErr,QString().sprintf(" Specified group \"%s\" from file \"%s\" does not exist, using default group...", LogError(RDConfig::LogErr,QString().sprintf(" Specified group \"%s\" from file \"%s\" does not exist, using default group...",
(const char *)groupname,(const char *)filename.utf8())); (const char *)groupname,(const char *)filename.utf8()));
delete effective_group; delete effective_group;
effective_group=new RDGroup(import_group->name()); effective_group=new RDGroup(import_group->name());
@@ -1060,7 +1061,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
if((*cartnum==0)||(*cartnum>999999)|| if((*cartnum==0)||(*cartnum>999999)||
(effective_group->enforceCartRange()&& (effective_group->enforceCartRange()&&
(!effective_group->cartNumberValid(*cartnum)))) { (!effective_group->cartNumberValid(*cartnum)))) {
rda->log(RDConfig::LogErr,QString().sprintf( LogError(RDConfig::LogErr,QString().sprintf(
" File \"%s\" has an invalid or out of range Cart Number, skipping...", " File \"%s\" has an invalid or out of range Cart Number, skipping...",
(const char *)RDGetBasePart(filename).utf8())); (const char *)RDGetBasePart(filename).utf8()));
wavefile->closeWave(); wavefile->closeWave();
@@ -1074,7 +1075,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
*cartnum=effective_group->nextFreeCart(); *cartnum=effective_group->nextFreeCart();
} }
if(*cartnum==0) { if(*cartnum==0) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: no free carts available in specified group")); LogError(RDConfig::LogErr,QString().sprintf("rdimport: no free carts available in specified group"));
wavefile->closeWave(); wavefile->closeWave();
delete wavefile; delete wavefile;
delete wavedata; delete wavedata;
@@ -1100,7 +1101,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
int cutnum= int cutnum=
cart->addCut(import_format,import_bitrate,import_channels); cart->addCut(import_format,import_bitrate,import_channels);
if(cutnum<0) { if(cutnum<0) {
rda->log(RDConfig::LogErr,QString().sprintf("rdimport: no free cuts available in cart %06u",*cartnum)); LogError(RDConfig::LogErr,QString().sprintf("rdimport: no free cuts available in cart %06u",*cartnum));
delete cart; delete cart;
return MainObject::NoCut; return MainObject::NoCut;
} }
@@ -1986,7 +1987,7 @@ void MainObject::ReadXmlFile(const QString &basename,RDWaveData *wavedata) const
wavedata->clear(); wavedata->clear();
if((f=fopen(xmlname,"r"))==NULL) { if((f=fopen(xmlname,"r"))==NULL) {
if(import_verbose) { if(import_verbose) {
rda->log(RDConfig::LogInfo,QString().sprintf("failed [%s]",strerror(errno))); rda->log(RDConfig::LogErr,QString().sprintf("failed [%s]",strerror(errno)));
return; return;
} }
} }
@@ -2018,6 +2019,13 @@ void MainObject::SendNotification(RDNotification::Action action,
} }
void MainObject::LogError(RDConfig::LogPriority prio,const QString &msg)
{
fprintf(stderr,"%s\n",(const char *)msg);
rda->log(prio,msg);
}
int main(int argc,char *argv[]) int main(int argc,char *argv[])
{ {
QApplication a(argc,argv,false); QApplication a(argc,argv,false);