diff --git a/ChangeLog b/ChangeLog index 671d2f72..f43d59c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24461,3 +24461,6 @@ 2023-10-16 Fred Gleason * Removed the 'end-pos' parameter from the 'Start Playback' CAE command. +2023-10-17 Fred Gleason + * Modified rdcatchd(8) to use the new-style CAE commands for play-out + events. diff --git a/cae/cae.cpp b/cae/cae.cpp index d22cc9d9..a77550a0 100644 --- a/cae/cae.cpp +++ b/cae/cae.cpp @@ -1419,7 +1419,7 @@ void MainObject::updateMeters() } if(dvr->getOutputMeters(i,j,levels)) { SendMeterLevelUpdate("O",i,j,levels); - } + } } dvr->getOutputPosition(i,positions); SendMeterPositionUpdate(i,positions); diff --git a/rdcatch/deckmon.cpp b/rdcatch/deckmon.cpp index 409ca4ea..77c7ff03 100644 --- a/rdcatch/deckmon.cpp +++ b/rdcatch/deckmon.cpp @@ -142,8 +142,6 @@ void DeckMon::enableMonitorButton(bool state) void DeckMon::processCatchEvent(RDCatchEvent *evt) { - // printf("processCatchEvent(): %s\n",evt->dump().toUtf8().constData()); - QList meter_levels; if(evt->hostName()==mon_station) { diff --git a/rdcatchd/rdcatchd.cpp b/rdcatchd/rdcatchd.cpp index cca319ec..132f426f 100644 --- a/rdcatchd/rdcatchd.cpp +++ b/rdcatchd/rdcatchd.cpp @@ -219,6 +219,18 @@ MainObject::MainObject(QObject *parent) this,SLOT(playbackStoppedData(int))); rda->syslog(LOG_DEBUG,"starting CAE connection"); rda->cae()->connectToHost(); + QList cards; + sql=QString("select `CARD_NUMBER` from `DECKS` where ")+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' && "+ + "`CARD_NUMBER`>=0"; + q=new RDSqlQuery(sql); + while(q->next()) { + if(!cards.contains(q->value(0).toInt())) { + cards.push_back(q->value(0).toInt()); + } + } + delete q; + rda->cae()->enableMetering(&cards); // // Sound Initialization @@ -804,29 +816,6 @@ void MainObject::engineData(int id) } -void MainObject::caeConnectedData(bool state) -{ - if(state) { - QList cards; - QString sql=QString("select `CARD_NUMBER` from `DECKS` where ")+ - "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' && "+ - "`CARD_NUMBER`>=0"; - RDSqlQuery *q=new RDSqlQuery(sql); - while(q->next()) { - if(!cards.contains(q->value(0).toInt())) { - cards.push_back(q->value(0).toInt()); - } - } - delete q; - rda->cae()->enableMetering(&cards); - } - if(!state) { - rda->syslog(LOG_ERR,"aborting - unable to connect to Core AudioEngine"); - exit(1); - } -} - - void MainObject::recordLoadedData(int card,int stream) { int deck=GetRecordDeck(card,stream); @@ -1550,7 +1539,6 @@ void MainObject::LoadEngine(bool adv_day) rda->syslog(LOG_DEBUG,"rdcatchd engine load starts..."); sql=LoadEventSql()+QString(" where `STATION_NAME`='")+ RDEscapeString(rda->station()->name())+"'"; - rda->syslog(LOG_NOTICE,"%s",sql.toUtf8().constData()); q=new RDSqlQuery(sql); while(q->next()) { catch_events.push_back(CatchEvent(rda->station(),RDConfiguration())); @@ -1761,7 +1749,6 @@ void MainObject::LoadDeckList() catch_playout_deck_status[i]=RDDeck::Recording; } else { - // rda->cae()->stopPlay(catch_playout_handle[i]); catch_playout_deck_status[i]=RDDeck::Offline; } } diff --git a/rdcatchd/rdcatchd.h b/rdcatchd/rdcatchd.h index 9a8278f2..d91f306b 100644 --- a/rdcatchd/rdcatchd.h +++ b/rdcatchd/rdcatchd.h @@ -65,17 +65,12 @@ class MainObject : public QObject void startTimerData(int id); void offsetTimerData(int id); void engineData(int); - void caeConnectedData(bool state); void recordLoadedData(int card,int stream); void recordingData(int card,int stream); void recordStoppedData(int card,int stream); void recordUnloadedData(int card,int stream,unsigned msecs); - // void playLoadedData(int handle); - // void playingData(int handle); void playStartedData(int serial); - // void playStoppedData(int handle); void playbackStoppedData(int serial); - // void playUnloadedData(int handle); void runCartData(int chan,int number,unsigned cartnum); void meterData(); void eventFinishedData(int id); @@ -178,7 +173,6 @@ class MainObject : public QObject int catch_playout_card[MAX_DECKS]; int catch_playout_stream[MAX_DECKS]; int catch_playout_port[MAX_DECKS]; - // int catch_playout_handle[MAX_DECKS]; int catch_playout_serials[MAX_DECKS]; RDDeck::Status catch_playout_deck_status[MAX_DECKS]; int catch_playout_event_id[MAX_DECKS];