2016-05-18 Fred Gleason <fredg@paravelsystems.com>

* Added support for the RDCatchd 'DE' command in
	'rdcatchd/rdcatchd.cpp', 'rdcatchd/rdcatchd.h',
	'rdcatchd/event_player.cpp', 'rdcatchd/event_player.h' and
	'rdcatchd/local_macros.cpp'.
	* Added a deck event indicator to RDCatch's deck monitor in
	'rdcatch/deckmon.cpp' and 'rdcatch/deckmon.h'.
This commit is contained in:
Fred Gleason
2016-05-18 17:03:25 -04:00
parent 5190a8282b
commit d9023b1430
13 changed files with 152 additions and 69 deletions

View File

@@ -99,14 +99,12 @@ void EventPlayer::timeoutData()
//
// Dispatch current event
//
if(event_numbers[event_current_event]>=(int)event_deck_events.size()) {
if(event_numbers[event_current_event]>(int)event_deck_events.size()) {
syslog(LOG_ERR,"playout cut event referenced non-existent deck event");
return;
}
unsigned cartnum=event_deck_events[event_numbers[event_current_event]-1];
if(cartnum>0) {
emit runCart(cartnum);
}
emit runCart(event_channel,event_numbers[event_current_event],
event_deck_events[event_numbers[event_current_event]-1]);
//
// Set up next event

View File

@@ -39,7 +39,7 @@ class EventPlayer : public QObject
void stop();
signals:
void runCart(unsigned cartnum);
void runCart(int chan,int number,unsigned cartnum);
private slots:
void timeoutData();

View File

@@ -64,6 +64,7 @@ void MainObject::RunLocalMacros(RDMacro *rml)
msecsTo(QTime::currentTime()));
q=new RDSqlQuery(sql);
delete q;
SendDeckEvent(decknum+1,eventnum);
}
}
if(rml->echoRequested()) {

View File

@@ -338,8 +338,8 @@ MainObject::MainObject(QObject *parent,const char *name)
//
for(unsigned i=0;i<MAX_DECKS;i++) {
catch_playout_event_player[i]=new EventPlayer(catch_rdstation,i+129,this);
connect(catch_playout_event_player[i],SIGNAL(runCart(unsigned)),
this,SLOT(runCartData(unsigned)));
connect(catch_playout_event_player[i],SIGNAL(runCart(int,int,unsigned)),
this,SLOT(runCartData(int,int,unsigned)));
}
//
@@ -1057,13 +1057,14 @@ void MainObject::playUnloadedData(int handle)
}
void MainObject::runCartData(unsigned cartnum)
void MainObject::runCartData(int chan,int number,unsigned cartnum)
{
RDCart *cart=new RDCart(cartnum);
if(cart->exists()&&(cart->type()==RDCart::Macro)) {
ExecuteMacroCart(cart);
}
delete cart;
SendDeckEvent(chan,number);
}
@@ -1567,6 +1568,12 @@ void MainObject::SendMeterLevel(int deck,short levels[2])
}
void MainObject::SendDeckEvent(int deck,int number)
{
BroadcastCommand(QString().sprintf("DE %d %d!",deck,number));
}
void MainObject::ParseCommand(int ch)
{
char buf[256];

View File

@@ -108,7 +108,7 @@ class MainObject : public QObject
void playingData(int handle);
void playStoppedData(int handle);
void playUnloadedData(int handle);
void runCartData(unsigned cartnum);
void runCartData(int chan,int number,unsigned cartnum);
void meterData();
void eventFinishedData(int id);
void freeEventsData();
@@ -149,6 +149,7 @@ class MainObject : public QObject
bool ExecuteMacroCart(RDCart *cart,int id=-1,int event=-1);
void SendFullStatus(int ch);
void SendMeterLevel(int deck,short levels[2]);
void SendDeckEvent(int deck,int number);
void ParseCommand(int);
void DispatchCommand(int);
void KillSocket(int);