2023-08-25 Fred Gleason <fredg@paravelsystems.com>

* Added a 'PadSegueOverlap=' directive to rd.conf(5).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2023-08-25 13:14:39 -04:00
parent bce62c579f
commit efad818cb7
5 changed files with 29 additions and 2 deletions

View File

@ -24375,3 +24375,5 @@
stream volume controls for the specified stream to be muted. stream volume controls for the specified stream to be muted.
2023-08-25 Fred Gleason <fredg@paravelsystems.com> 2023-08-25 Fred Gleason <fredg@paravelsystems.com>
* Added profiling code (disabled by default) to the 'RDCae' class. * Added profiling code (disabled by default) to the 'RDCae' class.
2023-08-25 Fred Gleason <fredg@paravelsystems.com>
* Added a 'PadSegueOverlap=' directive to rd.conf(5).

View File

@ -189,6 +189,10 @@ TranscodingDelay=0
;ServiceStartupDelay=5 ;ServiceStartupDelay=5
[Hacks] [Hacks]
; As implied by the name, directives in this section are generally for use
; in troubleshooting or maintenance situations. Do *NOT* change these on
; production systems unless you understand exactly what you are doing!
; Completely disable maintenance checks on this host. ; Completely disable maintenance checks on this host.
; DisableMaintChecks=Yes ; DisableMaintChecks=Yes
@ -225,6 +229,11 @@ TranscodingDelay=0
; ;
;SuppressRdcatchMeterUpdates=No ;SuppressRdcatchMeterUpdates=No
; Pad the duration of segue overlaps. Takes milliseconds as value.
;
; PadSegueOverlaps=0;
[Caed] [Caed]
; When set to 'Yes', log all CAE mixer operations to syslog. ; When set to 'Yes', log all CAE mixer operations to syslog.
;EnableMixerLogging=No ;EnableMixerLogging=No

View File

@ -2,7 +2,7 @@
// //
// A container class for a Rivendell Base Configuration // A container class for a Rivendell Base Configuration
// //
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2023 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
@ -399,6 +399,12 @@ bool RDConfig::suppressRdcatchMeterUpdates() const
} }
int RDConfig::padSegueOverlaps() const
{
return conf_pad_segue_overlaps;
}
bool RDConfig::logSearchStrings() const bool RDConfig::logSearchStrings() const
{ {
return conf_log_search_strings; return conf_log_search_strings;
@ -674,6 +680,7 @@ bool RDConfig::load()
profile->boolValue("Hacks","DisableMaintChecks",false); profile->boolValue("Hacks","DisableMaintChecks",false);
conf_suppress_rdcatch_meter_updates= conf_suppress_rdcatch_meter_updates=
profile->boolValue("Hacks","SuppressRdcatchMeterUpdates",false); profile->boolValue("Hacks","SuppressRdcatchMeterUpdates",false);
conf_pad_segue_overlaps=profile->intValue("Hacks","PadSegueOverlaps");
conf_log_search_strings_level= conf_log_search_strings_level=
SyslogPriorityLevel(profile->stringValue("Debugging","LogSearchStrings",""), SyslogPriorityLevel(profile->stringValue("Debugging","LogSearchStrings",""),
&conf_log_search_strings); &conf_log_search_strings);
@ -815,6 +822,7 @@ void RDConfig::clear()
conf_disable_maint_checks=false; conf_disable_maint_checks=false;
conf_save_webget_files_directory=""; conf_save_webget_files_directory="";
conf_suppress_rdcatch_meter_updates=false; conf_suppress_rdcatch_meter_updates=false;
conf_pad_segue_overlaps=0;
conf_log_search_strings=false; conf_log_search_strings=false;
conf_log_search_strings_level=LOG_DEBUG; conf_log_search_strings_level=LOG_DEBUG;
conf_log_log_refresh=false; conf_log_log_refresh=false;

View File

@ -2,7 +2,7 @@
// //
// A container class for a Rivendell Base Configuration // A container class for a Rivendell Base Configuration
// //
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2023 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
@ -105,6 +105,7 @@ class RDConfig
int meterPortRange() const; int meterPortRange() const;
QString saveWebgetFilesDirectory() const; QString saveWebgetFilesDirectory() const;
bool suppressRdcatchMeterUpdates() const; bool suppressRdcatchMeterUpdates() const;
int padSegueOverlaps() const;
bool logSearchStrings() const; bool logSearchStrings() const;
int logSearchStringsLevel() const; int logSearchStringsLevel() const;
bool logLogRefresh() const; bool logLogRefresh() const;
@ -195,6 +196,7 @@ class RDConfig
bool conf_lock_rdairplay_memory; bool conf_lock_rdairplay_memory;
QString conf_save_webget_files_directory; QString conf_save_webget_files_directory;
bool conf_suppress_rdcatch_meter_updates; bool conf_suppress_rdcatch_meter_updates;
int conf_pad_segue_overlaps;
int conf_meter_base_port; int conf_meter_base_port;
int conf_meter_port_range; int conf_meter_port_range;
std::vector<QString> conf_jack_ports[2]; std::vector<QString> conf_jack_ports[2];

View File

@ -20,6 +20,7 @@
#include <QSignalMapper> #include <QSignalMapper>
#include "rdapplication.h"
#include "rdplay_deck.h" #include "rdplay_deck.h"
RDPlayDeck::RDPlayDeck(RDCae *cae,int id,QObject *parent) RDPlayDeck::RDPlayDeck(RDCae *cae,int id,QObject *parent)
@ -781,6 +782,11 @@ void RDPlayDeck::StartTimers(int offset)
start(play_point_value[i][1]-audio_point-offset); start(play_point_value[i][1]-audio_point-offset);
} }
} }
if((i==0)&&(rda->config()->padSegueOverlaps()>0)) {
play_point_timer[0]->stop();
play_point_timer[0]->start(play_point_timer[0]->interval()+
rda->config()->padSegueOverlaps());;
}
} }
} }
if((play_fade_point[1]!=-1)&&(offset<play_fade_point[1])&& if((play_fade_point[1]!=-1)&&(offset<play_fade_point[1])&&