mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 1.3.8
- Fixed a crash when switching the skin and having selected a non-default theme that is not available for the newly selected skin (thanks to Sascha Volkenandt for reporting this one). - Fixed some issues with gcc 3.4 (thanks to Prakash K. Cheemplavam and Marcel Wiesweg). - Added a hint to PLUGINS.html about how to name a plugin that implements a skin. - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg). - Single shot timers and events now show the day of week (adopted with some changes from the "elchi" patch, orginally introduced by Oskar Signell). Plugins that use cEvent::GetDateString() should note that this function now returns a longer string, including the day of week. The new function const char *WeekDayName(time_t t) can be called with a time_t value to get the day of week for that time. - When processing XPM data, the color name "None" is now mapped to #00000000, which is "fully transparent" (suggested by Sascha Volkenandt). - Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting this one and helping to test the fix). - Fixed freezing picture when a recording starts on a system that always uses 'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one). - Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg). - Added a few missing initializations (thanks to Marcel Wiesweg). - Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins. It now also has a SetText() function that can be used to dynamically set the text in an already existing cMenuText (both suggested by Stefan Huelswitt). - Added play mode pmVideoOnly (thanks to Marcel Wiesweg). - Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel() (thanks to Oliver Endriss). - No longer displaying unused color buttons in the "Classic VDR" skin (thanks to Oliver Endriss for reporting this one). - Added some missing cStatus::MsgOsdTextItem() calls (thanks to Oliver Endriss for reporting this one).
This commit is contained in:
parent
c80a53ff6e
commit
3c349510b5
23
CONTRIBUTORS
23
CONTRIBUTORS
@ -183,6 +183,8 @@ Stefan Huelswitt <huels@iname.com>
|
|||||||
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 creating mutexes with PTHREAD_MUTEX_ERRORCHECK_NP, which made the 'lockingTid'
|
for creating mutexes with PTHREAD_MUTEX_ERRORCHECK_NP, which made the 'lockingTid'
|
||||||
stuff obsolete
|
stuff obsolete
|
||||||
|
for suggesting to move the declaration of cMenuText to VDR/menu.h to make it
|
||||||
|
available to plugins, and to add a SetText() function
|
||||||
|
|
||||||
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
|
||||||
@ -518,6 +520,9 @@ Oliver Endriss <o.endriss@gmx.de>
|
|||||||
for suggesting to change the default "Lifetime" to 99
|
for suggesting to change the default "Lifetime" to 99
|
||||||
for pointing out that the LNB power needs to be explicitly turned on at startup,
|
for pointing out that the LNB power needs to be explicitly turned on at startup,
|
||||||
because newer drivers don't do this any more
|
because newer drivers don't do this any more
|
||||||
|
for adding a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
|
||||||
|
for reporting that the "Classic VDR" skin wrongly displayed unused color buttons
|
||||||
|
for reporting some missing cStatus::MsgOsdTextItem() calls
|
||||||
|
|
||||||
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'
|
||||||
@ -670,6 +675,10 @@ Marcel Wiesweg <marcel.wiesweg@gmx.de>
|
|||||||
for fixing testing for matching section filters in case they are turned off
|
for fixing testing for matching section filters in case they are turned off
|
||||||
for adding 'libsi' include files to the 'include' directory, so that plugins can
|
for adding 'libsi' include files to the 'include' directory, so that plugins can
|
||||||
use them
|
use them
|
||||||
|
for his help in fixing some issues with gcc 3.4
|
||||||
|
for fixing a memory leak in NIT processing
|
||||||
|
for adding a few missing initializations
|
||||||
|
for adding play mode pmVideoOnly
|
||||||
|
|
||||||
Torsten Herz <torsten.herz@web.de>
|
Torsten Herz <torsten.herz@web.de>
|
||||||
for fixing a possible deadlock when using the "Blue" button in the "Schedules" menu
|
for fixing a possible deadlock when using the "Blue" button in the "Schedules" menu
|
||||||
@ -695,6 +704,9 @@ Sascha Volkenandt <sascha@akv-soft.de>
|
|||||||
return from their Receive() function if the buffer runs full
|
return from their Receive() function if the buffer runs full
|
||||||
for reporting a crash in case there is no DVB hardware present
|
for reporting a crash in case there is no DVB hardware present
|
||||||
for his support in debugging the the "Unknown picture type error"
|
for his support in debugging the the "Unknown picture type error"
|
||||||
|
for reporting a crash when switching the skin and having selected a non-default
|
||||||
|
theme that is not available for the newly selected skin
|
||||||
|
for suggesting to map the color name "None" to #00000000 when processing XPM data
|
||||||
|
|
||||||
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
|
||||||
@ -860,6 +872,7 @@ Christoph Hermanns <christoph.hermanns@gmx.de>
|
|||||||
Oskar Signell <oskar@signell.net>
|
Oskar Signell <oskar@signell.net>
|
||||||
for pointing out a problem with setting an editing mark while in "Pause" mode,
|
for pointing out a problem with setting an editing mark while in "Pause" mode,
|
||||||
where replay was not immediately positioned to the marked frame
|
where replay was not immediately positioned to the marked frame
|
||||||
|
for making single shot timers and events show the day of week
|
||||||
|
|
||||||
Dirk Essl <de@floydworld.de>
|
Dirk Essl <de@floydworld.de>
|
||||||
for reporting a wrong URL to the 'Doxygen' tool in INSTALL
|
for reporting a wrong URL to the 'Doxygen' tool in INSTALL
|
||||||
@ -972,3 +985,13 @@ John Kennedy <rkennedy@ix.netcom.com>
|
|||||||
|
|
||||||
Drazen Dupor <drazen.dupor@dupor.com>
|
Drazen Dupor <drazen.dupor@dupor.com>
|
||||||
for translating OSD texts to the Croatian language
|
for translating OSD texts to the Croatian language
|
||||||
|
|
||||||
|
Prakash K. Cheemplavam <PrakashKC@gmx.de>
|
||||||
|
for fixing some issues with gcc 3.4
|
||||||
|
|
||||||
|
Miko Wohlgemuth <weak@chello.at>
|
||||||
|
for reporting a problem with the OSD alignment in the SPU decoder
|
||||||
|
|
||||||
|
Michal Dobrzynski <michal_dobrzynski@mac.com>
|
||||||
|
for reporting a freezing picture when a recording starts on a system that always
|
||||||
|
uses 'Transfer Mode'
|
||||||
|
33
HISTORY
33
HISTORY
@ -2804,3 +2804,36 @@ Video Disk Recorder Revision History
|
|||||||
actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and
|
actual source (sat, cable etc.) into account. Please go into "Setup/EPG" and
|
||||||
set the "Set system time" and "Use time from transponder" parameters accordingly
|
set the "Set system time" and "Use time from transponder" parameters accordingly
|
||||||
(this is necessary even if you have already set them before!).
|
(this is necessary even if you have already set them before!).
|
||||||
|
|
||||||
|
2004-05-23: Version 1.3.8
|
||||||
|
|
||||||
|
- Fixed a crash when switching the skin and having selected a non-default theme
|
||||||
|
that is not available for the newly selected skin (thanks to Sascha Volkenandt
|
||||||
|
for reporting this one).
|
||||||
|
- Fixed some issues with gcc 3.4 (thanks to Prakash K. Cheemplavam and Marcel
|
||||||
|
Wiesweg).
|
||||||
|
- Added a hint to PLUGINS.html about how to name a plugin that implements a skin.
|
||||||
|
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||||
|
- Single shot timers and events now show the day of week (adopted with some changes
|
||||||
|
from the "elchi" patch, orginally introduced by Oskar Signell). Plugins that use
|
||||||
|
cEvent::GetDateString() should note that this function now returns a longer
|
||||||
|
string, including the day of week. The new function const char *WeekDayName(time_t t)
|
||||||
|
can be called with a time_t value to get the day of week for that time.
|
||||||
|
- When processing XPM data, the color name "None" is no mapped to #00000000, which
|
||||||
|
is "fully transparent" (suggested by Sascha Volkenandt).
|
||||||
|
- Fixed the OSD alignment in the SPU decoder (thanks to Miko Wohlgemuth for reporting
|
||||||
|
this one and helping to test the fix).
|
||||||
|
- Fixed freezing picture when a recording starts on a system that always uses
|
||||||
|
'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one).
|
||||||
|
- Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg).
|
||||||
|
- Added a few missing initializations (thanks to Marcel Wiesweg).
|
||||||
|
- Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins.
|
||||||
|
It now also has a SetText() function that can be used to dynamically set the text
|
||||||
|
in an already existing cMenuText (both suggested by Stefan Huelswitt).
|
||||||
|
- Added play mode pmVideoOnly (thanks to Marcel Wiesweg).
|
||||||
|
- Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel()
|
||||||
|
(thanks to Oliver Endriss).
|
||||||
|
- No longer displaying unused color buttons in the "Classic VDR" skin (thanks to
|
||||||
|
Oliver Endriss for reporting this one).
|
||||||
|
- Added some missing cStatus::MsgOsdTextItem() calls (thanks to Oliver Endriss for
|
||||||
|
reporting this one).
|
||||||
|
35
PLUGINS.html
35
PLUGINS.html
@ -14,15 +14,18 @@ Copyright © 2004 Klaus Schmidinger<br>
|
|||||||
<a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a>
|
<a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a>
|
||||||
</center>
|
</center>
|
||||||
<p>
|
<p>
|
||||||
<!--X1.2.6--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
<!--X1.2.6--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||||
Important modifications introduced in version 1.2.6 are marked like this.
|
Important modifications introduced in version 1.2.6 are marked like this.
|
||||||
<!--X1.2.6--></td></tr></table>
|
<!--X1.2.6--></td></tr></table>
|
||||||
<!--X1.3.0--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
<!--X1.3.0--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||||
Important modifications introduced in version 1.3.0 are marked like this.
|
Important modifications introduced in version 1.3.0 are marked like this.
|
||||||
<!--X1.3.0--></td></tr></table>
|
<!--X1.3.0--></td></tr></table>
|
||||||
<!--X1.3.7--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
<!--X1.3.7--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||||
Important modifications introduced in version 1.3.7 are marked like this.
|
Important modifications introduced in version 1.3.7 are marked like this.
|
||||||
<!--X1.3.7--></td></tr></table>
|
<!--X1.3.7--></td></tr></table>
|
||||||
|
<!--X1.3.8--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||||
|
Important modifications introduced in version 1.3.8 are marked like this.
|
||||||
|
<!--X1.3.8--></td></tr></table>
|
||||||
<p>
|
<p>
|
||||||
VDR provides an easy to use plugin interface that allows additional functionality
|
VDR provides an easy to use plugin interface that allows additional functionality
|
||||||
to be added to the program by implementing a dynamically loadable library file.
|
to be added to the program by implementing a dynamically loadable library file.
|
||||||
@ -70,11 +73,11 @@ structures and allows it to hook itself into specific areas to perform special a
|
|||||||
<li><a href="#Status monitor">Status monitor</a>
|
<li><a href="#Status monitor">Status monitor</a>
|
||||||
<li><a href="#Players">Players</a>
|
<li><a href="#Players">Players</a>
|
||||||
<li><a href="#Receivers">Receivers</a>
|
<li><a href="#Receivers">Receivers</a>
|
||||||
<!--X1.3.0--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
<!--X1.3.0--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||||
<li><a href="#Filters">Filters</a>
|
<li><a href="#Filters">Filters</a>
|
||||||
<!--X1.3.0--></td></tr></table>
|
<!--X1.3.0--></td></tr></table>
|
||||||
<li><a href="#The On Screen Display">The On Screen Display</a>
|
<li><a href="#The On Screen Display">The On Screen Display</a>
|
||||||
<!--X1.3.7--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
<!--X1.3.7--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||||
<li><a href="#Skins">Skins</a>
|
<li><a href="#Skins">Skins</a>
|
||||||
<li><a href="#Themes">Themes</a>
|
<li><a href="#Themes">Themes</a>
|
||||||
<!--X1.3.7--></td></tr></table>
|
<!--X1.3.7--></td></tr></table>
|
||||||
@ -1214,7 +1217,7 @@ Mode</i>).
|
|||||||
If the <tt>cReceiver</tt> isn't needed any more, it may simply be <i>deleted</i>
|
If the <tt>cReceiver</tt> isn't needed any more, it may simply be <i>deleted</i>
|
||||||
and will automatically detach itself from the <tt>cDevice</tt>.
|
and will automatically detach itself from the <tt>cDevice</tt>.
|
||||||
|
|
||||||
<!--X1.3.0--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
<!--X1.3.0--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||||
<a name="Filters"><hr><h2>Filters</h2>
|
<a name="Filters"><hr><h2>Filters</h2>
|
||||||
|
|
||||||
<center><i><b>A Fistful of Datas</b></i></center><p>
|
<center><i><b>A Fistful of Datas</b></i></center><p>
|
||||||
@ -1260,7 +1263,7 @@ and will automatically detach itself from the <tt>cDevice</tt>.
|
|||||||
See VDR/eit.c or VDR/pat.c to learn how to process filter data.
|
See VDR/eit.c or VDR/pat.c to learn how to process filter data.
|
||||||
<!--X1.3.0--></td></tr></table>
|
<!--X1.3.0--></td></tr></table>
|
||||||
|
|
||||||
<!--X1.3.7--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
<!--X1.3.7--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||||
<a name="The On Screen Display"><hr><h2>The On Screen Display</h2>
|
<a name="The On Screen Display"><hr><h2>The On Screen Display</h2>
|
||||||
|
|
||||||
<center><i><b>Window to the world</b></i></center><p>
|
<center><i><b>Window to the world</b></i></center><p>
|
||||||
@ -1371,6 +1374,18 @@ new cMySkin;
|
|||||||
|
|
||||||
in the <a href="#Getting started"><tt>Start()</tt></a> function of your plugin.
|
in the <a href="#Getting started"><tt>Start()</tt></a> function of your plugin.
|
||||||
Do not delete this object, it will be automatically deleted when the program ends.
|
Do not delete this object, it will be automatically deleted when the program ends.
|
||||||
|
<p>
|
||||||
|
<!--X1.3.8--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||||
|
In order to be able to easily identify plugins that implement a skin it is recommended
|
||||||
|
that the name of such a plugin should be
|
||||||
|
|
||||||
|
<p><table><tr><td bgcolor=#F0F0F0><pre>
|
||||||
|
skinxyz
|
||||||
|
</pre></td></tr></table><p>
|
||||||
|
|
||||||
|
where <tt>xyz</tt> is the actual name of the skin.
|
||||||
|
|
||||||
|
<!--X1.3.8--></td></tr></table>
|
||||||
|
|
||||||
<a name="Themes"><hr><h2>Themes</h2>
|
<a name="Themes"><hr><h2>Themes</h2>
|
||||||
|
|
||||||
@ -1512,7 +1527,7 @@ The functions to implement replaying capabilites are
|
|||||||
virtual bool HasDecoder(void) const;
|
virtual bool HasDecoder(void) const;
|
||||||
virtual bool CanReplay(void) const;
|
virtual bool CanReplay(void) const;
|
||||||
virtual bool SetPlayMode(ePlayMode PlayMode);
|
virtual bool SetPlayMode(ePlayMode PlayMode);
|
||||||
<!--X1.2.6--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
<!--X1.2.6--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||||
virtual int64_t GetSTC(void);
|
virtual int64_t GetSTC(void);
|
||||||
<!--X1.2.6--></td></tr></table>
|
<!--X1.2.6--></td></tr></table>
|
||||||
virtual void TrickSpeed(int Speed);
|
virtual void TrickSpeed(int Speed);
|
||||||
@ -1534,7 +1549,7 @@ virtual void SetVideoFormat(bool VideoFormat16_9);
|
|||||||
virtual void SetVolumeDevice(int Volume);
|
virtual void SetVolumeDevice(int Volume);
|
||||||
</pre></td></tr></table><p>
|
</pre></td></tr></table><p>
|
||||||
|
|
||||||
<!--X1.3.0--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
<!--X1.3.0--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||||
<p>
|
<p>
|
||||||
<b>Section Filtering</b>
|
<b>Section Filtering</b>
|
||||||
<p>
|
<p>
|
||||||
@ -1564,7 +1579,7 @@ handle section data.
|
|||||||
<p>
|
<p>
|
||||||
<b>On Screen Display</b>
|
<b>On Screen Display</b>
|
||||||
<p>
|
<p>
|
||||||
<!--X1.3.7--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
<!--X1.3.7--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||||
If your device provides On Screen Display (OSD) capabilities (which every device
|
If your device provides On Screen Display (OSD) capabilities (which every device
|
||||||
that is supposed to be used as a primary device should do), it shall implement
|
that is supposed to be used as a primary device should do), it shall implement
|
||||||
an "OSD provider" class, derived from <tt>cOsdProvider</tt>, which, when its <tt>CreateOsd()</tt>
|
an "OSD provider" class, derived from <tt>cOsdProvider</tt>, which, when its <tt>CreateOsd()</tt>
|
||||||
|
@ -47,20 +47,20 @@ rbb Berlin:12109:hC34:S19.2E:27500:601:602=deu:604:0:28206:1:1073:0
|
|||||||
START,PREMIERE START:11797:hC34:S19.2E:27500:255:256=deu:32:1702,1801,1722:8:133:2:0
|
START,PREMIERE START:11797:hC34:S19.2E:27500:255:256=deu:32:1702,1801,1722:8:133:2:0
|
||||||
PREM 1,PREMIERE 1:11797:hC34:S19.2E:27500:511:512=deu;515=deu:32:1801,1702,1722:10:133:2:0
|
PREM 1,PREMIERE 1:11797:hC34:S19.2E:27500:511:512=deu;515=deu:32:1801,1702,1722:10:133:2:0
|
||||||
PREM 2,PREMIERE 2:11797:hC34:S19.2E:27500:1791:1792=deu;1795=deu:32:1702,1722,1801:11:133:2:0
|
PREM 2,PREMIERE 2:11797:hC34:S19.2E:27500:1791:1792=deu;1795=deu:32:1702,1722,1801:11:133:2:0
|
||||||
PREM 3,PREMIERE 3:11797:hC34:S19.2E:27500:2303:2304=deu:32:1722,1801,1702:43:133:2:0
|
PREM 3,PREMIERE 3:11797:hC34:S19.2E:27500:2303:2304=deu,2305=deu:32:1722,1801,1702:43:133:2:0
|
||||||
PREM 4,PREMIERE 4:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1801,1722,1702:9:133:2:0
|
PREM 4,PREMIERE 4:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1801,1722,1702:9:133:2:0
|
||||||
PREM 5,PREMIERE 5:11797:hC34:S19.2E:27500:1279:1280=deu:32:1722,1702,1801:29:133:2:0
|
PREM 5,PREMIERE 5:11797:hC34:S19.2E:27500:1279:1280=deu,1281=deu:32:1722,1702,1801:29:133:2:0
|
||||||
PREM 6,PREMIERE 6:11797:hC34:S19.2E:27500:1535:1536=deu:32:1702,1801,1722:41:133:2:0
|
PREM 6,PREMIERE 6:11797:hC34:S19.2E:27500:1535:1536=deu:32:1702,1801,1722:41:133:2:0
|
||||||
PREM 7,PREMIERE 7:11797:hC34:S19.2E:27500:1023:1024=deu:32:1801,1722,1702:20:133:2:0
|
PREM 7,PREMIERE 7:11797:hC34:S19.2E:27500:1023:1024=deu:32:1801,1722,1702:20:133:2:0
|
||||||
DISNEY,DISNEY CHANNEL:11758:hC34:S19.2E:27500:2559:2560=deu:0:1702,1722,1801:34:133:17:0
|
DISNEY,DISNEY CHANNEL:11758:hC34:S19.2E:27500:2559:2560=deu:0:1722,1801,1702:34:133:17:0
|
||||||
:Premiere Direkt
|
:Premiere Direkt
|
||||||
DIREKT,PREMIERE DIREKT:12031:hC34:S19.2E:27500:2815:2816=deu,2817=deu;2819=deu:0:0:18:133:4:0
|
DIREKT,PREMIERE DIREKT:12031:hC34:S19.2E:27500:2815:2816=deu,2817=deu;2819=deu:0:0:18:133:4:0
|
||||||
:PW Erotic
|
:PW Erotic
|
||||||
B-UHSE,BEATE-UHSE.TV:12070:hC34:S19.2E:27500:1023:1024=deu:32:1702,1801,1722:21:133:1:0
|
B-UHSE,BEATE-UHSE.TV:12070:hC34:S19.2E:27500:1023:1024=deu:32:1702,1801,1722:21:133:1:0
|
||||||
EROTIK,PREMIERE EROTIK:12031:hC34:S19.2E:27500:1279:0:0:1722,1801,1702:513:133:4:0
|
EROTIK,PREMIERE EROTIK:12031:hC34:S19.2E:27500:1279:0:0:1722,1801,1702:513:133:4:0
|
||||||
:Sportsworld
|
:Sportsworld
|
||||||
SPORT 1,PREMIERE SPORT 1:11719:hC34:S19.2E:27500:255:256=deu,257=deu:0:1702,1722,1801:17:133:3:0
|
Formel 1:11719:hC34:S19.2E:27500:255:256=deu,257=deu:32:1702,1722,1801:17:133:3:0
|
||||||
SPORT 2,PREMIERE SPORT 2:12031:hC34:S19.2E:27500:3839:3840=deu,3841=deu:0:1702,1722,1801:27:133:4:0
|
SPORT 2,PREMIERE SPORT 2:12031:hC34:S19.2E:27500:3839:3840=deu,3841=deu:32:1702,1722,1801:27:133:4:0
|
||||||
:Beta Digital
|
:Beta Digital
|
||||||
N24:12480:vC34:S19.2E:27500:2047:2048:36:0:47:133:33:0
|
N24:12480:vC34:S19.2E:27500:2047:2048:36:0:47:133:33:0
|
||||||
Liberty TV.com:12610:vC56:S19.2E:22000:941:943=deu:0:0:12199:1:1112:0
|
Liberty TV.com:12610:vC56:S19.2E:22000:941:943=deu:0:0:12199:1:1112:0
|
||||||
|
8
config.h
8
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.193 2004/05/16 12:41:43 kls Exp $
|
* $Id: config.h 1.195 2004/05/22 11:29:52 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.7"
|
#define VDRVERSION "1.3.8"
|
||||||
#define VDRVERSNUM 10307 // Version * 10000 + Major * 100 + Minor
|
#define VDRVERSNUM 10308 // Version * 10000 + Major * 100 + Minor
|
||||||
|
|
||||||
#define MAXPRIORITY 99
|
#define MAXPRIORITY 99
|
||||||
#define MAXLIFETIME 99
|
#define MAXLIFETIME 99
|
||||||
@ -140,7 +140,7 @@ public:
|
|||||||
bool Save(void)
|
bool Save(void)
|
||||||
{
|
{
|
||||||
bool result = true;
|
bool result = true;
|
||||||
T *l = (T *)First();
|
T *l = (T *)this->First();
|
||||||
cSafeFile f(fileName);
|
cSafeFile f(fileName);
|
||||||
if (f.Open()) {
|
if (f.Open()) {
|
||||||
while (l) {
|
while (l) {
|
||||||
|
3
device.h
3
device.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: device.h 1.42 2004/04/17 10:15:25 kls Exp $
|
* $Id: device.h 1.43 2004/05/23 10:10:08 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __DEVICE_H
|
#ifndef __DEVICE_H
|
||||||
@ -36,6 +36,7 @@ enum ePlayMode { pmNone, // audio/video from decoder
|
|||||||
pmAudioVideo, // audio/video from player
|
pmAudioVideo, // audio/video from player
|
||||||
pmAudioOnly, // audio only from player, video from decoder
|
pmAudioOnly, // audio only from player, video from decoder
|
||||||
pmAudioOnlyBlack, // audio only from player, no video (black screen)
|
pmAudioOnlyBlack, // audio only from player, no video (black screen)
|
||||||
|
pmVideoOnly, // video only from player, audio from decoder
|
||||||
pmExtern_THIS_SHOULD_BE_AVOIDED
|
pmExtern_THIS_SHOULD_BE_AVOIDED
|
||||||
// external player (e.g. MPlayer), release the device
|
// external player (e.g. MPlayer), release the device
|
||||||
// WARNING: USE THIS MODE ONLY AS A LAST RESORT, IF YOU
|
// WARNING: USE THIS MODE ONLY AS A LAST RESORT, IF YOU
|
||||||
|
14
dvbdevice.c
14
dvbdevice.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: dvbdevice.c 1.84 2004/05/01 13:15:46 kls Exp $
|
* $Id: dvbdevice.c 1.86 2004/05/23 10:11:42 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbdevice.h"
|
#include "dvbdevice.h"
|
||||||
@ -679,7 +679,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
|
|||||||
|
|
||||||
if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel)) {
|
if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel)) {
|
||||||
result = hasPriority;
|
result = hasPriority;
|
||||||
if (Priority >= 0 && Receiving()) {
|
if (Priority >= 0 && Receiving(true)) {
|
||||||
if (dvbTuner->IsTunedTo(Channel)) {
|
if (dvbTuner->IsTunedTo(Channel)) {
|
||||||
if (!HasPid(Channel->Vpid())) {
|
if (!HasPid(Channel->Vpid())) {
|
||||||
#ifdef DO_MULTIPLE_RECORDINGS
|
#ifdef DO_MULTIPLE_RECORDINGS
|
||||||
@ -873,6 +873,16 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode)
|
|||||||
CHECK(ioctl(fd_audio, AUDIO_PLAY));
|
CHECK(ioctl(fd_audio, AUDIO_PLAY));
|
||||||
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, false));
|
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, false));
|
||||||
break;
|
break;
|
||||||
|
case pmVideoOnly:
|
||||||
|
CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true));
|
||||||
|
CHECK(ioctl(fd_video, VIDEO_STOP, true));
|
||||||
|
CHECK(ioctl(fd_audio, AUDIO_SELECT_SOURCE, AUDIO_SOURCE_DEMUX));
|
||||||
|
CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, false));
|
||||||
|
CHECK(ioctl(fd_audio, AUDIO_PLAY));
|
||||||
|
CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER));
|
||||||
|
CHECK(ioctl(fd_video, VIDEO_SELECT_SOURCE, VIDEO_SOURCE_MEMORY));
|
||||||
|
CHECK(ioctl(fd_video, VIDEO_PLAY));
|
||||||
|
break;
|
||||||
case pmExtern_THIS_SHOULD_BE_AVOIDED:
|
case pmExtern_THIS_SHOULD_BE_AVOIDED:
|
||||||
close(fd_video);
|
close(fd_video);
|
||||||
close(fd_audio);
|
close(fd_audio);
|
||||||
|
9
dvbspu.c
9
dvbspu.c
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* parts of this file are derived from the OMS program.
|
* parts of this file are derived from the OMS program.
|
||||||
*
|
*
|
||||||
* $Id: dvbspu.c 1.6 2004/04/30 13:45:02 kls Exp $
|
* $Id: dvbspu.c 1.7 2004/05/22 14:02:32 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@ -321,8 +321,13 @@ int cDvbSpuDecoder::ScaleYres(int value)
|
|||||||
|
|
||||||
void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp)
|
void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp)
|
||||||
{
|
{
|
||||||
tArea Area = { size.x1, size.y1, size.x2, size.y2, 2 };
|
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);
|
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);
|
osd->DrawBitmap(size.x1, size.y1, *bmp);
|
||||||
delete bmp;
|
delete bmp;
|
||||||
}
|
}
|
||||||
|
9
epg.c
9
epg.c
@ -7,7 +7,7 @@
|
|||||||
* Original version (as used in VDR before 1.3.0) written by
|
* Original version (as used in VDR before 1.3.0) written by
|
||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||||
*
|
*
|
||||||
* $Id: epg.c 1.18 2004/03/13 15:01:05 kls Exp $
|
* $Id: epg.c 1.19 2004/05/22 12:37:07 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "epg.h"
|
#include "epg.h"
|
||||||
@ -115,9 +115,12 @@ bool cEvent::IsRunning(bool OrAboutToStart) const
|
|||||||
|
|
||||||
const char *cEvent::GetDateString(void) const
|
const char *cEvent::GetDateString(void) const
|
||||||
{
|
{
|
||||||
static char buf[25];
|
static char buf[32];
|
||||||
struct tm tm_r;
|
struct tm tm_r;
|
||||||
strftime(buf, sizeof(buf), "%d.%m.%Y", localtime_r(&startTime, &tm_r));
|
tm *tm = localtime_r(&startTime, &tm_r);
|
||||||
|
char *p = stpcpy(buf, WeekDayName(tm->tm_wday));
|
||||||
|
*p++ = ' ';
|
||||||
|
strftime(p, sizeof(buf) - (p - buf), "%d.%m.%Y", tm);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
i18n.c
22
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.155 2004/05/16 11:53:45 kls Exp $
|
* $Id: i18n.c 1.156 2004/05/22 11:46:35 kls Exp $
|
||||||
*
|
*
|
||||||
* Translations provided by:
|
* Translations provided by:
|
||||||
*
|
*
|
||||||
@ -2319,7 +2319,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Ulkoasu",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2338,7 +2338,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Teema",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2357,7 +2357,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Vaakakeskitys",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2376,7 +2376,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Pystykeskitys",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2452,7 +2452,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Käytä pieniä kirjasimia",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2471,7 +2471,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"ei koskaan",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2490,7 +2490,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"ulkoasun mukaan",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -2509,7 +2509,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"aina",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -4604,7 +4604,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"Klassinen VDR",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
@ -4623,7 +4623,7 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"ST:TNG konsoli",
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
"",// TODO
|
"",// TODO
|
||||||
|
41
menu.c
41
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.300 2004/05/16 12:47:22 kls Exp $
|
* $Id: menu.c 1.306 2004/05/23 11:21:06 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -499,25 +499,29 @@ eOSState cMenuChannels::ProcessKey(eKeys Key)
|
|||||||
|
|
||||||
// --- cMenuText -------------------------------------------------------------
|
// --- cMenuText -------------------------------------------------------------
|
||||||
|
|
||||||
class cMenuText : public cOsdMenu {
|
|
||||||
private:
|
|
||||||
const char *text;
|
|
||||||
public:
|
|
||||||
cMenuText(const char *Title, const char *Text, eDvbFont Font = fontOsd);
|
|
||||||
virtual void Display(void);
|
|
||||||
virtual eOSState ProcessKey(eKeys Key);
|
|
||||||
};
|
|
||||||
|
|
||||||
cMenuText::cMenuText(const char *Title, const char *Text, eDvbFont Font)
|
cMenuText::cMenuText(const char *Title, const char *Text, eDvbFont Font)
|
||||||
:cOsdMenu(Title)
|
:cOsdMenu(Title)
|
||||||
{
|
{
|
||||||
text = Text;
|
text = NULL;
|
||||||
|
SetText(Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
cMenuText::~cMenuText()
|
||||||
|
{
|
||||||
|
free(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cMenuText::SetText(const char *Text)
|
||||||
|
{
|
||||||
|
free(text);
|
||||||
|
text = strdup(Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cMenuText::Display(void)
|
void cMenuText::Display(void)
|
||||||
{
|
{
|
||||||
cOsdMenu::Display();
|
cOsdMenu::Display();
|
||||||
DisplayMenu()->SetText(text, true);//XXX define control character in text to choose the font???
|
DisplayMenu()->SetText(text, true);//XXX define control character in text to choose the font???
|
||||||
|
cStatus::MsgOsdTextItem(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
eOSState cMenuText::ProcessKey(eKeys Key)
|
eOSState cMenuText::ProcessKey(eKeys Key)
|
||||||
@ -532,6 +536,7 @@ eOSState cMenuText::ProcessKey(eKeys Key)
|
|||||||
case kRight|k_Repeat:
|
case kRight|k_Repeat:
|
||||||
case kRight:
|
case kRight:
|
||||||
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
|
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
|
||||||
|
cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp);
|
||||||
return osContinue;
|
return osContinue;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
@ -633,6 +638,7 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
|
|||||||
}
|
}
|
||||||
if (addIfConfirmed)
|
if (addIfConfirmed)
|
||||||
Timers.Add(timer);
|
Timers.Add(timer);
|
||||||
|
timer->Matches();
|
||||||
Timers.Save();
|
Timers.Save();
|
||||||
isyslog("timer %d %s (%s)", timer->Index() + 1, addIfConfirmed ? "added" : "modified", timer->HasFlags(tfActive) ? "active" : "inactive");
|
isyslog("timer %d %s (%s)", timer->Index() + 1, addIfConfirmed ? "added" : "modified", timer->HasFlags(tfActive) ? "active" : "inactive");
|
||||||
addIfConfirmed = false;
|
addIfConfirmed = false;
|
||||||
@ -677,9 +683,11 @@ bool cMenuTimerItem::operator< (const cListObject &ListObject)
|
|||||||
void cMenuTimerItem::Set(void)
|
void cMenuTimerItem::Set(void)
|
||||||
{
|
{
|
||||||
char *buffer = NULL;
|
char *buffer = NULL;
|
||||||
asprintf(&buffer, "%c\t%d\t%s\t%02d:%02d\t%02d:%02d\t%s",
|
asprintf(&buffer, "%c\t%d\t%s%s%s\t%02d:%02d\t%02d:%02d\t%s",
|
||||||
!(timer->HasFlags(tfActive)) ? ' ' : timer->FirstDay() ? '!' : timer->Recording() ? '#' : '>',
|
!(timer->HasFlags(tfActive)) ? ' ' : timer->FirstDay() ? '!' : timer->Recording() ? '#' : '>',
|
||||||
timer->Channel()->Number(),
|
timer->Channel()->Number(),
|
||||||
|
timer->IsSingleEvent() ? WeekDayName(timer->StartTime()) : "",
|
||||||
|
timer->IsSingleEvent() ? " " : "",
|
||||||
timer->PrintDay(timer->Day()),
|
timer->PrintDay(timer->Day()),
|
||||||
timer->Start() / 100,
|
timer->Start() / 100,
|
||||||
timer->Start() % 100,
|
timer->Start() % 100,
|
||||||
@ -859,6 +867,7 @@ void cMenuEvent::Display(void)
|
|||||||
{
|
{
|
||||||
cOsdMenu::Display();
|
cOsdMenu::Display();
|
||||||
DisplayMenu()->SetEvent(event);
|
DisplayMenu()->SetEvent(event);
|
||||||
|
cStatus::MsgOsdTextItem(event->Description());
|
||||||
}
|
}
|
||||||
|
|
||||||
eOSState cMenuEvent::ProcessKey(eKeys Key)
|
eOSState cMenuEvent::ProcessKey(eKeys Key)
|
||||||
@ -873,6 +882,7 @@ eOSState cMenuEvent::ProcessKey(eKeys Key)
|
|||||||
case kRight|k_Repeat:
|
case kRight|k_Repeat:
|
||||||
case kRight:
|
case kRight:
|
||||||
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
|
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
|
||||||
|
cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp);
|
||||||
return osContinue;
|
return osContinue;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
@ -908,7 +918,7 @@ cMenuWhatsOnItem::cMenuWhatsOnItem(const cEvent *Event, cChannel *Channel)
|
|||||||
char t = Timers.GetMatch(Event, &TimerMatch) ? (TimerMatch == tmFull) ? 'T' : 't' : ' ';
|
char t = Timers.GetMatch(Event, &TimerMatch) ? (TimerMatch == tmFull) ? 'T' : 't' : ' ';
|
||||||
char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
|
char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
|
||||||
char r = event->IsRunning() ? '*' : ' ';
|
char r = event->IsRunning() ? '*' : ' ';
|
||||||
asprintf(&buffer, "%d\t%.*s\t%.*s\t%c%c%c\t%s", channel->Number(), 6, channel->Name(), 5, event->GetTimeString(), t, v, r, event->Title());
|
asprintf(&buffer, "%d\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), 6, channel->Name(), event->GetTimeString(), t, v, r, event->Title());
|
||||||
SetText(buffer, false);
|
SetText(buffer, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1026,7 +1036,7 @@ cMenuScheduleItem::cMenuScheduleItem(const cEvent *Event)
|
|||||||
char t = Timers.GetMatch(Event, &TimerMatch) ? (TimerMatch == tmFull) ? 'T' : 't' : ' ';
|
char t = Timers.GetMatch(Event, &TimerMatch) ? (TimerMatch == tmFull) ? 'T' : 't' : ' ';
|
||||||
char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
|
char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
|
||||||
char r = event->IsRunning() ? '*' : ' ';
|
char r = event->IsRunning() ? '*' : ' ';
|
||||||
asprintf(&buffer, "%.*s\t%.*s\t%c%c%c\t%s", 5, event->GetDateString(), 5, event->GetTimeString(), t, v, r, event->Title());
|
asprintf(&buffer, "%.*s\t%s\t%c%c%c\t%s", 6, event->GetDateString(), event->GetTimeString(), t, v, r, event->Title());
|
||||||
SetText(buffer, false);
|
SetText(buffer, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1048,7 +1058,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
cMenuSchedule::cMenuSchedule(void)
|
cMenuSchedule::cMenuSchedule(void)
|
||||||
:cOsdMenu("", 6, 6, 4)
|
:cOsdMenu("", 7, 6, 4)
|
||||||
{
|
{
|
||||||
now = next = false;
|
now = next = false;
|
||||||
otherChannel = 0;
|
otherChannel = 0;
|
||||||
@ -2485,6 +2495,7 @@ cDisplayChannel::cDisplayChannel(eKeys FirstKey)
|
|||||||
cDisplayChannel::~cDisplayChannel()
|
cDisplayChannel::~cDisplayChannel()
|
||||||
{
|
{
|
||||||
delete displayChannel;
|
delete displayChannel;
|
||||||
|
cStatus::MsgOsdClear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cDisplayChannel::DisplayChannel(void)
|
void cDisplayChannel::DisplayChannel(void)
|
||||||
|
13
menu.h
13
menu.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: menu.h 1.61 2004/04/30 13:45:19 kls Exp $
|
* $Id: menu.h 1.63 2004/05/23 09:47:26 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __MENU_H
|
#ifndef __MENU_H
|
||||||
@ -19,6 +19,17 @@
|
|||||||
#include "recording.h"
|
#include "recording.h"
|
||||||
#include "skins.h"
|
#include "skins.h"
|
||||||
|
|
||||||
|
class cMenuText : public cOsdMenu {
|
||||||
|
private:
|
||||||
|
char *text;
|
||||||
|
public:
|
||||||
|
cMenuText(const char *Title, const char *Text, eDvbFont Font = fontOsd);
|
||||||
|
virtual ~cMenuText();
|
||||||
|
void SetText(const char *Text);
|
||||||
|
virtual void Display(void);
|
||||||
|
virtual eOSState ProcessKey(eKeys Key);
|
||||||
|
};
|
||||||
|
|
||||||
class cMenuMain : public cOsdMenu {
|
class cMenuMain : public cOsdMenu {
|
||||||
private:
|
private:
|
||||||
time_t lastActivity;
|
time_t lastActivity;
|
||||||
|
3
nit.c
3
nit.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: nit.c 1.6 2004/02/13 14:41:36 kls Exp $
|
* $Id: nit.c 1.7 2004/05/22 15:46:21 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "nit.h"
|
#include "nit.h"
|
||||||
@ -76,6 +76,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
break;
|
break;
|
||||||
default: ;
|
default: ;
|
||||||
}
|
}
|
||||||
|
delete d;
|
||||||
}
|
}
|
||||||
nits[numNits].networkId = nit.getNetworkId();
|
nits[numNits].networkId = nit.getNetworkId();
|
||||||
nits[numNits].hasTransponder = false;
|
nits[numNits].hasTransponder = false;
|
||||||
|
4
osd.c
4
osd.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: osd.c 1.46 2004/05/16 09:25:06 kls Exp $
|
* $Id: osd.c 1.47 2004/05/22 13:47:39 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
@ -264,6 +264,8 @@ bool cBitmap::SetXpm(char *Xpm[])
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
s = skipspace(s + 1);
|
s = skipspace(s + 1);
|
||||||
|
if (strcasecmp(s, "none") == 0)
|
||||||
|
s = "#00000000";
|
||||||
if (*s != '#') {
|
if (*s != '#') {
|
||||||
esyslog("ERROR: unknown color code in XPM: '%c'", *s);
|
esyslog("ERROR: unknown color code in XPM: '%c'", *s);
|
||||||
return false;
|
return false;
|
||||||
|
8
pat.c
8
pat.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: pat.c 1.8 2004/03/07 16:59:00 kls Exp $
|
* $Id: pat.c 1.9 2004/05/23 09:29:04 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "pat.h"
|
#include "pat.h"
|
||||||
@ -211,6 +211,7 @@ int cCaDescriptorHandler::AddCaDescriptors(cCaDescriptors *CaDescriptors)
|
|||||||
int cCaDescriptorHandler::GetCaDescriptors(int Source, int Transponder, int ServiceId, const unsigned short *CaSystemIds, int BufSize, uchar *Data, bool &StreamFlag)
|
int cCaDescriptorHandler::GetCaDescriptors(int Source, int Transponder, int ServiceId, const unsigned short *CaSystemIds, int BufSize, uchar *Data, bool &StreamFlag)
|
||||||
{
|
{
|
||||||
cMutexLock MutexLock(&mutex);
|
cMutexLock MutexLock(&mutex);
|
||||||
|
StreamFlag = false;
|
||||||
for (cCaDescriptors *ca = First(); ca; ca = Next(ca)) {
|
for (cCaDescriptors *ca = First(); ca; ca = Next(ca)) {
|
||||||
if (ca->Is(Source, Transponder, ServiceId))
|
if (ca->Is(Source, Transponder, ServiceId))
|
||||||
return ca->GetCaDescriptors(CaSystemIds, BufSize, Data, StreamFlag);
|
return ca->GetCaDescriptors(CaSystemIds, BufSize, Data, StreamFlag);
|
||||||
@ -326,8 +327,8 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
int Ppid = pmt.getPCRPid();
|
int Ppid = pmt.getPCRPid();
|
||||||
int Apids[MAXAPIDS] = { 0 };
|
int Apids[MAXAPIDS] = { 0 };
|
||||||
int Dpids[MAXAPIDS] = { 0 };
|
int Dpids[MAXAPIDS] = { 0 };
|
||||||
char ALangs[MAXAPIDS][4];
|
char ALangs[MAXAPIDS][4] = { "" };
|
||||||
char DLangs[MAXAPIDS][4];
|
char DLangs[MAXAPIDS][4] = { "" };
|
||||||
int Tpid = 0;
|
int Tpid = 0;
|
||||||
int NumApids = 0;
|
int NumApids = 0;
|
||||||
int NumDpids = 0;
|
int NumDpids = 0;
|
||||||
@ -343,7 +344,6 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
{
|
{
|
||||||
if (NumApids < MAXAPIDS) {
|
if (NumApids < MAXAPIDS) {
|
||||||
Apids[NumApids] = stream.getPid();
|
Apids[NumApids] = stream.getPid();
|
||||||
*ALangs[NumApids] = 0;
|
|
||||||
SI::Descriptor *d;
|
SI::Descriptor *d;
|
||||||
for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) {
|
for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) {
|
||||||
switch (d->getDescriptorTag()) {
|
switch (d->getDescriptorTag()) {
|
||||||
|
4
plugin.c
4
plugin.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: plugin.c 1.10 2003/08/30 14:52:58 kls Exp $
|
* $Id: plugin.c 1.11 2004/05/22 11:25:22 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
@ -162,7 +162,7 @@ bool cDll::Load(bool Log)
|
|||||||
const char *error = dlerror();
|
const char *error = dlerror();
|
||||||
if (!error) {
|
if (!error) {
|
||||||
void *(*creator)(void);
|
void *(*creator)(void);
|
||||||
(void *)creator = dlsym(handle, "VDRPluginCreator");
|
creator = (void *(*)(void))dlsym(handle, "VDRPluginCreator");
|
||||||
if (!(error = dlerror()))
|
if (!(error = dlerror()))
|
||||||
plugin = (cPlugin *)creator();
|
plugin = (cPlugin *)creator();
|
||||||
}
|
}
|
||||||
|
@ -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: skinclassic.c 1.1 2004/05/15 14:51:18 kls Exp $
|
* $Id: skinclassic.c 1.3 2004/05/23 10:40:02 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skinclassic.h"
|
#include "skinclassic.h"
|
||||||
@ -231,10 +231,10 @@ void cSkinClassicDisplayMenu::SetButtons(const char *Red, const char *Green, con
|
|||||||
int t2 = x0 + w / 2;
|
int t2 = x0 + w / 2;
|
||||||
int t3 = x1 - w / 4;
|
int t3 = x1 - w / 4;
|
||||||
int t4 = x1;
|
int t4 = x1;
|
||||||
osd->DrawText(t0, y4, Red, Theme.Color(clrButtonRedFg), Theme.Color(clrButtonRedBg), font, t1 - t0, 0, taCenter);
|
osd->DrawText(t0, y4, Red, Theme.Color(clrButtonRedFg), Red ? Theme.Color(clrButtonRedBg) : Theme.Color(clrBackground), font, t1 - t0, 0, taCenter);
|
||||||
osd->DrawText(t1, y4, Green, Theme.Color(clrButtonGreenFg), Theme.Color(clrButtonGreenBg), font, t2 - t1, 0, taCenter);
|
osd->DrawText(t1, y4, Green, Theme.Color(clrButtonGreenFg), Green ? Theme.Color(clrButtonGreenBg) : Theme.Color(clrBackground), font, t2 - t1, 0, taCenter);
|
||||||
osd->DrawText(t2, y4, Yellow, Theme.Color(clrButtonYellowFg), Theme.Color(clrButtonYellowBg), font, t3 - t2, 0, taCenter);
|
osd->DrawText(t2, y4, Yellow, Theme.Color(clrButtonYellowFg), Yellow ? Theme.Color(clrButtonYellowBg) : Theme.Color(clrBackground), font, t3 - t2, 0, taCenter);
|
||||||
osd->DrawText(t3, y4, Blue, Theme.Color(clrButtonBlueFg), Theme.Color(clrButtonBlueBg), font, t4 - t3, 0, taCenter);
|
osd->DrawText(t3, y4, Blue, Theme.Color(clrButtonBlueFg), Blue ? Theme.Color(clrButtonBlueBg) : Theme.Color(clrBackground), font, t4 - t3, 0, taCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cSkinClassicDisplayMenu::SetMessage(eMessageType Type, const char *Text)
|
void cSkinClassicDisplayMenu::SetMessage(eMessageType Type, const char *Text)
|
||||||
@ -280,7 +280,7 @@ void cSkinClassicDisplayMenu::SetEvent(const cEvent *Event)
|
|||||||
int y = y2;
|
int y = y2;
|
||||||
cTextScroller ts;
|
cTextScroller ts;
|
||||||
char t[32];
|
char t[32];
|
||||||
snprintf(t, sizeof(t), "%s %s - %s", Event->GetDateString(), Event->GetTimeString(), Event->GetEndTimeString());//TODO dayname, no year
|
snprintf(t, sizeof(t), "%s %s - %s", Event->GetDateString(), Event->GetTimeString(), Event->GetEndTimeString());
|
||||||
ts.Set(osd, xl, y, x1 - xl, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
|
ts.Set(osd, xl, y, x1 - xl, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
|
||||||
if (Event->Vps() && Event->Vps() != Event->StartTime()) {
|
if (Event->Vps() && Event->Vps() != Event->StartTime()) {
|
||||||
char *buffer;
|
char *buffer;
|
||||||
|
4
skins.h
4
skins.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: skins.h 1.1 2004/05/16 09:40:18 kls Exp $
|
* $Id: skins.h 1.2 2004/05/16 20:16:57 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __SKINS_H
|
#ifndef __SKINS_H
|
||||||
@ -184,7 +184,7 @@ public:
|
|||||||
///< indicator, showing the user whether we are currently in normal
|
///< indicator, showing the user whether we are currently in normal
|
||||||
///< play mode, fast forward etc.
|
///< play mode, fast forward etc.
|
||||||
virtual void SetProgress(int Current, int Total) = 0;
|
virtual void SetProgress(int Current, int Total) = 0;
|
||||||
///< This function will be called whenever the position in of the total
|
///< This function will be called whenever the position in or the total
|
||||||
///< length of the recording has changed. A cProgressBar shall then be
|
///< length of the recording has changed. A cProgressBar shall then be
|
||||||
///< used to display a progress indicator.
|
///< used to display a progress indicator.
|
||||||
virtual void SetCurrent(const char *Current) = 0;
|
virtual void SetCurrent(const char *Current) = 0;
|
||||||
|
@ -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: skinsttng.c 1.1 2004/05/16 09:27:35 kls Exp $
|
* $Id: skinsttng.c 1.2 2004/05/22 13:05:07 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Star Trek: The Next Generation® is a registered trademark of Paramount Pictures
|
// Star Trek: The Next Generation® is a registered trademark of Paramount Pictures
|
||||||
@ -515,7 +515,7 @@ void cSkinSTTNGDisplayMenu::SetEvent(const cEvent *Event)
|
|||||||
int y = y3;
|
int y = y3;
|
||||||
cTextScroller ts;
|
cTextScroller ts;
|
||||||
char t[32];
|
char t[32];
|
||||||
snprintf(t, sizeof(t), "%s %s - %s", Event->GetDateString(), Event->GetTimeString(), Event->GetEndTimeString());//TODO dayname, no year
|
snprintf(t, sizeof(t), "%s %s - %s", Event->GetDateString(), Event->GetTimeString(), Event->GetEndTimeString());
|
||||||
ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
|
ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
|
||||||
if (Event->Vps() && Event->Vps() != Event->StartTime()) {
|
if (Event->Vps() && Event->Vps() != Event->StartTime()) {
|
||||||
char *buffer;
|
char *buffer;
|
||||||
|
4
themes.c
4
themes.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: themes.c 1.1 2004/05/16 09:43:14 kls Exp $
|
* $Id: themes.c 1.2 2004/05/22 10:30:06 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "themes.h"
|
#include "themes.h"
|
||||||
@ -274,7 +274,7 @@ int cThemes::GetThemeIndex(const char *Description)
|
|||||||
if (strcmp(descriptions[i], Description) == 0)
|
if (strcmp(descriptions[i], Description) == 0)
|
||||||
return i;
|
return i;
|
||||||
if (strcmp(descriptions[i], "Default") == 0)
|
if (strcmp(descriptions[i], "Default") == 0)
|
||||||
index = 1;
|
index = i;
|
||||||
}
|
}
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
8
tools.c
8
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.78 2004/01/11 15:42:30 kls Exp $
|
* $Id: tools.c 1.79 2004/05/22 12:13:27 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
@ -495,6 +495,12 @@ const char *WeekDayName(int WeekDay)
|
|||||||
return "???";
|
return "???";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *WeekDayName(time_t t)
|
||||||
|
{
|
||||||
|
struct tm tm_r;
|
||||||
|
return WeekDayName(localtime_r(&t, &tm_r)->tm_wday);
|
||||||
|
}
|
||||||
|
|
||||||
const char *DayDateTime(time_t t)
|
const char *DayDateTime(time_t t)
|
||||||
{
|
{
|
||||||
static char buffer[32];
|
static char buffer[32];
|
||||||
|
3
tools.h
3
tools.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: tools.h 1.55 2004/01/11 15:42:15 kls Exp $
|
* $Id: tools.h 1.56 2004/05/22 12:11:44 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TOOLS_H
|
#ifndef __TOOLS_H
|
||||||
@ -84,6 +84,7 @@ bool RemoveEmptyDirectories(const char *DirName, bool RemoveThis = false);
|
|||||||
char *ReadLink(const char *FileName);
|
char *ReadLink(const char *FileName);
|
||||||
bool SpinUpDisk(const char *FileName);
|
bool SpinUpDisk(const char *FileName);
|
||||||
const char *WeekDayName(int WeekDay); ///< \warning returns a statically allocated string!
|
const char *WeekDayName(int WeekDay); ///< \warning returns a statically allocated string!
|
||||||
|
const char *WeekDayName(time_t t); ///< \warning returns a statically allocated string!
|
||||||
const char *DayDateTime(time_t t = 0); ///< \warning returns a statically allocated string!
|
const char *DayDateTime(time_t t = 0); ///< \warning returns a statically allocated string!
|
||||||
|
|
||||||
class cPoller {
|
class cPoller {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user