2022-11-09 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in the 'Edit Audio' dialog in rdlibrary(1) that could
	cause the right end of the audio waveform to be truncated when
	viewing long cuts.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2022-11-09 16:41:37 -05:00
parent 7066ebf61c
commit b5e05a0563
3 changed files with 19 additions and 1 deletions

View File

@ -23644,3 +23644,7 @@
2022-11-09 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdcartslots(1) that caused it to play double audio
when sent multiple 'Play Slot' ['DP'] RMLs.
2022-11-09 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'Edit Audio' dialog in rdlibrary(1) that could
cause the right end of the audio waveform to be truncated when
viewing long cuts.

View File

@ -449,7 +449,7 @@ int RDMarkerView::shrinkFactor() const
bool RDMarkerView::canShrinkTime() const
{
return d_shrink_factor>1;
return d_shrink_factor>d_min_shrink_factor;
}
@ -682,10 +682,23 @@ bool RDMarkerView::setCut(QString *err_msg,unsigned cartnum,int cutnum)
}
d_audio_length=(int)((int64_t)d_wave_factory->energySize()*1152000/
((int64_t)d_sample_rate));
//
// Maximum Shrink Factor
//
d_max_shrink_factor=1;
while(d_wave_factory->energySize()>=(d_width*d_max_shrink_factor)) {
d_max_shrink_factor=d_max_shrink_factor*2;
}
//
// Minimum Shrink Factor
//
int min_shrink=d_wave_factory->energySize()/(32768);
d_min_shrink_factor=1;
while(d_min_shrink_factor<min_shrink) {
d_min_shrink_factor*=2;
}
d_pad_size=64+(d_width*d_max_shrink_factor-d_wave_factory->energySize())/d_max_shrink_factor-1;
d_shrink_factor=d_max_shrink_factor;
WriteWave();

View File

@ -165,6 +165,7 @@ class RDMarkerView : public RDWidget
int d_height;
int d_shrink_factor;
int d_max_shrink_factor;
int d_min_shrink_factor;
int d_pad_size;
int d_audio_gain;
unsigned d_sample_rate;