From 13087f27d986ce6f669889e25ec0e2fe9d26e32f Mon Sep 17 00:00:00 2001
From: angelaschmid <angela.schmid@wolke7.net>
Date: Fri, 16 May 2014 10:22:50 +0200
Subject: [PATCH] Save volume only on TV Player exit
---
mythtv/libs/libmyth/audio/volumebase.cpp | 7 +++++--
mythtv/libs/libmyth/audio/volumebase.h | 1 +
mythtv/libs/libmythtv/audioplayer.cpp | 8 ++++++++
mythtv/libs/libmythtv/audioplayer.h | 1 +
mythtv/libs/libmythtv/mythplayer.h | 1 +
mythtv/libs/libmythtv/tv_play.cpp | 6 ++++++
6 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/mythtv/libs/libmyth/audio/volumebase.cpp b/mythtv/libs/libmyth/audio/volumebase.cpp
index ee4783f..dac39fc 100644
a
|
b
|
void VolumeBase::SetCurrentVolume(int value)
|
38 | 38 | { |
39 | 39 | volume = max(min(value, 100), 0); |
40 | 40 | UpdateVolume(); |
| 41 | } |
41 | 42 | |
| 43 | void VolumeBase::SaveCurrentVolume(void) |
| 44 | { |
42 | 45 | QString controlLabel = gCoreContext->GetSetting("MixerControl", "PCM"); |
43 | 46 | controlLabel += "MixerVolume"; |
44 | | gCoreContext->SaveSetting(controlLabel, volume); |
| 47 | gCoreContext->SaveSetting(controlLabel, GetCurrentVolume()); |
45 | 48 | } |
46 | 49 | |
47 | 50 | void VolumeBase::AdjustCurrentVolume(int change) |
… |
… |
MuteState VolumeBase::NextMuteState(MuteState cur)
|
93 | 96 | void VolumeBase::UpdateVolume(void) |
94 | 97 | { |
95 | 98 | int new_volume = volume; |
96 | | bool save = true; |
| 99 | bool save = false; |
97 | 100 | if (current_mute_state == kMuteAll) |
98 | 101 | { |
99 | 102 | new_volume = 0; |
diff --git a/mythtv/libs/libmyth/audio/volumebase.h b/mythtv/libs/libmyth/audio/volumebase.h
index 0d9a38f..73b1a34 100644
a
|
b
|
class MPUBLIC VolumeBase
|
20 | 20 | bool SWVolume(void) const; |
21 | 21 | virtual uint GetCurrentVolume(void) const; |
22 | 22 | virtual void SetCurrentVolume(int value); |
| 23 | virtual void SaveCurrentVolume(void); |
23 | 24 | virtual void AdjustCurrentVolume(int change); |
24 | 25 | virtual void ToggleMute(void); |
25 | 26 | |
diff --git a/mythtv/libs/libmythtv/audioplayer.cpp b/mythtv/libs/libmythtv/audioplayer.cpp
index 2f4b46c..f8b074f 100644
a
|
b
|
uint AudioPlayer::SetVolume(int newvolume)
|
343 | 343 | return GetVolume(); |
344 | 344 | } |
345 | 345 | |
| 346 | void AudioPlayer::SaveVolume(void) |
| 347 | { |
| 348 | if (!m_audioOutput || m_no_audio_out) |
| 349 | return; |
| 350 | QMutexLocker lock(&m_lock); |
| 351 | m_audioOutput->SaveCurrentVolume(); |
| 352 | } |
| 353 | |
346 | 354 | int64_t AudioPlayer::GetAudioTime(void) |
347 | 355 | { |
348 | 356 | if (!m_audioOutput || m_no_audio_out) |
diff --git a/mythtv/libs/libmythtv/audioplayer.h b/mythtv/libs/libmythtv/audioplayer.h
index eae034f..1efbf53 100644
a
|
b
|
class MTV_PUBLIC AudioPlayer
|
54 | 54 | uint GetVolume(void); |
55 | 55 | uint AdjustVolume(int change); |
56 | 56 | uint SetVolume(int newvolume); |
| 57 | void SaveVolume(void); |
57 | 58 | float GetStretchFactor(void) const { return m_stretchfactor; } |
58 | 59 | void SetStretchFactor(float factor); |
59 | 60 | bool IsUpmixing(void); |
diff --git a/mythtv/libs/libmythtv/mythplayer.h b/mythtv/libs/libmythtv/mythplayer.h
index b34eba7..cc168f6 100644
a
|
b
|
class MTV_PUBLIC MythPlayer
|
389 | 389 | // Audio Sets |
390 | 390 | uint AdjustVolume(int change) { return audio.AdjustVolume(change); } |
391 | 391 | uint SetVolume(int newvolume) { return audio.SetVolume(newvolume); } |
| 392 | void SaveVolume(void) { return audio.SaveVolume(); } |
392 | 393 | bool SetMuted(bool mute) { return audio.SetMuted(mute); } |
393 | 394 | MuteState SetMuteState(MuteState state) { return audio.SetMuteState(state); } |
394 | 395 | MuteState IncrMuteState(void) { return audio.IncrMuteState(); } |
diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp
index f0fee85..67ce159 100755
a
|
b
|
void TV::PrepareToExitPlayer(PlayerContext *ctx, int line, BookmarkAction bookma
|
3298 | 3298 | } |
3299 | 3299 | if (db_auto_set_watched) |
3300 | 3300 | ctx->player->SetWatched(); |
| 3301 | |
| 3302 | if (ctx->player->GetAudio()->ControlsVolume()) |
| 3303 | { |
| 3304 | ctx->player->SaveVolume(); |
| 3305 | } |
| 3306 | |
3301 | 3307 | } |
3302 | 3308 | ctx->UnlockDeletePlayer(__FILE__, line); |
3303 | 3309 | } |