diff --git a/ChangeLog b/ChangeLog index 6eaf5da1..f301d2f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18825,3 +18825,5 @@ script. * Removed the 'syslog.openlog()' call from the 'pypad_xmpad.py' script. +2019-06-21 Fred Gleason + * Added 'RDApplication::syslog()' methods. diff --git a/cae/cae.cpp b/cae/cae.cpp index dfaaf058..f7e8c589 100644 --- a/cae/cae.cpp +++ b/cae/cae.cpp @@ -38,14 +38,15 @@ #include -#include +#include +#include +#include #include #include #include -#include +#include #include #include -#include #include @@ -102,7 +103,7 @@ MainObject::MainObject(QObject *parent,const char *name) rd_config->load(); rd_config->setModuleName("caed"); - syslog(LOG_INFO,"cae starting"); + RDApplication::syslog(rd_config,LOG_INFO,"cae starting"); // // Initialize Data Structures @@ -151,7 +152,8 @@ MainObject::MainObject(QObject *parent,const char *name) cae_server=new CaeServer(rd_config,this); if(!cae_server->listen(QHostAddress::Any,CAED_TCP_PORT)) { - syslog(LOG_ERR,"caed: failed to bind port %d",CAED_TCP_PORT); + RDApplication::syslog(rd_config,LOG_ERR, + "caed: failed to bind port %d",CAED_TCP_PORT); exit(1); } connect(cae_server,SIGNAL(connectionDropped(int)), @@ -251,7 +253,8 @@ MainObject::MainObject(QObject *parent,const char *name) db.setPassword(rd_config->mysqlPassword()); db.setHostName(rd_config->mysqlHostname()); if(!db.open()) { - syslog(LOG_ERR,"unable to connect to mySQL Server"); + RDApplication::syslog(rd_config,LOG_ERR, + "unable to connect to mySQL Server"); printf("caed: unable to connect to mySQL Server"); exit(1); } @@ -364,11 +367,13 @@ MainObject::MainObject(QObject *parent,const char *name) } mlockall(MCL_CURRENT|MCL_FUTURE); if(result) { - syslog(LOG_WARNING,"unable to set realtime scheduling: %s", + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to set realtime scheduling: %s", strerror(result)); } else { - syslog(LOG_DEBUG,"using realtime scheduling, priority=%d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "using realtime scheduling, priority=%d", sched_params.sched_priority); } } @@ -389,9 +394,9 @@ MainObject::MainObject(QObject *parent,const char *name) } */ if(rd_config->enableMixerLogging()) { - syslog(LOG_NOTICE,"mixer logging enabled"); + RDApplication::syslog(rd_config,LOG_NOTICE,"mixer logging enabled"); } - syslog(LOG_INFO,"cae started"); + RDApplication::syslog(rd_config,LOG_INFO,"cae started"); } @@ -408,7 +413,8 @@ void MainObject::loadPlaybackData(int id,unsigned card,const QString &name) cae_server-> sendCommand(id,QString().sprintf("LP %d %s -1 -1 -!",card, (const char *)name.toUtf8())); - syslog(LOG_WARNING,"unable to allocate stream for card %d",card); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to allocate stream for card %d",card); return; } break; @@ -418,7 +424,8 @@ void MainObject::loadPlaybackData(int id,unsigned card,const QString &name) cae_server-> sendCommand(id,QString().sprintf("LP %d %s -1 -1 -!",card, (const char *)name.toUtf8())); - syslog(LOG_WARNING,"unable to allocate stream for card %d",card); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to allocate stream for card %d",card); return; } break; @@ -428,7 +435,8 @@ void MainObject::loadPlaybackData(int id,unsigned card,const QString &name) cae_server-> sendCommand(id,QString().sprintf("LP %d %s -1 -1 -!",card, (const char *)name.toUtf8())); - syslog(LOG_WARNING,"unable to allocate stream for card %d",card); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to allocate stream for card %d",card); return; } break; @@ -440,7 +448,7 @@ void MainObject::loadPlaybackData(int id,unsigned card,const QString &name) return; } if((handle=GetHandle(card,new_stream))>=0) { - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "*** clearing stale stream assignment, card=%d stream=%d ***", card,new_stream); play_handle[handle].card=-1; @@ -452,7 +460,8 @@ void MainObject::loadPlaybackData(int id,unsigned card,const QString &name) play_handle[handle].stream=new_stream; play_handle[handle].owner=id; play_owner[card][new_stream]=id; - syslog(LOG_DEBUG,"LoadPlayback Card: %d Stream: %d Name: %s Handle: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "LoadPlayback Card: %d Stream: %d Name: %s Handle: %d", card,new_stream,(const char *)wavename.toUtf8(),handle); cae_server-> sendCommand(id,QString().sprintf("LP %d %s %d %d +!",card, @@ -471,7 +480,8 @@ void MainObject::unloadPlaybackData(int id,unsigned handle) case RDStation::Hpi: if(hpiUnloadPlayback(card,stream)) { play_owner[card][stream]=-1; - syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "UnloadPlayback - Card: %d Stream: %d Handle: %d", card,stream,handle); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle)); } @@ -483,7 +493,8 @@ void MainObject::unloadPlaybackData(int id,unsigned handle) case RDStation::Alsa: if(alsaUnloadPlayback(card,stream)) { play_owner[card][stream]=-1; - syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "UnloadPlayback - Card: %d Stream: %d Handle: %d", card,stream,handle); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle)); } @@ -495,7 +506,8 @@ void MainObject::unloadPlaybackData(int id,unsigned handle) case RDStation::Jack: if(jackUnloadPlayback(card,stream)) { play_owner[card][stream]=-1; - syslog(LOG_DEBUG,"UnloadPlayback - Card: %d Stream: %d Handle: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "UnloadPlayback - Card: %d Stream: %d Handle: %d", card,stream,handle); cae_server->sendCommand(id,QString().sprintf("UP %d +!",handle)); } @@ -528,7 +540,7 @@ void MainObject::playPositionData(int id,unsigned handle,unsigned pos) switch(cae_driver[card]) { case RDStation::Hpi: if(hpiPlaybackPosition(card,stream,pos)) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "PlaybackPosition - Card: %d Stream: %d Pos: %d Handle: %d", card,stream,pos,handle); cae_server->sendCommand(id,QString().sprintf("PP %d %d +!",handle,pos)); @@ -540,7 +552,7 @@ void MainObject::playPositionData(int id,unsigned handle,unsigned pos) case RDStation::Alsa: if(alsaPlaybackPosition(card,stream,pos)) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "PlaybackPosition - Card: %d Stream: %d Pos: %d Handle: %d", card,stream,pos,handle); cae_server->sendCommand(id,QString().sprintf("PP %d %d +!",handle,pos)); @@ -552,7 +564,7 @@ void MainObject::playPositionData(int id,unsigned handle,unsigned pos) case RDStation::Jack: if(jackPlaybackPosition(card,stream,pos)) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "PlaybackPosition - Card: %d Stream: %d Pos: %d Handle: %d", card,stream,pos,handle); cae_server->sendCommand(id,QString().sprintf("PP %d %d +!",handle,pos)); @@ -636,7 +648,7 @@ void MainObject::playData(int id,unsigned handle,unsigned length,unsigned speed, handle,length,speed,pitch_flag)); return; } - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "Play - Card: %d Stream: %d Handle: %d Length: %d Speed: %d Pitch: %d", card,stream,handle,play_length[card][stream], play_speed[card][stream],pitch_flag); @@ -680,7 +692,8 @@ void MainObject::stopPlaybackData(int id,unsigned handle) cae_server->sendCommand(id,QString().sprintf("SP %u -!",handle)); return; } - syslog(LOG_DEBUG,"StopPlayback - Card: %d Stream: %d Handle: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "StopPlayback - Card: %d Stream: %d Handle: %d", card,stream,handle); return; } @@ -769,7 +782,7 @@ void MainObject::loadRecordingData(int id,unsigned card,unsigned port, bitrate,(const char *)name.toUtf8())); return; } - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "LoadRecord - Card: %d Stream: %d Coding: %d Chans: %d SampRate: %d BitRate: %d Name: %s", card,port,coding,channels,samprate,bitrate, (const char *)wavename.toUtf8()); @@ -819,7 +832,8 @@ void MainObject::unloadRecordingData(int id,unsigned card,unsigned stream) return; } record_owner[card][stream]=-1; - syslog(LOG_DEBUG,"UnloadRecord - Card: %d Stream: %d, Length: %u", + RDApplication::syslog(rd_config,LOG_DEBUG, + "UnloadRecord - Card: %d Stream: %d, Length: %u", card,stream,len); cae_server-> sendCommand(id,QString().sprintf("UR %u %u %u +!",card,stream, @@ -876,7 +890,8 @@ void MainObject::recordData(int id,unsigned card,unsigned stream,unsigned len, card,stream,len,threshold_level)); return; } - syslog(LOG_DEBUG,"Record - Card: %d Stream: %d Length: %d Thres: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "Record - Card: %d Stream: %d Length: %d Thres: %d", card,stream,record_length[card][stream], record_threshold[card][stream]); // No positive echo required here! @@ -918,7 +933,8 @@ void MainObject::stopRecordingData(int id,unsigned card,unsigned stream) cae_server->sendCommand(id,QString().sprintf("SR %u %u -!",card,stream)); return; } - syslog(LOG_DEBUG,"StopRecord - Card: %d Stream: %d",card,stream); + RDApplication::syslog(rd_config,LOG_DEBUG, + "StopRecord - Card: %d Stream: %d",card,stream); } @@ -953,8 +969,9 @@ void MainObject::setInputVolumeData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetInputVolume - Card: %d Stream: %d Level: %d", - card,stream,level); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetInputVolume - Card: %d Stream: %d Level: %d", + card,stream,level); } cae_server-> sendCommand(id,QString().sprintf("IV %u %u %d +!",card,stream,level)); @@ -995,7 +1012,7 @@ void MainObject::setOutputVolumeData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "SetOutputVolume - Card: %d Stream: %d Port: %d Level: %d", card,stream,port,level); } @@ -1042,7 +1059,7 @@ void MainObject::fadeOutputVolumeData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "FadeOutputVolume - Card: %d Stream: %d Port: %d Level: %d Length: %d", card,stream,port,level,length); } @@ -1086,8 +1103,9 @@ void MainObject::setInputLevelData(int id,unsigned card,unsigned port, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetInputLevel - Card: %d Port: %d Level: %d", - card,port,level); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetInputLevel - Card: %d Port: %d Level: %d", + card,port,level); } cae_server->sendCommand(id,QString().sprintf("IL %u %u %d +!", card,port,level)); @@ -1128,8 +1146,9 @@ void MainObject::setOutputLevelData(int id,unsigned card,unsigned port, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetOutputLevel - Card: %d Port: %d Level: %d", - card,port,level); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetOutputLevel - Card: %d Port: %d Level: %d", + card,port,level); } cae_server->sendCommand(id,QString().sprintf("OL %u %u %d +!", card,port,level)); @@ -1170,7 +1189,8 @@ void MainObject::setInputModeData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetInputMode - Card: %d Stream: %d Mode: %d", + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetInputMode - Card: %d Stream: %d Mode: %d", card,stream,mode); } cae_server->sendCommand(id,QString().sprintf("IM %u %u %u +!", @@ -1212,8 +1232,9 @@ void MainObject::setOutputModeData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetOutputMode - Card: %d Stream: %d Mode: %d", - card,stream,mode); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetOutputMode - Card: %d Stream: %d Mode: %d", + card,stream,mode); } cae_server->sendCommand(id,QString().sprintf("OM %u %u %u +!", card,stream,mode)); @@ -1254,8 +1275,9 @@ void MainObject::setInputVoxLevelData(int id,unsigned card,unsigned stream, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetInputVOXLevel - Card: %d Stream: %d Level: %d", - card,stream,level); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetInputVOXLevel - Card: %d Stream: %d Level: %d", + card,stream,level); } cae_server->sendCommand(id,QString().sprintf("IX %u %u %d +!", card,stream,level)); @@ -1296,8 +1318,9 @@ void MainObject::setInputTypeData(int id,unsigned card,unsigned port, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetInputType - Card: %d Port: %d Type: %d", - card,port,type); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetInputType - Card: %d Port: %d Type: %d", + card,port,type); } cae_server->sendCommand(id,QString().sprintf("IT %u %u %u +!", card,port,type)); @@ -1350,7 +1373,7 @@ void MainObject::setAudioPassthroughLevelData(int id,unsigned card, return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG, + RDApplication::syslog(rd_config,LOG_DEBUG, "SetPassthroughLevel - Card: %d InPort: %d OutPort: %d Level: %d", card,input,output,level); } @@ -1377,7 +1400,8 @@ void MainObject::setClockSourceData(int id,unsigned card,int input) return; } if(rd_config->enableMixerLogging()) { - syslog(LOG_DEBUG,"SetClockSource - Card: %d Source: %d",card,input); + RDApplication::syslog(rd_config,LOG_DEBUG, + "SetClockSource - Card: %d Source: %d",card,input); } cae_server->sendCommand(id,QString().sprintf("CS %u %u +!",card,input)); } @@ -1514,7 +1538,7 @@ void MainObject::updateMeters() jackFree(); alsaFree(); hpiFree(); - syslog(LOG_INFO,"cae exiting"); + RDApplication::syslog(rd_config,LOG_INFO,"cae exiting"); exit(0); } @@ -1619,8 +1643,9 @@ void MainObject::InitProvisioning() const q=new RDSqlQuery(sql); if(!q->first()) { if(RDStation::create(rd_config->stationName(),&err_msg,rd_config->provisioningHostTemplate(),rd_config->provisioningHostIpAddress())) { - syslog(LOG_INFO,"created new host entry \"%s\"", - (const char *)rd_config->stationName()); + RDApplication::syslog(rd_config,LOG_INFO, + "created new host entry \"%s\"", + (const char *)rd_config->stationName()); if(!rd_config->provisioningHostShortName(rd_config->stationName()). isEmpty()) { RDStation *station=new RDStation(rd_config->stationName()); @@ -1652,8 +1677,9 @@ void MainObject::InitProvisioning() const if(!q->first()) { if(RDSvc::create(svcname,&err_msg, rd_config->provisioningServiceTemplate(),rd_config)) { - syslog(LOG_INFO,"created new service entry \"%s\"", - (const char *)svcname); + RDApplication::syslog(rd_config,LOG_INFO, + "created new service entry \"%s\"", + (const char *)svcname); } else { fprintf(stderr,"caed: unable to provision service [%s]\n", @@ -1752,7 +1778,8 @@ void MainObject::KillSocket(int ch) break; default: - syslog(LOG_NOTICE,"tried to kill unowned socket!"); + RDApplication::syslog(rd_config,LOG_NOTICE, + "tried to kill unowned socket!"); break; } record_length[i][j]=0; @@ -1936,7 +1963,7 @@ bool MainObject::LoadTwoLame() { #ifdef HAVE_TWOLAME if((twolame_handle=dlopen("libtwolame.so.0",RTLD_NOW))==NULL) { - syslog(LOG_INFO, + RDApplication::syslog(rd_config,LOG_INFO, "TwoLAME encoder library not found, MPEG L2 encoding not supported"); return false; } @@ -1961,11 +1988,11 @@ bool MainObject::LoadTwoLame() dlsym(twolame_handle,"twolame_encode_flush"); *(void **)(&twolame_set_energy_levels)= dlsym(twolame_handle,"twolame_set_energy_levels"); - syslog(LOG_INFO, + RDApplication::syslog(rd_config,LOG_INFO, "Found TwoLAME encoder library, MPEG L2 encoding supported"); return true; #else - syslog(LOG_INFO,"MPEG L2 encoding not enabled"); + RDApplication::syslog(rd_config,LOG_INFO,"MPEG L2 encoding not enabled"); return false; #endif // HAVE_TWOLAME @@ -1988,7 +2015,7 @@ bool MainObject::InitTwoLameEncoder(int card,int stream,int chans,int samprate, break; } if((twolame_lameopts[card][stream]=twolame_init())==NULL) { - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "unable to initialize twolame instance, card=%d, stream=%d", card,stream); return false; @@ -2000,8 +2027,9 @@ bool MainObject::InitTwoLameEncoder(int card,int stream,int chans,int samprate, twolame_set_bitrate(twolame_lameopts[card][stream],bitrate/1000); twolame_set_energy_levels(twolame_lameopts[card][stream],1); if(twolame_init_params(twolame_lameopts[card][stream])!=0) { - syslog(LOG_WARNING,"invalid twolame parameters, card=%d, stream=%d, chans=%d, samprate=%d bitrate=%d", - card,stream,chans,samprate,bitrate); + RDApplication::syslog(rd_config,LOG_WARNING, + "invalid twolame parameters, card=%d, stream=%d, chans=%d, samprate=%d bitrate=%d", + card,stream,chans,samprate,bitrate); return false; } return true; @@ -2026,7 +2054,7 @@ bool MainObject::LoadMad() { #ifdef HAVE_MAD if((mad_handle=dlopen("libmad.so.0",RTLD_NOW))==NULL) { - syslog(LOG_INFO, + RDApplication::syslog(rd_config,LOG_INFO, "MAD decoder library not found, MPEG L2 decoding not supported"); return false; } @@ -2046,11 +2074,11 @@ bool MainObject::LoadMad() dlsym(mad_handle,"mad_frame_finish"); *(void **)(&mad_stream_finish)= dlsym(mad_handle,"mad_stream_finish"); - syslog(LOG_INFO, + RDApplication::syslog(rd_config,LOG_INFO, "Found MAD decoder library, MPEG L2 decoding supported"); return true; #else - syslog(LOG_INFO,"MPEG L2 decoding not enabled"); + RDApplication::syslog(rd_config,LOG_INFO,"MPEG L2 decoding not enabled"); return false; #endif // HAVE_MAD } @@ -2183,6 +2211,6 @@ int main(int argc,char *argv[]) QCoreApplication a(argc,argv,false); new MainObject(NULL,"main"); rc=a.exec(); - syslog(LOG_DEBUG,"cae post a.exec() rc: %d",rc); + RDApplication::syslog(rd_config,LOG_DEBUG,"cae post a.exec() rc: %d",rc); return rc; } diff --git a/cae/cae_alsa.cpp b/cae/cae_alsa.cpp index 678f6c48..1e5ed198 100644 --- a/cae/cae_alsa.cpp +++ b/cae/cae_alsa.cpp @@ -20,15 +20,15 @@ #include #include -#include #include #include #include -#include +#include #include +#include #include @@ -73,7 +73,8 @@ void *AlsaCaptureCallback(void *ptr) (!alsa_format->exiting))||(s<0)) { snd_pcm_drop (alsa_format->pcm); snd_pcm_prepare(alsa_format->pcm); - syslog(LOG_DEBUG,"****** ALSA Capture Xrun - Card: %d ******", + RDApplication::syslog(rd_config,LOG_DEBUG, + "****** ALSA Capture Xrun - Card: %d ******", alsa_format->card); } else { @@ -510,17 +511,20 @@ void *AlsaPlayCallback(void *ptr) int s=snd_pcm_writei(alsa_format->pcm,alsa_format->card_buffer,n); if(s!=n) { if(s<0) { - syslog(LOG_WARNING,"*** alsa error %d: %s",-s,snd_strerror(s)); + RDApplication::syslog(rd_config,LOG_WARNING, + "*** alsa error %d: %s",-s,snd_strerror(s)); } else { - syslog(LOG_WARNING,"period size mismatch - wrote %d",s); + RDApplication::syslog(rd_config,LOG_WARNING, + "period size mismatch - wrote %d",s); } } if((snd_pcm_state(alsa_format->pcm)!=SND_PCM_STATE_RUNNING)&& (!alsa_format->exiting)) { snd_pcm_drop (alsa_format->pcm); snd_pcm_prepare(alsa_format->pcm); - syslog(LOG_DEBUG,"****** ALSA Playout Xrun - Card: %d ******", + RDApplication::syslog(rd_config,LOG_DEBUG, + "****** ALSA Playout Xrun - Card: %d ******", alsa_format->card); } } @@ -599,7 +603,7 @@ void MainObject::alsaFadeTimerData(int cardstream) alsa_fade_timer[card][stream]->stop(); } } - syslog(LOG_DEBUG,"FadeLevel: %d",level); + RDApplication::syslog(rd_config,LOG_DEBUG,"FadeLevel: %d",level); alsaSetOutputVolume(card,stream,alsa_fade_port[card][stream],level); #endif // ALSA } @@ -719,7 +723,8 @@ void MainObject::alsaInit(RDStation *station) if(cae_driver[i]==RDStation::Alsa) { station->setCardDriver(i,RDStation::Alsa); if(snd_ctl_open(&snd_ctl,dev,0)<0) { - syslog(LOG_DEBUG,"no control device found for %s", + RDApplication::syslog(rd_config,LOG_DEBUG, + "no control device found for %s", (const char *)dev); station-> setCardName(i, @@ -778,13 +783,15 @@ bool MainObject::alsaLoadPlayback(int card,QString wavename,int *stream) { #ifdef ALSA if(alsa_play_format[card].exiting||((*stream=GetAlsaOutputStream(card))<0)) { - syslog(LOG_WARNING,"alsaLoadPlayback(%s) GetAlsaOutputStream():%d < 0", + RDApplication::syslog(rd_config,LOG_DEBUG, + "alsaLoadPlayback(%s) GetAlsaOutputStream():%d < 0", (const char *)wavename.toUtf8(),*stream); return false; } alsa_play_wave[card][*stream]=new RDWaveFile(wavename); if(!alsa_play_wave[card][*stream]->openWave()) { - syslog(LOG_WARNING,"alsaLoadPlayback(%s) openWave() failed to open file", + RDApplication::syslog(rd_config,LOG_DEBUG, + "alsaLoadPlayback(%s) openWave() failed to open file", (const char *)wavename.toUtf8()); delete alsa_play_wave[card][*stream]; alsa_play_wave[card][*stream]=NULL; @@ -802,7 +809,7 @@ bool MainObject::alsaLoadPlayback(int card,QString wavename,int *stream) break; default: - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "alsaLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", (const char *)wavename.toUtf8(), alsa_play_wave[card][*stream]->getFormatTag(), @@ -990,7 +997,7 @@ bool MainObject::alsaLoadRecord(int card,int stream,int coding,int chans, break; default: - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "requested unsupported channel count %d, card: %d, stream: %d", chans,card,stream); delete alsa_record_wave[card][stream]; @@ -1018,7 +1025,7 @@ bool MainObject::alsaLoadRecord(int card,int stream,int coding,int chans, break; default: - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "requested invalid audio encoding %d, card: %d, stream: %d", coding,card,stream); delete alsa_record_wave[card][stream]; @@ -1358,7 +1365,7 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_alloca(&hwparams); snd_pcm_hw_params_any(pcm,hwparams); - syslog(LOG_INFO,"Starting ALSA Capture Device %s:", + RDApplication::syslog(rd_config,LOG_INFO,"Starting ALSA Capture Device %s:", (const char *)dev.toUtf8()); // @@ -1366,8 +1373,10 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_access(pcm,hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)<0) { - syslog(LOG_WARNING," Interleaved access not supported,"); - syslog(LOG_WARNING," aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " Interleaved access not supported,"); + RDApplication::syslog(rd_config,LOG_WARNING, + " aborting initialization of device."); return false; } snd_pcm_hw_params_set_access(pcm,hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); @@ -1377,18 +1386,19 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S32_LE)==0) { alsa_capture_format[card].format=SND_PCM_FORMAT_S32_LE; - syslog(LOG_INFO," Format = 32 bit little-endian"); + RDApplication::syslog(rd_config,LOG_INFO," Format = 32 bit little-endian"); } else { if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S16_LE)==0) { alsa_capture_format[card].format=SND_PCM_FORMAT_S16_LE; - syslog(LOG_INFO," Format = 16 bit little-endian"); + RDApplication::syslog(rd_config,LOG_INFO, + " Format = 16 bit little-endian"); } else { - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, " Neither 16 nor 32 bit little-endian formats available,"); - syslog(LOG_WARNING, - " aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " aborting initialization of device."); return false; } } @@ -1406,13 +1416,15 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_rate_near(pcm,hwparams,&sr,&dir); if((sr<(system_sample_rate-RD_ALSA_SAMPLE_RATE_TOLERANCE))|| (sr>(system_sample_rate+RD_ALSA_SAMPLE_RATE_TOLERANCE))) { - syslog(LOG_WARNING," Asked for sample rate %u, got %u", + RDApplication::syslog(rd_config,LOG_WARNING, + " Asked for sample rate %u, got %u", system_sample_rate,sr); - syslog(LOG_WARNING," Sample rate unsupported by device"); + RDApplication::syslog(rd_config,LOG_WARNING, + " Sample rate unsupported by device"); return false; } alsa_capture_format[card].sample_rate=sr; - syslog(LOG_INFO," SampleRate = %u",sr); + RDApplication::syslog(rd_config,LOG_INFO," SampleRate = %u",sr); // // Channels @@ -1426,7 +1438,7 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_channels_near(pcm,hwparams, &alsa_capture_format[card].channels); alsa_play_format[card].capture_channels=alsa_capture_format[card].channels; - syslog(LOG_INFO," Aggregate Channels = %u", + RDApplication::syslog(rd_config,LOG_INFO," Aggregate Channels = %u", alsa_capture_format[card].channels); // @@ -1435,23 +1447,26 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) alsa_capture_format[card].periods=rd_config->alsaPeriodQuantity(); snd_pcm_hw_params_set_periods_near(pcm,hwparams, &alsa_capture_format[card].periods,&dir); - syslog(LOG_INFO," Periods = %u",alsa_capture_format[card].periods); + RDApplication::syslog(rd_config,LOG_INFO, + " Periods = %u",alsa_capture_format[card].periods); alsa_capture_format[card].buffer_size= alsa_capture_format[card].periods*rd_config->alsaPeriodSize(); snd_pcm_hw_params_set_buffer_size_near(pcm,hwparams, &alsa_capture_format[card].buffer_size); - syslog(LOG_INFO," BufferSize = %u frames", + RDApplication::syslog(rd_config,LOG_INFO," BufferSize = %u frames", (unsigned)alsa_capture_format[card].buffer_size); // // Fire It Up // if((err=snd_pcm_hw_params(pcm,hwparams))<0) { - syslog(LOG_WARNING," Device Error: %s,",snd_strerror(err)); - syslog(LOG_WARNING," aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " Device Error: %s,",snd_strerror(err)); + RDApplication::syslog(rd_config,LOG_WARNING, + " aborting initialization of device."); return false; } - syslog(LOG_INFO," Device started successfully"); + RDApplication::syslog(rd_config,LOG_INFO," Device started successfully"); switch(alsa_capture_format[card].format) { case SND_PCM_FORMAT_S16_LE: alsa_capture_format[card].card_buffer_size= @@ -1481,7 +1496,8 @@ bool MainObject::AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_sw_params_current(pcm,swparams); snd_pcm_sw_params_set_avail_min(pcm,swparams,rd_config->alsaPeriodSize()); if((err=snd_pcm_sw_params(pcm,swparams))<0) { - syslog(LOG_WARNING,"ALSA Device %s: %s",(const char *)dev.toUtf8(), + RDApplication::syslog(rd_config,LOG_WARNING, + "ALSA Device %s: %s",(const char *)dev.toUtf8(), snd_strerror(err)); return false; } @@ -1516,7 +1532,7 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_alloca(&hwparams); snd_pcm_hw_params_any(pcm,hwparams); - syslog(LOG_INFO,"Starting ALSA Play Device %s:", + RDApplication::syslog(rd_config,LOG_INFO,"Starting ALSA Play Device %s:", (const char *)dev.toUtf8()); // @@ -1524,8 +1540,10 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_access(pcm,hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)<0) { - syslog(LOG_WARNING," Interleaved access not supported,"); - syslog(LOG_WARNING," aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " Interleaved access not supported,"); + RDApplication::syslog(rd_config,LOG_WARNING, + " aborting initialization of device."); return false; } snd_pcm_hw_params_set_access(pcm,hwparams,SND_PCM_ACCESS_RW_INTERLEAVED); @@ -1535,17 +1553,19 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) // if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S32_LE)==0) { alsa_play_format[card].format=SND_PCM_FORMAT_S32_LE; - syslog(LOG_INFO," Format = 32 bit little-endian"); + RDApplication::syslog(rd_config,LOG_INFO," Format = 32 bit little-endian"); } else { if(snd_pcm_hw_params_test_format(pcm,hwparams,SND_PCM_FORMAT_S16_LE)==0) { alsa_play_format[card].format=SND_PCM_FORMAT_S16_LE; - syslog(LOG_INFO," Format = 16 bit little-endian"); + RDApplication::syslog(rd_config,LOG_INFO, + " Format = 16 bit little-endian"); } else { - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, " Neither 16 nor 32 bit little-endian formats available,"); - syslog(LOG_WARNING," aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " aborting initialization of device."); return false; } } @@ -1558,13 +1578,15 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_hw_params_set_rate_near(pcm,hwparams,&sr,&dir); if((sr<(system_sample_rate-RD_ALSA_SAMPLE_RATE_TOLERANCE))|| (sr>(system_sample_rate+RD_ALSA_SAMPLE_RATE_TOLERANCE))) { - syslog(LOG_WARNING," Asked for sample rate %u, got %u", - system_sample_rate,sr); - syslog(LOG_WARNING," Sample rate unsupported by device"); + RDApplication::syslog(rd_config,LOG_WARNING, + " Asked for sample rate %u, got %u", + system_sample_rate,sr); + RDApplication::syslog(rd_config,LOG_WARNING, + " Sample rate unsupported by device"); return false; } alsa_play_format[card].sample_rate=sr; - syslog(LOG_INFO," SampleRate = %u",sr); + RDApplication::syslog(rd_config,LOG_INFO," SampleRate = %u",sr); // // Channels @@ -1577,30 +1599,34 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) } snd_pcm_hw_params_set_channels_near(pcm,hwparams, &alsa_play_format[card].channels); - syslog(LOG_INFO," Aggregate Channels = %u",alsa_play_format[card].channels); + RDApplication::syslog(rd_config,LOG_INFO," Aggregate Channels = %u", + alsa_play_format[card].channels); // // Buffer Size // alsa_play_format[card].periods=rd_config->alsaPeriodQuantity(); snd_pcm_hw_params_set_periods_near(pcm,hwparams, &alsa_play_format[card].periods,&dir); - syslog(LOG_INFO," Periods = %u",alsa_play_format[card].periods); + RDApplication::syslog(rd_config,LOG_INFO, + " Periods = %u",alsa_play_format[card].periods); alsa_play_format[card].buffer_size= alsa_play_format[card].periods*rd_config->alsaPeriodSize(); snd_pcm_hw_params_set_buffer_size_near(pcm,hwparams, &alsa_play_format[card].buffer_size); - syslog(LOG_INFO," BufferSize = %u frames", + RDApplication::syslog(rd_config,LOG_INFO," BufferSize = %u frames", (unsigned)alsa_play_format[card].buffer_size); // // Fire It Up // if((err=snd_pcm_hw_params(pcm,hwparams))<0) { - syslog(LOG_WARNING," Device Error: %s,",snd_strerror(err)); - syslog(LOG_ERR," aborting initialization of device."); + RDApplication::syslog(rd_config,LOG_WARNING, + " Device Error: %s,",snd_strerror(err)); + RDApplication::syslog(rd_config,LOG_ERR, + " aborting initialization of device."); return false; } - syslog(LOG_INFO," Device started successfully"); + RDApplication::syslog(rd_config,LOG_INFO," Device started successfully"); switch(alsa_play_format[card].format) { case SND_PCM_FORMAT_S16_LE: alsa_play_format[card].card_buffer_size= @@ -1629,7 +1655,7 @@ bool MainObject::AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm) snd_pcm_sw_params_current(pcm,swparams); snd_pcm_sw_params_set_avail_min(pcm,swparams,rd_config->alsaPeriodSize()); if((err=snd_pcm_sw_params(pcm,swparams))<0) { - syslog(LOG_WARNING,"ALSA Device %s: %s", + RDApplication::syslog(rd_config,LOG_WARNING,"ALSA Device %s: %s", (const char *)dev.toUtf8(),snd_strerror(err)); return false; } @@ -1720,7 +1746,8 @@ void MainObject::WriteAlsaBuffer(int card,int stream,int16_t *buffer,unsigned le alsa_record_wave[card][stream]->writeWave(mpeg,s); } else { - syslog(LOG_WARNING,"TwoLAME encode error, card: %d, stream: %d", + RDApplication::syslog(rd_config,LOG_WARNING, + "TwoLAME encode error, card: %d, stream: %d", card,stream); } } diff --git a/cae/cae_hpi.cpp b/cae/cae_hpi.cpp index a9a3841a..0ca847de 100644 --- a/cae/cae_hpi.cpp +++ b/cae/cae_hpi.cpp @@ -20,6 +20,7 @@ #include +#include #include #include "cae.h" @@ -33,7 +34,7 @@ void MainObject::hpiInit(RDStation *station) play[i][j]=NULL; } } - sound_card=new RDHPISoundCard(this); + sound_card=new RDHPISoundCard(rd_config,this); sound_card->setFadeProfile(RD_FADE_TYPE); for(int i=0;igetCardQuantity();i++) { cae_driver[i]=RDStation::Hpi; @@ -78,7 +79,8 @@ bool MainObject::hpiLoadPlayback(int card,QString wavename,int *stream) RDHPIPlayStream *playstream=new RDHPIPlayStream(sound_card); playstream->setCard(card); if(playstream->openWave(wavename)!=RDHPIPlayStream::Ok) { - syslog(LOG_WARNING,"hpiLoadPlayback(%s) openWave() failed to open file", + RDApplication::syslog(rd_config,LOG_DEBUG, + "hpiLoadPlayback(%s) openWave() failed to open file", (const char *)wavename.toUtf8()); delete playstream; return false; diff --git a/cae/cae_jack.cpp b/cae/cae_jack.cpp index 1a24d260..fa8682b7 100644 --- a/cae/cae_jack.cpp +++ b/cae/cae_jack.cpp @@ -19,13 +19,13 @@ // #include -#include #include #include #include +#include #include #include #include @@ -447,13 +447,14 @@ void MainObject::jackClientStartData() jack_clients.push_back(new QProcess(this)); jack_clients.back()->start(program,args); if(jack_clients.back()->waitForStarted()) { - syslog(LOG_INFO,"started JACK Client \"%s\"", + RDApplication::syslog(rd_config,LOG_INFO,"started JACK Client \"%s\"", (const char *)q->value(0).toString().toUtf8()); } else { - syslog(LOG_WARNING,"failed to start JACK Client \"%s\" [%s]", - (const char *)q->value(0).toString().toUtf8(), - (const char *)q->value(1).toString().toUtf8()); + RDApplication::syslog(rd_config,LOG_WARNING, + "failed to start JACK Client \"%s\" [%s]", + (const char *)q->value(0).toString().toUtf8(), + (const char *)q->value(1).toString().toUtf8()); } sleep(1); } @@ -480,7 +481,7 @@ void MainObject::jackInit(RDStation *station) } } if(jack_card==RD_MAX_CARDS) { - syslog(LOG_INFO,"no more RD cards available"); + RDApplication::syslog(rd_config,LOG_INFO,"no more RD cards available"); return; } QString name=QString().sprintf("rivendell_%d",jack_card); @@ -496,10 +497,11 @@ void MainObject::jackInit(RDStation *station) QProcess *proc=new QProcess(this); proc->start(program,args); if(proc->waitForStarted()) { - syslog(LOG_INFO,"JACK server started"); + RDApplication::syslog(rd_config,LOG_INFO,"JACK server started"); } else { - syslog(LOG_WARNING,"failed to start JACK server"); + RDApplication::syslog(rd_config,LOG_WARNING, + "failed to start JACK server"); } sleep(1); } @@ -518,61 +520,70 @@ void MainObject::jackInit(RDStation *station) if(jack_client==NULL) { if((jackstat&JackInvalidOption)!=0) { fprintf (stderr, "invalid or unsupported JACK option\n"); - syslog(LOG_WARNING,"invalid or unsupported JACK option"); + RDApplication::syslog(rd_config,LOG_WARNING, + "invalid or unsupported JACK option"); } if((jackstat&JackServerError)!=0) { fprintf (stderr, "communication error with the JACK server\n"); - syslog(LOG_WARNING,"communication error with the JACK server"); + RDApplication::syslog(rd_config,LOG_WARNING, + "communication error with the JACK server"); } if((jackstat&JackNoSuchClient)!=0) { fprintf (stderr, "requested JACK client does not exist\n"); - syslog(LOG_WARNING,"requested JACK client does not exist"); + RDApplication::syslog(rd_config,LOG_WARNING, + "requested JACK client does not exist"); } if((jackstat&JackLoadFailure)!=0) { fprintf (stderr, "unable to load internal JACK client\n"); - syslog(LOG_WARNING,"unable to load internal JACK client"); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to load internal JACK client"); } if((jackstat&JackInitFailure)!=0) { fprintf (stderr, "unable to initialize JACK client\n"); - syslog(LOG_WARNING,"unable to initialize JACK client"); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to initialize JACK client"); } if((jackstat&JackShmFailure)!=0) { fprintf (stderr, "unable to access JACK shared memory\n"); - syslog(LOG_WARNING,"unable to access JACK shared memory"); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to access JACK shared memory"); } if((jackstat&JackVersionError)!=0) { fprintf (stderr, "JACK protocol version mismatch\n"); - syslog(LOG_WARNING,"JACK protocol version mismatch"); + RDApplication::syslog(rd_config,LOG_WARNING, + "JACK protocol version mismatch"); } if((jackstat&JackServerStarted)!=0) { fprintf (stderr, "JACK server started\n"); - syslog(LOG_WARNING,"JACK server started"); + RDApplication::syslog(rd_config,LOG_WARNING,"JACK server started"); } if((jackstat&JackServerFailed)!=0) { fprintf (stderr, "unable to communication with JACK server\n"); - syslog(LOG_WARNING,"unable to communicate with JACK server"); + RDApplication::syslog(rd_config,LOG_WARNING, + "unable to communicate with JACK server"); } if((jackstat&JackNameNotUnique)!=0) { fprintf (stderr, "JACK client name not unique\n"); - syslog(LOG_WARNING,"JACK client name not unique"); + RDApplication::syslog(rd_config,LOG_WARNING, + "JACK client name not unique"); } if((jackstat&JackFailure)!=0) { fprintf (stderr, "JACK general failure\n"); - syslog(LOG_WARNING,"JACK general failure"); + RDApplication::syslog(rd_config,LOG_WARNING,"JACK general failure"); } jack_card=-1; fprintf (stderr, "no connection to JACK server\n"); - syslog(LOG_WARNING,"no connection to JACK server"); + RDApplication::syslog(rd_config,LOG_WARNING,"no connection to JACK server"); return; } jack_connected=true; @@ -584,7 +595,7 @@ void MainObject::jackInit(RDStation *station) #else jack_on_shutdown(jack_client,JackShutdown,0); #endif // HAVE_JACK_INFO_SHUTDOWN - syslog(LOG_INFO,"connected to JACK server"); + RDApplication::syslog(rd_config,LOG_INFO,"connected to JACK server"); // // Start JACK Clients @@ -701,7 +712,7 @@ void MainObject::jackInit(RDStation *station) jack_sample_rate=jack_get_sample_rate(jack_client); if(jack_sample_rate!=system_sample_rate) { fprintf (stderr,"JACK sample rate mismatch!\n"); - syslog(LOG_WARNING,"JACK sample rate mismatch!"); + RDApplication::syslog(rd_config,LOG_WARNING,"JACK sample rate mismatch!"); } jack_activated=true; cae_driver[jack_card]=RDStation::Jack; @@ -730,13 +741,15 @@ bool MainObject::jackLoadPlayback(int card,QString wavename,int *stream) { #ifdef JACK if((*stream=GetJackOutputStream())<0) { - syslog(LOG_WARNING,"jackLoadPlayback(%s) GetJackOutputStream():%d <0", + RDApplication::syslog(rd_config,LOG_DEBUG, + "jackLoadPlayback(%s) GetJackOutputStream():%d <0", (const char *)wavename.toUtf8(),*stream); return false; } jack_play_wave[*stream]=new RDWaveFile(wavename); if(!jack_play_wave[*stream]->openWave()) { - syslog(LOG_WARNING,"jackLoadPlayback(%s) openWave() failed to open file", + RDApplication::syslog(rd_config,LOG_DEBUG, + "jackLoadPlayback(%s) openWave() failed to open file", (const char *)wavename.toUtf8()); delete jack_play_wave[*stream]; jack_play_wave[*stream]=NULL; @@ -754,7 +767,8 @@ bool MainObject::jackLoadPlayback(int card,QString wavename,int *stream) break; default: - syslog(LOG_WARNING,"jackLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", + RDApplication::syslog(rd_config,LOG_DEBUG, + "jackLoadPlayback(%s) getFormatTag()%d || getBistsPerSample()%d failed", (const char *) wavename.toUtf8(), jack_play_wave[*stream]->getFormatTag(), jack_play_wave[*stream]->getBitsPerSample()); @@ -948,7 +962,7 @@ bool MainObject::jackLoadRecord(int card,int stream,int coding,int chans, break; default: - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "requested unsupported channel count %d, card: %d, stream: %d", chans,card,stream); delete jack_record_wave[stream]; @@ -976,7 +990,7 @@ bool MainObject::jackLoadRecord(int card,int stream,int coding,int chans, break; default: - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "requested invalid audio encoding %d, card: %d, stream: %d", coding,card,stream); delete jack_record_wave[stream]; @@ -1474,7 +1488,7 @@ void MainObject::WriteJackBuffer(int stream,jack_default_audio_sample_t *buffer, jack_record_wave[stream]->writeWave(mpeg,s); } else { - syslog(LOG_WARNING, + RDApplication::syslog(rd_config,LOG_WARNING, "TwoLAME encode error, card: %d, stream: %d",jack_card,stream); } } @@ -1678,7 +1692,7 @@ void MainObject::JackSessionSetup() QString dest=profile->stringValue("JackSession",dest_tag,"",&dest_ok); while(src_ok&&dest_ok) { if(jack_connect(jack_client,(const char *)src,(const char *)dest)!=0) { - syslog(LOG_WARNING,"unable to connect %s to %s", + RDApplication::syslog(rd_config,LOG_WARNING,"unable to connect %s to %s", (const char *)src.toUtf8(),(const char *)dest.toUtf8()); } count++; diff --git a/cae/cae_server.cpp b/cae/cae_server.cpp index 712519fd..ec708322 100644 --- a/cae/cae_server.cpp +++ b/cae/cae_server.cpp @@ -20,11 +20,12 @@ #include #include -#include #include #include +#include + #include "cae_server.h" // @@ -139,7 +140,8 @@ void CaeServer::sendCommand(const QString &cmd) void CaeServer::sendCommand(int id,const QString &cmd) { #ifdef __CAE_SERVER_LOG_PROTOCOL_MESSAGES - syslog(LOG_DEBUG,"send[%d]: %s",id,(const char *)cmd.toUtf8()); + RDApplication::syslog(cae_config,LOG_DEBUG, + "send[%d]: %s",id,(const char *)cmd.toUtf8()); #endif // __CAE_SERVER_LOG_PROTOCOL_MESSAGES cae_connections.value(id)->socket->write(cmd.toAscii()); } @@ -157,7 +159,8 @@ void CaeServer::newConnectionData() cae_connections[sock->socketDescriptor()]=new CaeServerConnection(sock); - syslog(LOG_DEBUG,"added connection %d",sock->socketDescriptor()); + RDApplication::syslog(cae_config,LOG_DEBUG, + "added connection %d",sock->socketDescriptor()); } @@ -192,7 +195,7 @@ void CaeServer::connectionClosedData(int id) delete cae_connections.value(id); cae_connections.remove(id); - syslog(LOG_DEBUG,"removed connection %d",id); + RDApplication::syslog(cae_config,LOG_DEBUG,"removed connection %d",id); } @@ -206,7 +209,8 @@ bool CaeServer::ProcessCommand(int id,const QString &cmd) return false; } #ifdef __CAE_SERVER_LOG_PROTOCOL_MESSAGES - syslog(LOG_DEBUG,"recv[%d]: %s",id,(const char *)cmd.toUtf8()); + RDApplication::syslog(cae_config,LOG_DEBUG, + "recv[%d]: %s",id,(const char *)cmd.toUtf8()); #endif // __CAE_SERVER_LOG_PROTOCOL_MESSAGES cae_connections.value(id)->accum=""; diff --git a/lib/rdapplication.cpp b/lib/rdapplication.cpp index 3523a76f..81d976fc 100644 --- a/lib/rdapplication.cpp +++ b/lib/rdapplication.cpp @@ -296,6 +296,32 @@ void RDApplication::addTempFile(const QString &pathname) } +void RDApplication::syslog(int priority,const char *fmt,...) const +{ + va_list args; + + va_start(args,fmt); + if((priority&248)==0) { // So custom one-off facility numbers still work + priority=priority|(app_config->syslogFacility()<<3); + } + vsyslog(priority,fmt,args); + va_end(args); +} + + +void RDApplication::syslog(RDConfig *config,int priority,const char *fmt,...) +{ + va_list args; + + va_start(args,fmt); + if((priority&248)==0) { // So custom one-off facility numbers still work + priority=priority|(config->syslogFacility()<<3); + } + vsyslog(priority,fmt,args); + va_end(args); +} + + void RDApplication::userChangedData() { app_user->setName(app_ripc->user()); diff --git a/lib/rdapplication.h b/lib/rdapplication.h index 67116d16..b37817d9 100644 --- a/lib/rdapplication.h +++ b/lib/rdapplication.h @@ -21,6 +21,9 @@ #ifndef RDAPPLICATION_H #define RDAPPLICATION_H +#include +#include + #include #include @@ -61,6 +64,8 @@ class RDApplication : public QObject // void log(RDConfig::LogPriority prio,const QString &msg); bool dropTable(const QString &tbl_name); void addTempFile(const QString &pathname); + void syslog(int priority,const char *fmt,...) const; + static void syslog(RDConfig *config,int priority,const char *fmt,...); private slots: void userChangedData(); diff --git a/lib/rdaudioconvert.cpp b/lib/rdaudioconvert.cpp index 5a634b78..59812e4f 100644 --- a/lib/rdaudioconvert.cpp +++ b/lib/rdaudioconvert.cpp @@ -2,7 +2,7 @@ // // Convert Audio File Formats // -// (C) Copyright 2010-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // 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 @@ -180,7 +180,8 @@ RDAudioConvert::ErrorCode RDAudioConvert::convert() QString err_msg; if(!temp_dir->create(&err_msg)) { delete temp_dir; - syslog(LOG_WARNING,"Could not create %s",(const char *)err_msg.toUtf8()); + rda->syslog(LOG_WARNING,"Could not create %s", + (const char *)err_msg.toUtf8()); return RDAudioConvert::ErrorInternal; } tmpfile1=QString(temp_dir->path())+"/signed32_1.wav"; @@ -828,7 +829,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage1M4A(const QString &dstfile, UpdatePeak((const float*)sample_buffer, frameInfo.samples); if(sf_write_float(sf_dst, (const float*)sample_buffer, frameInfo.samples) != (sf_count_t)frameInfo.samples) { - syslog(LOG_WARNING,"%s",sf_strerror(sf_dst)); + rda->syslog(LOG_WARNING,"%s",sf_strerror(sf_dst)); ret = RDAudioConvert::ErrorInternal; break; } @@ -925,7 +926,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, // memset(&src_info,0,sizeof(src_info)); if((src_sf=sf_open(srcfile,SFM_READ,&src_info))==NULL) { - syslog(LOG_WARNING,"Could not open %s",(const char *)srcfile.toUtf8()); + rda->syslog(LOG_WARNING,"Could not open %s",(const char *)srcfile.toUtf8()); return RDAudioConvert::ErrorInternal; } sf_command(src_sf,SFC_SET_NORM_FLOAT,NULL,SF_FALSE); @@ -936,7 +937,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, dst_info.samplerate=conv_settings->sampleRate(); if((dst_sf=sf_open(dstfile,SFM_WRITE,&dst_info))==NULL) { sf_close(src_sf); - syslog(LOG_WARNING,"Could not open %s",(const char *)dstfile.toUtf8()); + rda->syslog(LOG_WARNING,"Could not open %s",(const char *)dstfile.toUtf8()); return RDAudioConvert::ErrorInternal; } @@ -975,7 +976,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, if((src_state=src_new(conv_src_converter,src_info.channels,&err))==NULL) { sf_close(src_sf); sf_close(dst_sf); - syslog(LOG_WARNING,"%s",src_strerror(err)); + rda->syslog(LOG_WARNING,"%s",src_strerror(err)); return RDAudioConvert::ErrorInternal; } memset(&src_data,0,sizeof(src_data)); @@ -1026,7 +1027,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile, src_data.input_frames=n; if((err=src_process(src_state,&src_data))!=0) { fprintf(stderr,"SRC Error: %s\n",src_strerror(err)); - syslog(LOG_WARNING,"%s",src_strerror(err)); + rda->syslog(LOG_WARNING,"%s",src_strerror(err)); return RDAudioConvert::ErrorInternal; } n=src_data.output_frames_gen; @@ -1146,7 +1147,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Convert(const QString &srcfile, // Open Source File // if((src_sf=sf_open(srcfile,SFM_READ,&src_sf_info))==NULL) { - syslog(LOG_WARNING,"%s",sf_strerror(NULL)); + rda->syslog(LOG_WARNING,"%s",sf_strerror(NULL)); return RDAudioConvert::ErrorInternal; } @@ -1243,7 +1244,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Flac(SNDFILE *src_sf, case FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA: default: delete flac; - syslog(LOG_WARNING,"flac->init() failure"); + rda->syslog(LOG_WARNING,"flac->init() failure"); return RDAudioConvert::ErrorInternal; } @@ -1311,7 +1312,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Vorbis(SNDFILE *src_sf, conv_settings->quality())) { case OV_EFAULT: default: - syslog(LOG_WARNING,"vorbis_encode_init_vbr() failure"); + rda->syslog(LOG_WARNING,"vorbis_encode_init_vbr() failure"); return RDAudioConvert::ErrorInternal; case OV_EINVAL: @@ -1503,7 +1504,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer3(SNDFILE *src_sf, if((lameopts=lame_init())==NULL) { lame_close(lameopts); ::close(dst_fd); - syslog(LOG_WARNING,"lame_init() failure"); + rda->syslog(LOG_WARNING,"lame_init() failure"); return RDAudioConvert::ErrorInternal; } lame_set_mode(lameopts,mpeg_mode); @@ -1642,7 +1643,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2Wav(SNDFILE *src_sf, // if((lameopts=twolame_init())==NULL) { wave->closeWave(); - syslog(LOG_WARNING,"twolame_init() failure"); + rda->syslog(LOG_WARNING,"twolame_init() failure"); return RDAudioConvert::ErrorInternal; } twolame_set_mode(lameopts,mpeg_mode); @@ -1747,7 +1748,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2(SNDFILE *src_sf, // if((lameopts=twolame_init())==NULL) { ::close(dst_fd); - syslog(LOG_WARNING,"twolame_init() failure"); + rda->syslog(LOG_WARNING,"twolame_init() failure"); return RDAudioConvert::ErrorInternal; } twolame_set_mode(lameopts,mpeg_mode); diff --git a/lib/rdaudioimport.cpp b/lib/rdaudioimport.cpp index d11a7446..fea9053d 100644 --- a/lib/rdaudioimport.cpp +++ b/lib/rdaudioimport.cpp @@ -219,7 +219,7 @@ RDAudioImport::ErrorCode RDAudioImport::runImport(const QString &username, return RDAudioImport::ErrorUrlInvalid; } /* - syslog(LOG_NOTICE,"CURL code: %d [%s]\n",curl_err, + rda->syslog(LOG_NOTICE,"CURL code: %d [%s]\n",curl_err, curl_easy_strerror(curl_err)); */ diff --git a/lib/rdcae.cpp b/lib/rdcae.cpp index 241fc3ec..cc58fb1f 100644 --- a/lib/rdcae.cpp +++ b/lib/rdcae.cpp @@ -2,7 +2,7 @@ // // Connection to the Rivendell Core Audio Engine // -// (C) Copyright 2002-2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -161,7 +162,8 @@ bool RDCae::loadPlay(int card,QString name,int *stream,int *handle) count++; } if(count>1000) { - syslog(LOG_ERR,"*** LoadPlay: CAE took %d mS to return stream for %s ***", + rda->syslog(LOG_ERR, + "*** LoadPlay: CAE took %d mS to return stream for %s ***", count,(const char *)name); } cae_handle[card][*stream]=*handle; @@ -510,8 +512,8 @@ void RDCae::DispatchCommand(RDCmdCache *cmd) int handle=GetHandle(cmd->arg(4)); int card=CardNumber(cmd->arg(1)); int stream=StreamNumber(cmd->arg(3)); - syslog(LOG_ERR,"*** RDCae::DispatchCommand: received unhandled play stream from CAE, handle=%d, card=%d, stream=%d, name=\"%s\" ***", - handle,card,stream,cmd->arg(2)); + rda->syslog(LOG_ERR,"*** RDCae::DispatchCommand: received unhandled play stream from CAE, handle=%d, card=%d, stream=%d, name=\"%s\" ***", + handle,card,stream,cmd->arg(2)); unloadPlay(handle); } diff --git a/lib/rdcart.cpp b/lib/rdcart.cpp index 27fbfae5..cdfa146e 100644 --- a/lib/rdcart.cpp +++ b/lib/rdcart.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Cart. // -// (C) Copyright 2002-2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -89,9 +90,8 @@ bool RDCart::selectCut(QString *cut,const QTime &time) const if(!exists()) { ret=(*cut==""); *cut=""; - syslog(LOG_USER|LOG_WARNING, - "RDCart::selectCut(): cart doesn't exist, CUT=%s", - (const char *)cut); + rda->syslog(LOG_DEBUG, + "RDCart::selectCut(): cart doesn't exist, CUT=%s",(const char *)cut); return ret; } diff --git a/lib/rddb.cpp b/lib/rddb.cpp index 7e5a62ca..b41b4e5b 100644 --- a/lib/rddb.cpp +++ b/lib/rddb.cpp @@ -3,7 +3,7 @@ // Database driver with automatic reconnect // // (C) Copyright 2007 Dan Mills -// (C) Copyright 2018 Fred Gleason +// (C) Copyright 2018-2019 Fred Gleason // // 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,6 +34,7 @@ #include #include +#include "rdapplication.h" #include "rddb.h" #include "rddbheartbeat.h" @@ -58,7 +59,7 @@ RDSqlQuery::RDSqlQuery (const QString &query,bool reconnect): } fprintf(stderr,"%s\n",(const char *)err); - syslog(LOG_ERR,(const char *)err); + rda->syslog(LOG_ERR,(const char *)err); } if(isActive()) { @@ -83,7 +84,7 @@ RDSqlQuery::RDSqlQuery (const QString &query,bool reconnect): +"["+lastError().text()+"]: "+query; fprintf(stderr,"%s\n",(const char *)err); - syslog(LOG_ERR,(const char *)err); + rda->syslog(LOG_ERR,(const char *)err); } } diff --git a/lib/rddelete.cpp b/lib/rddelete.cpp index 93efb6a3..4a303870 100644 --- a/lib/rddelete.cpp +++ b/lib/rddelete.cpp @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -62,7 +63,7 @@ int DeleteErrorCallback(CURL *curl,curl_infotype type,char *msg,size_t size, } memset(&str,0,size+1); memcpy(str,msg,size); - syslog(LOG_DEBUG,"CURL MSG: %s",str); + rda->syslog(LOG_DEBUG,"CURL MSG: %s",str); return 0; } @@ -94,7 +95,7 @@ RDDelete::ErrorCode RDDelete::runDelete(const QString &username, QString xml=""; if((curl=curl_easy_init())==NULL) { - syslog(LOG_ERR,"unable to initialize curl library\n"); + rda->syslog(LOG_ERR,"unable to initialize curl library\n"); return RDDelete::ErrorInternal; } strncpy(urlstr,(const char *)(conv_target_url.protocol()+"://"+ @@ -160,7 +161,7 @@ RDDelete::ErrorCode RDDelete::runDelete(const QString &username, break; } if(log_debug) { - syslog(LOG_NOTICE,curl_easy_strerror(err)); + rda->syslog(LOG_NOTICE,curl_easy_strerror(err)); } curl_slist_free_all(cmds); curl_easy_cleanup(curl); diff --git a/lib/rddownload.cpp b/lib/rddownload.cpp index b0e77194..d131287c 100644 --- a/lib/rddownload.cpp +++ b/lib/rddownload.cpp @@ -2,7 +2,7 @@ // // Download a File // -// (C) Copyright 2010,2016-2017 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // 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,6 +31,7 @@ #include #include +#include #include #include @@ -63,7 +64,7 @@ int DownloadErrorCallback(CURL *curl,curl_infotype type,char *msg,size_t size, } memset(&str,0,size+1); memcpy(str,msg,size); - syslog(LOG_DEBUG,"CURL MSG: %s",str); + rda->syslog(LOG_DEBUG,"CURL MSG: %s",str); return 0; } @@ -189,8 +190,8 @@ RDDownload::ErrorCode RDDownload::runDownload(const QString &username, break; default: - syslog(LOG_ERR,"Unknown CURL Error [%d]: %s", - curl_err,curl_easy_strerror(curl_err)); + rda->syslog(LOG_ERR,"Unknown CURL Error [%d]: %s", + curl_err,curl_easy_strerror(curl_err)); ret=RDDownload::ErrorUnspecified; } if(user!=NULL) { @@ -199,9 +200,9 @@ RDDownload::ErrorCode RDDownload::runDownload(const QString &username, delete user; } if((curl_err!=CURLE_OK)&&log_debug) { - syslog(LOG_WARNING,"CURL download failed: url: %s username: %s", - (const char *)conv_src_url.toString(), - (const char *)username); + rda->syslog(LOG_WARNING,"CURL download failed: url: %s username: %s", + (const char *)conv_src_url.toString(), + (const char *)username); } curl_easy_cleanup(curl); fclose(f); diff --git a/lib/rdlivewire.cpp b/lib/rdlivewire.cpp index 1aa6498e..bbae2cfa 100644 --- a/lib/rdlivewire.cpp +++ b/lib/rdlivewire.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -424,11 +425,11 @@ void RDLiveWire::errorData(QAbstractSocket::SocketError err) break; default: - syslog(LOG_WARNING, - "socket error on connection to LiveWire node at %s:%d: %s", - (const char *)live_hostname, - live_tcp_port, - (const char *)RDSocketStrings(err)); + rda->syslog(LOG_WARNING, + "socket error on connection to LiveWire node at %s:%d: %s", + (const char *)live_hostname, + live_tcp_port, + (const char *)RDSocketStrings(err)); break; } } diff --git a/lib/rdlog_line.cpp b/lib/rdlog_line.cpp index 49b9b5a4..b87781d0 100644 --- a/lib/rdlog_line.cpp +++ b/lib/rdlog_line.cpp @@ -2,7 +2,7 @@ // // A container class for a Rivendell Log Line. // -// (C) Copyright 2002-2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -22,6 +22,7 @@ #include +#include "rdapplication.h" #include "rddb.h" #include "rdconf.h" #include "rd.h" @@ -1590,7 +1591,9 @@ RDLogLine::State RDLogLine::setEvent(int mach,RDLogLine::TransType next_type, cart=new RDCart(log_cart_number); if(!cart->exists()) { delete cart; - syslog(LOG_USER|LOG_WARNING,"RDLogLine::setEvent(): no such cart, CART=%06u",log_cart_number); + rda->syslog(LOG_USER|LOG_DEBUG, + "RDLogLine::setEvent(): no such cart, CART=%06u", + log_cart_number); log_state=RDLogLine::NoCart; return RDLogLine::NoCart; } @@ -1621,14 +1624,18 @@ RDLogLine::State RDLogLine::setEvent(int mach,RDLogLine::TransType next_type, if(!q->first()) { delete q; delete cart; - syslog(LOG_USER|LOG_WARNING,"RDLogLine::setEvent(): no cut record found, SQL=%s",(const char *)sql); + rda->syslog(LOG_DEBUG, + "RDLogLine::setEvent(): no cut record found, SQL=%s", + (const char *)sql); log_state=RDLogLine::NoCut; return RDLogLine::NoCut; } if(q->value(0).toInt()==0) { delete q; delete cart; - syslog(LOG_USER|LOG_WARNING,"RDLogLine::setEvent(): zero length cut audio, SQL=%s",(const char *)sql); + rda->syslog(LOG_DEBUG, + "RDLogLine::setEvent(): zero length cut audio, SQL=%s", + (const char *)sql); log_state=RDLogLine::NoCut; return RDLogLine::NoCut; } diff --git a/lib/rdloglock.cpp b/lib/rdloglock.cpp index e9f55fa3..18be68e9 100644 --- a/lib/rdloglock.cpp +++ b/lib/rdloglock.cpp @@ -2,7 +2,7 @@ // // Log locking routines for Rivendell // -// (C) Copyright 2017 Fred Gleason +// (C) Copyright 2017-2019 Fred Gleason // // 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 @@ -22,6 +22,7 @@ #include +#include "rdapplication.h" #include "rddb.h" #include "rdescape_string.h" #include "rdloglock.h" @@ -145,8 +146,8 @@ void RDLogLock::updateLock(const QString &log_name,const QString &guid) "LOCK_GUID=\""+RDEscapeString(guid)+"\""; q=new RDSqlQuery(sql); if(q->numRowsAffected()==0) { - syslog(LOG_WARNING,"lock on log \"%s\" has evaporated!", - (const char *)log_name); + rda->syslog(LOG_WARNING,"lock on log \"%s\" has evaporated!", + (const char *)log_name); } delete q; } diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index 31e3f74b..22ac91e8 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -1895,9 +1895,9 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, logline->setStatus(RDLogLine::Playing); playStateChangedData(playdeck->id(),RDPlayDeck::Finished); logline->setStatus(RDLogLine::Finished); - syslog(LOG_WARNING, - "log engine: RDLogPlay::StartEvent(): no audio,CUT=%s", - (const char *)logline->cutName().toUtf8()); + rda->syslog(LOG_WARNING, + "log engine: RDLogPlay::StartEvent(): no audio,CUT=%s", + (const char *)logline->cutName().toUtf8()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine()); return false; } @@ -1911,7 +1911,7 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, playdeck->stream(), playdeck->port()); if((int)logline->playPosition()>logline->effectiveLength()) { - syslog(LOG_DEBUG,"log engine: *** position out of bounds: Line: %d Cart: %d Pos: %d ***",line,logline->cartNumber(),logline->playPosition()); + rda->syslog(LOG_DEBUG,"log engine: *** position out of bounds: Line: %d Cart: %d Pos: %d ***",line,logline->cartNumber(),logline->playPosition()); logline->setPlayPosition(0); } playdeck->play(logline->playPosition(),-1,-1,duck_length); @@ -1936,7 +1936,7 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, */ emit channelStarted(play_id,playdeck->channel(), playdeck->card(),playdeck->port()); - syslog(LOG_DEBUG,"log engine: started audio cart: Line: %d Cart: %u Cut: %u Pos: %d Card: %d Stream: %d Port: %d", + rda->syslog(LOG_DEBUG,"log engine: started audio cart: Line: %d Cart: %u Cut: %u Pos: %d Card: %d Stream: %d Port: %d", line,logline->cartNumber(), playdeck->cut()->cutNumber(), logline->playPosition(), @@ -1991,15 +1991,16 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, RDAirPlayConf::TrafficMacro,play_onair_flag); FinishEvent(line); emit transportChanged(); - syslog(LOG_DEBUG, - "log engine: asynchronously executed macro cart: Line: %d Cart: %u", - line,logline->cartNumber()); + rda->syslog(LOG_DEBUG, + "log engine: asynchronously executed macro cart: Line: %d Cart: %u", + line,logline->cartNumber()); } else { play_macro_deck->load(logline->cartNumber()); play_macro_deck->setLine(line); - syslog(LOG_DEBUG,"log engine: started macro cart: Line: %d Cart: %u", - line,logline->cartNumber()); + rda->syslog(LOG_DEBUG, + "log engine: started macro cart: Line: %d Cart: %u", + line,logline->cartNumber()); play_macro_deck->exec(); } break; @@ -2062,8 +2063,8 @@ bool RDLogPlay::StartEvent(int line,RDLogLine::TransType trans_type, } play_macro_deck->setLine(line); play_macro_deck->exec(); - syslog(LOG_DEBUG,"log engine: chained to log: Line: %d Log: %s", - line,(const char *)logline->markerLabel()); + rda->syslog(LOG_DEBUG,"log engine: chained to log: Line: %d Log: %s", + line,(const char *)logline->markerLabel()); break; default: @@ -2139,15 +2140,15 @@ void RDLogPlay::CleanupEvent(int id) } playdeck=(RDPlayDeck *)logline->playDeck(); if(playdeck->cut()==NULL) { - syslog(LOG_DEBUG,"log engine: event failed: Line: %d Cart: %u",line, - logline->cartNumber()); + rda->syslog(LOG_DEBUG,"log engine: event failed: Line: %d Cart: %u",line, + logline->cartNumber()); } else { - syslog(LOG_DEBUG,"log engine: finished event: Line: %d Cart: %u Cut: %u Card: %d Stream: %d Port: %d", - line,logline->cartNumber(), - playdeck->cut()->cutNumber(), - playdeck->card(), - playdeck->stream(),playdeck->port()); + rda->syslog(LOG_DEBUG,"log engine: finished event: Line: %d Cart: %u Cut: %u Card: %d Stream: %d Port: %d", + line,logline->cartNumber(), + playdeck->cut()->cutNumber(), + playdeck->card(), + playdeck->stream(),playdeck->port()); } RDLogLine *prev_logline; if((prev_logline=logLine(line-1))==NULL) { diff --git a/lib/rdpam.cpp b/lib/rdpam.cpp index 609ac5b4..ec3540b3 100644 --- a/lib/rdpam.cpp +++ b/lib/rdpam.cpp @@ -2,7 +2,7 @@ // // Authenticate a PAM name. // -// (C) Copyright 2010,2016 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // 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 @@ -29,7 +29,8 @@ #include -#include +#include "rdapplication.h" +#include "rdpam.h" int RDPamCallback(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr) @@ -47,12 +48,12 @@ int RDPamCallback(int num_msg, const struct pam_message **msg, break; case PAM_PROMPT_ECHO_ON: - syslog(LOG_ERR,"unhandled PAM request: %s",msg[i]->msg); + rda->syslog(LOG_ERR,"unhandled PAM request: %s",msg[i]->msg); break; case PAM_ERROR_MSG: case PAM_TEXT_INFO: - syslog(LOG_NOTICE,"PAM message: %s",msg[i]->msg); + rda->syslog(LOG_NOTICE,"PAM message: %s",msg[i]->msg); break; } } @@ -79,7 +80,7 @@ bool RDPam::authenticate(const QString &username,const QString &token) conv.conv=RDPamCallback; conv.appdata_ptr=(RDPam *)this; if((err=pam_start(system_pam_service,username,&conv,&pamh))!=PAM_SUCCESS) { - syslog(LOG_NOTICE,"PAM Error: %s",pam_strerror(pamh,err)); + rda->syslog(LOG_NOTICE,"PAM Error: %s",pam_strerror(pamh,err)); pam_end(pamh,err); CleanupPam(); return false; diff --git a/lib/rdpodcast.cpp b/lib/rdpodcast.cpp index 4943eb7d..5b4277ee 100644 --- a/lib/rdpodcast.cpp +++ b/lib/rdpodcast.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Podcast // -// (C) Copyright 2002-2007,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -22,11 +22,12 @@ #include -#include -#include -#include -#include -#include +#include "rdapplication.h" +#include "rddb.h" +#include "rdpodcast.h" +#include "rdconf.h" +#include "rdescape_string.h" +#include "rdurl.h" // // CURL Callbacks @@ -44,7 +45,7 @@ int PodcastErrorCallback(CURL *curl,curl_infotype type,char *msg,size_t size, } memset(&str,0,size+1); memcpy(str,msg,size); - syslog(LOG_DEBUG,"CURL MSG: %s",str); + rda->syslog(LOG_DEBUG,"CURL MSG: %s",str); return 0; } @@ -307,7 +308,7 @@ bool RDPodcast::removeAudio(RDFeed *feed,QString *err_text,bool log_debug) const char userpwd[256]; if((curl=curl_easy_init())==NULL) { - syslog(LOG_ERR,"unable to initialize curl library\n"); + rda->syslog(LOG_ERR,"unable to initialize curl library\n"); return false; } url=new Q3Url(feed->purgeUrl()); diff --git a/lib/rdripc.cpp b/lib/rdripc.cpp index 015ff461..5cd039a5 100644 --- a/lib/rdripc.cpp +++ b/lib/rdripc.cpp @@ -2,7 +2,7 @@ // // Connection to the Rivendell Interprocess Communication Daemon // -// (C) Copyright 2002-2003,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -198,7 +198,7 @@ void RDRipc::reloadHeartbeat() void RDRipc::errorData(QAbstractSocket::SocketError err) { - syslog(LOG_WARNING,"received socket error %d",err); + rda->syslog(LOG_DEBUG,"received socket error %d",err); } diff --git a/lib/rdstatus.cpp b/lib/rdstatus.cpp index b81ef2e9..1f4dcba2 100644 --- a/lib/rdstatus.cpp +++ b/lib/rdstatus.cpp @@ -2,7 +2,7 @@ // // Functions for getting system status. // -// (C) Copyright 2016-2018 Fred Gleason +// (C) Copyright 2016-2019 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License @@ -27,6 +27,7 @@ #include #include +#include "rdapplication.h" #include "rdstatus.h" bool RDAudioStoreValid(RDConfig *config) @@ -36,7 +37,7 @@ bool RDAudioStoreValid(RDConfig *config) bool ret=false; if((f=fopen("/etc/mtab","r"))==NULL) { - syslog(LOG_CRIT,"unable to read mtab(5) [%s]",strerror(errno)); + rda->syslog(LOG_ERR,"unable to read mtab(5) [%s]",strerror(errno)); return false; } if(config->audioStoreMountSource().isEmpty()) { // Audio store is local diff --git a/lib/rdupload.cpp b/lib/rdupload.cpp index df85d56d..85dbfadb 100644 --- a/lib/rdupload.cpp +++ b/lib/rdupload.cpp @@ -2,7 +2,7 @@ // // Upload a File // -// (C) Copyright 2010,2016-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // 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 @@ -66,7 +66,7 @@ int UploadErrorCallback(CURL *curl,curl_infotype type,char *msg,size_t size, } memset(&str,0,size+1); memcpy(str,msg,size); - syslog(LOG_DEBUG,"CURL MSG: %s",str); + rda->syslog(LOG_DEBUG,"CURL MSG: %s",str); return 0; } @@ -186,8 +186,8 @@ RDUpload::ErrorCode RDUpload::runUpload(const QString &username, break; default: - syslog(LOG_ERR,"Unknown CURL Error [%d]: %s", - curl_err,curl_easy_strerror(curl_err)); + rda->syslog(LOG_ERR,"Unknown CURL Error [%d]: %s", + curl_err,curl_easy_strerror(curl_err)); ret=RDUpload::ErrorUnspecified; break; } @@ -197,8 +197,8 @@ RDUpload::ErrorCode RDUpload::runUpload(const QString &username, delete user; } if((curl_err!=CURLE_OK)&&log_debug) { - syslog(LOG_WARNING,"CURL upload failed: url: %s username: %s", - (const char *)conv_dst_url.toString(), + rda->syslog(LOG_WARNING,"CURL upload failed: url: %s username: %s", + (const char *)conv_dst_url.toString(), (const char *)username); } curl_easy_cleanup(curl); diff --git a/rdairplay/rdairplay.cpp b/rdairplay/rdairplay.cpp index 5028249e..b987cdac 100644 --- a/rdairplay/rdairplay.cpp +++ b/rdairplay/rdairplay.cpp @@ -2,7 +2,7 @@ // // The On Air Playout Utility for Rivendell. // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -120,9 +120,6 @@ MainWidget::MainWidget(QWidget *parent) QMessageBox::critical(this,"RDAirPlay - "+tr("Error"),err_msg); exit(1); } - // connect(RDDbStatus(),SIGNAL(logText(RDConfig::LogPriority,const QString &)), - // this,SLOT(logLine(RDConfig::LogPriority,const QString &))); - // // Read Command Options @@ -793,7 +790,7 @@ MainWidget::MainWidget(QWidget *parent) } } - syslog(LOG_INFO,"RDAirPlay started"); + rda->syslog(LOG_INFO,"RDAirPlay started"); } @@ -1263,7 +1260,7 @@ void MainWidget::logReloadedData(int log) switch(log) { case 0: air_log_button[0]->setText(tr("Main Log")+"\n["+labelname+"]"); - syslog(LOG_INFO,"loaded log '%s' in Main Log", + rda->syslog(LOG_INFO,"loaded log '%s' in Main Log", (const char *)air_log[0]->logName().toUtf8()); if(air_log[0]->logName().isEmpty()) { if(air_panel!=NULL) { @@ -1279,13 +1276,13 @@ void MainWidget::logReloadedData(int log) case 1: air_log_button[1]->setText(tr("Aux 1 Log")+"\n["+labelname+"]"); - syslog(LOG_INFO,"loaded log '%s' in Aux 1 Log", + rda->syslog(LOG_INFO,"loaded log '%s' in Aux 1 Log", (const char *)air_log[1]->logName().toUtf8()); break; case 2: air_log_button[2]->setText(tr("Aux 2 Log")+"\n["+labelname+"]"); - syslog(LOG_INFO,"loaded log '%s' in Aux Log 2", + rda->syslog(LOG_INFO,"loaded log '%s' in Aux Log 2", (const char *)air_log[2]->logName().toUtf8()); break; } @@ -1330,8 +1327,8 @@ void MainWidget::logReloadedData(int log) void MainWidget::userData() { - syslog(LOG_INFO,"user changed to '%s'", - (const char *)rda->ripc()->user().toUtf8()); + rda->syslog(LOG_INFO,"user changed to '%s'", + (const char *)rda->ripc()->user().toUtf8()); SetCaption(); // @@ -2043,7 +2040,7 @@ void MainWidget::closeEvent(QCloseEvent *e) return; } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); - syslog(LOG_INFO,"RDAirPlay exiting"); + rda->syslog(LOG_INFO,"RDAirPlay exiting"); air_lock->unlock(); exit(0); } @@ -2057,7 +2054,7 @@ void MainWidget::closeEvent(QCloseEvent *e) delete air_log[i]; } rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean); - syslog(LOG_INFO,"RDAirPlay exiting"); + rda->syslog(LOG_INFO,"RDAirPlay exiting"); air_lock->unlock(); exit(0); } @@ -2153,7 +2150,7 @@ void MainWidget::SetManualMode(int mach) air_button_list->setOpMode(RDAirPlayConf::Manual); air_post_counter->setDisabled(true); } - syslog(LOG_INFO,"log machine %d mode set to MANUAL",mach+1); + rda->syslog(LOG_INFO,"log machine %d mode set to MANUAL",mach+1); } @@ -2177,7 +2174,7 @@ void MainWidget::SetAutoMode(int mach) air_button_list->setOpMode(RDAirPlayConf::Auto); air_post_counter->setEnabled(true); } - syslog(LOG_INFO,"log machine %d mode set to AUTO",mach+1); + rda->syslog(LOG_INFO,"log machine %d mode set to AUTO",mach+1); } @@ -2201,7 +2198,7 @@ void MainWidget::SetLiveAssistMode(int mach) air_button_list->setOpMode(RDAirPlayConf::LiveAssist); air_post_counter->setDisabled(true); } - syslog(LOG_INFO,"log machine %d mode set to LIVE ASSIST",mach+1); + rda->syslog(LOG_INFO,"log machine %d mode set to LIVE ASSIST",mach+1); } diff --git a/rdcatchd/batch.cpp b/rdcatchd/batch.cpp index c54841dc..16126596 100644 --- a/rdcatchd/batch.cpp +++ b/rdcatchd/batch.cpp @@ -2,7 +2,7 @@ // // Batch Routines for the Rivendell netcatcher daemon // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -62,7 +62,7 @@ void MainObject::catchConnectedData(int serial,bool state) { if(!state) { - syslog(LOG_WARNING,"unable to connect to rdcatchd(8) daemon"); + rda->syslog(LOG_ERR,"unable to connect to rdcatchd(8) daemon"); exit(256); } @@ -103,7 +103,8 @@ void MainObject::RunBatch(RDCmdSwitch *cmd) struct sched_param sp; memset(&sp,0,sizeof(sp)); if(sched_setscheduler(getpid(),SCHED_BATCH,&sp)!=0) { - syslog(LOG_DEBUG,"unable to set batch permissions, %s",strerror(errno)); + rda->syslog(LOG_DEBUG,"unable to set batch permissions, %s", + strerror(errno)); } // @@ -176,10 +177,10 @@ void MainObject::RunDownload(CatchEvent *evt) // Execute Download // evt->setTempName(BuildTempName(evt,"download")); - syslog(LOG_INFO,"starting download of %s to %s, id=%d", - (const char *)evt->resolvedUrl().toUtf8(), - (const char *)evt->tempName().toUtf8(), - evt->id()); + rda->syslog(LOG_INFO,"starting download of %s to %s, id=%d", + (const char *)evt->resolvedUrl().toUtf8(), + (const char *)evt->tempName().toUtf8(), + evt->id()); RDDownload *conv=new RDDownload(rda->config(),this); conv->setSourceUrl(RDUrlEscape(evt->resolvedUrl())); @@ -194,20 +195,20 @@ void MainObject::RunDownload(CatchEvent *evt) switch((conv_err=conv->runDownload(url_username,url_password, rda->config()->logXloadDebugData()))) { case RDDownload::ErrorOk: - syslog(LOG_INFO,"finished download of %s to %s, id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)evt->resolvedUrl().toUtf8(), - evt->id()); + rda->syslog(LOG_INFO,"finished download of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); break; case RDDownload::ErrorInternal: catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDDownload::errorText(conv_err)); qApp->processEvents(); - syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)RDDownload::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDDownload::errorText(conv_err).toUtf8(), + evt->id()); delete conv; unlink(evt->tempName()); exit(0); @@ -216,10 +217,10 @@ void MainObject::RunDownload(CatchEvent *evt) catch_connect->setExitCode(evt->id(),RDRecording::ServerError, RDDownload::errorText(conv_err)); qApp->processEvents(); - syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)RDDownload::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"download of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDDownload::errorText(conv_err).toUtf8(), + evt->id()); delete conv; unlink(evt->tempName()); exit(0); @@ -233,8 +234,8 @@ void MainObject::RunDownload(CatchEvent *evt) catch_connect->setExitCode(evt->id(),RDRecording::Ok,tr("OK")); qApp->processEvents(); } - syslog(LOG_INFO,"deleting file %s, id=%d", - (const char *)evt->tempName().toUtf8(),evt->id()); + rda->syslog(LOG_INFO,"deleting file %s, id=%d", + (const char *)evt->tempName().toUtf8(),evt->id()); unlink(evt->tempName()); } @@ -254,21 +255,21 @@ void MainObject::RunUpload(CatchEvent *evt) // evt->setTempName(BuildTempName(evt,"upload")); evt->setDeleteTempFile(true); - syslog(LOG_INFO,"started export of cut %s to %s, id=%d", - (const char *)evt->cutName().toUtf8(), - (const char *)evt->tempName().toUtf8(),evt->id()); + rda->syslog(LOG_INFO,"started export of cut %s to %s, id=%d", + (const char *)evt->cutName().toUtf8(), + (const char *)evt->tempName().toUtf8(),evt->id()); if(!Export(evt)) { - syslog(LOG_WARNING,"export of cut %s returned an error, id=%d", - (const char *)evt->cutName().toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"export of cut %s returned an error, id=%d", + (const char *)evt->cutName().toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::InternalError, tr("Export Error")); qApp->processEvents(); return; } - syslog(LOG_INFO,"finished export of cut %s to %s, id=%d", - (const char *)evt->cutName().toUtf8(), - (const char *)evt->tempName().toUtf8(),evt->id()); + rda->syslog(LOG_INFO,"finished export of cut %s to %s, id=%d", + (const char *)evt->cutName().toUtf8(), + (const char *)evt->tempName().toUtf8(),evt->id()); // // Load Podcast Parameters @@ -287,10 +288,10 @@ void MainObject::RunUpload(CatchEvent *evt) // // Execute Upload // - syslog(LOG_INFO,"starting upload of %s to %s, id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)evt->resolvedUrl().toUtf8(), - evt->id()); + rda->syslog(LOG_INFO,"starting upload of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); RDUpload *conv=new RDUpload(this); conv->setSourceFile(evt->tempName()); conv->setDestinationUrl(evt->resolvedUrl()); @@ -306,30 +307,30 @@ void MainObject::RunUpload(CatchEvent *evt) case RDUpload::ErrorOk: catch_connect->setExitCode(evt->id(),RDRecording::Ok,tr("Ok")); qApp->processEvents(); - syslog(LOG_INFO,"finished upload of %s to %s, id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)evt->resolvedUrl().toUtf8(), - evt->id()); + rda->syslog(LOG_INFO,"finished upload of %s to %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->resolvedUrl().toUtf8(), + evt->id()); break; case RDUpload::ErrorInternal: catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDUpload::errorText(conv_err)); qApp->processEvents(); - syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)RDUpload::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDUpload::errorText(conv_err).toUtf8(), + evt->id()); break; default: catch_connect->setExitCode(evt->id(),RDRecording::ServerError, RDUpload::errorText(conv_err)); qApp->processEvents(); - syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)RDUpload::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"upload of %s returned an error: \"%s\", id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)RDUpload::errorText(conv_err).toUtf8(), + evt->id()); break; } delete conv; @@ -342,7 +343,8 @@ void MainObject::RunUpload(CatchEvent *evt) } if(evt->deleteTempFile()) { unlink(evt->tempName()); - syslog(LOG_INFO,"deleted file %s",(const char *)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()); @@ -357,8 +359,8 @@ bool MainObject::Export(CatchEvent *evt) RDCut *cut=new RDCut(evt->cutName()); if(!cut->exists()) { - syslog(LOG_WARNING,"cut not found: %s, id: %d", - (const char *)evt->cutName().toUtf8(),evt->id()); + rda->syslog(LOG_WARNING,"cut not found: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); delete cut; return false; } @@ -388,9 +390,9 @@ bool MainObject::Export(CatchEvent *evt) break; default: - syslog(LOG_WARNING,"export error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"export error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); ret=false; break; } @@ -412,8 +414,8 @@ bool MainObject::Import(CatchEvent *evt) RDCut *cut=new RDCut(evt->cutName()); if(!cut->exists()) { - syslog(LOG_WARNING,"cut not found: %s, id: %d", - (const char *)evt->cutName().toUtf8(),evt->id()); + rda->syslog(LOG_WARNING,"cut not found: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::NoCut,tr("No such cut")); qApp->processEvents(); delete cut; @@ -421,8 +423,8 @@ bool MainObject::Import(CatchEvent *evt) } RDWaveFile *wave=new RDWaveFile(evt->tempName()); if(!wave->openWave()) { - syslog(LOG_ERR,"unknown file format: %s, id: %d", - (const char *)evt->cutName().toUtf8(),evt->id()); + rda->syslog(LOG_ERR,"unknown file format: %s, id: %d", + (const char *)evt->cutName().toUtf8(),evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::UnknownFormat, tr("Unknown Format")); qApp->processEvents(); @@ -455,9 +457,9 @@ bool MainObject::Import(CatchEvent *evt) settings->setSampleRate(rda->system()->sampleRate()); settings->setBitRate(evt->bitrate()); settings->setNormalizationLevel(evt->normalizeLevel()/100); - syslog(LOG_INFO,"started import of %s to cut %s, id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)evt->cutName().toUtf8(), + rda->syslog(LOG_INFO,"started import of %s to cut %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->cutName().toUtf8(), evt->id()); conv->setDestinationSettings(settings); switch((conv_err=conv->convert())) { @@ -467,9 +469,9 @@ bool MainObject::Import(CatchEvent *evt) break; case RDAudioConvert::ErrorFormatNotSupported: - syslog(LOG_WARNING,"import error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"import error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::UnknownFormat, RDAudioConvert::errorText(conv_err)); qApp->processEvents(); @@ -477,9 +479,9 @@ bool MainObject::Import(CatchEvent *evt) break; default: - syslog(LOG_WARNING,"import error: %s, id: %d", - (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), - evt->id()); + rda->syslog(LOG_WARNING,"import error: %s, id: %d", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + evt->id()); catch_connect->setExitCode(evt->id(),RDRecording::InternalError, RDAudioConvert::errorText(conv_err)); qApp->processEvents(); @@ -490,14 +492,14 @@ bool MainObject::Import(CatchEvent *evt) cart->setMetadata(conv->sourceWaveData()); cut->setMetadata(conv->sourceWaveData()); } - syslog(LOG_INFO,"completed import of %s to cut %s, id=%d", - (const char *)evt->tempName().toUtf8(), - (const char *)evt->cutName().toUtf8(), - evt->id()); + rda->syslog(LOG_INFO,"completed import of %s to cut %s, id=%d", + (const char *)evt->tempName().toUtf8(), + (const char *)evt->cutName().toUtf8(), + evt->id()); if(evt->deleteTempFile()) { unlink(evt->tempName()); - syslog(LOG_DEBUG,"deleted file \"%s\"", - (const char *)evt->tempName().toUtf8()); + rda->syslog(LOG_DEBUG,"deleted file \"%s\"", + (const char *)evt->tempName().toUtf8()); } delete settings; delete conv; diff --git a/rdcatchd/event_player.cpp b/rdcatchd/event_player.cpp index c3faf23e..e54c9c05 100644 --- a/rdcatchd/event_player.cpp +++ b/rdcatchd/event_player.cpp @@ -2,7 +2,7 @@ // // A player class for Deck Events // -// (C) Copyright 2016 Fred Gleason +// (C) Copyright 2016-2019 Fred Gleason // // 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,8 +20,9 @@ #include -#include -#include +#include "rdapplication.h" +#include "rddb.h" +#include "rdescape_string.h" #include "event_player.h" @@ -100,7 +101,8 @@ void EventPlayer::timeoutData() // Dispatch current event // if(event_numbers[event_current_event]>(int)event_deck_events.size()) { - syslog(LOG_ERR,"playout cut event referenced non-existent deck event"); + rda->syslog(LOG_ERR, + "playout cut event referenced non-existent deck event"); return; } emit runCart(event_channel,event_numbers[event_current_event], diff --git a/rdcatchd/rdcatchd.cpp b/rdcatchd/rdcatchd.cpp index 758d5b45..8024ac12 100644 --- a/rdcatchd/rdcatchd.cpp +++ b/rdcatchd/rdcatchd.cpp @@ -68,7 +68,7 @@ void SigHandler(int signum) switch(signum) { case SIGINT: case SIGTERM: - syslog(LOG_INFO,"rdcatchd exiting"); + rda->syslog(LOG_INFO,"rdcatchd exiting"); exit(0); break; @@ -424,13 +424,13 @@ MainObject::MainObject(QObject *parent) sp.sched_priority=rda->config()->realtimePriority()-1; } if(sched_setscheduler(getpid(),SCHED_FIFO,&sp)!=0) { - syslog(LOG_DEBUG,"unable to set realtime permissions, %s", + rda->syslog(LOG_DEBUG,"unable to set realtime permissions, %s", strerror(errno)); } mlockall(MCL_CURRENT|MCL_FUTURE); } - syslog(LOG_INFO,"rdcatchd started"); + rda->syslog(LOG_INFO,"rdcatchd started"); } @@ -469,7 +469,7 @@ void MainObject::newConnectionData() catch_ready_mapper->setMapping(sock,i); connect(sock,SIGNAL(connectionClosed()),catch_kill_mapper,SLOT(map())); catch_kill_mapper->setMapping(sock,i); - syslog(LOG_DEBUG,"created connection %d",i); + rda->syslog(LOG_DEBUG,"created connection %d",i); } @@ -559,9 +559,9 @@ void MainObject::startTimerData(int id) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck+1,catch_record_deck_status[deck], id)); - syslog(LOG_DEBUG,"gpi start window closes: event: %d, gpi: %d:%d", - id,catch_events[event].startMatrix(), - catch_events[event].startLine()); + rda->syslog(LOG_DEBUG,"gpi start window closes: event: %d, gpi: %d:%d", + id,catch_events[event].startMatrix(), + catch_events[event].startLine()); } @@ -595,15 +595,15 @@ void MainObject::engineData(int id) // Ignore inactive or non-existent events // if(event<0) { - syslog(LOG_DEBUG,"cannot find event %d, ignoring!",id); + rda->syslog(LOG_DEBUG,"cannot find event %d, ignoring!",id); return; } if(!catch_events[event].isActive()) { - syslog(LOG_DEBUG,"event %d is marked inactive, ignoring",id); + rda->syslog(LOG_DEBUG,"event %d is marked inactive, ignoring",id); return; } if(!catch_events[event].dayOfWeek(date.dayOfWeek())) { - syslog(LOG_DEBUG,"event %d is not valid for this DOW, ignoring",id); + rda->syslog(LOG_DEBUG,"event %d is not valid for this DOW, ignoring",id); return; } @@ -613,9 +613,9 @@ void MainObject::engineData(int id) if(catch_events[event].type()==RDRecording::Playout) { if(catch_playout_deck_status[catch_events[event].channel()-129]!= RDDeck::Idle) { - syslog(LOG_WARNING,"playout deck P%d is busy for event %d, skipping", - catch_events[event].channel()-128, - catch_events[event].id()); + rda->syslog(LOG_WARNING,"playout deck P%d is busy for event %d, skipping", + catch_events[event].channel()-128, + catch_events[event].id()); WriteExitCode(event,RDRecording::DeviceBusy); BroadcastCommand(QString().sprintf("RE 0 %d %d %s!",RDDeck::Recording, catch_events[event].id(), @@ -637,8 +637,8 @@ void MainObject::engineData(int id) catch_record_deck_status[catch_events[event]. channel()-1], catch_events[event].id())); - syslog(LOG_WARNING,"record aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName(), + rda->syslog(LOG_WARNING,"record aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName(), catch_events[event].id()); return; } @@ -674,8 +674,8 @@ void MainObject::engineData(int id) catch_swdelay[catch_events[event].channel()-1]=q->value(5).toInt(); } else { - syslog(LOG_DEBUG,"id %d specified non-existent record deck, ignored", - catch_events[event].id()); + rda->syslog(LOG_DEBUG,"id %d specified non-existent record deck, ignored", + catch_events[event].id()); delete q; return; } @@ -707,9 +707,9 @@ void MainObject::engineData(int id) catch_record_deck_status[catch_events[event]. channel()-1], catch_events[event].id())); - syslog(LOG_DEBUG,"gpi start window opens: event: %d, gpi: %d:%d", - id,catch_events[event].startMatrix(), - catch_events[event].startLine()); + rda->syslog(LOG_DEBUG,"gpi start window opens: event: %d, gpi: %d:%d", + id,catch_events[event].startMatrix(), + catch_events[event].startLine()); break; } break; @@ -723,9 +723,9 @@ void MainObject::engineData(int id) catch_playout_deck_status[catch_events[event]. channel()-129], catch_events[event].id())); - syslog(LOG_WARNING,"playout aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName().toUtf8(), - catch_events[event].id()); + rda->syslog(LOG_WARNING,"playout aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } catch_playout_card[catch_events[event].channel()-129]=-1; @@ -748,8 +748,8 @@ void MainObject::engineData(int id) q->value(2).toInt(); } else { - syslog(LOG_DEBUG,"id %d specified non-existent play deck, ignored", - catch_events[event].id()); + rda->syslog(LOG_DEBUG,"id %d specified non-existent play deck, ignored", + catch_events[event].id()); delete q; return; } @@ -762,9 +762,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - syslog(LOG_WARNING,"macro aborted: no such cart: %u, id: %d", - catch_events[event].macroCart(), - catch_events[event].id()); + rda->syslog(LOG_WARNING,"macro aborted: no such cart: %u, id: %d", + catch_events[event].macroCart(), + catch_events[event].id()); return; } StartMacroEvent(event); @@ -779,9 +779,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - syslog(LOG_WARNING,"download aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName().toUtf8(), - catch_events[event].id()); + rda->syslog(LOG_WARNING,"download aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } @@ -806,7 +806,7 @@ void MainObject::engineData(int id) catch_ripper_level=q->value(4).toInt(); } else { - syslog(LOG_WARNING,"unable to load import audio configuration"); + rda->syslog(LOG_WARNING,"unable to load import audio configuration"); delete q; return; } @@ -823,9 +823,9 @@ void MainObject::engineData(int id) WriteExitCode(event,RDRecording::NoCut); BroadcastCommand(QString(). sprintf("RE 0 0 %d!",catch_events[event].id())); - syslog(LOG_WARNING,"upload aborted: no such cut: %s, id: %d", - (const char *)catch_events[event].cutName().toUtf8(), - catch_events[event].id()); + rda->syslog(LOG_WARNING,"upload aborted: no such cut: %s, id: %d", + (const char *)catch_events[event].cutName().toUtf8(), + catch_events[event].id()); return; } StartUploadEvent(event); @@ -859,7 +859,7 @@ void MainObject::garbageData() if(catch_connections.at(i)->isClosing()) { delete catch_connections.at(i); catch_connections[i]=NULL; - syslog(LOG_DEBUG,"closed connection %d",i); + rda->syslog(LOG_DEBUG,"closed connection %d",i); } } } @@ -869,7 +869,7 @@ void MainObject::garbageData() void MainObject::isConnectedData(bool state) { if(!state) { - syslog(LOG_ERR,"aborting - unable to connect to Core AudioEngine"); + rda->syslog(LOG_ERR,"aborting - unable to connect to Core AudioEngine"); exit(1); } } @@ -882,7 +882,7 @@ void MainObject::recordLoadedData(int card,int stream) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_record_id[deck-1])); - syslog(LOG_DEBUG,"Loaded - Card: %d Stream: %d\n",card,stream); + rda->syslog(LOG_DEBUG,"Loaded - Card: %d Stream: %d\n",card,stream); } @@ -926,14 +926,16 @@ void MainObject::recordUnloadedData(int card,int stream,unsigned msecs) { int deck=GetRecordDeck(card,stream); if(deck<1) { - syslog(LOG_DEBUG,"invalid record deck: Card: %d Stream: %d",card,stream); + rda->syslog(LOG_DEBUG,"invalid record deck: Card: %d Stream: %d", + card,stream); return; } int event=GetEvent(catch_record_id[deck-1]); if(event<0) { catch_record_deck_status[deck-1]=RDDeck::Idle; catch_record_aborting[deck-1]=false; - syslog(LOG_DEBUG,"invalid record event: Id: %d",catch_record_id[deck-1]); + rda->syslog(LOG_DEBUG,"invalid record event: Id: %d", + catch_record_id[deck-1]); RunRmlRecordingCache(deck); return; } @@ -946,13 +948,13 @@ void MainObject::recordUnloadedData(int card,int stream,unsigned msecs) StartBatch(catch_events[event].id()); } if(catch_record_aborting[deck-1]) { - syslog(LOG_INFO,"record aborted: cut %s", - (const char *)catch_record_name[deck-1].toUtf8()); + rda->syslog(LOG_INFO,"record aborted: cut %s", + (const char *)catch_record_name[deck-1].toUtf8()); WriteExitCodeById(catch_record_id[deck-1],RDRecording::Interrupted); } else { - syslog(LOG_INFO,"record complete: cut %s", - (const char *)catch_record_name[deck-1].toUtf8()); + rda->syslog(LOG_INFO,"record complete: cut %s", + (const char *)catch_record_name[deck-1].toUtf8()); WriteExitCodeById(catch_record_id[deck-1],RDRecording::Ok); } BroadcastCommand(QString().sprintf("RE %d %d %d!", @@ -1025,8 +1027,8 @@ void MainObject::playStoppedData(int handle) catch_playout_status[deck-129]=false; catch_playout_event_player[deck-129]->stop(); - syslog(LOG_INFO,"playout stopped: cut %s", - (const char *)catch_playout_name[deck-129].toUtf8()); + rda->syslog(LOG_INFO,"playout stopped: cut %s", + (const char *)catch_playout_name[deck-129].toUtf8()); if(debug) { printf("Playout stopped - Card: %d Stream: %d\n", catch_playout_card[deck-129], @@ -1041,8 +1043,8 @@ void MainObject::playUnloadedData(int handle) { int deck=GetPlayoutDeck(handle); - syslog(LOG_INFO,"play complete: cut %s", - (const char *)catch_playout_name[deck-129].toUtf8()); + rda->syslog(LOG_INFO,"play complete: cut %s", + (const char *)catch_playout_name[deck-129].toUtf8()); catch_playout_deck_status[deck-129]=RDDeck::Idle; WriteExitCodeById(catch_playout_id[deck-129],RDRecording::Ok); BroadcastCommand(QString().sprintf("RE %d %d %d!",deck, @@ -1095,11 +1097,11 @@ void MainObject::meterData() void MainObject::eventFinishedData(int id) { if(catch_macro_event_id[id]>=0) { - syslog(LOG_DEBUG,"clearing event_id: %d",catch_macro_event_id[id]); + rda->syslog(LOG_DEBUG,"clearing event_id: %d",catch_macro_event_id[id]); if(catch_macro_event_id[id]syslog(LOG_DEBUG,"processed eventFinishedData for unknown ID"); return; } catch_events[event].setStatus(RDDeck::Idle); @@ -1175,10 +1177,10 @@ void MainObject::startupCartData() RDCart *cart=new RDCart(cartnum); if(cart->exists()) { ExecuteMacroCart(cart); - syslog(LOG_INFO,"ran startup cart %06u",cartnum); + rda->syslog(LOG_INFO,"ran startup cart %06u",cartnum); } else { - syslog(LOG_WARNING,"startup cart %06u was invalid",cartnum); + rda->syslog(LOG_WARNING,"startup cart %06u was invalid",cartnum); } delete cart; } @@ -1192,7 +1194,7 @@ bool MainObject::StartRecording(int event) QTime current_time=QTime::currentTime(); if((event<0)||(event>=(int)catch_events.size())) { - syslog(LOG_DEBUG,"invalid event offset received, ignored"); + rda->syslog(LOG_DEBUG,"invalid event offset received, ignored"); return false; } @@ -1206,8 +1208,8 @@ bool MainObject::StartRecording(int event) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_events[event].id())); - syslog(LOG_WARNING,"invalid audio device for deck: %d, event: %d", - deck,catch_events[event].id()); + rda->syslog(LOG_WARNING,"invalid audio device for deck: %d, event: %d", + deck,catch_events[event].id()); return false; } @@ -1220,9 +1222,9 @@ bool MainObject::StartRecording(int event) BroadcastCommand(QString().sprintf("RE %d %d %d!", deck,catch_record_deck_status[deck-1], catch_events[event].id())); - 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]); + 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]); return false; } @@ -1262,8 +1264,8 @@ bool MainObject::StartRecording(int event) QString str; str=rml->toString(); rda->ripc()->sendRml(rml); - syslog(LOG_DEBUG,"sending switcher command: \"%s\"", - (const char *)str.toUtf8()); + rda->syslog(LOG_DEBUG,"sending switcher command: \"%s\"", + (const char *)str.toUtf8()); delete rml; } @@ -1303,7 +1305,7 @@ bool MainObject::StartRecording(int event) catch_record_card[deck-1], catch_record_stream[deck-1], (const char *)cut_name,length); - syslog(LOG_INFO,str); + rda->syslog(LOG_INFO,str); // // Cache Selected Fields @@ -1368,8 +1370,8 @@ void MainObject::StartPlayout(int event) { unsigned deck=catch_events[event].channel(); if((catch_playout_card[deck-129]<0)) { - syslog(LOG_WARNING, "invalid audio device for deck: %d, event: %d", - deck,catch_events[event].id()); + rda->syslog(LOG_WARNING, "invalid audio device for deck: %d, event: %d", + deck,catch_events[event].id()); return; } @@ -1409,13 +1411,13 @@ void MainObject::StartPlayout(int event) catch_playout_stream[deck-129]); catch_events[event].setStatus(RDDeck::Recording); - syslog(LOG_DEBUG, - "playout started: deck: %d, event %d card %d, stream %d , cut=%s", - deck,catch_events[event].id(), - catch_playout_card[deck-129], - catch_playout_stream[deck-129], - (const char *)catch_events[event].cutName().toUtf8()); - + rda->syslog(LOG_DEBUG, + "playout started: deck: %d, event %d card %d, stream %d , cut=%s", + deck,catch_events[event].id(), + catch_playout_card[deck-129], + catch_playout_stream[deck-129], + (const char *)catch_events[event].cutName().toUtf8()); + // // Cache Selected Fields // @@ -1428,19 +1430,20 @@ void MainObject::StartMacroEvent(int event) { RDCart *cart=new RDCart(catch_events[event].macroCart()); if(!cart->exists()) { - syslog(LOG_WARNING,"cart %u does not exist!", - catch_events[event].macroCart()); + rda->syslog(LOG_WARNING,"cart %u does not exist!", + catch_events[event].macroCart()); delete cart; return; } if(cart->type()!=RDCart::Macro) { - syslog(LOG_WARNING,"%u is not a macro cart!", - catch_events[event].macroCart()); + rda->syslog(LOG_WARNING,"%u is not a macro cart!", + catch_events[event].macroCart()); delete cart; return; } if(ExecuteMacroCart(cart,catch_events[event].id(),event)) { - syslog(LOG_INFO,"executing macro cart: %u",catch_events[event].macroCart()); + rda->syslog(LOG_INFO,"executing macro cart: %u", + catch_events[event].macroCart()); } delete cart; } @@ -1457,7 +1460,8 @@ void MainObject::StartSwitchEvent(int event) rml->addArg(catch_events[event].switchInput()); rml->addArg(catch_events[event].switchOutput()); QString str=rml->toString(); - syslog(LOG_INFO,"sent switch event, rml: \"%s\"",(const char *)str.toUtf8()); + rda->syslog(LOG_INFO,"sent switch event, rml: \"%s\"", + (const char *)str.toUtf8()); rda->ripc()->sendRml(rml); delete rml; if(catch_events[event].oneShot()) { @@ -1497,7 +1501,7 @@ bool MainObject::ExecuteMacroCart(RDCart *cart,int id,int event) { int event_id=GetFreeEvent(); if(event_id<0) { - syslog(LOG_WARNING,"unable to allocate event context, id=%d",id); + rda->syslog(LOG_WARNING,"unable to allocate event context, id=%d",id); return false; } if(event!=-1) { @@ -1828,7 +1832,7 @@ void MainObject::LoadEngine(bool adv_day) QString sql; catch_events.clear(); - syslog(LOG_DEBUG,"rdcatchd engine load starts..."); + rda->syslog(LOG_DEBUG,"rdcatchd engine load starts..."); sql=LoadEventSql()+QString(" where STATION_NAME=\"")+ RDEscapeString(rda->station()->name())+"\""; q=new RDSqlQuery(sql); @@ -1836,9 +1840,9 @@ void MainObject::LoadEngine(bool adv_day) catch_events.push_back(CatchEvent(rda->station(),RDConfiguration())); LoadEvent(q,&catch_events.back(),true); } - syslog(LOG_DEBUG,"loaded %d events",(int)catch_events.size()); + rda->syslog(LOG_DEBUG,"loaded %d events",(int)catch_events.size()); delete q; - syslog(LOG_DEBUG,"rdcatchd engine load ends"); + rda->syslog(LOG_DEBUG,"rdcatchd engine load ends"); } @@ -2113,35 +2117,35 @@ bool MainObject::AddEvent(int id) LoadEvent(q,&catch_events.back(),true); switch((RDRecording::Type)q->value(2).toInt()) { case RDRecording::Recording: - syslog(LOG_DEBUG,"loading event %d, Type: recording, Cut: %s", - id,(const char *)q->value(4).toString().toUtf8()); + rda->syslog(LOG_DEBUG,"loading event %d, Type: recording, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::Playout: - syslog(LOG_DEBUG,"loading event %d, Type: playout, Cut: %s", - id,(const char *)q->value(4).toString().toUtf8()); + rda->syslog(LOG_DEBUG,"loading event %d, Type: playout, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::MacroEvent: - syslog(LOG_DEBUG,"loading event %d, Type: macro, Cart: %d", - id,q->value(23).toUInt()); + rda->syslog(LOG_DEBUG,"loading event %d, Type: macro, Cart: %d", + id,q->value(23).toUInt()); break; case RDRecording::SwitchEvent: - syslog(LOG_DEBUG, + rda->syslog(LOG_DEBUG, "loading event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - id,q->value(3).toInt(),q->value(24).toInt(), - q->value(25).toInt()); + id,q->value(3).toInt(),q->value(24).toInt(), + q->value(25).toInt()); break; case RDRecording::Download: - syslog(LOG_DEBUG,"loading event %d, Type: download, Cut: %s", - id,(const char *)q->value(4).toString().toUtf8()); + rda->syslog(LOG_DEBUG,"loading event %d, Type: download, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::Upload: - syslog(LOG_DEBUG,"loading event %d, Type: upload, Cut: %s", - id,(const char *)q->value(4).toString().toUtf8()); + rda->syslog(LOG_DEBUG,"loading event %d, Type: upload, Cut: %s", + id,(const char *)q->value(4).toString().toUtf8()); break; case RDRecording::LastType: @@ -2150,7 +2154,7 @@ bool MainObject::AddEvent(int id) delete q; return true; } - syslog(LOG_DEBUG,"event %d not found, not loaded",id); + rda->syslog(LOG_DEBUG,"event %d not found, not loaded",id); delete q; return false; } @@ -2160,42 +2164,42 @@ void MainObject::RemoveEvent(int id) { int event=GetEvent(id); if(event<0) { - syslog(LOG_DEBUG,"event %d not found, not removed",id); + rda->syslog(LOG_DEBUG,"event %d not found, not removed",id); return; } switch(catch_events[event].type()) { case RDRecording::Recording: - syslog(LOG_DEBUG,"removed event %d, Type: recording, Cut: %s", - id,(const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"removed event %d, Type: recording, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Playout: - syslog(LOG_DEBUG,"removed event %d, Type: playout, Cut: %s", - id,(const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"removed event %d, Type: playout, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::MacroEvent: - syslog(LOG_DEBUG,"removed event %d, Type: macro, Cart: %u", - id,catch_events[event].macroCart()); + rda->syslog(LOG_DEBUG,"removed event %d, Type: macro, Cart: %u", + id,catch_events[event].macroCart()); break; case RDRecording::SwitchEvent: - syslog(LOG_DEBUG, - "removed event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - id, - catch_events[event].channel(), - catch_events[event].switchInput(), - catch_events[event].switchOutput()); + rda->syslog(LOG_DEBUG, + "removed event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", + id, + catch_events[event].channel(), + catch_events[event].switchInput(), + catch_events[event].switchOutput()); break; case RDRecording::Download: - syslog(LOG_DEBUG,"removed event %d, Type: download, Cut: %s", - id,(const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"removed event %d, Type: download, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Upload: - syslog(LOG_DEBUG,"removed event %d, Type: upload, Cut: %s", - id,(const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"removed event %d, Type: upload, Cut: %s", + id,(const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::LastType: @@ -2234,42 +2238,42 @@ void MainObject::PurgeEvent(int event) BroadcastCommand(QString().sprintf("PE %d!",catch_events[event].id())); switch(catch_events[event].type()) { case RDRecording::Recording: - syslog(LOG_DEBUG,"purged event %d, Type: recording, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"purged event %d, Type: recording, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Playout: - syslog(LOG_DEBUG,"purged event %d, Type: playout, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"purged event %d, Type: playout, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::MacroEvent: - syslog(LOG_DEBUG,"purged event %d, Type: macro, Cart: %u", - catch_events[event].id(), - catch_events[event].macroCart()); + rda->syslog(LOG_DEBUG,"purged event %d, Type: macro, Cart: %u", + catch_events[event].id(), + catch_events[event].macroCart()); break; case RDRecording::SwitchEvent: - syslog(LOG_DEBUG, - "purged event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", - catch_events[event].id(), - catch_events[event].channel(), - catch_events[event].switchInput(), - catch_events[event].switchOutput()); + rda->syslog(LOG_DEBUG, + "purged event %d, Type: switch, Matrix: %d, Source: %d Dest: %d", + catch_events[event].id(), + catch_events[event].channel(), + catch_events[event].switchInput(), + catch_events[event].switchOutput()); break; case RDRecording::Download: - syslog(LOG_DEBUG,"purged event %d, Type: download, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"purged event %d, Type: download, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::Upload: - syslog(LOG_DEBUG,"purged event %d, Type: upload, Cut: %s", - catch_events[event].id(), - (const char *)catch_events[event].cutName().toUtf8()); + rda->syslog(LOG_DEBUG,"purged event %d, Type: upload, Cut: %s", + catch_events[event].id(), + (const char *)catch_events[event].cutName().toUtf8()); break; case RDRecording::LastType: @@ -2498,7 +2502,8 @@ bool MainObject::SendErrorMessage(CatchEvent *event,const QString &err_desc, // int event_id=GetFreeEvent(); if(event_id<0) { - syslog(LOG_WARNING,"unable to allocate event context, id=%d",event->id()); + rda->syslog(LOG_WARNING,"unable to allocate event context, id=%d", + event->id()); } catch_macro_event_id[event_id]=event->id()+RDCATCHD_ERROR_ID_OFFSET; catch_event_pool[event_id]= @@ -2508,8 +2513,8 @@ bool MainObject::SendErrorMessage(CatchEvent *event,const QString &err_desc, catch_event_mapper,SLOT(map())); bool res=catch_event_pool[event_id]->load(rml); catch_event_pool[event_id]->exec(); - syslog(LOG_INFO,"executed error rml: id=%d, rml=\"%s\", res=%d", - event->id(),(const char *)rml.toUtf8(),res); + rda->syslog(LOG_INFO,"executed error rml: id=%d, rml=\"%s\", res=%d", + event->id(),(const char *)rml.toUtf8(),res); return true; } @@ -2625,8 +2630,9 @@ void MainObject::StartBatch(int id) execl(bin,(const char *)bin, (const char *)QString().sprintf("--event-id=%d",id), (char *)NULL); - syslog(LOG_ERR,"failed to exec %s --event-id=%d: %s",(const char *)bin, - id,strerror(errno)); + rda->syslog(LOG_ERR,"failed to exec %s --event-id=%d: %s", + (const char *)bin, + id,strerror(errno)); exit(0); } } diff --git a/rdhpi/rdhpiplaystream.cpp b/rdhpi/rdhpiplaystream.cpp index b2d067c9..e8d57637 100644 --- a/rdhpi/rdhpiplaystream.cpp +++ b/rdhpi/rdhpiplaystream.cpp @@ -1,8 +1,8 @@ // rdhpiplaystream.cpp // -// A class for playing Microsoft WAV files. +// A class for playing Microsoft WAV file on AudioScience HPI devices. // -// (C) Copyright 2002-2007,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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,8 +31,9 @@ #include #include -#include -#include +#include +#include "rdhpiplaystream.h" +#include "rdhpisoundcard.h" #define RDHPIPLAYSTREAM_USE_LOCAL_MUTEX @@ -188,7 +189,7 @@ bool RDHPIPlayStream::formatSupported(RDWaveFile::Format format) for(int i=0;igetCardOutputStreams(card_number);i++) { if(LogHpi(HPI_OutStreamOpen(NULL,card_index[card_number],i,&hostream), __LINE__)==0) { - syslog(LOG_NOTICE,"buffer_size: %u\n",dma_buffer_size); + RDApplication::syslog(sound_card->config(),LOG_DEBUG,"buffer_size: %u\n",dma_buffer_size); found=true; break; } @@ -805,7 +806,7 @@ int RDHPIPlayStream::GetStream() if(LogHpi(HPI_OutStreamOpen(NULL,card_index[card_number],i,&hpi_stream), __LINE__)==0) { stream_number=i; -// syslog(LOG_ERR,"HPI allocating ostream: %d",stream_number); +// RDApplication::syslog(sound_card->config(),LOG_ERR,"HPI allocating ostream: %d",stream_number); return stream_number; } } @@ -835,7 +836,8 @@ hpi_err_t RDHPIPlayStream::LogHpi(hpi_err_t err,int lineno) if(err!=0) { HPI_GetErrorText(err,err_txt); - syslog(LOG_NOTICE,"HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); + RDApplication::syslog(sound_card->config(),LOG_NOTICE, + "HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); } return err; } diff --git a/rdhpi/rdhpirecordstream.cpp b/rdhpi/rdhpirecordstream.cpp index bed6b68c..0eab96cf 100644 --- a/rdhpi/rdhpirecordstream.cpp +++ b/rdhpi/rdhpirecordstream.cpp @@ -2,7 +2,7 @@ // // A class for recording Microsoft WAV files. // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -30,7 +30,9 @@ #include #include -#include +#include + +#include "rdhpirecordstream.h" RDHPIRecordStream::RDHPIRecordStream(RDHPISoundCard *card,QWidget *parent) :QObject(parent),RDWaveFile() @@ -738,7 +740,8 @@ hpi_err_t RDHPIRecordStream::LogHpi(hpi_err_t err,int lineno) if(err!=0) { HPI_GetErrorText(err,err_txt); - syslog(LOG_NOTICE,"HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); + RDApplication::syslog(sound_card->config(),LOG_NOTICE, + "HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); } return err; } diff --git a/rdhpi/rdhpisoundcard.cpp b/rdhpi/rdhpisoundcard.cpp index d61bd833..4cac8e1f 100644 --- a/rdhpi/rdhpisoundcard.cpp +++ b/rdhpi/rdhpisoundcard.cpp @@ -2,7 +2,7 @@ // // The audio card subsystem for the HPI Library. // -// (C) Copyright 2002-2007,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -19,15 +19,20 @@ // #include - -#include -#include - #include -RDHPISoundCard::RDHPISoundCard(QObject *parent) +#include +#include + +#include + +#include "rdhpisoundcard.h" + +RDHPISoundCard::RDHPISoundCard(RDConfig *config,QObject *parent) : QObject(parent) { + card_config=config; + card_quantity=0; fade_type=RDHPISoundCard::Log; for(int i=0;i +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -27,7 +27,9 @@ #include #include -#include +#include + +#include "rdhpiinformation.h" #include #ifndef HPI_VER @@ -85,7 +87,7 @@ class RDHPISoundCard : public QObject enum TunerBand {Fm=0,FmStereo=1,Am=2,Tv=3}; enum Subcarrier {Mpx=0,Rds=1}; - RDHPISoundCard(QObject *parent=0); + RDHPISoundCard(RDConfig *config,QObject *parent=0); ~RDHPISoundCard(); Driver driver() const; RDHPIInformation *hpiInformation(int card); @@ -137,6 +139,7 @@ class RDHPISoundCard : public QObject RDHPISoundCard::FadeProfile getFadeProfile() const; unsigned short getInputPortError(int card,int port); void setFadeProfile(RDHPISoundCard::FadeProfile profile); + RDConfig *config() const; signals: void inputPortError(int card,int port); @@ -230,6 +233,7 @@ class RDHPISoundCard : public QObject short input_port_meter_peak[HPI_MAX_ADAPTERS][HPI_MAX_NODES][HPI_MAX_CHANNELS]; short output_port_meter_peak[HPI_MAX_ADAPTERS][HPI_MAX_NODES][HPI_MAX_CHANNELS]; RDHPIInformation hpi_info[HPI_MAX_ADAPTERS]; + RDConfig *card_config; }; diff --git a/rdhpi/rdhpisoundselector.cpp b/rdhpi/rdhpisoundselector.cpp index b368324b..f4e3b3fc 100644 --- a/rdhpi/rdhpisoundselector.cpp +++ b/rdhpi/rdhpisoundselector.cpp @@ -35,10 +35,10 @@ RDHPISoundSelector::RDHPISoundSelector(RDHPISoundCard::DeviceClass dev_class, - QWidget *parent) + RDConfig *config,QWidget *parent) :Q3ListBox(parent) { - sound_card=new RDHPISoundCard(this); + sound_card=new RDHPISoundCard(config,this); if(dev_class==RDHPISoundCard::PlayDevice) { for(int i=0;igetCardQuantity();i++) { diff --git a/rdhpi/rdhpisoundselector.h b/rdhpi/rdhpisoundselector.h index 74733407..03d6c44c 100644 --- a/rdhpi/rdhpisoundselector.h +++ b/rdhpi/rdhpisoundselector.h @@ -2,7 +2,7 @@ // // A selection widget for audio devices. // -// (C) Copyright 2002-2007,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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,7 +31,7 @@ #include #include -#include +#include "rdhpisoundcard.h" #ifdef ALSA #include @@ -46,7 +46,8 @@ class RDHPISoundSelector : public Q3ListBox Q_OBJECT public: - RDHPISoundSelector(RDHPISoundCard::DeviceClass dev_class,QWidget *parent=0); + RDHPISoundSelector(RDHPISoundCard::DeviceClass dev_class,RDConfig *config, + QWidget *parent=0); signals: void changed(int card,int port); diff --git a/rdpadengined/rdpadengined.cpp b/rdpadengined/rdpadengined.cpp index caa2a06a..0d9a76f4 100644 --- a/rdpadengined/rdpadengined.cpp +++ b/rdpadengined/rdpadengined.cpp @@ -66,13 +66,13 @@ MainObject::MainObject(QObject *parent) // if(getuid()==0) { if(setgid(rda->config()->pypadGid())!=0) { - syslog(LOG_ERR,"unable to set GID to %d [%s], exiting", - rda->config()->pypadGid(),strerror(errno)); + rda->syslog(LOG_ERR,"unable to set GID to %d [%s], exiting", + rda->config()->pypadGid(),strerror(errno)); exit(1); } if(setuid(rda->config()->pypadUid())!=0) { - syslog(LOG_ERR,"unable to set UID to %d [%s], exiting", - rda->config()->pypadUid(),strerror(errno)); + rda->syslog(LOG_ERR,"unable to set UID to %d [%s], exiting", + rda->config()->pypadUid(),strerror(errno)); exit(1); } } @@ -82,8 +82,8 @@ MainObject::MainObject(QObject *parent) // for(unsigned i=0;icmdSwitch()->keys();i++) { if(!rda->cmdSwitch()->processed(i)) { - syslog(LOG_ERR,"unknown command option \"%s\"", - (const char *)rda->cmdSwitch()->key(i).toUtf8()); + rda->syslog(LOG_ERR,"unknown command option \"%s\"", + (const char *)rda->cmdSwitch()->key(i).toUtf8()); exit(2); } } @@ -189,7 +189,7 @@ void MainObject::instanceFinishedData(int id) RDProcess *proc=pad_instances.value(id); if(proc->process()->exitStatus()!=QProcess::NormalExit) { - syslog(LOG_WARNING,"PyPAD script %d crashed\n",id); + rda->syslog(LOG_WARNING,"PyPAD script %d crashed\n",id); SetRunStatus(id,false,-1,proc->standardErrorData()); proc->deleteLater(); pad_instances.remove(id); @@ -207,8 +207,8 @@ void MainObject::instanceFinishedData(int id) } else { if(!global_pad_exiting) { - syslog(LOG_WARNING,"PyPAD script ID %d exited with code %d", - id,proc->process()->exitCode()); + rda->syslog(LOG_WARNING,"PyPAD script ID %d exited with code %d", + id,proc->process()->exitCode()); SetRunStatus(id,false,proc->process()->exitCode(), proc->standardErrorData()); } @@ -252,8 +252,8 @@ void MainObject::StartScript(unsigned id,const QString &script_path) args.push_back(QString().sprintf("%u",RD_PAD_CLIENT_TCP_PORT)); args.push_back(QString().sprintf("$%u",id)); pad_instances.value(id)->start(RD_PYPAD_PYTHON_PATH,args); - syslog(LOG_INFO,"starting: "+proc->program()+" "+ - proc->arguments().join(" ").toUtf8()); + rda->syslog(LOG_INFO,"starting: "+proc->program()+" "+ + proc->arguments().join(" ").toUtf8()); } diff --git a/rdrepld/citadelxds.cpp b/rdrepld/citadelxds.cpp index bfb565b2..4f0165ff 100644 --- a/rdrepld/citadelxds.cpp +++ b/rdrepld/citadelxds.cpp @@ -101,8 +101,8 @@ void CitadelXds::CheckIsciXreference() } } else { - syslog(LOG_WARNING,"unable to load ISCI cross reference file \"%s\"", - (const char *)rda->system()->isciXreferencePath().toUtf8()); + rda->syslog(LOG_WARNING,"unable to load ISCI cross reference file \"%s\"", + (const char *)rda->system()->isciXreferencePath().toUtf8()); } delete fi; } @@ -122,9 +122,10 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) unsigned linenum=3; if((f=fopen(filename,"r"))==NULL) { - syslog(LOG_WARNING,"unable to load ISCI cross reference file \"%s\" [%s]", - (const char *)rda->system()->isciXreferencePath().toUtf8(), - strerror(errno)); + rda->syslog(LOG_WARNING, + "unable to load ISCI cross reference file \"%s\" [%s]", + (const char *)rda->system()->isciXreferencePath().toUtf8(), + strerror(errno)); return false; } @@ -172,30 +173,31 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) delete q; } else { - syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", - linenum,(const char *)filename.toUtf8()); + rda->syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - syslog(LOG_WARNING, - "invalid FILENAME field \"%s\" in line %d of \"%s\"", - (const char *)fields[8].toUtf8(),linenum, - (const char *)filename.toUtf8()); + rda->syslog(LOG_WARNING, + "invalid FILENAME field \"%s\" in line %d of \"%s\"", + (const char *)fields[8].toUtf8(),linenum, + (const char *)filename.toUtf8()); } } else { - syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", - linenum,(const char *)filename.toUtf8()); + rda->syslog(LOG_WARNING,"invalid date in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - syslog(LOG_DEBUG,"missing/invalid cart number in line %d of \"%s\"", - linenum,(const char *)filename.toUtf8()); + rda->syslog(LOG_DEBUG, + "missing/invalid cart number in line %d of \"%s\"", + linenum,(const char *)filename.toUtf8()); } } else { - syslog(LOG_WARNING,"line %d malformed in \"%s\"", - linenum,(const char *)filename.toUtf8()); + rda->syslog(LOG_WARNING,"line %d malformed in \"%s\"", + linenum,(const char *)filename.toUtf8()); } linenum++; } @@ -203,8 +205,8 @@ bool CitadelXds::LoadIsciXreference(const QString &filename) // // Clean Up // - syslog(LOG_INFO,"loaded ISCI cross reference file \"%s\"", - (const char *)rda->system()->isciXreferencePath().toUtf8()); + rda->syslog(LOG_INFO,"loaded ISCI cross reference file \"%s\"", + (const char *)rda->system()->isciXreferencePath().toUtf8()); fclose(f); return true; } @@ -348,9 +350,10 @@ bool CitadelXds::PostCut(const QString &cutname,const QString &filename) break; default: - syslog(LOG_WARNING,"CitadelXds: audio conversion failed: %s, cutname: %s", - (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), - (const char *)cutname.toUtf8()); + rda->syslog(LOG_WARNING, + "CitadelXds: audio conversion failed: %s, cutname: %s", + (const char *)RDAudioConvert::errorText(conv_err).toUtf8(), + (const char *)cutname.toUtf8()); delete conv; delete settings; return false; @@ -371,18 +374,18 @@ bool CitadelXds::PostCut(const QString &cutname,const QString &filename) break; default: - syslog(LOG_WARNING,"CitadelXds: audio upload failed: %s", - (const char *)RDUpload::errorText(upload_err).toUtf8()); + rda->syslog(LOG_WARNING,"CitadelXds: audio upload failed: %s", + (const char *)RDUpload::errorText(upload_err).toUtf8()); unlink(tempfile); delete upload; return false; } unlink(tempfile); delete upload; - syslog(LOG_INFO,"CitadelXds: uploaded cut %s to %s/%s", - (const char *)cutname.toUtf8(), - (const char *)config()->url().toUtf8(), - (const char *)filename.toUtf8()); + rda->syslog(LOG_INFO,"CitadelXds: uploaded cut %s to %s/%s", + (const char *)cutname.toUtf8(), + (const char *)config()->url().toUtf8(), + (const char *)filename.toUtf8()); return true; } @@ -423,15 +426,16 @@ void CitadelXds::PurgeCuts() q->value(0).toInt()); q2=new RDSqlQuery(sql); delete q2; - syslog(LOG_INFO,"purged \"%s\" for replicator \"%s\"", - (const char *)url.toString().toUtf8(), - (const char *)config()->name().toUtf8()); + rda->syslog(LOG_INFO,"purged \"%s\" for replicator \"%s\"", + (const char *)url.toString().toUtf8(), + (const char *)config()->name().toUtf8()); } else { - syslog(LOG_WARNING,"unable to delete \"%s\" for replicator \"%s\" [%s]", - (const char *)url.toString().toUtf8(), - (const char *)config()->name().toUtf8(), - (const char *)RDDelete::errorText(conv_err).toUtf8()); + rda->syslog(LOG_WARNING, + "unable to delete \"%s\" for replicator \"%s\" [%s]", + (const char *)url.toString().toUtf8(), + (const char *)config()->name().toUtf8(), + (const char *)RDDelete::errorText(conv_err).toUtf8()); } delete conv; } diff --git a/rdrepld/rdrepld.cpp b/rdrepld/rdrepld.cpp index ca84152e..23fdde13 100644 --- a/rdrepld/rdrepld.cpp +++ b/rdrepld/rdrepld.cpp @@ -2,7 +2,7 @@ // // The Rivendell Replicator Daemon // -// (C) Copyright 2010-2018 Fred Gleason +// (C) Copyright 2010-2019 Fred Gleason // // 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 @@ -119,7 +119,7 @@ MainObject::MainObject(QObject *parent) connect(repl_loop_timer,SIGNAL(timeout()),this,SLOT(mainLoop())); repl_loop_timer->start(RD_RDREPL_SCAN_INTERVAL,true); - syslog(LOG_INFO,"started"); + rda->syslog(LOG_INFO,"started"); } diff --git a/rdservice/maint_routines.cpp b/rdservice/maint_routines.cpp index 709b8d4b..d2c0ca11 100644 --- a/rdservice/maint_routines.cpp +++ b/rdservice/maint_routines.cpp @@ -2,7 +2,7 @@ // // Rivendell Maintenance Routines // -// (C) Copyright 2008-2018 Fred Gleason +// (C) Copyright 2008-2019 Fred Gleason // // 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 @@ -88,7 +88,7 @@ void MainObject::RunSystemMaintRoutine() RunEphemeralProcess(RDSERVICE_PURGECASTS_ID, QString(RD_PREFIX)+"/bin/rdpurgecasts",args); - syslog(LOG_INFO,"ran system-wide maintenance routines"); + rda->syslog(LOG_INFO,"ran system-wide maintenance routines"); } @@ -97,7 +97,7 @@ void MainObject::RunLocalMaintRoutine() RunEphemeralProcess(RDSERVICE_LOCALMAINT_ID, QString(RD_PREFIX)+"/bin/rdmaint",QStringList()); - syslog(LOG_INFO,"ran local maintenance routines"); + rda->syslog(LOG_INFO,"ran local maintenance routines"); } @@ -119,7 +119,7 @@ void MainObject::RunEphemeralProcess(int id,const QString &program, if(!svc_processes[id]->process()->waitForStarted()) { QString err_msg=tr("unable to start")+"\""+program+"\": "+ svc_processes[id]->errorText(); - syslog(LOG_WARNING,"%s",(const char *)err_msg.toUtf8()); + rda->syslog(LOG_WARNING,"%s",(const char *)err_msg.toUtf8()); delete svc_processes[id]; svc_processes.remove(id); } diff --git a/rdservice/rdservice.cpp b/rdservice/rdservice.cpp index 20307a1e..53f9cc48 100644 --- a/rdservice/rdservice.cpp +++ b/rdservice/rdservice.cpp @@ -2,7 +2,7 @@ // // Rivendell Services Manager // -// (C) Copyright 2018 Fred Gleason +// (C) Copyright 2018-2019 Fred Gleason // // 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 @@ -64,7 +64,7 @@ MainObject::MainObject(QObject *parent) // Check for prior instance // if(RDGetPids("rdservice").size()>1) { - syslog(LOG_ERR,"prior instance found"); + rda->syslog(LOG_ERR,"prior instance found"); exit(1); } @@ -73,8 +73,8 @@ MainObject::MainObject(QObject *parent) // rda=new RDApplication("rdservice","rdservice","\n\n",this); if(!rda->open(&err_msg,&err_type,false)) { - syslog(LOG_ERR,"unable to open database [%s]", - (const char *)err_msg.utf8()); + rda->syslog(LOG_ERR,"unable to open database [%s]", + (const char *)err_msg.utf8()); exit(2); } @@ -107,8 +107,8 @@ MainObject::MainObject(QObject *parent) if(!Startup(&err_msg)) { Shutdown(); - syslog(LOG_ERR,"unable to start service component [%s]", - (const char *)err_msg.toUtf8()); + rda->syslog(LOG_ERR,"unable to start service component [%s]", + (const char *)err_msg.toUtf8()); exit(3); } @@ -124,12 +124,12 @@ MainObject::MainObject(QObject *parent) svc_maint_timer->start(interval); } else { - syslog(LOG_INFO,"maintenance checks disabled on this host"); + rda->syslog(LOG_INFO,"maintenance checks disabled on this host"); } if(!RDWritePid(RD_PID_DIR,"rdservice.pid",getuid())) { - syslog(LOG_WARNING,"unable to write pid file to \"%s/rdservice.pid\"", - RD_PID_DIR); + rda->syslog(LOG_WARNING,"unable to write pid file to \"%s/rdservice.pid\"", + RD_PID_DIR); } } @@ -148,7 +148,7 @@ void MainObject::exitData() if(global_exiting) { Shutdown(); RDDeletePid(RD_PID_DIR,"rdservice.pid"); - syslog(LOG_DEBUG,"shutting down normally"); + rda->syslog(LOG_DEBUG,"shutting down normally"); exit(0); } diff --git a/rdservice/startup.cpp b/rdservice/startup.cpp index bdefd020..5990c9a0 100644 --- a/rdservice/startup.cpp +++ b/rdservice/startup.cpp @@ -318,8 +318,8 @@ void MainObject::KillProgram(const QString &program) while(pids.size()>0) { for(int i=0;isyslog(LOG_WARNING,"killing unresponsive program \"%s\" [PID: %d]", + (const char *)program.toUtf8(),pids.at(i)); } sleep(1); pids=RDGetPids(program); diff --git a/rdvairplayd/local_macros.cpp b/rdvairplayd/local_macros.cpp index e3bdc87a..624a0820 100644 --- a/rdvairplayd/local_macros.cpp +++ b/rdvairplayd/local_macros.cpp @@ -2,7 +2,7 @@ // // Local RML Macros for rdvairplayd(8) // -// (C) Copyright 2002-2004,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -61,7 +61,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(rml->argQuantity()==1) { // Clear Log air_logs[index]->clear(); - syslog(LOG_INFO,"unloaded log machine %d",rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"unloaded log machine %d",rml->arg(0).toInt()); } else { // Load Log logname=rml->arg(1); @@ -74,20 +74,20 @@ void MainObject::rmlReceivedData(RDMacro *rml) } air_logs[index]->setLogName(logname); air_logs[index]->load(); - syslog(LOG_INFO,"loaded log \"%s\" into log machine %d", - (const char *)logname.toUtf8(), - rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"loaded log \"%s\" into log machine %d", + (const char *)logname.toUtf8(), + rml->arg(0).toInt()); } if(rml->argQuantity()==3) { // Start Log if(rml->arg(2).toInt()size()) { if(rml->arg(2).toInt()>=0) { // Unconditional start if(air_logs[index]->play(rml->arg(2).toInt(),RDLogLine::StartMacro)) { - syslog(LOG_INFO,"started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(2).toInt()); + rda->syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(2).toInt()); } else { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -111,12 +111,12 @@ void MainObject::rmlReceivedData(RDMacro *rml) case RDLogLine::Play: case RDLogLine::Segue: if(air_logs[index]->play(0,RDLogLine::StartMacro)) { - syslog(LOG_INFO,"started log machine %d at line 0", - rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"started log machine %d at line 0", + rml->arg(0).toInt()); } else { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -163,8 +163,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } air_logs[index]->append(logname); - syslog(LOG_INFO,"appended log \"%s\" into log machine %d", - (const char *)logname.toUtf8(),rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"appended log \"%s\" into log machine %d", + (const char *)logname.toUtf8(),rml->arg(0).toInt()); break; case RDMacro::MN: // Make Next @@ -191,8 +191,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } air_logs[index]->makeNext(rml->arg(1).toInt()); - syslog(LOG_INFO,"made line %d next in log machine %d", - rml->arg(1).toInt(),rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"made line %d next in log machine %d", + rml->arg(1).toInt(),rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(true); rda->ripc()->sendRml(rml); @@ -224,12 +224,12 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(!air_logs[index]->running()) { if(air_logs[index]->play(rml->arg(1).toInt(),RDLogLine::StartMacro)) { - syslog(LOG_INFO,"started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(2).toInt()); + rda->syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(2).toInt()); } else { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -237,8 +237,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } } - syslog(LOG_INFO,"started log machine %d at line %d", - rml->arg(0).toInt(),rml->arg(1).toInt()); + rda->syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),rml->arg(1).toInt()); if(rml->echoRequested()) { rml->acknowledge(true); rda->ripc()->sendRml(rml); @@ -338,8 +338,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(rml->argQuantity()==1) { if(!air_logs[index]-> play(air_logs[index]->nextLine(),RDLogLine::StartMacro)) { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -352,8 +352,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(!air_logs[index]->play(air_logs[index]->nextLine(), RDLogLine::StartMacro, rml->arg(1).toInt()-1)) { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -365,8 +365,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(!air_logs[index]-> play(air_logs[index]->nextLine(),RDLogLine::StartMacro, rml->arg(1).toInt()-1,rml->arg(2).toInt())) { - syslog(LOG_WARNING,"log machine %d failed to start", - rml->arg(0).toInt()); + rda->syslog(LOG_WARNING,"log machine %d failed to start", + rml->arg(0).toInt()); if(rml->echoRequested()) { rml->acknowledge(false); rda->ripc()->sendRml(rml); @@ -375,8 +375,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) } } } - syslog(LOG_INFO,"started log machine %d at line %d", - rml->arg(0).toInt(),next_line); + rda->syslog(LOG_INFO,"started log machine %d at line %d", + rml->arg(0).toInt(),next_line); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -408,7 +408,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) for(int i=0;istop(true,0,fade); } - syslog(LOG_INFO,"stopped all logs"); + rda->syslog(LOG_INFO,"stopped all logs"); } else { if(rml->argQuantity()==3) { @@ -417,7 +417,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) else { air_logs[index]->stop(true,0,fade); } - syslog(LOG_INFO,"stopped log machine %d",rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"stopped log machine %d",rml->arg(0).toInt()); break; } if(rml->echoRequested()) { @@ -446,8 +446,8 @@ void MainObject::rmlReceivedData(RDMacro *rml) for(int i=0;iduckVolume(rml->arg(1).toInt()*100,rml->arg(2).toInt()); } - syslog(LOG_INFO,"set volumne of all log machines to %d dBFS", - rml->arg(1).toInt()); + rda->syslog(LOG_INFO,"set volumne of all log machines to %d dBFS", + rml->arg(1).toInt()); } else { if(rml->argQuantity()==3) { @@ -458,9 +458,9 @@ void MainObject::rmlReceivedData(RDMacro *rml) air_logs[index]->duckVolume(rml->arg(1).toInt()*100, rml->arg(2).toInt(),rml->arg(3).toInt()); } - syslog(LOG_INFO,"set volumne of log machine %d to %d dBFS", - rml->arg(0).toInt(), - rml->arg(1).toInt()); + rda->syslog(LOG_INFO,"set volumne of log machine %d to %d dBFS", + rml->arg(0).toInt(), + rml->arg(1).toInt()); break; } if(rml->echoRequested()) { @@ -489,16 +489,16 @@ void MainObject::rmlReceivedData(RDMacro *rml) if(air_logs[index]->nextLine()>=0) { air_logs[index]->insert(air_logs[index]->nextLine(), rml->arg(1).toUInt(),RDLogLine::Play); - syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", - rml->arg(1).toUInt(),next_line,rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", + rml->arg(1).toUInt(),next_line,rml->arg(0).toInt()); } else { air_logs[index]->insert(air_logs[index]->size(), rml->arg(1).toUInt(),RDLogLine::Play); air_logs[index]->makeNext(air_logs[index]->size()-1); - syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", - rml->arg(1).toUInt(),air_logs[index]->size()-1, - rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"inserted cart %06u at line %d on log machine %d", + rml->arg(1).toUInt(),air_logs[index]->size()-1, + rml->arg(0).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -529,7 +529,7 @@ void MainObject::rmlReceivedData(RDMacro *rml) return; } else { - syslog(LOG_INFO,"refreshed log machine %d",rml->arg(0).toInt()); + rda->syslog(LOG_INFO,"refreshed log machine %d",rml->arg(0).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); @@ -569,13 +569,14 @@ void MainObject::rmlReceivedData(RDMacro *rml) } if(rml->arg(0).lower()=="now") { air_logs[index]->setNowCart(rml->arg(2).toUInt()); - syslog(LOG_INFO,"set default \"now\" cart to %06u on log machine %d", - rml->arg(2).toUInt(),rml->arg(1).toInt()); + rda->syslog(LOG_INFO,"set default \"now\" cart to %06u on log machine %d", + rml->arg(2).toUInt(),rml->arg(1).toInt()); } else { air_logs[index]->setNextCart(rml->arg(2).toUInt()); - syslog(LOG_INFO,"set default \"next\" cart to %06u on log machine %d", - rml->arg(2).toUInt(),rml->arg(1).toInt()); + rda->syslog(LOG_INFO, + "set default \"next\" cart to %06u on log machine %d", + rml->arg(2).toUInt(),rml->arg(1).toInt()); } if(rml->echoRequested()) { rml->acknowledge(true); diff --git a/rdvairplayd/rdvairplayd.cpp b/rdvairplayd/rdvairplayd.cpp index b186b458..54d67b33 100644 --- a/rdvairplayd/rdvairplayd.cpp +++ b/rdvairplayd/rdvairplayd.cpp @@ -302,7 +302,7 @@ void MainObject::exitData() delete air_logs[i]; } rda->airplayConf()->setVirtualExitCode(RDAirPlayConf::ExitClean); - syslog(LOG_INFO,"exiting"); + rda->syslog(LOG_INFO,"exiting"); exit(0); } } diff --git a/ripcd/am16.cpp b/ripcd/am16.cpp index d42f004c..51cacb3c 100644 --- a/ripcd/am16.cpp +++ b/ripcd/am16.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the 360 Systems AM16 // -// (C) Copyright 2002-2013,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -24,8 +24,10 @@ #include #include -#include -#include +#include + +#include "am16.h" +#include "globals.h" Am16::Am16(RDMatrix *matrix,QObject *parent) : Switcher(matrix,parent) @@ -43,8 +45,8 @@ Am16::Am16(RDMatrix *matrix,QObject *parent) bt_data_ptr=0; if((bt_midi_socket=open(matrix->gpioDevice(),O_RDWR))<0) { - syslog(LOG_WARNING,"unable to open MIDI device at \"%s\"", - (const char *)matrix->gpioDevice()); + rda->syslog(LOG_WARNING,"unable to open MIDI device at \"%s\"", + (const char *)matrix->gpioDevice()); return; } sockopt=O_NONBLOCK; @@ -177,7 +179,7 @@ void Am16::readyReadData(int sock) void Am16::timeoutData() { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "AM16 driver: timed out waiting for crosspoint map, %lu event(s) lost", bt_pending_inputs.size()); bt_pending_inputs.clear(); @@ -233,17 +235,17 @@ void Am16::ProcessMessage(char *msg,int len) break; case 0x7E: - syslog(LOG_NOTICE,"AM16 driver: data error"); + rda->syslog(LOG_NOTICE,"AM16 driver: data error"); break; case 0x7F: - syslog(LOG_NOTICE, + rda->syslog(LOG_NOTICE, "AM16 driver: memory protect mode is on, cannot change crosspoints"); break; default: - syslog(LOG_NOTICE,"AM16 driver: received unknown ACK code [%d]", - 0xFF&msg[7]); + rda->syslog(LOG_NOTICE,"AM16 driver: received unknown ACK code [%d]", + 0xFF&msg[7]); break; } break; @@ -252,8 +254,9 @@ void Am16::ProcessMessage(char *msg,int len) for(int i=0;isyslog(LOG_DEBUG, + "AM16 driver: received unrecognized MIDI message [%s]", + (const char *)str); break; } } diff --git a/ripcd/btadms4422.cpp b/ripcd/btadms4422.cpp index 82cf2b92..8869affd 100644 --- a/ripcd/btadms4422.cpp +++ b/ripcd/btadms4422.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the BroadcastTools ADMS 44.22 // -// (C) Copyright 2002-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -65,8 +65,8 @@ BtAdms4422::BtAdms4422(RDMatrix *matrix,QObject *parent) writeBlock(QString().sprintf("*%uUM0\r\n",BTADMS4422_UNIT_ID),7); } else { - syslog(LOG_WARNING,"failed to open port \"%s\"", - (const char *)tty->port().toUtf8()); + rda->syslog(LOG_WARNING,"failed to open port \"%s\"", + (const char *)tty->port().toUtf8()); } } delete tty; diff --git a/ripcd/btgpi16.cpp b/ripcd/btgpi16.cpp index 90a6241c..9a9ac02c 100644 --- a/ripcd/btgpi16.cpp +++ b/ripcd/btgpi16.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for the BroadcastTools GPI-16 // -// (C) Copyright 2002-2005,2010,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -57,8 +57,8 @@ BtGpi16::BtGpi16(RDMatrix *matrix,QObject *parent) bt_device->setWordLength(tty->dataBits()); bt_device->setParity(tty->parity()); if(!bt_device->open(QIODevice::Unbuffered|QIODevice::ReadWrite)) { - syslog(LOG_WARNING,"unable to open serial device \"%s\"", - (const char *)tty->port().toUtf8()); + rda->syslog(LOG_WARNING,"unable to open serial device \"%s\"", + (const char *)tty->port().toUtf8()); } } delete tty; diff --git a/ripcd/btsentinel4web.cpp b/ripcd/btsentinel4web.cpp index f8faff3a..806e817a 100644 --- a/ripcd/btsentinel4web.cpp +++ b/ripcd/btsentinel4web.cpp @@ -2,7 +2,7 @@ // // Rivendell switcher driver for the BroadcastTools Sentinel4Web AES switcher // -// (C) Copyright 2002-2013,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -134,8 +134,8 @@ void BtSentinel4Web::processCommand(RDMacro *cmd) void BtSentinel4Web::connectedData() { bt_socket->writeBlock("*0U",3); - syslog(LOG_INFO,"connected to BT Sentinel4Web device at %s", - (const char *)bt_socket->peerAddress().toString().toUtf8()); + rda->syslog(LOG_INFO,"connected to BT Sentinel4Web device at %s", + (const char *)bt_socket->peerAddress().toString().toUtf8()); } @@ -158,8 +158,8 @@ void BtSentinel4Web::readyReadData() void BtSentinel4Web::watchdogData() { - syslog(LOG_WARNING,"lost connection to BT Sentinel4Web device at %s", - (const char *)bt_socket->peerAddress().toString().toUtf8()); + rda->syslog(LOG_WARNING,"lost connection to BT Sentinel4Web device at %s", + (const char *)bt_socket->peerAddress().toString().toUtf8()); bt_watchdog_reset_timer->start(BTSENTINEL4WEB_WATCHDOG_INTERVAL,true); } diff --git a/ripcd/btu41mlrweb.cpp b/ripcd/btu41mlrweb.cpp index dcc141dc..404f29ac 100644 --- a/ripcd/btu41mlrweb.cpp +++ b/ripcd/btu41mlrweb.cpp @@ -2,7 +2,7 @@ // // Rivendell switcher driver for the BroadcastTools Universal 4.1 MLR>>Web // -// (C) Copyright 2017 Fred Gleason +// (C) Copyright 2017-2019 Fred Gleason // // 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 @@ -18,7 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include #include "btu41mlrweb.h" @@ -112,9 +112,9 @@ void BtU41MlrWeb::processCommand(RDMacro *cmd) void BtU41MlrWeb::connectedData() { - syslog(LOG_INFO, - "connection to BroadcastTools device at %s:%u established", - (const char *)bt_ip_address.toString(),0xffff&bt_ip_port); + rda->syslog(LOG_INFO, + "connection to BroadcastTools device at %s:%u established", + (const char *)bt_ip_address.toString(),0xffff&bt_ip_port); bt_watchdog_active=false; SendCommand("*0SPA"); bt_keepalive_timer->start(BTU41MLRWEB_KEEPALIVE_INTERVAL); @@ -162,9 +162,9 @@ void BtU41MlrWeb::keepaliveData() void BtU41MlrWeb::watchdogData() { if(!bt_watchdog_active) { - syslog(LOG_WARNING, - "connection to BroadcastTools device at %s:%u lost, attempting reconnect", - (const char *)bt_ip_address.toString(),0xffff&bt_ip_port); + rda->syslog(LOG_WARNING, + "connection to BroadcastTools device at %s:%u lost, attempting reconnect", + (const char *)bt_ip_address.toString(),0xffff&bt_ip_port); bt_keepalive_timer->stop(); bt_watchdog_active=true; } @@ -175,7 +175,7 @@ void BtU41MlrWeb::watchdogData() void BtU41MlrWeb::ProcessCommand(const QString &cmd) { - // syslog(LOG_NOTICE,"ProcessCommand(%s)\n",(const char *)cmd); + // rda->syslog(LOG_NOTICE,"ProcessCommand(%s)\n",(const char *)cmd); QStringList cmds=cmd.split(","); diff --git a/ripcd/harlond.cpp b/ripcd/harlond.cpp index c67b3792..2e957766 100644 --- a/ripcd/harlond.cpp +++ b/ripcd/harlond.cpp @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include +#include + #include "globals.h" #include "harlond.h" @@ -203,9 +203,9 @@ void Harlond::socketConnectedData() void Harlond::socketDisconnectedData() { bt_watchdog_timer->start(HARLOND_RECONNECT_INTERVAL,true); - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to harlond device at %s:%d closed, attempting reconnect", - (const char *)bt_ip_address.toString().toUtf8(), + (const char *)bt_ip_address.toString().toUtf8(), bt_tcp_port); if(bt_stop_cart>0) { executeMacroCart(bt_stop_cart); @@ -236,17 +236,17 @@ void Harlond::socketErrorData(int err) bt_watchdog_timer->start(HARLOND_RECONNECT_INTERVAL,true); switch(err) { case Q3Socket::ErrConnectionRefused: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to harlond device at %s:%d refused, attempting reconnect", - (const char *)bt_ip_address.toString().toUtf8(), + (const char *)bt_ip_address.toString().toUtf8(), bt_tcp_port); break; default: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "received network error %d from harlond device at %s:%d, attempting reconnect", - err, - (const char *)bt_ip_address.toString().toUtf8(), + err, + (const char *)bt_ip_address.toString().toUtf8(), bt_tcp_port); break; } @@ -269,18 +269,18 @@ void Harlond::ProcessResponse(const QString &str) if(cmds[0]=="PW") { if(cmds.size()==2) { if(cmds[1]=="+") { - syslog(LOG_INFO, - "connection to harlond device at %s:%d established", - (const char *)bt_ip_address.toString().toUtf8(), + rda->syslog(LOG_INFO, + "connection to harlond device at %s:%d established", + (const char *)bt_ip_address.toString().toUtf8(), bt_tcp_port); bt_socket->writeBlock("SS!",3); return; } } - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to harlond device at %s:%d refused, invalid password", - (const char *)bt_ip_address.toString().toUtf8(), - bt_tcp_port); + (const char *)bt_ip_address.toString().toUtf8(), + bt_tcp_port); } if(cmds[0]=="ON") { @@ -381,7 +381,7 @@ bool Harlond::TakeCrosspoint(int input,int output) for(int i=1;isyslog(LOG_DEBUG,"inputs: %d",bt_inputs); for(int i=input+1;i<=bt_inputs;i++) { RemoveCrosspoint(i,output); diff --git a/ripcd/livewire_lwrpaudio.cpp b/ripcd/livewire_lwrpaudio.cpp index 18d716d0..c363cf37 100644 --- a/ripcd/livewire_lwrpaudio.cpp +++ b/ripcd/livewire_lwrpaudio.cpp @@ -168,9 +168,9 @@ void LiveWireLwrpAudio::processCommand(RDMacro *cmd) void LiveWireLwrpAudio::nodeConnectedData(unsigned id) { - syslog(LOG_INFO, - "connection established to LiveWire node at \"%s\"", - (const char *)livewire_nodes[id]->hostname().toUtf8()); + rda->syslog(LOG_INFO, + "connection established to LiveWire node at \"%s\"", + (const char *)livewire_nodes[id]->hostname().toUtf8()); } @@ -233,5 +233,5 @@ void LiveWireLwrpAudio::destinationChangedData(unsigned id,RDLiveWireDestination void LiveWireLwrpAudio::watchdogStateChangedData(unsigned id,const QString &msg) { - syslog(LOG_WARNING,msg); + rda->syslog(LOG_WARNING,msg); } diff --git a/ripcd/livewire_lwrpgpio.cpp b/ripcd/livewire_lwrpgpio.cpp index 3cfc3a4d..dd015466 100644 --- a/ripcd/livewire_lwrpgpio.cpp +++ b/ripcd/livewire_lwrpgpio.cpp @@ -2,7 +2,7 @@ // // A Rivendell LWRP GPIO driver for LiveWire networks. // -// (C) Copyright 2013,2016-2018 Fred Gleason +// (C) Copyright 2013-2019 Fred Gleason // // 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 @@ -18,8 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - +#include #include #include @@ -207,18 +206,19 @@ void LiveWireLwrpGpio::connectedData(unsigned id) gpio_gpo_limit=RD_LIVEWIRE_GPIO_BUNDLE_SIZE*gpio_livewire->gpos(); } - syslog(LOG_DEBUG,"livewire LWRP gpio driver connected to %s at %s:%d", - (const char *)gpio_livewire->deviceName(), - (const char *)gpio_livewire->hostname(), - 0xFFFF&gpio_livewire->tcpPort()); + rda->syslog(LOG_DEBUG,"livewire LWRP gpio driver connected to %s at %s:%d", + (const char *)gpio_livewire->deviceName(), + (const char *)gpio_livewire->hostname(), + 0xFFFF&gpio_livewire->tcpPort()); } void LiveWireLwrpGpio::watchdogStateChangedData(unsigned id,const QString &msg) { - syslog(LOG_WARNING,"livewire LWRP driver watchdog update for device %s at %s:%d: %s", - (const char *)gpio_livewire->deviceName(), - (const char *)gpio_livewire->hostname(), - 0xFFFF&gpio_livewire->tcpPort(), - (const char *)msg); + rda->syslog(LOG_WARNING, + "livewire LWRP driver watchdog update for device %s at %s:%d: %s", + (const char *)gpio_livewire->deviceName(), + (const char *)gpio_livewire->hostname(), + 0xFFFF&gpio_livewire->tcpPort(), + (const char *)msg); } diff --git a/ripcd/livewire_mcastgpio.cpp b/ripcd/livewire_mcastgpio.cpp index 23305ddc..beea3bdb 100644 --- a/ripcd/livewire_mcastgpio.cpp +++ b/ripcd/livewire_mcastgpio.cpp @@ -2,7 +2,7 @@ // // A Rivendell multicast GPIO driver for LiveWire networks. // -// (C) Copyright 2013,2016-2018 Fred Gleason +// (C) Copyright 2013-2019 Fred Gleason // // 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 @@ -97,7 +97,8 @@ LiveWireMcastGpio::LiveWireMcastGpio(RDMatrix *matrix,QObject *parent) // GPIO Write Socket // if((livewire_gpio_write_socket=socket(PF_INET,SOCK_DGRAM,0))<0) { - syslog(LOG_ERR,"unable to create GPIO write socket [%s]",strerror(errno)); + rda->syslog(LOG_ERR,"unable to create GPIO write socket [%s]", + strerror(errno)); return; } sockopt=O_NONBLOCK; @@ -108,7 +109,8 @@ LiveWireMcastGpio::LiveWireMcastGpio(RDMatrix *matrix,QObject *parent) sa.sin_addr.s_addr= htonl(matrix->ipAddress(RDMatrix::Primary).ip4Addr()); if(bind(livewire_gpio_write_socket,(struct sockaddr *)&sa,sizeof(sa))<0) { - syslog(LOG_ERR,"unable to bind GPIO write socket [%s]",strerror(errno)); + rda->syslog(LOG_ERR,"unable to bind GPIO write socket [%s]", + strerror(errno)); return; } @@ -116,7 +118,8 @@ LiveWireMcastGpio::LiveWireMcastGpio(RDMatrix *matrix,QObject *parent) // GPIO Read Socket // if((livewire_gpio_read_socket=socket(PF_INET,SOCK_DGRAM,0))<0) { - syslog(LOG_ERR,"unable to create GPIO read socket [%s]",strerror(errno)); + rda->syslog(LOG_ERR,"unable to create GPIO read socket [%s]", + strerror(errno)); return; } sockopt=O_NONBLOCK; @@ -126,7 +129,7 @@ LiveWireMcastGpio::LiveWireMcastGpio(RDMatrix *matrix,QObject *parent) sa.sin_port=htons(RD_LIVEWIRE_GPIO_RECV_PORT); sa.sin_addr.s_addr=htonl(INADDR_ANY); if(bind(livewire_gpio_read_socket,(struct sockaddr *)&sa,sizeof(sa))<0) { - syslog(LOG_ERR,"unable to bind GPIO socket [%s]",strerror(errno)); + rda->syslog(LOG_ERR,"unable to bind GPIO socket [%s]",strerror(errno)); return; } livewire_gpio_notify= @@ -409,7 +412,7 @@ void LiveWireMcastGpio::ProcessGpoOut(int chan,unsigned line,bool state) htonl(livewire_surface_addresses[it->first].toIPv4Address()); } } - syslog(LOG_NOTICE,"using %s", + rda->syslog(LOG_NOTICE,"using %s", (const char *)QHostAddress(ntohl(sa.sin_addr.s_addr)).toString()); */ @@ -465,10 +468,10 @@ void LiveWireMcastGpio::subscribe(const uint32_t addr) const if(setsockopt(livewire_gpio_read_socket,SOL_IP,IP_ADD_MEMBERSHIP,&mreq, sizeof(mreq))!=0) { if(errno!=EADDRINUSE) { - syslog(LOG_WARNING,"unable to subscribe to %s on %s [%s]", - (const char *)AddressString(addr), - (const char *)livewire_interface_addr.toString(), - strerror(errno)); + rda->syslog(LOG_WARNING,"unable to subscribe to %s on %s [%s]", + (const char *)AddressString(addr), + (const char *)livewire_interface_addr.toString(), + strerror(errno)); } } } @@ -491,10 +494,10 @@ void LiveWireMcastGpio::unsubscribe(const uint32_t addr) const if(setsockopt(livewire_gpio_read_socket,SOL_IP,IP_DROP_MEMBERSHIP,&mreq, sizeof(mreq))!=0) { if(errno!=ENODEV) { - syslog(LOG_WARNING,"unable to unsubscribe from %s on %s [%s]", - (const char *)AddressString(addr), - (const char *)livewire_interface_addr.toString(), - strerror(errno)); + rda->syslog(LOG_WARNING,"unable to unsubscribe from %s on %s [%s]", + (const char *)AddressString(addr), + (const char *)livewire_interface_addr.toString(), + strerror(errno)); } } } diff --git a/ripcd/local_audio.cpp b/ripcd/local_audio.cpp index e551e8af..89b2cffc 100644 --- a/ripcd/local_audio.cpp +++ b/ripcd/local_audio.cpp @@ -368,7 +368,7 @@ hpi_err_t LocalAudio::LogHpi(hpi_err_t err,int lineno) if(err!=0) { HPI_GetErrorText(err,err_txt); - syslog(LOG_NOTICE,"HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); + rda->syslog(LOG_NOTICE,"HPI Error: %s, %s line %d",err_txt,__FILE__,lineno); } return err; } diff --git a/ripcd/local_macros.cpp b/ripcd/local_macros.cpp index ac699e9d..5a727bb4 100644 --- a/ripcd/local_macros.cpp +++ b/ripcd/local_macros.cpp @@ -37,10 +37,10 @@ void MainObject::gpiChangedData(int matrix,int line,bool state) { if(state) { - syslog(LOG_DEBUG,"GPI %d:%d ON",matrix,line+1); + rda->syslog(LOG_DEBUG,"GPI %d:%d ON",matrix,line+1); } else { - syslog(LOG_DEBUG,"GPI %d:%d OFF",matrix,line+1); + rda->syslog(LOG_DEBUG,"GPI %d:%d OFF",matrix,line+1); } ripcd_gpi_state[matrix][line]=state; BroadcastCommand(QString().sprintf("GI %d %d %d %d!",matrix,line,state, @@ -58,10 +58,10 @@ void MainObject::gpiChangedData(int matrix,int line,bool state) void MainObject::gpoChangedData(int matrix,int line,bool state) { if(state) { - syslog(LOG_DEBUG,"GPO %d:%d ON",matrix,line+1); + rda->syslog(LOG_DEBUG,"GPO %d:%d ON",matrix,line+1); } else { - syslog(LOG_DEBUG,"GPO %d:%d OFF",matrix,line+1); + rda->syslog(LOG_DEBUG,"GPO %d:%d OFF",matrix,line+1); } ripcd_gpo_state[matrix][line]=state; BroadcastCommand(QString().sprintf("GO %d %d %d %d!",matrix,line,state, @@ -175,9 +175,9 @@ void MainObject::LoadLocalMacros() q=new RDSqlQuery(sql); while(q->next()) { if(!LoadSwitchDriver(q->value(0).toInt())) { - syslog(LOG_WARNING, - "attempted to load unknown switcher driver for matrix %d", - q->value(0).toInt()); + rda->syslog(LOG_WARNING, + "attempted to load unknown switcher driver for matrix %d", + q->value(0).toInt()); } } delete q; @@ -243,9 +243,9 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) RDMatrix::GpioType gpio_type; QByteArray data; - syslog(LOG_DEBUG,"received rml: \"%s\" from %s", - (const char *)rml_in->toString().toUtf8(), - (const char *)rml_in->address().toString().toUtf8()); + rda->syslog(LOG_DEBUG,"received rml: \"%s\" from %s", + (const char *)rml_in->toString().toUtf8(), + (const char *)rml_in->address().toString().toUtf8()); RDMacro *rml=new RDMacro(); *rml=ForwardConvert(*rml_in); @@ -485,16 +485,16 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) if(fork()==0) { if(getuid()==0) { if(setegid(rda->config()->gid())<0) { - syslog(LOG_WARNING,"unable to set group id %d for RDPopup", - rda->config()->gid()); + rda->syslog(LOG_WARNING,"unable to set group id %d for RDPopup", + rda->config()->gid()); if(rml->echoRequested()) { rml->acknowledge(false); sendRml(rml); } } if(seteuid(rda->config()->uid())<0) { - syslog(LOG_WARNING,"unable to set user id %d for RDPopup", - rda->config()->uid()); + rda->syslog(LOG_WARNING,"unable to set user id %d for RDPopup", + rda->config()->uid()); if(rml->echoRequested()) { rml->acknowledge(false); sendRml(rml); @@ -506,7 +506,7 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) (const char *)rml->arg(0), (const char *)rml->arg(1), (const char *)RDEscapeString(rml->rollupArgs(2))))<0) { - syslog(LOG_WARNING,"RDPopup returned an error"); + rda->syslog(LOG_WARNING,"RDPopup returned an error"); } exit(0); } @@ -803,9 +803,9 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) // Startup the new // if(!LoadSwitchDriver(matrix_num)) { - syslog(LOG_WARNING, - "attempted to load unknown switcher driver for matrix %d", - matrix_num); + rda->syslog(LOG_WARNING, + "attempted to load unknown switcher driver for matrix %d", + matrix_num); } break; @@ -820,11 +820,11 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) } if((rml->arg(0).toInt()==0)&&ripc_onair_flag) { BroadcastCommand("TA 0!"); - syslog(LOG_DEBUG,"onair flag OFF"); + rda->syslog(LOG_DEBUG,"onair flag OFF"); } if((rml->arg(0).toInt()==1)&&(!ripc_onair_flag)) { BroadcastCommand("TA 1!"); - syslog(LOG_DEBUG,"onair flag ON"); + rda->syslog(LOG_DEBUG,"onair flag ON"); } ripc_onair_flag=rml->arg(0).toInt(); if(rml->echoRequested()) { @@ -859,8 +859,8 @@ void MainObject::RunLocalMacros(RDMacro *rml_in) str+=(rml->arg(i)+" "); } str+=rml->arg(rml->argQuantity()-1); - syslog(LOG_DEBUG,"sending \"%s\" to %s:%d",(const char *)str.toUtf8(), - (const char *)addr.toString().toUtf8(),rml->arg(1).toInt()); + rda->syslog(LOG_DEBUG,"sending \"%s\" to %s:%d",(const char *)str.toUtf8(), + (const char *)addr.toString().toUtf8(),rml->arg(1).toInt()); data=RDStringToData(str); ripcd_rml_send->writeDatagram(data,addr,(Q_UINT16)(rml->arg(1).toInt())); if(rml->echoRequested()) { diff --git a/ripcd/modbus.cpp b/ripcd/modbus.cpp index edbf5f06..c5797404 100644 --- a/ripcd/modbus.cpp +++ b/ripcd/modbus.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for Modbus TCP // -// (C) Copyright 2017-2018 Fred Gleason +// (C) Copyright 2017-2019 Fred Gleason // // 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 @@ -18,7 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include #include "modbus.h" @@ -174,9 +174,9 @@ void Modbus::processCommand(RDMacro *cmd) void Modbus::connectedData() { - syslog(LOG_INFO, - "connection to Modbus device at %s:%u established", - (const char *)modbus_ip_address.toString(),0xffff&modbus_ip_port); + rda->syslog(LOG_INFO, + "connection to Modbus device at %s:%u established", + (const char *)modbus_ip_address.toString(),0xffff&modbus_ip_port); modbus_watchdog_active=false; pollInputs(); } @@ -349,9 +349,9 @@ void Modbus::resetStateData(int line) void Modbus::watchdogData() { if(!modbus_watchdog_active) { - syslog(LOG_WARNING, - "connection to Modbus device at %s:%u lost, attempting reconnect", - (const char *)modbus_ip_address.toString(),0xffff&modbus_ip_port); + rda->syslog(LOG_WARNING, + "connection to Modbus device at %s:%u lost, attempting reconnect", + (const char *)modbus_ip_address.toString(),0xffff&modbus_ip_port); modbus_watchdog_active=true; } modbus_socket->close(); diff --git a/ripcd/modemlines.cpp b/ripcd/modemlines.cpp index 65bdd7ab..462de8a4 100644 --- a/ripcd/modemlines.cpp +++ b/ripcd/modemlines.cpp @@ -59,8 +59,8 @@ ModemLines::ModemLines(RDMatrix *matrix,QObject *parent) // gpio_tty=new RDTty(rda->station()->name(),matrix->port(RDMatrix::Primary)); if((gpio_fd=open(gpio_tty->port(),O_RDONLY))<0) { - syslog(LOG_WARNING,"unable to open tty \"%s\"", - (const char *)gpio_tty->port()); + rda->syslog(LOG_WARNING,"unable to open tty \"%s\"", + (const char *)gpio_tty->port()); return; } for(int i=0;isyslog(LOG_INFO,"connection to Quartz1 device at %s:%d established", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); } void Quartz1::connectionClosedData(int conn) { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to Quartz1 device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)sas_ipaddress[conn].toString().toUtf8(), - sas_ipport[conn]); + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true); } @@ -213,25 +213,25 @@ void Quartz1::errorData(int conn,int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - syslog(LOG_NOTICE, - "connection to Quartz1 device at %s:%d refused, attempting reconnect", - (const char *)sas_ipaddress[conn].toString().toUtf8(), - sas_ipport[conn]); + rda->syslog(LOG_NOTICE, + "connection to Quartz1 device at %s:%d refused, attempting reconnect", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "error on connection to Quartz1 device at %s:%d: Host Not Found", - (const char *)sas_ipaddress[conn].toString().toUtf8(), - sas_ipport[conn]); + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); break; case Q3Socket::ErrSocketRead: - syslog(LOG_WARNING, - "error on connection to Quartz1 device at %s:%d: Socket Read Error", - (const char *)sas_ipaddress[conn].toString().toUtf8(), - sas_ipport[conn]); + rda->syslog(LOG_WARNING, + "error on connection to Quartz1 device at %s:%d: Socket Read Error", + (const char *)sas_ipaddress[conn].toString().toUtf8(), + sas_ipport[conn]); break; } } diff --git a/ripcd/ripcd.cpp b/ripcd/ripcd.cpp index 9f6240d7..4c937ca4 100644 --- a/ripcd/ripcd.cpp +++ b/ripcd/ripcd.cpp @@ -108,7 +108,7 @@ MainObject::MainObject(QObject *parent) connect(ripcd_kill_mapper,SIGNAL(mapped(int)),this,SLOT(killData(int))); server=new QTcpServer(this); if(!server->listen(QHostAddress::Any,RIPCD_TCP_PORT)) { - syslog(LOG_ERR,"unable to bind ripc port"); + rda->syslog(LOG_ERR,"unable to bind ripc port"); exit(1); } connect(server,SIGNAL(newConnection()),this,SLOT(newConnectionData())); @@ -188,7 +188,7 @@ MainObject::MainObject(QObject *parent) ripcd_garbage_timer=new QTimer(this); connect(ripcd_garbage_timer,SIGNAL(timeout()),this,SLOT(garbageData())); - syslog(LOG_INFO,"started"); + rda->syslog(LOG_INFO,"started"); } @@ -219,7 +219,7 @@ void MainObject::newConnectionData() ripcd_kill_mapper->setMapping(ripcd_conns[i]->socket(),i); connect(ripcd_conns[i]->socket(),SIGNAL(connectionClosed()), ripcd_kill_mapper,SLOT(map())); - syslog(LOG_DEBUG,"added new connection %d",i); + rda->syslog(LOG_DEBUG,"added new connection %d",i); } @@ -229,8 +229,8 @@ void MainObject::notificationReceivedData(const QString &msg, RDNotification *notify=new RDNotification(); if(!notify->read(msg)) { - syslog(LOG_DEBUG,"invalid notification received from %s", - (const char *)addr.toString().toUtf8()); + rda->syslog(LOG_DEBUG,"invalid notification received from %s", + (const char *)addr.toString().toUtf8()); delete notify; return; } @@ -318,7 +318,7 @@ void MainObject::killData(int conn_id) { ripcd_conns[conn_id]->close(); ripcd_garbage_timer->start(1,true); - syslog(LOG_DEBUG,"closed connection %d",conn_id); + rda->syslog(LOG_DEBUG,"closed connection %d",conn_id); } @@ -337,7 +337,7 @@ void MainObject::exitTimerData() delete ripcd_switcher[i]; } } - syslog(LOG_INFO,"ripcd exiting normally"); + rda->syslog(LOG_INFO,"ripcd exiting normally"); exit(0); } } @@ -350,7 +350,7 @@ void MainObject::garbageData() if(ripcd_conns[i]->isClosing()) { delete ripcd_conns[i]; ripcd_conns[i]=NULL; - syslog(LOG_DEBUG,"cleaned up connection %d",i); + rda->syslog(LOG_DEBUG,"cleaned up connection %d",i); } } } @@ -507,7 +507,7 @@ bool MainObject::DispatchCommand(RipcdConnection *conn) msg=msg.left(msg.length()-1); RDNotification *notify=new RDNotification(); if(!notify->read(msg)) { - syslog(LOG_DEBUG,"invalid notification processed"); + rda->syslog(LOG_DEBUG,"invalid notification processed"); delete notify; return true; } @@ -572,8 +572,8 @@ void MainObject::ReadRmlSocket(QUdpSocket *sock,RDMacro::Role role, } } else { - syslog(LOG_DEBUG, - "rejected rml: \"%s\": on-air flag not active",buffer); + rda->syslog(LOG_DEBUG, + "rejected rml: \"%s\": on-air flag not active",buffer); break; } } @@ -593,10 +593,10 @@ void MainObject::ReadRmlSocket(QUdpSocket *sock,RDMacro::Role role, } } else { - syslog(LOG_DEBUG,"received malformed rml: \"%s\" from %s:%u", - buffer, - (const char *)sock->peerAddress().toString().toUtf8(), - sock->peerPort()); + rda->syslog(LOG_DEBUG,"received malformed rml: \"%s\" from %s:%u", + buffer, + (const char *)sock->peerAddress().toString().toUtf8(), + sock->peerPort()); if(echo) { macro.setRole(RDMacro::Reply); macro.setCommand(RDMacro::NN); diff --git a/ripcd/sas16000.cpp b/ripcd/sas16000.cpp index 4003566e..4372f407 100644 --- a/ripcd/sas16000.cpp +++ b/ripcd/sas16000.cpp @@ -117,7 +117,8 @@ void Sas16000::processCommand(RDMacro *cmd) void Sas16000::SendCommand(char *str) { - syslog(LOG_DEBUG,"sending USI cmd: %s",(const char *)PrettifyCommand(str)); + rda->syslog(LOG_DEBUG,"sending USI cmd: %s", + (const char *)PrettifyCommand(str)); sas_device->writeBlock(str,strlen(str)); } diff --git a/ripcd/sasusi.cpp b/ripcd/sasusi.cpp index 6a68b5c7..c820ca75 100644 --- a/ripcd/sasusi.cpp +++ b/ripcd/sasusi.cpp @@ -299,7 +299,8 @@ void SasUsi::processCommand(RDMacro *cmd) if(sas_relay_numbers[cmd->arg(2).toUInt()-1]>=0) { snprintf(str,256,"\x05R%d%04d\x0D\x0A",cmd_byte, sas_relay_numbers[cmd->arg(2).toUInt()-1]); - syslog(LOG_NOTICE,"USI: %s",(const char *)PrettifyCommand(str)); + rda->syslog(LOG_NOTICE,"USI: %s", + (const char *)PrettifyCommand(str)); SendCommand(str); cmd->acknowledge(true); emit rmlEcho(cmd); @@ -340,9 +341,9 @@ void SasUsi::ipConnect() void SasUsi::connectedData() { - syslog(LOG_INFO, - "connection to SasUsi device at %s:%d established", - (const char *)sas_ipaddress.toString().toUtf8(), + rda->syslog(LOG_INFO, + "connection to SasUsi device at %s:%d established", + (const char *)sas_ipaddress.toString().toUtf8(), sas_ipport); if(sas_start_cart>0) { ExecuteMacroCart(sas_start_cart); @@ -352,9 +353,9 @@ void SasUsi::connectedData() void SasUsi::connectionClosedData() { - syslog(LOG_WARNING, - "connection to SasUsi device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)sas_ipaddress.toString().toUtf8(), + rda->syslog(LOG_WARNING, + "connection to SasUsi device at %s:%d closed unexpectedly, attempting reconnect", + (const char *)sas_ipaddress.toString().toUtf8(), sas_ipport); if(sas_stop_cart>0) { ExecuteMacroCart(sas_stop_cart); @@ -391,25 +392,25 @@ void SasUsi::errorData(int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to SasUsi device at %s:%d refused, attempting reconnect", - (const char *)sas_ipaddress.toString().toUtf8(), + (const char *)sas_ipaddress.toString().toUtf8(), sas_ipport); sas_reconnect_timer->start(SASUSI_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "error on connection to SasUsi device at %s:%d: Host Not Found", - (const char *)sas_ipaddress.toString().toUtf8(), - sas_ipport); + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); break; case Q3Socket::ErrSocketRead: - syslog(LOG_WARNING, - "error on connection to SasUsi device at %s:%d: Socket Read Error", - (const char *)sas_ipaddress.toString().toUtf8(), - sas_ipport); + rda->syslog(LOG_WARNING, + "error on connection to SasUsi device at %s:%d: Socket Read Error", + (const char *)sas_ipaddress.toString().toUtf8(), + sas_ipport); break; } } @@ -417,7 +418,8 @@ void SasUsi::errorData(int err) void SasUsi::SendCommand(char *str) { - syslog(LOG_DEBUG,"sending USI cmd: %s",(const char *)PrettifyCommand(str)); + rda->syslog(LOG_DEBUG,"sending USI cmd: %s", + (const char *)PrettifyCommand(str)); switch(sas_porttype) { case RDMatrix::TtyPort: sas_device->writeBlock(str,strlen(str)); @@ -474,8 +476,8 @@ void SasUsi::DispatchCommand() } } - syslog(LOG_DEBUG,"received USI cmd: %s", - (const char *)PrettifyCommand(sas_buffer)); + rda->syslog(LOG_DEBUG,"received USI cmd: %s", + (const char *)PrettifyCommand(sas_buffer)); // diff --git a/ripcd/swauthority.cpp b/ripcd/swauthority.cpp index a33ee523..a8de5163 100644 --- a/ripcd/swauthority.cpp +++ b/ripcd/swauthority.cpp @@ -167,10 +167,10 @@ void SoftwareAuthority::connectedData() void SoftwareAuthority::connectionClosedData() { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to SoftwareAuthority device at %s:%d closed unexpectedly, attempting reconnect", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); if(swa_stop_cart>0) { ExecuteMacroCart(swa_stop_cart); } @@ -207,25 +207,25 @@ void SoftwareAuthority::errorData(int err) { switch((Q3Socket::Error)err) { case Q3Socket::ErrConnectionRefused: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to SoftwareAuthority device at %s:%d refused, attempting reconnect", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); swa_reconnect_timer->start(SWAUTHORITY_RECONNECT_INTERVAL,true); break; case Q3Socket::ErrHostNotFound: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "error on connection to SoftwareAuthority device at %s:%d: Host Not Found", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); break; case Q3Socket::ErrSocketRead: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "error on connection to SoftwareAuthority device at %s:%d: Socket Read Error", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); break; } } @@ -269,10 +269,10 @@ void SoftwareAuthority::DispatchCommand() return; } if(section=="login failure") { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "error on connection to SoftwareAuthority device at %s:%d: Login Failure", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); swa_socket->close(); return; } @@ -348,10 +348,10 @@ void SoftwareAuthority::DispatchCommand() q=new RDSqlQuery(sql); delete q; - syslog(LOG_INFO, - "connection to SoftwareAuthority device at %s:%d established", - (const char *)swa_ipaddress.toString().toUtf8(), - swa_ipport); + rda->syslog(LOG_INFO, + "connection to SoftwareAuthority device at %s:%d established", + (const char *)swa_ipaddress.toString().toUtf8(), + swa_ipport); if(swa_start_cart>0) { ExecuteMacroCart(swa_start_cart); } diff --git a/ripcd/switcher.cpp b/ripcd/switcher.cpp index 5a202bd9..d5dc4ec7 100644 --- a/ripcd/switcher.cpp +++ b/ripcd/switcher.cpp @@ -2,7 +2,7 @@ // // Abstract base class for Rivendell Switcher/GPIO drivers. // -// (C) Copyright 2002-2007,2010,2016 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -82,7 +82,7 @@ void Switcher::logBytes(uint8_t *data,int len) for(int i=0;isyslog(LOG_NOTICE,"bytes: %s",(const char *)str); } diff --git a/ripcd/vguest.cpp b/ripcd/vguest.cpp index 618ca654..1d00efc8 100644 --- a/ripcd/vguest.cpp +++ b/ripcd/vguest.cpp @@ -316,7 +316,7 @@ void VGuest::processCommand(RDMacro *cmd) (cmd->arg(1).toUInt()>vguest_displays_engine_nums.size())) { cmd->acknowledge(false); emit rmlEcho(cmd); - syslog(LOG_WARNING,"*** not enough vGuest arguments ***"); + rda->syslog(LOG_WARNING,"*** not enough vGuest arguments ***"); return; } if((vguest_displays_engine_nums[cmd->arg(1).toInt()-1]<0)|| @@ -324,7 +324,7 @@ void VGuest::processCommand(RDMacro *cmd) (vguest_displays_surface_nums[cmd->arg(1).toInt()-1]<0)) { cmd->acknowledge(false); emit rmlEcho(cmd); - syslog(LOG_WARNING,"*** invalid vGuest hex parameters ***"); + rda->syslog(LOG_WARNING,"*** invalid vGuest hex parameters ***"); return; } label=cmd->rollupArgs(5).left(VGUEST_MAX_TEXT_LENGTH); @@ -461,10 +461,10 @@ void VGuest::connectionClosedData(int id) { int interval=GetHoldoff(); if(!vguest_error_notified[id]) { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to vGuest device at %s:%d closed, attempting reconnect", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } if(vguest_stop_cart[id]>0) { @@ -541,10 +541,10 @@ void VGuest::errorData(int err,int id) case Q3Socket::ErrConnectionRefused: interval=GetHoldoff(); if(!vguest_error_notified[id]) { - syslog(LOG_WARNING, - "connection to vGuest device at %s:%d refused, attempting reconnect", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused, attempting reconnect", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } vguest_reconnect_timer[id]->start(interval,true); @@ -552,20 +552,20 @@ void VGuest::errorData(int err,int id) case Q3Socket::ErrHostNotFound: if(!vguest_error_notified[id]) { - syslog(LOG_WARNING, - "error on connection to vGuest device at %s:%d: Host Not Found", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_WARNING, + "error on connection to vGuest device at %s:%d: Host Not Found", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } break; case Q3Socket::ErrSocketRead: if(!vguest_error_notified[id]) { - syslog(LOG_WARNING, - "error on connection to vGuest device at %s:%d: Socket Read Error", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_WARNING, + "error on connection to vGuest device at %s:%d: Socket Read Error", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=true; } break; @@ -596,8 +596,9 @@ void VGuest::pingResponseData(int id) { vguest_socket[id]->clearPendingData(); vguest_socket[id]->close(); - syslog(LOG_WARNING,"vGuest connection to "+ - vguest_ipaddress[id].toString()+" timed out, restarting connection"); + rda->syslog(LOG_WARNING,"vGuest connection to "+ + vguest_ipaddress[id].toString()+ + " timed out, restarting connection"); } @@ -650,10 +651,10 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) switch(0xFF&cmd[3]) { case 0x0A: // Valid connection case 0x14: - syslog(LOG_INFO, - "connection to vGuest device at %s:%d established", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_INFO, + "connection to vGuest device at %s:%d established", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_error_notified[id]=false; if(vguest_start_cart[id]>0) { ExecuteMacroCart(vguest_start_cart[id]); @@ -668,40 +669,40 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) case 0x0B: // Invalid Username case 0x15: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to vGuest device at %s:%d refused: username invalid", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0C: // Invalid Password case 0x16: - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "connection to vGuest device at %s:%d refused: password invalid", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0D: // No vGuest Permission case 0x17: - syslog(LOG_WARNING, - "connection to vGuest device at %s:%d refused: no vGuest permission", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: no vGuest permission", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; case 0x0E: // No Profile case 0x18: - syslog(LOG_WARNING, - "connection to vGuest device at %s:%d refused: no profile assigned", - (const char *)vguest_ipaddress[id].toString().toUtf8(), - vguest_ipport[id]); + rda->syslog(LOG_WARNING, + "connection to vGuest device at %s:%d refused: no profile assigned", + (const char *)vguest_ipaddress[id].toString().toUtf8(), + vguest_ipport[id]); vguest_socket[id]->close(); connectionClosedData(id); break; @@ -715,9 +716,9 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) emit gpoChanged(vguest_matrix,linenum,true); } else { - syslog(LOG_DEBUG, - "unhandled vGuest command received: %s", - (const char *)RenderCommand(cmd,len).toUtf8()); + rda->syslog(LOG_DEBUG, + "unhandled vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); } break; @@ -728,9 +729,9 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) emit gpoChanged(vguest_matrix,linenum,false); } else { - syslog(LOG_DEBUG, - "unhandled vGuest command received: %s", - (const char *)RenderCommand(cmd,len).toUtf8()); + rda->syslog(LOG_DEBUG, + "unhandled vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); } break; @@ -744,8 +745,8 @@ void VGuest::DispatchCommand(char *cmd,int len,int id) break; default: - syslog(LOG_DEBUG,"unrecognized vGuest command received: %s", - (const char *)RenderCommand(cmd,len).toUtf8()); + rda->syslog(LOG_DEBUG,"unrecognized vGuest command received: %s", + (const char *)RenderCommand(cmd,len).toUtf8()); break; } } @@ -759,9 +760,9 @@ void VGuest::MetadataCommand(char *cmd,int len,int id) vguest_ping_response_timer[id]->stop(); } else { - syslog(LOG_DEBUG, - "vGuest system at %s understands ping, activating timeout monitoring", - (const char *)vguest_ipaddress[id].toString().toUtf8()); + rda->syslog(LOG_DEBUG, + "vGuest system at %s understands ping, activating timeout monitoring", + (const char *)vguest_ipaddress[id].toString().toUtf8()); } vguest_ping_timer[id]->start(VGUEST_PING_INTERVAL,true); break; diff --git a/ripcd/wheatnet_lio.cpp b/ripcd/wheatnet_lio.cpp index cb93e3ea..aa00c44a 100644 --- a/ripcd/wheatnet_lio.cpp +++ b/ripcd/wheatnet_lio.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for WheatNet LIO // -// (C) Copyright 2017-2018 Fred Gleason +// (C) Copyright 2017-2019 Fred Gleason // // 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 @@ -18,8 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - +#include #include #include @@ -171,9 +170,9 @@ void WheatnetLio::processCommand(RDMacro *cmd) void WheatnetLio::connectedData() { - syslog(LOG_INFO, - "connection to WheatNet LIO device at %s:%u established", - (const char *)lio_ip_address.toString(),0xffff&lio_ip_port); + rda->syslog(LOG_INFO, + "connection to WheatNet LIO device at %s:%u established", + (const char *)lio_ip_address.toString(),0xffff&lio_ip_port); lio_watchdog_active=false; SendCommand(""); } @@ -228,9 +227,9 @@ void WheatnetLio::pollData() void WheatnetLio::watchdogData() { if(!lio_watchdog_active) { - syslog(LOG_WARNING, - "connection to Wheatnet LIO device at %s:%u lost, attempting reconnect", - (const char *)lio_ip_address.toString(),0xffff&lio_ip_port); + rda->syslog(LOG_WARNING, + "connection to Wheatnet LIO device at %s:%u lost, attempting reconnect", + (const char *)lio_ip_address.toString(),0xffff&lio_ip_port); lio_watchdog_active=true; } lio_socket->close(); @@ -334,10 +333,10 @@ void WheatnetLio::ProcessLioevent(int chan,QString &cmd) } } else { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "WheatNet device at %s:%d sent invalid LIOEVENT LVL update [%s]", - (const char *)lio_ip_address.toString(), - lio_ip_port,(const char *)cmd); + (const char *)lio_ip_address.toString(), + lio_ip_port,(const char *)cmd); } if((chan+1)==lio_gpios) { lio_watchdog_timer->stop(); diff --git a/ripcd/wheatnet_slio.cpp b/ripcd/wheatnet_slio.cpp index 83995abb..87589a57 100644 --- a/ripcd/wheatnet_slio.cpp +++ b/ripcd/wheatnet_slio.cpp @@ -2,7 +2,7 @@ // // A Rivendell switcher driver for WheatNet SLIO // -// (C) Copyright 2017-2018 Fred Gleason +// (C) Copyright 2017-2019 Fred Gleason // // 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 @@ -18,8 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - +#include #include #include @@ -168,9 +167,9 @@ void WheatnetSlio::processCommand(RDMacro *cmd) void WheatnetSlio::connectedData() { - syslog(LOG_INFO, - "connection to WheatNet SLIO device at %s:%u established", - (const char *)slio_ip_address.toString(),0xffff&slio_ip_port); + rda->syslog(LOG_INFO, + "connection to WheatNet SLIO device at %s:%u established", + (const char *)slio_ip_address.toString(),0xffff&slio_ip_port); slio_watchdog_active=false; SendCommand(""); } @@ -225,9 +224,9 @@ void WheatnetSlio::pollData() void WheatnetSlio::watchdogData() { if(!slio_watchdog_active) { - syslog(LOG_WARNING, - "connection to Wheatnet SLIO device at %s:%u lost, attempting reconnect", - (const char *)slio_ip_address.toString(),0xffff&slio_ip_port); + rda->syslog(LOG_WARNING, + "connection to Wheatnet SLIO device at %s:%u lost, attempting reconnect", + (const char *)slio_ip_address.toString(),0xffff&slio_ip_port); slio_watchdog_active=true; } slio_socket->close(); @@ -331,10 +330,10 @@ void WheatnetSlio::ProcessSlioevent(int chan,QString &cmd) } } else { - syslog(LOG_WARNING, + rda->syslog(LOG_WARNING, "WheatNet device at %s:%d sent invalid SLIOEVENT LVL update [%s]", - (const char *)slio_ip_address.toString(), - slio_ip_port,(const char *)cmd); + (const char *)slio_ip_address.toString(), + slio_ip_port,(const char *)cmd); } if(chan==slio_gpios) { slio_poll_timer->start(50,true); diff --git a/utils/rddbconfig/rddbconfig.cpp b/utils/rddbconfig/rddbconfig.cpp index 79860a74..460b5225 100644 --- a/utils/rddbconfig/rddbconfig.cpp +++ b/utils/rddbconfig/rddbconfig.cpp @@ -29,9 +29,10 @@ #include #include -#include "rdconfig.h" -#include "rdpaths.h" -#include "dbversion.h" +#include +#include +#include +#include #include "../../icons/rivendell-22x22.xpm" @@ -204,9 +205,12 @@ void MainWidget::mismatchData() } else { QMessageBox::information(this,"Database Modified Successfully", - QString().sprintf("Modified database to version %d", RD_VERSION_DATABASE)); + QString().sprintf("Modified database to version %d", + RD_VERSION_DATABASE)); } - syslog(LOG_INFO,"modified database to version %d",RD_VERSION_DATABASE); + RDApplication::syslog(rd_config,LOG_INFO, + "modified database to version %d", + RD_VERSION_DATABASE); emit dbChanged(); } @@ -330,9 +334,9 @@ void MainWidget::backupData() QString().sprintf("Backed up %s database to %s", (const char *)rd_config->mysqlDbname(), (const char *)filename)); - syslog(LOG_INFO,"backed up %s database to %s", - (const char *)rd_config->mysqlDbname(), - (const char *)filename); + RDApplication::syslog(rd_config,LOG_INFO,"backed up %s database to %s", + (const char *)rd_config->mysqlDbname(), + (const char *)filename); } } } @@ -380,9 +384,9 @@ void MainWidget::restoreData() QString().sprintf("Restored %s database from %s", (const char *)rd_config->mysqlDbname(), (const char *)filename)); - syslog(LOG_INFO,"restored %s database from %s", - (const char *)rd_config->mysqlDbname(), - (const char *)filename); + RDApplication::syslog(rd_config,LOG_INFO,"restored %s database from %s", + (const char *)rd_config->mysqlDbname(), + (const char *)filename); } emit updateLabels(); startDaemons(); diff --git a/utils/rdimport/rdimport.cpp b/utils/rdimport/rdimport.cpp index db3425e0..dae818bf 100644 --- a/utils/rdimport/rdimport.cpp +++ b/utils/rdimport/rdimport.cpp @@ -2,7 +2,7 @@ // // A Batch Importer for Rivendell. // -// (C) Copyright 2002-2014,2016-2018 Fred Gleason +// (C) Copyright 2002-2019 Fred Gleason // // 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 @@ -2025,7 +2025,7 @@ void MainObject::Log(int prio,const QString &msg) const QString m=msg; if (import_drop_box||import_log_syslog||import_log_file) { - syslog(prio,m.replace(QRegExp("^rdimport: "),"").simplified()); + rda->syslog(prio,m.replace(QRegExp("^rdimport: "),"").simplified()); } else { if(prio==LOG_ERR) { diff --git a/utils/rdmaint/rdmaint.cpp b/utils/rdmaint/rdmaint.cpp index 7f607cff..7e992bc8 100644 --- a/utils/rdmaint/rdmaint.cpp +++ b/utils/rdmaint/rdmaint.cpp @@ -166,12 +166,12 @@ void MainObject::PurgeCuts() RDCart *cart=new RDCart(q1->value(0).toUInt()); if(cart->removeCut(rda->station(),rda->user(),q1->value(1).toString(), rda->config())) { - syslog(LOG_INFO,"purged cut %s", - (const char *)q1->value(1).toString().toUtf8()); + rda->syslog(LOG_INFO,"purged cut %s", + (const char *)q1->value(1).toString().toUtf8()); } else { - syslog(LOG_WARNING,"unable to purge cut %s: audio deletion error", - (const char *)q1->value(1).toString().toUtf8()); + rda->syslog(LOG_WARNING,"unable to purge cut %s: audio deletion error", + (const char *)q1->value(1).toString().toUtf8()); } if(q->value(2).toString()=="Y") { // Delete Empty Cart sql=QString("select CUT_NAME from CUTS where ")+ @@ -179,7 +179,7 @@ void MainObject::PurgeCuts() q2=new RDSqlQuery(sql); if(!q2->first()) { cart->remove(rda->station(),rda->user(),rda->config()); - syslog(LOG_INFO,"deleted purged cart %06u",cart->number()); + rda->syslog(LOG_INFO,"deleted purged cart %06u",cart->number()); } delete q2; } @@ -203,8 +203,8 @@ void MainObject::PurgeLogs() "(PURGE_DATE<\""+dt.date().toString("yyyy-MM-dd")+"\")"; q=new RDSqlQuery(sql); while(q->next()) { - syslog(LOG_INFO,"purged log %s", - (const char *)q->value(0).toString().toUtf8()); + rda->syslog(LOG_INFO,"purged log %s", + (const char *)q->value(0).toString().toUtf8()); RDLog *log=new RDLog(q->value(0).toString()); log->remove(rda->station(),rda->user(),rda->config()); delete log; @@ -363,9 +363,9 @@ void MainObject::RehashCuts() if((err=RDRehash::rehash(rda->station(),rda->user(),rda->config(), RDCut::cartNumber(q->value(0).toString()), RDCut::cutNumber(q->value(0).toString())))!=RDRehash::ErrorOk) { - syslog(LOG_WARNING,"failed to rehash cut %s [%s]", - (const char *)q->value(0).toString().toUtf8(), - (const char *)RDRehash::errorText(err).toUtf8()); + rda->syslog(LOG_WARNING,"failed to rehash cut %s [%s]", + (const char *)q->value(0).toString().toUtf8(), + (const char *)RDRehash::errorText(err).toUtf8()); } else { diff --git a/utils/rdpopup/rdpopup.cpp b/utils/rdpopup/rdpopup.cpp index 81adfcc4..ef26b3e9 100644 --- a/utils/rdpopup/rdpopup.cpp +++ b/utils/rdpopup/rdpopup.cpp @@ -28,10 +28,11 @@ #include #include +#include #include #include -#include +#include "rdpopup.h" // // Icons @@ -74,7 +75,7 @@ int main(int argc,char *argv[]) } // - // Open the syslog + // Open the config // RDConfig *config=new RDConfig(); config->load(); @@ -128,7 +129,7 @@ int main(int argc,char *argv[]) mb->exec(); delete mb; - syslog(LOG_INFO,"\"%s\" acknowledged",argv[argc-1]); + RDApplication::syslog(config,LOG_INFO,"\"%s\" acknowledged",argv[argc-1]); closelog(); return 0; diff --git a/web/rdxport/deleteaudio.cpp b/web/rdxport/deleteaudio.cpp index 6347fdf5..8188a187 100644 --- a/web/rdxport/deleteaudio.cpp +++ b/web/rdxport/deleteaudio.cpp @@ -66,7 +66,9 @@ void Xport::DeleteAudio() delete q; SendNotification(RDNotification::CartType,RDNotification::ModifyAction, QVariant(cartnum)); - syslog(LOG_NOTICE,"unlink(%s): %s",(const char *)RDCut::pathName(cartnum,cutnum).utf8(),strerror(errno)); + rda->syslog(LOG_DEBUG,"unlink(%s): %s", + (const char *)RDCut::pathName(cartnum,cutnum).utf8(), + strerror(errno)); delete cut; XmlExit("OK",200,"deleteaudio.cpp",LINE_NUMBER); } diff --git a/web/rdxport/rdxport.cpp b/web/rdxport/rdxport.cpp index 07b985ab..c97ba6e1 100644 --- a/web/rdxport/rdxport.cpp +++ b/web/rdxport/rdxport.cpp @@ -449,9 +449,10 @@ void Xport::XmlExit(const QString &str,int code,const QString &srcfile, delete xport_post; } if(code>=400) { - syslog(LOG_WARNING,"%s '%s' %s", - (const char *)str.toUtf8(),(const char *)srcfile.toUtf8(), - (srcline>0)?(const char *)QString().sprintf("line %d",srcline).toUtf8():""); + rda->syslog(LOG_WARNING,"%s '%s' %s", + (const char *)str.toUtf8(),(const char *)srcfile.toUtf8(), + (srcline>0)?(const char *)QString().sprintf("line %d",srcline). + toUtf8():""); } #ifdef RDXPORT_DEBUG if(srcline>0) { diff --git a/web/rdxport/tests.cpp b/web/rdxport/tests.cpp index ea09b18c..94cb143f 100644 --- a/web/rdxport/tests.cpp +++ b/web/rdxport/tests.cpp @@ -50,7 +50,7 @@ void Xport::SaveString() // // Process Request // - syslog(LOG_NOTICE,"SAVESTRING: |%s|",(const char *)string.utf8()); + rda->syslog(LOG_NOTICE,"SAVESTRING: |%s|",(const char *)string.utf8()); printf("Content-type: application/xml; charset: UTF-8\n"); printf("Status: 200\n\n"); printf("\n");