2021-02-23 Fred Gleason <fredg@paravelsystems.com>

* Removed the Qt3Support library from the build system.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2021-02-23 18:07:21 -05:00
parent b2f8532e25
commit 89a0d72439
508 changed files with 5763 additions and 6078 deletions

View File

@@ -1,8 +1,8 @@
## automake.am
## Makefile.am
##
## rdcatchd/ Makefile.am for Rivendell
##
## (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com>
## (C) Copyright 2002-2021 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
@@ -20,7 +20,7 @@
##
## Use automake to process this into a Makefile.in
AM_CPPFLAGS = -Wall -I$(top_srcdir)/lib @QT4_CFLAGS@ @MUSICBRAINZ_CFLAGS@ -I/usr/include/Qt3Support
AM_CPPFLAGS = -Wall -I$(top_srcdir)/lib @QT4_CFLAGS@ @MUSICBRAINZ_CFLAGS@
LIBS = -L$(top_srcdir)/lib
MOC = @QT_MOC@
@@ -39,7 +39,7 @@ dist_rdcatchd_SOURCES = batch.cpp\
nodist_rdcatchd_SOURCES = moc_event_player.cpp\
moc_rdcatchd.cpp
rdcatchd_LDADD = @LIB_RDLIBS@ @LIBVORBIS@ @QT4_LIBS@ @MUSICBRAINZ_LIBS@ -lQt3Support
rdcatchd_LDADD = @LIB_RDLIBS@ @LIBVORBIS@ @QT4_LIBS@ @MUSICBRAINZ_LIBS@
CLEANFILES = *~\
moc_*

View File

@@ -2,7 +2,7 @@
//
// Batch Routines for the Rivendell netcatcher daemon
//
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2021 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
@@ -33,13 +33,7 @@
#include <sched.h>
#include <errno.h>
#include <vector>
#include <qapplication.h>
#include <qtimer.h>
#include <qsignalmapper.h>
#include <qsessionmanager.h>
#include <qurl.h>
#include <QApplication>
#include <rdapplication.h>
#include <rdaudioconvert.h>
@@ -208,7 +202,7 @@ void MainObject::RunDownload(CatchEvent *evt)
QString url_username=evt->urlUsername();
QString url_password=evt->urlPassword();
if(url_username.isEmpty()&&
(QUrl(evt->resolvedUrl()).scheme().lower()=="ftp")) {
(QUrl(evt->resolvedUrl()).scheme().toLower()=="ftp")) {
url_username=RD_ANON_FTP_USERNAME;
url_password=QString(RD_ANON_FTP_PASSWORD)+"-"+VERSION;
}
@@ -233,7 +227,7 @@ void MainObject::RunDownload(CatchEvent *evt)
(const char *)RDDownload::errorText(conv_err).toUtf8(),
evt->id());
delete conv;
unlink(evt->tempName());
unlink(evt->tempName().toUtf8());
exit(0);
default:
@@ -245,7 +239,7 @@ void MainObject::RunDownload(CatchEvent *evt)
(const char *)RDDownload::errorText(conv_err).toUtf8(),
evt->id());
delete conv;
unlink(evt->tempName());
unlink(evt->tempName().toUtf8());
exit(0);
}
delete conv;
@@ -259,7 +253,7 @@ void MainObject::RunDownload(CatchEvent *evt)
}
rda->syslog(LOG_INFO,"deleting file %s, id=%d",
(const char *)evt->tempName().toUtf8(),evt->id());
unlink(evt->tempName());
unlink(evt->tempName().toUtf8());
catch_connect->setExitCode(evt->id(),RDRecording::Ok,"OK");
}
@@ -323,7 +317,7 @@ void MainObject::RunUpload(CatchEvent *evt)
QString url_username=evt->urlUsername();
QString url_password=evt->urlPassword();
if(url_username.isEmpty()&&
(QUrl(evt->resolvedUrl()).scheme().lower()=="ftp")) {
(QUrl(evt->resolvedUrl()).scheme().toLower()=="ftp")) {
url_username=RD_ANON_FTP_USERNAME;
url_password=QString(RD_ANON_FTP_PASSWORD)+"-"+VERSION;
}
@@ -370,12 +364,12 @@ void MainObject::RunUpload(CatchEvent *evt)
CheckInPodcast(evt);
}
if(evt->deleteTempFile()) {
unlink(evt->tempName());
unlink(evt->tempName().toUtf8());
rda->syslog(LOG_INFO,"deleted file %s",
(const char *)evt->tempName().toUtf8());
}
else {
chown(evt->tempName(),rda->config()->uid(),rda->config()->gid());
chown(evt->tempName().toUtf8(),rda->config()->uid(),rda->config()->gid());
}
}
@@ -525,7 +519,7 @@ bool MainObject::Import(CatchEvent *evt)
(const char *)evt->cutName().toUtf8(),
evt->id());
if(evt->deleteTempFile()) {
unlink(evt->tempName());
unlink(evt->tempName().toUtf8());
rda->syslog(LOG_DEBUG,"deleted file \"%s\"",
(const char *)evt->tempName().toUtf8());
}

View File

@@ -2,7 +2,7 @@
//
// A player class for Deck Events
//
// (C) Copyright 2016-2019 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2016-2021 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
@@ -20,9 +20,8 @@
#include <syslog.h>
#include "rdapplication.h"
#include "rddb.h"
#include "rdescape_string.h"
#include <rdapplication.h>
#include <rdescape_string.h>
#include "event_player.h"
@@ -32,6 +31,7 @@ EventPlayer::EventPlayer(RDStation *station,int chan,QObject *parent)
event_channel=chan;
event_timer=new QTimer(this);
event_timer->setSingleShot(true);
connect(event_timer,SIGNAL(timeout()),this,SLOT(timeoutData()));
}
@@ -81,8 +81,7 @@ void EventPlayer::start(int start_ptr)
for(unsigned i=0;i<event_points.size();i++) {
if(event_points[i]>=event_start_point) {
event_current_event=i;
event_timer->
start(event_points[event_current_event]-event_start_point,true);
event_timer->start(event_points[event_current_event]-event_start_point);
return;
}
}
@@ -117,6 +116,6 @@ void EventPlayer::timeoutData()
if(msec<0) {
msec=0;
}
event_timer->start(msec,true);
event_timer->start(msec);
}
}

View File

@@ -165,7 +165,7 @@ MainObject::MainObject(QObject *parent)
rda=static_cast<RDApplication *>(new RDCoreApplication("rdcatchd","rdcatchd",
RDCATCHD_USAGE,this));
if(!rda->open(&err_msg,&err_type,false)) {
fprintf(stderr,"rdcatchd: %s\n",(const char *)err_msg);
fprintf(stderr,"rdcatchd: %s\n",err_msg.toUtf8().constData());
exit(1);
}
@@ -183,7 +183,7 @@ MainObject::MainObject(QObject *parent)
}
if(!rda->cmdSwitch()->processed(i)) {
fprintf(stderr,"rdcatchdd: unknown command option \"%s\"\n",
(const char *)rda->cmdSwitch()->key(i));
rda->cmdSwitch()->key(i).toUtf8().constData());
exit(2);
}
}
@@ -224,7 +224,7 @@ MainObject::MainObject(QObject *parent)
catch_event_mapper=new QSignalMapper(this);
connect(catch_event_mapper,SIGNAL(mapped(int)),
this,SLOT(eventFinishedData(int)));
QTimer *timer=new QTimer(this,"free_events_timer");
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(freeEventsData()));
timer->start(RDCATCHD_FREE_EVENTS_INTERVAL);
@@ -411,9 +411,10 @@ MainObject::MainObject(QObject *parent)
//
// Schedule Startup Cart
//
timer=new QTimer(this,"startup_cart_timer");
timer=new QTimer(this);
timer->setSingleShot(true);
connect(timer,SIGNAL(timeout()),this,SLOT(startupCartData()));
timer->start(10000,true);
timer->start(10000);
//
// Set Realtime Permissions
@@ -504,12 +505,12 @@ void MainObject::gpiStateChangedData(int matrix,int line,bool state)
(catch_events[i].gpiStartTimer()->isActive())) {
if(catch_events[i].startOffset()>0) {
catch_events[i].gpiOffsetTimer()->
start(catch_events[i].startOffset(),true);
start(catch_events[i].startOffset());
catch_events[i].gpiStartTimer()->stop();
BroadcastCommand(QString().sprintf("RE %d %d %d!",
catch_events[i].channel(),
RDDeck::Ready,
catch_events[i].id()));
catch_events[i].id()).toUtf8());
}
else {
if(StartRecording(i)) {
@@ -559,7 +560,7 @@ void MainObject::startTimerData(int id)
catch_record_id[deck]=0;
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck+1,catch_record_deck_status[deck],
id));
id).toUtf8());
rda->syslog(LOG_INFO,"gpi start window closes: event: %d, gpi: %d:%d",
id,catch_events[event].startMatrix(),
catch_events[event].startLine());
@@ -620,7 +621,8 @@ void MainObject::engineData(int id)
WriteExitCode(event,RDRecording::DeviceBusy);
BroadcastCommand(QString().sprintf("RE 0 %d %d %s!",RDDeck::Recording,
catch_events[event].id(),
(const char *)catch_events[event].cutName()));
catch_events[event].cutName().
toUtf8().constData()).toUtf8());
return;
}
}
@@ -637,10 +639,10 @@ void MainObject::engineData(int id)
catch_events[event].channel(),
catch_record_deck_status[catch_events[event].
channel()-1],
catch_events[event].id()));
catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"record aborted: no such cut: %s, id: %d",
(const char *)catch_events[event].cutName(),
catch_events[event].id());
catch_events[event].cutName().toUtf8().constData(),
catch_events[event].id());
return;
}
catch_record_card[catch_events[event].channel()-1]=-1;
@@ -696,7 +698,7 @@ void MainObject::engineData(int id)
catch_events[event].gpiStartTimer()->
start(catch_events[event].startLength()-
(QTime().msecsTo(current_time)-
QTime().msecsTo(catch_events[event].startTime())),true);
QTime().msecsTo(catch_events[event].startTime())));
catch_record_deck_status[catch_events[event].channel()-1]=
RDDeck::Waiting;
catch_record_id[catch_events[event].channel()-1]=
@@ -707,7 +709,7 @@ void MainObject::engineData(int id)
catch_events[event].channel(),
catch_record_deck_status[catch_events[event].
channel()-1],
catch_events[event].id()));
catch_events[event].id()).toUtf8());
rda->syslog(LOG_INFO,"gpi start window opens: event: %d, gpi: %d:%d",
id,catch_events[event].startMatrix(),
catch_events[event].startLine());
@@ -723,7 +725,7 @@ void MainObject::engineData(int id)
catch_events[event].channel(),
catch_playout_deck_status[catch_events[event].
channel()-129],
catch_events[event].id()));
catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"playout aborted: no such cut: %s, id: %d",
(const char *)catch_events[event].cutName().toUtf8(),
catch_events[event].id());
@@ -762,7 +764,7 @@ void MainObject::engineData(int id)
if(!RDCart::exists(catch_events[event].macroCart())) {
WriteExitCode(event,RDRecording::NoCut);
BroadcastCommand(QString().
sprintf("RE 0 0 %d!",catch_events[event].id()));
sprintf("RE 0 0 %d!",catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"macro aborted: no such cart: %u, id: %d",
catch_events[event].macroCart(),
catch_events[event].id());
@@ -779,7 +781,7 @@ void MainObject::engineData(int id)
if(!RDCut::exists(catch_events[event].cutName())) {
WriteExitCode(event,RDRecording::NoCut);
BroadcastCommand(QString().
sprintf("RE 0 0 %d!",catch_events[event].id()));
sprintf("RE 0 0 %d!",catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"download aborted: no such cut: %s, id: %d",
(const char *)catch_events[event].cutName().toUtf8(),
catch_events[event].id());
@@ -823,7 +825,7 @@ void MainObject::engineData(int id)
if(!RDCut::exists(catch_events[event].cutName())) {
WriteExitCode(event,RDRecording::NoCut);
BroadcastCommand(QString().
sprintf("RE 0 0 %d!",catch_events[event].id()));
sprintf("RE 0 0 %d!",catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"upload aborted: no such cut: %s, id: %d",
(const char *)catch_events[event].cutName().toUtf8(),
catch_events[event].id());
@@ -896,7 +898,7 @@ void MainObject::recordLoadedData(int card,int stream)
catch_record_deck_status[deck-1]=RDDeck::Ready;
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,catch_record_deck_status[deck-1],
catch_record_id[deck-1]));
catch_record_id[deck-1]).toUtf8());
rda->syslog(LOG_DEBUG,"Loaded - Card: %d Stream: %d\n",card,stream);
}
@@ -914,7 +916,7 @@ void MainObject::recordingData(int card,int stream)
BroadcastCommand(QString().sprintf("RE %d %d %d %s!",
deck,catch_record_deck_status[deck-1],
catch_record_id[deck-1],
(const char *)cutname));
cutname.toUtf8().constData()).toUtf8());
catch_record_status[deck-1]=true;
if(debug) {
printf("Recording - Card: %d Stream: %d, Id: %d\n",card,stream,
@@ -974,7 +976,7 @@ void MainObject::recordUnloadedData(int card,int stream,unsigned msecs)
}
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,RDDeck::Idle,
catch_record_id[deck-1]));
catch_record_id[deck-1]).toUtf8());
catch_record_id[deck-1]=0;
if(debug) {
printf("Unloaded - Card: %d Stream: %d\n",card,stream);
@@ -1011,7 +1013,7 @@ void MainObject::playLoadedData(int handle)
catch_playout_deck_status[deck-129]=RDDeck::Ready;
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,catch_playout_deck_status[deck-129],
catch_playout_id[deck-129]));
catch_playout_id[deck-129]).toUtf8());
if(debug) {
printf("Play Loaded - Card: %d Stream: %d\n",
catch_playout_card[deck-129],
@@ -1028,7 +1030,7 @@ void MainObject::playingData(int handle)
RDRecording::PlayActive);
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,catch_playout_deck_status[deck-129],
catch_playout_id[deck-129]));
catch_playout_id[deck-129]).toUtf8());
catch_playout_status[GetPlayoutDeck(handle)]=true;
if(debug) {
printf("Playing - Card: %d Stream: %d\n",
@@ -1067,7 +1069,7 @@ void MainObject::playUnloadedData(int handle)
WriteExitCodeById(catch_playout_id[deck-129],RDRecording::Ok);
BroadcastCommand(QString().sprintf("RE %d %d %d!",deck,
catch_playout_deck_status[deck-129],
catch_playout_id[deck-129]));
catch_playout_id[deck-129]).toUtf8());
if(debug) {
printf("Play unloaded - Card: %d Stream: %d\n",
catch_playout_card[deck-129],catch_playout_stream[deck-129]);
@@ -1125,7 +1127,7 @@ void MainObject::eventFinishedData(int id)
catch_events[event].setStatus(RDDeck::Idle);
BroadcastCommand(QString().sprintf("RE 0 %d %d!",
RDDeck::Idle,
catch_macro_event_id[id]));
catch_macro_event_id[id]).toUtf8());
if(catch_events[event].oneShot()) {
PurgeEvent(event);
}
@@ -1174,7 +1176,8 @@ void MainObject::updateXloadsData()
it=catch_active_xloads.begin()+i;
BroadcastCommand(QString().
sprintf("RE 0 %d %d!",RDDeck::Idle,
catch_events[catch_active_xloads[i]].id()));
catch_events[catch_active_xloads[i]].id()).
toUtf8());
catch_active_xloads.erase(it,it+1);
break;
@@ -1225,7 +1228,7 @@ bool MainObject::StartRecording(int event)
WriteExitCodeById(catch_events[event].id(),RDRecording::InternalError);
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,catch_record_deck_status[deck-1],
catch_events[event].id()));
catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,"invalid audio device for deck: %d, event: %d",
deck,catch_events[event].id());
return false;
@@ -1239,7 +1242,7 @@ bool MainObject::StartRecording(int event)
WriteExitCodeById(catch_events[event].id(),RDRecording::DeviceBusy);
BroadcastCommand(QString().sprintf("RE %d %d %d!",
deck,catch_record_deck_status[deck-1],
catch_events[event].id()));
catch_events[event].id()).toUtf8());
rda->syslog(LOG_WARNING,
"device busy for deck: %d, event: %d | in use by event: %d",
deck,catch_events[event].id(),catch_record_id[deck-1]);
@@ -1322,8 +1325,8 @@ bool MainObject::StartRecording(int event)
str+=QString().sprintf(" card: %d, stream: %d, cut: %s length: %d",
catch_record_card[deck-1],
catch_record_stream[deck-1],
(const char *)cut_name,length);
rda->syslog(LOG_INFO,str);
cut_name.toUtf8().constData(),length);
rda->syslog(LOG_INFO,"%s",str.toUtf8().constData());
//
// Cache Selected Fields
@@ -1497,7 +1500,7 @@ void MainObject::StartDownloadEvent(int event)
}
BroadcastCommand(QString().sprintf("RE 0 %d %d!",
RDDeck::Recording,
catch_events[event].id()));
catch_events[event].id()).toUtf8());
StartBatch(catch_events[event].id());
}
@@ -1510,7 +1513,7 @@ void MainObject::StartUploadEvent(int event)
catch_xload_timer->start(XLOAD_UPDATE_INTERVAL);
}
BroadcastCommand(QString().sprintf("RE 0 %d %d!",RDDeck::Recording,
catch_events[event].id()));
catch_events[event].id()).toUtf8());
StartBatch(catch_events[event].id());
}
@@ -1526,11 +1529,12 @@ bool MainObject::ExecuteMacroCart(RDCart *cart,int id,int event)
catch_events[event].setStatus(RDDeck::Recording);
}
if(id!=-1) {
BroadcastCommand(QString().sprintf("RE 0 %d %d!",RDDeck::Recording,id));
BroadcastCommand(QString().sprintf("RE 0 %d %d!",RDDeck::Recording,id).
toUtf8());
}
catch_macro_event_id[event_id]=id;
catch_event_pool[event_id]=
new RDMacroEvent(rda->station()->address(),rda->ripc(),this,"event");
new RDMacroEvent(rda->station()->address(),rda->ripc(),this);
catch_event_mapper->setMapping(catch_event_pool[event_id],event_id);
connect(catch_event_pool[event_id],SIGNAL(finished()),
catch_event_mapper,SLOT(map()));
@@ -1811,23 +1815,23 @@ void MainObject::DispatchCommand(ServerConnection *conn)
}
void MainObject::EchoCommand(int ch,const char *command)
void MainObject::EchoCommand(int ch,const QString &cmd)
{
// LogLine(RDConfig::LogDebug,QString().sprintf("rdcatchd: EchoCommand(%d,%s)",ch,command));
ServerConnection *conn=catch_connections.at(ch);
if(conn->socket()->state()==QAbstractSocket::ConnectedState) {
conn->socket()->write(command,strlen(command));
conn->socket()->write(cmd.toUtf8());
}
}
void MainObject::BroadcastCommand(const char *command,int except_ch)
void MainObject::BroadcastCommand(const QString &cmd,int except_ch)
{
// LogLine(RDConfig::LogDebug,QString().sprintf("rdcatchd: BroadcastCommand(%s)",command));
for(int i=0;i<catch_connections.size();i++) {
if(catch_connections.at(i)!=NULL) {
if(i!=except_ch) {
EchoCommand(i,command);
EchoCommand(i,cmd);
}
}
}
@@ -1995,11 +1999,16 @@ void MainObject::LoadEvent(RDSqlQuery *q,CatchEvent *e,bool add)
if(add) {
if(e->startType()==RDRecording::GpiStart) {
e->setGpiStartTimer(new QTimer(this));
QTimer *timer;
timer=new QTimer(this);
timer->setSingleShot(true);
e->setGpiStartTimer(timer);
catch_gpi_start_mapper->setMapping(e->gpiStartTimer(),e->id());
connect(e->gpiStartTimer(),SIGNAL(timeout()),
catch_gpi_start_mapper,SLOT(map()));
e->setGpiOffsetTimer(new QTimer(this));
timer=new QTimer(this);
timer->setSingleShot(true);
e->setGpiOffsetTimer(timer);
catch_gpi_offset_mapper->setMapping(e->gpiOffsetTimer(),e->id());
connect(e->gpiOffsetTimer(),SIGNAL(timeout()),
catch_gpi_offset_mapper,SLOT(map()));
@@ -2343,7 +2352,8 @@ void MainObject::CheckInRecording(QString cutname,CatchEvent *evt,
cart->updateLength();
delete cart;
delete cut;
chown(RDCut::pathName(cutname),rda->config()->uid(),rda->config()->gid());
chown(RDCut::pathName(cutname).toUtf8(),rda->config()->uid(),
rda->config()->gid());
}
@@ -2383,7 +2393,7 @@ void MainObject::CheckInPodcast(CatchEvent *e) const
// Add the Cast Entry
//
RDPodcast::Status status=RDPodcast::StatusPending;
if(q->value(0).toString().lower()=="y") {
if(q->value(0).toString().toLower()=="y") {
status=RDPodcast::StatusActive;
}
sql=QString("insert into PODCASTS set ")+
@@ -2490,10 +2500,10 @@ QString MainObject::BuildTempName(CatchEvent *evt,QString str)
QString MainObject::GetFileExtension(QString filename)
{
for(int i=filename.length()-1;i>=0;i--) {
if(((const char *)filename)[i]=='/') {
if(filename.at(i)==QChar('/')) {
return QString();
}
if(((const char *)filename)[i]=='.') {
if(filename.at(i)==QChar('.')) {
return filename.right(filename.length()-i-1);
}
}
@@ -2525,7 +2535,7 @@ bool MainObject::SendErrorMessage(CatchEvent *event,const QString &err_desc,
}
catch_macro_event_id[event_id]=event->id()+RDCATCHD_ERROR_ID_OFFSET;
catch_event_pool[event_id]=
new RDMacroEvent(rda->station()->address(),rda->ripc(),this,"event");
new RDMacroEvent(rda->station()->address(),rda->ripc(),this);
catch_event_mapper->setMapping(catch_event_pool[event_id],event_id);
connect(catch_event_pool[event_id],SIGNAL(finished()),
catch_event_mapper,SLOT(map()));
@@ -2645,11 +2655,11 @@ void MainObject::StartBatch(int id)
{
if((fork())==0) {
QString bin=QString(RD_PREFIX)+"/"+"sbin/rdcatchd";
execl(bin,(const char *)bin,
(const char *)QString().sprintf("--event-id=%d",id),
execl(bin.toUtf8(),bin.toUtf8().constData(),
QString().sprintf("--event-id=%d",id).toUtf8().constData(),
(char *)NULL);
rda->syslog(LOG_ERR,"failed to exec %s --event-id=%d: %s",
(const char *)bin,
bin.toUtf8().constData(),
id,strerror(errno));
exit(0);
}
@@ -2669,8 +2679,10 @@ void MainObject::SendNotification(RDNotification::Type type,
QString MainObject::GetTempRecordingName(int id) const
{
return QString().sprintf("%s/rdcatchd-record-%d.%s",
RDConfiguration()->audioRoot().ascii(),id,
RDConfiguration()->audioExtension().ascii());
RDConfiguration()->audioRoot().toAscii().constData(),
id,
RDConfiguration()->audioExtension().toAscii().
constData());
}

View File

@@ -2,7 +2,7 @@
//
// The Rivendell Netcatcher.
//
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2021 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
@@ -160,8 +160,8 @@ class MainObject : public QObject
void SendDeckEvent(int deck,int number);
void ParseCommand(int);
void DispatchCommand(ServerConnection *conn);
void EchoCommand(int,const char *);
void BroadcastCommand(const char *,int except_ch=-1);
void EchoCommand(int,const QString &cmd);
void BroadcastCommand(const QString &cmd,int except_ch=-1);
void EchoArgs(int,const char);
void LoadEngine(bool adv_day=false);
QString LoadEventSql();
@@ -202,7 +202,7 @@ class MainObject : public QObject
QString catch_host;
bool debug;
RDTimeEngine *catch_engine;
Q_INT16 tcp_port;
int16_t tcp_port;
QTcpServer *server;
RDCatchConnect *catch_connect;