Skip to content

Commit ef516ae

Browse files
author
Mark Kendall
committed
Video Visualisations: Reset the visualisations on audio changes.
1 parent 807e58a commit ef516ae

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

mythtv/libs/libmythtv/audioplayer.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ void AudioPlayer::RemoveVisuals(void)
7070
m_audioOutput->removeVisual(m_visuals[i]);
7171
}
7272

73+
void AudioPlayer::ResetVisuals(void)
74+
{
75+
if (!m_audioOutput)
76+
return;
77+
78+
QMutexLocker lock(&m_lock);
79+
for (uint i = 0; i < m_visuals.size(); i++)
80+
m_visuals[i]->prepare();
81+
}
82+
7383
void AudioPlayer::Reset(void)
7484
{
7585
if (!m_audioOutput)
@@ -164,6 +174,8 @@ QString AudioPlayer::ReinitAudio(void)
164174
m_muted_on_creation = false;
165175
}
166176

177+
ResetVisuals();
178+
167179
return errMsg;
168180
}
169181

@@ -257,6 +269,8 @@ void AudioPlayer::SetAudioParams(AudioFormat format, int orig_channels,
257269
m_samplerate = samplerate;
258270
m_passthru = passthru;
259271
m_codec_profile = codec_profile;
272+
273+
ResetVisuals();
260274
}
261275

262276
void AudioPlayer::SetEffDsp(int dsprate)

mythtv/libs/libmythtv/audioplayer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class MTV_PUBLIC AudioPlayer
7777
private:
7878
void AddVisuals(void);
7979
void RemoveVisuals(void);
80+
void ResetVisuals(void);
8081

8182
private:
8283
MythPlayer *m_parent;

mythtv/libs/libmythtv/visualisations/videovisualspectrum.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,13 @@ void VideoVisualSpectrum::Draw(const QRect &area, MythPainter *painter,
124124
DrawPriv(painter, device);
125125
}
126126

127+
void VideoVisualSpectrum::prepare(void)
128+
{
129+
for (int i = 0; i < m_magnitudes.size(); i++)
130+
m_magnitudes[i] = 0.0;
131+
VideoVisual::prepare();
132+
}
133+
127134
void VideoVisualSpectrum::DrawPriv(MythPainter *painter, QPaintDevice* device)
128135
{
129136
static const QBrush brush(QColor(0, 0, 200, 180));

mythtv/libs/libmythtv/visualisations/videovisualspectrum.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class VideoVisualSpectrum : public VideoVisual
1212

1313
virtual void Draw(const QRect &area, MythPainter *painter,
1414
QPaintDevice* device);
15+
virtual void prepare();
1516

1617
protected:
1718
virtual bool Initialise(const QRect &area);

0 commit comments

Comments
 (0)