2018-01-31 Fred Gleason <fredg@paravelsystems.com>

* Converted rdairplay(1) to use RDApplication.
This commit is contained in:
Fred Gleason 2018-01-30 18:18:57 -05:00
parent f692a3ac0d
commit a8ac305bdd
22 changed files with 410 additions and 412 deletions

View File

@ -16599,3 +16599,5 @@
2018-01-30 Fred Gleason <fredg@paravelsystems.com> 2018-01-30 Fred Gleason <fredg@paravelsystems.com>
* Added an 'RDApplication'class. * Added an 'RDApplication'class.
* Converted rdlibrary(1) to use RDApplication. * Converted rdlibrary(1) to use RDApplication.
2018-01-31 Fred Gleason <fredg@paravelsystems.com>
* Converted rdairplay(1) to use RDApplication.

View File

@ -2,7 +2,7 @@
// //
// The button log widget for RDAirPlay // The button log widget for RDAirPlay
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -22,11 +22,12 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qpainter.h> #include <qpainter.h>
#include <rdapplication.h>
#include <rdlistviewitem.h> #include <rdlistviewitem.h>
#include <button_log.h> #include "button_log.h"
#include <colors.h> #include "colors.h"
#include <globals.h> #include "globals.h"
ButtonLog::ButtonLog(LogPlay *log,RDCae *cae,int id,RDAirPlayConf *conf, ButtonLog::ButtonLog(LogPlay *log,RDCae *cae,int id,RDAirPlayConf *conf,
bool allow_pause,QWidget *parent) bool allow_pause,QWidget *parent)
@ -68,8 +69,8 @@ ButtonLog::ButtonLog(LogPlay *log,RDCae *cae,int id,RDAirPlayConf *conf,
for(int i=0;i<BUTTON_PLAY_BUTTONS;i++) { for(int i=0;i<BUTTON_PLAY_BUTTONS;i++) {
log_line_box[i]=new LogLineBox(conf,this); log_line_box[i]=new LogLineBox(conf,this);
log_line_box[i]->setMode(LogLineBox::Full); log_line_box[i]->setMode(LogLineBox::Full);
log_line_box[i]->setAcceptDrops(rdstation_conf->enableDragdrop()); log_line_box[i]->setAcceptDrops(rda->station()->enableDragdrop());
log_line_box[i]->setAllowDrags(rdstation_conf->enableDragdrop()); log_line_box[i]->setAllowDrags(rda->station()->enableDragdrop());
log_line_box[i]->setGeometry(10+log_line_box[i]->sizeHint().height(), log_line_box[i]->setGeometry(10+log_line_box[i]->sizeHint().height(),
(log_line_box[i]->sizeHint().height()+12)*i, (log_line_box[i]->sizeHint().height()+12)*i,
log_line_box[i]->sizeHint().width(), log_line_box[i]->sizeHint().width(),
@ -91,8 +92,8 @@ ButtonLog::ButtonLog(LogPlay *log,RDCae *cae,int id,RDAirPlayConf *conf,
for(int i=BUTTON_PLAY_BUTTONS;i<BUTTON_TOTAL_BUTTONS;i++) { for(int i=BUTTON_PLAY_BUTTONS;i<BUTTON_TOTAL_BUTTONS;i++) {
log_line_box[i]=new LogLineBox(conf,this); log_line_box[i]=new LogLineBox(conf,this);
log_line_box[i]->setMode(LogLineBox::Half); log_line_box[i]->setMode(LogLineBox::Half);
log_line_box[i]->setAcceptDrops(rdstation_conf->enableDragdrop()); log_line_box[i]->setAcceptDrops(rda->station()->enableDragdrop());
log_line_box[i]->setAllowDrags(rdstation_conf->enableDragdrop()); log_line_box[i]->setAllowDrags(rda->station()->enableDragdrop());
log_line_box[i]->setGeometry(10+log_line_box[0]->sizeHint().height(), log_line_box[i]->setGeometry(10+log_line_box[0]->sizeHint().height(),
(log_line_box[0]->sizeHint().height()+12)*3+ (log_line_box[0]->sizeHint().height()+12)*3+
(log_line_box[i]->sizeHint().height()+12)*(i-3), (log_line_box[i]->sizeHint().height()+12)*(i-3),

View File

@ -2,7 +2,7 @@
// //
// Event Editor for RDAirPlay // Event Editor for RDAirPlay
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -23,10 +23,11 @@
#include <qpainter.h> #include <qpainter.h>
#include <qmessagebox.h> #include <qmessagebox.h>
#include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <edit_event.h> #include "edit_event.h"
#include <globals.h> #include "globals.h"
EditEvent::EditEvent(LogPlay *log,RDCae *cae,QWidget *parent) EditEvent::EditEvent(LogPlay *log,RDCae *cae,QWidget *parent)
: QDialog(parent,"",true) : QDialog(parent,"",true)
@ -132,9 +133,8 @@ EditEvent::EditEvent(LogPlay *log,RDCae *cae,QWidget *parent)
// //
// Cue Editor // Cue Editor
// //
edit_cue_edit= edit_cue_edit=new RDCueEdit(edit_cae,rda->station()->cueCard(),
new RDCueEdit(edit_cae,rdstation_conf->cueCard(), rda->station()->cuePort(),this);
rdstation_conf->cuePort(),this);
// //
// Cart Notes // Cart Notes

View File

@ -2,7 +2,7 @@
// //
// Global Variable Declarations for RDAirPlay // Global Variable Declarations for RDAirPlay
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -21,31 +21,18 @@
#ifndef GLOBALS_H #ifndef GLOBALS_H
#define GLOBALS_H #define GLOBALS_H
#include <rdstation.h>
#include <rdsystem.h>
#include <rdairplay_conf.h>
#include <rdaudio_port.h> #include <rdaudio_port.h>
#include <rduser.h>
#include <rdripc.h>
#include <rdcae.h>
#include <rdevent_player.h> #include <rdevent_player.h>
#include <rdcart_dialog.h> #include <rdcart_dialog.h>
#include <rdconfig.h>
// //
// Global Resources // Global Resources
// //
extern RDStation *rdstation_conf;
extern RDSystem *rdsystem_conf;
extern RDAirPlayConf *rdairplay_conf;
extern RDAudioPort *rdaudioport_conf; extern RDAudioPort *rdaudioport_conf;
extern RDUser *rduser;
extern RDRipc *rdripc;
extern RDEventPlayer *rdevent_player; extern RDEventPlayer *rdevent_player;
extern RDCartDialog *rdcart_dialog; extern RDCartDialog *rdcart_dialog;
extern void LogLine(RDConfig::LogPriority prio,const QString &line); extern void LogLine(RDConfig::LogPriority prio,const QString &line);
extern QString logfile; extern QString logfile;
extern RDConfig *air_config;
#endif // GLOBALS_H #endif // GLOBALS_H

View File

@ -2,7 +2,7 @@
// //
// The full log list for RDAirPlay // The full log list for RDAirPlay
// //
// (C) Copyright 2002-2006,2016-2017 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2006,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -22,17 +22,19 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qpainter.h> #include <qpainter.h>
#include <qmessagebox.h> #include <qmessagebox.h>
#include <rddb.h>
#include <rdconf.h>
#include <rdlistviewitem.h>
#include <rddebug.h>
#include <rdlog.h>
#include <rdcreate_log.h>
#include <list_log.h> #include <rdapplication.h>
#include <button_log.h> #include <rdconf.h>
#include <colors.h> #include <rdcreate_log.h>
#include <globals.h> #include <rddb.h>
#include <rddebug.h>
#include <rdlistviewitem.h>
#include <rdlog.h>
#include "button_log.h"
#include "colors.h"
#include "globals.h"
#include "list_log.h"
#include "../icons/play.xpm" #include "../icons/play.xpm"
#include "../icons/rml5.xpm" #include "../icons/rml5.xpm"
@ -162,10 +164,10 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
list_log_list->setFont(list_font); list_log_list->setFont(list_font);
int y=0; int y=0;
int h=sizeHint().height()-60; int h=sizeHint().height()-60;
if(rdairplay_conf->showCounters()) { if(rda->airplayConf()->showCounters()) {
h-=60; h-=60;
} }
if(rdairplay_conf->hourSelectorEnabled()) { if(rda->airplayConf()->hourSelectorEnabled()) {
y+=80; y+=80;
h-=80; h-=80;
list_hour_selector->setGeometry(0,0,sizeHint().width(),80); list_hour_selector->setGeometry(0,0,sizeHint().width(),80);
@ -233,7 +235,7 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
label->setFont(label_font); label->setFont(label_font);
label->setAlignment(AlignCenter); label->setAlignment(AlignCenter);
label->setBackgroundColor(QColor(system_mid_color)); label->setBackgroundColor(QColor(system_mid_color));
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
label->hide(); label->hide();
} }
@ -247,7 +249,7 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
list_stoptime_label->setFont(label_font); list_stoptime_label->setFont(label_font);
list_stoptime_label->setAlignment(AlignRight|AlignVCenter); list_stoptime_label->setAlignment(AlignRight|AlignVCenter);
list_stoptime_label->setBackgroundColor(QColor(system_mid_color)); list_stoptime_label->setBackgroundColor(QColor(system_mid_color));
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
list_stoptime_edit->hide(); list_stoptime_edit->hide();
list_stoptime_label->hide(); list_stoptime_label->hide();
} }
@ -262,7 +264,7 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
list_endtime_label->setFont(label_font); list_endtime_label->setFont(label_font);
list_endtime_label->setAlignment(AlignRight|AlignVCenter); list_endtime_label->setAlignment(AlignRight|AlignVCenter);
list_endtime_label->setBackgroundColor(QColor(system_mid_color)); list_endtime_label->setBackgroundColor(QColor(system_mid_color));
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
list_endtime_edit->hide(); list_endtime_edit->hide();
list_endtime_label->hide(); list_endtime_label->hide();
} }
@ -289,7 +291,7 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
list_head_button->setText(tr("Audition\nHead")); list_head_button->setText(tr("Audition\nHead"));
list_head_button->setFocusPolicy(QWidget::NoFocus); list_head_button->setFocusPolicy(QWidget::NoFocus);
connect(list_head_button,SIGNAL(clicked()),this,SLOT(headButtonData())); connect(list_head_button,SIGNAL(clicked()),this,SLOT(headButtonData()));
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
list_head_button->hide(); list_head_button->hide();
} }
@ -303,7 +305,7 @@ ListLog::ListLog(LogPlay *log,RDCae *cae,int id,bool allow_pause,
list_tail_button->setText(tr("Audition\nTail")); list_tail_button->setText(tr("Audition\nTail"));
list_tail_button->setFocusPolicy(QWidget::NoFocus); list_tail_button->setFocusPolicy(QWidget::NoFocus);
connect(list_tail_button,SIGNAL(clicked()),this,SLOT(tailButtonData())); connect(list_tail_button,SIGNAL(clicked()),this,SLOT(tailButtonData()));
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
list_tail_button->hide(); list_tail_button->hide();
} }
@ -872,7 +874,7 @@ void ListLog::loadButtonData()
break; break;
case ListLogs::SaveAs: case ListLogs::SaveAs:
if(!RDLog::create(name,svcname,rdripc->user(),&err_msg,air_config)) { if(!RDLog::create(name,svcname,rda->ripc()->user(),&err_msg,rda->config())) {
QMessageBox::warning(this,"RDAirPlay - "+tr("Error"),err_msg); QMessageBox::warning(this,"RDAirPlay - "+tr("Error"),err_msg);
return; return;
} }
@ -1085,7 +1087,7 @@ void ListLog::cartDroppedData(int line,RDLogLine *ll)
void ListLog::paintEvent(QPaintEvent *e) void ListLog::paintEvent(QPaintEvent *e)
{ {
if(!rdairplay_conf->showCounters()) { if(!rda->airplayConf()->showCounters()) {
return; return;
} }
int x=336; int x=336;

View File

@ -2,7 +2,7 @@
// //
// Select a Rivendell Log // Select a Rivendell Log
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -22,11 +22,12 @@
#include <qpushbutton.h> #include <qpushbutton.h>
#include <rdadd_log.h> #include <rdadd_log.h>
#include <rdapplication.h>
#include <rddb.h> #include <rddb.h>
#include <rdescape_string.h> #include <rdescape_string.h>
#include <globals.h> #include "globals.h"
#include <list_logs.h> #include "list_logs.h"
ListLogs::ListLogs(LogPlay *log,QWidget *parent) ListLogs::ListLogs(LogPlay *log,QWidget *parent)
: QDialog(parent,"",true) : QDialog(parent,"",true)
@ -49,7 +50,7 @@ ListLogs::ListLogs(LogPlay *log,QWidget *parent)
// Filter Widget // Filter Widget
// //
list_filter_widget= list_filter_widget=
new RDLogFilter(RDLogFilter::StationFilter,rduser,air_config,this); new RDLogFilter(RDLogFilter::StationFilter,rda->user(),rda->config(),this);
connect(list_filter_widget,SIGNAL(filterChanged(const QString &)), connect(list_filter_widget,SIGNAL(filterChanged(const QString &)),
this,SLOT(filterChangedData(const QString &))); this,SLOT(filterChangedData(const QString &)));
@ -127,10 +128,10 @@ int ListLogs::exec(QString *logname,QString *svcname,RDLogLock **log_lock)
list_logname=logname; list_logname=logname;
list_svcname=svcname; list_svcname=svcname;
list_log_lock=log_lock; list_log_lock=log_lock;
list_saveas_button->setEnabled(rduser->createLog()); list_saveas_button->setEnabled(rda->user()->createLog());
QStringList services_list; QStringList services_list;
QString sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+ QString sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+
"STATION_NAME=\""+RDEscapeString(rdstation_conf->name())+"\""; "STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\"";
RDSqlQuery *q=new RDSqlQuery(sql); RDSqlQuery *q=new RDSqlQuery(sql);
services_list.push_back(tr("ALL")); services_list.push_back(tr("ALL"));
while(q->next()) { while(q->next()) {
@ -179,7 +180,7 @@ void ListLogs::saveButtonData()
saveAsButtonData(); saveAsButtonData();
} }
else { else {
*list_log_lock=new RDLogLock(*list_logname,rduser,rdstation_conf,this); *list_log_lock=new RDLogLock(*list_logname,rda->user(),rda->station(),this);
if(!TryLock(*list_log_lock)) { if(!TryLock(*list_log_lock)) {
delete *list_log_lock; delete *list_log_lock;
*list_log_lock=NULL; *list_log_lock=NULL;
@ -202,8 +203,8 @@ void ListLogs::saveAsButtonData()
QString logname; QString logname;
QString svcname=*list_svcname; QString svcname=*list_svcname;
RDAddLog *log; RDAddLog *log;
log=new RDAddLog(&logname,&svcname,RDLogFilter::StationFilter,rduser, log=new RDAddLog(&logname,&svcname,RDLogFilter::StationFilter,rda->user(),
rdstation_conf,tr("Rename Log"),this); rda->station(),tr("Rename Log"),this);
if(log->exec()<0) { if(log->exec()<0) {
delete log; delete log;
return; return;

View File

@ -2,7 +2,7 @@
// //
// Local RML Macros for the Rivendell's RDAirPlay // Local RML Macros for the Rivendell's RDAirPlay
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -20,13 +20,14 @@
#include <qfontmetrics.h> #include <qfontmetrics.h>
#include <rdmacro.h> #include <rdapplication.h>
#include <rdairplay.h>
#include <rdescape_string.h>
#include <rddb.h> #include <rddb.h>
#include <rdescape_string.h>
#include <rdmacro.h>
#include <globals.h> #include "globals.h"
#include <button_log.h> #include "button_log.h"
#include "rdairplay.h"
void MainWidget::RunLocalMacros(RDMacro *rml) void MainWidget::RunLocalMacros(RDMacro *rml)
{ {
@ -66,7 +67,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -92,7 +93,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -100,14 +101,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((rml->argQuantity()<1)||(rml->argQuantity()>3)) { if((rml->argQuantity()<1)||(rml->argQuantity()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -119,7 +120,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(!RDLog::exists(logname)) { if(!RDLog::exists(logname)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -161,7 +162,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -169,14 +170,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=2) { if(rml->argQuantity()!=2) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -184,7 +185,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(!RDLog::exists(logname)) { if(!RDLog::exists(logname)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -195,14 +196,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=2) { if(rml->argQuantity()!=2) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -210,14 +211,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(1).toInt()>=air_log[rml->arg(0).toInt()-1]->size())) { (rml->arg(1).toInt()>=air_log[rml->arg(0).toInt()-1]->size())) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
air_log[rml->arg(0).toInt()-1]->makeNext(rml->arg(1).toInt()); air_log[rml->arg(0).toInt()-1]->makeNext(rml->arg(1).toInt());
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -225,7 +226,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=1) { if(rml->argQuantity()!=1) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -233,14 +234,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(0).toInt()>BUTTON_TOTAL_BUTTONS)) { (rml->arg(0).toInt()>BUTTON_TOTAL_BUTTONS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
return; return;
} }
} }
air_button_list->startButton(rml->arg(0).toInt()-1); air_button_list->startButton(rml->arg(0).toInt()-1);
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -248,14 +249,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<5) { if(rml->argQuantity()<5) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -265,7 +266,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) { (rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -280,7 +281,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
rml->arg(rml->argQuantity()-1).toString()); rml->arg(rml->argQuantity()-1).toString());
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -288,14 +289,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=4) { if(rml->argQuantity()!=4) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -306,7 +307,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(3).toUInt()>999999)) { (rml->arg(3).toUInt()>999999)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -314,7 +315,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
rml->arg(1).toInt()-1,rml->arg(3).toUInt()); rml->arg(1).toInt()-1,rml->arg(3).toUInt());
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -322,14 +323,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=2) { if(rml->argQuantity()!=2) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -337,7 +338,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(1).toInt()>=air_log[rml->arg(0).toInt()-1]->size())) { (rml->arg(1).toInt()>=air_log[rml->arg(0).toInt()-1]->size())) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -346,14 +347,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
RDLogLine::StartMacro)) { RDLogLine::StartMacro)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -361,7 +362,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((rml->argQuantity()!=1)&&(rml->argQuantity()!=2)) { if((rml->argQuantity()!=1)&&(rml->argQuantity()!=2)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -370,7 +371,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((mach<0)||(mach>RDAIRPLAY_LOG_QUANTITY)) { if((mach<0)||(mach>RDAIRPLAY_LOG_QUANTITY)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -391,13 +392,13 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
default: default:
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
return; return;
} }
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -405,14 +406,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((rml->argQuantity()<1)||(rml->argQuantity()>3)) { if((rml->argQuantity()<1)||(rml->argQuantity()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -420,7 +421,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((rml->arg(1).toInt()<1)||(rml->arg(1).toInt()>2)) { if((rml->arg(1).toInt()<1)||(rml->arg(1).toInt()>2)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -428,7 +429,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if((rml->arg(2).toInt()<0)||(rml->arg(2).toInt()>1)) { if((rml->arg(2).toInt()<0)||(rml->arg(2).toInt()>1)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -456,7 +457,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -464,14 +465,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<3 || rml->argQuantity()>5) { if(rml->argQuantity()<3 || rml->argQuantity()>5) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -481,7 +482,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) { (rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -513,7 +514,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -521,14 +522,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<1 || rml->argQuantity()>3) { if(rml->argQuantity()<1 || rml->argQuantity()>3) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -556,7 +557,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -564,14 +565,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<3 || rml->argQuantity()>4) { if(rml->argQuantity()<3 || rml->argQuantity()>4) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -596,7 +597,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -604,14 +605,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<3 || rml->argQuantity()>6) { if(rml->argQuantity()<3 || rml->argQuantity()>6) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -621,7 +622,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) { (rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -665,7 +666,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -673,14 +674,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<3 || rml->argQuantity()>4) { if(rml->argQuantity()<3 || rml->argQuantity()>4) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -690,7 +691,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) { (rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -704,7 +705,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(ret); rml->acknowledge(ret);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -712,14 +713,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()<5 || rml->argQuantity()>6) { if(rml->argQuantity()<5 || rml->argQuantity()>6) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) { if(!GetPanel(rml->arg(0).toString(),&panel_type,&panel_number)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -729,7 +730,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) { (rml->arg(2).toInt()>AIR_PANEL_BUTTON_ROWS)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -744,7 +745,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -753,14 +754,14 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=1) { if(rml->argQuantity()!=1) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<0)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -777,7 +778,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -785,7 +786,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=2) { if(rml->argQuantity()!=2) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -793,7 +794,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(1).toUInt()>999999)) { (rml->arg(1).toUInt()>999999)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -811,7 +812,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -819,27 +820,27 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=1) { if(rml->argQuantity()!=1) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) { if((rml->arg(0).toInt()<1)||(rml->arg(0).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(!air_log[rml->arg(0).toInt()-1]->refresh()) { if(!air_log[rml->arg(0).toInt()-1]->refresh()) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -847,7 +848,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
if(rml->argQuantity()!=3) { if(rml->argQuantity()!=3) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -855,21 +856,21 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
(rml->arg(0).toString().lower()!="next")) { (rml->arg(0).toString().lower()!="next")) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if((rml->arg(1).toInt()<1)||(rml->arg(1).toInt()>3)) { if((rml->arg(1).toInt()<1)||(rml->arg(1).toInt()>3)) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
if(rml->arg(2).toUInt()>999999) { if(rml->arg(2).toUInt()>999999) {
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(false); rml->acknowledge(false);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
return; return;
} }
@ -881,7 +882,7 @@ void MainWidget::RunLocalMacros(RDMacro *rml)
} }
if(rml->echoRequested()) { if(rml->echoRequested()) {
rml->acknowledge(true); rml->acknowledge(true);
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
} }
break; break;
@ -930,7 +931,7 @@ bool MainWidget::GetPanel(QString str,RDAirPlayConf::PanelType *type,
if(sscanf(((const char *)str)+1,"%d",panel)!=1) { if(sscanf(((const char *)str)+1,"%d",panel)!=1) {
return false; return false;
} }
if((*panel<=0)||(*panel>rdairplay_conf->panels(*type))) { if((*panel<=0)||(*panel>rda->airplayConf()->panels(*type))) {
return false; return false;
} }
(*panel)--; (*panel)--;

View File

@ -2,7 +2,7 @@
// //
// Rivendell Log Playout Machine // Rivendell Log Playout Machine
// //
// (C) Copyright 2002-2009,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2009,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -21,13 +21,15 @@
#include <unistd.h> #include <unistd.h>
#include <syslog.h> #include <syslog.h>
#include <rdmixer.h> #include <rdapplication.h>
#include <rddb.h>
#include <rddebug.h> #include <rddebug.h>
#include <rdlog.h> #include <rdlog.h>
#include <rddb.h> #include <rdmixer.h>
#include <log_play.h>
#include <log_traffic.h> #include "globals.h"
#include <globals.h> #include "log_play.h"
#include "log_traffic.h"
LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname, LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
std::vector<RLMHost *> *rlm_hosts,QObject *parent) std::vector<RLMHost *> *rlm_hosts,QObject *parent)
@ -40,8 +42,8 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
play_id=id; play_id=id;
play_rlm_hosts=rlm_hosts; play_rlm_hosts=rlm_hosts;
play_onair_flag=false; play_onair_flag=false;
play_segue_length=rdairplay_conf->segueLength()+1; play_segue_length=rda->airplayConf()->segueLength()+1;
play_trans_length=rdairplay_conf->transLength()+1; play_trans_length=rda->airplayConf()->transLength()+1;
play_duck_volume_port1=0; play_duck_volume_port1=0;
play_duck_volume_port2=0; play_duck_volume_port2=0;
play_start_next=false; play_start_next=false;
@ -58,7 +60,7 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
play_timescaling_available=false; play_timescaling_available=false;
play_rescan_pos=0; play_rescan_pos=0;
play_refreshable=false; play_refreshable=false;
play_audition_preroll=rdairplay_conf->auditionPreroll(); play_audition_preroll=rda->airplayConf()->auditionPreroll();
for(int i=0;i<LOGPLAY_MAX_PLAYS;i++) { for(int i=0;i<LOGPLAY_MAX_PLAYS;i++) {
play_slot_id[i]=i; play_slot_id[i]=i;
} }
@ -66,7 +68,7 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
// //
// CAE Connection // CAE Connection
// //
play_cae=new RDCae(rdstation_conf,air_config,parent); play_cae=new RDCae(rda->station(),rda->config(),parent);
play_cae->connectHost(); play_cae->connectHost();
for(int i=0;i<2;i++) { for(int i=0;i<2;i++) {
@ -83,10 +85,10 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
} }
play_macro_running=false; play_macro_running=false;
play_refresh_pending=false; play_refresh_pending=false;
play_nownext_string=rdairplay_conf->udpString(id); play_nownext_string=rda->airplayConf()->udpString(id);
play_nownext_address=rdairplay_conf->udpAddress(id); play_nownext_address=rda->airplayConf()->udpAddress(id);
play_nownext_port=rdairplay_conf->udpPort(id); play_nownext_port=rda->airplayConf()->udpPort(id);
play_nownext_rml=rdairplay_conf->logRml(id); play_nownext_rml=rda->airplayConf()->logRml(id);
play_now_cartnum=0; play_now_cartnum=0;
play_next_cartnum=0; play_next_cartnum=0;
play_prevnow_cartnum=0; play_prevnow_cartnum=0;
@ -96,7 +98,7 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
// //
// Macro Cart Decks // Macro Cart Decks
// //
play_macro_deck=new RDMacroEvent(rdstation_conf->address(),rdripc,this); play_macro_deck=new RDMacroEvent(rda->station()->address(),rda->ripc(),this);
connect(play_macro_deck,SIGNAL(started()),this,SLOT(macroStartedData())); connect(play_macro_deck,SIGNAL(started()),this,SLOT(macroStartedData()));
connect(play_macro_deck,SIGNAL(finished()),this,SLOT(macroFinishedData())); connect(play_macro_deck,SIGNAL(finished()),this,SLOT(macroFinishedData()));
connect(play_macro_deck,SIGNAL(stopped()),this,SLOT(macroStoppedData())); connect(play_macro_deck,SIGNAL(stopped()),this,SLOT(macroStoppedData()));
@ -110,18 +112,18 @@ LogPlay::LogPlay(int id,QSocketDevice *nn_sock,QString logname,
// //
// RIPC Signals // RIPC Signals
// //
connect(rdripc,SIGNAL(onairFlagChanged(bool)), connect(rda->ripc(),SIGNAL(onairFlagChanged(bool)),
this,SLOT(onairFlagChangedData(bool))); this,SLOT(onairFlagChangedData(bool)));
// //
// Audition Player // Audition Player
// //
play_audition_line=-1; play_audition_line=-1;
if((rdstation_conf->cueCard()>=0)&& if((rda->station()->cueCard()>=0)&&
(rdstation_conf->cuePort()>=0)) { (rda->station()->cuePort()>=0)) {
play_audition_player= play_audition_player=
new RDSimplePlayer(play_cae,rdripc,rdstation_conf->cueCard(), new RDSimplePlayer(play_cae,rda->ripc(),rda->station()->cueCard(),
rdstation_conf->cuePort(),0,0); rda->station()->cuePort(),0,0);
play_audition_player->playButton()->hide(); play_audition_player->playButton()->hide();
play_audition_player->stopButton()->hide(); play_audition_player->stopButton()->hide();
connect(play_audition_player,SIGNAL(played()), connect(play_audition_player,SIGNAL(played()),
@ -212,7 +214,7 @@ void LogPlay::setLogName(QString name)
if(logName()!=name) { if(logName()!=name) {
RDLogEvent::setLogName(name); RDLogEvent::setLogName(name);
emit renamed(); emit renamed();
rdairplay_conf->setCurrentLog(play_id,name.left(name.length()-4)); rda->airplayConf()->setCurrentLog(play_id,name.left(name.length()-4));
} }
} }
@ -755,7 +757,7 @@ bool LogPlay::refresh()
void LogPlay::save(int line) void LogPlay::save(int line)
{ {
RDLogEvent::save(air_config,line); RDLogEvent::save(rda->config(),line);
if(play_log!=NULL) { if(play_log!=NULL) {
delete play_log; delete play_log;
} }
@ -834,7 +836,7 @@ void LogPlay::insert(int line,int cartnum,RDLogLine::TransType next_type,
play_next_line=line; play_next_line=line;
} }
logline->loadCart(cartnum,next_type,play_id,play_timescaling_available, logline->loadCart(cartnum,next_type,play_id,play_timescaling_available,
rdairplay_conf->defaultTransType()); rda->airplayConf()->defaultTransType());
logline-> logline->
setTimescalingActive(play_timescaling_available&&logline->enforceLength()); setTimescalingActive(play_timescaling_available&&logline->enforceLength());
UpdateStartTimes(line); UpdateStartTimes(line);
@ -1601,7 +1603,7 @@ void LogPlay::macroStartedData()
logline->setStatus(RDLogLine::Playing); logline->setStatus(RDLogLine::Playing);
logline-> logline->
setStartTime(RDLogLine::Initial, setStartTime(RDLogLine::Initial,
QTime::currentTime().addMSecs(rdstation_conf->timeOffset())); QTime::currentTime().addMSecs(rda->station()->timeOffset()));
UpdateStartTimes(line); UpdateStartTimes(line);
emit played(line); emit played(line);
UpdatePostPoint(); UpdatePostPoint();
@ -1803,7 +1805,7 @@ bool LogPlay::StartEvent(int line,RDLogLine::TransType trans_type,
switch(logline->type()) { switch(logline->type()) {
case RDLogLine::Cart: case RDLogLine::Cart:
if(!StartAudioEvent(line)) { if(!StartAudioEvent(line)) {
rdairplay_conf->setLogCurrentLine(play_id,nextLine()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine());
return false; return false;
} }
aport=GetNextChannel(mport,&card,&port); aport=GetNextChannel(mport,&card,&port);
@ -1832,7 +1834,7 @@ bool LogPlay::StartEvent(int line,RDLogLine::TransType trans_type,
LogLine(RDConfig::LogErr,QString(). LogLine(RDConfig::LogErr,QString().
sprintf("LogPlay::StartEvent(): no audio,CUT=%s", sprintf("LogPlay::StartEvent(): no audio,CUT=%s",
(const char *)logline->cutName())); (const char *)logline->cutName()));
rdairplay_conf->setLogCurrentLine(play_id,nextLine()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine());
return false; return false;
} }
emit modified(line); emit modified(line);
@ -1918,7 +1920,7 @@ bool LogPlay::StartEvent(int line,RDLogLine::TransType trans_type,
rml->setEchoRequested(false); rml->setEchoRequested(false);
rml->setArgQuantity(1); rml->setArgQuantity(1);
rml->setArg(0,logline->cartNumber()); rml->setArg(0,logline->cartNumber());
rdripc->sendRml(rml); rda->ripc()->sendRml(rml);
delete rml; delete rml;
emit played(line); emit played(line);
logline->setStartTime(RDLogLine::Actual,QTime::currentTime()); logline->setStartTime(RDLogLine::Actual,QTime::currentTime());
@ -2013,13 +2015,13 @@ bool LogPlay::StartEvent(int line,RDLogLine::TransType trans_type,
if((logline->state()==RDLogLine::Ok)|| if((logline->state()==RDLogLine::Ok)||
(logline->state()==RDLogLine::NoCart)|| (logline->state()==RDLogLine::NoCart)||
(logline->state()==RDLogLine::NoCut)) { (logline->state()==RDLogLine::NoCut)) {
rdairplay_conf->setLogCurrentLine(play_id,nextLine()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine());
return true; return true;
} }
play_next_line++; play_next_line++;
} }
play_next_line=-1; play_next_line=-1;
rdairplay_conf->setLogCurrentLine(play_id,nextLine()); rda->airplayConf()->setLogCurrentLine(play_id,nextLine());
return true; return true;
} }

View File

@ -2,7 +2,7 @@
// //
// Add an entry to the reconciliation table. // Add an entry to the reconciliation table.
// //
// (C) Copyright 2002-2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -18,15 +18,14 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
#include <qsqldatabase.h> #include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <rddb.h> #include <rddb.h>
#include <rdescape_string.h> #include <rdescape_string.h>
#include <rdsvc.h> #include <rdsvc.h>
#include <log_traffic.h> #include "globals.h"
#include <globals.h> #include "log_traffic.h"
void LogTraffic(const QString &svcname,const QString &logname, void LogTraffic(const QString &svcname,const QString &logname,
RDLogLine *logline,RDLogLine::PlaySource src, RDLogLine *logline,RDLogLine::PlaySource src,
@ -56,7 +55,7 @@ void LogTraffic(const QString &svcname,const QString &logname,
"LOG_NAME=\""+RDEscapeString(logname.utf8())+"\","+ "LOG_NAME=\""+RDEscapeString(logname.utf8())+"\","+
QString().sprintf("LOG_ID=%d,",logline->id())+ QString().sprintf("LOG_ID=%d,",logline->id())+
QString().sprintf("CART_NUMBER=%u,",logline->cartNumber())+ QString().sprintf("CART_NUMBER=%u,",logline->cartNumber())+
"STATION_NAME=\""+RDEscapeString(rdstation_conf->name().utf8())+"\","+ "STATION_NAME=\""+RDEscapeString(rda->station()->name().utf8())+"\","+
"EVENT_DATETIME="+eventDateTimeSQL+","+ "EVENT_DATETIME="+eventDateTimeSQL+","+
QString().sprintf("EVENT_TYPE=%d,",action)+ QString().sprintf("EVENT_TYPE=%d,",action)+
QString().sprintf("EVENT_SOURCE=%d,",logline->source())+ QString().sprintf("EVENT_SOURCE=%d,",logline->source())+

View File

@ -2,7 +2,7 @@
// //
// On Air Playout Utility for Rivendell. // On Air Playout Utility for Rivendell.
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -20,14 +20,14 @@
#include <qpainter.h> #include <qpainter.h>
#include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <rdplay_deck.h> #include <rdplay_deck.h>
#include <rdairplay_conf.h>
#include <rdnownext.h> #include <rdnownext.h>
#include <loglinebox.h> #include "colors.h"
#include <colors.h> #include "globals.h"
#include <globals.h> #include "loglinebox.h"
#include "../icons/play.xpm" #include "../icons/play.xpm"
#include "../icons/rml5.xpm" #include "../icons/rml5.xpm"
@ -882,7 +882,7 @@ void LogLineBox::SetColor(QColor color)
void LogLineBox::UpdateCountdown() void LogLineBox::UpdateCountdown()
{ {
QTime current=QTime::currentTime().addMSecs(rdstation_conf->timeOffset()); QTime current=QTime::currentTime().addMSecs(rda->station()->timeOffset());
if(current<line_end_time) { if(current<line_end_time) {
line_length_label->setText(RDGetTimeLength(current.msecsTo(line_end_time), line_length_label->setText(RDGetTimeLength(current.msecsTo(line_end_time),

View File

@ -2,7 +2,7 @@
// //
// The post counter widget for Rivendell // The post counter widget for Rivendell
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -21,9 +21,11 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qpainter.h> #include <qpainter.h>
#include <post_counter.h> #include <rdapplication.h>
#include <colors.h>
#include <globals.h> #include "colors.h"
#include "globals.h"
#include "post_counter.h"
PostCounter::PostCounter(QWidget *parent) PostCounter::PostCounter(QWidget *parent)
: QPushButton(parent) : QPushButton(parent)
@ -130,7 +132,7 @@ void PostCounter::UpdateDisplay()
QString point; QString point;
QString state; QString state;
QTime current_time= QTime current_time=
QTime::currentTime().addMSecs(rdstation_conf->timeOffset()); QTime::currentTime().addMSecs(rda->station()->timeOffset());
int offset=post_offset; int offset=post_offset;
if(!post_running) { if(!post_running) {
offset-=current_time.msecsTo(post_set_time); offset-=current_time.msecsTo(post_set_time);

View File

@ -2,7 +2,7 @@
// //
// The On Air Playout Utility for Rivendell. // The On Air Playout Utility for Rivendell.
// //
// (C) Copyright 2002-2010,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2010,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -42,17 +42,14 @@
#include <qtranslator.h> #include <qtranslator.h>
#include <qpainter.h> #include <qpainter.h>
#include <dbversion.h>
#include <rd.h> #include <rd.h>
#include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <rdairplay.h>
#include <rdstation.h>
#include <rdaudio_port.h> #include <rdaudio_port.h>
#include <rdcart_search_text.h> #include <rdcart_search_text.h>
#include <rduser.h>
#include <rdripc.h>
#include <rdmixer.h> #include <rdmixer.h>
#include <rdcheck_daemons.h> #include <rdcheck_daemons.h>
#include <rdairplay_conf.h>
#include <rdcart_dialog.h> #include <rdcart_dialog.h>
#include <rdmacro.h> #include <rdmacro.h>
#include <rdcmd_switch.h> #include <rdcmd_switch.h>
@ -60,26 +57,19 @@
#include <rddatedecode.h> #include <rddatedecode.h>
#include <rddb.h> #include <rddb.h>
#include <rdescape_string.h> #include <rdescape_string.h>
#include <dbversion.h>
#include <wall_clock.h>
#include <globals.h>
#include <rdhotkeys.h> #include <rdhotkeys.h>
#include <rdhotkeylist.h> #include <rdhotkeylist.h>
#include "globals.h"
#include "rdairplay.h"
#include "wall_clock.h"
// //
// Global Resources // Global Resources
// //
RDStation *rdstation_conf;
RDSystem *rdsystem_conf;
RDAirPlayConf *rdairplay_conf;
RDAudioPort *rdaudioport_conf; RDAudioPort *rdaudioport_conf;
RDUser *rduser;
RDRipc *rdripc;
RDEventPlayer *rdevent_player; RDEventPlayer *rdevent_player;
RDCartDialog *rdcart_dialog; RDCartDialog *rdcart_dialog;
RDConfig *air_config;
MainWidget *prog_ptr; MainWidget *prog_ptr;
RDHotKeyList *rdkeylist; RDHotKeyList *rdkeylist;
RDHotkeys *rdhotkeys; RDHotkeys *rdhotkeys;
@ -112,10 +102,10 @@ MainWidget::MainWidget(QWidget *parent)
QPixmap *mainmap=NULL; QPixmap *mainmap=NULL;
QPixmap *pm=NULL; QPixmap *pm=NULL;
QPainter *pd=NULL; QPainter *pd=NULL;
QString err_msg;
air_refresh_pixmap=NULL; air_refresh_pixmap=NULL;
air_panel=NULL; air_panel=NULL;
bool skip_db_check=false;
unsigned schema=0;
// //
// Ensure Single Instance // Ensure Single Instance
@ -150,7 +140,6 @@ MainWidget::MainWidget(QWidget *parent)
RDAIRPLAY_USAGE); RDAIRPLAY_USAGE);
for(unsigned i=0;i<cmd->keys();i++) { for(unsigned i=0;i<cmd->keys();i++) {
if(cmd->key(i)=="--skip-db-check") { if(cmd->key(i)=="--skip-db-check") {
skip_db_check=true;
} }
} }
for(unsigned i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(unsigned i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
@ -163,7 +152,7 @@ MainWidget::MainWidget(QWidget *parent)
if(cmd->value(j).at(k)==QChar(':')) { if(cmd->value(j).at(k)==QChar(':')) {
air_start_logname[i]= air_start_logname[i]=
RDDateTimeDecode(cmd->value(j).left(k),air_startup_datetime, RDDateTimeDecode(cmd->value(j).left(k),air_startup_datetime,
rdstation_conf,air_config); rda->station(),rda->config());
lineno=cmd->value(j).right(cmd->value(j).length()-(k+1)); lineno=cmd->value(j).right(cmd->value(j).length()-(k+1));
if(lineno.right(1)=="+") { if(lineno.right(1)=="+") {
air_start_start[i]=true; air_start_start[i]=true;
@ -222,35 +211,17 @@ MainWidget::MainWidget(QWidget *parent)
air_action_mode=StartButton::Play; air_action_mode=StartButton::Play;
// rda=new RDApplication("RDAirPlay",this);
// Load Local Configs if(!rda->open(&err_msg)) {
// QMessageBox::critical(this,"RDAirPlay - "+tr("Error"),err_msg);
air_config=new RDConfig(RD_CONF_FILE); exit(1);
air_config->load(); }
air_config->setModuleName("RDAirPlay");
logfile=air_config->airplayLogname(); logfile=rda->config()->airplayLogname();
str=QString("RDAirPlay")+" v"+VERSION+" - "+tr("Host:"); str=QString("RDAirPlay")+" v"+VERSION+" - "+tr("Host:");
setCaption(QString().sprintf("%s %s",(const char *)str, setCaption(str+" "+rda->config()->stationName());
(const char *)air_config->stationName()));
//
// Open Database
//
QString err;
QSqlDatabase *db=RDInitDb(&schema,&err);
if(!db) {
QMessageBox::warning(this,tr("Database Error"),
//tr("Can't Connect","Unable to connect to mySQL Server!"));
err);
exit(0);
}
if((schema!=RD_VERSION_DATABASE)&&(!skip_db_check)) {
fprintf(stderr,"rdlogin: database version mismatch, should be %u, is %u\n",
RD_VERSION_DATABASE,schema);
exit(256);
}
connect (RDDbStatus(),SIGNAL(logText(RDConfig::LogPriority,const QString &)), connect (RDDbStatus(),SIGNAL(logText(RDConfig::LogPriority,const QString &)),
this,SLOT(logLine(RDConfig::LogPriority,const QString &))); this,SLOT(logLine(RDConfig::LogPriority,const QString &)));
@ -264,19 +235,16 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Allocate Global Resources // Allocate Global Resources
// //
rdstation_conf=new RDStation(air_config->stationName()); rdairplay_previous_exit_code=rda->airplayConf()->exitCode();
rdsystem_conf=new RDSystem(); rda->airplayConf()->setExitCode(RDAirPlayConf::ExitDirty);
rdairplay_conf=new RDAirPlayConf(air_config->stationName(),"RDAIRPLAY"); air_clear_filter=rda->airplayConf()->clearFilter();
rdairplay_previous_exit_code=rdairplay_conf->exitCode(); air_bar_action=rda->airplayConf()->barAction();
rdairplay_conf->setExitCode(RDAirPlayConf::ExitDirty); air_op_mode_style=rda->airplayConf()->opModeStyle();
air_clear_filter=rdairplay_conf->clearFilter();
air_bar_action=rdairplay_conf->barAction();
air_op_mode_style=rdairplay_conf->opModeStyle();
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
air_op_mode[i]=RDAirPlayConf::Previous; air_op_mode[i]=RDAirPlayConf::Previous;
} }
air_editor_cmd=rdstation_conf->editorPath(); air_editor_cmd=rda->station()->editorPath();
mainmap=new QPixmap(rdairplay_conf->skinPath()); mainmap=new QPixmap(rda->airplayConf()->skinPath());
if(mainmap->isNull()||(mainmap->width()<1024)||(mainmap->height()<738)) { if(mainmap->isNull()||(mainmap->width()<1024)||(mainmap->height()<738)) {
delete mainmap; delete mainmap;
mainmap=NULL; mainmap=NULL;
@ -290,21 +258,21 @@ MainWidget::MainWidget(QWidget *parent)
// //
for(unsigned i=0;i<RDAirPlayConf::LastChannel;i++) { for(unsigned i=0;i<RDAirPlayConf::LastChannel;i++) {
RDAirPlayConf::Channel chan=(RDAirPlayConf::Channel)i; RDAirPlayConf::Channel chan=(RDAirPlayConf::Channel)i;
air_start_gpi_matrices[i]=rdairplay_conf->startGpiMatrix(chan); air_start_gpi_matrices[i]=rda->airplayConf()->startGpiMatrix(chan);
air_start_gpi_lines[i]=rdairplay_conf->startGpiLine(chan)-1; air_start_gpi_lines[i]=rda->airplayConf()->startGpiLine(chan)-1;
air_start_gpo_matrices[i]=rdairplay_conf->startGpoMatrix(chan); air_start_gpo_matrices[i]=rda->airplayConf()->startGpoMatrix(chan);
air_start_gpo_lines[i]=rdairplay_conf->startGpoLine(chan)-1; air_start_gpo_lines[i]=rda->airplayConf()->startGpoLine(chan)-1;
air_stop_gpi_matrices[i]=rdairplay_conf->stopGpiMatrix(chan); air_stop_gpi_matrices[i]=rda->airplayConf()->stopGpiMatrix(chan);
air_stop_gpi_lines[i]=rdairplay_conf->stopGpiLine(chan)-1; air_stop_gpi_lines[i]=rda->airplayConf()->stopGpiLine(chan)-1;
air_stop_gpo_matrices[i]=rdairplay_conf->stopGpoMatrix(chan); air_stop_gpo_matrices[i]=rda->airplayConf()->stopGpoMatrix(chan);
air_stop_gpo_lines[i]=rdairplay_conf->stopGpoLine(chan)-1; air_stop_gpo_lines[i]=rda->airplayConf()->stopGpoLine(chan)-1;
air_channel_gpio_types[i]=rdairplay_conf->gpioType(chan); air_channel_gpio_types[i]=rda->airplayConf()->gpioType(chan);
air_audio_channels[i]= air_audio_channels[i]=
AudioChannel(rdairplay_conf->card(chan),rdairplay_conf->port(chan)); AudioChannel(rda->airplayConf()->card(chan),rda->airplayConf()->port(chan));
if((rdairplay_conf->card(chan)>=0)&&(rdairplay_conf->port(chan)>=0)) { if((rda->airplayConf()->card(chan)>=0)&&(rda->airplayConf()->port(chan)>=0)) {
int achan= int achan=
AudioChannel(rdairplay_conf->card(chan),rdairplay_conf->port(chan)); AudioChannel(rda->airplayConf()->card(chan),rda->airplayConf()->port(chan));
if(air_channel_timers[0][achan]==NULL) { if(air_channel_timers[0][achan]==NULL) {
air_channel_timers[0][achan]=new QTimer(this); air_channel_timers[0][achan]=new QTimer(this);
air_channel_timers[1][achan]=new QTimer(this); air_channel_timers[1][achan]=new QTimer(this);
@ -315,11 +283,11 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Fixup Main Log GPIO Channel Assignments // Fixup Main Log GPIO Channel Assignments
// //
if(((rdairplay_conf->card(RDAirPlayConf::MainLog1Channel)== if(((rda->airplayConf()->card(RDAirPlayConf::MainLog1Channel)==
rdairplay_conf->card(RDAirPlayConf::MainLog2Channel))&& rda->airplayConf()->card(RDAirPlayConf::MainLog2Channel))&&
(rdairplay_conf->port(RDAirPlayConf::MainLog1Channel)== (rda->airplayConf()->port(RDAirPlayConf::MainLog1Channel)==
rdairplay_conf->port(RDAirPlayConf::MainLog2Channel)))|| rda->airplayConf()->port(RDAirPlayConf::MainLog2Channel)))||
rdairplay_conf->card(RDAirPlayConf::MainLog2Channel)<0) { rda->airplayConf()->card(RDAirPlayConf::MainLog2Channel)<0) {
air_start_gpi_matrices[RDAirPlayConf::MainLog2Channel]=-1; air_start_gpi_matrices[RDAirPlayConf::MainLog2Channel]=-1;
air_start_gpo_matrices[RDAirPlayConf::MainLog2Channel]=-1; air_start_gpo_matrices[RDAirPlayConf::MainLog2Channel]=-1;
air_stop_gpi_matrices[RDAirPlayConf::MainLog2Channel]= air_stop_gpi_matrices[RDAirPlayConf::MainLog2Channel]=
@ -330,35 +298,33 @@ MainWidget::MainWidget(QWidget *parent)
// //
// CAE Connection // CAE Connection
// //
air_cae=new RDCae(rdstation_conf,air_config,parent); rda->cae()->connectHost();
air_cae->connectHost();
// //
// Set Audio Assignments // Set Audio Assignments
// //
air_segue_length=rdairplay_conf->segueLength()+1; air_segue_length=rda->airplayConf()->segueLength()+1;
RDSetMixerPorts(air_config->stationName(),air_cae); RDSetMixerPorts(rda->config()->stationName(),rda->cae());
// //
// RIPC Connection // RIPC Connection
// //
rdripc=new RDRipc(rdstation_conf,air_config,this); connect(rda->ripc(),SIGNAL(connected(bool)),this,SLOT(ripcConnected(bool)));
connect(rdripc,SIGNAL(connected(bool)),this,SLOT(ripcConnected(bool))); connect(rda->ripc(),SIGNAL(userChanged()),this,SLOT(userData()));
connect(rdripc,SIGNAL(userChanged()),this,SLOT(userData())); connect(rda->ripc(),SIGNAL(rmlReceived(RDMacro *)),
connect(rdripc,SIGNAL(rmlReceived(RDMacro *)),
this,SLOT(rmlReceivedData(RDMacro *))); this,SLOT(rmlReceivedData(RDMacro *)));
connect(rdripc,SIGNAL(gpiStateChanged(int,int,bool)), connect(rda->ripc(),SIGNAL(gpiStateChanged(int,int,bool)),
this,SLOT(gpiStateChangedData(int,int,bool))); this,SLOT(gpiStateChangedData(int,int,bool)));
// //
// Macro Player // Macro Player
// //
rdevent_player=new RDEventPlayer(rdripc,this); rdevent_player=new RDEventPlayer(rda->ripc(),this);
// //
// User // User
// //
rduser=NULL; // rduser=NULL;
// //
// UDP Transmission Socket // UDP Transmission Socket
@ -372,12 +338,12 @@ MainWidget::MainWidget(QWidget *parent)
connect(reload_mapper,SIGNAL(mapped(int)),this,SLOT(logReloadedData(int))); connect(reload_mapper,SIGNAL(mapped(int)),this,SLOT(logReloadedData(int)));
QSignalMapper *rename_mapper=new QSignalMapper(this); QSignalMapper *rename_mapper=new QSignalMapper(this);
connect(rename_mapper,SIGNAL(mapped(int)),this,SLOT(logRenamedData(int))); connect(rename_mapper,SIGNAL(mapped(int)),this,SLOT(logRenamedData(int)));
QString default_svcname=rdairplay_conf->defaultSvc(); QString default_svcname=rda->airplayConf()->defaultSvc();
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
air_log[i]=new LogPlay(i,air_nownext_socket,"",&air_plugin_hosts); air_log[i]=new LogPlay(i,air_nownext_socket,"",&air_plugin_hosts);
air_log[i]->setDefaultServiceName(default_svcname); air_log[i]->setDefaultServiceName(default_svcname);
air_log[i]->setNowCart(rdairplay_conf->logNowCart(i)); air_log[i]->setNowCart(rda->airplayConf()->logNowCart(i));
air_log[i]->setNextCart(rdairplay_conf->logNextCart(i)); air_log[i]->setNextCart(rda->airplayConf()->logNextCart(i));
reload_mapper->setMapping(air_log[i],i); reload_mapper->setMapping(air_log[i],i);
connect(air_log[i],SIGNAL(reloaded()),reload_mapper,SLOT(map())); connect(air_log[i],SIGNAL(reloaded()),reload_mapper,SLOT(map()));
rename_mapper->setMapping(air_log[i],i); rename_mapper->setMapping(air_log[i],i);
@ -395,15 +361,15 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Audio Channel Assignments // Audio Channel Assignments
// //
air_cue_card=rdairplay_conf->card(RDAirPlayConf::CueChannel); air_cue_card=rda->airplayConf()->card(RDAirPlayConf::CueChannel);
air_cue_port=rdairplay_conf->port(RDAirPlayConf::CueChannel); air_cue_port=rda->airplayConf()->port(RDAirPlayConf::CueChannel);
for(int i=0;i<3;i++) { for(int i=0;i<3;i++) {
air_meter_card[i]=rdairplay_conf->card((RDAirPlayConf::Channel)i); air_meter_card[i]=rda->airplayConf()->card((RDAirPlayConf::Channel)i);
air_meter_port[i]=rdairplay_conf->port((RDAirPlayConf::Channel)i); air_meter_port[i]=rda->airplayConf()->port((RDAirPlayConf::Channel)i);
cards[i]=rdairplay_conf->card((RDAirPlayConf::Channel)i); cards[i]=rda->airplayConf()->card((RDAirPlayConf::Channel)i);
ports[i]=rdairplay_conf->port((RDAirPlayConf::Channel)i); ports[i]=rda->airplayConf()->port((RDAirPlayConf::Channel)i);
start_rmls[i]=rdairplay_conf->startRml((RDAirPlayConf::Channel)i); start_rmls[i]=rda->airplayConf()->startRml((RDAirPlayConf::Channel)i);
stop_rmls[i]=rdairplay_conf->stopRml((RDAirPlayConf::Channel)i); stop_rmls[i]=rda->airplayConf()->stopRml((RDAirPlayConf::Channel)i);
} }
if(air_meter_card[1]<0) { // Fixup disabled main log port 2 playout if(air_meter_card[1]<0) { // Fixup disabled main log port 2 playout
air_meter_card[1]=air_meter_card[0]; air_meter_card[1]=air_meter_card[0];
@ -414,18 +380,18 @@ MainWidget::MainWidget(QWidget *parent)
air_log[0]->setChannels(cards,ports,start_rmls,stop_rmls); air_log[0]->setChannels(cards,ports,start_rmls,stop_rmls);
for(int i=0;i<2;i++) { for(int i=0;i<2;i++) {
cards[i]=rdairplay_conf->card(RDAirPlayConf::AuxLog1Channel); cards[i]=rda->airplayConf()->card(RDAirPlayConf::AuxLog1Channel);
ports[i]=rdairplay_conf->port(RDAirPlayConf::AuxLog1Channel); ports[i]=rda->airplayConf()->port(RDAirPlayConf::AuxLog1Channel);
start_rmls[i]=rdairplay_conf->startRml(RDAirPlayConf::AuxLog1Channel); start_rmls[i]=rda->airplayConf()->startRml(RDAirPlayConf::AuxLog1Channel);
stop_rmls[i]=rdairplay_conf->stopRml(RDAirPlayConf::AuxLog1Channel); stop_rmls[i]=rda->airplayConf()->stopRml(RDAirPlayConf::AuxLog1Channel);
} }
air_log[1]->setChannels(cards,ports,start_rmls,stop_rmls); air_log[1]->setChannels(cards,ports,start_rmls,stop_rmls);
for(int i=0;i<2;i++) { for(int i=0;i<2;i++) {
cards[i]=rdairplay_conf->card(RDAirPlayConf::AuxLog2Channel); cards[i]=rda->airplayConf()->card(RDAirPlayConf::AuxLog2Channel);
ports[i]=rdairplay_conf->port(RDAirPlayConf::AuxLog2Channel); ports[i]=rda->airplayConf()->port(RDAirPlayConf::AuxLog2Channel);
start_rmls[i]=rdairplay_conf->startRml(RDAirPlayConf::AuxLog2Channel); start_rmls[i]=rda->airplayConf()->startRml(RDAirPlayConf::AuxLog2Channel);
stop_rmls[i]=rdairplay_conf->stopRml(RDAirPlayConf::AuxLog2Channel); stop_rmls[i]=rda->airplayConf()->stopRml(RDAirPlayConf::AuxLog2Channel);
} }
air_log[2]->setChannels(cards,ports,start_rmls,stop_rmls); air_log[2]->setChannels(cards,ports,start_rmls,stop_rmls);
@ -434,7 +400,7 @@ MainWidget::MainWidget(QWidget *parent)
// //
rdcart_dialog= rdcart_dialog=
new RDCartDialog(&air_add_filter,&air_add_group,&air_add_schedcode, new RDCartDialog(&air_add_filter,&air_add_group,&air_add_schedcode,
air_cae,rdripc,rdstation_conf,rdsystem_conf,air_config,this); rda->cae(),rda->ripc(),rda->station(),rda->system(),rda->config(),this);
// //
// Wall Clock // Wall Clock
@ -442,7 +408,7 @@ MainWidget::MainWidget(QWidget *parent)
WallClock *clock=new WallClock(this); WallClock *clock=new WallClock(this);
clock-> clock->
setGeometry(10,5,clock->sizeHint().width(),clock->sizeHint().height()); setGeometry(10,5,clock->sizeHint().width(),clock->sizeHint().height());
clock->setCheckSyncEnabled(rdairplay_conf->checkTimesync()); clock->setCheckSyncEnabled(rda->airplayConf()->checkTimesync());
connect(air_master_timer,SIGNAL(timeout()),clock,SLOT(tickClock())); connect(air_master_timer,SIGNAL(timeout()),clock,SLOT(tickClock()));
clock->setFocusPolicy(QWidget::NoFocus); clock->setFocusPolicy(QWidget::NoFocus);
connect(clock,SIGNAL(timeModeChanged(RDAirPlayConf::TimeMode)), connect(clock,SIGNAL(timeModeChanged(RDAirPlayConf::TimeMode)),
@ -464,11 +430,11 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Pie Counter // Pie Counter
// //
air_pie_counter=new PieCounter(rdairplay_conf->pieCountLength(),this); air_pie_counter=new PieCounter(rda->airplayConf()->pieCountLength(),this);
air_pie_counter->setGeometry(426,5,air_pie_counter->sizeHint().width(), air_pie_counter->setGeometry(426,5,air_pie_counter->sizeHint().width(),
air_pie_counter->sizeHint().height()); air_pie_counter->sizeHint().height());
air_pie_counter->setCountLength(rdairplay_conf->pieCountLength()); air_pie_counter->setCountLength(rda->airplayConf()->pieCountLength());
air_pie_end=rdairplay_conf->pieEndPoint(); air_pie_end=rda->airplayConf()->pieEndPoint();
air_pie_counter->setOpMode(air_op_mode[0]); air_pie_counter->setOpMode(air_op_mode[0]);
air_pie_counter->setFocusPolicy(QWidget::NoFocus); air_pie_counter->setFocusPolicy(QWidget::NoFocus);
if(mainmap!=NULL) { if(mainmap!=NULL) {
@ -482,7 +448,7 @@ MainWidget::MainWidget(QWidget *parent)
} }
connect(air_master_timer,SIGNAL(timeout()), connect(air_master_timer,SIGNAL(timeout()),
air_pie_counter,SLOT(tickCounter())); air_pie_counter,SLOT(tickCounter()));
connect(rdripc,SIGNAL(onairFlagChanged(bool)), connect(rda->ripc(),SIGNAL(onairFlagChanged(bool)),
air_pie_counter,SLOT(setOnairFlag(bool))); air_pie_counter,SLOT(setOnairFlag(bool)));
// //
@ -493,7 +459,7 @@ MainWidget::MainWidget(QWidget *parent)
air_stereo_meter->sizeHint().height()); air_stereo_meter->sizeHint().height());
air_stereo_meter->setMode(RDSegMeter::Peak); air_stereo_meter->setMode(RDSegMeter::Peak);
air_stereo_meter->setFocusPolicy(QWidget::NoFocus); air_stereo_meter->setFocusPolicy(QWidget::NoFocus);
if(air_config->useStreamMeters()) { if(rda->config()->useStreamMeters()) {
air_stereo_meter->hide(); air_stereo_meter->hide();
} }
@ -628,18 +594,18 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Sound Panel Array // Sound Panel Array
// //
if (rdairplay_conf->panels(RDAirPlayConf::StationPanel) || if (rda->airplayConf()->panels(RDAirPlayConf::StationPanel) ||
rdairplay_conf->panels(RDAirPlayConf::UserPanel)){ rda->airplayConf()->panels(RDAirPlayConf::UserPanel)){
int card=-1; int card=-1;
air_panel= air_panel=
new RDSoundPanel(AIR_PANEL_BUTTON_COLUMNS,AIR_PANEL_BUTTON_ROWS, new RDSoundPanel(AIR_PANEL_BUTTON_COLUMNS,AIR_PANEL_BUTTON_ROWS,
rdairplay_conf->panels(RDAirPlayConf::StationPanel), rda->airplayConf()->panels(RDAirPlayConf::StationPanel),
rdairplay_conf->panels(RDAirPlayConf::UserPanel), rda->airplayConf()->panels(RDAirPlayConf::UserPanel),
rdairplay_conf->flashPanel(), rda->airplayConf()->flashPanel(),
rdairplay_conf->buttonLabelTemplate(),false, rda->airplayConf()->buttonLabelTemplate(),false,
rdevent_player,rdripc,air_cae,rdstation_conf, rdevent_player,rda->ripc(),rda->cae(),rda->station(),
rdcart_dialog,this); rdcart_dialog,this);
air_panel->setLogfile(air_config->airplayLogname()); air_panel->setLogfile(rda->config()->airplayLogname());
air_panel->setGeometry(510,140,air_panel->sizeHint().width(), air_panel->setGeometry(510,140,air_panel->sizeHint().width(),
air_panel->sizeHint().height()); air_panel->sizeHint().height());
if(mainmap!=NULL) { if(mainmap!=NULL) {
@ -651,58 +617,58 @@ MainWidget::MainWidget(QWidget *parent)
delete pd; delete pd;
delete pm; delete pm;
} }
air_panel->setPauseEnabled(rdairplay_conf->panelPauseEnabled()); air_panel->setPauseEnabled(rda->airplayConf()->panelPauseEnabled());
air_panel->setCard(0,rdairplay_conf->card(RDAirPlayConf::SoundPanel1Channel)); air_panel->setCard(0,rda->airplayConf()->card(RDAirPlayConf::SoundPanel1Channel));
air_panel->setPort(0,rdairplay_conf->port(RDAirPlayConf::SoundPanel1Channel)); air_panel->setPort(0,rda->airplayConf()->port(RDAirPlayConf::SoundPanel1Channel));
air_panel->setFocusPolicy(QWidget::NoFocus); air_panel->setFocusPolicy(QWidget::NoFocus);
if((card=rdairplay_conf->card(RDAirPlayConf::SoundPanel2Channel))<0) { if((card=rda->airplayConf()->card(RDAirPlayConf::SoundPanel2Channel))<0) {
air_panel->setCard(1,air_panel->card(RDAirPlayConf::MainLog1Channel)); air_panel->setCard(1,air_panel->card(RDAirPlayConf::MainLog1Channel));
air_panel->setPort(1,air_panel->port(RDAirPlayConf::MainLog1Channel)); air_panel->setPort(1,air_panel->port(RDAirPlayConf::MainLog1Channel));
} }
else { else {
air_panel->setCard(1,card); air_panel->setCard(1,card);
air_panel->setPort(1,rdairplay_conf->port(RDAirPlayConf::SoundPanel2Channel)); air_panel->setPort(1,rda->airplayConf()->port(RDAirPlayConf::SoundPanel2Channel));
} }
if((card=rdairplay_conf->card(RDAirPlayConf::SoundPanel3Channel))<0) { if((card=rda->airplayConf()->card(RDAirPlayConf::SoundPanel3Channel))<0) {
air_panel->setCard(2,air_panel->card(RDAirPlayConf::MainLog2Channel)); air_panel->setCard(2,air_panel->card(RDAirPlayConf::MainLog2Channel));
air_panel->setPort(2,air_panel->port(RDAirPlayConf::MainLog2Channel)); air_panel->setPort(2,air_panel->port(RDAirPlayConf::MainLog2Channel));
} }
else { else {
air_panel->setCard(2,card); air_panel->setCard(2,card);
air_panel->setPort(2,rdairplay_conf->port(RDAirPlayConf::SoundPanel3Channel)); air_panel->setPort(2,rda->airplayConf()->port(RDAirPlayConf::SoundPanel3Channel));
} }
if((card=rdairplay_conf->card(RDAirPlayConf::SoundPanel4Channel))<0) { if((card=rda->airplayConf()->card(RDAirPlayConf::SoundPanel4Channel))<0) {
air_panel->setCard(3,air_panel->card(RDAirPlayConf::SoundPanel1Channel)); air_panel->setCard(3,air_panel->card(RDAirPlayConf::SoundPanel1Channel));
air_panel->setPort(3,air_panel->port(RDAirPlayConf::SoundPanel1Channel)); air_panel->setPort(3,air_panel->port(RDAirPlayConf::SoundPanel1Channel));
} }
else { else {
air_panel->setCard(3,card); air_panel->setCard(3,card);
air_panel->setPort(3,rdairplay_conf->port(RDAirPlayConf::SoundPanel4Channel)); air_panel->setPort(3,rda->airplayConf()->port(RDAirPlayConf::SoundPanel4Channel));
} }
if((card=rdairplay_conf->card(RDAirPlayConf::SoundPanel5Channel))<0) { if((card=rda->airplayConf()->card(RDAirPlayConf::SoundPanel5Channel))<0) {
air_panel->setCard(4,air_panel->card(RDAirPlayConf::CueChannel)); air_panel->setCard(4,air_panel->card(RDAirPlayConf::CueChannel));
air_panel->setPort(4,air_panel->port(RDAirPlayConf::CueChannel)); air_panel->setPort(4,air_panel->port(RDAirPlayConf::CueChannel));
} }
else { else {
air_panel->setCard(4,card); air_panel->setCard(4,card);
air_panel->setPort(4,rdairplay_conf-> air_panel->setPort(4,rda->airplayConf()->
port(RDAirPlayConf::SoundPanel5Channel)); port(RDAirPlayConf::SoundPanel5Channel));
} }
air_panel->setRmls(0,rdairplay_conf-> air_panel->setRmls(0,rda->airplayConf()->
startRml(RDAirPlayConf::SoundPanel1Channel), startRml(RDAirPlayConf::SoundPanel1Channel),
rdairplay_conf->stopRml(RDAirPlayConf::SoundPanel1Channel)); rda->airplayConf()->stopRml(RDAirPlayConf::SoundPanel1Channel));
air_panel->setRmls(1,rdairplay_conf-> air_panel->setRmls(1,rda->airplayConf()->
startRml(RDAirPlayConf::SoundPanel2Channel), startRml(RDAirPlayConf::SoundPanel2Channel),
rdairplay_conf->stopRml(RDAirPlayConf::SoundPanel2Channel)); rda->airplayConf()->stopRml(RDAirPlayConf::SoundPanel2Channel));
air_panel->setRmls(2,rdairplay_conf-> air_panel->setRmls(2,rda->airplayConf()->
startRml(RDAirPlayConf::SoundPanel3Channel), startRml(RDAirPlayConf::SoundPanel3Channel),
rdairplay_conf->stopRml(RDAirPlayConf::SoundPanel3Channel)); rda->airplayConf()->stopRml(RDAirPlayConf::SoundPanel3Channel));
air_panel->setRmls(3,rdairplay_conf-> air_panel->setRmls(3,rda->airplayConf()->
startRml(RDAirPlayConf::SoundPanel4Channel), startRml(RDAirPlayConf::SoundPanel4Channel),
rdairplay_conf->stopRml(RDAirPlayConf::SoundPanel4Channel)); rda->airplayConf()->stopRml(RDAirPlayConf::SoundPanel4Channel));
air_panel->setRmls(4,rdairplay_conf-> air_panel->setRmls(4,rda->airplayConf()->
startRml(RDAirPlayConf::SoundPanel5Channel), startRml(RDAirPlayConf::SoundPanel5Channel),
rdairplay_conf->stopRml(RDAirPlayConf::SoundPanel5Channel)); rda->airplayConf()->stopRml(RDAirPlayConf::SoundPanel5Channel));
int next_output=0; int next_output=0;
int channum[2]; int channum[2];
bool assigned=false; bool assigned=false;
@ -741,8 +707,8 @@ MainWidget::MainWidget(QWidget *parent)
} }
} }
air_panel->setSvcName(rdairplay_conf->defaultSvc()); air_panel->setSvcName(rda->airplayConf()->defaultSvc());
connect(rdripc,SIGNAL(userChanged()),air_panel,SLOT(changeUser())); connect(rda->ripc(),SIGNAL(userChanged()),air_panel,SLOT(changeUser()));
connect(air_master_timer,SIGNAL(timeout()),air_panel,SLOT(tickClock())); connect(air_master_timer,SIGNAL(timeout()),air_panel,SLOT(tickClock()));
connect(air_panel,SIGNAL(selectClicked(unsigned,int,int)), connect(air_panel,SIGNAL(selectClicked(unsigned,int,int)),
this,SLOT(selectClickedData(unsigned,int,int))); this,SLOT(selectClickedData(unsigned,int,int)));
@ -755,9 +721,9 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Full Log List // Full Log List
// //
air_pause_enabled=rdairplay_conf->pauseEnabled(); air_pause_enabled=rda->airplayConf()->pauseEnabled();
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
air_log_list[i]=new ListLog(air_log[i],air_cae,i,air_pause_enabled,this); air_log_list[i]=new ListLog(air_log[i],rda->cae(),i,air_pause_enabled,this);
air_log_list[i]->setGeometry(510,140,air_log_list[i]->sizeHint().width(), air_log_list[i]->setGeometry(510,140,air_log_list[i]->sizeHint().width(),
air_log_list[i]->sizeHint().height()); air_log_list[i]->sizeHint().height());
air_log_list[i]->hide(); air_log_list[i]->hide();
@ -782,11 +748,11 @@ MainWidget::MainWidget(QWidget *parent)
} }
air_log_button[0]->setText(tr("Main Log\n[--]")); air_log_button[0]->setText(tr("Main Log\n[--]"));
air_log_button[1]->setText(tr("Aux 1 Log\n[--]")); air_log_button[1]->setText(tr("Aux 1 Log\n[--]"));
if(!rdairplay_conf->showAuxButton(0)) { if(!rda->airplayConf()->showAuxButton(0)) {
air_log_button[1]->hide(); air_log_button[1]->hide();
} }
air_log_button[2]->setText(tr("Aux 2 Log\n[--]")); air_log_button[2]->setText(tr("Aux 2 Log\n[--]"));
if(!rdairplay_conf->showAuxButton(1)) { if(!rda->airplayConf()->showAuxButton(1)) {
air_log_button[2]->hide(); air_log_button[2]->hide();
} }
@ -795,7 +761,7 @@ MainWidget::MainWidget(QWidget *parent)
// //
air_empty_cart=new RDEmptyCart(this); air_empty_cart=new RDEmptyCart(this);
air_empty_cart->setGeometry(520,sizeHint().height()-51,32,32); air_empty_cart->setGeometry(520,sizeHint().height()-51,32,32);
if(!rdstation_conf->enableDragdrop()) { if(!rda->station()->enableDragdrop()) {
air_empty_cart->hide(); air_empty_cart->hide();
} }
@ -809,8 +775,8 @@ MainWidget::MainWidget(QWidget *parent)
air_panel_button->setPalette(active_color); air_panel_button->setPalette(active_color);
air_panel_button->setFocusPolicy(QWidget::NoFocus); air_panel_button->setFocusPolicy(QWidget::NoFocus);
connect(air_panel_button,SIGNAL(clicked()),this,SLOT(panelButtonData())); connect(air_panel_button,SIGNAL(clicked()),this,SLOT(panelButtonData()));
if (rdairplay_conf->panels(RDAirPlayConf::StationPanel) || if (rda->airplayConf()->panels(RDAirPlayConf::StationPanel) ||
rdairplay_conf->panels(RDAirPlayConf::UserPanel)){ rda->airplayConf()->panels(RDAirPlayConf::UserPanel)){
} }
else { else {
air_panel_button->hide(); air_panel_button->hide();
@ -822,7 +788,7 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Button Log // Button Log
// //
air_button_list=new ButtonLog(air_log[0],air_cae,0,rdairplay_conf, air_button_list=new ButtonLog(air_log[0],rda->cae(),0,rda->airplayConf(),
air_pause_enabled,this); air_pause_enabled,this);
air_button_list->setGeometry(10,140,air_button_list->sizeHint().width(), air_button_list->setGeometry(10,140,air_button_list->sizeHint().width(),
air_button_list->sizeHint().height()); air_button_list->sizeHint().height());
@ -844,7 +810,7 @@ MainWidget::MainWidget(QWidget *parent)
// Set Startup Mode // Set Startup Mode
// //
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
switch(rdairplay_conf->logStartMode(i)) { switch(rda->airplayConf()->logStartMode(i)) {
case RDAirPlayConf::Manual: case RDAirPlayConf::Manual:
SetManualMode(i); SetManualMode(i);
break; break;
@ -859,10 +825,10 @@ MainWidget::MainWidget(QWidget *parent)
case RDAirPlayConf::Previous: case RDAirPlayConf::Previous:
if(air_op_mode_style==RDAirPlayConf::Unified) { if(air_op_mode_style==RDAirPlayConf::Unified) {
SetMode(i,rdairplay_conf->opMode(0)); SetMode(i,rda->airplayConf()->opMode(0));
} }
else { else {
SetMode(i,rdairplay_conf->opMode(i)); SetMode(i,rda->airplayConf()->opMode(i));
} }
break; break;
} }
@ -880,7 +846,7 @@ MainWidget::MainWidget(QWidget *parent)
sql=QString().sprintf("select PLUGIN_PATH,PLUGIN_ARG from NOWNEXT_PLUGINS \ sql=QString().sprintf("select PLUGIN_PATH,PLUGIN_ARG from NOWNEXT_PLUGINS \
where (STATION_NAME=\"%s\")&&(LOG_MACHINE=0)", where (STATION_NAME=\"%s\")&&(LOG_MACHINE=0)",
(const char *) (const char *)
RDEscapeString(air_config->stationName())); RDEscapeString(rda->config()->stationName()));
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
air_plugin_hosts. air_plugin_hosts.
@ -900,7 +866,7 @@ MainWidget::MainWidget(QWidget *parent)
// Create the HotKeyList object // Create the HotKeyList object
// //
rdkeylist=new RDHotKeyList(); rdkeylist=new RDHotKeyList();
rdhotkeys=new RDHotkeys(air_config->stationName(),"rdairplay"); rdhotkeys=new RDHotkeys(rda->config()->stationName(),"rdairplay");
AltKeyHit=false; AltKeyHit=false;
CtrlKeyHit=false; CtrlKeyHit=false;
@ -912,12 +878,12 @@ MainWidget::MainWidget(QWidget *parent)
// //
// Start the RIPC Connection // Start the RIPC Connection
// //
rdripc->connectHost("localhost",RIPCD_TCP_PORT,air_config->password()); rda->ripc()->connectHost("localhost",RIPCD_TCP_PORT,rda->config()->password());
// //
// (Perhaps) Lock Memory // (Perhaps) Lock Memory
// //
if(air_config->lockRdairplayMemory()) { if(rda->config()->lockRdairplayMemory()) {
if(mlockall(MCL_CURRENT|MCL_FUTURE)<0) { if(mlockall(MCL_CURRENT|MCL_FUTURE)<0) {
QMessageBox::warning(this,"RDAirPlay - "+tr("Memory Warning"), QMessageBox::warning(this,"RDAirPlay - "+tr("Memory Warning"),
tr("Unable to lock all memory")+ tr("Unable to lock all memory")+
@ -956,26 +922,26 @@ void MainWidget::ripcConnected(bool state)
// //
// Get Onair Flag State // Get Onair Flag State
// //
rdripc->sendOnairFlag(); rda->ripc()->sendOnairFlag();
// //
// Load Initial Logs // Load Initial Logs
// //
for(unsigned i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(unsigned i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
if(air_start_logname[i].isNull()) { if(air_start_logname[i].isNull()) {
switch(rdairplay_conf->startMode(i)) { switch(rda->airplayConf()->startMode(i)) {
case RDAirPlayConf::StartEmpty: case RDAirPlayConf::StartEmpty:
break; break;
case RDAirPlayConf::StartPrevious: case RDAirPlayConf::StartPrevious:
air_start_logname[i]= air_start_logname[i]=
RDDateTimeDecode(rdairplay_conf->currentLog(i), RDDateTimeDecode(rda->airplayConf()->currentLog(i),
air_startup_datetime,rdstation_conf,air_config); air_startup_datetime,rda->station(),rda->config());
if(!air_start_logname[i].isEmpty()) { if(!air_start_logname[i].isEmpty()) {
if(rdairplay_previous_exit_code==RDAirPlayConf::ExitDirty) { if(rdairplay_previous_exit_code==RDAirPlayConf::ExitDirty) {
if((air_start_line[i]=rdairplay_conf->logCurrentLine(i))>=0) { if((air_start_line[i]=rda->airplayConf()->logCurrentLine(i))>=0) {
air_start_start[i]=rdairplay_conf->autoRestart(i)&& air_start_start[i]=rda->airplayConf()->autoRestart(i)&&
rdairplay_conf->logRunning(i); rda->airplayConf()->logRunning(i);
} }
} }
else { else {
@ -987,15 +953,15 @@ void MainWidget::ripcConnected(bool state)
case RDAirPlayConf::StartSpecified: case RDAirPlayConf::StartSpecified:
air_start_logname[i]= air_start_logname[i]=
RDDateTimeDecode(rdairplay_conf->logName(i), RDDateTimeDecode(rda->airplayConf()->logName(i),
air_startup_datetime,rdstation_conf,air_config); air_startup_datetime,rda->station(),rda->config());
if(!air_start_logname[i].isEmpty()) { if(!air_start_logname[i].isEmpty()) {
if(rdairplay_previous_exit_code==RDAirPlayConf::ExitDirty) { if(rdairplay_previous_exit_code==RDAirPlayConf::ExitDirty) {
if(air_start_logname[i]==rdairplay_conf->currentLog(i)) { if(air_start_logname[i]==rda->airplayConf()->currentLog(i)) {
if((air_start_line[i]=rdairplay_conf->logCurrentLine(i))>= if((air_start_line[i]=rda->airplayConf()->logCurrentLine(i))>=
0) { 0) {
air_start_start[i]=rdairplay_conf->autoRestart(i)&& air_start_start[i]=rda->airplayConf()->autoRestart(i)&&
rdairplay_conf->logRunning(i); rda->airplayConf()->logRunning(i);
} }
else { else {
air_start_line[i]=0; air_start_line[i]=0;
@ -1016,7 +982,7 @@ void MainWidget::ripcConnected(bool state)
rml.setArgQuantity(2); rml.setArgQuantity(2);
rml.setArg(0,i+1); rml.setArg(0,i+1);
rml.setArg(1,air_start_logname[i]); rml.setArg(1,air_start_logname[i]);
rdripc->sendRml(&rml); rda->ripc()->sendRml(&rml);
} }
else { else {
fprintf(stderr,"rdairplay: log \"%s\" doesn't exist\n", fprintf(stderr,"rdairplay: log \"%s\" doesn't exist\n",
@ -1392,7 +1358,7 @@ void MainWidget::logReloadedData(int log)
left(air_log[0]->logName().length()-4))); left(air_log[0]->logName().length()-4)));
if(air_log[0]->logName().isEmpty()) { if(air_log[0]->logName().isEmpty()) {
if(air_panel!=NULL) { if(air_panel!=NULL) {
air_panel->setSvcName(rdairplay_conf->defaultSvc()); air_panel->setSvcName(rda->airplayConf()->defaultSvc());
} }
} }
else { else {
@ -1443,13 +1409,13 @@ void MainWidget::logReloadedData(int log)
rml.setArgQuantity(2); rml.setArgQuantity(2);
rml.setArg(0,log+1); rml.setArg(0,log+1);
rml.setArg(1,air_start_line[log]); rml.setArg(1,air_start_line[log]);
rdripc->sendRml(&rml); rda->ripc()->sendRml(&rml);
if(air_start_start[log]) { if(air_start_start[log]) {
rml.setCommand(RDMacro::PN); // Start Next rml.setCommand(RDMacro::PN); // Start Next
rml.setArgQuantity(1); rml.setArgQuantity(1);
rml.setArg(0,log+1); rml.setArg(0,log+1);
rdripc->sendRml(&rml); rda->ripc()->sendRml(&rml);
} }
} }
else { else {
@ -1462,21 +1428,24 @@ void MainWidget::logReloadedData(int log)
void MainWidget::userData() void MainWidget::userData()
{ {
/*
if(rduser!=NULL) { if(rduser!=NULL) {
delete rduser; delete rduser;
} }
rduser=new RDUser(rdripc->user()); rduser=new RDUser(rda->ripc()->user());
*/
rda->user()->setName(rda->ripc()->user());
LogLine(RDConfig::LogInfo,QString(). LogLine(RDConfig::LogInfo,QString().
sprintf("user changed to '%s'",(const char *)rdripc->user())); sprintf("user changed to '%s'",(const char *)rda->ripc()->user()));
SetCaption(); SetCaption();
// //
// Set Control Perms // Set Control Perms
// //
bool add_allowed=rduser->addtoLog(); bool add_allowed=rda->user()->addtoLog();
bool delete_allowed=rduser->removefromLog(); bool delete_allowed=rda->user()->removefromLog();
bool arrange_allowed=rduser->arrangeLog(); bool arrange_allowed=rda->user()->arrangeLog();
bool playout_allowed=rduser->playoutLog(); bool playout_allowed=rda->user()->playoutLog();
air_add_button->setEnabled(add_allowed&&arrange_allowed&&playout_allowed); air_add_button->setEnabled(add_allowed&&arrange_allowed&&playout_allowed);
air_move_button->setEnabled(arrange_allowed&&playout_allowed); air_move_button->setEnabled(arrange_allowed&&playout_allowed);
@ -1612,14 +1581,14 @@ void MainWidget::selectClickedData(int id,int line,RDLogLine::Status status)
air_log[id]-> air_log[id]->
insert(air_log[id]->size(),air_add_cart,RDLogLine::Play); insert(air_log[id]->size(),air_add_cart,RDLogLine::Play);
air_log[id]->logLine(air_log[id]->size()-1)-> air_log[id]->logLine(air_log[id]->size()-1)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(air_log[id]->size()-1); air_log_list[id]->refresh(air_log[id]->size()-1);
} }
else { else {
air_log[id]-> air_log[id]->
insert(line,air_add_cart,air_log[id]->nextTransType(line)); insert(line,air_add_cart,air_log[id]->nextTransType(line));
air_log[id]->logLine(line)-> air_log[id]->logLine(line)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(line); air_log_list[id]->refresh(line);
} }
SetActionMode(StartButton::Stop); SetActionMode(StartButton::Stop);
@ -1700,18 +1669,18 @@ void MainWidget::selectClickedData(int id,int line,RDLogLine::Status status)
else { else {
if(line<0) { if(line<0) {
air_log[id]->insert(air_log[id]->size(),air_add_cart, air_log[id]->insert(air_log[id]->size(),air_add_cart,
rdairplay_conf->defaultTransType(), rda->airplayConf()->defaultTransType(),
rdairplay_conf->defaultTransType()); rda->airplayConf()->defaultTransType());
air_log[id]->logLine(air_log[id]->size()-1)-> air_log[id]->logLine(air_log[id]->size()-1)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(air_log[id]->size()-1); air_log_list[id]->refresh(air_log[id]->size()-1);
} }
else { else {
air_log[id]-> air_log[id]->
insert(line,air_add_cart,air_log[id]->nextTransType(line), insert(line,air_add_cart,air_log[id]->nextTransType(line),
rdairplay_conf->defaultTransType()); rda->airplayConf()->defaultTransType());
air_log[id]->logLine(line)-> air_log[id]->logLine(line)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(line); air_log_list[id]->refresh(line);
} }
} }
@ -1774,14 +1743,14 @@ void MainWidget::cartDroppedData(int id,int line,RDLogLine *ll)
air_log[id]-> air_log[id]->
insert(air_log[id]->size(),ll->cartNumber(),RDLogLine::Play); insert(air_log[id]->size(),ll->cartNumber(),RDLogLine::Play);
air_log[id]->logLine(air_log[id]->size()-1)-> air_log[id]->logLine(air_log[id]->size()-1)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(air_log[id]->size()-1); air_log_list[id]->refresh(air_log[id]->size()-1);
} }
else { else {
air_log[id]-> air_log[id]->
insert(line,ll->cartNumber(),air_log[id]->nextTransType(line)); insert(line,ll->cartNumber(),air_log[id]->nextTransType(line));
air_log[id]->logLine(line)-> air_log[id]->logLine(line)->
setTransType(rdairplay_conf->defaultTransType()); setTransType(rda->airplayConf()->defaultTransType());
air_log_list[id]->refresh(line); air_log_list[id]->refresh(line);
} }
} }
@ -1798,7 +1767,7 @@ void MainWidget::meterData()
for(int i=0;i<AIR_TOTAL_PORTS;i++) { for(int i=0;i<AIR_TOTAL_PORTS;i++) {
if(FirstPort(i)) { if(FirstPort(i)) {
air_cae->outputMeterUpdate(air_meter_card[i],air_meter_port[i],level); rda->cae()->outputMeterUpdate(air_meter_card[i],air_meter_port[i],level);
for(int j=0;j<2;j++) { for(int j=0;j<2;j++) {
ratio[j]+=pow(10.0,((double)level[j])/1000.0); ratio[j]+=pow(10.0,((double)level[j])/1000.0);
} }
@ -1919,13 +1888,13 @@ void MainWidget::transportChangedData()
air_pie_counter->setTransType(air_log[0]->nextTrans(line)); air_pie_counter->setTransType(air_log[0]->nextTrans(line));
if(logline->playDeck()==NULL) { if(logline->playDeck()==NULL) {
air_pie_counter->setLogline(NULL); air_pie_counter->setLogline(NULL);
air_pie_counter->start(rdstation_conf->timeOffset()); air_pie_counter->start(rda->station()->timeOffset());
} }
else { else {
air_pie_counter->setLogline(logline); air_pie_counter->setLogline(logline);
air_pie_counter->start(((RDPlayDeck *)logline->playDeck())-> air_pie_counter->start(((RDPlayDeck *)logline->playDeck())->
currentPosition()+ currentPosition()+
rdstation_conf->timeOffset()); rda->station()->timeOffset());
} }
} }
} }
@ -2088,7 +2057,7 @@ void MainWidget::keyReleaseEvent(QKeyEvent *e)
if (hotkeystrokes.length() > 0) { if (hotkeystrokes.length() > 0) {
hot_label=(*rdhotkeys).GetRowLabel(RDEscapeString(air_config->stationName()), hot_label=(*rdhotkeys).GetRowLabel(RDEscapeString(rda->config()->stationName()),
(const char *)"airplay",(const char *)hotkeystrokes); (const char *)"airplay",(const char *)hotkeystrokes);
if (hot_label.length()>0) { if (hot_label.length()>0) {
@ -2132,14 +2101,14 @@ void MainWidget::keyReleaseEvent(QKeyEvent *e)
} }
if ((strcmp(hot_label,"Aux Log 1") == 0) && if ((strcmp(hot_label,"Aux Log 1") == 0) &&
(rdairplay_conf->showAuxButton(0) ) ) (rda->airplayConf()->showAuxButton(0) ) )
{ {
fullLogButtonData(1); fullLogButtonData(1);
return; return;
} }
if ( (strcmp(hot_label,"Aux Log 2") == 0) && if ( (strcmp(hot_label,"Aux Log 2") == 0) &&
(rdairplay_conf->showAuxButton(1) ) ) (rda->airplayConf()->showAuxButton(1) ) )
{ {
fullLogButtonData(2); fullLogButtonData(2);
return; return;
@ -2166,14 +2135,14 @@ void MainWidget::keyReleaseEvent(QKeyEvent *e)
void MainWidget::closeEvent(QCloseEvent *e) void MainWidget::closeEvent(QCloseEvent *e)
{ {
if(!rdairplay_conf->exitPasswordValid("")) { if(!rda->airplayConf()->exitPasswordValid("")) {
QString passwd; QString passwd;
RDGetPasswd *gw=new RDGetPasswd(&passwd,this); RDGetPasswd *gw=new RDGetPasswd(&passwd,this);
gw->exec(); gw->exec();
if(!rdairplay_conf->exitPasswordValid(passwd)) { if(!rda->airplayConf()->exitPasswordValid(passwd)) {
return; return;
} }
rdairplay_conf->setExitCode(RDAirPlayConf::ExitClean); rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean);
LogLine(RDConfig::LogInfo,"RDAirPlay exiting"); LogLine(RDConfig::LogInfo,"RDAirPlay exiting");
air_lock->unlock(); air_lock->unlock();
exit(0); exit(0);
@ -2189,7 +2158,7 @@ void MainWidget::closeEvent(QCloseEvent *e)
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) { for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
delete air_log[i]; delete air_log[i];
} }
rdairplay_conf->setExitCode(RDAirPlayConf::ExitClean); rda->airplayConf()->setExitCode(RDAirPlayConf::ExitClean);
LogLine(RDConfig::LogInfo,"RDAirPlay exiting"); LogLine(RDConfig::LogInfo,"RDAirPlay exiting");
air_lock->unlock(); air_lock->unlock();
exit(0); exit(0);
@ -2229,8 +2198,8 @@ void MainWidget::SetCaption()
log="-- "; log="-- ";
} }
setCaption(QString("RDAirPlay")+" v"+VERSION+" - "+tr("Host")+": "+ setCaption(QString("RDAirPlay")+" v"+VERSION+" - "+tr("Host")+": "+
air_config->stationName()+" "+ rda->config()->stationName()+" "+
tr("User:")+" "+rdripc->user()+" "+ tr("User:")+" "+rda->ripc()->user()+" "+
tr("Log:")+" "+log.left(log.length()-4)+" "+ tr("Log:")+" "+log.left(log.length()-4)+" "+
tr("Service:")+" "+air_log[0]->serviceName()); tr("Service:")+" "+air_log[0]->serviceName());
} }
@ -2279,7 +2248,7 @@ void MainWidget::SetManualMode(int mach)
} }
air_mode_display->setOpMode(mach,RDAirPlayConf::Manual); air_mode_display->setOpMode(mach,RDAirPlayConf::Manual);
air_op_mode[mach]=RDAirPlayConf::Manual; air_op_mode[mach]=RDAirPlayConf::Manual;
rdairplay_conf->setOpMode(mach,RDAirPlayConf::Manual); rda->airplayConf()->setOpMode(mach,RDAirPlayConf::Manual);
air_log[mach]->setOpMode(RDAirPlayConf::Manual); air_log[mach]->setOpMode(RDAirPlayConf::Manual);
air_log_list[mach]->setOpMode(RDAirPlayConf::Manual); air_log_list[mach]->setOpMode(RDAirPlayConf::Manual);
if(mach==0) { if(mach==0) {
@ -2304,7 +2273,7 @@ void MainWidget::SetAutoMode(int mach)
} }
air_mode_display->setOpMode(mach,RDAirPlayConf::Auto); air_mode_display->setOpMode(mach,RDAirPlayConf::Auto);
air_op_mode[mach]=RDAirPlayConf::Auto; air_op_mode[mach]=RDAirPlayConf::Auto;
rdairplay_conf->setOpMode(mach,RDAirPlayConf::Auto); rda->airplayConf()->setOpMode(mach,RDAirPlayConf::Auto);
air_log[mach]->setOpMode(RDAirPlayConf::Auto); air_log[mach]->setOpMode(RDAirPlayConf::Auto);
air_log_list[mach]->setOpMode(RDAirPlayConf::Auto); air_log_list[mach]->setOpMode(RDAirPlayConf::Auto);
if(mach==0) { if(mach==0) {
@ -2329,7 +2298,7 @@ void MainWidget::SetLiveAssistMode(int mach)
} }
air_mode_display->setOpMode(mach,RDAirPlayConf::LiveAssist); air_mode_display->setOpMode(mach,RDAirPlayConf::LiveAssist);
air_op_mode[mach]=RDAirPlayConf::LiveAssist; air_op_mode[mach]=RDAirPlayConf::LiveAssist;
rdairplay_conf->setOpMode(mach,RDAirPlayConf::LiveAssist); rda->airplayConf()->setOpMode(mach,RDAirPlayConf::LiveAssist);
air_log[mach]->setOpMode(RDAirPlayConf::LiveAssist); air_log[mach]->setOpMode(RDAirPlayConf::LiveAssist);
air_log_list[mach]->setOpMode(RDAirPlayConf::LiveAssist); air_log_list[mach]->setOpMode(RDAirPlayConf::LiveAssist);
if(mach==0) { if(mach==0) {
@ -2383,7 +2352,7 @@ void MainWidget::SetActionMode(StartButton::Mode mode)
if(svc_quan==0) { if(svc_quan==0) {
sql=QString().sprintf("select SERVICE_NAME from SERVICE_PERMS \ sql=QString().sprintf("select SERVICE_NAME from SERVICE_PERMS \
where STATION_NAME=\"%s\"", where STATION_NAME=\"%s\"",
(const char *)rdstation_conf->name()); (const char *)rda->station()->name());
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
services_list.append( q->value(0).toString() ); services_list.append( q->value(0).toString() );
@ -2409,7 +2378,7 @@ void MainWidget::SetActionMode(StartButton::Mode mode)
air_panel->setActionMode(RDAirPlayConf::Normal); air_panel->setActionMode(RDAirPlayConf::Normal);
} }
if(rdcart_dialog->exec(&air_add_cart,RDCart::All,0,0, if(rdcart_dialog->exec(&air_add_cart,RDCart::All,0,0,
rduser->name(),rduser->password())==0) { rda->user()->name(),rda->user()->password())==0) {
SetActionMode(StartButton::AddTo); SetActionMode(StartButton::AddTo);
} }
else { else {
@ -2558,7 +2527,7 @@ void LogLine(RDConfig::LogPriority prio,const QString &line)
{ {
FILE *file; FILE *file;
air_config->log("rdairplay",prio,line); rda->config()->log("rdairplay",prio,line);
if(logfile.isEmpty()) { if(logfile.isEmpty()) {
return; return;

View File

@ -544,7 +544,7 @@ poslechu</translation>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Chyba databáze</translation> <translation type="obsolete">Chyba databáze</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -636,6 +636,10 @@ OBNOVEN</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -544,7 +544,7 @@ vorhören</translation>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Datenbankfehler</translation> <translation type="obsolete">Datenbankfehler</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -636,6 +636,10 @@ AKTUALISIERT</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -552,7 +552,7 @@ Final</translation>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Error en la base de datos</translation> <translation type="obsolete">Error en la base de datos</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -636,6 +636,10 @@ LISTA</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -544,7 +544,7 @@ la Fin</translation>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Erreur de base de données</translation> <translation type="obsolete">Erreur de base de données</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -636,6 +636,10 @@ DU LOG</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -554,7 +554,7 @@ Tail</source>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Databasefeil</translation> <translation type="obsolete">Databasefeil</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -646,6 +646,10 @@ LASTAR PÅ NYTT</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -554,7 +554,7 @@ Tail</source>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Databasefeil</translation> <translation type="obsolete">Databasefeil</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -646,6 +646,10 @@ LASTAR PÅ NYTT</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -545,7 +545,7 @@ Log</source>
</message> </message>
<message> <message>
<source>Database Error</source> <source>Database Error</source>
<translation>Erro na Base de Dados</translation> <translation type="obsolete">Erro na Base de Dados</translation>
</message> </message>
<message> <message>
<source>ADD</source> <source>ADD</source>
@ -642,6 +642,10 @@ LISTA</translation>
<source>Unable to lock all memory</source> <source>Unable to lock all memory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ModeDisplay</name> <name>ModeDisplay</name>

View File

@ -2,7 +2,7 @@
// //
// A container class for a Rivendell Loadable Module host. // A container class for a Rivendell Loadable Module host.
// //
// (C) Copyright 2008,2016-2017 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2008,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -21,6 +21,7 @@
#include <dlfcn.h> #include <dlfcn.h>
#include <iostream> #include <iostream>
#include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <rddatedecode.h> #include <rddatedecode.h>
#include <rdnownext.h> #include <rdnownext.h>
@ -35,8 +36,8 @@ RLMHost::RLMHost(const QString &path,const QString &arg,
QSocketDevice *udp_socket,QObject *parent) QSocketDevice *udp_socket,QObject *parent)
: QObject(parent) : QObject(parent)
{ {
plugin_path=RDDateDecode(path,QDate::currentDate(),rdstation_conf,air_config); plugin_path=RDDateDecode(path,QDate::currentDate(),rda->station(),rda->config());
plugin_arg=RDDateDecode(arg,QDate::currentDate(),rdstation_conf,air_config); plugin_arg=RDDateDecode(arg,QDate::currentDate(),rda->station(),rda->config());
plugin_udp_socket=udp_socket; plugin_udp_socket=udp_socket;
plugin_handle=NULL; plugin_handle=NULL;
plugin_start_sym=NULL; plugin_start_sym=NULL;
@ -86,7 +87,7 @@ void RLMHost::sendEvent(const QString &svcname,const QString &logname,
struct rlm_pad *now=new struct rlm_pad; struct rlm_pad *now=new struct rlm_pad;
struct rlm_pad *next=new struct rlm_pad; struct rlm_pad *next=new struct rlm_pad;
memset(svc,0,sizeof(struct rlm_svc)); memset(svc,0,sizeof(struct rlm_svc));
RDSvc *service=new RDSvc(svcname,rdstation_conf,air_config); RDSvc *service=new RDSvc(svcname,rda->station(),rda->config());
if(!svcname.isEmpty()) { if(!svcname.isEmpty()) {
sprintf(svc->svc_name,"%s",(const char *)svcname.left(255)); sprintf(svc->svc_name,"%s",(const char *)svcname.left(255));
if(!service->programCode().isEmpty()) { if(!service->programCode().isEmpty()) {

View File

@ -2,7 +2,7 @@
// //
// The stop counter widget for Rivendell // The stop counter widget for Rivendell
// //
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -21,8 +21,10 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qpainter.h> #include <qpainter.h>
#include <stop_counter.h> #include <rdapplication.h>
#include <globals.h>
#include "globals.h"
#include "stop_counter.h"
StopCounter::StopCounter(QWidget *parent) StopCounter::StopCounter(QWidget *parent)
: QPushButton(parent) : QPushButton(parent)
@ -131,7 +133,7 @@ void StopCounter::UpdateTime()
QString text; QString text;
QColor system_button_text_color = palette().active().buttonText(); QColor system_button_text_color = palette().active().buttonText();
int msecs=QTime::currentTime(). int msecs=QTime::currentTime().
addMSecs(rdstation_conf->timeOffset()).msecsTo(stop_time); addMSecs(rda->station()->timeOffset()).msecsTo(stop_time);
if ((old_stop_running != stop_running) || (msecs/1000 != old_msecs/1000)){ if ((old_stop_running != stop_running) || (msecs/1000 != old_msecs/1000)){
QPixmap pix(sizeHint().width(),sizeHint().height()); QPixmap pix(sizeHint().width(),sizeHint().height());

View File

@ -2,7 +2,7 @@
// //
// A wall-clock widget with date. // A wall-clock widget with date.
// //
// (C) Copyright 2002-2003,2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2003,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -28,16 +28,17 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <rdapplication.h>
#include <rdconf.h> #include <rdconf.h>
#include <colors.h> #include "colors.h"
#include <wall_clock.h> #include "globals.h"
#include <globals.h> #include "wall_clock.h"
WallClock::WallClock(QWidget *parent) WallClock::WallClock(QWidget *parent)
:QPushButton(parent) :QPushButton(parent)
{ {
time_offset=rdstation_conf->timeOffset(); time_offset=rda->station()->timeOffset();
previous_time=QTime::currentTime().addMSecs(time_offset); previous_time=QTime::currentTime().addMSecs(time_offset);
time_mode=RDAirPlayConf::TwentyFourHour; time_mode=RDAirPlayConf::TwentyFourHour;
previous_time_mode = RDAirPlayConf::TwentyFourHour; previous_time_mode = RDAirPlayConf::TwentyFourHour;