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.
2023-08-25 Fred Gleason <fredg@paravelsystems.com>
* 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
[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.
; DisableMaintChecks=Yes
@ -225,6 +229,11 @@ TranscodingDelay=0
;
;SuppressRdcatchMeterUpdates=No
; Pad the duration of segue overlaps. Takes milliseconds as value.
;
; PadSegueOverlaps=0;
[Caed]
; When set to 'Yes', log all CAE mixer operations to syslog.
;EnableMixerLogging=No

View File

@ -2,7 +2,7 @@
//
// 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
// 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
{
return conf_log_search_strings;
@ -674,6 +680,7 @@ bool RDConfig::load()
profile->boolValue("Hacks","DisableMaintChecks",false);
conf_suppress_rdcatch_meter_updates=
profile->boolValue("Hacks","SuppressRdcatchMeterUpdates",false);
conf_pad_segue_overlaps=profile->intValue("Hacks","PadSegueOverlaps");
conf_log_search_strings_level=
SyslogPriorityLevel(profile->stringValue("Debugging","LogSearchStrings",""),
&conf_log_search_strings);
@ -815,6 +822,7 @@ void RDConfig::clear()
conf_disable_maint_checks=false;
conf_save_webget_files_directory="";
conf_suppress_rdcatch_meter_updates=false;
conf_pad_segue_overlaps=0;
conf_log_search_strings=false;
conf_log_search_strings_level=LOG_DEBUG;
conf_log_log_refresh=false;

View File

@ -2,7 +2,7 @@
//
// 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
// it under the terms of the GNU General Public License version 2 as
@ -105,6 +105,7 @@ class RDConfig
int meterPortRange() const;
QString saveWebgetFilesDirectory() const;
bool suppressRdcatchMeterUpdates() const;
int padSegueOverlaps() const;
bool logSearchStrings() const;
int logSearchStringsLevel() const;
bool logLogRefresh() const;
@ -195,6 +196,7 @@ class RDConfig
bool conf_lock_rdairplay_memory;
QString conf_save_webget_files_directory;
bool conf_suppress_rdcatch_meter_updates;
int conf_pad_segue_overlaps;
int conf_meter_base_port;
int conf_meter_port_range;
std::vector<QString> conf_jack_ports[2];

View File

@ -20,6 +20,7 @@
#include <QSignalMapper>
#include "rdapplication.h"
#include "rdplay_deck.h"
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);
}
}
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])&&