mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed the locking sequence when starting an instant recording
This commit is contained in:
parent
c0b8666d1f
commit
081e9eb45f
1
HISTORY
1
HISTORY
@ -9108,3 +9108,4 @@ Video Disk Recorder Revision History
|
||||
- Fixed false positives when checking the locking sequence, in case of nested locks
|
||||
within the same thread.
|
||||
- Fixed uninitialized variable SdWatchdog in vdr.c (reported by Frank Neumann).
|
||||
- Fixed the locking sequence when starting an instant recording.
|
||||
|
7
menu.c
7
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 4.32 2017/06/04 09:30:56 kls Exp $
|
||||
* $Id: menu.c 4.33 2017/06/07 15:36:52 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -5061,6 +5061,7 @@ eOSState cDisplaySubtitleTracks::ProcessKey(eKeys Key)
|
||||
|
||||
cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer, bool Pause)
|
||||
{
|
||||
const char *LastReplayed = cReplayControl::LastReplayed(); // must do this before locking schedules!
|
||||
// Whatever happens here, the timers will be modified in some way...
|
||||
Timers->SetModified();
|
||||
// We're going to work with an event here, so we need to prevent
|
||||
@ -5098,7 +5099,7 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
||||
}
|
||||
else {
|
||||
Timers->Del(timer);
|
||||
if (!cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||
if (!LastReplayed) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||
cReplayControl::SetRecording(fileName);
|
||||
}
|
||||
timer = NULL;
|
||||
@ -5114,7 +5115,7 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
|
||||
if (device->AttachReceiver(recorder)) {
|
||||
Recording.WriteInfo();
|
||||
cStatus::MsgRecording(device, Recording.Name(), Recording.FileName(), true);
|
||||
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||
if (!Timer && !LastReplayed) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||
cReplayControl::SetRecording(fileName);
|
||||
SchedulesStateKey.Remove();
|
||||
LOCK_RECORDINGS_WRITE;
|
||||
|
Loading…
Reference in New Issue
Block a user