mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 1.3.16
- Fixed cChannel::SetName() in case only the ShortName or Provider has changed (thanks to Sascha Volkenandt for reporting this one). - Added Danish language texts (thanks to Mogens Elneff). - Reactivated the NPTL check at startup because there appear to be still unsolved problems when running on NPTL systems. - Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() (thanks to Joachim Wilke for reporting this one, and Andreas Regel for additional input). - Fixed the cDvbSpuDecoder (thanks to Marco Schlüßler). - Fixed handling of pmAudioOnlyBlack (thanks to Stefan Huelswitt). - Fixed a short glitch when starting a recording on the primary device while in replay or transfer mode (thanks to Marco Schlüßler). - Added missing initialization of cEvent::seen. - Checking PID language codes for ISO 639 compliance to avoid problems with funny characters. Invalid language codes will be stored as "???". - The '0' key now toggles the "Day" item in the "Timers" menu between "single shot" and "repeating". The keys '1'...'7' can be used to toggle the individual days ('1' is Monday). Thanks to Sascha Klek for reporting a problem with the '0' key in the "Day" item of the "Timers" menu.
This commit is contained in:
parent
3038be2a6a
commit
23ed5a5ed3
17
CONTRIBUTORS
17
CONTRIBUTORS
@ -187,6 +187,7 @@ Stefan Huelswitt <huels@iname.com>
|
||||
available to plugins, and to add a SetText() function
|
||||
for reporting a bug in setting the title in the replay display of the "Classic VDR"
|
||||
skin in case a shorter title is set after a longer one
|
||||
for fixing handling of pmAudioOnlyBlack
|
||||
|
||||
Ulrich Röder <roeder@efr-net.de>
|
||||
for pointing out that there are channels that have a symbol rate higher than
|
||||
@ -732,6 +733,8 @@ Sascha Volkenandt <sascha@akv-soft.de>
|
||||
some broken graphics tools
|
||||
for fixing a memory leak in theme description handling
|
||||
for pointing out a "near miss" condition in cCondVar
|
||||
for reporting a bug in cChannel::SetName() in case only the ShortName or Provider
|
||||
has changed
|
||||
|
||||
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
|
||||
for modifying LOF handling to allow for C-band reception
|
||||
@ -997,6 +1000,8 @@ Andreas Regel <andreas.regel@gmx.de>
|
||||
for fixing handling bitmap indexes for 256 color mode
|
||||
for reporting a bug in removing the "scanning recordings..." message in case the
|
||||
video directory is empty
|
||||
for pointing out a missing call to cStatus::MsgOsdtatusMessage(NULL) in
|
||||
cSkins::Message()
|
||||
|
||||
Thomas Bergwinkl <Thomas.Bergwinkl@t-online.de>
|
||||
for fixing the validity check for channel IDs, because some providers use TIDs
|
||||
@ -1071,6 +1076,9 @@ Marco Schl
|
||||
for reporting a problem with initialization of the main program loop variables
|
||||
with older compiler versions
|
||||
for adding the 'portal name' to cChannels
|
||||
for fixing the cDvbSpuDecoder
|
||||
for fixing a short glitch when starting a recording on the primary device while
|
||||
in replay or transfer mode
|
||||
|
||||
Jürgen Schmitz <j.schmitz@web.de>
|
||||
for reporting a bug in displaying the current channel when switching via the SVDRP
|
||||
@ -1132,3 +1140,12 @@ Mattias Gr
|
||||
|
||||
Uwe Hanke <uhanke@gmx.de>
|
||||
for fixing some typos in the Makefile's 'font' target
|
||||
|
||||
Mogens Elneff <mogens@elneff.dk>
|
||||
for translating OSD texts to the Danish language
|
||||
|
||||
Joachim Wilke <vdr@joachim-wilke.de>
|
||||
for reporting missing calls to cStatus::MsgOsdClear() in cSkins::Message()
|
||||
|
||||
Sascha Klek <sklek@gmx.de>
|
||||
for reporting a problem with the '0' key in the "Day" item of the "Timers" menu
|
||||
|
24
HISTORY
24
HISTORY
@ -359,7 +359,7 @@ Video Disk Recorder Revision History
|
||||
the EPG scanner).
|
||||
- The EPG scanner now starts with the first channel (it used to start with the
|
||||
second channel).
|
||||
- Reacitvated setting the PNR.
|
||||
- Reactivated setting the PNR.
|
||||
- Adapted the frame scanning to the new muxing of the driver.
|
||||
- The new compile time option REMOTE=NONE can be used to compile VDR without
|
||||
any remote control support (for applications where it shall be controlled
|
||||
@ -3116,3 +3116,25 @@ Video Disk Recorder Revision History
|
||||
- Now displaying the name of the remote control for which the keys are being
|
||||
learned inside the menu to avoid overwriting the date/time in the 'classic'
|
||||
skin (thanks to Oliver Endriss for reporting this one).
|
||||
|
||||
2004-11-14: Version 1.3.16
|
||||
|
||||
- Fixed cChannel::SetName() in case only the ShortName or Provider has changed
|
||||
(thanks to Sascha Volkenandt for reporting this one).
|
||||
- Added Danish language texts (thanks to Mogens Elneff).
|
||||
- Reactivated the NPTL check at startup because there appear to be still
|
||||
unsolved problems when running on NPTL systems.
|
||||
- Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() (thanks
|
||||
to Joachim Wilke for reporting this one, and Andreas Regel for additional
|
||||
input).
|
||||
- Fixed the cDvbSpuDecoder (thanks to Marco Schlüßler).
|
||||
- Fixed handling of pmAudioOnlyBlack (thanks to Stefan Huelswitt).
|
||||
- Fixed a short glitch when starting a recording on the primary device while
|
||||
in replay or transfer mode (thanks to Marco Schlüßler).
|
||||
- Added missing initialization of cEvent::seen.
|
||||
- Checking PID language codes for ISO 639 compliance to avoid problems with
|
||||
funny characters. Invalid language codes will be stored as "???".
|
||||
- The '0' key now toggles the "Day" item in the "Timers" menu between "single
|
||||
shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
|
||||
days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the
|
||||
'0' key in the "Day" item of the "Timers" menu.
|
||||
|
9
INSTALL
9
INSTALL
@ -7,7 +7,14 @@ Version 1.3
|
||||
IMPORTANT NOTES:
|
||||
----------------
|
||||
|
||||
Please make sure your environment is NOT set to use UTF-8 or
|
||||
VDR currently doesn't work with NPTL ("Native Posix Thread Library").
|
||||
Either don't use NPTL, or set the environment variable
|
||||
|
||||
LD_ASSUME_KERNEL=2.4.1
|
||||
|
||||
before running VDR.
|
||||
|
||||
Also, please make sure your environment is NOT set to use UTF-8 or
|
||||
any other multibyte character representation. Check the value of your
|
||||
$LANG or $LC_CTYPE environment variable, and if it contains something
|
||||
like "de_DE.UTF-8", make sure you set it to something like "de_DE.iso8859-1"
|
||||
|
8
MANUAL
8
MANUAL
@ -24,7 +24,7 @@ Version 1.2
|
||||
Green - Language New New Ins/Ovr Rewind Skip -60s
|
||||
Yellow - Pause live Delete Delete Delete Delete Skip +60s
|
||||
Blue - Stop/Resume Mark On/Off(1) - Summary Stop
|
||||
0..9 Ch select - Sort(3) - Numeric inp. Exec cmd(2) Editing
|
||||
0..9 Ch select - Sort(3) Day(4) Numeric inp. Exec cmd(2) Editing
|
||||
|
||||
In a numerical input field (like the response to a CAM enquiry) the keys 0..9
|
||||
are used to enter the data, and the Left key can be used to delete the last
|
||||
@ -73,6 +73,9 @@ Version 1.2
|
||||
(2) See "Processing Recordings" below.
|
||||
(3) In the "Channels" menu the '0' key switches the sort mode through "by number",
|
||||
"by name" and "by provider".
|
||||
(4) In the "Timers" menu, when on the "Day" item, the '0' key toggles between
|
||||
a single shot and a repeating timer. If "Day" indicates a repeating timer,
|
||||
the keys '1'...'7' can be used to toggle the individual days ('1' is monday).
|
||||
|
||||
* Navigating through the On Screen Menus
|
||||
|
||||
@ -369,6 +372,9 @@ Version 1.2
|
||||
by listing the days of the week on which they shall record.
|
||||
For example, a timer that shall record every monday and wednesday
|
||||
would have a Day setting of "M-W----".
|
||||
The '0' key toggles between a single shot and a repeating timer.
|
||||
If "Day" indicates a repeating timer, the keys '1'...'7' can be
|
||||
used to toggle the individual days ('1' is monday).
|
||||
Start: The start time of the timer in hh:mm as 24 hour ("military") time.
|
||||
Stop: The stop time of the timer.
|
||||
VPS: Defines whether the timer shall use VPS (if available). If this
|
||||
|
@ -18,7 +18,7 @@
|
||||
#
|
||||
S28.2E-2-2027-4705:106:sky_one
|
||||
S28.2E-2-2027-5104:107:sky_one_mix
|
||||
S28.2E-2-2054-10240:175:itv2
|
||||
S28.2E-2-2054-10240:118:itv2
|
||||
S28.2E-2-2023-4905:130:scifi
|
||||
S28.2E-2-2025-5904:127:paramount
|
||||
S28.2E-2-2009-6201:551:discovery
|
||||
|
26
channels.c
26
channels.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: channels.c 1.30 2004/10/31 12:54:06 kls Exp $
|
||||
* $Id: channels.c 1.31 2004/11/02 18:07:05 kls Exp $
|
||||
*/
|
||||
|
||||
#include "channels.h"
|
||||
@ -358,15 +358,23 @@ void cChannel::SetId(int Nid, int Tid, int Sid, int Rid)
|
||||
|
||||
void cChannel::SetName(const char *Name, const char *ShortName, const char *Provider)
|
||||
{
|
||||
if (!isempty(Name) && strcmp(name, Name) != 0) {
|
||||
if (Number()) {
|
||||
dsyslog("changing name of channel %d from '%s,%s;%s' to '%s,%s;%s'", Number(), name, shortName, provider, Name, ShortName, Provider);
|
||||
modification |= CHANNELMOD_NAME;
|
||||
Channels.SetModified();
|
||||
if (!isempty(Name)) {
|
||||
bool nn = strcmp(name, Name) != 0;
|
||||
bool ns = strcmp(shortName, ShortName) != 0;
|
||||
bool np = strcmp(provider, Provider) != 0;
|
||||
if (nn || ns || np) {
|
||||
if (Number()) {
|
||||
dsyslog("changing name of channel %d from '%s,%s;%s' to '%s,%s;%s'", Number(), name, shortName, provider, Name, ShortName, Provider);
|
||||
modification |= CHANNELMOD_NAME;
|
||||
Channels.SetModified();
|
||||
}
|
||||
if (nn)
|
||||
name = strcpyrealloc(name, Name);
|
||||
if (ns)
|
||||
shortName = strcpyrealloc(shortName, ShortName);
|
||||
if (np)
|
||||
provider = strcpyrealloc(provider, Provider);
|
||||
}
|
||||
name = strcpyrealloc(name, Name);
|
||||
shortName = strcpyrealloc(shortName, ShortName);
|
||||
provider = strcpyrealloc(provider, Provider);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ VOX;RTL World:12187:hC34:S19.2E:27500:167:136=deu:71:0:12060:1:1089:0
|
||||
KABEL1;ProSiebenSat.1:12480:vC34:S19.2E:27500:511:512=deu:33:0:899:133:33:0
|
||||
NEUN LIVE Television,NEUN LIVE;BetaDigital:12480:vC34:S19.2E:27500:767:768=deu:35:0:897:133:33:0
|
||||
DSF;BetaDigital:12480:vC34:S19.2E:27500:1023:1024=deu:0:0:900:133:33:0
|
||||
HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0
|
||||
HSE24,HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0
|
||||
Bloomberg TV Germany;Bloomberg:12551:vC56:S19.2E:22000:162:99=deu:0:0:12160:1:1108:0
|
||||
EURONEWS;CSAT:11817:vC34:S19.2E:27500:163:92=fra,93=eng,94=ita,95=esl,91=rus,98=por,99=deu:0:0:8004:1:1070:0
|
||||
rbb Brandenburg;ARD:12109:hC34:S19.2E:27500:501:502=deu:504:0:28205:1:1073:0
|
||||
@ -48,8 +48,8 @@ PREMIERE START,START;PREMIERE:11797:hC34:S19.2E:27500:255:256=deu:32:1702,1801,1
|
||||
PREMIERE 1,PREM 1;PREMIERE:11797:hC34:S19.2E:27500:511:512=deu,513=deu;515=deu:32:1702,1801,1722:10:133:2:0
|
||||
PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu,1793=deu;1795=deu:32:1702,1722,1801:11:133:2:0
|
||||
PREMIERE 3,PREM 3;PREMIERE:11797:hC34:S19.2E:27500:2303:2304=deu,2305=deu:32:1722,1801,1702:43:133:2:0
|
||||
PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1801,1722,1702:9:133:2:0
|
||||
PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu,1281=deu:32:1722,1702,1801:29:133:2:0
|
||||
PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu:32:1801,1722,1702:9:133:2:0
|
||||
PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu:32:1722,1702,1801:29:133:2:0
|
||||
PREMIERE 6,PREM 6;PREMIERE:11797:hC34:S19.2E:27500:1535:1536=deu:32:1702,1722,1801:41:133:2:0
|
||||
PREMIERE 7,PREM 7;PREMIERE:11797:hC34:S19.2E:27500:1023:1024=deu:32:1722,1702,1801:20:133:2:0
|
||||
DISNEY CHANNEL,DISNEY;PREMIERE:11758:hC34:S19.2E:27500:2559:2560=deu:0:1722,1702,1801:34:133:17:0
|
||||
@ -59,7 +59,7 @@ PREMIERE DIREKT,DIREKT;PREMIERE:12031:hC34:S19.2E:27500:2815:2816=deu,2817=deu;2
|
||||
BEATE-UHSE.TV,B-UHSE;PREMIERE:12070:hC34:S19.2E:27500:1023:1024=deu:32:1801,1702,1722:21:133:1:0
|
||||
DIREKT EROTIK,EROTIK;PREMIERE:12031:hC34:S19.2E:27500:1279:0:0:1722,1702,1801:513:133:4:0
|
||||
:Sportsworld
|
||||
PREMIERE SPORT 1,SPORT 1;PREMIERE:11719:hC34:S19.2E:27500:255:256=deu,257=deu:32:1801,1702,1722:17:133:3:0
|
||||
Konferenz:11719:hC34:S19.2E:27500:255:256=deu,257=deu:32:1801,1702,1722:17:133:3:0
|
||||
PREMIERE SPORT 2,SPORT 2;PREMIERE:12031:hC34:S19.2E:27500:3839:3840=deu,3841=deu:32:1722,1702,1801:27:133:4:0
|
||||
:Beta Digital
|
||||
N24;ProSiebenSat.1:12480:vC34:S19.2E:27500:2047:2048=deu:36:0:47:133:33:0
|
||||
@ -82,10 +82,10 @@ Chamber TV;Chambre des D
|
||||
RTL TELE Letzebuerg:12551:vC56:S19.2E:22000:168:144=eng,146=fra,151=ltz:74:0:3994:1:1108:0
|
||||
Yorin;CANAL+:12574:hC56:S19.2E:22000:512+8190:84=dut:33:622,602,100:5010:53:1109:0
|
||||
MTV2 Pop Channel;MTV Networks:12226:hC34:S19.2E:27500:513+8190:661=deu:577:0:28640:1:1091:0
|
||||
MTV Central;MTV Networks:11739:vC34:S19.2E:27500:3031:3032:3034:0:28653:1:1066:0
|
||||
Via 1 - Schöner Reisen:12148:h:S19.2E:27500:511:512:0:0:44:0:0:0
|
||||
VIVA;VIVA Fernsehen GmbH & Co. KG:12669:vC56:S19.2E:22000:309:310=deu:311:0:12732:1:1116:0
|
||||
VIVA PLUS;VIVA Fernsehen GmbH & Co. KG:12551:vC56:S19.2E:22000:171:172=deu:173:0:12120:1:1108:0
|
||||
MTV Central;MTV Networks:11739:vC34:S19.2E:27500:3031:3032:3034:0:28653:1:1066:0
|
||||
QVC Deutschland;QVC:12551:vC56:S19.2E:22000:165:166:167:0:12100:1:1108:0
|
||||
TELE 5;BetaDigital:12480:vC34:S19.2E:27500:1535:1536=deu:38:0:51:133:33:0
|
||||
:@201 Sky
|
||||
@ -94,7 +94,7 @@ Sky Mix;BSkyB:12226:hC23:S28.2E:27500:2314+2304:2315=eng,2316=NAR:2317:960,961:5
|
||||
ITV2;BSkyB:10906:vC56:S28.2E:22000:2350:2351=eng,2352=eng:2353:960,961:10240:2:2054:0
|
||||
Sci-Fi;BSkyB:12148:hC23:S28.2E:27500:2314+2304:2315=eng:2316:960,961:4905:2:2023:0
|
||||
Paramount;BSkyB:12187:hC23:S28.2E:27500:2313+2304:2314=eng:2315:960,961:5904:2:2025:0
|
||||
Discovery;BSkyB:11875:hC23:S28.2E:27500:2304:2306=eng,2307=NAR:2305:960,961:6201:2:2009:0
|
||||
Discovery;BSkyB:11875:hC23:S28.2E:27500:2304:2306=eng,2307:2305:960,961:6201:2:2009:0
|
||||
Sky Movies 1;BSkyB:11836:hC23:S28.2E:27500:2310+2304:2311=eng,2312=NAR;2314=eng:2313:960,961:4303:2:2007:0
|
||||
Sky Movies 2;BSkyB:11836:hC23:S28.2E:27500:2305+2304:2306=eng,2307=NAR;2309=eng:2308:960,961:4302:2:2007:0
|
||||
Sky Movies 3;BSkyB:11836:hC23:S28.2E:27500:2315+2304:2316=eng,2317=NAR;2319=eng:2318:960,961:4403:2:2007:0
|
||||
@ -114,7 +114,7 @@ Animal Plnt+;BSkyB:12070:hC23:S28.2E:27500:2314+2307:2315=eng:0:960,961:50002:2:
|
||||
S1T;BSkyB:12285:vC23:S28.2E:27500:2311+2304:2312=eng,2313=NAR:2307:960,961:4409:2:2030:0
|
||||
CNN;BSkyB:12051:vC23:S28.2E:27500:2313:2315=eng:2314:0:7140:2:2018:0
|
||||
BBC PARL'MNT:12129:vC23:S28.2E:27500:2304:2306=eng,2307=eng:2305:0:7300:2:2022:0
|
||||
Olisat;T-Systems/MTI:11200:vC56:S13.0E:27500:413:414=ita:0:0:4733:318:13400:0
|
||||
Olisat / Telefe;T-Systems/MTI:11200:vC56:S13.0E:27500:413:414=ita:0:0:4733:318:13400:0
|
||||
EURO1080:12168:vC34:S19.2E:27500:308:256:0:FF:21100:1:1088:0
|
||||
Astra HD:12441:vC34:S19.2E:27500:133+80:134:0:FF:29700:0:0:0
|
||||
:@1000 New channels
|
||||
|
6
config.h
6
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.203 2004/10/31 16:17:02 kls Exp $
|
||||
* $Id: config.h 1.204 2004/11/02 17:20:27 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -20,8 +20,8 @@
|
||||
#include "i18n.h"
|
||||
#include "tools.h"
|
||||
|
||||
#define VDRVERSION "1.3.15"
|
||||
#define VDRVERSNUM 10315 // Version * 10000 + Major * 100 + Minor
|
||||
#define VDRVERSION "1.3.16"
|
||||
#define VDRVERSNUM 10316 // Version * 10000 + Major * 100 + Minor
|
||||
|
||||
#define MAXPRIORITY 99
|
||||
#define MAXLIFETIME 99
|
||||
|
24
dvbdevice.c
24
dvbdevice.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbdevice.c 1.102 2004/10/30 14:53:30 kls Exp $
|
||||
* $Id: dvbdevice.c 1.104 2004/11/07 10:27:19 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbdevice.h"
|
||||
@ -681,14 +681,15 @@ int cDvbDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask)
|
||||
return -1;
|
||||
}
|
||||
|
||||
void cDvbDevice::TurnOffLiveMode(void)
|
||||
void cDvbDevice::TurnOffLiveMode(bool LiveView)
|
||||
{
|
||||
// Avoid noise while switching:
|
||||
|
||||
CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true));
|
||||
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true));
|
||||
CHECK(ioctl(fd_audio, AUDIO_CLEAR_BUFFER));
|
||||
CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER));
|
||||
if (LiveView) {
|
||||
// Avoid noise while switching:
|
||||
CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true));
|
||||
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true));
|
||||
CHECK(ioctl(fd_audio, AUDIO_CLEAR_BUFFER));
|
||||
CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER));
|
||||
}
|
||||
|
||||
// Turn off live PIDs:
|
||||
|
||||
@ -781,7 +782,7 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
|
||||
// Turn off live PIDs if necessary:
|
||||
|
||||
if (TurnOffLivePIDs)
|
||||
TurnOffLiveMode();
|
||||
TurnOffLiveMode(LiveView);
|
||||
|
||||
// Set the tuner:
|
||||
|
||||
@ -897,10 +898,9 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode)
|
||||
CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, false));
|
||||
break;
|
||||
case pmAudioVideo:
|
||||
if (playMode == pmNone)
|
||||
TurnOffLiveMode();
|
||||
// continue with next...
|
||||
case pmAudioOnlyBlack:
|
||||
if (playMode == pmNone)
|
||||
TurnOffLiveMode(true);
|
||||
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true));
|
||||
CHECK(ioctl(fd_audio, AUDIO_SELECT_SOURCE, AUDIO_SOURCE_MEMORY));
|
||||
CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, PlayMode == pmAudioVideo));
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbdevice.h 1.29 2004/10/30 14:48:27 kls Exp $
|
||||
* $Id: dvbdevice.h 1.30 2004/11/07 10:25:16 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBDEVICE_H
|
||||
@ -56,7 +56,7 @@ public:
|
||||
|
||||
private:
|
||||
cDvbTuner *dvbTuner;
|
||||
void TurnOffLiveMode(void);
|
||||
void TurnOffLiveMode(bool LiveView);
|
||||
public:
|
||||
virtual bool ProvidesSource(int Source) const;
|
||||
virtual bool ProvidesTransponder(const cChannel *Channel) const;
|
||||
|
73
dvbspu.c
73
dvbspu.c
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.c 1.7 2004/05/22 14:02:32 kls Exp $
|
||||
* $Id: dvbspu.c 1.8 2004/11/06 11:50:13 kls Exp $
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
@ -319,25 +319,42 @@ int cDvbSpuDecoder::ScaleYres(int value)
|
||||
return value;
|
||||
}
|
||||
|
||||
void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp)
|
||||
sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp)
|
||||
{
|
||||
int x2 = size.x2;
|
||||
while ((x2 - size.x1 + 1) & 0x03)
|
||||
x2++;
|
||||
tArea Area = { size.x1, size.y1, x2, size.y2, 2 };
|
||||
osd->SetAreas(&Area, 1);
|
||||
if (x2 > size.x2)
|
||||
osd->DrawRectangle(size.x2 + 1, size.y1, x2, size.y2, clrTransparent);
|
||||
osd->DrawBitmap(size.x1, size.y1, *bmp);
|
||||
delete bmp;
|
||||
sDvbSpuRect size;
|
||||
if (fgbmp && bgbmp) {
|
||||
size.x1 = min(fgsize.x1, bgsize.x1);
|
||||
size.y1 = min(fgsize.y1, bgsize.y1);
|
||||
size.x2 = max(fgsize.x2, bgsize.x2);
|
||||
size.y2 = max(fgsize.y2, bgsize.y2);
|
||||
}
|
||||
else if (fgbmp) {
|
||||
size.x1 = fgsize.x1;
|
||||
size.y1 = fgsize.y1;
|
||||
size.x2 = fgsize.x2;
|
||||
size.y2 = fgsize.y2;
|
||||
}
|
||||
else if (bgbmp) {
|
||||
size.x1 = bgsize.x1;
|
||||
size.y1 = bgsize.y1;
|
||||
size.x2 = bgsize.x2;
|
||||
size.y2 = bgsize.y2;
|
||||
}
|
||||
else {
|
||||
size.x1 = 0;
|
||||
size.y1 = 0;
|
||||
size.x2 = 0;
|
||||
size.y2 = 0;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
void cDvbSpuDecoder::Draw(void)
|
||||
{
|
||||
Hide();
|
||||
|
||||
if (!spubmp)
|
||||
if (!spubmp) {
|
||||
Hide();
|
||||
return;
|
||||
}
|
||||
|
||||
cBitmap *fg = NULL;
|
||||
cBitmap *bg = NULL;
|
||||
@ -362,18 +379,28 @@ void cDvbSpuDecoder::Draw(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (bg || fg) {
|
||||
if (osd == NULL)
|
||||
if ((osd = cOsdProvider::NewOsd(0, 0)) == NULL) {
|
||||
dsyslog("NewOsd failed\n");
|
||||
return;
|
||||
}
|
||||
sDvbSpuRect areaSize = CalcAreaSize(hlsize, fg, bgsize, bg);
|
||||
|
||||
if (fg)
|
||||
DrawBmp(hlsize, fg);
|
||||
if (!fg || !bg || !osd) {
|
||||
Hide();
|
||||
}
|
||||
|
||||
if (bg || fg) {
|
||||
if (osd == NULL) {
|
||||
osd = cOsdProvider::NewOsd(0, 0);
|
||||
int x2 = areaSize.x2;
|
||||
while ((x2 - areaSize.x1 + 1) & 0x03)
|
||||
x2++;
|
||||
tArea Area = { areaSize.x1, areaSize.y1, x2, areaSize.y2, (fg && bg) ? 4 : 2 };
|
||||
osd->SetAreas(&Area, 1);
|
||||
}
|
||||
|
||||
if (bg)
|
||||
DrawBmp(bgsize, bg);
|
||||
osd->DrawBitmap(bgsize.x1, bgsize.y1, *bg);
|
||||
if (fg)
|
||||
osd->DrawBitmap(hlsize.x1, hlsize.y1, *fg);
|
||||
delete fg;
|
||||
delete bg;
|
||||
|
||||
osd->Flush();
|
||||
}
|
||||
|
4
dvbspu.h
4
dvbspu.h
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.h 1.5 2004/06/12 12:57:55 kls Exp $
|
||||
* $Id: dvbspu.h 1.6 2004/11/06 11:42:37 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBSPU_H
|
||||
@ -130,7 +130,7 @@ class cDvbSpuDecoder:public cSpuDecoder {
|
||||
|
||||
int ScaleYcoord(int value);
|
||||
int ScaleYres(int value);
|
||||
void DrawBmp(sDvbSpuRect & size, cBitmap * bmp);
|
||||
sDvbSpuRect CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp);
|
||||
|
||||
public:
|
||||
cDvbSpuDecoder();
|
||||
|
3
epg.c
3
epg.c
@ -7,7 +7,7 @@
|
||||
* Original version (as used in VDR before 1.3.0) written by
|
||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||
*
|
||||
* $Id: epg.c 1.21 2004/10/31 16:12:36 kls Exp $
|
||||
* $Id: epg.c 1.22 2004/11/07 10:43:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include "epg.h"
|
||||
@ -31,6 +31,7 @@ cEvent::cEvent(tChannelID ChannelID, u_int16_t EventID)
|
||||
startTime = 0;
|
||||
duration = 0;
|
||||
vps = 0;
|
||||
SetSeen();
|
||||
}
|
||||
|
||||
cEvent::~cEvent()
|
||||
|
4
i18n.h
4
i18n.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: i18n.h 1.13 2004/10/16 11:50:41 kls Exp $
|
||||
* $Id: i18n.h 1.14 2004/11/02 17:21:19 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __I18N_H
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
const int I18nNumLanguages = 19;
|
||||
const int I18nNumLanguages = 20;
|
||||
|
||||
typedef const char *tI18nPhrase[I18nNumLanguages];
|
||||
|
||||
|
32
menuitems.c
32
menuitems.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menuitems.c 1.19 2004/06/19 09:45:45 kls Exp $
|
||||
* $Id: menuitems.c 1.20 2004/11/14 16:16:21 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menuitems.h"
|
||||
@ -495,7 +495,7 @@ eOSState cMenuEditChanItem::ProcessKey(eKeys Key)
|
||||
}
|
||||
}
|
||||
break;
|
||||
default : return cMenuEditIntItem::ProcessKey(Key);
|
||||
default: return cMenuEditIntItem::ProcessKey(Key);
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
@ -606,7 +606,33 @@ eOSState cMenuEditDayItem::ProcessKey(eKeys Key)
|
||||
return cMenuEditIntItem::ProcessKey(Key);
|
||||
Set();
|
||||
break;
|
||||
default : return cMenuEditIntItem::ProcessKey(Key);
|
||||
default: {
|
||||
if (d >= 0) {
|
||||
if (k1 <= Key && Key <= k7) {
|
||||
int v = *value ^ (1 << (Key - k1));
|
||||
if ((v & 0xFF) != 0) {
|
||||
*value = v; // can't let this become all 0
|
||||
Set();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
int v = *value;
|
||||
eOSState result = cMenuEditIntItem::ProcessKey(Key);
|
||||
if (result == osContinue && Key == k0) {
|
||||
if (d >= 0) {
|
||||
*value = cTimer::GetMDay(time(NULL));
|
||||
d = -1;
|
||||
Set();
|
||||
}
|
||||
else if (*value == 0 || *value == v) {
|
||||
d = cTimer::GetWDay(time(NULL));
|
||||
*value = days[d];
|
||||
Set();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return osContinue;
|
||||
}
|
||||
|
8
skins.c
8
skins.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: skins.c 1.1 2004/05/15 12:34:38 kls Exp $
|
||||
* $Id: skins.c 1.3 2004/11/07 09:46:46 kls Exp $
|
||||
*/
|
||||
|
||||
#include "skins.h"
|
||||
@ -183,13 +183,17 @@ eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds)
|
||||
if (displayMessage) {
|
||||
delete displayMessage;
|
||||
displayMessage = NULL;
|
||||
cStatus::MsgOsdClear();
|
||||
}
|
||||
else
|
||||
else {
|
||||
cSkinDisplay::Current()->SetMessage(Type, NULL);
|
||||
cStatus::MsgOsdStatusMessage(NULL);
|
||||
}
|
||||
}
|
||||
else if (!s && displayMessage) {
|
||||
delete displayMessage;
|
||||
displayMessage = NULL;
|
||||
cStatus::MsgOsdClear();
|
||||
}
|
||||
return k;
|
||||
}
|
||||
|
6
timers.c
6
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 1.16 2004/10/31 16:41:30 kls Exp $
|
||||
* $Id: timers.c 1.17 2004/11/14 16:02:42 kls Exp $
|
||||
*/
|
||||
|
||||
#include "timers.h"
|
||||
@ -256,13 +256,13 @@ bool cTimer::IsSingleEvent(void) const
|
||||
return (day & 0x80000000) == 0;
|
||||
}
|
||||
|
||||
int cTimer::GetMDay(time_t t) const
|
||||
int cTimer::GetMDay(time_t t)
|
||||
{
|
||||
struct tm tm_r;
|
||||
return localtime_r(&t, &tm_r)->tm_mday;
|
||||
}
|
||||
|
||||
int cTimer::GetWDay(time_t t) const
|
||||
int cTimer::GetWDay(time_t t)
|
||||
{
|
||||
struct tm tm_r;
|
||||
int weekday = localtime_r(&t, &tm_r)->tm_wday;
|
||||
|
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 1.10 2004/10/31 16:41:17 kls Exp $
|
||||
* $Id: timers.h 1.11 2004/11/14 16:02:28 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __TIMERS_H
|
||||
@ -64,8 +64,8 @@ public:
|
||||
bool Parse(const char *s);
|
||||
bool Save(FILE *f);
|
||||
bool IsSingleEvent(void) const;
|
||||
int GetMDay(time_t t) const;
|
||||
int GetWDay(time_t t) const;
|
||||
static int GetMDay(time_t t);
|
||||
static int GetWDay(time_t t);
|
||||
bool DayMatches(time_t t) const;
|
||||
static time_t IncDay(time_t t, int Days);
|
||||
static time_t SetTime(time_t t, int SecondsFromMidnight);
|
||||
|
13
vdr.c
13
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at http://www.cadsoft.de/vdr
|
||||
*
|
||||
* $Id: vdr.c 1.192 2004/10/31 10:17:23 kls Exp $
|
||||
* $Id: vdr.c 1.193 2004/11/06 10:30:30 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -87,6 +87,17 @@ static void Watchdog(int signum)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#ifdef _CS_GNU_LIBPTHREAD_VERSION
|
||||
// Check for NPTL and exit if present - VDR apparently doesn't run well with NPTL:
|
||||
char LibPthreadVersion[128];
|
||||
if (confstr(_CS_GNU_LIBPTHREAD_VERSION, LibPthreadVersion, sizeof(LibPthreadVersion)) > 0) {
|
||||
if (strstr(LibPthreadVersion, "NPTL")) {
|
||||
fprintf(stderr, "vdr: please turn off NPTL by setting 'export LD_ASSUME_KERNEL=2.4.1' before starting VDR\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Check for UTF-8 and exit if present - asprintf() will fail if it encounters 8 bit ASCII codes
|
||||
char *LangEnv;
|
||||
if ((LangEnv = getenv("LANG")) != NULL && strcasestr(LangEnv, "utf") ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user