mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-06-03 09:32:34 +02:00
2018-02-02 Fred Gleason <fredg@paravelsystems.com>
* Converted rdimport(1) to use RDApplication.
This commit is contained in:
parent
a5309b2448
commit
a639001137
@ -16635,3 +16635,5 @@
|
||||
* Converted rdexport(1) to use RDApplication.
|
||||
2018-02-01 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Converted rdgpimon(1) to use RDApplication.
|
||||
2018-02-02 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Converted rdimport(1) to use RDApplication.
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// A Batch Importer for Rivendell.
|
||||
//
|
||||
// (C) Copyright 2002-2014,2016-2017 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2014,2016-2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -34,15 +34,16 @@
|
||||
#include <qstringlist.h>
|
||||
|
||||
#include <rd.h>
|
||||
#include <rdapplication.h>
|
||||
#include <rdaudioimport.h>
|
||||
#include <rdconf.h>
|
||||
#include <rdcut.h>
|
||||
#include <rddbheartbeat.h>
|
||||
#include <rdescape_string.h>
|
||||
#include <rdimport.h>
|
||||
#include <rdlibrary_conf.h>
|
||||
#include <rdtempdirectory.h>
|
||||
|
||||
#include "rdimport.h"
|
||||
|
||||
volatile bool import_run=true;
|
||||
|
||||
void SigHandler(int signo)
|
||||
@ -60,11 +61,10 @@ void SigHandler(int signo)
|
||||
MainObject::MainObject(QObject *parent)
|
||||
:QObject(parent)
|
||||
{
|
||||
//
|
||||
// Initialize Data Structures
|
||||
//
|
||||
bool ok=false;
|
||||
int n=0;
|
||||
QString err_msg;
|
||||
|
||||
import_file_key=0;
|
||||
import_group=NULL;
|
||||
import_verbose=false;
|
||||
@ -93,86 +93,92 @@ MainObject::MainObject(QObject *parent)
|
||||
import_xml=false;
|
||||
import_to_mono=false;
|
||||
|
||||
//
|
||||
// Open the Database
|
||||
//
|
||||
rda=new RDApplication("rdimport","rdimport",RDIMPORT_USAGE,this);
|
||||
if(!rda->open(&err_msg)) {
|
||||
fprintf(stderr,"rdimport: %s\n",(const char *)err_msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//
|
||||
// Read Command Options
|
||||
//
|
||||
import_cmd=
|
||||
new RDCmdSwitch(qApp->argc(),qApp->argv(),"rdimport",RDIMPORT_USAGE);
|
||||
if(import_cmd->keys()<2) {
|
||||
if(rda->cmdSwitch()->keys()<2) {
|
||||
fprintf(stderr,"\n");
|
||||
fprintf(stderr,"%s",RDIMPORT_USAGE);
|
||||
fprintf(stderr,"\n");
|
||||
delete import_cmd;
|
||||
exit(256);
|
||||
exit(2);
|
||||
}
|
||||
for(unsigned i=0;i<import_cmd->keys()-2;i++) {
|
||||
if(import_cmd->key(i)=="--verbose") {
|
||||
for(unsigned i=0;i<rda->cmdSwitch()->keys()-2;i++) {
|
||||
if(rda->cmdSwitch()->key(i)=="--verbose") {
|
||||
import_verbose=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--log-mode") {
|
||||
if(rda->cmdSwitch()->key(i)=="--log-mode") {
|
||||
import_verbose=true;
|
||||
import_log_mode=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--to-cart") {
|
||||
import_cart_number=import_cmd->value(i).toUInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--to-cart") {
|
||||
import_cart_number=rda->cmdSwitch()->value(i).toUInt(&ok);
|
||||
if((!ok)||(import_cart_number<1)||(import_cart_number>999999)) {
|
||||
fprintf(stderr,"rdimport: invalid cart number\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
if(import_use_cartchunk_cutid) {
|
||||
fprintf(stderr,"rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
import_single_cart=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--use-cartchunk-cutid") {
|
||||
if(rda->cmdSwitch()->key(i)=="--use-cartchunk-cutid") {
|
||||
if(import_cart_number!=0) {
|
||||
fprintf(stderr,"rdimport: '--to-cart' and '--use-cartchunk-cutid' are mutually exclusive\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
import_use_cartchunk_cutid=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--cart-number-offset") {
|
||||
import_cart_number_offset=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--cart-number-offset") {
|
||||
import_cart_number_offset=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid --cart-number-offset\n");
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--title-from-cartchunk-cutid") {
|
||||
if(rda->cmdSwitch()->key(i)=="--title-from-cartchunk-cutid") {
|
||||
import_title_from_cartchunk_cutid=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--delete-source") {
|
||||
if(rda->cmdSwitch()->key(i)=="--delete-source") {
|
||||
import_delete_source=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--delete-cuts") {
|
||||
if(rda->cmdSwitch()->key(i)=="--delete-cuts") {
|
||||
import_delete_cuts=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--startdate-offset") {
|
||||
import_startdate_offset=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--startdate-offset") {
|
||||
import_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid startdate-offset\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--enddate-offset") {
|
||||
import_enddate_offset=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--enddate-offset") {
|
||||
import_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid enddate-offset\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--clear-datetimes") {
|
||||
if(rda->cmdSwitch()->key(i)=="--clear-datetimes") {
|
||||
import_clear_datetimes=true;
|
||||
import_cmd->setProcessed(i,true);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-datetimes") {
|
||||
QStringList f0=QStringList().split(",",import_cmd->value(i));
|
||||
if(rda->cmdSwitch()->key(i)=="--set-datetimes") {
|
||||
QStringList f0=QStringList().split(",",rda->cmdSwitch()->value(i));
|
||||
if(f0.size()!=2) {
|
||||
fprintf(stderr,"rdimport: invalid argument to --set-datetimes\n");
|
||||
exit(256);
|
||||
@ -223,8 +229,8 @@ MainObject::MainObject(QObject *parent)
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-daypart-times") {
|
||||
QStringList f0=QStringList().split(",",import_cmd->value(i));
|
||||
if(rda->cmdSwitch()->key(i)=="--set-daypart-times") {
|
||||
QStringList f0=QStringList().split(",",rda->cmdSwitch()->value(i));
|
||||
if(f0.size()!=2) {
|
||||
fprintf(stderr,"rdimport: invalid argument to --set-daypart-times\n");
|
||||
exit(256);
|
||||
@ -256,138 +262,144 @@ MainObject::MainObject(QObject *parent)
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--to-mono") {
|
||||
if(rda->cmdSwitch()->key(i)=="--to-mono") {
|
||||
import_to_mono=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--clear-daypart-times") {
|
||||
if(rda->cmdSwitch()->key(i)=="--clear-daypart-times") {
|
||||
import_clear_dayparts=true;
|
||||
import_cmd->setProcessed(i,true);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--drop-box") {
|
||||
if(rda->cmdSwitch()->key(i)=="--drop-box") {
|
||||
import_drop_box=true;
|
||||
if(import_persistent_dropbox_id<0) {
|
||||
import_delete_source=true;
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--add-scheduler-code") {
|
||||
import_add_scheduler_codes.push_back(import_cmd->value(i));
|
||||
if(rda->cmdSwitch()->key(i)=="--add-scheduler-code") {
|
||||
import_add_scheduler_codes.push_back(rda->cmdSwitch()->value(i));
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-user-defined") {
|
||||
import_set_user_defined=import_cmd->value(i);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-user-defined") {
|
||||
import_set_user_defined=rda->cmdSwitch()->value(i);
|
||||
}
|
||||
if(import_cmd->key(i)=="--metadata-pattern") {
|
||||
import_metadata_pattern=import_cmd->value(i);
|
||||
if(rda->cmdSwitch()->key(i)=="--metadata-pattern") {
|
||||
import_metadata_pattern=rda->cmdSwitch()->value(i);
|
||||
if(!VerifyPattern(import_metadata_pattern)) {
|
||||
fprintf(stderr,"rdimport: invalid metadata pattern\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--fix-broken-formats") {
|
||||
if(rda->cmdSwitch()->key(i)=="--fix-broken-formats") {
|
||||
import_fix_broken_formats=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--persistent-dropbox-id") {
|
||||
import_persistent_dropbox_id=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--persistent-dropbox-id") {
|
||||
import_persistent_dropbox_id=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid persistent dropbox id\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--create-startdate-offset") {
|
||||
import_create_startdate_offset=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--create-startdate-offset") {
|
||||
import_create_startdate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid create-startddate-offset\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
import_create_dates=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--create-enddate-offset") {
|
||||
import_create_enddate_offset=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--create-enddate-offset") {
|
||||
import_create_enddate_offset=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if((!ok) ||
|
||||
(import_create_startdate_offset > import_create_enddate_offset )) {
|
||||
fprintf(stderr,"rdimport: invalid create-enddate-offset\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
import_create_dates=true;
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-agency") {
|
||||
import_string_agency=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-agency") {
|
||||
import_string_agency=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-album") {
|
||||
import_string_album=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-album") {
|
||||
import_string_album=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-artist") {
|
||||
import_string_artist=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-artist") {
|
||||
import_string_artist=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-bpm") {
|
||||
import_string_bpm=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-bpm") {
|
||||
import_string_bpm=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid value for --set-string-bpm\n");
|
||||
exit(255);
|
||||
}
|
||||
import_cmd->setProcessed(i,true);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-client") {
|
||||
import_string_client=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-client") {
|
||||
import_string_client=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-composer") {
|
||||
import_string_composer=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-composer") {
|
||||
import_string_composer=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-conductor") {
|
||||
import_string_conductor=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-conductor") {
|
||||
import_string_conductor=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-description") {
|
||||
import_string_description=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-description") {
|
||||
import_string_description=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-label") {
|
||||
import_string_label=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-label") {
|
||||
import_string_label=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-outcue") {
|
||||
import_string_outcue=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-outcue") {
|
||||
import_string_outcue=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-publisher") {
|
||||
import_string_publisher=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-publisher") {
|
||||
import_string_publisher=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-song-id") {
|
||||
import_string_song_id=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-song-id") {
|
||||
import_string_song_id=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-title") {
|
||||
if(import_cmd->value(i).isEmpty()) {
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-title") {
|
||||
if(rda->cmdSwitch()->value(i).isEmpty()) {
|
||||
fprintf(stderr,"title field cannot be empty\n");
|
||||
exit(255);
|
||||
}
|
||||
import_string_title=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
import_string_title=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-user-defined") {
|
||||
import_string_user_defined=import_cmd->value(i);
|
||||
import_cmd->setProcessed(i,true);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-user-defined") {
|
||||
import_string_user_defined=rda->cmdSwitch()->value(i);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--set-string-year") {
|
||||
import_string_year=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--set-string-year") {
|
||||
import_string_year=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(!ok) {
|
||||
fprintf(stderr,"rdimport: invalid value for --set-string-year\n");
|
||||
exit(255);
|
||||
}
|
||||
import_cmd->setProcessed(i,true);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if(import_cmd->key(i)=="--xml") {
|
||||
if(rda->cmdSwitch()->key(i)=="--xml") {
|
||||
import_xml=true;
|
||||
import_cmd->setProcessed(i,true);
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
|
||||
if(!rda->cmdSwitch()->processed(i)) {
|
||||
fprintf(stderr,"rdimport: unknown command option \"%s\"\n",
|
||||
(const char *)rda->cmdSwitch()->key(i));
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -408,89 +420,51 @@ MainObject::MainObject(QObject *parent)
|
||||
}
|
||||
|
||||
import_cut_markers=new MarkerSet();
|
||||
import_cut_markers->loadMarker(import_cmd,"cut");
|
||||
import_cut_markers->loadMarker(rda->cmdSwitch(),"cut");
|
||||
import_talk_markers=new MarkerSet();
|
||||
import_talk_markers->loadMarker(import_cmd,"talk");
|
||||
import_talk_markers->loadMarker(rda->cmdSwitch(),"talk");
|
||||
import_hook_markers=new MarkerSet();
|
||||
import_hook_markers->loadMarker(import_cmd,"hook");
|
||||
import_hook_markers->loadMarker(rda->cmdSwitch(),"hook");
|
||||
import_segue_markers=new MarkerSet();
|
||||
import_segue_markers->loadMarker(import_cmd,"segue");
|
||||
import_segue_markers->loadMarker(rda->cmdSwitch(),"segue");
|
||||
import_fadedown_marker=new MarkerSet();
|
||||
import_fadedown_marker->loadFade(import_cmd,"fadedown");
|
||||
import_fadedown_marker->loadFade(rda->cmdSwitch(),"fadedown");
|
||||
import_fadeup_marker=new MarkerSet();
|
||||
import_fadeup_marker->loadFade(import_cmd,"fadeup");
|
||||
|
||||
//
|
||||
// Read Configuration
|
||||
//
|
||||
import_config=new RDConfig();
|
||||
import_config->load();
|
||||
import_config->setModuleName("rdimport");
|
||||
|
||||
//
|
||||
// Open Database
|
||||
//
|
||||
QSqlDatabase *db=QSqlDatabase::addDatabase(import_config->mysqlDriver());
|
||||
if(!db) {
|
||||
fprintf(stderr,"rdimport: unable to initialize connection to database\n");
|
||||
delete import_cmd;
|
||||
exit(256);
|
||||
}
|
||||
db->setDatabaseName(import_config->mysqlDbname());
|
||||
db->setUserName(import_config->mysqlUsername());
|
||||
db->setPassword(import_config->mysqlPassword());
|
||||
db->setHostName(import_config->mysqlHostname());
|
||||
if(!db->open()) {
|
||||
fprintf(stderr,"rdimport: unable to connect to database\n");
|
||||
db->removeDatabase(import_config->mysqlDbname());
|
||||
exit(256);
|
||||
}
|
||||
new RDDbHeartbeat(import_config->mysqlHeartbeatInterval(),this);
|
||||
|
||||
//
|
||||
// Station Configuration
|
||||
//
|
||||
import_station=new RDStation(import_config->stationName());
|
||||
import_fadeup_marker->loadFade(rda->cmdSwitch(),"fadeup");
|
||||
|
||||
//
|
||||
// RIPC Connection
|
||||
//
|
||||
import_ripc=new RDRipc(import_station,import_config,this);
|
||||
connect(import_ripc,SIGNAL(userChanged()),this,SLOT(userData()));
|
||||
import_ripc->
|
||||
connectHost("localhost",RIPCD_TCP_PORT,import_config->password());
|
||||
|
||||
//
|
||||
// User
|
||||
//
|
||||
import_user=NULL;
|
||||
connect(rda,SIGNAL(userChanged()),this,SLOT(userData()));
|
||||
rda->ripc()->
|
||||
connectHost("localhost",RIPCD_TCP_PORT,rda->config()->password());
|
||||
|
||||
//
|
||||
// Verify Group
|
||||
//
|
||||
for(unsigned i=0;i<import_cmd->keys();i++) {
|
||||
if(import_cmd->key(i).left(2)!="--") {
|
||||
import_group=new RDGroup(import_cmd->key(i));
|
||||
for(unsigned i=0;i<rda->cmdSwitch()->keys();i++) {
|
||||
if(rda->cmdSwitch()->key(i).left(2)!="--") {
|
||||
import_group=new RDGroup(rda->cmdSwitch()->key(i));
|
||||
if(!import_group->exists()) {
|
||||
fprintf(stderr,"rdimport: invalid group specified\n");
|
||||
delete import_group;
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
import_file_key=i+1;
|
||||
i=import_cmd->keys();
|
||||
i=rda->cmdSwitch()->keys();
|
||||
}
|
||||
}
|
||||
if(import_group==NULL) {
|
||||
fprintf(stderr,"rdimport: invalid group specified\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
if(import_cart_number>0) {
|
||||
if(!import_group->cartNumberValid(import_cart_number)) {
|
||||
fprintf(stderr,"rdimport: invalid cart number for group\n");
|
||||
delete import_group;
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
@ -509,66 +483,62 @@ MainObject::MainObject(QObject *parent)
|
||||
//
|
||||
// Get Audio Parameters
|
||||
//
|
||||
RDLibraryConf *library_conf=new RDLibraryConf(import_config->stationName());
|
||||
import_system=new RDSystem();
|
||||
import_format=library_conf->defaultFormat();
|
||||
import_samprate=import_system->sampleRate();
|
||||
import_bitrate=library_conf->defaultBitrate();
|
||||
import_channels=library_conf->defaultChannels();
|
||||
import_normalization_level=library_conf->ripperLevel();
|
||||
import_autotrim_level=library_conf->trimThreshold();
|
||||
import_src_converter=library_conf->srcConverter();
|
||||
delete library_conf;
|
||||
import_format=rda->libraryConf()->defaultFormat();
|
||||
import_samprate=rda->system()->sampleRate();
|
||||
import_bitrate=rda->libraryConf()->defaultBitrate();
|
||||
import_channels=rda->libraryConf()->defaultChannels();
|
||||
import_normalization_level=rda->libraryConf()->ripperLevel();
|
||||
import_autotrim_level=rda->libraryConf()->trimThreshold();
|
||||
import_src_converter=rda->libraryConf()->srcConverter();
|
||||
import_segue_level=0;
|
||||
import_segue_length=0;
|
||||
|
||||
|
||||
for(unsigned i=0;i<import_cmd->keys();i++) {
|
||||
if(import_cmd->key(i)=="--normalization-level") {
|
||||
n=import_cmd->value(i).toInt(&ok);
|
||||
for(unsigned i=0;i<rda->cmdSwitch()->keys();i++) {
|
||||
if(rda->cmdSwitch()->key(i)=="--normalization-level") {
|
||||
n=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(ok&&(n<=0)) {
|
||||
import_normalization_level=100*n;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr,"rdimport: invalid normalization level\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--autotrim-level") {
|
||||
n=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--autotrim-level") {
|
||||
n=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(ok&&(n<=0)) {
|
||||
import_autotrim_level=100*n;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr,"rdimport: invalid autotrim level\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--segue-level") {
|
||||
n=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--segue-level") {
|
||||
n=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(ok&&(n<=0)) {
|
||||
import_segue_level=n;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr,"rdimport: invalid segue level\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--segue-length") {
|
||||
n=import_cmd->value(i).toInt(&ok);
|
||||
if(rda->cmdSwitch()->key(i)=="--segue-length") {
|
||||
n=rda->cmdSwitch()->value(i).toInt(&ok);
|
||||
if(ok&&(n>=0)) {
|
||||
import_segue_length=n;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr,"rdimport: invalid segue length\n");
|
||||
delete import_cmd;
|
||||
delete rda->cmdSwitch();
|
||||
exit(256);
|
||||
}
|
||||
}
|
||||
if(import_cmd->key(i)=="--single-cart") {
|
||||
if(rda->cmdSwitch()->key(i)=="--single-cart") {
|
||||
import_single_cart=true;
|
||||
}
|
||||
}
|
||||
@ -760,8 +730,8 @@ MainObject::MainObject(QObject *parent)
|
||||
import_fadedown_marker->dump();
|
||||
import_fadeup_marker->dump();
|
||||
printf(" Files to process:\n");
|
||||
for(unsigned i=import_file_key;i<import_cmd->keys();i++) {
|
||||
printf(" \"%s\"\n",(const char *)import_cmd->key(i));
|
||||
for(unsigned i=import_file_key;i<rda->cmdSwitch()->keys();i++) {
|
||||
printf(" \"%s\"\n",(const char *)rda->cmdSwitch()->key(i));
|
||||
}
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
@ -781,18 +751,14 @@ void MainObject::userData()
|
||||
//
|
||||
// Get User Context
|
||||
//
|
||||
disconnect(import_ripc,SIGNAL(userChanged()),this,SLOT(userData()));
|
||||
if(import_user!=NULL) {
|
||||
delete import_user;
|
||||
}
|
||||
import_user=new RDUser(import_ripc->user());
|
||||
disconnect(rda->ripc(),SIGNAL(userChanged()),this,SLOT(userData()));
|
||||
|
||||
//
|
||||
// Verify Permissions
|
||||
//
|
||||
if(!import_user->editAudio()) {
|
||||
if(!rda->user()->editAudio()) {
|
||||
fprintf(stderr,"rdimport: user \"%s\" has no edit audio permission\n",
|
||||
(const char *)import_user->name());
|
||||
(const char *)rda->user()->name());
|
||||
exit(256);
|
||||
}
|
||||
|
||||
@ -803,8 +769,8 @@ void MainObject::userData()
|
||||
RunDropBox();
|
||||
}
|
||||
else {
|
||||
for(unsigned i=import_file_key;i<import_cmd->keys();i++) {
|
||||
ProcessFileList(import_cmd->key(i));
|
||||
for(unsigned i=import_file_key;i<rda->cmdSwitch()->keys();i++) {
|
||||
ProcessFileList(rda->cmdSwitch()->key(i));
|
||||
}
|
||||
if(import_stdin_specified) {
|
||||
bool quote_mode=false;
|
||||
@ -858,7 +824,7 @@ void MainObject::userData()
|
||||
// Clean Up and Exit
|
||||
//
|
||||
delete import_group;
|
||||
delete import_cmd;
|
||||
// delete import_cmd;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
@ -888,8 +854,8 @@ void MainObject::RunDropBox()
|
||||
//
|
||||
// Scan for Eligible Imports
|
||||
//
|
||||
for(unsigned i=import_file_key;i<import_cmd->keys();i++) {
|
||||
ProcessFileList(import_cmd->key(i));
|
||||
for(unsigned i=import_file_key;i<rda->cmdSwitch()->keys();i++) {
|
||||
ProcessFileList(rda->cmdSwitch()->key(i));
|
||||
}
|
||||
|
||||
//
|
||||
@ -1125,7 +1091,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
return MainObject::NoCut;
|
||||
}
|
||||
RDCut *cut=new RDCut(*cartnum,cutnum);
|
||||
RDAudioImport *conv=new RDAudioImport(import_station,import_config,this);
|
||||
RDAudioImport *conv=new RDAudioImport(rda->station(),rda->config(),this);
|
||||
conv->setCartNumber(cart->number());
|
||||
conv->setCutNumber(cutnum);
|
||||
conv->setSourceFile(wavefile->getName());
|
||||
@ -1165,7 +1131,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
switch(conv_err=conv->runImport(import_user->name(),import_user->password(),
|
||||
switch(conv_err=conv->runImport(rda->user()->name(),rda->user()->password(),
|
||||
&audio_conv_err)) {
|
||||
case RDAudioImport::ErrorOk:
|
||||
if(import_verbose) {
|
||||
@ -1180,10 +1146,10 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
(const char *)filename.utf8());
|
||||
fflush(stderr);
|
||||
if(cart_created) {
|
||||
cart->remove(import_station,import_user,import_config);
|
||||
cart->remove(rda->station(),rda->user(),rda->config());
|
||||
}
|
||||
else {
|
||||
cart->removeCut(import_station,import_user,cut->cutName(),import_config);
|
||||
cart->removeCut(rda->station(),rda->user(),cut->cutName(),rda->config());
|
||||
}
|
||||
delete cut;
|
||||
delete cart;
|
||||
@ -1211,8 +1177,8 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
}
|
||||
cut->setMetadata(wavedata);
|
||||
}
|
||||
cut->autoSegue(import_segue_level,import_segue_length,import_station,
|
||||
import_user,import_config);
|
||||
cut->autoSegue(import_segue_level,import_segue_length,rda->station(),
|
||||
rda->user(),rda->config());
|
||||
if((wavedata->title().length()==0)||
|
||||
((wavedata->title().length()>0)&&(wavedata->title()[0] == '\0'))) {
|
||||
QString title=effective_group->generateTitle(filename);
|
||||
@ -1263,7 +1229,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
cut->setEndDatetime(dt.addDays(import_create_enddate_offset),true);
|
||||
}
|
||||
}
|
||||
cut->setOriginName(import_station->name());
|
||||
cut->setOriginName(rda->station()->name());
|
||||
for(unsigned i=0;i<import_add_scheduler_codes.size();i++) {
|
||||
cart->addSchedCode(import_add_scheduler_codes[i]);
|
||||
}
|
||||
@ -1920,7 +1886,7 @@ void MainObject::DeleteCuts(unsigned cartnum)
|
||||
}
|
||||
unsigned dev;
|
||||
RDCart *cart=new RDCart(cartnum);
|
||||
cart->removeAllCuts(import_station,import_user,import_config);
|
||||
cart->removeAllCuts(rda->station(),rda->user(),rda->config());
|
||||
cart->updateLength();
|
||||
cart->resetRotation();
|
||||
cart->calculateAverageLength(&dev);
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// A Batch Importer for Rivendell.
|
||||
//
|
||||
// (C) Copyright 2002-2009,2016 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2009,2016-2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -31,15 +31,9 @@
|
||||
|
||||
#include <rdwavedata.h>
|
||||
#include <rdwavefile.h>
|
||||
#include <rdconfig.h>
|
||||
#include <rdcmd_switch.h>
|
||||
#include <rdgroup.h>
|
||||
#include <rdcart.h>
|
||||
#include <rdcut.h>
|
||||
#include <rdripc.h>
|
||||
#include <rduser.h>
|
||||
#include <rdsystem.h>
|
||||
#include <rdstation.h>
|
||||
|
||||
#include "markerset.h"
|
||||
|
||||
@ -79,12 +73,8 @@ class MainObject : public QObject
|
||||
void WriteTimestampCache(const QString &filename,const QDateTime &dt);
|
||||
bool SchedulerCodeExists(const QString &code) const;
|
||||
void ReadXmlFile(const QString &basename,RDWaveData *wavedata) const;
|
||||
RDConfig *import_config;
|
||||
RDCmdSwitch *import_cmd;
|
||||
unsigned import_file_key;
|
||||
RDGroup *import_group;
|
||||
RDRipc *import_ripc;
|
||||
RDUser *import_user;
|
||||
bool import_verbose;
|
||||
bool import_log_mode;
|
||||
bool import_to_mono;
|
||||
@ -145,8 +135,6 @@ class MainObject : public QObject
|
||||
};
|
||||
std::list<DropboxList *> import_dropbox_list;
|
||||
QString import_temp_fix_filename;
|
||||
RDSystem *import_system;
|
||||
RDStation *import_station;
|
||||
MarkerSet *import_cut_markers;
|
||||
MarkerSet *import_talk_markers;
|
||||
MarkerSet *import_hook_markers;
|
||||
|
Loading…
x
Reference in New Issue
Block a user