mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed editing a remote timer immediately after it has been created
This commit is contained in:
parent
1efd5e6b7e
commit
686831caf5
1
HISTORY
1
HISTORY
@ -8982,3 +8982,4 @@ Video Disk Recorder Revision History
|
||||
statistics about the currently received signal.
|
||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||
- Fixed displaying remote timers in the main menu of skin LCARS.
|
||||
- Fixed editing a remote timer immediately after it has been created.
|
||||
|
6
menu.c
6
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.24 2017/04/03 12:26:23 kls Exp $
|
||||
* $Id: menu.c 4.25 2017/04/20 09:15:49 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -1088,9 +1088,13 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
|
||||
case kOk: if (timer) {
|
||||
LOCK_TIMERS_WRITE;
|
||||
if (!addIfConfirmed && !Timers->Contains(timer)) {
|
||||
if (cTimer *t = Timers->GetById(timer->Id(), timer->Remote()))
|
||||
timer = t;
|
||||
else {
|
||||
Skins.Message(mtWarning, tr("Timer has been deleted!"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
LOCK_CHANNELS_READ;
|
||||
if (const cChannel *Channel = Channels->GetByNumber(channel))
|
||||
data.channel = Channel;
|
||||
|
8
timers.c
8
timers.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: timers.c 4.8 2017/03/30 15:08:11 kls Exp $
|
||||
* $Id: timers.c 4.9 2017/04/20 09:15:06 kls Exp $
|
||||
*/
|
||||
|
||||
#include "timers.h"
|
||||
@ -739,12 +739,14 @@ int cTimers::NewTimerId(void)
|
||||
return ++lastTimerId; // no need for locking, the caller must have a lock on the global Timers list
|
||||
}
|
||||
|
||||
const cTimer *cTimers::GetById(int Id) const
|
||||
const cTimer *cTimers::GetById(int Id, const char *Remote) const
|
||||
{
|
||||
for (const cTimer *ti = First(); ti; ti = Next(ti)) {
|
||||
if (!ti->Remote() && ti->Id() == Id)
|
||||
if (ti->Id() == Id) {
|
||||
if (!Remote && !ti->Remote() || Remote && ti->Remote() && strcmp(Remote, ti->Remote()) == 0)
|
||||
return ti;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
6
timers.h
6
timers.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: timers.h 4.7 2017/03/30 15:22:36 kls Exp $
|
||||
* $Id: timers.h 4.8 2017/04/20 09:09:45 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __TIMERS_H
|
||||
@ -168,8 +168,8 @@ public:
|
||||
///< }
|
||||
static bool Load(const char *FileName);
|
||||
static int NewTimerId(void);
|
||||
const cTimer *GetById(int Id) const;
|
||||
cTimer *GetById(int Id) { return const_cast<cTimer *>(static_cast<const cTimers *>(this)->GetById(Id)); };
|
||||
const cTimer *GetById(int Id, const char *Remote = NULL) const;
|
||||
cTimer *GetById(int Id, const char *Remote = NULL) { return const_cast<cTimer *>(static_cast<const cTimers *>(this)->GetById(Id, Remote)); };
|
||||
const cTimer *GetTimer(const cTimer *Timer) const;
|
||||
cTimer *GetTimer(const cTimer *Timer) { return const_cast<cTimer *>(static_cast<const cTimers *>(this)->GetTimer(Timer)); };
|
||||
const cTimer *GetMatch(time_t t) const;
|
||||
|
Loading…
Reference in New Issue
Block a user