summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2006-05-28 09:19:30 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2006-05-28 09:19:30 +0200
commit39162a98f081d997ad34c1d8dfb48111176eac15 (patch)
tree128173b2da66b9f9d90dcb06ee8c6a7294d1333d /menu.c
parent9b3b98f88f3b29c4df704fa321bb882aaa7207c1 (diff)
downloadvdr-39162a98f081d997ad34c1d8dfb48111176eac15.tar.gz
vdr-39162a98f081d997ad34c1d8dfb48111176eac15.tar.bz2
Fixed moving channels, which sometimes stopped the current replay session
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/menu.c b/menu.c
index 41947313..3f32adae 100644
--- a/menu.c
+++ b/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 1.436 2006/05/25 12:24:53 kls Exp $
+ * $Id: menu.c 1.437 2006/05/28 09:17:25 kls Exp $
*/
#include "menu.h"
@@ -530,8 +530,15 @@ void cMenuChannels::Move(int From, int To)
cOsdMenu::Move(From, To);
Propagate();
isyslog("channel %d moved to %d", FromNumber, ToNumber);
- if (CurrentChannel && CurrentChannel->Number() != CurrentChannelNr)
- Channels.SwitchTo(CurrentChannel->Number());
+ if (CurrentChannel && CurrentChannel->Number() != CurrentChannelNr) {
+ if (!cDevice::PrimaryDevice()->Replaying() || cDevice::PrimaryDevice()->Transferring())
+ Channels.SwitchTo(CurrentChannel->Number());
+#if APIVERSNUM != 10400
+#warning ******* API version changed - activate new code
+ else
+ cDevice::SetCurrentChannel(CurrentChannel);
+#endif
+ }
}
}