diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index d86427b3..2e92884b 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -704,6 +704,14 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : connectFaderSignalsToMixerBoardSlots(); } +CAudioMixerBoard::~CAudioMixerBoard() +{ + for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) + { + delete vecpChanFader[i]; + } +} + template inline void CAudioMixerBoard::connectFaderSignalsToMixerBoardSlots() { diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 3d10c137..1701e4a0 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -169,6 +169,8 @@ public: CAudioMixerBoard ( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr ); + virtual ~CAudioMixerBoard(); + void HideAll(); void ApplyNewConClientList ( CVector& vecChanInfo ); void SetServerName ( const QString& strNewServerName ); diff --git a/src/client.cpp b/src/client.cpp index b88ace5a..02c880ff 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -220,6 +220,23 @@ CClient::CClient ( const quint16 iPortNumber, } } +CClient::~CClient() +{ + // free audio encoders and decoders + opus_custom_encoder_destroy ( OpusEncoderMono ); + opus_custom_decoder_destroy ( OpusDecoderMono ); + opus_custom_encoder_destroy ( OpusEncoderStereo ); + opus_custom_decoder_destroy ( OpusDecoderStereo ); + opus_custom_encoder_destroy ( Opus64EncoderMono ); + opus_custom_decoder_destroy ( Opus64DecoderMono ); + opus_custom_encoder_destroy ( Opus64EncoderStereo ); + opus_custom_decoder_destroy ( Opus64DecoderStereo ); + + // free audio modes + opus_custom_mode_destroy ( OpusMode ); + opus_custom_mode_destroy ( Opus64Mode ); +} + void CClient::OnSendProtMessage ( CVector vecMessage ) { // the protocol queries me to call the function to send the message diff --git a/src/client.h b/src/client.h index 24c61750..c73c7fbf 100755 --- a/src/client.h +++ b/src/client.h @@ -110,6 +110,8 @@ public: const bool bNoAutoJackConnect, const QString& strNClientName ); + virtual ~CClient(); + void Start(); void Stop(); bool IsRunning() { return Sound.IsRunning(); } diff --git a/src/multicolorled.cpp b/src/multicolorled.cpp index bc864fee..b9134a4c 100755 --- a/src/multicolorled.cpp +++ b/src/multicolorled.cpp @@ -37,12 +37,12 @@ CMultiColorLED::CMultiColorLED ( QWidget* parent, Qt::WindowFlags f ) BitmCubeYellow ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDYellowSmall.png" ) ), BitmCubeRed ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDRedSmall.png" ) ) { - // init color flags - Reset(); - // set init bitmap setPixmap ( BitmCubeGrey ); eColorFlag = RL_GREY; + + // init color flags + Reset(); } void CMultiColorLED::changeEvent ( QEvent* curEvent ) diff --git a/src/server.cpp b/src/server.cpp index 80449d24..267a311f 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -241,6 +241,7 @@ CServer::CServer ( const int iNewMaxNumChan, Logging ( iMaxDaysHistory ), iFrameCount ( 0 ), JamRecorder ( strRecordingDirName ), + bRecorderInitialised ( false ), bEnableRecording ( false ), bWriteStatusHTMLFile ( false ), HighPrecisionTimer ( bNUseDoubleSystemFrameSize ), @@ -550,6 +551,26 @@ void CServer::CreateAndSendJitBufMessage ( const int iCurChanID, vecChannels[iCurChanID].CreateJitBufMes ( iNNumFra ); } +CServer::~CServer() +{ + for ( int i = 0; i < iMaxNumChannels; i++ ) + { + // free audio encoders and decoders + opus_custom_encoder_destroy ( OpusEncoderMono[i] ); + opus_custom_decoder_destroy ( OpusDecoderMono[i] ); + opus_custom_encoder_destroy ( OpusEncoderStereo[i] ); + opus_custom_decoder_destroy ( OpusDecoderStereo[i] ); + opus_custom_encoder_destroy ( Opus64EncoderMono[i] ); + opus_custom_decoder_destroy ( Opus64DecoderMono[i] ); + opus_custom_encoder_destroy ( Opus64EncoderStereo[i] ); + opus_custom_decoder_destroy ( Opus64DecoderStereo[i] ); + + // free audio modes + opus_custom_mode_destroy ( OpusMode[i] ); + opus_custom_mode_destroy ( Opus64Mode[i] ); + } +} + void CServer::SendProtMessage ( int iChID, CVector vecMessage ) { // the protocol queries me to call the function to send the message diff --git a/src/server.h b/src/server.h index 4a370ad0..bb58dc2d 100755 --- a/src/server.h +++ b/src/server.h @@ -183,6 +183,8 @@ public: const bool bNUseDoubleSystemFrameSize, const ELicenceType eNLicenceType ); + virtual ~CServer(); + void Start(); void Stop(); bool IsRunning() { return HighPrecisionTimer.isActive(); } diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 942e8027..9a829dea 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -37,6 +37,9 @@ CServerDlg::CServerDlg ( CServer* pNServP, BitmapSystemTrayInactive ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDGreyArrow.png" ) ), BitmapSystemTrayActive ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDGreenArrow.png" ) ) { + // check if system tray icon can be used + bSystemTrayIconAvaialbe = SystemTrayIcon.isSystemTrayAvailable(); + setupUi ( this ); @@ -143,9 +146,6 @@ CServerDlg::CServerDlg ( CServer* pNServP, + tr ( "During a recording session, the button can be used to start a new recording." ) ); - // check if system tray icon can be used - bSystemTrayIconAvaialbe = SystemTrayIcon.isSystemTrayAvailable(); - // init system tray icon if ( bSystemTrayIconAvaialbe ) {