From 4bf5176e6aa757e459649744c8b0277625bfed19 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Fri, 15 May 2020 21:52:13 +0100 Subject: [PATCH] Request new recording on SIGUSR1 --- src/recorder/jamrecorder.cpp | 4 ++++ src/server.cpp | 12 ++++++++++++ src/server.h | 3 +++ 3 files changed, 19 insertions(+) diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index 7719bd6d..4327ccf2 100755 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -314,6 +314,10 @@ void CJamRecorder::Init( const CServer* server, throw std::runtime_error( (recordBaseDir.absolutePath() + " is a directory but cannot be written to").toStdString() ); } + QObject::connect( (const QObject *)server, SIGNAL ( RestartRecorder() ), + this, SLOT( OnTriggerSession() ), + Qt::ConnectionType::QueuedConnection ); + QObject::connect( (const QObject *)server, SIGNAL ( Stopped() ), this, SLOT( OnEnd() ), Qt::ConnectionType::QueuedConnection ); diff --git a/src/server.cpp b/src/server.cpp index b6c7f3b2..718875e8 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -678,6 +678,10 @@ void CServer::OnHandledSignal ( int sigNum ) switch ( sigNum ) { + case SIGUSR1: + RequestNewRecording(); + break; + case SIGINT: case SIGTERM: // This should trigger OnAboutToQuit @@ -1586,3 +1590,11 @@ void CServer::CreateLevelsForAllConChannels ( const int i vecLevelsOut[j] = static_cast ( ceil ( dCurSigLevel ) ); } } + +void CServer::RequestNewRecording() +{ + if ( bEnableRecording ) + { + emit RestartRecorder(); + } +} diff --git a/src/server.h b/src/server.h index 52633b4a..475928e4 100755 --- a/src/server.h +++ b/src/server.h @@ -285,6 +285,8 @@ protected: const CVector > vecvecsData, CVector& vecLevelsOut ); + void RequestNewRecording(); + // do not use the vector class since CChannel does not have appropriate // copy constructor/operator CChannel vecChannels[MAX_NUM_CHANNELS]; @@ -364,6 +366,7 @@ signals: const CHostAddress RecHostAddr, const int iNumAudChan, const CVector vecsData ); + void RestartRecorder(); public slots: void OnTimer();