summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-06-09 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-06-09 18:00:00 +0200
commit64ddfca3b0e37d877bb3cb247fb8b2ad810dd47f (patch)
tree2f801b7c86c01b2b9004939d4d0ae6c5f4714ac1
parent40334f3e099de4faf87599c0511e003dbdc2ce80 (diff)
downloadvdr-patch-lnbsharing-64ddfca3b0e37d877bb3cb247fb8b2ad810dd47f.tar.gz
vdr-patch-lnbsharing-64ddfca3b0e37d877bb3cb247fb8b2ad810dd47f.tar.bz2
Version 1.2.1vdr-1.2.1
- Fixed OSD access in case none of the devices provides one (thanks to Axel Gruber for reporting this one). - Fixed editing channels ('timers.conf' was not written after a channel has been modified, which could result in errors upon the next start of VDR). - Fixed a crash when canceling a newly created timer (thanks to Thomas Schmidt for reporting this one). - Completed Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten). - Fixed device handling in the CICAM menu in case a VDR instance was started with a specific device using the -D option (thanks to Gerald Raaf for reporting ths one). - Initializing the current channel to '1' to avoid a crash in creating a new timer in case there is no device in the system that can actually receive any channel (thanks to Malcolm Caldwell for reporting this one). - Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf Ahrenberg).
-rw-r--r--CONTRIBUTORS8
-rw-r--r--HISTORY19
-rw-r--r--config.h6
-rw-r--r--device.c4
-rw-r--r--i18n.c60
-rw-r--r--menu.c78
-rw-r--r--osd.c22
-rw-r--r--svdrp.c3
8 files changed, 110 insertions, 90 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ee0c0d4..7e5886d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -90,6 +90,7 @@ Peter Hofmann <software@pxh.de>
Axel Gruber <axel@agm.de>
for his support in keeping the Premiere World channels up to date in 'channels.conf'
for helping to debug support for Viaccess CAMs
+ for reporting a problem in case none of the devices provides an OSD
Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
for translating OSD texts to the Dutch language
@@ -370,6 +371,8 @@ Gerald Raaf <graaf@attglobal.net>
for helping to fix the still picture workaround in case the progress display
is active
for his support in keeping the Premiere World channels up to date in 'channels.conf'
+ for reporting a problem in device handling in the CICAM menu in case a VDR
+ instance was started with a specific device using the -D option
Andreas Roedl <flood@flood-net.de>
for adding some DVB-T channels for Berlin (Germany) to channels.conf.terr
@@ -617,6 +620,8 @@ Sascha Volkenandt <sascha@akv-soft.de>
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
for modifying LOF handling to allow for C-band reception
+ for reporting a crash in creating a new timer in case there is no device in the
+ system that can actually receive any channel
Ludwig Nussel <ludwig.nussel@web.de>
for making the LIRC thread avoid high CPU load in case the connection to LIRC gets lost
@@ -711,3 +716,6 @@ Karim Afifi <karim.afifi@free.fr>
Jon Burgess <mplayer@jburgess.uklinux.net>
for pointing out a problem with NPTL ("Native Posix Thread Library")
+
+Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
+ for reporting a crash when cancelling a newly created timer
diff --git a/HISTORY b/HISTORY
index 4eca5f5..c1a8222 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2234,3 +2234,22 @@ Video Disk Recorder Revision History
(thanks to Jon Burgess for pointing this out).
- Some corrections to the Finnish OSD texts (thanks to Jaakko Hyvätti).
- Officially released as version 1.2.0.
+
+2003-06-09: Version 1.2.1
+
+- Fixed OSD access in case none of the devices provides one (thanks to Axel
+ Gruber for reporting this one).
+- Fixed editing channels ('timers.conf' was not written after a channel has
+ been modified, which could result in errors upon the next start of VDR).
+- Fixed a crash when cancelling a newly created timer (thanks to Thomas Schmidt
+ for reporting this one).
+- Completed Hungarian language texts (thanks to Istvan Koenigsberger and Guido
+ Josten).
+- Fixed device handling in the CICAM menu in case a VDR instance was started
+ with a specific device using the -D option (thanks to Gerald Raaf for reporting
+ ths one).
+- Initializing the current channel to '1' to avoid a crash in creating a new
+ timer in case there is no device in the system that can actually receive any
+ channel (thanks to Malcolm Caldwell for reporting this one).
+- Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
+ Ahrenberg).
diff --git a/config.h b/config.h
index 409e22f..29c058e 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.163 2003/05/31 09:10:58 kls Exp $
+ * $Id: config.h 1.164 2003/06/06 12:28:20 kls Exp $
*/
#ifndef __CONFIG_H
@@ -19,8 +19,8 @@
#include "device.h"
#include "tools.h"
-#define VDRVERSION "1.2.0"
-#define VDRVERSNUM 10200 // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION "1.2.1"
+#define VDRVERSNUM 10201 // Version * 10000 + Major * 100 + Minor
#define MAXPRIORITY 99
#define MAXLIFETIME 99
diff --git a/device.c b/device.c
index 58f9bf0..f43870a 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 1.44 2003/05/25 10:57:59 kls Exp $
+ * $Id: device.c 1.45 2003/06/08 09:19:59 kls Exp $
*/
#include "device.h"
@@ -28,7 +28,7 @@
int cDevice::numDevices = 0;
int cDevice::useDevice = 0;
int cDevice::nextCardIndex = 0;
-int cDevice::currentChannel = 0;
+int cDevice::currentChannel = 1;
cDevice *cDevice::device[MAXDEVICES] = { NULL };
cDevice *cDevice::primaryDevice = NULL;
diff --git a/i18n.c b/i18n.c
index 9b6c191..f50a230 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: i18n.c 1.125 2003/06/01 08:49:47 kls Exp $
+ * $Id: i18n.c 1.128 2003/06/09 09:49:29 kls Exp $
*
* Translations provided by:
*
@@ -222,7 +222,7 @@ const tI18nPhrase Phrases[] = {
"Entoles gia egrafes",
"Inspelningskommandon",
"",// TODO
- "",// TODO
+ "Parancsok a felvett filmekhez",
"Ordres de gravació",
},
{ "Edit channel",
@@ -733,7 +733,7 @@ const tI18nPhrase Phrases[] = {
"Epanafora",
"Ĺterställ",
"",//TODO
- "",//TODO
+ "Reset",
"Reiniciar",
},
// Confirmations:
@@ -932,7 +932,7 @@ const tI18nPhrase Phrases[] = {
"Pressione qualquer tecla para cancelar",
"Appuyez sur une touche pour annuler l'arręt",
"Trykk en tast for ikke ĺ slĺ av",
- "Peru sammutus painamalla jotain näppäintä",
+ "Peru sammutus painamalla mitä tahansa näppäintä",
"Dowolny przycisk zatrzyma wylaczanie",
"Pulse una tecla para interrumpir apagar",
"Piese ena pliktro na akirothei o termatismos",
@@ -1007,7 +1007,7 @@ const tI18nPhrase Phrases[] = {
"Pigi",
"Källa",
"",//TODO
- "",//TODO
+ "Forrás",
"Origen",
},
{ "Srate",
@@ -1587,7 +1587,7 @@ const tI18nPhrase Phrases[] = {
"To kanali den ine diathesimo",
"Kanalen ej tillgänglig!",
"",//TODO
- "",//TODO
+ "A csatorna nem elérhetö",
"Canal no disponible!",
},
{ "Channel settings are not unique!",
@@ -1604,7 +1604,7 @@ const tI18nPhrase Phrases[] = {
"Oi rithmiseis tou kanaliou simpiptoun me allo!",
"Kanalinställningarna är ej unika!",
"",//TODO
- "",//TODO
+ "A csatornabeállítások nem egyértelmüek",
"Propietats del canal duplicades!",
},
{ "Channel locked (recording)!",
@@ -1655,7 +1655,7 @@ const tI18nPhrase Phrases[] = {
"Den exoun oristei simeia gia epexsergasia",
"Det finns inga redigeringsmärken",//TODO
"",//TODO
- "",//TODO
+ "A vágópont nincs kijelölve",//TODO
"No hi ha marques d'edició definides",
},
{ "Can't start editing process!",
@@ -1740,7 +1740,7 @@ const tI18nPhrase Phrases[] = {
"Den mpori na aniksi to CAM menou!",
"Det gĺr inte att öppna CAM menyn!",
"",//TODO
- "",//TODO
+ "A CAM-Menü nem nyitható",
"No puc obrir el menú de la CAM!",
},
{ "Can't reset CAM!",
@@ -1757,7 +1757,7 @@ const tI18nPhrase Phrases[] = {
"Adinato na gini epanafora sto CAM",
"Kan inte ĺterställa CAM!",
"",//TODO
- "",//TODO
+ "A CAM-Reset nem sikerült",
"No puc reiniciar la CAM!",
},
{ "CAM has been reset",
@@ -1774,7 +1774,7 @@ const tI18nPhrase Phrases[] = {
"Sto CAM egine apanafora",
"CA modulen har ĺterställts",
"",//TODO
- "",//TODO
+ "A CAM vissza lett állítva",
"CAM reiniciada",
},
// Setup pages:
@@ -2405,7 +2405,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"Prioritet för direktinspelning",
"",// TODO
- "",// TODO
+ "Szünet prioritás",
"Prioritat de la pausa",
},
{ "Setup.Recording$Pause lifetime (d)",
@@ -2422,7 +2422,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"Livstid för direktinspelning (dagar)",
"",// TODO
- "",// TODO
+ "Szünet élettartama",
"Durada de la pausa (d)",
},
{ "Setup.Recording$Use episode name",
@@ -2592,7 +2592,7 @@ const tI18nPhrase Phrases[] = {
"Resume ID",// TODO
"Ĺteruppta ID",
"Resume ID",// TODO
- "Resume ID",// TODO
+ "Lejátszás ID",
"ID de Continuar",
},
{ "Setup.Miscellaneous$Min. event timeout (min)",
@@ -2696,7 +2696,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
" abcdefghijklmnopqrstuvxyzĺäö0123456789-.#~",
" abcdefghijklmnopqrstuvwxyz0123456789-.#~",
- " aábcdeéfghijklmnoóöpqrstuúüvwxyz0123456789-.,#~",
+ " aábcdeéfghiíjklmnoóöpqrstuúüvwxyz0123456789-.,#~",
" aŕbcçdeéčfghiíjklmnoňpqrstuúvwxyz0123456789-.,#~_ˇ",
},
// Learning keys:
@@ -2742,7 +2742,7 @@ const tI18nPhrase Phrases[] = {
"Pressione qualquer tecla do telecomando",
"Appuyer sur une touche de la télécommande",
"Trykk en av tastene pĺ fjernkontrollen",
- "Paina jotain kaukosäätimen näppäintä",
+ "Paina mitä tahansa kaukosäätimen näppäintä",
"Nacisnac klawisz pilota",
"Pulse una tecla en el telemando",
"Piese ena pliktro sto tilexiristirio",
@@ -2901,7 +2901,7 @@ const tI18nPhrase Phrases[] = {
"Pata 'Menou' gia prosperasi aftou tou pliktrou",
"Tryck 'Meny' för att hoppa över denna knapp.",
"",// TODO
- "",// TODO
+ "A Menü gombot nyomni ennek a gombnak a kihagyásához",
"Premeu 'Menú' per obviar aquesta tecla",
},
{ "Phase 3: Saving key codes",
@@ -3140,7 +3140,7 @@ const tI18nPhrase Phrases[] = {
"Anametadosi",
"Spela upp",
"",// TODO
- "",// TODO
+ "Lejátszás",
"Reproduir",
},
{ "Pause",
@@ -3157,7 +3157,7 @@ const tI18nPhrase Phrases[] = {
"Dialima",
"Pausa",
"",// TODO
- "",// TODO
+ "Szünet",
"Pausa",
},
{ "Stop",
@@ -3174,7 +3174,7 @@ const tI18nPhrase Phrases[] = {
"Terma",
"Stoppa",
"",// TODO
- "",// TODO
+ "Stop",
"Aturar",
},
{ "Record",
@@ -3191,7 +3191,7 @@ const tI18nPhrase Phrases[] = {
"Egrafi",
"Spela in",
"",// TODO
- "",// TODO
+ "Felvenni",
"Gravar",
},
{ "FastFwd",
@@ -3208,7 +3208,7 @@ const tI18nPhrase Phrases[] = {
"Girisma mprosta",
"Snabbspolning framĺt",
"",// TODO
- "",// TODO
+ "Elöre pörgetni",
"Endavant rŕpidament",
},
{ "FastRew",
@@ -3225,7 +3225,7 @@ const tI18nPhrase Phrases[] = {
"Girisma piso",
"Snabbspolning bakĺt",
"",// TODO
- "",// TODO
+ "Vissza pörgetni",
"Enrera rŕpidament",
},
{ "Power",
@@ -3259,7 +3259,7 @@ const tI18nPhrase Phrases[] = {
"Kanali+",
"Kanal+",
"",// TODO
- "",// TODO
+ "Csatorna+",
"Canal +",
},
{ "Channel-",
@@ -3276,7 +3276,7 @@ const tI18nPhrase Phrases[] = {
"Kanali-",
"Kanal-",
"",// TODO
- "",// TODO
+ "Csatorna-",
"Canal -",
},
{ "Volume+",
@@ -3379,7 +3379,7 @@ const tI18nPhrase Phrases[] = {
"klisto",
"av",
"",// TODO
- "",// TODO
+ "ki",
"off",
},
{ "none",
@@ -3396,7 +3396,7 @@ const tI18nPhrase Phrases[] = {
"kanena",
"ingen",
"",// TODO
- "",// TODO
+ "semmi",
"cap",
},
{ "auto",
@@ -3413,7 +3413,7 @@ const tI18nPhrase Phrases[] = {
"aftomato",
"automatisk",
"",// TODO
- "",// TODO
+ "auto",
"auto",
},
{ "top",
@@ -3685,7 +3685,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"Pausar direktinspelningen",
"",// TODO
- "",// TODO
+ "Az élö adás megállítva...",
"Pausa d'emissió en directe...",
},
{ "This plugin has no setup parameters!",
@@ -3702,7 +3702,7 @@ const tI18nPhrase Phrases[] = {
"Afto to plugin den exi parametrous",
"Den här modulen har inga parametrar",
"",// TODO
- "",// TODO
+ "Ennek a plugin-nak nincs setup-parametere!",
"Aquest plugin no admet configuració!",
},
{ NULL }
diff --git a/menu.c b/menu.c
index ecf2493..5a50934 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.253 2003/05/30 09:53:57 kls Exp $
+ * $Id: menu.c 1.256 2003/06/07 12:31:57 kls Exp $
*/
#include "menu.h"
@@ -615,6 +615,7 @@ eOSState cMenuEditChannel::ProcessKey(eKeys Key)
if (channel) {
*channel = data;
isyslog("edited channel %d %s", channel->Number(), data.ToText());
+ Timers.Save();
state = osBack;
}
else {
@@ -834,21 +835,21 @@ private:
cTimer *timer;
cTimer data;
int channel;
- bool deleteIfCancelled;
+ bool addIfConfirmed;
cMenuEditDateItem *firstday;
void SetFirstDayItem(void);
public:
- cMenuEditTimer(int Index, bool New = false);
+ cMenuEditTimer(cTimer *Timer, bool New = false);
virtual ~cMenuEditTimer();
virtual eOSState ProcessKey(eKeys Key);
};
-cMenuEditTimer::cMenuEditTimer(int Index, bool New)
+cMenuEditTimer::cMenuEditTimer(cTimer *Timer, bool New)
:cOsdMenu(tr("Edit timer"), 12)
{
firstday = NULL;
- timer = Timers.Get(Index);
- deleteIfCancelled = New;
+ timer = Timer;
+ addIfConfirmed = New;
if (timer) {
data = *timer;
if (New)
@@ -869,12 +870,8 @@ cMenuEditTimer::cMenuEditTimer(int Index, bool New)
cMenuEditTimer::~cMenuEditTimer()
{
- if (timer && deleteIfCancelled) {
- int Index = timer->Index();
- Timers.Del(timer);
- Timers.Save();
- isyslog("timer %d deleted", Index + 1);
- }
+ if (timer && addIfConfirmed)
+ delete timer; // apparently it wasn't confirmed
Timers.DecBeingEdited();
}
@@ -908,14 +905,18 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
}
if (!*data.file)
strcpy(data.file, data.Channel()->Name());
- if (timer && memcmp(timer, &data, sizeof(data)) != 0) {
- *timer = data;
- if (timer->active)
- timer->active = 1; // allows external programs to mark active timers with values > 1 and recognize if the user has modified them
+ if (timer) {
+ if (memcmp(timer, &data, sizeof(data)) != 0) {
+ *timer = data;
+ if (timer->active)
+ timer->active = 1; // allows external programs to mark active timers with values > 1 and recognize if the user has modified them
+ }
+ if (addIfConfirmed)
+ Timers.Add(timer);
Timers.Save();
- isyslog("timer %d modified (%s)", timer->Index() + 1, timer->active ? "active" : "inactive");
+ isyslog("timer %d %s (%s)", timer->Index() + 1, addIfConfirmed ? "added" : "modified", timer->active ? "active" : "inactive");
+ addIfConfirmed = false;
}
- deleteIfCancelled = false;
}
return osBack;
case kRed:
@@ -1033,19 +1034,14 @@ eOSState cMenuTimers::Edit(void)
if (HasSubMenu() || Count() == 0)
return osContinue;
isyslog("editing timer %d", CurrentTimer()->Index() + 1);
- return AddSubMenu(new cMenuEditTimer(CurrentTimer()->Index()));
+ return AddSubMenu(new cMenuEditTimer(CurrentTimer()));
}
eOSState cMenuTimers::New(void)
{
if (HasSubMenu())
return osContinue;
- cTimer *timer = new cTimer;
- Timers.Add(timer);
- Add(new cMenuTimerItem(timer), true);
- Timers.Save();
- isyslog("timer %d added", timer->Index() + 1);
- return AddSubMenu(new cMenuEditTimer(timer->Index(), true));
+ return AddSubMenu(new cMenuEditTimer(new cTimer, true));
}
eOSState cMenuTimers::Delete(void)
@@ -1094,8 +1090,7 @@ eOSState cMenuTimers::Summary(void)
eOSState cMenuTimers::ProcessKey(eKeys Key)
{
- cTimer *ti = HasSubMenu() ? CurrentTimer() : NULL;
- int TimerNumber = ti ? ti->Index() : -1;
+ int TimerNumber = HasSubMenu() ? Count() : -1;
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
@@ -1112,9 +1107,9 @@ eOSState cMenuTimers::ProcessKey(eKeys Key)
default: break;
}
}
- if (TimerNumber >= 0 && !HasSubMenu() && !Timers.Get(TimerNumber)) {
- // a newly created timer wasn't confirmed with Ok
- cOsdMenu::Del(Current());
+ if (TimerNumber >= 0 && !HasSubMenu() && Timers.Get(TimerNumber)) {
+ // a newly created timer was confirmed with Ok
+ Add(new cMenuTimerItem(Timers.Get(TimerNumber)), true);
Display();
}
return state;
@@ -1274,16 +1269,11 @@ eOSState cMenuWhatsOn::Record(void)
if (item) {
cTimer *timer = new cTimer(item->eventInfo);
cTimer *t = Timers.GetTimer(timer);
- if (!t) {
- Timers.Add(timer);
- Timers.Save();
- isyslog("timer %d added", timer->Index() + 1);
- }
- else {
+ if (t) {
delete timer;
timer = t;
}
- return AddSubMenu(new cMenuEditTimer(timer->Index(), !t));
+ return AddSubMenu(new cMenuEditTimer(timer, !t));
}
return osContinue;
}
@@ -1408,16 +1398,11 @@ eOSState cMenuSchedule::Record(void)
if (item) {
cTimer *timer = new cTimer(item->eventInfo);
cTimer *t = Timers.GetTimer(timer);
- if (!t) {
- Timers.Add(timer);
- Timers.Save();
- isyslog("timer %d added", timer->Index() + 1);
- }
- else {
+ if (t) {
delete timer;
timer = t;
}
- return AddSubMenu(new cMenuEditTimer(timer->Index(), !t));
+ return AddSubMenu(new cMenuEditTimer(timer, !t));
}
return osContinue;
}
@@ -2124,8 +2109,9 @@ cMenuSetupCICAM::cMenuSetupCICAM(void)
for (int d = 0; d < cDevice::NumDevices(); d++) {
for (int i = 0; i < 2; i++) {
char buffer[32];
- snprintf(buffer, sizeof(buffer), "%s%d %d", tr("Setup.CICAM$CICAM DVB"), d + 1, i + 1);
- Add(new cMenuEditCaItem(buffer, &data.CaCaps[d][i]));
+ int CardIndex = cDevice::GetDevice(d)->CardIndex();
+ snprintf(buffer, sizeof(buffer), "%s%d %d", tr("Setup.CICAM$CICAM DVB"), CardIndex + 1, i + 1);
+ Add(new cMenuEditCaItem(buffer, &data.CaCaps[CardIndex][i]));
}
}
SetHelpKeys();
diff --git a/osd.c b/osd.c
index 9d8b72d..8f3343b 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c 1.42 2003/05/03 14:46:38 kls Exp $
+ * $Id: osd.c 1.43 2003/06/04 16:13:00 kls Exp $
*/
#include "osd.h"
@@ -99,6 +99,8 @@ void cOsd::Open(int w, int h)
//XXX
osd = OpenRaw(x, y);
//XXX TODO this should be transferred to the places where the individual windows are requested (there's too much detailed knowledge here!)
+ if (!osd)
+ return;
if (h / lineHeight == 5) { //XXX channel display
osd->Create(0, 0, w, h, 4);
}
@@ -145,7 +147,8 @@ void cOsd::Clear(void)
Fill(0, 0, cols, rows, clrBackground);
refresh();
#else
- osd->Clear();
+ if (osd)
+ osd->Clear();
#endif
}
@@ -161,14 +164,16 @@ void cOsd::Fill(int x, int y, int w, int h, eDvbColor color)
}
wsyncup(window); // shouldn't be necessary because of 'syncok()', but w/o it doesn't work
#else
- osd->Fill(x * charWidth, y * lineHeight, (x + w) * charWidth - 1, (y + h) * lineHeight - 1, color);
+ if (osd)
+ osd->Fill(x * charWidth, y * lineHeight, (x + w) * charWidth - 1, (y + h) * lineHeight - 1, color);
#endif
}
void cOsd::SetBitmap(int x, int y, const cBitmap &Bitmap)
{
#ifndef DEBUG_OSD
- osd->SetBitmap(x, y, Bitmap);
+ if (osd)
+ osd->SetBitmap(x, y, Bitmap);
#endif
}
@@ -200,7 +205,7 @@ int cOsd::Width(unsigned char c)
#ifdef DEBUG_OSD
return 1;
#else
- return osd->Width(c);
+ return osd ? osd->Width(c) : 1;
#endif
}
@@ -209,7 +214,7 @@ int cOsd::WidthInCells(const char *s)
#ifdef DEBUG_OSD
return strlen(s);
#else
- return (osd->Width(s) + charWidth - 1) / charWidth;
+ return osd ? (osd->Width(s) + charWidth - 1) / charWidth : strlen(s);
#endif
}
@@ -218,7 +223,7 @@ eDvbFont cOsd::SetFont(eDvbFont Font)
#ifdef DEBUG_OSD
return Font;
#else
- return osd->SetFont(Font);
+ return osd ? osd->SetFont(Font) : Font;
#endif
}
@@ -231,7 +236,8 @@ void cOsd::Text(int x, int y, const char *s, eDvbColor colorFg, eDvbColor colorB
wmove(window, y, x); // ncurses wants 'y' before 'x'!
waddnstr(window, s, cols - x);
#else
- osd->Text(x * charWidth, y * lineHeight, s, colorFg, colorBg);
+ if (osd)
+ osd->Text(x * charWidth, y * lineHeight, s, colorFg, colorBg);
#endif
}
diff --git a/svdrp.c b/svdrp.c
index 6dafddd..e9f2216 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
- * $Id: svdrp.c 1.51 2003/04/27 14:21:07 kls Exp $
+ * $Id: svdrp.c 1.52 2003/06/06 13:30:52 kls Exp $
*/
#include "svdrp.h"
@@ -790,6 +790,7 @@ void cSVDRP::CmdMODC(const char *Option)
Channels.ReNumber();
Channels.Save();
isyslog("modifed channel %d %s", channel->Number(), channel->ToText());
+ Timers.Save();
Reply(250, "%d %s", channel->Number(), channel->ToText());
}
else