mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 1.3.17
- Fixed cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond the end of the given buffer, which has caused some unjustified "unknown picture type errors" (thanks to Marco Schlüßler). - Fixed a possible crash when pausing live video and the recording was unable to start, maybe because there was no lock on the device (thanks to Andreas Brugger for reporting this one). - Fixed some characters in the iso8859-2 font file (thanks to Dino Ravnic). - Fixed some errors in the Croatian language texts (thanks to Dino Ravnic). - Fixed a possible recursion in cControl::Shutdown() (thanks to Sascha Volkenandt). - Now setting the VPID before the APID in live mode to avoid unnecessary overhead in the firmware (thanks to Werner Fink). - Now checking available OSD memory at runtime (thanks to Oliver Endriss). - Fixed some typos in the Makefile's 'font' target (thanks to Olaf Titz). - Fixed handling childTid in cThread to avoid possible race conditions (thanks to Stefan Huelswitt for pointing this out). - Fixed toggling the "Day" item in the "Timers" menu, so that it selects the right day of week for timers in the future. - Some improvements to cPoller (thanks to Marco Schlüßler).
This commit is contained in:
parent
23ed5a5ed3
commit
630ba21dc1
20
CONTRIBUTORS
20
CONTRIBUTORS
@ -188,6 +188,7 @@ Stefan Huelswitt <huels@iname.com>
|
|||||||
for reporting a bug in setting the title in the replay display of the "Classic VDR"
|
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
|
skin in case a shorter title is set after a longer one
|
||||||
for fixing handling of pmAudioOnlyBlack
|
for fixing handling of pmAudioOnlyBlack
|
||||||
|
for pointing out possible race conditions in handling childTid in cThread
|
||||||
|
|
||||||
Ulrich Röder <roeder@efr-net.de>
|
Ulrich Röder <roeder@efr-net.de>
|
||||||
for pointing out that there are channels that have a symbol rate higher than
|
for pointing out that there are channels that have a symbol rate higher than
|
||||||
@ -260,6 +261,8 @@ Werner Fink <werner@suse.de>
|
|||||||
for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
|
for changing thread handling to make it work with NPTL ("Native Posix Thread Library")
|
||||||
for suggesting to replace usleep() calls with a pthread_cond_timedwait() based wait
|
for suggesting to replace usleep() calls with a pthread_cond_timedwait() based wait
|
||||||
for suggesting to add more checks and polling when getting frontend events
|
for suggesting to add more checks and polling when getting frontend events
|
||||||
|
for setting the VPID before the APID in live mode to avoid unnecessary
|
||||||
|
overhead in the firmware
|
||||||
|
|
||||||
Rolf Hakenes <hakenes@hippomi.de>
|
Rolf Hakenes <hakenes@hippomi.de>
|
||||||
for providing 'libdtv' and adapting the EIT mechanisms to it
|
for providing 'libdtv' and adapting the EIT mechanisms to it
|
||||||
@ -537,6 +540,7 @@ Oliver Endriss <o.endriss@gmx.de>
|
|||||||
for adding a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
|
for adding a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
|
||||||
for reporting a problem with the name of the remote control for which the keys are
|
for reporting a problem with the name of the remote control for which the keys are
|
||||||
being learned overwriting the date/time in the 'classic' skin
|
being learned overwriting the date/time in the 'classic' skin
|
||||||
|
for making cDvbOsd check available OSD memory at runtime
|
||||||
|
|
||||||
Reinhard Walter Buchner <rw.buchner@freenet.de>
|
Reinhard Walter Buchner <rw.buchner@freenet.de>
|
||||||
for adding some satellites to 'sources.conf'
|
for adding some satellites to 'sources.conf'
|
||||||
@ -735,6 +739,7 @@ Sascha Volkenandt <sascha@akv-soft.de>
|
|||||||
for pointing out a "near miss" condition in cCondVar
|
for pointing out a "near miss" condition in cCondVar
|
||||||
for reporting a bug in cChannel::SetName() in case only the ShortName or Provider
|
for reporting a bug in cChannel::SetName() in case only the ShortName or Provider
|
||||||
has changed
|
has changed
|
||||||
|
for fixing a possible recursion in cControl::Shutdown()
|
||||||
|
|
||||||
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
|
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
|
||||||
for modifying LOF handling to allow for C-band reception
|
for modifying LOF handling to allow for C-band reception
|
||||||
@ -1079,6 +1084,10 @@ Marco Schl
|
|||||||
for fixing the cDvbSpuDecoder
|
for fixing the cDvbSpuDecoder
|
||||||
for fixing a short glitch when starting a recording on the primary device while
|
for fixing a short glitch when starting a recording on the primary device while
|
||||||
in replay or transfer mode
|
in replay or transfer mode
|
||||||
|
for fixing cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond
|
||||||
|
the end of the given buffer, which has caused some unjustified "unknown picture
|
||||||
|
type errors"
|
||||||
|
for some improvements to cPoller
|
||||||
|
|
||||||
Jürgen Schmitz <j.schmitz@web.de>
|
Jürgen Schmitz <j.schmitz@web.de>
|
||||||
for reporting a bug in displaying the current channel when switching via the SVDRP
|
for reporting a bug in displaying the current channel when switching via the SVDRP
|
||||||
@ -1149,3 +1158,14 @@ Joachim Wilke <vdr@joachim-wilke.de>
|
|||||||
|
|
||||||
Sascha Klek <sklek@gmx.de>
|
Sascha Klek <sklek@gmx.de>
|
||||||
for reporting a problem with the '0' key in the "Day" item of the "Timers" menu
|
for reporting a problem with the '0' key in the "Day" item of the "Timers" menu
|
||||||
|
|
||||||
|
Andreas Brugger <brougs78@gmx.net>
|
||||||
|
for reporting a possible crash when pausing live video and the recording was
|
||||||
|
unable to start, maybe because there was no lock on the device
|
||||||
|
|
||||||
|
Dino Ravnic <dino.ravnic@fer.hr>
|
||||||
|
for fixing some characters in the iso8859-2 font file
|
||||||
|
for fixing some errors in the Croatian language texts
|
||||||
|
|
||||||
|
Olaf Titz <olaf@bigred.inka.de>
|
||||||
|
for fixing some typos in the Makefile's 'font' target
|
||||||
|
21
HISTORY
21
HISTORY
@ -3138,3 +3138,24 @@ Video Disk Recorder Revision History
|
|||||||
shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
|
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
|
days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the
|
||||||
'0' key in the "Day" item of the "Timers" menu.
|
'0' key in the "Day" item of the "Timers" menu.
|
||||||
|
|
||||||
|
2004-11-21: Version 1.3.17
|
||||||
|
|
||||||
|
- Fixed cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond
|
||||||
|
the end of the given buffer, which has caused some unjustified "unknown
|
||||||
|
picture type errors" (thanks to Marco Schlüßler).
|
||||||
|
- Fixed a possible crash when pausing live video and the recording was unable
|
||||||
|
to start, maybe because there was no lock on the device (thanks to Andreas
|
||||||
|
Brugger for reporting this one).
|
||||||
|
- Fixed some characters in the iso8859-2 font file (thanks to Dino Ravnic).
|
||||||
|
- Fixed some errors in the Croatian language texts (thanks to Dino Ravnic).
|
||||||
|
- Fixed a possible recursion in cControl::Shutdown() (thanks to Sascha Volkenandt).
|
||||||
|
- Now setting the VPID before the APID in live mode to avoid unnecessary
|
||||||
|
overhead in the firmware (thanks to Werner Fink).
|
||||||
|
- Now checking available OSD memory at runtime (thanks to Oliver Endriss).
|
||||||
|
- Fixed some typos in the Makefile's 'font' target (thanks to Olaf Titz).
|
||||||
|
- Fixed handling childTid in cThread to avoid possible race conditions (thanks
|
||||||
|
to Stefan Huelswitt for pointing this out).
|
||||||
|
- Fixed toggling the "Day" item in the "Timers" menu, so that it selects the
|
||||||
|
right day of week for timers in the future.
|
||||||
|
- Some improvements to cPoller (thanks to Marco Schlüßler).
|
||||||
|
8
Makefile
8
Makefile
@ -4,7 +4,7 @@
|
|||||||
# See the main source file 'vdr.c' for copyright information and
|
# See the main source file 'vdr.c' for copyright information and
|
||||||
# how to reach the author.
|
# how to reach the author.
|
||||||
#
|
#
|
||||||
# $Id: Makefile 1.69 2004/10/30 11:51:09 kls Exp $
|
# $Id: Makefile 1.72 2004/11/21 11:28:55 kls Exp $
|
||||||
|
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
|
|
||||||
@ -80,9 +80,9 @@ all: vdr
|
|||||||
font: genfontfile\
|
font: genfontfile\
|
||||||
fontfix.c fontosd.c fontsml.c\
|
fontfix.c fontosd.c fontsml.c\
|
||||||
fontfix-iso8859-2.c fontosd-iso8859-2.c fontsml-iso8859-2.c\
|
fontfix-iso8859-2.c fontosd-iso8859-2.c fontsml-iso8859-2.c\
|
||||||
fontfix_iso8859-5.c fontosd_iso8859-5.c fontsml_iso8859-5.c\
|
fontfix-iso8859-5.c fontosd-iso8859-5.c fontsml-iso8859-5.c\
|
||||||
fontfix_iso8859-7.c fontosd_iso8859-7.c fontsml_iso8859-7.c\
|
fontfix-iso8859-7.c fontosd-iso8859-7.c fontsml-iso8859-7.c\
|
||||||
fontfix_iso8859-15.c fontosd_iso8859-15.c fontsml_iso8859-15.c
|
fontfix-iso8859-15.c fontosd-iso8859-15.c fontsml-iso8859-15.c
|
||||||
@echo "font files created."
|
@echo "font files created."
|
||||||
|
|
||||||
# Implicit rules:
|
# Implicit rules:
|
||||||
|
@ -15,8 +15,8 @@ ZDF;ZDFvision:11953:hC34:S19.2E:27500:110:120=deu,121=2ch;125=dd:130:0:28006:1:1
|
|||||||
3sat;ZDFvision:11953:hC34:S19.2E:27500:210:220=deu,221=2ch:230:0:28007:1:1079:0
|
3sat;ZDFvision:11953:hC34:S19.2E:27500:210:220=deu,221=2ch:230:0:28007:1:1079:0
|
||||||
KiKa;ZDFvision:11953:hC34:S19.2E:27500:310:320=deu:330:0:28008:1:1079:0
|
KiKa;ZDFvision:11953:hC34:S19.2E:27500:310:320=deu:330:0:28008:1:1079:0
|
||||||
arte;ARD:11836:hC34:S19.2E:27500:401:402=deu,403=fra:404:0:28109:1:1101:0
|
arte;ARD:11836:hC34:S19.2E:27500:401:402=deu,403=fra:404:0:28109:1:1101:0
|
||||||
ORF 1;ORF:12692:hC56:S19.2E:22000:160:161=deu;163=deu:165:1762,D05,1702,1801:13001:1:1117:0
|
ORF1;ORF:12692:hC56:S19.2E:22000:160:161=deu;163=deu:165:1762,D05,1702,1801:13001:1:1117:0
|
||||||
ORF 2;ORF:12692:hC56:S19.2E:22000:500:501=deu;503=deu:505:1762,D05,1702,1801:13002:1:1117:0
|
ORF2;ORF:12692:hC56:S19.2E:22000:500:501=deu;503=deu:505:1762,D05,1702,1801:13002:1:1117:0
|
||||||
ZDFinfokanal;ZDFvision:11953:hC34:S19.2E:27500:610:620=deu:130:0:28011:1:1079:0
|
ZDFinfokanal;ZDFvision:11953:hC34:S19.2E:27500:610:620=deu:130:0:28011:1:1079:0
|
||||||
CNN Int.;CNN:11778:vC34:S19.2E:27500:165:100=eng:47:0:28522:1:1068:0
|
CNN Int.;CNN:11778:vC34:S19.2E:27500:165:100=eng:47:0:28522:1:1068:0
|
||||||
Super RTL,S RTL;RTL World:12187:hC34:S19.2E:27500:165:120=deu:65:0:12040:1:1089:0
|
Super RTL,S RTL;RTL World:12187:hC34:S19.2E:27500:165:120=deu:65:0:12040:1:1089:0
|
||||||
@ -31,7 +31,6 @@ rbb Brandenburg;ARD:12109:hC34:S19.2E:27500:501:502=deu:504:0:28205:1:1073:0
|
|||||||
Sky News;BSkyB:11597:vC56:S19.2E:22000:305+131:306=eng:0:0:28707:1:1026:0
|
Sky News;BSkyB:11597:vC56:S19.2E:22000:305+131:306=eng:0:0:28707:1:1026:0
|
||||||
Veronica/FoxKids;CANAL+:12574:hC56:S19.2E:22000:518+8190:92=dut:38:622,602,100:5020:53:1109:0
|
Veronica/FoxKids;CANAL+:12574:hC56:S19.2E:22000:518+8190:92=dut:38:622,602,100:5020:53:1109:0
|
||||||
BVN;CANAL+:12574:hC56:S19.2E:22000:515+8190:96=dut:36:0:5025:53:1109:0
|
BVN;CANAL+:12574:hC56:S19.2E:22000:515+8190:96=dut:36:0:5025:53:1109:0
|
||||||
CNBC Europe;CNBC:12610:vC56:S19.2E:22000:944:945=eng:946:0:12200:1:1112:0
|
|
||||||
n-tv;RTL World:12187:hC34:S19.2E:27500:169:73=deu:80:0:12090:1:1089:0
|
n-tv;RTL World:12187:hC34:S19.2E:27500:169:73=deu:80:0:12090:1:1089:0
|
||||||
Al Jazeera;CANALSATELLITE:11567:vC56:S19.2E:22000:55:56=ara:0:0:9021:1:1024:0
|
Al Jazeera;CANALSATELLITE:11567:vC56:S19.2E:22000:55:56=ara:0:0:9021:1:1024:0
|
||||||
TW1;ORF:12692:hC56:S19.2E:22000:166:167=deu:168:0:13013:1:1117:0
|
TW1;ORF:12692:hC56:S19.2E:22000:166:167=deu:168:0:13013:1:1117:0
|
||||||
@ -48,7 +47,7 @@ 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 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 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 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:32:1801,1722,1702:9: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:32:1722,1702,1801:29: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 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
|
PREMIERE 7,PREM 7;PREMIERE:11797:hC34:S19.2E:27500:1023:1024=deu:32:1722,1702,1801:20:133:2:0
|
||||||
@ -94,15 +93,15 @@ 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
|
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
|
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
|
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:2305:960,961:6201:2:2009:0
|
Discovery;BSkyB:11875:hC23:S28.2E:27500:2304:2306=eng,2307=NAR: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 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 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
|
Sky Movies 3;BSkyB:11836:hC23:S28.2E:27500:2321+2304:2322=eng,2323=NAR;2325=eng:2324:960,961:4403:2:2007:0
|
||||||
Sky Movies 4;BSkyB:11914:hC23:S28.2E:27500:2305+2304:2306=eng,2307=NAR:2308:960,961:4402:2:2011:0
|
Sky Movies 4;BSkyB:11914:hC23:S28.2E:27500:2305+2304:2306=eng,2307=NAR:2308:960,961:4402:2:2011:0
|
||||||
Sky Movies 5;BSkyB:11914:hC23:S28.2E:27500:2313+2304:2314=eng,2315=NAR:2316:960,961:4503:2:2011:0
|
Sky Movies 5;BSkyB:11914:hC23:S28.2E:27500:2313+2304:2314=eng,2315=NAR:2316:960,961:4503:2:2011:0
|
||||||
Sky Movies 6;BSkyB:11914:hC23:S28.2E:27500:2309+2304:2310=eng,2311=NAR:2312:960,961:4502:2:2011:0
|
Sky Movies 6;BSkyB:11914:hC23:S28.2E:27500:2309+2304:2310=eng,2311=NAR:2312:960,961:4502:2:2011:0
|
||||||
Sky Movies 7;BSkyB:12090:vC23:S28.2E:27500:2312+2304:2313=eng,2314=NAR:2315:960,961:4603:2:2020:0
|
Sky Movies 7;BSkyB:12090:vC23:S28.2E:27500:2312+2304:2313=eng,2314=NAR:2315:960,961:4603:2:2020:0
|
||||||
Sky Movies 8;BSkyB:11836:hC23:S28.2E:27500:2320+2304:2321=eng,2322=NAR:2323:960,961:5502:2:2007:0
|
Sky Movies 8;BSkyB:11836:hC23:S28.2E:27500:2326+2304:2327=eng,2328=NAR:2329:960,961:5502:2:2007:0
|
||||||
Sky Movies 9;BSkyB:12090:vC23:S28.2E:27500:2308+2304:2309=eng,2310=NAR:2311:960,961:4602:2:2020:0
|
Sky Movies 9;BSkyB:12090:vC23:S28.2E:27500:2308+2304:2309=eng,2310=NAR:2311:960,961:4602:2:2020:0
|
||||||
Sky Cinema 1;BSkyB:12090:vC23:S28.2E:27500:2305+2304:2306=eng:2307:960,961:4809:2:2020:0
|
Sky Cinema 1;BSkyB:12090:vC23:S28.2E:27500:2305+2304:2306=eng:2307:960,961:4809:2:2020:0
|
||||||
Sky Cinema 2;BSkyB:12090:vC23:S28.2E:27500:2316+2304:2317=eng:2318:960,961:4802:2:2020:0
|
Sky Cinema 2;BSkyB:12090:vC23:S28.2E:27500:2316+2304:2317=eng:2318:960,961:4802:2:2020:0
|
||||||
@ -115,6 +114,6 @@ S1T;BSkyB:12285:vC23:S28.2E:27500:2311+2304:2312=eng,2313=NAR:2307:960,961:4409:
|
|||||||
CNN;BSkyB:12051:vC23:S28.2E:27500:2313:2315=eng:2314:0:7140:2:2018: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
|
BBC PARL'MNT:12129:vC23:S28.2E:27500:2304:2306=eng,2307=eng:2305:0:7300:2:2022:0
|
||||||
Olisat / Telefe;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
|
Euro1080;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
|
Astra HD:12441:vC34:S19.2E:27500:133+80:134:0:FF:29700:0:0:0
|
||||||
:@1000 New channels
|
:@1000 New channels
|
||||||
|
6
config.h
6
config.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: config.h 1.204 2004/11/02 17:20:27 kls Exp $
|
* $Id: config.h 1.205 2004/11/16 16:57:43 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CONFIG_H
|
#ifndef __CONFIG_H
|
||||||
@ -20,8 +20,8 @@
|
|||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
|
|
||||||
#define VDRVERSION "1.3.16"
|
#define VDRVERSION "1.3.17"
|
||||||
#define VDRVERSNUM 10316 // Version * 10000 + Major * 100 + Minor
|
#define VDRVERSNUM 10317 // Version * 10000 + Major * 100 + Minor
|
||||||
|
|
||||||
#define MAXPRIORITY 99
|
#define MAXPRIORITY 99
|
||||||
#define MAXLIFETIME 99
|
#define MAXLIFETIME 99
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: dvbdevice.c 1.104 2004/11/07 10:27:19 kls Exp $
|
* $Id: dvbdevice.c 1.105 2004/11/20 11:41:37 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbdevice.h"
|
#include "dvbdevice.h"
|
||||||
@ -800,7 +800,7 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
|
|||||||
if (TurnOnLivePIDs) {
|
if (TurnOnLivePIDs) {
|
||||||
aPid1 = Channel->Apid1();
|
aPid1 = Channel->Apid1();
|
||||||
aPid2 = Channel->Apid2();
|
aPid2 = Channel->Apid2();
|
||||||
if (!(AddPid(Channel->Ppid(), ptPcr) && AddPid(Channel->Apid1(), ptAudio) && AddPid(Channel->Vpid(), ptVideo))) {//XXX+ dolby dpid1!!! (if audio plugins are attached)
|
if (!(AddPid(Channel->Ppid(), ptPcr) && AddPid(Channel->Vpid(), ptVideo) && AddPid(Channel->Apid1(), ptAudio))) {//XXX+ dolby dpid1!!! (if audio plugins are attached)
|
||||||
esyslog("ERROR: failed to set PIDs for channel %d on device %d", Channel->Number(), CardIndex() + 1);
|
esyslog("ERROR: failed to set PIDs for channel %d on device %d", Channel->Number(), CardIndex() + 1);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
15
dvbosd.c
15
dvbosd.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: dvbosd.c 1.24 2004/07/18 13:51:42 kls Exp $
|
* $Id: dvbosd.c 1.25 2004/11/20 14:29:25 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbosd.h"
|
#include "dvbosd.h"
|
||||||
@ -18,11 +18,12 @@
|
|||||||
// --- cDvbOsd ---------------------------------------------------------------
|
// --- cDvbOsd ---------------------------------------------------------------
|
||||||
|
|
||||||
#define MAXNUMWINDOWS 7 // OSD windows are counted 1...7
|
#define MAXNUMWINDOWS 7 // OSD windows are counted 1...7
|
||||||
#define MAXOSDMEMORY 92000 // number of bytes available to the OSD (depends on firmware version, but there is no way of determining the actual value)
|
#define MAXOSDMEMORY 92000 // number of bytes available to the OSD (for unmodified DVB cards)
|
||||||
|
|
||||||
class cDvbOsd : public cOsd {
|
class cDvbOsd : public cOsd {
|
||||||
private:
|
private:
|
||||||
int osdDev;
|
int osdDev;
|
||||||
|
int osdMem;
|
||||||
bool shown;
|
bool shown;
|
||||||
void Cmd(OSD_Command cmd, int color = 0, int x0 = 0, int y0 = 0, int x1 = 0, int y1 = 0, const void *data = NULL);
|
void Cmd(OSD_Command cmd, int color = 0, int x0 = 0, int y0 = 0, int x1 = 0, int y1 = 0, const void *data = NULL);
|
||||||
public:
|
public:
|
||||||
@ -40,6 +41,14 @@ cDvbOsd::cDvbOsd(int Left, int Top, int OsdDev)
|
|||||||
if (osdDev < 0)
|
if (osdDev < 0)
|
||||||
esyslog("ERROR: illegal OSD device handle (%d)!", osdDev);
|
esyslog("ERROR: illegal OSD device handle (%d)!", osdDev);
|
||||||
else {
|
else {
|
||||||
|
osdMem = MAXOSDMEMORY;
|
||||||
|
#ifdef OSD_CAP_MEMSIZE
|
||||||
|
// modified DVB cards may have more OSD memory:
|
||||||
|
osd_cap_t cap;
|
||||||
|
cap.cmd = OSD_CAP_MEMSIZE;
|
||||||
|
if (ioctl(osdDev, OSD_GET_CAPABILITY, &cap) == 0)
|
||||||
|
osdMem = cap.val;
|
||||||
|
#endif
|
||||||
// must clear all windows here to avoid flashing effects - doesn't work if done
|
// must clear all windows here to avoid flashing effects - doesn't work if done
|
||||||
// in Flush() only for the windows that are actually used...
|
// in Flush() only for the windows that are actually used...
|
||||||
for (int i = 0; i < MAXNUMWINDOWS; i++) {
|
for (int i = 0; i < MAXNUMWINDOWS; i++) {
|
||||||
@ -74,7 +83,7 @@ eOsdError cDvbOsd::CanHandleAreas(const tArea *Areas, int NumAreas)
|
|||||||
return oeWrongAlignment;
|
return oeWrongAlignment;
|
||||||
TotalMemory += Areas[i].Width() * Areas[i].Height() / (8 / Areas[i].bpp);
|
TotalMemory += Areas[i].Width() * Areas[i].Height() / (8 / Areas[i].bpp);
|
||||||
}
|
}
|
||||||
if (TotalMemory > MAXOSDMEMORY)
|
if (TotalMemory > osdMem)
|
||||||
return oeOutOfMemory;
|
return oeOutOfMemory;
|
||||||
}
|
}
|
||||||
return Result;
|
return Result;
|
||||||
|
@ -4992,34 +4992,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
|
|||||||
0x00000000, // ...............
|
0x00000000, // ...............
|
||||||
},
|
},
|
||||||
{ // 198 iso8859-2
|
{ // 198 iso8859-2
|
||||||
12, 27,
|
17, 27,
|
||||||
0x00000000, // ............
|
0x000000E0, // ..........***....
|
||||||
0x00000000, // ............
|
0x000000C0, // ..........**.....
|
||||||
0x00000000, // ............
|
0x00000180, // .........**......
|
||||||
0x00000000, // ............
|
0x00000300, // ........**.......
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
0x00000000, // ............
|
0x00000FC0, // ......******.....
|
||||||
0x00000030, // .......**...
|
0x00003FE0, // ....*********....
|
||||||
0x00000060, // ......**....
|
0x00007070, // ...***.....***...
|
||||||
0x000000C0, // .....**.....
|
0x0000E038, // ..***.......***..
|
||||||
0x00000000, // ............
|
0x0000C018, // ..**.........**..
|
||||||
0x000001F0, // ....*****...
|
0x0000C000, // ..**.............
|
||||||
0x000007F8, // ..********..
|
0x00018000, // .**..............
|
||||||
0x0000061C, // ..**....***.
|
0x00018000, // .**..............
|
||||||
0x00000C0C, // .**......**.
|
0x00018000, // .**..............
|
||||||
0x00000C00, // .**.........
|
0x00018000, // .**..............
|
||||||
0x00000C00, // .**.........
|
0x00018000, // .**..............
|
||||||
0x00000C00, // .**.........
|
0x00018018, // .**..........**..
|
||||||
0x00000C00, // .**.........
|
0x0000C018, // ..**.........**..
|
||||||
0x00000C0C, // .**......**.
|
0x0000E018, // ..***........**..
|
||||||
0x0000061C, // ..**....***.
|
0x00007030, // ...***......**...
|
||||||
0x000007F8, // ..********..
|
0x00007FF0, // ...***********...
|
||||||
0x000001F0, // ....*****...
|
0x00001FC0, // .....*******.....
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
0x00000000, // ............
|
0x00000000, // .................
|
||||||
},
|
},
|
||||||
{ // 199
|
{ // 199
|
||||||
17, 27,
|
17, 27,
|
||||||
@ -5952,34 +5952,34 @@ cFont::tPixelData FontOsd_iso8859_2[][29] = {
|
|||||||
0x00000000, // .............
|
0x00000000, // .............
|
||||||
},
|
},
|
||||||
{ // 230 iso8859-2
|
{ // 230 iso8859-2
|
||||||
17, 27,
|
12, 27,
|
||||||
0x000000E0, // ..........***....
|
0x00000000, // ............
|
||||||
0x000000C0, // ..........**.....
|
0x00000000, // ............
|
||||||
0x00000180, // .........**......
|
0x00000000, // ............
|
||||||
0x00000300, // ........**.......
|
0x00000000, // ............
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
0x00000FC0, // ......******.....
|
0x00000000, // ............
|
||||||
0x00003FE0, // ....*********....
|
0x00000030, // .......**...
|
||||||
0x00007070, // ...***.....***...
|
0x00000060, // ......**....
|
||||||
0x0000E038, // ..***.......***..
|
0x000000C0, // .....**.....
|
||||||
0x0000C018, // ..**.........**..
|
0x00000000, // ............
|
||||||
0x0000C000, // ..**.............
|
0x000001F0, // ....*****...
|
||||||
0x00018000, // .**..............
|
0x000007F8, // ..********..
|
||||||
0x00018000, // .**..............
|
0x0000061C, // ..**....***.
|
||||||
0x00018000, // .**..............
|
0x00000C0C, // .**......**.
|
||||||
0x00018000, // .**..............
|
0x00000C00, // .**.........
|
||||||
0x00018000, // .**..............
|
0x00000C00, // .**.........
|
||||||
0x00018018, // .**..........**..
|
0x00000C00, // .**.........
|
||||||
0x0000C018, // ..**.........**..
|
0x00000C00, // .**.........
|
||||||
0x0000E018, // ..***........**..
|
0x00000C0C, // .**......**.
|
||||||
0x00007030, // ...***......**...
|
0x0000061C, // ..**....***.
|
||||||
0x00007FF0, // ...***********...
|
0x000007F8, // ..********..
|
||||||
0x00001FC0, // .....*******.....
|
0x000001F0, // ....*****...
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
0x00000000, // .................
|
0x00000000, // ............
|
||||||
},
|
},
|
||||||
{ // 231
|
{ // 231
|
||||||
12, 27,
|
12, 27,
|
||||||
|
8
i18n.c
8
i18n.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: i18n.c 1.163 2004/11/14 14:28:29 kls Exp $
|
* $Id: i18n.c 1.164 2004/11/20 11:23:58 kls Exp $
|
||||||
*
|
*
|
||||||
* Translations provided by:
|
* Translations provided by:
|
||||||
*
|
*
|
||||||
@ -23,7 +23,7 @@
|
|||||||
* Hungarian Istvan Koenigsberger <istvnko@hotmail.com> and Guido Josten <guido.josten@t-online.de>
|
* Hungarian Istvan Koenigsberger <istvnko@hotmail.com> and Guido Josten <guido.josten@t-online.de>
|
||||||
* Catalanian Marc Rovira Vall <tm05462@salleURL.edu>, Ramon Roca <ramon.roca@xcombo.com> and Jordi Vilà <jvila@tinet.org>
|
* Catalanian Marc Rovira Vall <tm05462@salleURL.edu>, Ramon Roca <ramon.roca@xcombo.com> and Jordi Vilà <jvila@tinet.org>
|
||||||
* Russian Vyacheslav Dikonov <sdiconov@mail.ru>
|
* Russian Vyacheslav Dikonov <sdiconov@mail.ru>
|
||||||
* Croatian Drazen Dupor <drazen.dupor@dupor.com>
|
* Croatian Drazen Dupor <drazen.dupor@dupor.com> and Dino Ravnic <dino.ravnic@fer.hr>
|
||||||
* Estonian Arthur Konovalov <kasjas@hot.ee>
|
* Estonian Arthur Konovalov <kasjas@hot.ee>
|
||||||
* Danish Mogens Elneff <mogens@elneff.dk>
|
* Danish Mogens Elneff <mogens@elneff.dk>
|
||||||
*
|
*
|
||||||
@ -480,7 +480,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Beállítani",
|
"Beállítani",
|
||||||
"Editar",
|
"Editar",
|
||||||
"ÀÕÔÐÚâØàÞÒÐâì",
|
"ÀÕÔÐÚâØàÞÒÐâì",
|
||||||
"Promjeni",
|
"Promijeni",
|
||||||
"Muuda",
|
"Muuda",
|
||||||
"Rediger",
|
"Rediger",
|
||||||
},
|
},
|
||||||
@ -5090,7 +5090,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"ºÛÐááØçÕáÚØÙ",
|
"ºÛÐááØçÕáÚØÙ",
|
||||||
"Klasiècni VDR",
|
"Klasièni VDR",
|
||||||
"Klassikaline VDR",
|
"Klassikaline VDR",
|
||||||
"Klassisk VDR",
|
"Klassisk VDR",
|
||||||
},
|
},
|
||||||
|
10
menu.c
10
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.c 1.319 2004/11/01 13:49:40 kls Exp $
|
* $Id: menu.c 1.320 2004/11/20 10:49:17 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -2833,10 +2833,16 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
|
|||||||
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
|
||||||
cReplayControl::SetRecording(fileName, Recording.Name());
|
cReplayControl::SetRecording(fileName, Recording.Name());
|
||||||
Recordings.AddByName(fileName);
|
Recordings.AddByName(fileName);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DELETENULL(recorder);
|
DELETENULL(recorder);
|
||||||
}
|
}
|
||||||
|
if (!Timer) {
|
||||||
|
Timers.Del(timer);
|
||||||
|
Timers.SetModified();
|
||||||
|
timer = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cRecordControl::~cRecordControl()
|
cRecordControl::~cRecordControl()
|
||||||
@ -2928,7 +2934,7 @@ bool cRecordControls::Start(cTimer *Timer, bool Pause)
|
|||||||
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
||||||
if (!RecordControls[i]) {
|
if (!RecordControls[i]) {
|
||||||
RecordControls[i] = new cRecordControl(device, Timer, Pause);
|
RecordControls[i] = new cRecordControl(device, Timer, Pause);
|
||||||
return true;
|
return RecordControls[i]->Process(time(NULL));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menuitems.c 1.20 2004/11/14 16:16:21 kls Exp $
|
* $Id: menuitems.c 1.21 2004/11/21 13:24:10 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menuitems.h"
|
#include "menuitems.h"
|
||||||
@ -554,6 +554,7 @@ cMenuEditDayItem::cMenuEditDayItem(const char *Name, int *Value)
|
|||||||
:cMenuEditIntItem(Name, Value, -INT_MAX, 31)
|
:cMenuEditIntItem(Name, Value, -INT_MAX, 31)
|
||||||
{
|
{
|
||||||
d = -1;
|
d = -1;
|
||||||
|
md = 0;
|
||||||
if (*value < 0) {
|
if (*value < 0) {
|
||||||
int n = 0;
|
int n = 0;
|
||||||
while (days[n]) {
|
while (days[n]) {
|
||||||
@ -621,12 +622,14 @@ eOSState cMenuEditDayItem::ProcessKey(eKeys Key)
|
|||||||
eOSState result = cMenuEditIntItem::ProcessKey(Key);
|
eOSState result = cMenuEditIntItem::ProcessKey(Key);
|
||||||
if (result == osContinue && Key == k0) {
|
if (result == osContinue && Key == k0) {
|
||||||
if (d >= 0) {
|
if (d >= 0) {
|
||||||
*value = cTimer::GetMDay(time(NULL));
|
*value = md ? md : cTimer::GetMDay(time(NULL));
|
||||||
|
md = 0;
|
||||||
d = -1;
|
d = -1;
|
||||||
Set();
|
Set();
|
||||||
}
|
}
|
||||||
else if (*value == 0 || *value == v) {
|
else if (*value == 0 || *value == v) {
|
||||||
d = cTimer::GetWDay(time(NULL));
|
md = v;
|
||||||
|
d = cTimer::GetWDayFromMDay(v);
|
||||||
*value = days[d];
|
*value = days[d];
|
||||||
Set();
|
Set();
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menuitems.h 1.9 2004/05/16 12:45:14 kls Exp $
|
* $Id: menuitems.h 1.10 2004/11/21 13:23:00 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __MENUITEMS_H
|
#ifndef __MENUITEMS_H
|
||||||
@ -119,9 +119,11 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
class cMenuEditDayItem : public cMenuEditIntItem {
|
class cMenuEditDayItem : public cMenuEditIntItem {
|
||||||
protected:
|
private:
|
||||||
static int days[];
|
static int days[];
|
||||||
int d;
|
int d;
|
||||||
|
int md;
|
||||||
|
protected:
|
||||||
virtual void Set(void);
|
virtual void Set(void);
|
||||||
public:
|
public:
|
||||||
cMenuEditDayItem(const char *Name, int *Value);
|
cMenuEditDayItem(const char *Name, int *Value);
|
||||||
|
5
player.c
5
player.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: player.c 1.7 2004/04/16 13:34:11 kls Exp $
|
* $Id: player.c 1.8 2004/11/20 11:33:08 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
@ -88,6 +88,7 @@ void cControl::Attach(void)
|
|||||||
|
|
||||||
void cControl::Shutdown(void)
|
void cControl::Shutdown(void)
|
||||||
{
|
{
|
||||||
delete control;
|
cControl *c = control; // avoids recursions
|
||||||
control = NULL;
|
control = NULL;
|
||||||
|
delete c;
|
||||||
}
|
}
|
||||||
|
4
remux.c
4
remux.c
@ -8,7 +8,7 @@
|
|||||||
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
|
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
|
||||||
* VDR's needs.
|
* VDR's needs.
|
||||||
*
|
*
|
||||||
* $Id: remux.c 1.21 2004/10/24 09:25:33 kls Exp $
|
* $Id: remux.c 1.22 2004/11/16 16:49:03 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "remux.h"
|
#include "remux.h"
|
||||||
@ -451,7 +451,7 @@ int cRemux::ScanVideoPacket(const uchar *Data, int Count, int Offset, uchar &Pic
|
|||||||
if (Length >= 8) {
|
if (Length >= 8) {
|
||||||
int i = Offset + 8; // the minimum length of the video packet header
|
int i = Offset + 8; // the minimum length of the video packet header
|
||||||
i += Data[i] + 1; // possible additional header bytes
|
i += Data[i] + 1; // possible additional header bytes
|
||||||
for (; i < Offset + Length; i++) {
|
for (; i < Offset + Length - 5; i++) {
|
||||||
if (Data[i] == 0 && Data[i + 1] == 0 && Data[i + 2] == 1) {
|
if (Data[i] == 0 && Data[i + 1] == 0 && Data[i + 2] == 1) {
|
||||||
switch (Data[i + 3]) {
|
switch (Data[i + 3]) {
|
||||||
case SC_PICTURE: PictureType = (Data[i + 5] >> 3) & 0x07;
|
case SC_PICTURE: PictureType = (Data[i + 5] >> 3) & 0x07;
|
||||||
|
2
runvdr
2
runvdr
@ -18,7 +18,7 @@
|
|||||||
# See the main source file 'vdr.c' for copyright information and
|
# See the main source file 'vdr.c' for copyright information and
|
||||||
# how to reach the author.
|
# how to reach the author.
|
||||||
#
|
#
|
||||||
# $Id: runvdr 1.12 2004/01/09 16:19:26 kls Exp $
|
# $Id: runvdr 1.14 2004/11/21 11:30:00 kls Exp $
|
||||||
|
|
||||||
DVBDIR="../DVB/driver"
|
DVBDIR="../DVB/driver"
|
||||||
VDRPRG="./vdr"
|
VDRPRG="./vdr"
|
||||||
|
13
thread.c
13
thread.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: thread.c 1.36 2004/10/31 09:54:02 kls Exp $
|
* $Id: thread.c 1.37 2004/11/20 16:21:14 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
@ -233,12 +233,15 @@ void *cThread::StartThread(cThread *Thread)
|
|||||||
|
|
||||||
bool cThread::Start(void)
|
bool cThread::Start(void)
|
||||||
{
|
{
|
||||||
|
Lock();
|
||||||
if (!childTid) {
|
if (!childTid) {
|
||||||
parentTid = pthread_self();
|
parentTid = pthread_self();
|
||||||
pthread_create(&childTid, NULL, (void *(*) (void *))&StartThread, (void *)this);
|
pthread_t Tid;
|
||||||
pthread_detach(childTid); // auto-reap
|
pthread_create(&Tid, NULL, (void *(*) (void *))&StartThread, (void *)this);
|
||||||
pthread_setschedparam(childTid, SCHED_RR, 0);
|
pthread_detach(Tid); // auto-reap
|
||||||
|
pthread_setschedparam(Tid, SCHED_RR, 0);
|
||||||
}
|
}
|
||||||
|
Unlock();
|
||||||
return true; //XXX return value of pthread_create()???
|
return true; //XXX return value of pthread_create()???
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,10 +280,12 @@ void cThread::Cancel(int WaitSeconds)
|
|||||||
}
|
}
|
||||||
esyslog("ERROR: thread %ld won't end (waited %d seconds) - cancelling it...", childTid, WaitSeconds);
|
esyslog("ERROR: thread %ld won't end (waited %d seconds) - cancelling it...", childTid, WaitSeconds);
|
||||||
}
|
}
|
||||||
|
Lock();
|
||||||
if (childTid) {
|
if (childTid) {
|
||||||
pthread_cancel(childTid);
|
pthread_cancel(childTid);
|
||||||
childTid = 0;
|
childTid = 0;
|
||||||
}
|
}
|
||||||
|
Unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
14
timers.c
14
timers.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: timers.c 1.17 2004/11/14 16:02:42 kls Exp $
|
* $Id: timers.c 1.18 2004/11/21 13:15:33 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "timers.h"
|
#include "timers.h"
|
||||||
@ -269,6 +269,18 @@ int cTimer::GetWDay(time_t t)
|
|||||||
return weekday == 0 ? 6 : weekday - 1; // we start with monday==0!
|
return weekday == 0 ? 6 : weekday - 1; // we start with monday==0!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cTimer::GetWDayFromMDay(int MDay)
|
||||||
|
{
|
||||||
|
time_t now = time(NULL);
|
||||||
|
int md = GetMDay(now);
|
||||||
|
for (int i = -1; i <= 28; i++) { // looking 4 weeks into the future should be enough
|
||||||
|
time_t t0 = IncDay(now, i);
|
||||||
|
if (GetMDay(t0) == MDay)
|
||||||
|
return GetWDay(t0);
|
||||||
|
}
|
||||||
|
return GetWDay(now); // just to return something
|
||||||
|
}
|
||||||
|
|
||||||
bool cTimer::DayMatches(time_t t) const
|
bool cTimer::DayMatches(time_t t) const
|
||||||
{
|
{
|
||||||
return IsSingleEvent() ? GetMDay(t) == day : (day & (1 << GetWDay(t))) != 0;
|
return IsSingleEvent() ? GetMDay(t) == day : (day & (1 << GetWDay(t))) != 0;
|
||||||
|
3
timers.h
3
timers.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: timers.h 1.11 2004/11/14 16:02:28 kls Exp $
|
* $Id: timers.h 1.12 2004/11/21 12:37:33 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TIMERS_H
|
#ifndef __TIMERS_H
|
||||||
@ -66,6 +66,7 @@ public:
|
|||||||
bool IsSingleEvent(void) const;
|
bool IsSingleEvent(void) const;
|
||||||
static int GetMDay(time_t t);
|
static int GetMDay(time_t t);
|
||||||
static int GetWDay(time_t t);
|
static int GetWDay(time_t t);
|
||||||
|
static int GetWDayFromMDay(int MDay);
|
||||||
bool DayMatches(time_t t) const;
|
bool DayMatches(time_t t) const;
|
||||||
static time_t IncDay(time_t t, int Days);
|
static time_t IncDay(time_t t, int Days);
|
||||||
static time_t SetTime(time_t t, int SecondsFromMidnight);
|
static time_t SetTime(time_t t, int SecondsFromMidnight);
|
||||||
|
5
tools.c
5
tools.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: tools.c 1.81 2004/10/31 16:42:36 kls Exp $
|
* $Id: tools.c 1.82 2004/11/21 14:36:34 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
@ -532,12 +532,13 @@ bool cPoller::Add(int FileHandle, bool Out)
|
|||||||
{
|
{
|
||||||
if (FileHandle >= 0) {
|
if (FileHandle >= 0) {
|
||||||
for (int i = 0; i < numFileHandles; i++) {
|
for (int i = 0; i < numFileHandles; i++) {
|
||||||
if (pfd[i].fd == FileHandle)
|
if (pfd[i].fd == FileHandle && pfd[i].events == (Out ? POLLOUT : POLLIN))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (numFileHandles < MaxPollFiles) {
|
if (numFileHandles < MaxPollFiles) {
|
||||||
pfd[numFileHandles].fd = FileHandle;
|
pfd[numFileHandles].fd = FileHandle;
|
||||||
pfd[numFileHandles].events = Out ? POLLOUT : POLLIN;
|
pfd[numFileHandles].events = Out ? POLLOUT : POLLIN;
|
||||||
|
pfd[numFileHandles].revents = 0;
|
||||||
numFileHandles++;
|
numFileHandles++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user