Compare commits

...

4322 Commits

Author SHA1 Message Date
Klaus Schmidinger
dd71a004e2 Official release of version 2.7.4 2025-02-26 10:35:03 +01:00
Klaus Schmidinger
45091fbd72 Revised locking in cMenuSchedule and cMenuWhatsOn 2025-02-25 15:53:43 +01:00
Klaus Schmidinger
988d5aebfa Added missing locks to SetMenuItem() functions 2025-02-20 10:23:15 +01:00
Klaus Schmidinger
8c3671fae6 Fixed cPtsIndex::FindFrameNumber() to handle the case where Pts points to an I-frame 2025-02-19 15:39:16 +01:00
Klaus Schmidinger
2a12af481a Fixed spurious fast frames when switching from "slow back" to "slow forward" 2025-02-18 17:06:15 +01:00
Klaus Schmidinger
7817e64695 Fixed progress display when switching from "pause" to "slow back" 2025-02-18 15:37:24 +01:00
Klaus Schmidinger
ebbaa39098 Added '~' to the list of delimiters in cTextWrapper 2025-02-17 11:13:13 +01:00
Klaus Schmidinger
d3dcbbd4f2 Fixed unnecessary redisplays of menus 2025-02-17 10:49:10 +01:00
Klaus Schmidinger
3045995bbc Fixed displaying the current item when pressing a hotkey 2025-02-13 13:58:07 +01:00
Klaus Schmidinger
1b4233d6ad The function cPlugin::MainThreadHook() has been deprecated 2025-02-12 22:22:20 +01:00
Klaus Schmidinger
34aa8fe8b4 Adjusted PLUGINS.html to the new API version numbering introduced in version 2.7.2 2025-02-12 22:02:25 +01:00
Klaus Schmidinger
baa97e9ff1 Added missing calls to cStatus::MsgOsdStatusMessage() and added the new virtual function cStatus::OsdStatusMessage2(), which can be used to get the type of the message 2025-02-12 21:18:53 +01:00
Klaus Schmidinger
03afc4a353 Fixed unnecessary calls to cStatus::OsdCurrentItem2() when scrolling 2025-02-05 22:12:32 +01:00
Klaus Schmidinger
ef4ebeb7ee The new virtual function cStatus::OsdCurrentItem2() can be used to get the index of the current menu item 2025-01-29 11:15:26 +01:00
Klaus Schmidinger
80d8851e62 Added cStatus::OsdCurrentItem2() 2025-01-29 11:15:26 +01:00
Klaus Schmidinger
ead135f716 Fixed unnecessary calls to DisplayCurrent() for editable menu items 2025-01-29 10:35:25 +01:00
Klaus Schmidinger
49dc61a92c Fixed an unnecessary redisplay of the menu when pressing a hotkey 2025-01-29 10:25:55 +01:00
Klaus Schmidinger
af0309cc40 Fixed an improper call of cStatus::OsdCurrentItem() before cStatus::OsdItem2() 2025-01-29 10:20:17 +01:00
Klaus Schmidinger
4ed7421b1c Activated logging of OsdItem2() 2025-01-28 10:41:03 +01:00
Klaus Schmidinger
3058354dba Fixed setting the file name of the info file after renaming a recording 2025-01-18 20:57:06 +01:00
Klaus Schmidinger
20a8c5d240 Added cStatus::OsdItem2() 2025-01-16 10:23:12 +01:00
Klaus Schmidinger
0749a34342 The new virtual function cStatus::OsdItem2() can be used to get the information whether a menu item is selectable 2025-01-16 09:42:11 +01:00
Klaus Schmidinger
e595eed57d The info files of recordings are now only re-read if they have been modified 2025-01-15 10:50:29 +01:00
Klaus Schmidinger
a7576f0b6c Added parameter checks to strn0cpy() and Utf8Strn0Cpy() 2025-01-15 08:57:45 +01:00
Klaus Schmidinger
657e5dda5d Added a header to the backtrace 2025-01-15 08:43:12 +01:00
Klaus Schmidinger
8fb6a2b24b Fixed handling margins for timers that are not VPS controlled and not spawned 2025-01-13 14:44:18 +01:00
Klaus Schmidinger
53cac302d8 Added 1 to Utf8BufSize() for worst case 2025-01-13 13:18:42 +01:00
Klaus Schmidinger
2c6c014dd8 Checking for VPS control is now limited to local timers 2025-01-13 12:34:18 +01:00
Klaus Schmidinger
a7071f580e Added some missing locking 2025-01-10 16:11:02 +01:00
Klaus Schmidinger
de5327a048 Fixed a possible deadlock when canceling an editing process 2025-01-10 13:12:04 +01:00
Klaus Schmidinger
7ab94c7bcb Fixed accessing a timer's event schedule in case the event has been removed from the schedule 2025-01-07 10:46:22 +01:00
Klaus Schmidinger
0f80fc5e86 Fixed handling the fps value if it can't be determined from the video data 2024-12-05 10:37:15 +01:00
Klaus Schmidinger
d169f30e5c TS packets with errors are now skipped when parsing for frames 2024-12-05 10:33:31 +01:00
Klaus Schmidinger
7a1842cba6 Fixed a typo 2024-12-04 14:33:22 +01:00
Klaus Schmidinger
e4e9d7a55f Added some missing locking 2024-12-02 12:40:56 +01:00
Klaus Schmidinger
ccbef6ce6c Fixed some typos in the translation files 2024-11-30 14:30:46 +01:00
Klaus Schmidinger
7461a1ba3a Updated the Finnish OSD texts 2024-10-24 09:58:43 +02:00
Klaus Schmidinger
bb55e3036e The VDR homepage is now accessible via HTTPS 2024-10-21 19:04:53 +02:00
Klaus Schmidinger
bbf2cca198 Updated the Italian OSD texts 2024-10-20 10:05:19 +02:00
Klaus Schmidinger
8ce034d124 Fixed wrong credits 2024-10-17 20:17:57 +02:00
Klaus Schmidinger
4030698007 Fixed error checking in case the fps value can't be determined by the frame parser 2024-10-13 13:34:32 +02:00
Klaus Schmidinger
66fea5c9f1 Removed all DEPRECATED_* code 2024-10-13 09:47:18 +02:00
Klaus Schmidinger
285574eeaa Official release of version 2.7.3 2024-10-12 13:32:46 +02:00
Klaus Schmidinger
55cfb057e0 Added vdrrootdir and incdir to vdr.pc 2024-10-11 14:21:04 +02:00
Klaus Schmidinger
b4c538cff7 The Channel+/- keys can now be used to jump between errors while replaying a recording 2024-10-11 14:10:50 +02:00
Klaus Schmidinger
5a626fef9f Fixed expiring of one-time VPS timers in case there is more than one event with the same VPS time 2024-10-11 13:58:11 +02:00
Klaus Schmidinger
2bcd8ba8f3 Fixed handling negative values in cSource::Position() on systems where 'int' is 64 bit 2024-10-09 10:36:16 +02:00
Klaus Schmidinger
2dacc776bd Fixed error checking in case of large PTS discontinuities 2024-10-08 08:46:38 +02:00
Klaus Schmidinger
a91d687a1a Removed defining DEPRECATED_* macros with value 0, because this is the preprocessor's default 2024-10-08 08:09:48 +02:00
Klaus Schmidinger
0d3882d43e Official release of version 2.7.2 2024-09-27 09:15:33 +02:00
Klaus Schmidinger
72ad601328 Added a note about re-generating the index of old recordings with errors 2024-09-27 09:14:23 +02:00
Klaus Schmidinger
2c6fd804f6 Fixed a problem with duplicate events if they are moved to a lower table ID and at the same time get a new event ID 2024-09-26 19:25:41 +02:00
Klaus Schmidinger
c590444b7d Fixed error checking when regenerating the index 2024-09-21 19:18:18 +02:00
Klaus Schmidinger
4805af7915 Increased the bpp of cProgressBar to 4 to handle all different colors 2024-09-21 16:21:08 +02:00
Klaus Schmidinger
171b20a80d Fixed singular when displaying number of errors in the recording info 2024-09-21 10:53:07 +02:00
Klaus Schmidinger
d00ae923ab Edited recordings now show error count of original if there are no error indicators in the index 2024-09-20 21:34:18 +02:00
Klaus Schmidinger
d8ab5dc5c6 Fixed syncing the frame checker to I-frames 2024-09-20 14:21:39 +02:00
Klaus Schmidinger
292af5d4f4 The info file of an edited recording now contains the number of errors in the edited version 2024-09-19 20:21:58 +02:00
Klaus Schmidinger
3d6b31b115 When the index file of a recording is regenerated, errors in the recording are now stored in the index file 2024-09-19 12:06:55 +02:00
Klaus Schmidinger
9e523073aa Errors are now shown as diamond shaped markers in the replay progress display of the default skins 2024-09-19 09:49:02 +02:00
Klaus Schmidinger
32d8e473fb Fixed description of cSkinDisplayReplay::SetRecording() 2024-09-18 11:10:56 +02:00
Klaus Schmidinger
5cd25df60c Recording errors are now marked in the index file 2024-09-18 09:23:07 +02:00
Klaus Schmidinger
52c4816c9c Now distinguishing between frames with errors and completely missing frames 2024-09-17 11:30:28 +02:00
Klaus Schmidinger
6f6b05ffcb The number of errors in a recording now represents the number of broken frames 2024-09-17 09:39:50 +02:00
Klaus Schmidinger
6dd5854b7a Moved error checking from recorder.c to remux.c 2024-09-17 09:31:15 +02:00
Klaus Schmidinger
83425df0b6 Updated the Italian OSD texts 2024-09-16 09:14:41 +02:00
Klaus Schmidinger
82b09eaa8e Silenced a compiler warning with gcc 14.1.0 2024-09-16 09:07:12 +02:00
Klaus Schmidinger
ec5b1aadab Fixed a problem in cSchedule::Sort(), in case hasRunning was true, but there was no event with RunningStatus() >= SI::RunningStatusPausing 2024-09-14 14:17:12 +02:00
Klaus Schmidinger
f786510ba2 Made APIVERSION independent from VDRVERSION to avoid irritation in case only VDRVERSION is incremented 2024-09-12 12:48:40 +02:00
Klaus Schmidinger
f006884e57 Deprecated code is now marked with [[deprecated]] to issue a compile time warning when used 2024-09-09 22:15:59 +02:00
Klaus Schmidinger
c0a005b3cd Fix for compilers that don't like non-constant format strings 2024-09-09 13:39:05 +02:00
Klaus Schmidinger
0c91893643 There will be no more distinction between "developer" and "stable" versions regarding version numbering 2024-09-09 10:58:55 +02:00
Klaus Schmidinger
796da9e0f6 Improved the error message when closing a frontend 2024-09-09 08:53:57 +02:00
Klaus Schmidinger
5d539be071 The '.update' file in the video directory is now created if it doesn't already exist 2024-09-01 20:43:40 +02:00
Klaus Schmidinger
1df138d876 Fixed a crash when deleting a recording that is currently being edited, and then immediately deleting the edited version, too 2024-08-30 20:43:26 +02:00
Klaus Schmidinger
71b0140003 The new SVDRP command 'AUDI' can be used to list the currently available audio tracks and select one of them 2024-08-30 09:55:15 +02:00
Klaus Schmidinger
a33adf365d Changed the error message when trying to attach a player to a primary device without an MPEG decoder 2024-07-16 12:33:31 +02:00
Klaus Schmidinger
8d82b05071 Disabled/removed deprecated code 2024-07-15 14:42:22 +02:00
Klaus Schmidinger
930e3b4200 Official release of version 2.6.9 2024-07-15 09:07:09 +02:00
Klaus Schmidinger
2543f2c486 Added the lines from 'Fixed a timeout in cDvbDevice while tuning after the frontend has been reopened' to cDvbTuner::ProvidesFrontend() 2024-07-14 15:41:01 +02:00
Klaus Schmidinger
d919817c35 Fixed restarting the EPG scan and keeping the frequency of calls to Device->SetPowerSaveIfUnused() low 2024-07-13 20:12:24 +02:00
Klaus Schmidinger
6bbb596968 Fixed setting the editable width in the LCARS skin 2024-07-13 15:25:22 +02:00
Klaus Schmidinger
8aec1974bb Fixed a timeout in cDvbDevice while tuning after the frontend has been reopened 2024-07-13 12:34:42 +02:00
Klaus Schmidinger
b3ad9ec699 Fixed handling of cSkinDisplayMenu::GetTextAreaFont() 2024-07-13 09:12:18 +02:00
Klaus Schmidinger
87410442b6 Fixed a crash in strreplace() for multiple replacements with strings of different lengths 2024-07-10 14:59:45 +02:00
Klaus Schmidinger
305735a886 Official release of version 2.6.8 2024-07-08 18:40:20 +02:00
Klaus Schmidinger
41b7e1546a Added 'lnbPowerTurnedOn = false' to cDvbTuner::ProvidesFrontend() 2024-07-08 18:39:18 +02:00
Klaus Schmidinger
f3972e4795 Implemented power save mode for cDvbDevice 2024-07-08 09:34:33 +02:00
Klaus Schmidinger
e7ea087a6e Unused devices can now be put into a power save mode 2024-07-06 11:19:21 +02:00
Klaus Schmidinger
749ba57dcc Updated the Italian OSD texts 2024-07-02 07:57:42 +02:00
Klaus Schmidinger
0360b0d0e7 The EIT scanner now checks whether there is a proper device before adding a channel to the scan list 2024-06-27 10:49:34 +02:00
Klaus Schmidinger
2b495e0f87 Removed leftover cMenuRecordings::SetPath() 2024-06-25 19:00:06 +02:00
Klaus Schmidinger
32b11e1a53 Added an EPG bugfix for broadcasters who put literal "\n" strings in their EPG 2024-06-21 06:27:20 +02:00
Klaus Schmidinger
db81c07b27 When starting an editing process, VDR now first checks whether there is enough free disk space to take up the edited version of the recording 2024-06-13 09:31:14 +02:00
Klaus Schmidinger
1c2401eb6c Fixed typos 2024-06-11 12:43:25 +02:00
Klaus Schmidinger
5828d347f7 Fixed setting T2 system ID from NIT 2024-05-29 11:13:34 +02:00
Klaus Schmidinger
9c64622718 Fixed a possible access of a deleted object in the EIT scanner 2024-05-19 14:55:57 +02:00
Klaus Schmidinger
f9260d0141 Updated the Italian OSD texts 2024-04-03 08:21:05 +02:00
Klaus Schmidinger
746cdaff01 Official release of version 2.6.7 2024-04-02 09:05:33 +02:00
Klaus Schmidinger
179d5b87fc A device is now always kept occupied if a timer is in VPS margin or needs the transponder 2024-03-29 21:46:50 +01:00
Klaus Schmidinger
51dca45a0c If the current channel is no longer available because of a VPS timer entering the VPS margin, live view now switches to the channel of that timer 2024-03-28 13:21:42 +01:00
Klaus Schmidinger
62ad9b41dd Added a missing initialization 2024-03-28 13:02:42 +01:00
Klaus Schmidinger
8b87a6968a The EIT scan is no longer inhibited if a timer is in VPS margin or needs the transponder 2024-03-10 11:26:54 +01:00
Klaus Schmidinger
faf562fd4e The EIT scan now skips scanList entries if a device is already tuned to that transponder 2024-03-10 11:16:29 +01:00
Klaus Schmidinger
6a09a2fbd6 The EIT scan no longer deletes the scanList if no device was switched in this pass 2024-03-10 10:38:18 +01:00
Klaus Schmidinger
bc32ffe2f9 Fixed logging when a timer has entered the VPS margin 2024-03-08 10:50:06 +01:00
Klaus Schmidinger
ff16bbd777 Logging event status changes now also shows the previous status 2024-03-06 20:16:51 +01:00
Klaus Schmidinger
f7f8a6b131 Improved handling present/following data for VPS timers 2024-03-06 14:37:15 +01:00
Klaus Schmidinger
a3310e2954 The new setup parameters "EPG scan max. channel number" and "EPG pause after scan" can be used to tune the behavior of the EPG scan 2024-03-04 21:14:27 +01:00
Klaus Schmidinger
0b08666310 Updated the Hungarian OSD texts 2024-03-04 15:04:26 +01:00
Klaus Schmidinger
42db3fbee0 The info file of a recording is now re-read if an update of the video directory is triggered, to make sure modifications from other VDRs are adopted 2024-03-04 14:12:37 +01:00
Klaus Schmidinger
bfa25d6276 The primary device no longer starts unnecessary threads if it doesn't have a decoder 2024-03-04 12:26:32 +01:00
Klaus Schmidinger
824c495d33 Added a 15 second grace period before actually stopping a VPS timer 2024-03-03 15:47:09 +01:00
Klaus Schmidinger
561be36958 Adapted "Setup/Miscellaneous/Show channel names with source" to the new handling in cChannel 2024-03-02 21:49:21 +01:00
Klaus Schmidinger
8bd0437497 Modified handling channel names with source to make it thread safe 2024-03-02 16:21:16 +01:00
Klaus Schmidinger
18c9cef1ea Added missing initialization of cChannel::nameSourceMode 2024-03-01 14:33:28 +01:00
Klaus Schmidinger
2c66d57d4b Fixed the move assignment operator to check for self-assignment 2024-02-15 14:57:56 +01:00
Klaus Schmidinger
29200d040e Official release of version 2.6.6 2024-01-25 09:44:48 +01:00
Klaus Schmidinger
385738cadd Fixed possible duplicate component entries in the info of an ongoing recording 2024-01-24 13:24:51 +01:00
Klaus Schmidinger
a2591d6e98 Workaround in detecting frame height for channels with wrong crop parameters 2024-01-23 19:33:45 +01:00
Klaus Schmidinger
fe97a38e77 Fixed handling primary device on headless systems 2024-01-22 12:10:30 +01:00
Klaus Schmidinger
552f5fc4e7 Fixed a typo 2024-01-22 12:09:22 +01:00
Klaus Schmidinger
21d3d489fd Added '/' to the list of fuzzy characters for pattern timers 2024-01-21 10:43:20 +01:00
Klaus Schmidinger
78b7e4e252 Added the total number of errors when logging new recording errors 2024-01-20 20:04:03 +01:00
Klaus Schmidinger
5d984b606e Added the move constructor to cString for better performance 2024-01-20 13:59:55 +01:00
Klaus Schmidinger
88b1e30494 Fixed an unnecessary double display of menu items in the Recordings menu 2024-01-19 12:17:05 +01:00
Klaus Schmidinger
939071bf25 Fixed an unnecessary double display of the current menu item in page up/down 2024-01-19 12:10:47 +01:00
Klaus Schmidinger
655682b5d2 Removed syslog calls in child process after fork() 2024-01-18 13:01:07 +01:00
Klaus Schmidinger
b1418b6bcd Implemented scaling images 2024-01-18 12:04:57 +01:00
Klaus Schmidinger
35c8b3d22c Using a dummy OSD if no OSD provider is available is not considered an error any more 2024-01-18 11:06:45 +01:00
Klaus Schmidinger
e5ae02e3fa Fixed a possible crash in cDevice::StopSectionHandler() 2024-01-18 10:58:39 +01:00
Klaus Schmidinger
f0da21ea13 Fixed height calculation in progress display 2024-01-17 21:15:48 +01:00
Klaus Schmidinger
eb35faaf7d Changed installing config files to handle potentially broken 'cp -n' 2024-01-05 14:16:16 +01:00
Klaus Schmidinger
05f03d6e38 Official release of version 2.6.5 2023-12-30 10:27:34 +01:00
Klaus Schmidinger
0d4284df29 The recording info of the default skins now shows the frame parameters of the recording at the end of the description (if such information is available) 2023-12-29 10:48:40 +01:00
Klaus Schmidinger
cade92cda1 Added the function cRecordingInfo::FrameParams(), which can be used to get a nicely formatted string with all the available frame data 2023-12-29 10:48:25 +01:00
Klaus Schmidinger
f0bbf64da0 Added cString::Append(char) 2023-12-29 10:24:29 +01:00
Klaus Schmidinger
6458f8b581 The frame width, height, scan type and apect ratio of a recording are now stored in the 'info' file under the 'F' tag 2023-12-28 21:23:19 +01:00
Klaus Schmidinger
1770a18598 Fixed broken video data streams on systems without output device when switching live channel to a different transponder while recording 2023-02-21 09:31:47 +01:00
Klaus Schmidinger
5f136032a2 Official release of version 2.6.4 2023-02-17 12:04:45 +01:00
Klaus Schmidinger
63efcf3927 Removed unnecessary empty lines 2023-02-16 17:20:09 +01:00
Klaus Schmidinger
468dc1115e Revised support for kernel based LIRC driver 2023-02-16 17:15:06 +01:00
Klaus Schmidinger
d53e0fd5c3 Fixed unnecessary interruption of ongoing recordings if timers avoided the transfer mode receiver device 2023-02-16 14:53:38 +01:00
Klaus Schmidinger
14b907b01c Fixed a possible crash if an editing process is canceled while the edited recording is being replayed (new solution) 2023-02-15 14:59:25 +01:00
Klaus Schmidinger
e0d87da768 Reverted 'Fixed a possible crash if an editing process is canceled while the edited recording is being replayed' 2023-02-15 14:01:20 +01:00
Klaus Schmidinger
42b584e38d Fixed initializing cDvbPlayerControl (was broken in version 2.6.3) 2022-12-27 15:57:20 +01:00
Klaus Schmidinger
a0f79bdd5f Added a note to vdr.5 about event ids possibly changing when an event moves from one table to another 2022-12-26 13:24:09 +01:00
Klaus Schmidinger
4372d55dd1 Added a note to epg.h about not messing with event ids 2022-12-24 11:37:17 +01:00
Klaus Schmidinger
13672280b6 Fixed symmetry of Begin/EndSegmentTransfer() calls in cEIT::cEIT() 2022-12-23 09:47:23 +01:00
Klaus Schmidinger
5b134cb23e Fixed restoring the volume at program start 2022-12-19 15:13:56 +01:00
Klaus Schmidinger
87cf0b7a3d Updated the Italian OSD texts 2022-12-16 12:17:03 +01:00
Klaus Schmidinger
8b14723e9e Official release of version 2.6.3 2022-12-14 09:38:41 +01:00
Klaus Schmidinger
7fe59548cd Now checking the video directory after setting the user id 2022-12-12 10:27:38 +01:00
Klaus Schmidinger
15f13ac936 Avoiding a zero sized array in cDevice::GetDevice() 2022-12-07 09:38:05 +01:00
Klaus Schmidinger
5b176f97a4 Now avoiding unnecessary processing in cDvbSubtitleConverter::FinishPage() if there are no areas 2022-12-06 16:57:01 +01:00
Klaus Schmidinger
0bb6f87776 Now avoiding the memcpy() call in cGlyph::cGlyph() if the bitmap is empty 2022-12-06 12:30:13 +01:00
Klaus Schmidinger
c06d2389e9 Now avoiding calling poll() in cSectionHandler::Action() if there are no filters 2022-12-06 12:25:08 +01:00
Klaus Schmidinger
548a33c728 Fixed initializing cPictureControl 2022-12-05 15:26:23 +01:00
Klaus Schmidinger
4336b55f4e Fixed initializing cDvbPlayerControl and cTransferControl 2022-12-05 14:45:51 +01:00
Klaus Schmidinger
c12c7378e9 Fixed a possible heap-use-after-free in cDvbTuner::Action() 2022-12-05 14:04:10 +01:00
Klaus Schmidinger
a299d8d348 Added code for the 'qks' audio track 2022-12-01 20:57:12 +01:00
Klaus Schmidinger
c7bf474a42 Fixed a faulty 'Timer still recording' query when canceling an editing job 2022-12-01 13:09:04 +01:00
Klaus Schmidinger
8d65cc6dc0 Fixed generating the index file in the cutter 2022-12-01 12:47:33 +01:00
Klaus Schmidinger
f2b9f0e8dd Fixed a compiler warning 2022-11-30 14:38:46 +01:00
Klaus Schmidinger
30f05ba714 Official release of version 2.6.2 2022-11-30 12:03:17 +01:00
Klaus Schmidinger
76445411a5 Added missing rounding when dividing frequencies in processing the NIT 2022-11-30 12:02:00 +01:00
Klaus Schmidinger
4425918d31 Fixed regenerating the index file of a recording in case it is present, but empty 2022-11-28 14:39:23 +01:00
Klaus Schmidinger
6888ea68b6 Added periodic calls to malloc_trim(0) to reduce memory consumption 2022-11-28 10:44:01 +01:00
Klaus Schmidinger
abb82a2396 Added support for kernel based LIRC driver 2022-11-26 13:37:06 +01:00
Klaus Schmidinger
6192ca81d9 Fixed name and email for Marko Mkel 2022-11-23 14:42:03 +01:00
Klaus Schmidinger
d06c5efa54 Avoiding a compiler warning 2022-11-22 15:53:07 +01:00
Klaus Schmidinger
f859b8d2ae Fixed printing/scanning values for systems where %ld doesn't work for time_t 2022-11-22 14:33:56 +01:00
Klaus Schmidinger
035d5fd5b9 Using the frame rate parsed from the stream, with fall back to determining it from PTS values 2022-11-22 11:35:37 +01:00
Klaus Schmidinger
93d578d9b8 Implemented parsing frame rate and image size for MPEG2, H.264 and H.265 2022-11-22 11:31:39 +01:00
Klaus Schmidinger
d756628297 Added a chapter about locking to PLUGINS.html 2022-11-20 21:38:18 +01:00
Klaus Schmidinger
a4cde807bc Added a missing 'const' to cTimers::GetTimerForEvent() 2022-11-20 10:57:31 +01:00
Klaus Schmidinger
83c9677899 Fixed a possible deadlock in case two SVDRP clients send each other POLL commands at the same time 2022-11-19 15:49:27 +01:00
Klaus Schmidinger
b14ed38a48 Removed some unnecessary locks from SVDRPClientHandler 2022-11-19 15:47:03 +01:00
Klaus Schmidinger
2bf0967a47 Fixed default values for DVB-T 2022-11-15 10:21:55 +01:00
Klaus Schmidinger
7ed306d127 Changed email address of Winfried Khler 2022-11-14 11:14:10 +01:00
Klaus Schmidinger
5a029eb29f Added a warning if an attempt is made to obtain a write lock twice from the same thread 2022-11-13 15:25:52 +01:00
Klaus Schmidinger
230adc8235 Fixed a possible crash if an editing process is canceled while the edited recording is being replayed 2022-11-13 15:23:13 +01:00
Klaus Schmidinger
982a9a5157 Setting the '.timer' file when regenerating the index file 2022-11-13 14:49:08 +01:00
Klaus Schmidinger
c8e4921a0a Now checking for '.timer' file to determine whether a recording is still active 2022-11-06 11:49:31 +01:00
Klaus Schmidinger
786245efe5 Now assuming the lock when removing deleted recordings even if the disk is full 2022-11-04 14:30:01 +01:00
Klaus Schmidinger
74460f22bf Now dropping capabilities after opening terminal 2022-06-01 14:24:57 +02:00
Klaus Schmidinger
a843d03af1 Fixed unexpected calls of the '-r' script when a recording is interrupted and the timer has not yet finished 2022-03-03 14:44:47 +01:00
Klaus Schmidinger
d3f3e856e4 Added UPDATE-2.6.0, which was missing in the official 2.6.0 release 2022-02-09 12:34:09 +01:00
Klaus Schmidinger
be3c6048ed Official release of version 2.6.1 2022-02-02 10:56:43 +01:00
Klaus Schmidinger
2a0222226a Clarified some potentially mistakable code in cSectionHandler::SetStatus() 2022-01-31 21:21:42 +01:00
Klaus Schmidinger
50c3951017 Fixed a possible deadlock in cDevice::DetachAllReceivers() 2022-01-24 16:53:45 +01:00
Klaus Schmidinger
ea1ad945b4 Fixed handling error conditions in the index file 2022-01-24 10:44:21 +01:00
Klaus Schmidinger
8cde8464eb Fixed handling zero bytes in cH264Parser 2022-01-18 14:24:33 +01:00
Klaus Schmidinger
14b108f104 Added some missing "AUTO" values to vdr.5 2022-01-14 10:46:15 +01:00
Klaus Schmidinger
330dbce1e7 Updated the Italian OSD texts 2022-01-14 10:27:26 +01:00
Klaus Schmidinger
adeb6314fb Fixed starting replay after jumping to an editing mark 2022-01-13 21:41:41 +01:00
Klaus Schmidinger
78a09b5926 Removed a TODO - detecting errors was implemented in version 2.5.4 2022-01-13 10:56:01 +01:00
Klaus Schmidinger
d05765c670 Replaced strncpy() with memcpy() in strreplace() to avoid a compiler warning 2021-12-30 14:38:40 +01:00
Klaus Schmidinger
a5a4b72d1c Fixed description of using number keys to toggle weekdays of a timer 2021-12-29 21:06:52 +01:00
Klaus Schmidinger
955b1c914f Official release of version 2.6.0 2021-12-27 13:31:29 +01:00
Klaus Schmidinger
5b28aa7e02 Added entries for backports to version 2.4.8 2021-12-27 13:27:16 +01:00
Klaus Schmidinger
f34a6d66a0 Removed a leftover debugging line 2021-12-25 14:11:39 +01:00
Klaus Schmidinger
104bddc560 Fixed calculating the disk use percentage if there's more than 20TB of recordings 2021-12-24 10:56:47 +01:00
Klaus Schmidinger
e7107b789e Fixed a possible memory leak in creating fonts 2021-12-20 13:19:52 +01:00
Klaus Schmidinger
f2e71eb668 Version 2.5.7 2021-12-20 10:06:37 +01:00
Klaus Schmidinger
f275346ecc Fixed a memory leak in handling the NIT 2021-12-14 21:15:02 +01:00
Klaus Schmidinger
33b47142e4 Fixed unlocking vs. call to EpgHandlers.EndSegmentTransfer() 2021-12-11 20:58:51 +01:00
Klaus Schmidinger
5f3d42bcd8 Added missing '0x09=H.265 video, 0x19 = AC4 audio' to vdr.5 2021-10-16 09:27:11 +02:00
Klaus Schmidinger
3f2dd916c1 Replaced all umlauts in the example channels.conf with their ae, oe, ue substitutes to avoid problems on UTF-8 systems 2021-07-26 12:39:42 +02:00
Klaus Schmidinger
0d50ec57f5 Version 2.5.6 2021-07-02 08:58:59 +02:00
Klaus Schmidinger
7301f2de08 The Recordings menu now marks recordings with errors, and the number of errors (if any) is displayed in the recording's Info menu 2021-07-01 15:40:46 +02:00
Klaus Schmidinger
8c7d387e86 Fixed triggering the PAT filter 2021-06-21 20:13:55 +02:00
Klaus Schmidinger
6c5a448dec Fixed deleting the edited recording in case of an error 2021-06-21 15:30:16 +02:00
Klaus Schmidinger
a84f9a8e19 Improved responsiveness in cSectionHandler::Action() 2021-06-20 10:27:19 +02:00
Klaus Schmidinger
545613e0e7 When checking whether a recording has already been made, recording names are now compared case insensitive 2021-06-20 10:03:28 +02:00
Klaus Schmidinger
ac4da6e380 Fixed a possible access to characters after the terminating zero of strings in cDoneRecordings::Contains(), in case there are fuzzy characters at the end of a string 2021-06-19 15:34:38 +02:00
Klaus Schmidinger
4d5cbaf57d If an error occurs while recording, the respective entry in the list of recordings is now updated immediately 2021-06-19 14:21:16 +02:00
Klaus Schmidinger
a4a2466bf4 Fixed restarting PMT pids after starting a recording on the currently viewed channel 2021-06-11 09:38:38 +02:00
Klaus Schmidinger
a0cdfc432a Version 2.5.5 2021-06-10 09:59:45 +02:00
Klaus Schmidinger
60c858689b Fixed handling incomplete multi-packet CAT 2021-06-09 09:42:15 +02:00
Klaus Schmidinger
9686a9b474 Removed unused declaration of cDvbTuner::SetFrontendType() 2021-06-09 09:12:25 +02:00
Klaus Schmidinger
0f6265a97f Fixed flushing old data from the section handler 2021-06-08 15:10:51 +02:00
Klaus Schmidinger
7b1c097958 No longer permanently looping through PMT PIDs, which caused problems with some SatIP receivers 2021-06-08 14:57:26 +02:00
Klaus Schmidinger
58e21d8e37 Now using __cplusplus instead of DISABLE_TEMPLATES_COLLIDING_WITH_STL, and using std::min(), std::max() and std::swap() if available 2021-05-26 13:37:53 +02:00
Klaus Schmidinger
e1f04cd6fa Added missing initialization of cRecorder::lastErrors 2021-05-25 20:14:06 +02:00
Klaus Schmidinger
7775698bac The error counter of a recording is now copied as is when editing a recording 2021-05-25 20:09:29 +02:00
Klaus Schmidinger
8f52603665 cRecordingInfo::Errors() now returns -1 for old recordings; added a missing 'const' 2021-05-23 15:03:17 +02:00
Klaus Schmidinger
c40fb4b4aa Version 2.5.4 2021-05-21 15:09:34 +02:00
Klaus Schmidinger
161fa8ead4 The default for DEPRECATED_SKIN_SETITEMEVENT has been set to 0 2021-05-21 13:03:42 +02:00
Klaus Schmidinger
115eb9fdb4 The macro DEPRECATED_GETBITMAP and the related code has been removed 2021-05-21 12:54:08 +02:00
Klaus Schmidinger
b7112ece6c The default for DEPRECATED_SETCURRENTCHANNEL has been set to 0 2021-05-21 12:51:16 +02:00
Klaus Schmidinger
f7c8f582ea The macro DEPRECATED_VDR_CHARSET_OVERRIDE and the related code has been removed 2021-05-21 12:43:18 +02:00
Klaus Schmidinger
ada85b693e The 'Edit path' dialog now also shows the total size of all recordings in that path 2021-05-21 10:41:46 +02:00
Klaus Schmidinger
a1a8c5d94c Added code for the 'qad' audio track 2021-05-21 09:50:57 +02:00
Klaus Schmidinger
505bcee926 The transponder value of channels is now cached 2021-05-21 09:38:34 +02:00
Klaus Schmidinger
c02c081d91 The cFile class has been partially deprecated 2021-05-20 10:13:43 +02:00
Klaus Schmidinger
c8566fab77 Removed 'register' from libsi/util.c to avoid a warning with ISO-C++17 2021-05-19 11:55:00 +02:00
Klaus Schmidinger
54c4e69299 Removed the macros __STL_CONFIG_H, _STL_ALGOBASE_H and _MOVE_H from tools.h 2021-05-19 11:50:24 +02:00
Klaus Schmidinger
31b87544f1 Recordings are now checked for errors 2021-05-19 11:22:20 +02:00
Klaus Schmidinger
cd3cda2654 Fixed cTsPayload::AtPayloadStart() to ignore TS packets from other PIDs 2021-05-11 20:47:31 +02:00
Klaus Schmidinger
c98fdd9120 Fixed a typo 2021-05-03 14:06:12 +02:00
Klaus Schmidinger
10ffd08c82 Fixed a possible crash in the Schedule menu, in case Setup.EPGLinger is 0 2021-04-29 09:19:58 +02:00
Klaus Schmidinger
4a199fe4ac Now using a separate fixed value for internal EPG linger time 2021-04-28 20:44:56 +02:00
Klaus Schmidinger
98fa6206ac Version 2.5.3 2021-04-20 14:25:33 +02:00
Klaus Schmidinger
ce23ba64bd Deleting expired timers is now triggered immediately after the timers are modified 2021-04-20 13:22:37 +02:00
Klaus Schmidinger
02c668a6a9 EXPIRELATENCY now only applies to VPS timers 2021-04-20 09:50:02 +02:00
Klaus Schmidinger
9de337d2ee The new functions cTimer::Start/StopTimeEvent() are now used in the LCARS skin to display the start/stop times of timers in the main menu 2021-04-18 14:56:40 +02:00
Klaus Schmidinger
fa8c7c35b5 Fixed the timer indicator in the Schedule menu in case an event is already over, but the timer is still recording 2021-04-17 09:44:01 +02:00
Klaus Schmidinger
3d13eb002f Now making sure that spawned timers with reduced start/stop margins actually record with the full margins 2021-04-16 16:26:47 +02:00
Klaus Schmidinger
b2fb654bb3 To avoid problems with very short events, non-VPS pattern timers now spawn timers for all matching events that would start while the first one is still recording 2021-04-13 13:54:00 +02:00
Klaus Schmidinger
cd834c79ba Fixed dropping outdated events 2021-04-13 13:35:17 +02:00
Klaus Schmidinger
65aafacd8e Now adjusting spawned timers before setting events to timers 2021-04-10 11:32:50 +02:00
Klaus Schmidinger
ebd92dcd31 Fixed logging the old timer data in cTimer::AdjustSpawnedTimer() 2021-04-10 11:32:50 +02:00
Klaus Schmidinger
0003d6391c When spawning pattern timers, the new function cTimers::GetTimerForEvent() is now used to check whether a matching event already has a local timer 2021-04-10 10:09:50 +02:00
Klaus Schmidinger
4e52547a59 cTimer::TriggerRespawn() now only acts on local timers 2021-04-06 14:25:05 +02:00
Klaus Schmidinger
d3755c92d7 Version 2.5.2 2021-04-06 10:04:24 +02:00
Klaus Schmidinger
d536cf0947 No longer switching devices for pattern timers 2021-04-06 10:00:27 +02:00
Klaus Schmidinger
19a0e3cda7 Fixed MakePatternFileName() in case the event doesn't yet have a short text 2021-04-06 09:50:30 +02:00
Klaus Schmidinger
7fb13b3cbf Fixed handling the timer counter in cSchedule::DelEvent() 2021-04-06 09:01:26 +02:00
Klaus Schmidinger
23d986657a Spawned timers that don't use VPS now automatically adjust their start/stop times to changes in the respective event's times 2021-04-06 08:48:35 +02:00
Klaus Schmidinger
8f1419fff5 The margins for timer recordings are now always limited to the duration of the previous and next event 2021-04-04 13:38:13 +02:00
Klaus Schmidinger
b80c22e9c4 Improved handling EPG data from the EIT tables 2021-04-04 11:06:30 +02:00
Klaus Schmidinger
f672fe90c1 Fixed scaling subtitles with anti-aliasing 2021-03-17 15:24:34 +01:00
Klaus Schmidinger
3d55d3045e Decreased the scrambling timeout for CAMs known to decrypt a certain channel 2021-03-17 10:59:36 +01:00
Klaus Schmidinger
7ffc1a5efe Made checking for done recordings more tolerant 2021-03-17 10:55:43 +01:00
Klaus Schmidinger
36a833053b Improved cSectionSyncer 2021-03-16 15:10:54 +01:00
Klaus Schmidinger
ad35c9c2d3 Added some missing user command calls for copying, renaming and moving recordings 2021-01-19 20:38:28 +01:00
Klaus Schmidinger
1b1465a677 Now making sure a spawned timer only fully overlaps the given event 2021-01-19 13:21:51 +01:00
Klaus Schmidinger
2f6ce68ca7 Fixed setting the 'title' of a recording's info to the recording's name if there is no info file 2021-01-18 13:35:16 +01:00
Klaus Schmidinger
dee1225fa4 Made the functions cRecordingInfo::SetData() and cRecordingInfo::SetAux() public 2021-01-18 12:55:47 +01:00
Klaus Schmidinger
d78d6fba7e Spawned timers are now preferred over pattern timers in the Schedule menu 2021-01-15 13:52:40 +01:00
Klaus Schmidinger
80bdc90650 Now explicitly triggering respawning of pattern timers 2021-01-14 10:29:05 +01:00
Klaus Schmidinger
c402d57809 Increased the number of possible modulation systems in cDevice::GetDevice() 2021-01-11 10:36:05 +01:00
Klaus Schmidinger
f1836af0b0 Fixed VPS handling when spawning a pattern timer, in case Setup.UseVps is false 2021-01-07 16:00:17 +01:00
Klaus Schmidinger
eebcc57079 Fixed initializing the cChannel::schedule pointer after reading EPG data with PUTE 2021-01-04 09:05:26 +01:00
Klaus Schmidinger
cbc04d73b8 Added entries for backports to version 2.4.7 2021-01-02 15:37:57 +01:00
Klaus Schmidinger
be9eff0fad Fixed handling $(PKG_CONFIG) in newplugin 2021-01-02 14:32:20 +01:00
Klaus Schmidinger
3f3e47d280 Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is given 2021-01-01 21:23:00 +01:00
Klaus Schmidinger
40ca081ff4 Using strgetlast() in more places 2021-01-01 15:26:27 +01:00
Klaus Schmidinger
c46fd1ff5b The Makefile now makes sure the 'x' bit of Doxyfile.filter is set before calling doxygen 2020-12-31 11:15:11 +01:00
Klaus Schmidinger
55b237dbe8 Fixed strreplace() to handle NULL strings 2020-12-29 21:40:29 +01:00
Klaus Schmidinger
2b3556b460 Implemented "Pattern Timers" 2020-12-26 15:49:01 +01:00
Klaus Schmidinger
d2e0087c4e Official release of version 2.4.6 2020-12-22 17:23:51 +01:00
Klaus Schmidinger
9a650a4772 Fixed convertCharacterTable() in case iconv_open() fails 2020-12-19 14:41:41 +01:00
Klaus Schmidinger
f4739f89bf Whitespace cleanup 2020-12-18 23:02:47 +01:00
Klaus Schmidinger
7ade54dfd7 Fixed a compiler warning 2020-12-18 14:51:57 +01:00
Klaus Schmidinger
45fde332a0 Fixed initializing tmpbuf in ExtendedEventDescriptors::getText() 2020-12-17 12:52:57 +01:00
Klaus Schmidinger
82cc5c76a4 Improved handling missing VDRPluginDestroyer() 2020-12-16 11:54:06 +01:00
Klaus Schmidinger
67a4ba4228 Fixed error handling when loading a plugin 2020-12-13 10:56:36 +01:00
Klaus Schmidinger
79a3607d0c Avoiding a lengthy lock on the Channels list when starting a recording 2020-12-12 22:01:01 +01:00
Klaus Schmidinger
dffeabbacb Fixed PMT handling in case locking the Channels list times out 2020-12-12 10:31:52 +01:00
Klaus Schmidinger
9fa7de2036 Fixed a bug in handling shared PMTs, where after the first pass not all SIDs of a PMT pid were checked any more 2020-12-09 21:42:26 +01:00
Klaus Schmidinger
bacc873896 Added initialization of cDvbFrontend::frontendInfo 2020-12-05 15:48:40 +01:00
Klaus Schmidinger
375d25627d Fixed generating the HashId in cEIT::cEIT() 2020-11-28 21:45:05 +01:00
Klaus Schmidinger
56e2ed2628 Fixed "read incomplete section" errors 2020-11-24 21:19:49 +01:00
Klaus Schmidinger
ad55da4ef9 Fixed possible compilation errors with libjpeg 2020-11-22 13:32:05 +01:00
Klaus Schmidinger
272231467a Fixed parsing the '-l' command line option 2020-11-20 13:49:58 +01:00
Klaus Schmidinger
6cb818c7ad Fixed allocating memory for cImage 2020-11-16 15:53:53 +01:00
Klaus Schmidinger
c23547c4ca Fixed a crash in case an error occurs when setting a remote timer 2020-11-06 13:13:05 +01:00
Klaus Schmidinger
0468b38ff3 Fixed an unnecessary double call to Display() in cMenuRecording::RefreshRecording() 2020-11-03 22:12:38 +01:00
Klaus Schmidinger
ebbc562aab Fixed multiple recording entries in case a recording is started during the initial reading of the video directory 2020-11-01 10:29:07 +01:00
Klaus Schmidinger
f387bb5e77 Now initializing the status variable in cDvbTuner::GetFrontendStatus() and cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this 2020-10-16 13:58:45 +02:00
Klaus Schmidinger
c5461ffd9f Now checking for an empty command in cDvbTuner::GetSignalStats() to avoid a possible error message 2020-10-16 13:50:36 +02:00
Klaus Schmidinger
8c1c92bff6 Added checking the symbol rate to cDvbTuner::IsTunedTo(), which apparently got lost in version 1.7.13 2020-10-16 13:42:13 +02:00
Klaus Schmidinger
36be6abfbd Increased the size of the TS buffer to 16MB, to have more reserve when recording several HD programmes 2020-10-15 10:16:38 +02:00
Klaus Schmidinger
f24e93ade1 Added test cases for alignment of semi-circles 2020-10-14 20:32:41 +02:00
Klaus Schmidinger
1a6a518f49 Fixed alignment of semi-circles in case of odd sizes 2020-10-13 13:47:10 +02:00
Klaus Schmidinger
fc7ca12edd Implemented anti-aliasing for cPixmap::DrawEllipse() 2020-10-12 13:54:44 +02:00
Klaus Schmidinger
bbd36d0610 Implemented anti-aliasing for cPixmap::DrawSlope() 2020-09-29 14:09:26 +02:00
Klaus Schmidinger
eebe7c798a Fixed several typos 2020-09-16 13:48:33 +02:00
Klaus Schmidinger
76a7bed575 Fixed a possible invalid lock sequence in cMenuTimers::OnOff() 2020-09-16 13:35:30 +02:00
Klaus Schmidinger
46b480c798 Fixed checking the return value of the Open() call in cFileName::SetOffset() 2020-09-16 13:30:59 +02:00
Klaus Schmidinger
b4a6c36215 Fixed handling newline characters in ci.c's CopyString() 2020-08-17 10:26:18 +02:00
Klaus Schmidinger
121f348379 Updated the Italian OSD texts 2020-08-16 13:34:23 +02:00
Klaus Schmidinger
16fb7967ff Official release of version 2.4.4 2020-08-02 08:55:08 +02:00
Klaus Schmidinger
88a2ef45ee Fixed a possible 'invalid lock sequence' when switching to an unavailable channel with the main menu open 2020-07-13 08:16:41 +02:00
Klaus Schmidinger
dd6077eb90 Implemented handling multi packet CATs with MTD 2020-07-10 09:06:21 +02:00
Klaus Schmidinger
568ca0e773 Fixed handling inactive shared CA pids 2020-07-01 15:16:21 +02:00
Klaus Schmidinger
fa5c9f764a Now setting currentDisplayChannel = NULL before calling cStatus::MsgOsdClear() in ~cDisplayChannel(), to avoid possible problems in case a plugin calls IsOpen() 2020-07-01 15:05:17 +02:00
Klaus Schmidinger
5193fd9d99 Improved deleting plugins in case the plugin uses its own memory management 2020-06-29 09:29:06 +02:00
Klaus Schmidinger
a526eee165 Fixed the 'else if' branch in cDevice::GetDeviceForTransponder(), which hasn't been active since version 1.7.29 2020-06-27 10:24:46 +02:00
Klaus Schmidinger
848c65fe4f Added CRC check of the CAT in cCaPidReceiver::Receive() 2020-06-27 10:05:56 +02:00
Klaus Schmidinger
488a13543e Now adding CPPFLAGS to CXXFLAGS to allow extra preprocessor flags to be given when doing make 2020-06-27 09:13:04 +02:00
Klaus Schmidinger
3cc0abf6ea Adjusted device selection in GetDeviceForTransponder() to that in GetDevice() 2020-06-25 13:46:16 +02:00
Klaus Schmidinger
35b95c2b00 Added a comment about the semantics of cTimeMs::Set() 2020-06-23 15:52:29 +02:00
Klaus Schmidinger
7630f579e1 Added support for HEVC-video and AC-4-audio 2020-06-23 09:27:09 +02:00
Klaus Schmidinger
8bd2ed1494 Fixed a typo in svdrp.c 2020-06-22 20:59:49 +02:00
Klaus Schmidinger
f5dba03447 Made the call to pkg_config configurable via the PKG_CONFIG macro, which is necessary for cross-building VDR 2020-06-22 15:08:46 +02:00
Klaus Schmidinger
73bcd869dc Added optional verbose output to the libsi Makefile 2020-06-22 14:31:10 +02:00
Klaus Schmidinger
1dabb9b8c5 Changed the country code in the generated ParentalRatingDescriptor from 'DEU' to '902' to make it valid for all countries 2020-06-22 12:15:52 +02:00
Klaus Schmidinger
5d39daa13c Added handling shared PMT pids and multiple PMT sections 2020-06-19 12:19:15 +02:00
Klaus Schmidinger
54cf10588d Added support for detecting 'advanced codec digital radio sound service' 2020-06-16 14:50:07 +02:00
Klaus Schmidinger
52826ec4c1 Added support for detecting new channels broadcast in HEVC 2020-06-16 14:41:32 +02:00
Klaus Schmidinger
ba9ccc12a5 Added cMtdHandler::StopDecrypting() 2020-06-16 14:33:32 +02:00
Klaus Schmidinger
67ea2163f4 Added cMtdCamSlot::TsPostProcess() 2020-06-16 14:25:43 +02:00
Klaus Schmidinger
1e1cd4554e Added codes for more languages and special audio tracks 2020-06-15 15:57:32 +02:00
Klaus Schmidinger
319df53e87 Added failsafe defaults for 'make LCLBLD=1' to the Makefile 2020-06-15 13:07:55 +02:00
Klaus Schmidinger
8e1be83b56 Revised 'Fixed a possible deadlock when detaching a receiver from a device' from version 2.3.9, which sometimes caused a black screen when switching channels 2020-06-12 09:28:44 +02:00
Klaus Schmidinger
5cfa736ad0 Fixed memory handling in cString::Append() 2020-06-10 20:52:10 +02:00
Klaus Schmidinger
8a282ef267 Added a device hook for detecting whether a device provides EIT data 2020-06-10 14:52:43 +02:00
Klaus Schmidinger
709055980e Fixed the size of cChannel::dtypes[] 2020-06-10 14:00:36 +02:00
Klaus Schmidinger
576e21f2fd Fixed credits for Winfried Khler 2020-06-10 13:51:58 +02:00
Klaus Schmidinger
e6bf3b6975 Added a missing '-D' to the 'plugins' target of the Makefile 2020-06-03 12:25:09 +02:00
Klaus Schmidinger
196785ff05 Fixed a possible crash in case replay is started and stopped in rapid sequence 2020-05-18 16:47:29 +02:00
Klaus Schmidinger
dd9dd76722 The isSingleByte parameter in the call to getCharacterTable() is deprecated and only present for backwards compatibility 2020-05-15 12:32:51 +02:00
Klaus Schmidinger
aae02a43da Modified setting system and override character tables 2020-05-15 11:31:40 +02:00
Klaus Schmidinger
ab308bea31 Fixed handling multi part ExtendedEventDescriptors where only the first part contains information about the character table 2020-05-14 21:21:03 +02:00
Klaus Schmidinger
5f3ad4fc9b Added the language code for Bulgarian 2020-05-11 11:04:29 +02:00
Klaus Schmidinger
f031563400 Improvements to the skincurses plugin 2020-05-11 10:23:15 +02:00
Klaus Schmidinger
d354d01af7 Fixed 'Changes for ncurses version 6' 2020-05-10 09:04:31 +02:00
Klaus Schmidinger
35b936200f Fixed dropping capabilities in case cap_sys_time is not available 2020-05-07 10:45:41 +02:00
Klaus Schmidinger
e6c450b346 Added missing '<...>' to the 'file' parameter in the help text of PUTE 2020-05-06 11:51:33 +02:00
Klaus Schmidinger
c813de133b The SVDRP command DELC now also accepts a channel id 2020-05-05 15:37:49 +02:00
Klaus Schmidinger
abe61dc903 Fixed wrong/missing credits for Jrgen Schneider (there's two of them) 2020-05-04 13:22:58 +02:00
Klaus Schmidinger
f624a082ad Fixed initializer 2020-05-04 13:02:14 +02:00
Klaus Schmidinger
38703cbf5d Updated email address of Uwe Scheffler 2020-05-04 12:47:40 +02:00
Klaus Schmidinger
930c2cd2eb Fixed compatibility with current versions of glibc 2020-05-04 12:28:31 +02:00
Klaus Schmidinger
225c495632 Fixed a typo 2020-05-04 11:40:44 +02:00
Klaus Schmidinger
5705ffbd2b Now retuning if the received transponder's SDT doesn't contain the expected values for NID and TID 2020-05-04 08:50:20 +02:00
Klaus Schmidinger
6e0f5287ea Fixed moving channels between number groups in SVDRP's MOVC command and the Channels menu, in case a channel is moved to a higher number and into a numbered group 2020-04-11 09:22:05 +02:00
Klaus Schmidinger
f63a066b98 Fixed typos 2020-03-29 15:53:48 +02:00
Klaus Schmidinger
6ff6db23bf Removed a wrong comment 2020-03-29 15:50:22 +02:00
Klaus Schmidinger
2af25bc58e Official release of version 2.4.1 2019-06-16 09:15:44 +02:00
Klaus Schmidinger
2b39c192a6 Fixed handling the S2SatelliteDeliverySystemDescriptor for transponders broadcasting in "backwards compatibility mode" according to ETSI EN 300 468 2019-05-31 13:25:00 +02:00
Klaus Schmidinger
0873d14614 If cSkins::Message() is called from a background thread and Type is not mtStatus, the call is now automatically forwarded to QueueMessage() 2019-05-29 16:44:55 +02:00
Klaus Schmidinger
712523f004 Fixed a wrong variable name in cFileName::cFileName() 2019-05-29 14:23:40 +02:00
Klaus Schmidinger
c2634a7ccf Fixed inconsistent behavior in case only certain devices are used (selected by the '-D' option) 2019-05-28 15:54:22 +02:00
Klaus Schmidinger
e8ae4afd09 Increased PLAYERBUFSIZE to (MAXFRAMESIZE * 5) to avoid stuttering replay under heavy system load, and to better document that this buffer size is related to the maximum frame size 2019-05-27 14:15:06 +02:00
Klaus Schmidinger
96aa4cacae The default maximum size of a cPixmap has been raised to the maximum possible value 2019-05-24 21:28:35 +02:00
Klaus Schmidinger
4242fa7f22 Fixed asserting free disk space in case there is no local timer currently recording 2019-05-23 10:00:48 +02:00
Klaus Schmidinger
abdab18807 Added a workaround for broadcasters who set an event to status "not running" where this is inappropriate; implicitly setting events to "not running" is now also logged 2019-05-20 09:55:22 +02:00
Klaus Schmidinger
12d8ef5a21 Fixed handling repeat function for keyboards 2019-05-13 13:41:29 +02:00
Klaus Schmidinger
6f95a495ab Fixed a compiler warning in cIndexFile::ConvertToPes() and added __attribute__((packed)) to tIndexPes and tIndexTs 2019-05-07 09:26:40 +02:00
Klaus Schmidinger
99dad019cc Fixed handling remote timers in case the response to LSTT is '550 No timers defined' 2019-05-06 15:14:04 +02:00
Klaus Schmidinger
ff2af3dffd Fixed a possible invalid lock sequence if the main menu is open and the user switches to a channel that is currently not available, using the Channel+/- keys 2019-05-06 13:14:23 +02:00
Klaus Schmidinger
294452cd43 Fixed a compiler warning and a possible buffer overflow in cCiMMI::SendAnswer() 2019-05-06 12:03:59 +02:00
Klaus Schmidinger
820c22775c Fixed a compiler warning in ExchangeChars() 2019-05-06 11:30:03 +02:00
Klaus Schmidinger
16f18cbce8 Fixed updating the checksum in the CA table after mapping EMM PIDs for MTD 2019-05-05 18:35:15 +02:00
Klaus Schmidinger
0f10c8824c Fixed mapping SIDs in MTD 2019-05-05 13:59:03 +02:00
Klaus Schmidinger
c5277df361 Fixed the install target in case of multiple jobs 2019-05-05 13:35:56 +02:00
Klaus Schmidinger
b83d29764e Now touching the .update file in the video directory after removing deleted recordings 2019-03-19 16:02:28 +01:00
Klaus Schmidinger
dd13070260 Fixed handling shared CA pids 2019-03-19 14:58:06 +01:00
Klaus Schmidinger
bd3b6f17e4 Fixed updating the cursor position when switching channels with the Channel+/- keys while the Channels menu is open 2019-03-18 16:20:17 +01:00
Klaus Schmidinger
1fa861ecb9 Fixed dropping capabilities in case cap_sys_time is not available 2019-03-18 13:39:56 +01:00
Klaus Schmidinger
2cf207b53e Fixed a copy/paste error 2019-03-18 10:29:09 +01:00
Klaus Schmidinger
4bd6d6559f Fixed sorting recordings alphabetically 2019-03-17 16:15:51 +01:00
Klaus Schmidinger
4b3fec660a Fixed processing SI::T2DeliverySystemDescriptor when typecasting it over an SI::ExtensionDescriptor 2019-03-15 16:28:16 +01:00
Klaus Schmidinger
dc160ab570 No longer logging tuning timeouts for transponders that are announced in the NIT but are not currently broadcasting 2019-03-15 14:51:22 +01:00
Klaus Schmidinger
4c7efcbd02 Added support for EAC3 audio from other sources 2019-03-15 13:10:33 +01:00
Klaus Schmidinger
27c0fffe7c Fixed triggering the SDT filter when parsing the NIT 2019-03-12 14:02:53 +01:00
Klaus Schmidinger
df8f5f4800 Fixed processing transponder data in the NIT 2019-03-12 13:05:33 +01:00
Klaus Schmidinger
71461c6082 Changes for ncurses version 6 2019-03-12 12:26:05 +01:00
Klaus Schmidinger
61ea56a1bd Fixed processing the last entry in the scan list of the EIT scanner 2019-03-12 11:47:36 +01:00
Klaus Schmidinger
235c652648 Fixed shutdown after user inactivity in case a plugin is keeping the OSD open (cont'd) 2019-03-12 10:01:16 +01:00
Klaus Schmidinger
61c00ccae5 Fixed handling PATs that contain no PMTs 2019-03-11 13:21:17 +01:00
Klaus Schmidinger
084f51c7db Fixed opening the UDP port in peerdemo 2019-03-11 10:28:22 +01:00
Klaus Schmidinger
18bb52554f Fixed accessing the actual frontend on multi frontend devices 2019-03-10 12:10:01 +01:00
Klaus Schmidinger
b9162ad7bd Reverted the change "The EIT filter no longer parses data from "other TS"..." 2018-11-15 16:38:14 +01:00
Klaus Schmidinger
5300077109 Rearranged some code for clarity - no functional changes 2018-10-29 12:22:11 +01:00
Klaus Schmidinger
cbc77f1f25 Added support for DVB devices with more than one frontend that all use the same dvr and demux 2018-10-29 12:16:35 +01:00
Klaus Schmidinger
bcee8ad43d Now deactivating MTD support if a non MCD capable CAM is inserted after removing a previously used CAM that is MCD capable 2018-09-23 10:21:12 +02:00
Klaus Schmidinger
336822f672 Fixed switching through encrypted channels with the Up/Down keys 2018-07-16 09:33:21 +02:00
Klaus Schmidinger
5543f13051 Fixed shutdown after user inactivity in case a plugin is keeping the OSD open 2018-07-16 08:55:15 +02:00
Klaus Schmidinger
30eb01ef37 Fixed locking the Channels list in cDisplayChannel, where the lock was still held when Flush() was called (cont'd) 2018-05-27 09:55:30 +02:00
Klaus Schmidinger
d380b57d28 Fixed locking the Channels list in cDisplayChannel, where the lock was still held when Flush() was called 2018-05-06 09:41:03 +02:00
Klaus Schmidinger
820a0ddb8a Fixed a possible invalid locking sequence in case a remote timer handling error message is displayed on the OSD and the skin tries to lock the Recordings or DeletedRecordings list in its Flush() function 2018-04-28 12:17:22 +02:00
Klaus Schmidinger
d84ec07ff6 Fixed handling the tfRecording flag in the SVDRP commands MODT and UPDT 2018-04-19 09:45:08 +02:00
Klaus Schmidinger
c48d5242ce Official release of version 2.4.0 2018-04-15 08:32:25 +02:00
Klaus Schmidinger
c057e057f9 Fixed a high CPU load during replay with active progress display 2018-04-14 10:24:41 +02:00
Klaus Schmidinger
fb03134411 Updated the French OSD texts 2018-04-14 08:49:04 +02:00
Klaus Schmidinger
732ba55126 channels.conf 2018-04-12 13:18:28 +02:00
Klaus Schmidinger
49d54df7d0 Adjusted version numbers and dates 2018-04-10 17:20:58 +02:00
Klaus Schmidinger
c89c83f5c1 Updated the Hungarian OSD texts 2018-04-10 08:39:00 +02:00
Klaus Schmidinger
3e83390fb9 Updated the Italian OSD texts 2018-04-09 09:51:04 +02:00
Klaus Schmidinger
0f9b4b6fd5 Added a missing initialization of osdState in cDisplayChannel::cDisplayChannel(eKeys FirstKey) 2018-04-09 09:21:27 +02:00
Klaus Schmidinger
bac9c65515 Fixed scaling bitmaps with very small factors 2018-04-06 08:51:16 +02:00
Klaus Schmidinger
5b9b09a90e Fixed updating the Schedule menu after editing a timer 2018-04-05 14:18:55 +02:00
Klaus Schmidinger
43544435fa Fixed sluggish setting of editing marks and a jumping progress display with very short recordings 2018-04-03 08:00:12 +02:00
Klaus Schmidinger
ac30924cdf Updated the Finnish OSD texts 2018-04-02 09:06:10 +02:00
Klaus Schmidinger
675e10d6fb Updated the Macedonian OSD texts 2018-04-02 09:01:49 +02:00
Klaus Schmidinger
77f438ed85 The EIT filter no longer parses data from "other TS" 2018-03-31 13:40:32 +02:00
Klaus Schmidinger
9dea1502eb Rephrased the note about the REMOTE macro 2018-03-25 13:11:38 +02:00
Klaus Schmidinger
e1a71ce7cc Fixed setting the initial offset of the cursor in a list menu 2018-03-24 11:58:00 +01:00
Klaus Schmidinger
53aea17949 Fixed a possible discrepancy of the primary device number in the LSTD and PRIM commands 2018-03-24 09:58:03 +01:00
Klaus Schmidinger
1f16ada70c Fixed some warnings from g++ 7.2.0 regarding fixed buffer sizes 2018-03-23 15:47:26 +01:00
Klaus Schmidinger
b539134e54 Fixed (not) saving the 'cam.data' file in case VDR stops early during startup due to some error 2018-03-19 16:39:58 +01:00
Klaus Schmidinger
6180dcce45 Version 2.4.0 2018-03-19 15:06:46 +01:00
Klaus Schmidinger
040f842e6c Fixed processing SVDRP client responses in case the caller doesn't want the actual response strings 2018-03-19 12:32:16 +01:00
Klaus Schmidinger
5cb66f8090 Updated the Ukrainian OSD texts 2018-03-19 10:47:53 +01:00
Klaus Schmidinger
a2b6b142d8 Modified cMenuTimers::Delete() to avoid a lengthy lock on the Timers list while prompting the user 2018-03-18 12:03:46 +01:00
Klaus Schmidinger
55408b73ca Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and T2DeliverySystemDescriptor 2018-03-18 10:52:21 +01:00
Klaus Schmidinger
f4b60f0b68 Made the input buffer in cSVDRPClient dynamic 2018-03-18 10:43:53 +01:00
Klaus Schmidinger
a1af84f29a Added missing <name> to help for POLL 2018-03-17 13:00:19 +01:00
Klaus Schmidinger
0e1956bb29 Fixed a typo 2018-03-17 12:17:37 +01:00
Klaus Schmidinger
64e8a34281 Commented out the logging in cMarks::Align() 2018-03-17 10:56:13 +01:00
Klaus Schmidinger
043929d850 Fixed a possible race condition with CONN vs. LSTT 2018-03-17 10:07:19 +01:00
Klaus Schmidinger
af3cb1c9c3 Improved handling VPS timers to better react to EPG changes during an ongoing recording 2018-03-11 13:19:30 +01:00
Klaus Schmidinger
c6796ac6df Removed sending the SVDRP command UPDR to peer VDRs whenever a change is made to the recordings in the video directory 2018-03-09 15:33:27 +01:00
Klaus Schmidinger
6b4911c6a2 Making sure the Schedules menu has a proper title, even if it is empty 2018-03-09 15:08:45 +01:00
Klaus Schmidinger
ec0e368a7f Handling SVDRP commands case insensitive 2018-03-09 10:49:48 +01:00
Klaus Schmidinger
1275de1b07 Now writing the info file before attaching the recorder to the device, to make sure it is present when the recorder needs to update the fps value 2018-03-08 17:03:51 +01:00
Klaus Schmidinger
746ce7d406 Fixed keeping the offset of the list cursor in case it is at the very top of the visible part of the list 2018-03-06 10:38:18 +01:00
Klaus Schmidinger
bb4b6901ad Fixed removing a cStateKey from a cStateLock 2018-03-05 22:40:12 +01:00
Klaus Schmidinger
a7fdd3c165 When making modifications to remote timers, the local VDR no longer sends a POLL to all remote VDRs 2018-03-05 15:49:20 +01:00
Klaus Schmidinger
1f9832b449 Assigning events to timers no longer triggers sending a POLL to all peer VDRs 2018-03-04 14:15:07 +01:00
Klaus Schmidinger
75648e80cf Modified cStateLock's SetExplicitModify() and IncState() 2018-03-04 11:31:21 +01:00
Klaus Schmidinger
8a7540321d Disabled the use of posix_fadvise() when reading 2018-03-03 19:35:31 +01:00
Klaus Schmidinger
adc7056c9e Fixed a typo 2018-03-03 13:10:51 +01:00
Klaus Schmidinger
b1b4a12848 Fixed stopping a remote repeating timer 2018-03-03 12:55:57 +01:00
Klaus Schmidinger
7b77f400a1 Fixed handling close of connections 2018-03-01 15:00:32 +01:00
Klaus Schmidinger
4d7455e783 Added timeouts for SVDRP peer communication about timers 2018-03-01 14:45:57 +01:00
Klaus Schmidinger
66d66b31dc Fixed the CompareInts() function 2018-02-28 10:14:18 +01:00
Klaus Schmidinger
9c3ce0048a When remote timers are fetched from a peer VDR, we no longer blindly delete and re-add them, but rather compare them and make only the minimum necessary changes 2018-02-28 10:06:47 +01:00
Klaus Schmidinger
3a3a233994 Updated the Polish OSD texts 2018-02-27 09:48:28 +01:00
Klaus Schmidinger
d5db0c5ba7 Improved locking 2018-02-26 15:42:15 +01:00
Klaus Schmidinger
dd6c37c13d Added options for name and port 2018-02-25 21:50:18 +01:00
Klaus Schmidinger
e4af94d3f9 Combined Start/StopSVDRPServer/ClientHandler() into Start/StopSVDRPHandler() 2018-02-25 13:57:21 +01:00
Klaus Schmidinger
bf497f4aae Fixed storing timer id in .timer for instant recordings 2018-02-25 13:28:19 +01:00
Klaus Schmidinger
6600478675 Moved handling remote timers into cSVDRPClientHandler::ProcessConnections() 2018-02-25 13:26:17 +01:00
Klaus Schmidinger
bbbc36a1e6 Adapted to the new CONN command 2018-02-25 12:42:58 +01:00
Klaus Schmidinger
361d642660 Initiating the client side of a peer-to-peer SVDRP connection is now done with the new SVDRP command CONN instead of using the UDP port with the server's address 2018-02-20 13:28:04 +01:00
Klaus Schmidinger
a72806a0ba Added a section about the '.sort' file to vdr.5 2018-02-15 16:02:04 +01:00
Klaus Schmidinger
a1c53eae1e Improved calculating signal strength and quality (cont'd) 2018-02-15 15:37:01 +01:00
Klaus Schmidinger
a4343bdfd9 Fixed case inconsistency with SVDRPDefaultHost 2018-02-15 14:41:14 +01:00
Klaus Schmidinger
940e4a7c4d Fixed handling SVDRP peering for more than one instance of VDR on the same machine, and improved logging and debug output 2018-02-15 14:30:14 +01:00
Klaus Schmidinger
3090d8146f Implemented storing timer id in .timer 2018-02-13 09:33:41 +01:00
Klaus Schmidinger
78831a72d5 Improved calculating signal strength and quality 2018-02-12 14:05:22 +01:00
Klaus Schmidinger
68f0f24670 Fixed getting the info of a newly edited recording 2018-02-10 13:31:31 +01:00
Klaus Schmidinger
6b9c5aa1ac When a timer is newly created in the Timers menu, it now immediately appears at the correct position in the list 2018-02-10 12:51:19 +01:00
Klaus Schmidinger
902c83ece3 Fixed keeping the cursor position in the Recordings menu in case a timer starts recording while the menu is open 2018-02-10 12:34:10 +01:00
Klaus Schmidinger
30650b9c13 Fixed updating the Timers menu after turning a local timer on/off with the Red button 2018-02-10 10:54:33 +01:00
Klaus Schmidinger
5976079fd3 Added a note about the fixed UDP port for SVDRP discovery to vdr.1 2018-02-09 15:21:06 +01:00
Klaus Schmidinger
1e3f146707 Replaced the warning regarding the open SVDRP port in the INSTALL file with a remarkabout using svdrphosts.conf to completely disable SVDRP access 2018-02-09 15:19:59 +01:00
Klaus Schmidinger
015b269c21 Making sure cSVDRPClient::Process() reads the entire reply once it started reading, even if no Response parameter is given 2018-02-05 15:18:19 +01:00
Klaus Schmidinger
802544662d Added the UPDATE-2.4.0 file 2018-02-04 10:07:42 +01:00
Klaus Schmidinger
41c247b8ff Added a note about 'cam.data' not being overwritten if it is read-only 2018-02-03 13:56:27 +01:00
Klaus Schmidinger
b2d3c92da9 Fixed typos 2018-02-03 13:42:11 +01:00
Klaus Schmidinger
bc295040d0 Added a note about the 'peerdemo' script 2018-02-03 13:12:04 +01:00
Klaus Schmidinger
c441a634a5 Limited some CAM related log messages to the actual master CAM, if any 2018-02-03 12:59:56 +01:00
Klaus Schmidinger
c71c3115cc Fixed handling editing marks in the replay progress display, in case the marks are deleted via the Info/Edit menu of the currently played recording 2018-02-01 16:08:15 +01:00
Klaus Schmidinger
5ae8d1a7a3 Implemented cStatus::MarksModified() 2018-01-29 14:09:59 +01:00
Klaus Schmidinger
0055eeeeb8 Fixed a possible deadlock when quickly zapping through encrypted channels 2018-01-28 11:21:28 +01:00
Klaus Schmidinger
5443fd4219 Fixed a possible crash when stopping VDR (contd) 2018-01-27 14:45:08 +01:00
Klaus Schmidinger
626ae82fee Added a missing '|' 2018-01-26 14:34:31 +01:00
Klaus Schmidinger
4fd2870720 Removed some excess ';' 2018-01-25 15:09:23 +01:00
Klaus Schmidinger
a9e32ad0a5 Removed superfluous call to cVideoDirectory::RemoveVideoFile() 2018-01-18 12:19:31 +01:00
Klaus Schmidinger
165eae9c31 Fixed wrongly removing the edited version after the cutter has completed 2018-01-18 10:13:29 +01:00
Klaus Schmidinger
a343b375df Now unlocking the Recordings list before displaying an error message in cMenuPathEdit::ApplyChanges() and cReplayControl::Stop() 2018-01-17 10:27:37 +01:00
Klaus Schmidinger
28b6ee47e3 Now using the 'example' macro in vdr.5 2018-01-16 15:27:17 +01:00
Klaus Schmidinger
ae41be85c8 Moved any locking from cutter.c into recording.c 2018-01-16 14:11:40 +01:00
Klaus Schmidinger
e7936c8595 Fixed wrongly deleting a recording that already exists when moving a recording 2018-01-16 11:09:26 +01:00
Klaus Schmidinger
5467bc4f24 Fixed a possible deadlock when detaching a receiver from a device 2017-12-16 13:13:13 +01:00
Klaus Schmidinger
477fb7dc20 When selecting a folder for a recording or timer, it is now possible to open a folder even if it doesn't contain any subfolders 2017-12-15 13:43:00 +01:00
Klaus Schmidinger
05bfa4b476 Changed the log message ""ERROR: copying directory %s to %s ended prematurely" from "error" to "info" 2017-12-14 15:18:05 +01:00
Klaus Schmidinger
630cc496ea Moved adding the name of the edited recording into the cutting thread, to avoid a problem with locking the Recordings list 2017-12-14 14:17:35 +01:00
Klaus Schmidinger
c3af5a69da Now staying in the source folder when moving a recording or a folder to a different folder 2017-12-14 10:45:02 +01:00
Klaus Schmidinger
7455fbd2ad Fixed canceling moving a folder with several recordings between volumes 2017-12-11 13:55:38 +01:00
Klaus Schmidinger
ea217de338 Now displaying recordings in move as non-selectable 2017-12-10 13:04:38 +01:00
Klaus Schmidinger
1492f6dbc4 Implemented 'OSD/Sorting direction for recordings' 2017-12-09 18:58:25 +01:00
Klaus Schmidinger
e757f10e44 If TS packets are not accepted by the output device in Transfer Mode, this is now reported only once per minute in the log file 2017-12-07 15:05:48 +01:00
Klaus Schmidinger
c868265397 Fixed a lengthy write lock on the Recordings list in case of moving a folder with more than one recording 2017-12-05 16:44:21 +01:00
Klaus Schmidinger
e5e0315d34 The CAM menu is now automatically closed when the current channel is switched 2017-12-04 15:33:41 +01:00
Klaus Schmidinger
0224fc5210 Fixed positioning to the current item when changing the sort mode in the Recordings menu, in case there is a LastReplayed recording 2017-12-04 14:55:13 +01:00
Klaus Schmidinger
b96277e28a Fixed a deadlock when moving a folder containing several recordings between different volumes 2017-12-04 13:07:39 +01:00
Klaus Schmidinger
b5d8f68b87 Translations for 'The new SVDRP commands 'LSTD' and 'PRIM'...' 2017-12-04 12:12:17 +01:00
Klaus Schmidinger
0a47b30528 Added the 'peerdemo' script 2017-12-03 12:49:30 +01:00
Klaus Schmidinger
26a40bc174 Added a note to PLUGINS.html about writing log messages in English 2017-11-29 10:03:13 +01:00
Klaus Schmidinger
990bc6a11f Fixed positioning the cursor in the Recordings menu when moving a recording between different volumes 2017-11-27 15:19:43 +01:00
Klaus Schmidinger
91774cf074 Fixed a possible crash when moving a recording between different volumes 2017-11-27 14:09:04 +01:00
Klaus Schmidinger
9d5ce204aa Now calling Hide() and cStatus::MsgReplaying(..., false) from cReplayControl::Stop() 2017-11-26 15:07:00 +01:00
Klaus Schmidinger
a9d82331e6 Fixed a possible crash with plugins that retrieve player information after a replay has been stopped, but before the replay control has been destroyed 2017-11-26 15:02:54 +01:00
Klaus Schmidinger
8dcff164fa Fixed handling timers during the change from DST to winter time 2017-11-12 13:13:06 +01:00
Klaus Schmidinger
54b721ebde Added some comments regarding font height 2017-11-11 14:05:53 +01:00
Klaus Schmidinger
d19a3fc3b8 The new SVDRP commands 'LSTD' and 'PRIM' can be used to list all available devices and to switch the primary device 2017-11-11 12:04:17 +01:00
Klaus Schmidinger
950b248220 Switching the primary device is no longer done via osSwitchDvb, but rather by the main program loop reacting to changes in Setup.PrimaryDVB 2017-11-09 16:23:15 +01:00
Klaus Schmidinger
bc3b6ed601 Local timers are now preferred over remote timers in the Schedules menu 2017-11-09 12:22:20 +01:00
Klaus Schmidinger
33bbff2aa5 The LCARS skin's main menu now reacts to changes of the current channel's name 2017-11-08 10:37:57 +01:00
Klaus Schmidinger
5c94900026 OSD menus now try to keep the offset of the list cursor at a constant position on the screen, even if the list is modified while being displayed 2017-11-07 15:42:47 +01:00
Klaus Schmidinger
e02a0a8c88 The timeout for the channel display is now reset whenever the channel or EPG data changes 2017-11-02 15:36:24 +01:00
Klaus Schmidinger
d8523b0db8 The macros used to control deprecated code or functions have been changed to hold numeric values; the default for DEPRECATED_VDR_CHARSET_OVERRIDE has been set to 0 2017-11-02 15:04:56 +01:00
Klaus Schmidinger
d74dd7a60a The function cDevice::GetVideoSystem() has been finally removed 2017-11-02 14:38:49 +01:00
Klaus Schmidinger
c08ed3ce44 The MTD mapper now avoids immediately reusing unique PIDs when switching channels 2017-10-31 12:20:56 +01:00
Klaus Schmidinger
19275aa8bb Fixed an invalid lock sequence when trying to remove a deleted recording in case of low disk space; now making sure that AssertFreeDiskSpace() is called with the maximum timer priority in case there are several timers recording with different priorities 2017-10-31 09:47:14 +01:00
Klaus Schmidinger
7bbbfb0dee Fixed handling VPS events outside the LingerLimit, which could cause recordings to stop prematurely 2017-10-11 09:22:24 +02:00
Klaus Schmidinger
ef7018cca4 Adapted the pic2mpg script to new ffmpeg options; no longer using 'convert' to scale/rotate the pictures 2017-10-06 15:12:25 +02:00
Klaus Schmidinger
f2a2c67152 Fixed a possible crash when stopping VDR 2017-08-31 11:46:16 +02:00
Klaus Schmidinger
9719766007 Updated the Finnish OSD texts 2017-07-24 09:02:12 +02:00
Klaus Schmidinger
32fb2e8a3e Updated the Italian OSD texts 2017-07-24 08:59:28 +02:00
Klaus Schmidinger
363dee6846 SVDRP peering can now be limited to the default SVDRP host 2017-06-30 09:50:44 +02:00
Klaus Schmidinger
a28d92d049 Whenever a change is made to the recordings in the video directory, the SVDRP command UPDR is now sent to all peer VDRs 2017-06-25 12:43:09 +02:00
Klaus Schmidinger
39294e0147 Added a note to the log, indicating that no further invalid lock sequences will be reported until VDR is restarted 2017-06-25 12:10:19 +02:00
Klaus Schmidinger
027ae738a8 Now using readdir() instead of readdir_r(), if GLIBC version 2.24 or newer is used 2017-06-25 11:54:32 +02:00
Klaus Schmidinger
ce5e23f209 Timers are now linked to EPG events even if they are inactive 2017-06-25 10:03:19 +02:00
Klaus Schmidinger
139a93156b Fixed drawing very long menu titles in the LCARS skin 2017-06-23 16:03:51 +02:00
Klaus Schmidinger
9cf7328452 Now skipping a leading '/' in AddDirectory(), to avoid double slashes 2017-06-23 09:44:25 +02:00
Klaus Schmidinger
0bccf29254 Updated the Italian OSD texts 2017-06-23 09:14:13 +02:00
Klaus Schmidinger
ede2e89670 Added a note about only working with the given data 2017-06-23 09:08:40 +02:00
Klaus Schmidinger
56117751a8 Fixed a possible crash in cStateLockLog 2017-06-23 09:03:19 +02:00
Klaus Schmidinger
1bce499383 Added some missing locks when calling functions from cStatus or cSkin* 2017-06-21 09:40:39 +02:00
Klaus Schmidinger
699c073d85 Fixed indentation 2017-06-20 15:02:39 +02:00
Klaus Schmidinger
95947a29d5 Fixed detecting whether a CAM replies to queries 2017-06-19 12:16:40 +02:00
Klaus Schmidinger
70f48e6ca3 Updated links in the INSTALL file 2017-06-12 08:58:26 +02:00
Klaus Schmidinger
0a2c88c288 Introduced the new macro DISABLE_TEMPLATES_COLLIDING_WITH_STL 2017-06-11 10:05:34 +02:00
Klaus Schmidinger
c70d62aeb4 Changed ##Lock to ##_Lock in the DEF_LIST_LOCK and USE_LIST_LOCK macros defined in tools.h 2017-06-11 09:01:47 +02:00
Klaus Schmidinger
a4a3c63779 Removed dashes from channel group delimiter in channels menu 2017-06-10 19:19:51 +02:00
Klaus Schmidinger
a98f6ca354 The "Channels" menu now indicates whether a channel is encrypted or a radio channel 2017-06-10 15:57:33 +02:00
Klaus Schmidinger
deb96b372e The option "Setup/Miscellaneous/Show channel names with source" can now be set to "type" or "full" 2017-06-10 15:34:23 +02:00
Klaus Schmidinger
360d8fe6b1 Implemented CAM auto responses 2017-06-10 11:53:39 +02:00
Klaus Schmidinger
93102b45e0 Fixed a typo in CAMMENURETYTIMEOUT and added logging CAM enquiries 2017-06-10 11:52:47 +02:00
Klaus Schmidinger
fd3bf51f7d Changed '-' to 'U' when a lock is released 2017-06-09 08:27:22 +02:00
Klaus Schmidinger
79314ab98f Increased SLL_LENGTH in thread.c to better handle long caller lines, and enclosed logCaller with DEBUG_LOCKCALL to preserve memory in normal operation 2017-06-08 08:29:45 +02:00
Klaus Schmidinger
38fed8c901 Fixed L(ock) and U(nlock) indicators in cStateLockLog 2017-06-08 08:24:30 +02:00
Klaus Schmidinger
081e9eb45f Fixed the locking sequence when starting an instant recording 2017-06-07 15:41:12 +02:00
Klaus Schmidinger
c0b8666d1f Fixed false positives when checking the locking sequence, in case of nested locks within the same thread (cont'd) 2017-06-07 12:31:31 +02:00
Klaus Schmidinger
210df9d835 Fixed uninitialized variable SdWatchdog in vdr.c 2017-06-06 10:55:12 +02:00
Klaus Schmidinger
dc775bc5f8 Fixed false positives when checking the locking sequence, in case of nested locks within the same thread 2017-06-06 09:25:48 +02:00
Klaus Schmidinger
ec47c4f932 Fixed the locking sequence when switching between 'Now', 'Next' and 'Schedule' in the Schedules menu 2017-06-04 09:35:18 +02:00
Klaus Schmidinger
25d28e7421 Fixed the locking sequence when creating a new timer from the Schedules menu 2017-06-03 12:51:22 +02:00
Klaus Schmidinger
2c74a31afe Added backtrace functions for debugging 2017-06-03 12:43:22 +02:00
Klaus Schmidinger
bae02358a3 Fixed a possible crash in case the SVDRP connection to a peer VDR is terminated while getting remote timers 2017-05-31 14:06:07 +02:00
Klaus Schmidinger
f97a59597f Now using a separate mutex to fix the race between SVDRP CHAN and cDevice::HasProgramme() 2017-05-30 11:06:55 +02:00
Klaus Schmidinger
6edfcda43a Fixed generating k_Release key events for LIRC remote controls 2017-05-30 11:05:00 +02:00
Klaus Schmidinger
c9c15a727d Fixed a double channel switch when pressing the Channel+/- keys while no menu or channel display is open 2017-05-29 11:37:06 +02:00
Klaus Schmidinger
5324809a91 Added clearing CiResourceHandlers before shutting down the plugin manager 2017-05-29 11:14:43 +02:00
Klaus Schmidinger
f69b920dbc The Makefiles now use the macro $(Q) instead of a plain '@' in front of their commands, so that verbosity can be controlled by the user 2017-05-29 09:12:42 +02:00
Klaus Schmidinger
a4c851f759 Fixed the locking sequence when starting a recording 2017-05-29 08:18:17 +02:00
Klaus Schmidinger
2751e239eb Fixed the locking sequence when dumping EPG data 2017-05-28 13:08:09 +02:00
Klaus Schmidinger
0af3ed548c Added debug output for checking the correct sequence of locking global lists 2017-05-28 12:47:54 +02:00
Klaus Schmidinger
7cdd4877c3 Adjusted release date 2017-05-25 09:08:46 +02:00
Klaus Schmidinger
37acfbd372 Fixed detecting the inclusion of STL header files in tools.h 2017-05-22 20:21:30 +02:00
Klaus Schmidinger
e7cd3f0b33 No longer displaying the actual (lengthy) commands during the build process 2017-05-22 16:29:49 +02:00
Klaus Schmidinger
354910faab If the Channel+/- keys are pressed while in the Schedules menu, the menu is now switched to the EPG of the new current channel 2017-05-21 13:18:26 +02:00
Klaus Schmidinger
0f1f277819 Fixed setting the local machine's SVDRP host name; only saving the SVDRP host name if it differs from the system's host name 2017-05-21 10:28:10 +02:00
Klaus Schmidinger
3b1b5bde68 Removed TsGetContinuityCounter() from remux.h, using TsContinuityCounter() instead 2017-05-21 09:53:27 +02:00
Klaus Schmidinger
82813f48c4 Added the macro VDR_NO_STL_PROTOTYPES to tools.h 2017-05-21 09:37:45 +02:00
Klaus Schmidinger
0b9870959b Fixed handling remote timers 2017-05-20 13:01:34 +02:00
Klaus Schmidinger
4100b47b37 Reduced the time before a CAM is marked as known to decrypt a particular channel to 3 seconds 2017-05-18 09:32:04 +02:00
Klaus Schmidinger
43c828f8ca Fixed a race between SVDRP CHAN and cDevice::HasProgramme() 2017-05-18 09:18:43 +02:00
Klaus Schmidinger
b01a1ee818 Extended the CI API to allow plugins to implement additional CAM resources 2017-05-18 09:05:46 +02:00
Klaus Schmidinger
50211c706a Fixed a crash in case the bottom text of a CAM menu is empty 2017-05-17 09:17:44 +02:00
Klaus Schmidinger
ce42e42ed7 Added handling RI_HOST_CONTROL to the CI protocol 2017-05-12 09:17:39 +02:00
Klaus Schmidinger
34f572f792 Fixed handling line numbers in error messages when reading EPG data 2017-05-09 12:25:32 +02:00
Klaus Schmidinger
44287ca25e Added a Status parameter to the interface of cDevice::SignalStats() and cDvbDevice::SignalStats() 2017-05-09 11:53:41 +02:00
Klaus Schmidinger
6bed5368e6 Changed the legacy delivery system name "DMBTH" to "DTMB", and added names for DVBC_ANNEX_C and DVBC2 2017-05-09 09:46:28 +02:00
Klaus Schmidinger
4591dcad2c Fixed selecting delivery system names in case of undefined indexes 2017-05-09 09:43:25 +02:00
Klaus Schmidinger
dbcea07600 Changed the default return value of cEpgHandler::BeginSegmentTransfer() to true 2017-05-09 09:20:34 +02:00
Klaus Schmidinger
b76601482f When selecting a device/CAM combination for live viewing, CAMs that are known to decrypt the requested channel are now given a higher priority than prefering the primary device 2017-05-09 09:13:36 +02:00
Klaus Schmidinger
8e9d445248 cListObject now implements a private copy constructor and assignment operator, to keep derived objects from calling them implicitly 2017-05-09 08:39:19 +02:00
Klaus Schmidinger
7d1dde01ba The constructor of cHash (via cHashBase) now has an additional parameter (OwnObjects); fixed a memory leak in cSectionSyncerHash 2017-05-09 08:33:37 +02:00
Klaus Schmidinger
79b57feab6 Events in the EIT that end before the EPG linger time are now ignored in the incoming data stream 2017-05-03 09:02:24 +02:00
Klaus Schmidinger
1a92ae77a0 Added a note about complete TS packets to cCamSlot::Inject() 2017-05-01 16:26:34 +02:00
Klaus Schmidinger
84b8ea8395 Log messages about switching channels now include the channel ID 2017-05-01 13:06:32 +02:00
Klaus Schmidinger
9491948f04 Fixed handling UNC values 2017-05-01 12:50:12 +02:00
Klaus Schmidinger
073268bd45 CAMs are now sent a generated EIT packet that contains a single 'present event' for the current SID, in order to avoid any parental rating dialogs 2017-05-01 09:32:32 +02:00
Klaus Schmidinger
7cfce2fffa Adjusted release date 2017-04-27 08:43:41 +02:00
Klaus Schmidinger
a1fda4f218 Fixed a possible crash when pulling the CAM while decrypting a channel with MTD (cont'd) 2017-04-26 09:18:26 +02:00
Klaus Schmidinger
1a31974789 Fixed a typo 2017-04-24 14:59:39 +02:00
Klaus Schmidinger
3d63936a36 Fixed a possible crash when pulling the CAM while decrypting a channel with MTD 2017-04-24 09:25:29 +02:00
Klaus Schmidinger
2e9060d549 Removed logging DVB API 5 signal statistics, because it happened too often if EPG scan is active (cont'd) 2017-04-23 12:00:06 +02:00
Klaus Schmidinger
467829af32 The SVDRP command LSTC can now list the channels with channel ids; channel number 0 lists the data of the current channel 2017-04-22 15:02:56 +02:00
Klaus Schmidinger
9cd28b2ded Fixed handling the uncorrected block counter for DVB API 3 devices when calculating signal quality 2017-04-20 14:43:54 +02:00
Klaus Schmidinger
686831caf5 Fixed editing a remote timer immediately after it has been created 2017-04-20 10:08:04 +02:00
Klaus Schmidinger
1efd5e6b7e Fixed displaying remote timers in the main menu of skin LCARS 2017-04-20 08:49:31 +02:00
Klaus Schmidinger
f90edc1e8b Removed logging DVB API 5 signal statistics, because it happened too often if EPG scan is active 2017-04-18 13:11:51 +02:00
Klaus Schmidinger
d1ff365767 Updated the Finnish OSD texts 2017-04-18 12:15:01 +02:00
Klaus Schmidinger
6132a46768 Implemented getting and logging DVB API 5 signal statistics 2017-04-17 15:02:44 +02:00
Klaus Schmidinger
1f541487e0 cTSBuffer::Skip() no longer immediately deletes the given number of bytes from the TS buffer 2017-04-15 09:55:32 +02:00
Klaus Schmidinger
1a160e7afe The function cCamSlot::Decrypt() can now also be called with Data == NULL 2017-04-15 09:39:55 +02:00
Klaus Schmidinger
016e10c1b0 Signal strength and quality (CNR) are now determined via DVB API 5 (if available) 2017-04-06 17:12:59 +02:00
Klaus Schmidinger
6d52c80273 Changed some leftover 'number' to 'id' in SVDRP replies 2017-04-04 11:09:14 +02:00
Klaus Schmidinger
63a32ce483 Fixed a deadlock in the SVDRP command PLAY in case there is currently a recording being replayed 2017-04-04 11:05:38 +02:00
Klaus Schmidinger
7170c20c7e Added missing GetById() calls 2017-04-04 09:39:36 +02:00
Klaus Schmidinger
7e6667f58f Changed 'number' to 'id' in the help texts of SVDRP commands that deal with timers 2017-04-03 14:32:33 +02:00
Klaus Schmidinger
67cb53d587 Recordings now have unique ids 2017-04-03 14:11:41 +02:00
Klaus Schmidinger
e622854789 cOsdMenu::Display() now checks whether the OSD size has changed and if so calls SetDisplayMenu() 2017-04-03 12:49:56 +02:00
Klaus Schmidinger
792b9dc45f Added a note to the "Pausing live video" section of the MANUAL 2017-04-03 08:42:10 +02:00
Klaus Schmidinger
fe535d25e5 Added some guidelines and recommendations to the 'Logging' section of PLUGINS.html 2017-04-02 13:01:34 +02:00
Klaus Schmidinger
c4cc5e613c The cEvent class now has a new member 'aux' 2017-04-02 12:13:15 +02:00
Klaus Schmidinger
0a5a7893a5 Detecting whether a particular CAM actually decrypts a given channel is now done separately for each receiver 2017-04-02 10:08:49 +02:00
Klaus Schmidinger
f39d31631b The file 'cam.data' is no longer written if it is read-only 2017-04-02 10:06:31 +02:00
Klaus Schmidinger
8d3ae53bcd Changed tEventID back to u_int32_t 2017-04-01 12:39:46 +02:00
Klaus Schmidinger
d6f57259fa The function cEpgHandlers::BeginSegmentTransfer() is now boolean 2017-03-31 15:24:35 +02:00
Klaus Schmidinger
112bfa5897 The functionality of HandleRemoteModifications() has been moved to timers.[ch] 2017-03-30 15:25:20 +02:00
Klaus Schmidinger
da105e3bda Added credit for Jasmin Jessich 2017-03-28 08:31:51 +02:00
Klaus Schmidinger
2e8815ece8 Silently ignore MTD index -1 2017-03-27 14:26:04 +02:00
Klaus Schmidinger
830e30e2fb Only store ChannelCamRelations for receivers with valid channel ids 2017-03-27 14:02:54 +02:00
Klaus Schmidinger
d60336ba96 Added TS_SYNC to cMtdHandler::Put() 2017-03-27 09:09:37 +02:00
Klaus Schmidinger
44813e56a5 Limiting locking the mtdBuffer to reading and clearing 2017-03-27 08:35:29 +02:00
Klaus Schmidinger
b313d88db1 Improved clearing the MTD buffer and syncing on TS packets 2017-03-26 13:07:01 +02:00
Klaus Schmidinger
9e808255f8 Now stopping any ongoing recordings before stopping the plugins 2017-03-25 14:32:37 +01:00
Klaus Schmidinger
fe57c16f6f Fixed a crash when stopping VDR while recording encrypted channels with MTD 2017-03-25 14:09:31 +01:00
Klaus Schmidinger
2d9eb7e25d Mapping PIDs in CanDecrypt(); improved description of Start-/StopDecrypting(); removed obsolete cMtdCamSlot::IsDecrypting(); fixed getting device fpr channel up/down 2017-03-23 14:34:53 +01:00
Klaus Schmidinger
b7be7c900a cMtdHandler::Put() now processes as many TS packets as possible in one call 2017-03-19 14:20:22 +01:00
Klaus Schmidinger
e2756f8e9a Now clearing the MTD buffer 2017-03-19 13:33:53 +01:00
Klaus Schmidinger
367557039a The function cRingBufferLinear::Clear() can now be called safely from the reading thread, without additional locking 2017-03-19 13:11:39 +01:00
Klaus Schmidinger
31b0feae14 Added some remarks 2017-03-19 10:48:52 +01:00
Klaus Schmidinger
2cc25e65f4 Implemented support for MTD 2017-03-18 16:33:59 +01:00
Klaus Schmidinger
3f9cdea1c1 PIDs can now be added to and deleted from a cReceiver while it is attached to a cDevice 2017-02-21 14:17:07 +01:00
Klaus Schmidinger
71601e363e Fixed setting the local machine's SVDRP host name 2017-02-14 11:04:24 +01:00
Klaus Schmidinger
9b9d15438e Implemented the concept of 'master cams' 2017-01-23 12:01:48 +01:00
Klaus Schmidinger
6121095a30 Changed 'unsigned' to 'signed' in some places to avoid trouble with abs() in gcc6+ 2017-01-09 15:21:13 +01:00
Klaus Schmidinger
6773ab35d2 Fixed updating the elapsed/remaining time in the progress display during fast forward/rewind 2017-01-09 14:52:57 +01:00
Klaus Schmidinger
196f2af596 The mechanism of trying different CAMs when switching to an encrypted channel is now only triggered if there acually is more than one CAM in the system 2017-01-09 14:27:36 +01:00
Klaus Schmidinger
d1ddb39781 The channel/CAM relations are now stored in the file 'cam.data'; fixed a flaw in handling timeouts for encrypted channels 2017-01-09 13:42:41 +01:00
Klaus Schmidinger
882273d508 Added a missing dependency to the Makefile to avoid error messages in the clean-plugins target 2017-01-08 11:09:54 +01:00
Klaus Schmidinger
0aba3abaeb Updated the Russian OSD texts 2017-01-05 11:42:21 +01:00
Klaus Schmidinger
1c7c2f50b0 Fixed a possible deadlock in the recordings handler thread 2017-01-01 17:52:51 +01:00
Klaus Schmidinger
f345908f77 Added 'S3W ABS-3A' to sources.conf 2016-12-27 11:45:25 +01:00
Klaus Schmidinger
ab9e7d50a3 Adjusted release date 2016-12-24 08:48:22 +01:00
Klaus Schmidinger
834ac04c3b Added a short sleep to cTSBuffer::Action() to avoid high CPU usage 2016-12-23 14:49:06 +01:00
Klaus Schmidinger
e2ba3d09a5 Added support for the systemd watchdog 2016-12-23 14:36:24 +01:00
Klaus Schmidinger
bac0ca39ba Avoiding some duplicate code and unnecessary work in nit.c 2016-12-23 14:25:27 +01:00
Klaus Schmidinger
68acf8815c Fixed a possible buffer overflow in handling CA descriptors 2016-12-23 14:08:14 +01:00
Klaus Schmidinger
736f2fed42 Fixed the non-const version of cTimers::GetTimer() 2016-12-23 09:49:31 +01:00
Klaus Schmidinger
fdbbbd146a Fixed a typo in the description of cTimers::GetTimersRead() 2016-12-22 14:31:50 +01:00
Klaus Schmidinger
bac165a751 Added a 'const' version of cTimers::GetTimer() 2016-12-22 14:27:01 +01:00
Klaus Schmidinger
3d488bcf1c Updated the Estonian OSD texts 2016-12-22 14:19:54 +01:00
Klaus Schmidinger
39c9fc1199 Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems 2016-12-22 14:13:42 +01:00
Klaus Schmidinger
99dfe9f66a Added 'S58.5E Kazsat 3' to sources.conf 2016-12-22 13:32:49 +01:00
Klaus Schmidinger
03d6fbec0a Sorted sources.conf by continuous azimuth 2016-12-22 13:30:30 +01:00
Klaus Schmidinger
5c8d366975 Fixed building VDR with systemd >= 230 2016-12-22 13:20:16 +01:00
Klaus Schmidinger
26252c37cd Fixed regenerating the index of audio recordings 2016-12-22 13:14:10 +01:00
Klaus Schmidinger
b6080634cc Added cFont::Width(void) to get the default character width and allow stretched font drawing in high level OSDs 2016-12-22 12:53:09 +01:00
Klaus Schmidinger
f91468ff9b Implemented a frame parser for H.265 (HEVC) recordings 2016-12-22 12:22:11 +01:00
Klaus Schmidinger
22cb026e5e Fixed replaying recordings to their very end, if they don't end with an I-frame 2016-12-22 11:40:25 +01:00
Klaus Schmidinger
be4cdcf170 Improved handling frame numbers to have a smoother progress display during replay of recordings with B-frames 2016-12-22 11:33:12 +01:00
Klaus Schmidinger
fd85701a84 Fixed resuming replay at a given position, which was off by one frame 2016-12-22 09:41:48 +01:00
Klaus Schmidinger
1135a1f9d5 Made the cPlayer member functions FramesPerSecond, GetIndex and GetReplayMode 'const' 2016-12-22 09:26:40 +01:00
Klaus Schmidinger
d71544d797 Added a note to the description of cFont::Size(), regarding possible differences between it and cFont::Height() 2016-12-13 15:01:24 +01:00
Klaus Schmidinger
08066065e3 Fixed a crash when moving a recording to a folder on a different volume 2016-12-13 13:54:00 +01:00
Klaus Schmidinger
a9bd3ca0dc Fixed a crash when deleting a recording that is currently being replayed 2016-12-11 13:06:58 +01:00
Klaus Schmidinger
031bbcef40 Fixed setting the current item and counter values in the Recordings menu after deleting the last recording in a subfolder 2016-12-09 15:00:55 +01:00
Klaus Schmidinger
d6c26af696 Using SetCurrentChannel(int ChannelNumber) instead of the deprecated SetCurrentChannel(const cChannel *Channel) 2016-12-08 10:48:53 +01:00
Klaus Schmidinger
12308b3c29 Fixed a crash when trying to delete a channel that is being used by a timer 2016-12-08 10:43:58 +01:00
Klaus Schmidinger
85ae27e372 The cRwLock class now allows nested read locks within a write lock from the same thread 2016-12-08 10:18:32 +01:00
Klaus Schmidinger
ce6c90a450 The SVDRP command DELC now refuses to delete the very last channel in the list 2016-12-08 09:53:01 +01:00
Klaus Schmidinger
1172937e8a The function SetCurrentChannel(const cChannel *Channel) is now deprecated 2016-12-06 14:17:39 +01:00
Klaus Schmidinger
146f2cbd4d Fixed initializing device specific parameters in cDvbTransponderParameters 2016-11-07 14:33:01 +01:00
Klaus Schmidinger
8ea018404a Updated the Italian OSD texts 2015-09-16 14:12:01 +02:00
Klaus Schmidinger
5d249c1ae5 Fixed an overflow of PIDs in a receiver 2015-09-16 14:08:42 +02:00
Klaus Schmidinger
09e64c24f2 Fixed a crash when deleting a recording 2015-09-16 11:11:42 +02:00
Klaus Schmidinger
462e094783 Adjusted release date 2015-09-14 14:11:00 +02:00
Klaus Schmidinger
8a09e90f02 Fixed handling remote timers 2015-09-14 13:23:06 +02:00
Klaus Schmidinger
bfc3f1f4b2 Fixed moving currently recording timers between machines 2015-09-13 13:57:51 +02:00
Klaus Schmidinger
2b20b9e064 Added missing saving of SVDRPHostName 2015-09-13 11:09:44 +02:00
Klaus Schmidinger
3427e224e3 Adjusted release date 2015-09-13 10:39:52 +02:00
Klaus Schmidinger
cf1474fc19 Removed unnecessary 'false' 2015-09-13 10:39:02 +02:00
Klaus Schmidinger
e6068912a4 Made the aff array 'static const' 2015-09-12 14:56:15 +02:00
Klaus Schmidinger
e59b5bf1af Empty adaptation field TS packets are now skipped when recording 2015-09-11 11:18:40 +02:00
Klaus Schmidinger
6f315bc235 Updated the German OSD texts 2015-09-11 08:45:58 +02:00
Klaus Schmidinger
2491984da3 Centralized remote timer error messages 2015-09-11 08:38:11 +02:00
Klaus Schmidinger
f1bef11f45 Implemented the setup option "Recording/Record key handling" 2015-09-11 08:29:41 +02:00
Klaus Schmidinger
4e46d2bb3b The width and height of the OSD are now limited to the actual maximum dimensions of the output device 2015-09-10 14:18:38 +02:00
Klaus Schmidinger
a384d14f92 No longer delivering the dvbsddevice and rcu plugins with the source archive 2015-09-10 13:51:49 +02:00
Klaus Schmidinger
471c1cc044 Changed the description of the --chartab option in the INSTALL file 2015-09-10 13:36:50 +02:00
Klaus Schmidinger
1cdbdc548a Fixed sorting recordings 2015-09-10 13:29:30 +02:00
Klaus Schmidinger
0f18bd0a6a Fixed a possible stack overflow in cListBase::Sort() 2015-09-10 13:20:21 +02:00
Klaus Schmidinger
14f97d0f2a Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal menus 2015-09-10 11:26:15 +02:00
Klaus Schmidinger
75f28cb0cb The 'newplugin' script now creates the 'po' subdirectory for translations 2015-09-10 11:12:51 +02:00
Klaus Schmidinger
9e58503aee The EPG scanner no longer moves the dish if there is a positioner 2015-09-10 11:08:19 +02:00
Klaus Schmidinger
18f0ce26fd The character 0x0D is now stripped from EPG texts 2015-09-10 11:00:59 +02:00
Klaus Schmidinger
bc0de5dbc5 Implemented full handling of remote timers 2015-09-10 10:39:45 +02:00
Klaus Schmidinger
4e3325b7f7 Implemented setup options for SVDRP peering 2015-09-08 11:08:06 +02:00
Klaus Schmidinger
3284e941c6 The Timers menu now displays the name of the remote VDR in front of the timer's file name, if this is a remote timer 2015-09-06 09:32:00 +02:00
Klaus Schmidinger
aa40223ff2 Removed extra debug output 2015-09-06 09:25:16 +02:00
Klaus Schmidinger
04edd69b7a Timers now have unique ids 2015-09-06 09:14:53 +02:00
Klaus Schmidinger
50d268538e Added a missing 'const' to cReceiver::Receive(), to protect the given Data from being modified 2015-09-05 11:49:56 +02:00
Klaus Schmidinger
3cd5294d8a Implemented strict locking of global lists 2015-09-01 11:14:27 +02:00
Klaus Schmidinger
8a7bc6a0bb Added a missing 'const' 2015-07-17 10:15:35 +02:00
Klaus Schmidinger
894a392640 Fixed a typo 2015-06-01 20:32:09 +02:00
Klaus Schmidinger
c3b0347556 Implemented SVDRP peering 2015-05-22 13:44:43 +02:00
Klaus Schmidinger
2b9e988dd5 The SVDRP port now accepts multiple concurrent connections 2015-04-29 13:10:06 +02:00
Klaus Schmidinger
b6af7a9cf9 Added missing 'virtual' 2015-04-28 09:26:02 +02:00
Klaus Schmidinger
d14adc1e68 The -u option now also accepts a numerical user id 2015-04-19 12:50:26 +02:00
Klaus Schmidinger
5499d5ae84 The function cOsd::GetBitmap() is now 'protected' 2015-04-19 12:22:29 +02:00
Klaus Schmidinger
0a40ce6f9d Commented out the line #define DEPRECATED_VIDEOSYSTEM in device.h 2015-04-19 12:15:00 +02:00
Klaus Schmidinger
15927fd097 Fixed a compiler warning in font.c 2015-04-19 11:14:27 +02:00
Klaus Schmidinger
c17328da87 Fixed plural handling 2015-04-18 16:19:28 +02:00
Klaus Schmidinger
165aa63d2e The -V and -h options now list the plugins in alphabetical order 2015-04-18 14:55:16 +02:00
Klaus Schmidinger
fa701228d7 The command line option -D now accepts the value '-' (as in -D-), which prevents VDR from using any DVB devices 2015-04-18 14:30:47 +02:00
Klaus Schmidinger
7aef23e97f Implemented default sort mode for recordings 2015-04-18 13:43:29 +02:00
Klaus Schmidinger
e6592e6201 Added a demo case for storing images 2015-04-12 10:37:36 +02:00
Klaus Schmidinger
38ee88e5ee The script that gets called for recordings is now also called right before a recording is edited 2015-04-11 12:12:43 +02:00
Klaus Schmidinger
7d49075079 Reduced the priority of the "video directory scanner" thread and checking cIoThrottle::Engaged() when it is running 2015-04-11 10:47:38 +02:00
Klaus Schmidinger
577d43facf Fixed scaling subtitles (their areas could sometimes extend outside the actual OSD) 2015-03-25 12:39:01 +01:00
Klaus Schmidinger
909e6c6249 Fixed a crash in cOsd::SetAreas() in case CreatePixmap() returns NULL 2015-03-25 08:57:05 +01:00
Klaus Schmidinger
62596f991e Improved syncing on sections when parsing the NIT and SDT 2015-03-17 15:10:57 +01:00
Klaus Schmidinger
fd7ccc7627 Fixed setting the source value of newly created channels, in case the NIT is received from a different, but very close satellite position (cont'd) 2015-03-17 12:27:18 +01:00
Klaus Schmidinger
0bcf5d6da6 Added some comment to cPixmap about the relation between OSD, ViewPort and DrawPort 2015-03-13 15:09:45 +01:00
Klaus Schmidinger
57513db5c4 Added cOsd::MaxPixmapSize() (cont'd) 2015-03-13 15:06:48 +01:00
Klaus Schmidinger
70eb639c41 Fixed setting the source value of newly created channels, in case the NIT is received from a different, but very close satellite position 2015-03-13 12:12:33 +01:00
Klaus Schmidinger
52b1e2a9ff The dvbhddevice plugin is no longer part of the VDR source archive; added a section about Output Devices to the INSTALL file 2015-03-12 11:00:54 +01:00
Klaus Schmidinger
a4b657b040 Added a note about the VDR User Counter and VDR's facebook page to the README file 2015-03-12 10:25:35 +01:00
Klaus Schmidinger
371e60238a Added detection of 24fps 2015-03-11 09:57:21 +01:00
Klaus Schmidinger
cc306290da The Setup/CAM menu now displays which device an individual CAM is currently assigned to 2015-03-09 11:51:08 +01:00
Klaus Schmidinger
eb7816259c Fixed a vertical black line in the "TiledPixmaps" area on the rpihddevice OSD wit 1280x800 pixel 2015-03-08 16:43:40 +01:00
Klaus Schmidinger
735fb20ac6 Added cOsd::MaxPixmapSize() 2015-03-08 16:40:01 +01:00
Klaus Schmidinger
a429eefbe7 Official release of version 2.2.0 2015-02-19 09:17:46 +01:00
Klaus Schmidinger
f53815c6ee Updated the Spanish OSD texts 2015-02-19 09:10:36 +01:00
Klaus Schmidinger
f2fceac341 Updated the French OSD texts 2015-02-18 21:27:43 +01:00
Klaus Schmidinger
968c2ede0d Fixed multiple blanks in the translation files 2015-02-18 11:03:37 +01:00
Klaus Schmidinger
a90a977d68 Removed tags from msgstr 2015-02-18 10:09:50 +01:00
Klaus Schmidinger
7ab61f6732 Updated sources.conf to reflect the fact that Thor 5/6 and Intelsat 10-02 are actually in two separate positions 2015-02-18 09:37:38 +01:00
Klaus Schmidinger
7aae78e8a7 Updated the Slovak OSD texts 2015-02-18 08:55:11 +01:00
Klaus Schmidinger
77a1ff8b00 Fixed leading/trailing blanks in the translation files; bumped all version numbers to 2.2.0 2015-02-17 15:11:36 +01:00
Klaus Schmidinger
9e6ca94a72 Updated the Czech OSD texts 2015-02-17 08:53:26 +01:00
Klaus Schmidinger
5aa16b7489 Improved the German translations of "EPG bugfix level"", "StreamId" and "T2SystemId" 2015-02-16 12:18:43 +01:00
Klaus Schmidinger
d48355c305 Fixed using the default sort mode in a video directory without a ".sort" file 2015-02-16 07:54:21 +01:00
Klaus Schmidinger
519ecddc52 Modified credit to Albert Danis 2015-02-15 10:42:11 +01:00
Klaus Schmidinger
c73e635936 Removed credit to Mario Fenneis (requested by Albert Danis) 2015-02-15 10:31:36 +01:00
Klaus Schmidinger
1ed2b21aaa Updated the Estonian OSD texts 2015-02-14 17:37:36 +01:00
Klaus Schmidinger
1786dc714d Added credit for Albert Danis 2015-02-14 12:02:16 +01:00
Klaus Schmidinger
cc1494bfb6 Updated the Ukrainian OSD texts 2015-02-13 17:41:51 +01:00
Klaus Schmidinger
7b1f643977 Updated the Polish OSD texts 2015-02-13 15:35:18 +01:00
Klaus Schmidinger
01b1137284 Fixed pausing replay at the last editing mark 2015-02-13 15:17:45 +01:00
Klaus Schmidinger
d99d408fd8 Modified the German translations of the OSD texts regarding "adaptive skipping" 2015-02-13 11:59:25 +01:00
Klaus Schmidinger
e1d05f0a0f Added credit for Albert Danis 2015-02-13 11:03:02 +01:00
Klaus Schmidinger
c36d3f5145 Updated the Hungarian OSD texts 2015-02-13 10:39:08 +01:00
Klaus Schmidinger
ac953f5327 Updated the Swedish OSD texts 2015-02-13 10:24:22 +01:00
Klaus Schmidinger
a2b5d4e02b Updated the Finnish OSD texts 2015-02-13 10:19:24 +01:00
Klaus Schmidinger
83b139e7ba Updated the Italian OSD texts 2015-02-13 10:17:36 +01:00
Klaus Schmidinger
62494e735f Updated the Estonian OSD texts 2015-02-13 10:14:28 +01:00
Klaus Schmidinger
7b3c905a46 Updated the Romanian OSD texts 2015-02-13 09:59:11 +01:00
Klaus Schmidinger
ddc4a26457 Updated the Macedonian OSD texts 2015-02-11 22:38:42 +01:00
Klaus Schmidinger
2457dce862 Updated the Lithuanian OSD texts 2015-02-11 12:19:56 +01:00
Klaus Schmidinger
0c19df09d9 Fixed the German translation of "Zap timeout" 2015-02-11 10:19:21 +01:00
Klaus Schmidinger
c298cd5714 Updated the French OSD texts 2015-02-11 10:08:09 +01:00
Klaus Schmidinger
60d5d9762b Updated the Dutch OSD texts 2015-02-11 09:54:07 +01:00
Klaus Schmidinger
22106f6dd3 cOsd::RenderPixmaps() now returns a pointer to cPixmap instead of cPixmapMemory; a cPixmap with a negative layer no longer marks any portion of the OSD's view port as "dirty"; Added a missing initialization of "panning" to the constructor of cPixmapMemory 2015-02-11 09:48:02 +01:00
Klaus Schmidinger
89f5244007 Added command line option --chartab to replace VDR_CHARSET_OVERRIDE 2015-02-10 14:29:27 +01:00
Klaus Schmidinger
d34abd6665 Made the function of the Prev/Next keys during replay configurable 2015-02-10 12:51:07 +01:00
Klaus Schmidinger
fb37e93b04 Made skipping with Green/Yellow keys configurable 2015-02-10 12:18:39 +01:00
Klaus Schmidinger
888c33c890 Updated the Lithuanian OSD texts 2015-02-10 09:46:05 +01:00
Klaus Schmidinger
434bc96c74 Updated the Italian OSD texts 2015-02-10 09:27:59 +01:00
Klaus Schmidinger
9c100c8d0a Added an empty target to the Makefile to make sure the sub-make for libsi is always called 2015-02-09 12:30:42 +01:00
Klaus Schmidinger
2eb23cb9f4 Increased the width of the left text column in the Setup menus to avoid cutting off German texts 2015-02-09 12:04:40 +01:00
Klaus Schmidinger
9c9c1d9e19 Added missing text that was overwritten by translation 2015-02-09 10:46:06 +01:00
Klaus Schmidinger
42bdf852da Updated the Estonian OSD texts 2015-02-09 10:44:57 +01:00
Klaus Schmidinger
b547141f7a Added credit for Clemens Brauers 2015-02-09 10:09:53 +01:00
Klaus Schmidinger
0633053d5d Added "#REMOTE=LIRC" to Make.config.template 2015-02-09 10:00:57 +01:00
Klaus Schmidinger
3a71b2e887 Updated the Ukrainian OSD texts 2015-02-09 09:45:23 +01:00
Klaus Schmidinger
cdb5e90515 Updated the Romanian OSD texts 2015-02-09 09:22:31 +01:00
Klaus Schmidinger
b5128a6e1c Updated the Macedonian OSD texts 2015-02-09 09:20:38 +01:00
Klaus Schmidinger
ac7fa82b2f Updated the Finnish OSD texts 2015-02-09 09:17:31 +01:00
Klaus Schmidinger
a7fa43fd39 Added the UPDATE-2.2.0 file 2015-02-08 11:39:17 +01:00
Klaus Schmidinger
890e57cfab Updated the Hungarian OSD texts 2015-02-08 11:00:00 +01:00
Klaus Schmidinger
f656e7f6a9 Added a missing trailing blank in some translations 2015-02-08 10:19:50 +01:00
Klaus Schmidinger
3104f123ca Added credit for Stefan Herdler 2015-02-08 10:08:47 +01:00
Klaus Schmidinger
f041cf97a2 Updated the Romanian OSD texts 2015-02-07 18:51:28 +01:00
Klaus Schmidinger
8225d3758f Modified EntriesOnSameFileSystem(), so that it returns 'true' if either of the given; changed handling the 'error' variable in cDirCopier 2015-02-07 16:08:13 +01:00
Klaus Schmidinger
202a6b3072 Added a confirmation before renaming a recording to its folder name 2015-02-07 16:01:13 +01:00
Klaus Schmidinger
5b88d0bfac Fixed setting an empty recording name or folder to a blank in the "Edit recording" menu 2015-02-07 15:53:30 +01:00
Klaus Schmidinger
8b57eacd1b Updated the Finnish OSD texts 2015-02-07 14:32:47 +01:00
Klaus Schmidinger
18e7903b78 Fixed a deadlock in accessing marks 2015-02-07 14:29:14 +01:00
Klaus Schmidinger
5d8302b147 Changed "binary" to "adaptive" 2015-02-07 12:18:20 +01:00
Klaus Schmidinger
2e8f4b8d21 Fixed a typo 2015-02-07 11:09:22 +01:00
Klaus Schmidinger
9c13f76b66 Updated the Romanian OSD texts 2015-02-07 10:15:50 +01:00
Klaus Schmidinger
f3e6d39382 cDvbPlayer and cReplayControl now use the same list of editing marks 2015-02-06 15:42:21 +01:00
Klaus Schmidinger
4ffd2d6ccd Modified translations for adaptive skip mode 2015-02-06 11:00:06 +01:00
Klaus Schmidinger
1b2a62623c Changed the naming of "binary skip mode" to "adaptive skip mode" 2015-02-06 10:25:25 +01:00
Klaus Schmidinger
ad45f801d5 Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd() 2015-02-05 14:24:35 +01:00
Klaus Schmidinger
f60d90aeb6 Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in two separate positions 2015-02-05 11:03:36 +01:00
Klaus Schmidinger
8a519202a8 Changed the German translations if the texts related to "binary skipping" 2015-02-05 10:54:04 +01:00
Klaus Schmidinger
9c9e200df5 Modified runvdr.template to improve compatibility with the "bash" and "dash" shells 2015-02-05 10:43:42 +01:00
Klaus Schmidinger
b3b0747328 Updated the Hungarian OSD texts 2015-02-05 09:58:35 +01:00
Klaus Schmidinger
8f9ff2cfe0 Fixed the German translations of "latitude" and "longitude" (they were swapped) 2015-02-05 09:36:58 +01:00
Klaus Schmidinger
ea94337f96 Updated the Italian OSD texts (cont'd) 2015-02-05 09:19:50 +01:00
Klaus Schmidinger
3e06c99a0a The "Select folder" menu now adds the folder names of all existing recordings to any names that have been predefined in "folders.conf" 2015-02-04 13:20:37 +01:00
Klaus Schmidinger
f2807bc782 Updated the Italian OSD texts 2015-02-04 10:46:10 +01:00
Klaus Schmidinger
6464eff516 In the "Edit recording" menu the '0' key can now be used on the "Name:" field to remove the name of the recording and replace it with the last element of the recording's folder path name 2015-02-04 09:38:55 +01:00
Klaus Schmidinger
e1acb774c6 Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to restrict the LCN (Logical Channel Numbers) parsing to networks that actually use this non-standard feature 2015-02-04 09:18:30 +01:00
Klaus Schmidinger
de6d37134c Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows "Switch" if the selected event is on a different channel 2015-02-03 11:56:51 +01:00
Klaus Schmidinger
93ec1a9df2 Fixed switching channels in the Schedule menu after going through various Now and Schedule menus for different channels 2015-02-03 10:52:33 +01:00
Klaus Schmidinger
0703fbf527 Updated the Hungarian OSD texts 2015-02-03 09:51:45 +01:00
Klaus Schmidinger
0e5de67d5f Updated the Romanian OSD texts 2015-02-03 09:38:17 +01:00
Klaus Schmidinger
d993d51367 Updated the Ukrainian OSD texts 2015-02-03 09:31:36 +01:00
Klaus Schmidinger
3909ce39ef Updated the Estonian OSD texts 2015-02-03 09:17:40 +01:00
Klaus Schmidinger
e8cd0ed7c5 Updated the Finnish OSD texts 2015-02-03 08:51:59 +01:00
Klaus Schmidinger
85969bc0bd Added a missing VDRDIR="$(CWD)" to the clean-plugins target of the Makefile 2015-02-02 14:50:46 +01:00
Klaus Schmidinger
659f67f04f Fixed cCamSlot::Assign(), so that it actually ignores the value of Query if Device is NULL (as described in the header file) 2015-02-02 14:04:10 +01:00
Klaus Schmidinger
e2d0f3f845 Added "Setup/Replay/Binary skip strict" 2015-02-02 13:59:19 +01:00
Klaus Schmidinger
ed766859d7 Added code from the "jumpplay" patch that makes the recording still be considered unviewed when stopping replay within RESUMEBACKUP seconds of the first mark 2015-02-02 09:51:32 +01:00
Klaus Schmidinger
5503161fdc Added SDNOTIFY, NO_KBD and BIDI to Make.config.template 2015-02-02 09:13:10 +01:00
Klaus Schmidinger
e83b09b4eb Adjusted release date 2015-02-02 08:56:39 +01:00
Klaus Schmidinger
2e34a10e93 Updated the Lithuanian OSD texts 2015-02-02 08:53:35 +01:00
Klaus Schmidinger
aa838791bf Fixed the Finnish translation of "Binary skip timeout (s)" 2015-02-01 16:21:39 +01:00
Klaus Schmidinger
4a6f714153 Fixed the German translation of "VDR will shut down later - press Power to force" 2015-02-01 15:20:04 +01:00
Klaus Schmidinger
f736d3a3de Fixed the German translation of "Binary skip timeout (s)" 2015-02-01 15:03:34 +01:00
Klaus Schmidinger
471b287f70 Fixed a memory leak in case of broken Extended Event Descriptors 2015-02-01 14:59:52 +01:00
Klaus Schmidinger
1c4865147a Added support for LCN (Logical Channel Numbers) 2015-02-01 13:49:10 +01:00
Klaus Schmidinger
b3bc711ed2 Removed a superfluous entry 2015-02-01 12:51:23 +01:00
Klaus Schmidinger
ef09e376b1 Updated the Finnish OSD texts 2015-02-01 11:34:57 +01:00
Klaus Schmidinger
0a5eb88696 Fixed setting the read index in cDvbPlayer::Goto() in case Still is false; The function cDvbPlayer::Goto() now automatically calls Play() if Still is false 2015-02-01 11:20:54 +01:00
Klaus Schmidinger
63372cd4aa Now also checking the CAM slot's priority when activating a CAM 2015-01-31 14:50:55 +01:00
Klaus Schmidinger
b9f0e39b1b Fixed a typo 2015-01-31 14:36:41 +01:00
Klaus Schmidinger
ebab5f3ec1 Made cRecording::GetResume() public 2015-01-31 13:37:02 +01:00
Klaus Schmidinger
6749e4ead9 Modified behavior of the '8' key during replay 2015-01-31 11:42:05 +01:00
Klaus Schmidinger
58c4fd5a0b Added ARGSDIR to the ONEDIR section of Make.config.template 2015-01-30 15:20:57 +01:00
Klaus Schmidinger
fccebc816d Updated the Estonian OSD texts 2015-01-30 13:41:03 +01:00
Klaus Schmidinger
bf7cc2c04f Added support for smart card activation 2015-01-30 13:38:44 +01:00
Klaus Schmidinger
7f195606ee Changed unit and range for binary skip timeout 2015-01-29 09:05:50 +01:00
Klaus Schmidinger
91e0151674 The keys '1' and '3' can now be used in replay mode to position an editing mark in "binary" mode 2015-01-27 21:22:53 +01:00
Klaus Schmidinger
4aa496b079 Added support for "Satellite Channel Routing" (SCR) according to EN50607, also known as "JESS" 2015-01-26 12:02:14 +01:00
Klaus Schmidinger
4fcd3ba56e Added functionality based on the "jumpplay" patch 2015-01-26 10:20:51 +01:00
Klaus Schmidinger
77c0de71c4 Updated the Romanian OSD texts 2015-01-24 11:01:43 +01:00
Klaus Schmidinger
7c40f797dc Added a missing 'void' 2015-01-23 15:12:47 +01:00
Klaus Schmidinger
189f694710 Updated the Finnish OSD texts 2015-01-23 10:27:01 +01:00
Klaus Schmidinger
b02c8b606c Fixed the link to "svdrpsend (1)" in the vdr.1 man page 2015-01-20 15:35:44 +01:00
Klaus Schmidinger
24c9e45789 Fixed "warning: invalid suffix on literal" with GCC 4.8 and C++11 2015-01-20 14:56:18 +01:00
Klaus Schmidinger
53db7fdc50 Added entries for version 2.0.7 2015-01-20 09:33:07 +01:00
Klaus Schmidinger
70aa4e4247 Updated the Italian OSD texts 2015-01-20 09:06:54 +01:00
Klaus Schmidinger
b26898e6e1 Adjusted release date 2015-01-18 10:14:48 +01:00
Klaus Schmidinger
0c2316b638 Added the new command line option --updindex 2015-01-17 15:03:01 +01:00
Klaus Schmidinger
f42cbac237 Fixed generating the index file of an existing recording 2015-01-17 13:47:33 +01:00
Klaus Schmidinger
b06d9cce37 Enhanced description of "Volume linearize" 2015-01-17 11:37:10 +01:00
Klaus Schmidinger
be92ad13ab Now returning from removing deleted recordings after at most 10 seconds, or if the user presses a remote control key 2015-01-17 10:52:15 +01:00
Klaus Schmidinger
3bb447cf8d Added a comment to cRecorder::Activate() about the need to call Detach() in the destructor 2015-01-15 14:29:18 +01:00
Klaus Schmidinger
66c65beea7 Added cOsdProvider::OsdSizeChanged() 2015-01-15 11:33:58 +01:00
Klaus Schmidinger
be9a6de0ef Plugins can now implement the function SetMenuSortMode() in their skin objects derived from cSkinDisplayMenu, to get informed about the currently used sort mode 2015-01-15 10:51:37 +01:00
Klaus Schmidinger
b3954aefd5 Modified the CAM API so that it is possible to implement CAMs that can be freely assigned to any devices 2015-01-15 09:28:37 +01:00
Klaus Schmidinger
555fe68a01 Added the channel name to log messages that reference a channel 2015-01-14 12:17:39 +01:00
Klaus Schmidinger
1ddda558b0 Modified the descriptions of several threads 2015-01-14 11:39:55 +01:00
Klaus Schmidinger
db47cdaa1a Use of the function cOsd::GetBitmap() outside of derived classes is now deprecated 2015-01-14 10:50:55 +01:00
Klaus Schmidinger
7062583ab4 Added support for PGS subtitles 2015-01-14 10:39:55 +01:00
Klaus Schmidinger
b454a0777f Added handling for DTS audio tracks to cPatPmtParser::ParsePmt() 2015-01-14 09:36:00 +01:00
Klaus Schmidinger
6ba9de491c Added boolean return values to cVector's InsertUnique(), AppendUnique() and RemoveElement() 2015-01-14 09:09:06 +01:00
Klaus Schmidinger
24b38eb812 Now handling CAT sections that consist of more than one TS packet 2015-01-13 14:45:12 +01:00
Klaus Schmidinger
14e37ed124 Changed the German weekday names from "MonDieMitDonFreSamSon" to "Mo.Di.Mi.Do.Fr.Sa.So." 2015-01-13 10:01:50 +01:00
Klaus Schmidinger
cee82d8659 Fixed jumping to an absolute position via the Red key in case replay was paused 2015-01-13 09:51:20 +01:00
Klaus Schmidinger
f5bbf06b60 Added the new parameters "Setup/Miscellaneous/Volume steps" and ".../Volume linearize" 2015-01-12 14:56:42 +01:00
Klaus Schmidinger
6b229d7d5f Added functions to set and retrieve the priority of a cReceiver 2015-01-12 14:12:19 +01:00
Klaus Schmidinger
67fff7f4fc Fixed a possible out-of-bounds access in cVector::Remove() 2015-01-12 12:14:16 +01:00
Klaus Schmidinger
6e35f47a3e Added the functions IndexOf(), InsertUnique(), AppendUnique() and RemoveElement() to the cVector class 2015-01-12 12:10:15 +01:00
Klaus Schmidinger
6514649439 Added subsystem id support for DVB devices connected via USB 2015-01-12 11:42:15 +01:00
Klaus Schmidinger
77340e9273 Added a missing backslash to the help text of the SVDRP command MOVR 2015-01-12 11:19:11 +01:00
Klaus Schmidinger
35f73199d4 Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS (cont'd) 2015-01-12 10:44:58 +01:00
Klaus Schmidinger
34c79fdc50 Fixed support for systemd 2015-01-11 13:42:26 +01:00
Klaus Schmidinger
c8e789e12a Revoked "Increased the PMT_SCAN_TIMEOUT to avoid timeouts when scanning PMTs" (was unnecessary); pat.c change removed from RCS 2015-01-11 13:32:55 +01:00
Klaus Schmidinger
77173b7057 Fixed (well, actually worked around) a problem with subtitles not being displayed because the broadcaster doesn't set the data's version numbers as required by the DVB standard 2015-01-09 12:03:31 +01:00
Klaus Schmidinger
7fac1d4ae2 Fixed resetting the receiver for EMM pids for CAMs that need to receive the TS 2015-01-09 09:46:57 +01:00
Klaus Schmidinger
52620f147b Fixed detaching receivers from devices in case a CAM needs to receive the TS 2015-01-07 13:00:33 +01:00
Klaus Schmidinger
f3d583b124 Increased the PMT_SCAN_TIMEOUT to avoid timeouts when scanning PMTs 2015-01-06 14:02:40 +01:00
Klaus Schmidinger
fc0094231d Added cOsd::DrawScaledBitmap() 2015-01-04 15:53:47 +01:00
Klaus Schmidinger
aacdeba5d9 Fixed multiple OBSOLETE marks in channels that are not listed in the SDT in case "Setup/Miscellaneous/Show channel names with source" is set to "yes" 2015-01-04 15:11:13 +01:00
Klaus Schmidinger
761fb103b7 Channels that are not listed in the SDT are now only marked as OBSOLETE if"Setup/DVB/Update channels" is set to a value other than "no" or "PIDs only" 2015-01-04 14:37:36 +01:00
Klaus Schmidinger
afc17c1168 The pid of the PMT in which the CA descriptors of a given channel are broadcast is now stored together with the CA descriptors 2015-01-04 13:36:46 +01:00
Klaus Schmidinger
bfdd611fde Fixed a bug in the Makefile when installing plugins with LCLBLD=1 2015-01-01 13:55:13 +01:00
Klaus Schmidinger
ffeb43a38a Updated the dvbhddevice plugin source 2014-10-03 13:36:58 +02:00
Klaus Schmidinger
93f4852ba3 Fixed a possible crash in the LCARS skin 2014-06-12 08:55:32 +02:00
Klaus Schmidinger
4e460da371 VDR now reads command line options from *.conf files in /etc/vdr/conf.d 2014-04-14 13:15:34 +02:00
Klaus Schmidinger
6feb8d8875 Added entries for version 2.0.6 2014-04-13 14:04:47 +02:00
Klaus Schmidinger
57222002b2 Fixed a possible division by zero in frame rate detection 2014-04-13 13:50:04 +02:00
Klaus Schmidinger
4fc8101910 Whitespace fix 2014-04-13 11:49:40 +02:00
Klaus Schmidinger
011a984951 A cCamSlot that has WantsTsData set to true in its constructor now also gets the CAT and EMM PIDs data 2014-04-06 10:56:50 +02:00
Klaus Schmidinger
105ad61b6f Updated the Italian OSD texts 2014-03-24 13:28:05 +01:00
Klaus Schmidinger
23ea3dcb48 No longer logging an error message in DirSizeMB() if the given directory doesn't exist 2014-03-22 14:25:46 +01:00
Klaus Schmidinger
a4b8729e6a Added support for systemd 2014-03-16 12:53:47 +01:00
Klaus Schmidinger
687b93b215 Now resetting the isOnVideoDirectoryFileSystem member of a cRecording to -1 after renaming it 2014-03-16 11:11:04 +01:00
Klaus Schmidinger
8af9abbbb9 Now initializing the isOnVideoDirectoryFileSystem member of cRecording when scanning the video directory 2014-03-16 11:01:46 +01:00
Klaus Schmidinger
25e2dbf031 Added support for "Pilot", "T2-System-Id" and "SISO/MISO" parameters 2014-03-16 10:48:30 +01:00
Klaus Schmidinger
af56e53315 Refactored setup parameter handling for output devices 2014-03-15 14:05:15 +01:00
Klaus Schmidinger
7a114d640c Added a log message in case a receiver is detached from its device because the assigned CAM can't decrypt the channel 2014-03-11 09:48:40 +01:00
Klaus Schmidinger
c5071cc87b The SDT is now only parsed *after* the NIT has been read 2014-03-10 14:50:58 +01:00
Klaus Schmidinger
0990c279c7 Fixed indentation 2014-03-10 13:31:23 +01:00
Klaus Schmidinger
76c32d60f9 When checking for obsolete channels, those with an RID that is not 0 are now ignored 2014-03-10 13:17:11 +01:00
Klaus Schmidinger
ebdac2ddfc Fixed drawing the live indicator in the LCARS skin in case there are no devices 2014-03-10 12:09:52 +01:00
Klaus Schmidinger
caf708b618 Updated the Finnish OSD texts 2014-03-10 10:48:15 +01:00
Klaus Schmidinger
40aaf784b9 The Recordings menu now remembers the last recording the cursor was positioned on 2014-03-09 15:15:48 +01:00
Klaus Schmidinger
db1ca2c854 Removed an unnecessary assignment from cMenuRecordings::~cMenuRecordings() 2014-03-09 13:03:35 +01:00
Klaus Schmidinger
a9f1297022 Fixed adding new source types in case they are already registered 2014-03-09 12:11:32 +01:00
Klaus Schmidinger
f8058586f9 Fixed handling PAT packets when detecting frames 2014-03-08 15:05:35 +01:00
Klaus Schmidinger
ad1352f109 Fixed a possible endless loop in cH264Parser::GetGolombUe() 2014-03-08 15:04:09 +01:00
Klaus Schmidinger
df03740741 Changed email address of Christopher Reimer 2014-03-05 10:18:18 +01:00
Klaus Schmidinger
a437a3d743 Fixed handling transfer mode on full featured DVB cards for encrypted channels that have no audio pid 2014-02-27 17:05:55 +01:00
Klaus Schmidinger
927aa49576 Fixed keeping the current position in the Recordings menu if a recording was deleted in a sub folder 2014-02-26 11:39:06 +01:00
Klaus Schmidinger
de1ce0b27d Revoked "Fixed some compiler warnings with Clang 3.4.1" from ci.c, because this did not compile with older versions of gcc 2014-02-25 10:04:07 +01:00
Klaus Schmidinger
a9e1ca63dd Adjusted release date 2014-02-23 13:05:38 +01:00
Klaus Schmidinger
4cd251fc48 Fixed handling frame detection buffer length 2014-02-21 15:14:14 +01:00
Klaus Schmidinger
6d59e2866b Fixed detecting broken video data streams when recording 2014-02-21 09:20:36 +01:00
Klaus Schmidinger
da13903228 No section number in debug message 2014-02-19 08:57:43 +01:00
Klaus Schmidinger
585f622886 Fixed the replay progress display for very long recordings 2014-02-18 13:48:05 +01:00
Klaus Schmidinger
0de69c3899 Improved PAT/PMT scanning to speed up initial tuning to encrypted channels on transponders with many PAT entries 2014-02-18 13:12:39 +01:00
Klaus Schmidinger
0238234c52 Fixed learning keyboard remote control codes 2014-02-15 12:43:25 +01:00
Klaus Schmidinger
8b2f500d2a Replaced the NULL pointer assignment in ~cReceiver() to force a segfault with a call to abort() 2014-02-08 16:00:13 +01:00
Klaus Schmidinger
a30563634d Added LinkageTypePremiere to libsi/si.h and eit.c to avoid a compiler warning with Clang 3.4.1 2014-02-08 14:21:47 +01:00
Klaus Schmidinger
e5fde77e56 Fixed some compiler warnings with Clang 3.4.1 2014-02-08 13:00:39 +01:00
Klaus Schmidinger
bfb9c8fddd Fixed numbering frames (cont'd) 2014-02-08 11:16:02 +01:00
Klaus Schmidinger
0402ce9b8e Fixed a possible crash in the OSD demo 2014-02-06 11:57:51 +01:00
Klaus Schmidinger
e2f0edd8f6 Fixed numbering frames 2014-02-06 10:57:45 +01:00
Klaus Schmidinger
4f1404e991 Fixed flickering if subtitles are active while the OSD demo is running 2014-02-04 10:45:55 +01:00
Klaus Schmidinger
9813a9164b Further clarified the semantics of cCamSlot::Decrypt() 2014-01-31 09:21:47 +01:00
Klaus Schmidinger
b9ba7000bb Updated the Estonian OSD texts 2014-01-31 09:10:07 +01:00
Klaus Schmidinger
4c304467ba Fixed clearing non-editable members in the channel editor 2014-01-30 09:10:39 +01:00
Klaus Schmidinger
6a9502ab17 Fixed sorting recordings by time in the Recordings menu if "Setup/OSD/Recording directories" is set to "no" 2014-01-29 10:45:28 +01:00
Klaus Schmidinger
9eda923269 Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 100 and introduced counting the number of actual video TS packets in cTsPayload 2014-01-28 11:26:02 +01:00
Klaus Schmidinger
47a6f8fbff Now checking whether the primary device actually has a decoder before retuning the current channel after a change in its parameters 2014-01-26 12:40:57 +01:00
Klaus Schmidinger
c2826000bb Now checking whether the primary device atcually has a decoder before retuning the current channel after a change in its parameters 2014-01-26 12:27:51 +01:00
Klaus Schmidinger
7cea5df074 Adjusted release date 2014-01-26 10:40:23 +01:00
Klaus Schmidinger
8b9e1f513f Fixed a superfluous call to the skin's SetRecording() function after renaming a recording 2014-01-25 12:44:32 +01:00
Klaus Schmidinger
fdbf796b6b The new function cStatus::ChannelChange() can be implemented by plugins to be informed about changes to the parameters of a channel that may require a retune 2014-01-25 10:54:51 +01:00
Klaus Schmidinger
5ac41bf091 Revoked "Fixed sending CA descriptors to CAMs in case a cReceiver is not used for a recording or live view" - was unstable 2014-01-24 11:55:40 +01:00
Klaus Schmidinger
e158021a4d Replaced "Schnitt" with "Bearbeitung" in the German OSD texts 2014-01-22 10:40:50 +01:00
Klaus Schmidinger
549c499501 Fixed a wrong alignment in cCiDateTime::SendDateTime() 2014-01-22 09:41:08 +01:00
Klaus Schmidinger
838566ea41 Fixed a deadlock 2014-01-21 11:12:01 +01:00
Klaus Schmidinger
6e2f0f695f Now making sure the primary device goes into transfer mode for live viewing if the CAM wants to receive the TS data 2014-01-20 12:14:30 +01:00
Klaus Schmidinger
6f9929b1c0 Now unassigning CAMs from their devices when they are no longer used 2014-01-18 14:30:58 +01:00
Klaus Schmidinger
35d4ceaf37 Fixed deleting the source recording after moving it to a different volume (cont'd) 2014-01-18 12:54:56 +01:00
Klaus Schmidinger
2e41129c36 Fixed detecting frame borders in MPEG-2 streams that have "bottom fields" or varying GOP structures 2014-01-18 11:27:30 +01:00
Klaus Schmidinger
1df6a87249 Now waiting explicitly until all CAM slots are ready before switching to the initial channel when VDR is started 2014-01-16 11:57:54 +01:00
Klaus Schmidinger
e02d608bce Fixed deleting the source recording after moving it to a different volume 2014-01-16 11:09:03 +01:00
Klaus Schmidinger
7008aeaf22 Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 10 2014-01-16 10:31:28 +01:00
Klaus Schmidinger
ac44e6f2ae Added logging the supported system ids of a CAM 2014-01-15 10:21:48 +01:00
Klaus Schmidinger
1d869c4b36 Fixed sending CA descriptors to CAMs in case a cReceiver is not used for a recording or live view, like e.g. streaming clients 2014-01-14 14:39:59 +01:00
Klaus Schmidinger
e7c86c6760 Improved locking for CAM slots and made the pure functions of cCiAdapter have default implementations 2014-01-14 12:21:17 +01:00
Klaus Schmidinger
dbf342df3c cFont::CreateFont() now returns a dummy font in case there are no fonts installed 2014-01-07 12:42:37 +01:00
Klaus Schmidinger
3cf87dfe8a Added entries for version 2.0.5 2014-01-07 10:34:24 +01:00
Klaus Schmidinger
ea5e373df6 Updated 'sources.conf' 2014-01-07 09:03:29 +01:00
Klaus Schmidinger
c7256c1c11 Channels that are no longer contained in the current SDT of a transponder are now marked with the keyword OBSOLETE in their name and provider fields 2014-01-05 10:41:46 +01:00
Klaus Schmidinger
7cbced0c12 Made GetCaDescriptors() and GetCaPids() return all values if CaSystemIds is 0xFFFF 2014-01-04 11:17:24 +01:00
Klaus Schmidinger
a84defe86f Added support for buffered CAM decryption 2014-01-02 10:47:08 +01:00
Klaus Schmidinger
9dbd953cc2 Eliminated MAXDVBDEVICES 2014-01-01 14:26:26 +01:00
Klaus Schmidinger
ea613e6b26 Avoiding unnecessary pkg-config warnings in plugin Makefiles 2014-01-01 13:35:13 +01:00
Klaus Schmidinger
16dd077fb2 Changed email address for Christian Kaiser 2014-01-01 13:10:30 +01:00
Klaus Schmidinger
4da70bbab1 The script given to VDR with the '-r' option is now also called after the recording process has actually started 2014-01-01 12:53:40 +01:00
Klaus Schmidinger
566c6fa464 Added receiving Ca pids to cCamSlot 2014-01-01 12:37:22 +01:00
Klaus Schmidinger
b95b85fee4 Deleted a superfluous assignment in cPipe::Open() 2013-12-29 17:22:10 +01:00
Klaus Schmidinger
63ee17701a Added a check to avoid a possible NULL pointer dereference in cCiSession::SendData() 2013-12-29 17:20:22 +01:00
Klaus Schmidinger
00e2415b81 Implemented cCamSlot::Decrypt() 2013-12-28 13:29:54 +01:00
Klaus Schmidinger
6a8a2cf5fb Changed '%a' to the POSIX compliant '%m' in all scanf() calls 2013-12-28 11:37:42 +01:00
Klaus Schmidinger
c949ad35cc Fixed some spellings in positioner.h and Doxyfile 2013-12-28 11:21:09 +01:00
Klaus Schmidinger
ae4ffacbda Avoiding double entries when externally renaming a recording (cont'd) 2013-12-27 11:06:01 +01:00
Klaus Schmidinger
1379b621f7 Now handing down the recording filter to sub menus 2013-12-27 09:00:24 +01:00
Klaus Schmidinger
089b5eb212 Avoiding double entries when externally renaming a recording 2013-12-27 08:46:17 +01:00
Klaus Schmidinger
7c877edd2d Added a note to ePlayMode in device.h that VDR itself always uses pmAudioVideo when replaying a recording 2013-12-25 13:55:39 +01:00
Klaus Schmidinger
4e22b62192 cDevice::TrickSpeed() now has an additional parameter named Forward 2013-12-25 13:36:51 +01:00
Klaus Schmidinger
21c8829783 Made it clear that the Data parameter in cDevice::StillPicture() may point to a series of packets, not just a single one 2013-12-25 13:12:07 +01:00
Klaus Schmidinger
20791e4d95 Added handling UTF-8 'umlaut' characters to cKbdRemote 2013-12-25 12:47:04 +01:00
Klaus Schmidinger
f6283b8e91 The Recordings menu can now be called with a cRecordingFilter 2013-12-25 12:13:00 +01:00
Klaus Schmidinger
b936cb366f Fixed setting the name of the video directory to avoid a crash when using --genindex, and also to use the correct directory with --edit 2013-12-25 11:36:44 +01:00
Klaus Schmidinger
31e334a332 Added a missing closing ')' in the help and man page entry of the --vfat option 2013-12-25 11:04:25 +01:00
Klaus Schmidinger
7a2d3d993c Fixed a possible crash if the recordings list is updated externally while the Recordings menu is open 2013-12-24 14:41:09 +01:00
Klaus Schmidinger
a9acab6b7e Fixed uninitialized item area coordinates in cSkinLCARSDisplayMenu 2013-11-16 13:26:55 +01:00
Klaus Schmidinger
a8cbe3a56d Simplified some conditional expressions in skinlcars.c and skinsttng.c 2013-11-15 15:35:21 +01:00
Klaus Schmidinger
dfb9862460 Fixed a missing initialization in the c'tor of cSkinLCARSDisplayChannel 2013-11-15 15:23:43 +01:00
Klaus Schmidinger
215fde71a3 Updated the Italian OSD texts 2013-11-11 10:35:09 +01:00
Klaus Schmidinger
4bee872c09 Fixed a typo 2013-11-04 12:48:31 +01:00
Klaus Schmidinger
e8f557ae5f Removed '_' from the FileNameChars and CharMap translations in uk_UA.po 2013-11-04 11:24:53 +01:00
Klaus Schmidinger
d7462ae5ad Changes in the teletext PID no longer cause retuning 2013-11-04 10:11:51 +01:00
Klaus Schmidinger
a48a0543c8 Fixed some typos 2013-11-03 14:48:21 +01:00
Klaus Schmidinger
ff4aed2227 The new menu category mcRecordingEdit is now used to mark menus that edit recording properties 2013-11-03 14:10:59 +01:00
Klaus Schmidinger
39f6b6fc6b Fixed a possible access to uninitialized data in cEIT::cEIT() 2013-11-03 14:02:01 +01:00
Klaus Schmidinger
0b5085f4f0 In the "Select folder" menu pressing Ok now selects the folder, even if this is a folder that contains sub folders 2013-11-03 13:43:01 +01:00
Klaus Schmidinger
512cd24e53 Added code for parsing LCN and AVC descriptors to libsi 2013-10-30 10:18:26 +01:00
Klaus Schmidinger
83a8d5a561 Changed the absolute latitude limit for visible satellites to 81.2 degrees 2013-10-30 10:11:55 +01:00
Klaus Schmidinger
26fbb921f5 The LIRC remote control now connects to the socket even if it doesn't yet exist whe VDR is started 2013-10-29 16:03:43 +01:00
Klaus Schmidinger
589f5519d7 Added entries for version 2.0.4 2013-10-23 10:20:48 +02:00
Klaus Schmidinger
3592293cca Updated the Finnish OSD texts 2013-10-23 08:28:38 +02:00
Klaus Schmidinger
4312dfcf41 Revoked "Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P" 2013-10-21 08:59:59 +02:00
Klaus Schmidinger
94ced5845a When cutting a recording it is now checked whether there is already an edited version of this recording 2013-10-21 08:23:19 +02:00
Klaus Schmidinger
a16391ecb0 Changed the name of the SVDRP command RENR to MOVR 2013-10-21 07:55:23 +02:00
Klaus Schmidinger
4ea90cefe8 Fixed some compiler warnings with gcc-4.6.3 2013-10-20 09:57:55 +02:00
Klaus Schmidinger
97eb54738f Updated the Finnish OSD texts 2013-10-20 09:34:59 +02:00
Klaus Schmidinger
641acd5709 Changed the return value of cPositioner::HorizonLongitude() to 0 in case the latitude of the antenna location is beyond +/-81 degrees 2013-10-20 09:32:23 +02:00
Klaus Schmidinger
856f67b4ac Adjusted release date 2013-10-19 10:04:51 +02:00
Klaus Schmidinger
71778859a7 Bumped the APIVERSION 2013-10-19 10:00:00 +02:00
Klaus Schmidinger
47b09cce5d Restoring the source recording in case copying fails 2013-10-16 10:24:28 +02:00
Klaus Schmidinger
c9fb7eb4d6 Fixed an inconsistent behavior between opening the Recordings menu manually via the main menu and by pressing the Recordings key 2013-10-16 09:43:47 +02:00
Klaus Schmidinger
3870322888 Fixed handling actions in Recordings Info/Edit in case the recording is being replayed 2013-10-14 10:28:10 +02:00
Klaus Schmidinger
396f8c96af Added refreshing the recording in the Recording Info/Edit menus 2013-10-14 09:59:04 +02:00
Klaus Schmidinger
9bd415d58e Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P 2013-10-13 14:48:56 +02:00
Klaus Schmidinger
8bc6bcf86e The function cRecordings::MBperMinute() now only takes into account recordings with less than 5 seconds per megabyte 2013-10-12 13:48:32 +02:00
Klaus Schmidinger
54b3135d59 Revised the section on "Learning the remote control keys" in the INSTALL file 2013-10-12 12:56:31 +02:00
Klaus Schmidinger
446c3b4cfd Changed cRecorder::Action() to use cTimeMs instead of time() 2013-10-12 12:08:37 +02:00
Klaus Schmidinger
adf0dac2c3 Now also checking the source (in addition to the transponder) when setting the system time from the TDT 2013-10-12 11:23:10 +02:00
Klaus Schmidinger
1caa78a3e7 Fixed writing group separators to channels.conf that contain a comma 2013-10-11 11:38:05 +02:00
Klaus Schmidinger
e61e1ed425 Updated the Italian OSD texts 2013-10-11 09:46:43 +02:00
Klaus Schmidinger
01d7269904 Removed the deprecated VideoDirectory variable 2013-10-11 09:38:07 +02:00
Klaus Schmidinger
7c72f79329 Changed some variable names in positioner.c to match the names used in the page with the explanation on vdr-portal.de 2013-10-10 14:21:44 +02:00
Klaus Schmidinger
bf52b1a2e3 Fixed a comment 2013-10-10 13:23:30 +02:00
Klaus Schmidinger
2bdb599fbc Added renaming and moving recordings and folders, and editing a recording's priority and lifetime; added cutting queue 2013-10-10 13:13:30 +02:00
Klaus Schmidinger
3971cc6e88 Removed the code for distributing recordings over several video directories; added the cVideoDirectory plugin API 2013-09-11 12:20:37 +02:00
Klaus Schmidinger
209b850067 Removed superfluous lines 2013-09-10 13:10:40 +02:00
Klaus Schmidinger
7251fefa89 The Yellow button in the main menu no longer acts as "Pause" if "Pause key handling" is set to "do not pause live video" 2013-09-07 12:52:14 +02:00
Klaus Schmidinger
3c72be23f0 Added checks for debug file i/o 2013-09-07 10:39:46 +02:00
Klaus Schmidinger
699454ad7f Unified the internal sequence of actions when pressing the Blue and the Back key, respectively, during replay 2013-09-07 10:20:00 +02:00
Klaus Schmidinger
e8fb500819 Fixed displaying DVB subtitles (cont'd) 2013-09-06 12:37:27 +02:00
Klaus Schmidinger
d6c10fec7b Added entries for version 2.0.3 2013-09-03 11:09:17 +02:00
Klaus Schmidinger
f34be6f5f0 Fixed a typo 2013-09-02 07:53:54 +02:00
Klaus Schmidinger
b931724b75 Fixed cleaning up old EPG events in case no epg data file is given 2013-08-31 13:21:09 +02:00
Klaus Schmidinger
bd6da13a67 Updated the Estonian OSD texts 2013-08-31 12:45:15 +02:00
Klaus Schmidinger
f52e8759c5 Fixed wrong initialization of Setup.PositionerSwing 2013-08-31 12:42:36 +02:00
Klaus Schmidinger
2090ed6f7c Added credit to Thomas Bergwinkl's Rotor plugin 2013-08-31 12:19:10 +02:00
Klaus Schmidinger
246d5412e0 Fixed displaying DVB subtitles 2013-08-30 12:00:40 +02:00
Klaus Schmidinger
9b1b6b3ce4 Fixed handling DVB subtitle fill region codes for 2 and 8 bpp 2013-08-27 10:22:22 +02:00
Klaus Schmidinger
c8c14e31d8 Updated the Finnish OSD texts 2013-08-26 08:47:17 +02:00
Klaus Schmidinger
4d0a1db4ac Adjusted release date 2013-08-25 10:16:43 +02:00
Klaus Schmidinger
a0f63d40c6 The code for distributing recordings over several video directories is now deprecated and disabled by default 2013-08-23 13:09:27 +02:00
Klaus Schmidinger
f0537ea0f1 Added Begin/EndSegmentTransfer() to the EPG handler interface 2013-08-23 10:54:49 +02:00
Klaus Schmidinger
9492231058 Reverted the change from version 1.5.7 that made all logging go to LOG_ERR 2013-08-23 10:37:54 +02:00
Klaus Schmidinger
c385d5bf0c All bonded devices (except for the master) now turn off their LNB power completely to avoid problems when receiving vertically polarized transponders 2013-08-23 09:47:27 +02:00
Klaus Schmidinger
d377c778a7 Increased the value of MAXRETRIES to 20 to reduce the probability of disturbances in transfer mode 2013-08-22 12:35:10 +02:00
Klaus Schmidinger
17b12a32b0 cDevice::IsPrimaryDevice() now also checks whether the primary device actually has a decoder and returns false otherwise 2013-08-22 12:00:03 +02:00
Klaus Schmidinger
99321b371a Fixed a possible crash when shutting down VDR while subtitles are being displayed 2013-08-22 10:33:59 +02:00
Klaus Schmidinger
58c9fdc8c5 Fixed handling LIRC events in case repeated events are lost 2013-08-22 09:35:35 +02:00
Klaus Schmidinger
7fc654eb21 Fixed handling the -o option (short form of --outputonly) 2013-08-22 08:22:50 +02:00
Klaus Schmidinger
a0a4421278 No longer trying to delete old recordings in AssertFreeDiskSpace() if the given Priority is less than 1 2013-08-21 13:56:33 +02:00
Klaus Schmidinger
7a359a958e Fixed asserting free disk space in the cutter 2013-08-21 13:22:19 +02:00
Klaus Schmidinger
cd10b439d0 Added basic support for positioners to control steerable satellite dishes 2013-08-21 11:02:52 +02:00
Klaus Schmidinger
5b76eec1af Added option -x to pic2mpg 2013-05-23 10:00:23 +02:00
Klaus Schmidinger
f55aee0fc1 Fixed indentation 2013-05-23 09:41:54 +02:00
Klaus Schmidinger
21957f6e38 Backport of 'Fixed a crash in the LCARS skin's main menu in case there is no current channel' 2013-05-19 12:12:37 +02:00
Klaus Schmidinger
fc697bfdb1 Fixed a crash in the LCARS skin's main menu in case there is no current channel 2013-05-19 12:07:07 +02:00
Klaus Schmidinger
818763b332 Backport of 'Fixed an endless loop in the DrawEllipse() functions for very small ellipses' 2013-05-18 12:47:52 +02:00
Klaus Schmidinger
cc6c05fcf2 Fixed an endless loop in the DrawEllipse() functions for very small ellipses 2013-05-18 12:39:59 +02:00
Klaus Schmidinger
f6adb32202 Fixed unwanted version tag on checkout of older version 2013-05-02 10:23:11 +02:00
Klaus Schmidinger
4e1a01959d Backport of 'Fixed an error message when parsing SCR values in diseqc.conf' 2013-05-02 09:34:45 +02:00
Klaus Schmidinger
435978648b Fixed an error message when parsing SCR values in diseqc.conf 2013-05-02 09:31:31 +02:00
Klaus Schmidinger
c354540a31 Removed an extra blank line 2013-05-02 09:29:02 +02:00
Klaus Schmidinger
8d98b9193b Backport of 'Fixed no longer generating any editing marks if the edited recording results in just one single sequence' 2013-05-02 09:25:20 +02:00
Klaus Schmidinger
d8e8941c77 Fixed no longer generating any editing marks if the edited recording results in just one single sequence 2013-05-02 09:17:55 +02:00
Klaus Schmidinger
d32498f65f Backport of 'Fixed displaying the frame number when setting an editing mark' 2013-04-27 10:35:30 +02:00
Klaus Schmidinger
29537da370 Fixed displaying the frame number when setting an editing mark 2013-04-27 10:31:23 +02:00
Klaus Schmidinger
cbe8542622 Backport of 'Fixed multiple occurrences of the same directory in the recordings list in case there are directories that only differ in non-alphanumeric characters' 2013-04-27 10:21:14 +02:00
Klaus Schmidinger
fd3bf6c3d2 Fixed multiple occurrences of the same directory in the recordings list in case there are directories that only differ in non-alphanumeric characters 2013-04-27 10:06:49 +02:00
Klaus Schmidinger
53ef55410c Changed the sign of the satellite position value in cSource to reflect the standard of western values being negative 2013-04-11 10:40:47 +02:00
Klaus Schmidinger
4263a1a410 Backport of 'Changed cThread::SetIOPriority() from "best effort class" to "idle class" in order to improve overall performance when an editing process is running' 2013-04-11 09:01:04 +02:00
Klaus Schmidinger
37d2bf4d9a Removed a double empty line 2013-04-11 08:47:31 +02:00
Klaus Schmidinger
6bd7123072 Backport of 'Fixed handling '/' and '~' in recording file names in case DirectoryEncoding is used' 2013-04-11 08:32:40 +02:00
Klaus Schmidinger
c979ef393b Fixed handling '/' and '~' in recording file names in case DirectoryEncoding is used 2013-04-11 08:17:17 +02:00
Klaus Schmidinger
0e4b404102 Changed cThread::SetIOPriority() from "best effort class" to "idle class" in order to improve overall performance when an editing process is running 2013-04-10 15:38:29 +02:00
Klaus Schmidinger
89de3b6c01 Backport of 'Added definitions for older DVB API versions, back until 5.0' 2013-04-10 15:02:08 +02:00
Klaus Schmidinger
1682e2708d Fixed double semicolon 2013-04-09 11:10:30 +02:00
Klaus Schmidinger
71fb3e84da Added definitions for older DVB API versions, back until 5.0 2013-04-09 09:53:00 +02:00
Klaus Schmidinger
3bb55dfdde Fixed some typos 2013-04-08 12:36:22 +02:00
Klaus Schmidinger
497553d985 Removed all "modified since version 1.6" markers from PLUGINS.html 2013-04-08 08:58:49 +02:00
Klaus Schmidinger
d336191ed1 Backport of 'Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than one character' 2013-04-07 14:56:26 +02:00
Klaus Schmidinger
cf7f25fe50 Fixed an endless loop in cTextWrapper::Set() in case the given Width is smaller than one character 2013-04-07 14:49:42 +02:00
Klaus Schmidinger
b6b66acfc7 Backport of 'Fixed initializing cDevice::keepTracks' 2013-04-05 11:03:02 +02:00
Klaus Schmidinger
d962999161 Fixed initializing cDevice::keepTracks 2013-04-05 10:27:16 +02:00
Klaus Schmidinger
ac25275b10 Version 2.0.0 2013-03-31 09:30:18 +02:00
Klaus Schmidinger
965feab54f Fixed handling overlapping pending timers 2013-03-29 15:37:16 +01:00
Klaus Schmidinger
f30ac5075e Updated the French OSD texts 2013-03-29 10:28:26 +01:00
Klaus Schmidinger
649351c2c4 Fixed the description of the 'M' parameter of channel definitions in vdr.5 (cont'd) 2013-03-29 10:25:56 +01:00
Klaus Schmidinger
a465820c1c Fixed the description of the 'M' parameter of channel definitions in vdr.5 2013-03-28 10:03:42 +01:00
Klaus Schmidinger
c191acaa3d Updated the Lithuanian OSD texts 2013-03-28 09:04:25 +01:00
Klaus Schmidinger
65f6e9ae98 Updated the default channels.conf file 2013-03-23 11:07:01 +01:00
Klaus Schmidinger
495f197327 Fixed formatting the channel definition example in the vdr(5) man page 2013-03-18 12:38:54 +01:00
Klaus Schmidinger
8d6c1f3e54 Added a note about HDTV support 2013-03-18 10:31:12 +01:00
Klaus Schmidinger
5e805b5dfd The cutter now allocates its buffers on the heap to avoid problems on systems with limited stack space 2013-03-18 09:54:00 +01:00
Klaus Schmidinger
b7f4536fe1 The "Resume" button in the main menu is now only active if the respective recording actually exists 2013-03-18 09:19:42 +01:00
Klaus Schmidinger
b6d407a212 Fixed loading the setup.conf file in case a parameter contains the '#' character 2013-03-18 09:05:18 +01:00
Klaus Schmidinger
e724d871b2 Removed an obsolete reference to USEFHS 2013-03-17 16:07:42 +01:00
Klaus Schmidinger
a5d524b7e6 Updated email address of Rolf Ahrenberg 2013-03-17 14:07:35 +01:00
Klaus Schmidinger
eac63172e5 Renamed the language file sr_SR.po to sr_RS.po 2013-03-17 10:44:29 +01:00
Klaus Schmidinger
4477a0171e Added maximum SNR and signal strength value for TechniSat SkyStar HD2 2013-03-16 15:30:12 +01:00
Klaus Schmidinger
a033ebf167 Updated the Serbian OSD texts 2013-03-16 15:13:28 +01:00
Klaus Schmidinger
66a2bf9906 Fixed creating a new VPS timer with the SVDRP command NEWT 2013-03-16 10:39:16 +01:00
Klaus Schmidinger
9bd2b9901f Updated the help and man page entry about the location of the epg.data file 2013-03-15 10:47:35 +01:00
Klaus Schmidinger
21b564805d When switching to a less privileged user id, VDR now sets the environment variables HOME, USER, LOGNAME and SHELL accordingly 2013-03-14 09:38:06 +01:00
Klaus Schmidinger
87acd119ce Added a note to the INSTALL file regarding multiple disk setup becoming deprecated in a future version of VDR 2013-03-14 09:20:51 +01:00
Klaus Schmidinger
1b61b7f5bc Fixed stopping an ongoing recording on a system with bonded devices, if a timer with a higher priority requires a different band (cont'd) 2013-03-13 11:23:53 +01:00
Klaus Schmidinger
4118097e73 Updated the introductory text of the vdr.1 man page 2013-03-12 13:43:04 +01:00
Klaus Schmidinger
ec7fac3c0d Some improvements to allowing the parameters PATH and NAME to the --dirnames command line option to be left empty to use the default values if only ENC shall be set 2013-03-12 13:27:40 +01:00
Klaus Schmidinger
cee221e843 Fixed stopping an ongoing recording on a system with bonded devices, if a timer with a higher priority requires a different band 2013-03-12 11:57:19 +01:00
Klaus Schmidinger
a8ae0d2f7c Fixed a possible "Channel not available" if a recording starts on a system with bonded devices 2013-03-12 10:18:55 +01:00
Klaus Schmidinger
7100e4c209 The parameters PATH and NAME to the --dirnames command line option may now be left empty to use the default values if only ENC shall be set 2013-03-12 09:44:46 +01:00
Klaus Schmidinger
ccbe1905a1 The 'plugins' target of the VDR Makefile now also copies files matching the wildcard "lib$$i-*.so" (previously only "libvdr-*.so") and also descends into subdirectories of the plugin source 2013-03-11 15:01:01 +01:00
Klaus Schmidinger
3488050173 Removed reference to 'remote control unit' 2013-03-11 13:24:12 +01:00
Klaus Schmidinger
6213afa230 Updated version numbers and release dates 2013-03-11 13:17:12 +01:00
Klaus Schmidinger
cb6c2f7125 Updated copyright year 2013-03-11 11:51:27 +01:00
Klaus Schmidinger
552b1e542f Changed email address to <vdr@tvdr.de> 2013-03-11 11:25:01 +01:00
Klaus Schmidinger
bc72b7e6cd Fixed using PATH_MAX and NAME_MAX (+/-1 because the first one includes the terminating 0, while the latter doesn't) 2013-03-11 11:07:59 +01:00
Klaus Schmidinger
f3ca6f2083 Updated the Polish OSD texts 2013-03-11 08:45:46 +01:00
Klaus Schmidinger
c8ef40ee92 Updated the Russian OSD texts 2013-03-10 16:47:30 +01:00
Klaus Schmidinger
aa17488a5b Updated the Hungarian OSD texts 2013-03-10 16:46:09 +01:00
Klaus Schmidinger
38a15ef510 Changed the default values for the OSD size back to those before version 1.7.29 2013-03-10 14:56:51 +01:00
Klaus Schmidinger
b526a70071 The LCARS skin now calls SetAntiAliasGranularity(20, 16) in order to reserve enough fixed colors on 8bpp displays with anti-aliasing 2013-03-09 10:46:41 +01:00
Klaus Schmidinger
d08777ed87 Limited the Goto() call in cDvbPlayer::SetAudioTrack() to the main thread 2013-03-08 13:47:02 +01:00
Klaus Schmidinger
f7645402ff Fixed resuming replay of PES recordings 2013-03-07 14:47:02 +01:00
Klaus Schmidinger
a67fe0663d Fixed a possible deadlock when changing the audio track while replaying a recording 2013-03-07 13:27:05 +01:00
Klaus Schmidinger
16c931453d Renamed the "plp id" to a more general "stream id" and added support for DVB-S2 "Input Stream Identifier" (ISI) 2013-03-07 09:51:06 +01:00
Klaus Schmidinger
0a0db91018 Updated the Romanian OSD texts 2013-03-07 09:39:07 +01:00
Klaus Schmidinger
4e65807dc5 Using the English versions for all untranslated texts in ar.po as suggested by Osama Alrawab 2013-03-07 09:34:50 +01:00
Klaus Schmidinger
4a3d74e511 Updated the Arabic OSD texts 2013-03-07 09:28:11 +01:00
Klaus Schmidinger
5cca94d1b3 Updated the Finnish OSD texts 2013-03-06 10:48:02 +01:00
Klaus Schmidinger
5b94631467 Updated the French OSD texts 2013-03-06 10:39:06 +01:00
Klaus Schmidinger
6f43287d07 Updated the Slovak OSD texts 2013-03-05 10:40:51 +01:00
Klaus Schmidinger
023f9366ef Updated the Catalan OSD texts 2013-03-05 10:10:13 +01:00
Klaus Schmidinger
9711380e57 Updated the Spanish OSD texts 2013-03-05 10:09:06 +01:00
Klaus Schmidinger
37da7d9961 Updated the Italian OSD texts 2013-03-05 10:07:32 +01:00
Klaus Schmidinger
f53913f144 Updated the Estonian OSD texts 2013-03-05 10:02:35 +01:00
Klaus Schmidinger
926f980d87 Updated the Ukrainian OSD texts 2013-03-05 10:00:23 +01:00
Klaus Schmidinger
3b7ae17055 Updated the Czech OSD texts 2013-03-05 09:53:48 +01:00
Klaus Schmidinger
4f76862ff1 Updated the Dutch OSD texts 2013-03-05 09:50:48 +01:00
Klaus Schmidinger
2b792e3519 Updated the Macedonian OSD texts 2013-03-05 09:45:46 +01:00
Klaus Schmidinger
670e5a1eb6 Updated the Slovak OSD texts 2013-03-05 09:40:20 +01:00
Klaus Schmidinger
889547de72 Updated the Chinese OSD texts 2013-03-05 09:17:37 +01:00
Klaus Schmidinger
366ef1b812 Updated Chinese language texts 2013-03-05 09:16:35 +01:00
Klaus Schmidinger
993dc45922 Updated the Swedish OSD texts 2013-03-04 16:48:11 +01:00
Klaus Schmidinger
db8cf38b5b Implemented the setup option "OSD/Always sort folders first" 2013-03-04 14:11:47 +01:00
Klaus Schmidinger
f3eb300bb0 Updated the Slovenian OSD texts 2013-03-04 13:08:41 +01:00
Klaus Schmidinger
02bf57ba71 Updated the Spanish and Catalan OSD texts 2013-03-04 12:30:08 +01:00
Klaus Schmidinger
aaffda3119 Added the system's character set to the page header in the epg2html script 2013-03-04 12:14:09 +01:00
Klaus Schmidinger
4da13b57ec Fixed a faulty UTF-8 character in cs_CZ.po 2013-03-04 11:14:33 +01:00
Klaus Schmidinger
4d8f68e906 Added a note about the new default sort order of recordings to the release notes of version 1.7.29 2013-03-04 10:25:46 +01:00
Klaus Schmidinger
64c81d24dc Updated email address of Rolf Ahrenberg 2013-03-04 10:11:32 +01:00
Klaus Schmidinger
2966432870 Updated the Catalan OSD texts 2013-03-04 09:34:59 +01:00
Klaus Schmidinger
01c44e8b2c The "Recording info" page of the skins that come with VDR now displays the name of the channel (if available) from which this recording was taken 2013-03-03 15:38:17 +01:00
Klaus Schmidinger
1983983214 Updated the Russian OSD texts 2013-03-03 13:01:26 +01:00
Klaus Schmidinger
f239934bf9 When sorting recordings by name, folders are now always at the top of the list 2013-03-03 11:04:22 +01:00
Klaus Schmidinger
e0448bded8 Whitespace fixes 2013-03-03 10:37:58 +01:00
Klaus Schmidinger
030b41c370 Changed the calls to Skins.QueueMessage() in vdr.c that are related to reporting the status of the editing process back to Skins.Message() in order to have them appear immediately 2013-03-03 10:27:23 +01:00
Klaus Schmidinger
3766a71741 Updated the Hungarian language texts 2013-03-01 21:38:01 +01:00
Klaus Schmidinger
65cc35f7f9 Updated the Spanish OSD texts 2013-03-01 13:02:51 +01:00
Klaus Schmidinger
df4e5a1072 Now calling DeviceClear() in cTransfer::Receive() if the output device blocks, instead of not retrying for 10 seconds 2013-03-01 10:02:01 +01:00
Klaus Schmidinger
5c47a0033e Removed all "fuzzy" translations from the files ar.po, hu_HU.po and sr_SR.po, because more often than not they are just wrong 2013-03-01 09:05:33 +01:00
Klaus Schmidinger
4c5f7bc80e Updated the Dutch OSD texts 2013-02-26 10:47:07 +01:00
Klaus Schmidinger
85027db9b9 Limited 'Fixed stuttering or asynchronous audio after changing the audio track' to TS recordings to avoid a segfault 2013-02-25 12:17:19 +01:00
Klaus Schmidinger
9e47d589e2 Updated the French OSD texts 2013-02-25 10:14:05 +01:00
Klaus Schmidinger
bb4035f812 Fixed immediately disappearing subtitle track menu in "high level OSD" mode of the TT S2-6400 when selecting "No subtitles" 2013-02-24 12:01:49 +01:00
Klaus Schmidinger
24e46b3604 Added a manual page for 'svdrpsend' 2013-02-24 10:41:12 +01:00
Klaus Schmidinger
ce94ced9d3 Removed consecutive empty lines 2013-02-22 15:25:31 +01:00
Klaus Schmidinger
b5fefa2f9e Removed empty lines at end of file 2013-02-22 14:52:49 +01:00
Klaus Schmidinger
037b10b4e9 Added cDvbTuner::IsBondedMaster() 2013-02-20 09:12:12 +01:00
Klaus Schmidinger
680838947b Fixed stuttering or asynchronous audio after changing the audio track 2013-02-20 09:10:19 +01:00
Klaus Schmidinger
f13e8a156e Fixed flashing OSD in "high level OSD" mode of the TT S2-6400 in case a menu is open while subtitles are being displayed 2013-02-19 13:51:46 +01:00
Klaus Schmidinger
bcdbfe95e7 The demos in the "osddemo" plugin can now also be ended with the "Back" key 2013-02-19 12:44:08 +01:00
Klaus Schmidinger
8260adafc2 Improved working around the broken driver values for SNR in case of a "TT-budget S2-3200" receiving DVB-S2 2013-02-19 12:16:42 +01:00
Klaus Schmidinger
851318c9b4 Fixed a possible deadlock in handling the tuners of bonded devices 2013-02-19 10:24:39 +01:00
Klaus Schmidinger
39ad232ee5 Now clearing device bondings for devices that don't provide DVB-S in the Setup/LNB menu 2013-02-19 09:48:54 +01:00
Klaus Schmidinger
20654b12ed Updated the Swedish OSD 2013-02-18 17:16:31 +01:00
Klaus Schmidinger
a353b544cd Changed the template for PLGCFG to $(CONFDIR)/plugins.mk 2013-02-18 11:01:28 +01:00
Klaus Schmidinger
7d181c2e35 Updated the Czech OSD texts 2013-02-18 10:52:55 +01:00
Klaus Schmidinger
eda593934d Modified handling user inactivity in the shutdown handler to avoid a problem in case the system time is changed after VDR has been started 2013-02-18 10:41:43 +01:00
Klaus Schmidinger
a88ca5d4e5 Updated the Polish OSD texts 2013-02-18 10:21:37 +01:00
Klaus Schmidinger
0cce3f7c87 Updated the Finnish OSD texts 2013-02-18 08:47:26 +01:00
Klaus Schmidinger
f7c0216ed0 Some formatting fixes 2013-02-17 14:41:29 +01:00
Klaus Schmidinger
fb60a3e836 Added notes from HISTORY 2013-02-17 13:44:05 +01:00
Klaus Schmidinger
4056de5d1c Expanded tabs in PLUGINS/src/dvbhddevice/setup.c 2013-02-17 13:27:29 +01:00
Klaus Schmidinger
3ca58a42e7 Removed trailing whitespace 2013-02-17 13:19:36 +01:00
Klaus Schmidinger
212a2fea41 Fixed a typo 2013-02-17 12:12:41 +01:00
Klaus Schmidinger
a3daf79d6f Turned off following symlinks in the Doxyfile 2013-02-17 11:54:55 +01:00
Klaus Schmidinger
9177e4b7f8 Updated the Doxyfile with a newer version of Doxygen 2013-02-17 11:47:22 +01:00
Klaus Schmidinger
54d81f0b8f Using 'cat' instead of 'cp' to copy the Doxyfile to avoid problems in case Doxyfile is write protected 2013-02-17 11:11:05 +01:00
Klaus Schmidinger
7076f20b44 Credit to Matthias Senzel 2013-02-17 11:04:36 +01:00
Klaus Schmidinger
30e10239ca Added Doxyfile.filter to have special characters escaped that would otherwise be dropped by Doxygen 2013-02-17 10:54:05 +01:00
Klaus Schmidinger
ff27cca4fe Removed all \return and \param tags from comment lines marked with "///<" for Doxygen 2013-02-16 15:26:45 +01:00
Klaus Schmidinger
4c827ff8a4 Fixed determining the priority of the primary device in case it is neither replaying nor receiving a live channel 2013-02-16 14:39:30 +01:00
Klaus Schmidinger
8cc4f36690 Updated the French OSD texts 2013-02-16 13:13:53 +01:00
Klaus Schmidinger
bb47d52f95 Added missing 'const' to cDevice::HasProgramme() and cDevice::HasLock() 2013-02-16 13:06:16 +01:00
Klaus Schmidinger
cd2ed6cfe7 Added '-p' to the cp command in the install-conf target of the Makefile 2013-02-16 11:22:20 +01:00
Klaus Schmidinger
2502068015 Fixed some spellings in PLUGINS.html and Doxyfile 2013-02-16 11:04:37 +01:00
Klaus Schmidinger
bd478955e6 Added missing $(LDFLAGS) to the Makefile of the dvbhddevice plugin 2013-02-16 10:38:21 +01:00
Klaus Schmidinger
2de75c3e9f Fixed displaying pending timers in "alert" mode in the LCARS skin 2013-02-15 15:12:24 +01:00
Klaus Schmidinger
b4d8d93534 Updated the French OSD texts (cont'd) 2013-02-15 14:42:17 +01:00
Klaus Schmidinger
92888b3e57 Fixed a crash in cMenuEditChanItem::Set() when entering a channel number that doesn't exist 2013-02-15 14:27:26 +01:00
Klaus Schmidinger
441ee74ff1 Updated the French OSD texts 2013-02-15 09:15:26 +01:00
Klaus Schmidinger
410968304c Fixed the return value of cOsdProvider::StoreImage() in case there is no OSD provider 2013-02-14 15:52:54 +01:00
Klaus Schmidinger
11e04d4228 Moved the definition of TIMERMACRO_TITLE and TIMERMACRO_EPISODE from recording.h to config.h and using them to initialize Setup.NameInstantRecord 2013-02-14 15:16:46 +01:00
Klaus Schmidinger
62dfd2f996 No longer checking for EOPNOTSUPP in cDvbTuner::GetSignalQuality() 2013-02-14 13:21:34 +01:00
Klaus Schmidinger
9455b9a2b0 The timeout for trying to switch to a valid programme is now reset immediately once a programme has been found 2013-02-14 11:02:14 +01:00
Klaus Schmidinger
d2cfd52013 Updated the Lithuanian OSD texts 2013-02-14 09:25:17 +01:00
Klaus Schmidinger
78d338ffce Updated the French OSD texts 2013-02-13 16:32:51 +01:00
Klaus Schmidinger
764308667d Added demos of the DrawEllipse() and DrawSlope() function to the 'osddemo' plugin 2013-02-13 13:54:10 +01:00
Klaus Schmidinger
b6b9a148c6 Now deleting any previously allocated pixmaps in cOsd::SetAreas() 2013-02-13 12:55:26 +01:00
Klaus Schmidinger
8ef71dbbdf Made cOsd::DestroyPixmap() "NULL proof" 2013-02-13 12:55:06 +01:00
Klaus Schmidinger
e5295be30a Fixed the description of the OSD drawing functions DrawEllipse() 2013-02-12 13:42:00 +01:00
Klaus Schmidinger
027ec5a63f Fixed selecting the last replayed recording in the Recordings menu 2013-02-12 13:16:15 +01:00
Klaus Schmidinger
4aaaa97ade Fixed using "Pause" and "Slow motion" near the end of a recording 2013-02-12 10:53:46 +01:00
Klaus Schmidinger
cc2e3bfeb0 Updated the Italian OSD texts 2013-02-12 09:20:33 +01:00
Klaus Schmidinger
cda320549d Fixed permissions of po/sr_SR.po 2013-02-11 15:53:48 +01:00
Klaus Schmidinger
a41f3b1351 Fixed an unexpected k_Repeat key event after a k_Release in lirc.c 2013-02-11 15:31:09 +01:00
Klaus Schmidinger
6dd788f484 Removed an invalid line from channels.conf.terr 2013-02-11 12:11:49 +01:00
Klaus Schmidinger
a2b018d72b Updated the French OSD texts 2013-02-11 11:43:51 +01:00
Klaus Schmidinger
d2ef44f8f5 Fixed moving editing marks, so that they don't get overwritten with old values through an update of the marks file 2013-02-11 11:27:34 +01:00
Klaus Schmidinger
d8ba7158bc Updated the Macedonian OSD texts 2013-02-10 17:45:26 +01:00
Klaus Schmidinger
8146386c30 Updated the French OSD texts 2013-02-10 17:37:06 +01:00
Klaus Schmidinger
c1a56702f9 Updated contribution years 2013-02-10 11:07:12 +01:00
Klaus Schmidinger
d8626d8b47 Updated the Romanian OSD texts 2013-02-10 11:01:14 +01:00
Klaus Schmidinger
a5701717e0 Updated the Estonian OSD texts 2013-02-09 17:30:34 +01:00
Klaus Schmidinger
4b931c7fd6 Updated the Ukrainian OSD texts 2013-02-09 15:14:05 +01:00
Klaus Schmidinger
9d2367d967 Fixed formatting and removed some superfluous break statements in vdr.c's command line option switch 2013-02-08 10:48:43 +01:00
Klaus Schmidinger
c9e5b13789 Fixed capitalization 2013-02-08 10:40:00 +01:00
Klaus Schmidinger
0b85bb8053 Added .../include/uapi to the template for DVBDIR 2013-02-08 10:31:38 +01:00
Klaus Schmidinger
245ae52d36 There is no more fixed limit to the maximum number of cPixmap objects an OSD can create 2013-02-08 10:29:32 +01:00
Klaus Schmidinger
7f66e1573e New command line option --dirnames 2013-02-08 09:24:55 +01:00
Klaus Schmidinger
b16437e784 New options 'Setup/Miscellaneous/Remote control repeat delay' and 'Setup/Miscellaneous/Remote control repeat delta' 2013-02-03 15:58:46 +01:00
Klaus Schmidinger
1bad5d1e6f Avoiding an extra key press event if the repeat function kicks in when controlling VDR via the PC keyboard 2013-02-02 12:44:33 +01:00
Klaus Schmidinger
bb7d8b3b5b Added some notes about plugin Makefiles to PLUGINS.html 2013-02-01 12:57:53 +01:00
Klaus Schmidinger
45f660e358 When pausing live video, the current audio and subtitle tracks are now retained 2013-02-01 12:06:50 +01:00
Klaus Schmidinger
250419d2c9 Improved LIRC timing for repeat function (cont'd) 2013-01-31 12:13:39 +01:00
Klaus Schmidinger
d95804fec3 Improved LIRC timing for repeat function 2013-01-30 13:03:00 +01:00
Klaus Schmidinger
7fa0d338eb Updated the Slovakian language texts 2013-01-30 09:13:05 +01:00
Klaus Schmidinger
06e414aacb Changed several calls to Skins.Message() in vdr.c to Skins.QueueMessage() in order to void a black screen while such a message is displayed in case the channel will be switched 2013-01-29 11:32:44 +01:00
Klaus Schmidinger
573cf3fc8b Changed several calls to Skins.Message() in vdr.c to Skins.QueueMessage() in order to avoid a black screen while such a message is displayed in case the channel will be switched 2013-01-29 11:31:12 +01:00
Klaus Schmidinger
0364b026cf Added notes from HISTORY 2013-01-29 10:44:16 +01:00
Klaus Schmidinger
9fe795ca61 Added dependency on 'i18n' to 'install-i18n' in the VDR Makefile 2013-01-27 14:22:41 +01:00
Klaus Schmidinger
36e4202c14 Fixed possible audio chatter when a recording is replayed to its very end 2013-01-27 14:18:19 +01:00
Klaus Schmidinger
a9c9b76aeb Fixed a leftover progress display in the LCARS main menu when replay of a recording ends while the menu is open, and the live channel has no EPG information 2013-01-25 14:57:30 +01:00
Klaus Schmidinger
a5426b58c6 Improved responsiveness during replay when close to the recording's end 2013-01-25 14:34:08 +01:00
Klaus Schmidinger
a906cd52df The index file is now closed after initially reading it if it is older than 3600 seconds 2013-01-25 14:32:11 +01:00
Klaus Schmidinger
79dad980cf Returning 0 from cDvbSdFfDevice::NumProvidedSystems() if option --outputonly is given 2013-01-25 10:52:43 +01:00
Klaus Schmidinger
01c26a5c6c Fixed a leftover line in case a two line subtitles was followed by a one line subtitle on the dvbhddevice in "high level" OSD mode 2013-01-24 13:01:31 +01:00
Klaus Schmidinger
cfb62845ec Fixed upscaling bitmaps 2013-01-24 11:42:15 +01:00
Klaus Schmidinger
8281be1480 Fixed possible garbage in the remaining time of the LCARS replay display in case the hours change from two to one digit 2013-01-23 14:05:03 +01:00
Klaus Schmidinger
b833de1761 The LCARS menu now also works if the OSD has only 1bpp (two colors) 2013-01-23 13:53:28 +01:00
Klaus Schmidinger
956ac7e70d Added missing template for DVBDIR to Make.config.template 2013-01-23 10:50:20 +01:00
Klaus Schmidinger
b2ae3062ab Now also using FindHeader() in cMpeg2Fixer::AdjTref() 2013-01-23 10:42:41 +01:00
Klaus Schmidinger
5b720a4fdb Fixed a typo 2013-01-22 17:01:16 +01:00
Klaus Schmidinger
1ba20fa20f Reduced the number of retries in cTransfer::Receive() to avoid blocking recordings in case the primary device can't handle the current live signal 2013-01-20 13:40:30 +01:00
Klaus Schmidinger
abde1d04ae Improved cutting MPEG-2 video 2013-01-20 12:19:42 +01:00
Klaus Schmidinger
db98ecf54e Implemented scaling of SPU bitmaps 2013-01-20 10:43:32 +01:00
Klaus Schmidinger
6a8a790312 The SVDRP command NEWT no longer checks whether a timer with the given data already exists 2013-01-17 15:21:07 +01:00
Klaus Schmidinger
904903f8d5 The last replayed recording is now stored in setup.conf, which allows the blue "Resume" key in the main menu to work even after a restart of VDR 2013-01-17 15:03:45 +01:00
Klaus Schmidinger
c984204944 Absolute jumps when replaying a recording (via the Red key) are now only performed if an actual value has been entered 2013-01-17 14:24:58 +01:00
Klaus Schmidinger
7a3f809f5c Fixed multiple occurrences of the same directory in the recordings list in case there are directories that only differ in non-alphanumeric characters 2013-01-16 16:08:20 +01:00
Klaus Schmidinger
a9099cb4d3 Revoked 'Fixed sorting recordings in case the locale ignores non-alphanumeric characters' 2013-01-16 14:19:11 +01:00
Klaus Schmidinger
89dc592727 The SVDRP command LSTR now knows the additional parameter "path", which can be given to get the actual file name of a recording's directory 2013-01-15 13:29:39 +01:00
Klaus Schmidinger
a5a8bf0164 Added "repeat" function when using the keyboard to control VDR 2013-01-13 12:04:51 +01:00
Klaus Schmidinger
d1d157d755 Fixed sorting recordings in case the locale ignores non-alphanumeric characters, or if two folders have the same name, but one of them ends in an additional digit 2013-01-13 11:57:50 +01:00
Klaus Schmidinger
fef409fe23 Fixed the example for cReceiver in PLUGINS.html 2013-01-12 14:33:44 +01:00
Klaus Schmidinger
16d37090dc Increased the version numbers of all plugins to reflect the recent Makefile changes 2013-01-12 14:13:28 +01:00
Klaus Schmidinger
e6d52e3455 More Makefile changes 2013-01-12 13:50:17 +01:00
Klaus Schmidinger
188fe74c8a Modified the Makefiles, by default VDR is now built according to the FHS 2013-01-06 18:48:29 +01:00
Klaus Schmidinger
36dfa5cb8f Added a remark indicating that the coordinates of Rect in a call to cDevice::CanScaleVideo() are in the range of the width and height returned by GetOsdSize() 2013-01-03 08:55:37 +01:00
Klaus Schmidinger
2d850b14e2 Added maximum SNR value for PCTV Systems nanoStick T2 290e 2012-12-30 13:10:44 +01:00
Klaus Schmidinger
811078a0fe Added maximum SNR value for PCTV Systems PCTV 73ESE 2012-12-30 11:30:17 +01:00
Klaus Schmidinger
0dd2dcf5a2 Checking "PKGCFG" instead of "Make.global" to see if a plugin uses an old style Makefile 2012-12-30 11:18:18 +01:00
Klaus Schmidinger
26e6ba7dd7 Removed "include" from the DVBDIR setting in the VDR Makefile 2012-12-29 15:03:06 +01:00
Klaus Schmidinger
39a95018b0 Re-enabled building plugins that still use pre-version-1.7.34 Makefiles 2012-12-29 12:12:16 +01:00
Klaus Schmidinger
1a433954f0 Revoked 'Now using targets install-lib and install-i18n when building plugins locally' 2012-12-29 10:31:33 +01:00
Klaus Schmidinger
acbe56f6d0 Plugin Makefiles can now include a configuration file for compile time parameters 2012-12-28 10:09:41 +01:00
Klaus Schmidinger
f70414cf5b Using relative paths again when building plugins locally 2012-12-27 16:15:38 +01:00
Klaus Schmidinger
2e138748c2 Added MANDIR to the vdr.pc file 2012-12-27 14:00:51 +01:00
Klaus Schmidinger
c52df91e44 Now using targets "install-lib" and "install-i18n" when building plugins locally 2012-12-27 13:36:25 +01:00
Klaus Schmidinger
763e6e4c49 Changed "==" to "=" in the Makefile to make it POSIX style 2012-12-27 12:10:24 +01:00
Klaus Schmidinger
28441aded5 DVBDIR is now conveyed to plugins via the CFLAGS; removed some redundancy from Make.config.template 2012-12-27 11:58:09 +01:00
Klaus Schmidinger
70c4a2d5d5 Increased the version numbers of all plugins to reflect the recent Makefile changes 2012-12-27 10:39:48 +01:00
Klaus Schmidinger
3649145acb Making sure that plugins include the VDR header files from the actual VDR source directory when doing "make plugins" 2012-12-27 09:59:29 +01:00
Klaus Schmidinger
4545c9e93e Added notes from HISTORY 2012-12-24 09:10:55 +01:00
Klaus Schmidinger
db59a8e745 Fixed replaying ongoing recordings from other VDR instances 2012-12-24 09:00:55 +01:00
Klaus Schmidinger
ef3af3b702 Setting mcPluginSetup for plugin setup menus 2012-12-23 13:44:05 +01:00
Klaus Schmidinger
dee67e7061 Fixed cIndexFile::GetNextIFrame() to properly handle the case where the very last frame is an I-frame 2012-12-23 13:37:13 +01:00
Klaus Schmidinger
d6efa529c9 Fixed replay stuttering close to the end of an ongoing recording 2012-12-23 13:32:26 +01:00
Klaus Schmidinger
ea951daa44 DESTDIR is now used in 'install-plugins' 2012-12-23 11:28:13 +01:00
Klaus Schmidinger
b03aa8371c Made LIBDIR and LOCDIR non-overwriteable in plugin Makefiles 2012-12-23 10:05:22 +01:00
Klaus Schmidinger
e66ef9f695 Removed obsolete i18n texts 2012-12-23 09:52:18 +01:00
Klaus Schmidinger
9f26ba57c1 Updated the Italian OSD texts 2012-12-23 09:50:32 +01:00
Klaus Schmidinger
0263c82614 Plugin Makefiles now use DESTDIR and the 'install' program 2012-12-22 12:08:31 +01:00
Klaus Schmidinger
4e87443a2d Fixed CDEFINES 2012-12-21 11:56:29 +01:00
Klaus Schmidinger
fb2c77defc Fixed comment 2012-12-21 11:45:26 +01:00
Klaus Schmidinger
df33d402ca Replaced some 'SOFILE: command not found with '$^' 2012-12-21 11:38:09 +01:00
Klaus Schmidinger
65223eb8fd Added the new menu categories mcChannelEdit, mcTimerEdit, mcScheduleNow, mcScheduleNext, mcRecordingInfo, mcPluginSetup, mcSetupOsd, mcSetupEpg, mcSetupDvb, mcSetupLnb, mcSetupCam, mcSetupRecord, mcSetupReplay, mcSetupMisc and mcSetupPlugins 2012-12-21 11:22:26 +01:00
Klaus Schmidinger
62daedf95e The plugin Makefiles now have a separate 'install' target 2012-12-21 10:14:32 +01:00
Klaus Schmidinger
4132f5e745 Removed some redundancy in the Makefile/Make.global/Make.config mechanism 2012-12-19 12:10:28 +01:00
Klaus Schmidinger
8e54caa205 Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the DEFINES in the Makefile 2012-12-18 13:20:17 +01:00
Klaus Schmidinger
63d47f1f5d Fixed setting the --package-name and --package-version options in the calls to xgettext in several plugin Makefiles 2012-12-18 13:17:17 +01:00
Klaus Schmidinger
4151e73dcc Added several missing "ls $^" in the calls to xgettext in plugin Makefiles and the "newplugin" script 2012-12-18 09:33:30 +01:00
Klaus Schmidinger
40bfe40368 Fixed cOsd::GetBitmap() to always return NULL if a non-exising area is requested 2012-12-15 11:57:16 +01:00
Klaus Schmidinger
e33824217b Updated the Estonian OSD texts 2012-12-11 10:12:42 +01:00
Klaus Schmidinger
169bfc0128 Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from 'int' to 'eTimerEvent' 2012-12-11 10:08:21 +01:00
Klaus Schmidinger
03658cd480 Fixed a typo 2012-12-08 15:27:48 +01:00
Klaus Schmidinger
83fe591f32 The new functions SetItemEvent(), SetItemTimer(), SetItemChannel() and SetItemRecording() of the cSkinDisplayMenu class can be reimplemented by skin plugins to display these items in a more elaborate way than just a simple line of text 2012-12-08 11:05:39 +01:00
Klaus Schmidinger
bc0b67e630 Only handling decimal point in atod() and dtoa() if it differs from '.' 2012-12-07 09:00:00 +01:00
Klaus Schmidinger
a94f45a1b3 Added notes from HISTORY 2012-12-06 12:08:24 +01:00
Klaus Schmidinger
dbb6c29cff Modified behavior of Play/Pause key in fast and slow modes 2012-12-06 11:08:56 +01:00
Klaus Schmidinger
9a0236b9e2 Changed reading and writing of floating point numbers into configuration files to make it independent of the decimal point used in the current locale 2012-12-06 10:29:23 +01:00
Klaus Schmidinger
c005465d90 The new option "Setup/Replay/Progress display time" can be used to activate automatically displaying the progress display whenever replay of a recording is started 2012-12-05 11:49:33 +01:00
Klaus Schmidinger
0f7b73016a Fixed creating the edited version directory if a relative file name is given in the call to 'vdr --edit' 2012-12-05 11:12:33 +01:00
Klaus Schmidinger
41f94447d6 When regenerating the index of a recording, the frame rate stored in the info file is now automatically fixed if it differs from the value detected by the frame detector 2012-12-05 10:37:41 +01:00
Klaus Schmidinger
76a9b09e25 The new option Setup/Replay/PauseOnMarkSet can be used to activate automatically going into Pause mode if an editing mark is set during replay 2012-12-05 10:09:45 +01:00
Klaus Schmidinger
cfd9206195 The new option "Setup/Replay/Pause on mark set" can be used to activate automatically going into Pause mode if an editing mark is set during replay 2012-12-05 10:07:12 +01:00
Klaus Schmidinger
551b46cab1 Implemented Play/Pause key 2012-12-04 13:37:59 +01:00
Klaus Schmidinger
85b9c2f370 The SVDRP command HITK now discards any keys if the remote control is currently turned off 2012-12-04 12:13:14 +01:00
Klaus Schmidinger
bcce056292 The new functions cDevice::CanScaleVideo() and cDevice::ScaleVideo() can be used by derived output devices to implement scaling the video to a given size and location 2012-12-04 11:52:58 +01:00
Klaus Schmidinger
1e14401e74 Now always setting the TDT EIT filter, because otherwise when turning on using the transponder time in the Setup menu, it would only be used after the next restart of VDR 2012-12-04 11:15:28 +01:00
Klaus Schmidinger
45a29931cb The '7' and '9' keys now jump to the very beginning or end, respectively, of the recording, even if there is no mark set at that point 2012-12-04 10:09:08 +01:00
Klaus Schmidinger
f61645b4d2 Synchronizing system time to the transponder time is now done using adjtime() in order to avoid discontinuities 2012-12-04 09:34:06 +01:00
Klaus Schmidinger
f1603e9128 Fixed handling lowercase polarization characters in channel definitions if no DiSEqC is used 2012-12-03 14:13:12 +01:00
Klaus Schmidinger
7cd8ab4686 Fixed some spellings in osd.h and svdrp.c 2012-12-03 13:51:23 +01:00
Klaus Schmidinger
6ca541e876 Fixed some #include statements in plugins to use <vdr/...> instead of "vdr/..." 2012-12-03 13:46:46 +01:00
Klaus Schmidinger
780aeab4ff Fixed faulty opening of the Recordings menu when pressing the Play key during normal live viewing mode in case there there is a "last viewed" recording 2012-12-03 13:27:07 +01:00
Klaus Schmidinger
e2796948b2 Fixed calling iconv_close() only with a valid iconv_t value 2012-12-03 09:34:12 +01:00
Klaus Schmidinger
441bf30032 Simplified calculating the PTS offset in cPtsFixer::Fix() and fixed the overflow handling of PCR values 2012-12-02 14:33:06 +01:00
Klaus Schmidinger
a23a13873f Fixed a typo in skins.h 2012-12-02 13:25:08 +01:00
Klaus Schmidinger
b73c83e2a1 Fixed adjusting the DTS values in the cutter, to compensate for dropped B-frames 2012-11-29 15:34:55 +01:00
Klaus Schmidinger
2eadd7d4dd The cutter now only increments the TS continuity counter for packets that have a payload 2012-11-27 08:57:45 +01:00
Klaus Schmidinger
4db9a3b636 Fixed getting the number of editing sequences in case the last sequence has no actual end mark 2012-11-26 09:39:59 +01:00
Klaus Schmidinger
75aee155ea Changed all occurrences of MPEG4 to H264 (pointed out by Sren Moch) 2012-11-25 14:21:15 +01:00
Klaus Schmidinger
21186ced97 Fixed getting only non-video packets in cCuttingThread::GetPendingPackets() 2012-11-25 14:02:47 +01:00
Klaus Schmidinger
c13980e130 Updated the Macedonian OSD texts 2012-11-21 08:56:05 +01:00
Klaus Schmidinger
9fff8b3fe9 Fixed learning remote control keys with the LCARS skin 2012-11-19 12:24:29 +01:00
Klaus Schmidinger
8f9136ecab In order to be able to play TS recordings from other sources, in which there is more than one PMT PID in the PAT, 'int cPatPmtParser::PatPmt(void)' has been changed to 'bool cPatPmtParser::IsPatPmt(int Pid)' 2012-11-19 10:32:31 +01:00
Klaus Schmidinger
56f8752b9a Added notes from HISTORY 2012-11-18 13:21:23 +01:00
Klaus Schmidinger
d46a31d417 Modified editing marks are now written to disk whenever the replay progress display gets hidden 2012-11-18 13:12:31 +01:00
Klaus Schmidinger
3c65130e38 Editing marks can now be moved freely 2012-11-18 13:00:33 +01:00
Klaus Schmidinger
cca2cd35ad Improved editing TS recordings 2012-11-18 12:19:51 +01:00
Klaus Schmidinger
5b4e1fa793 Fixed detecting frames in case there are multiple frames per payload unit 2012-11-13 10:00:00 +01:00
Klaus Schmidinger
e24aa0aa1a Using PATPID macro 2012-11-13 09:11:43 +01:00
Klaus Schmidinger
bc06fdf414 The return type of cMarks::Add() has been changed to void 2012-11-12 14:51:18 +01:00
Klaus Schmidinger
b951ca48a5 Fixed handling the very last entry in a recording index 2012-11-12 14:50:02 +01:00
Klaus Schmidinger
1a1b7234ea Updated the Romanian OSD texts 2012-11-06 12:12:01 +01:00
Klaus Schmidinger
3ad369d249 Fixed frame detection when regenerating the index 2012-11-06 11:03:06 +01:00
Klaus Schmidinger
f98ae169e1 Fixed regenerating the index in case the recording spans over several files (was a side effect of the new frame detection) 2012-11-04 15:27:44 +01:00
Klaus Schmidinger
1e3d1e0f0b Credit to Udo Richter 2012-11-03 11:37:28 +01:00
Klaus Schmidinger
b19e6d071f Fixed shifting editing marks towards the next I-frame in case of PES recordings 2012-11-03 11:25:13 +01:00
Klaus Schmidinger
57a3169013 Improved frame detection by parsing just far enough into the MPEG-4 NAL units to get the necessary information about frames and slices; the initial syncing of the frame detector is now done immediately after the first complete GOP has been seen 2012-11-02 14:35:57 +01:00
Klaus Schmidinger
38d48afad9 Fixed handling timers in case an event is modified and "phased out" while the timer is recording 2012-10-16 08:24:10 +02:00
Klaus Schmidinger
4149053935 Fixed a possible memory leak in SI::StructureLoop::getNextAsPointer() 2012-10-15 12:03:31 +02:00
Klaus Schmidinger
15bb8ca60d If a frame position in the 'marks' file of a recording doesn't point to an I-frame, it will now be shifted towards the next I-frame 2012-10-15 11:23:59 +02:00
Klaus Schmidinger
8c633a5f65 Fixed handling VPS timers in case the running status of an event goes to '1' (not running) and later goes to '4' (running) 2012-10-13 14:19:26 +02:00
Klaus Schmidinger
7f7fa7fd90 Added options to build a 32-bit version of VDR on a 64-bit machine to Make.config.template 2012-10-09 10:43:28 +02:00
Klaus Schmidinger
0aae0d9cf7 Added including the Make.global and Make.config files to the dvbdhffdevice's libhdffcmd/Makefile 2012-10-09 10:23:01 +02:00
Klaus Schmidinger
6b6a372244 Fixed 'make install' to not overwrite existing configuration files 2012-10-09 08:34:57 +02:00
Klaus Schmidinger
43883ee159 Fixed setting the video format in the dvbhdffdevice 2012-10-09 08:24:33 +02:00
Klaus Schmidinger
9f832ef482 Fixed some compiler warnings under gcc version 4.7.1 2012-10-07 11:13:18 +02:00
Klaus Schmidinger
86fc7ba77c Added the UPDATE-2.0.0 file 2012-10-06 13:39:22 +02:00
Klaus Schmidinger
612f696bb7 Changed DTV_DVBT2_PLP_ID to DTV_STREAM_ID in dvbdevice.c to adapt to an incompatible change in DVB API 5.8 2012-10-04 12:44:13 +02:00
Klaus Schmidinger
1e9b16d20b The cThread constructor now has an additional boolean parameter that can be set to true to have this thread run at a lower priority 2012-10-04 12:32:31 +02:00
Klaus Schmidinger
5a407d0e68 cIoThrottle::Engaged() is now also checked in cRemoveDeletedRecordingsThread::Action() 2012-10-03 12:58:02 +02:00
Klaus Schmidinger
90d854c0b4 Pressing the Blue in the main menu during normal live viewing mode now opens the Recordings menu if there is no "last viewed" recording 2012-10-03 10:18:58 +02:00
Klaus Schmidinger
1b7a32472e Pressing the Play key during normal live viewing mode now opens the Recordings menu if there is no "last viewed" recording 2012-10-03 10:11:15 +02:00
Klaus Schmidinger
f1000d75c0 Added 'IgnoreFiles' to RemoveEmptyDirectories() 2012-09-30 13:05:14 +02:00
Klaus Schmidinger
3cc12a401a Added missing decrementing of 'len' in libsi/si.c's String::decodeText() functions 2012-09-29 14:44:20 +02:00
Klaus Schmidinger
3c860ee043 Reactivated stripping control characters from EPG texts and adapted it to UTF-8 2012-09-29 14:30:48 +02:00
Klaus Schmidinger
c5dfaf9681 Moved cleaning up the EPG data and writing the epg.data file into a separate thread (cont'd) 2012-09-29 11:49:11 +02:00
Klaus Schmidinger
62dee6514a Fixed sorting folders before recordings in case of UTF-8 2012-09-29 10:05:49 +02:00
Klaus Schmidinger
6f1577a659 Moved cleaning up the EPG data and writing the epg.data file into a separate thread to avoid sluggish response to user input on slow systems 2012-09-24 13:41:54 +02:00
Klaus Schmidinger
7cdfca45f4 Increased the size of the TS buffer to 5MB and that of the Recorder buffer to 20MB to better handle HD recordings 2012-09-22 11:55:26 +02:00
Klaus Schmidinger
72c03260d7 The new class cIoThrottle is used to allow I/O intense threads to temporarily suspend their activities in case buffers run full 2012-09-22 11:52:33 +02:00
Klaus Schmidinger
e898a28258 Fixed a leftover frame counter in the LCARS skin's replay display after jumping to an editing mark and resuming replay 2012-09-19 11:13:17 +02:00
Klaus Schmidinger
e11908cae6 cPatPmtParser::ParsePmt() now also recognizes stream type 0x81 as "AC3" 2012-09-19 10:46:17 +02:00
Klaus Schmidinger
ed456adc80 Improved detecting frames in MPEG 4 video 2012-09-18 09:57:38 +02:00
Klaus Schmidinger
14eb0d77e9 Fixed some typos 2012-09-17 14:06:12 +02:00
Klaus Schmidinger
e6526ae269 The script given to VDR with the '-r' option is now also called whenever a recording is deleted 2012-09-17 09:03:01 +02:00
Klaus Schmidinger
8423b5ea4c Decreased the ring buffer put/get trigger sizes from 1/3 to 1/10 2012-09-17 08:48:20 +02:00
Klaus Schmidinger
050b7cdebf Implemented instant recording of only the present event 2012-09-15 13:57:39 +02:00
Klaus Schmidinger
c9ac6f5196 Fixed mapping the frame type bits when detecting independent frames in MPEG 4 video 2012-09-14 09:11:18 +02:00
Klaus Schmidinger
cc16e9fdc7 If regenerating an index file fails and no data is written to the file, VDR now reports this error and removes the empty index file 2012-09-13 11:18:53 +02:00
Klaus Schmidinger
e775f25add Fixed credits for implementing cDevice::HasInternalCam() 2012-09-12 07:52:25 +02:00
Klaus Schmidinger
eb8fbeba27 Implemented the setup options "OSD/Color key [0123]" 2012-09-09 14:37:15 +02:00
Klaus Schmidinger
3d60eba129 Fixed handling default values for directories 2012-09-09 09:29:15 +02:00
Klaus Schmidinger
e6e9996060 Fixed sluggish response when manipulating editing marks while a cutting thread is running 2012-09-09 09:19:15 +02:00
Klaus Schmidinger
2ceb19e566 Fixed getting the file size and number of frames of ongoing recordings 2012-09-06 10:07:25 +02:00
Klaus Schmidinger
f7a1954fe3 Fixed a long delay at the end when replaying a recording that has stopped recording less than an hour ago 2012-09-05 14:16:52 +02:00
Klaus Schmidinger
e64ab2a2a7 Credits to Dennis Bendlin 2012-09-02 13:38:31 +02:00
Klaus Schmidinger
378a05a96d Changed the semantics of the cReceiver::Activate() function (it is now called with 'false' *after* the receiver has been detached from the device 2012-09-02 09:35:31 +02:00
Klaus Schmidinger
13edfc1382 Implemented FHS support; fixed handling config directory if only -v is given 2012-09-01 14:03:45 +02:00
Klaus Schmidinger
d3b3c43e8f Fixed a race condition when zapping in transfer mode (cont'd) 2012-08-31 11:02:24 +02:00
Klaus Schmidinger
5d0410de3e Added cDevice::HasInternalCam() 2012-08-26 13:59:37 +02:00
Klaus Schmidinger
4986f76b0a Added cDevice::ReadFilter() 2012-08-26 13:09:01 +02:00
Klaus Schmidinger
021778d370 Updated email address of Stefan Huelswitt 2012-08-26 12:45:29 +02:00
Klaus Schmidinger
f99572d84f Fixed a race condition when zapping in transfer mode 2012-08-26 12:37:25 +02:00
Klaus Schmidinger
60d8c61da1 Fixed detecting transfer mode on full featured DVB cards 2012-08-25 12:03:55 +02:00
Klaus Schmidinger
08ab22f987 Added IsUpdate() to the EPG handler interface 2012-08-25 11:31:35 +02:00
Klaus Schmidinger
3f03cfa14d RemoveEmptyDirectories() now ignores dot files 2012-08-21 10:42:01 +02:00
Klaus Schmidinger
da26141015 Updated the Finnish OSD texts 2012-08-21 08:33:26 +02:00
Klaus Schmidinger
cee8341545 Fixed handling control characters in SI data in case of UTF-8 encoded strings 2012-08-21 08:23:13 +02:00
Klaus Schmidinger
f4aabad2ae Fixed sorting recordings in the top level video directory 2012-07-15 10:52:16 +02:00
Klaus Schmidinger
c13dd17505 Credit for Ludi Kaleni 2012-07-14 12:24:31 +02:00
Klaus Schmidinger
06761bf157 Fixed handling group separators when showing channel names with source; initializing channel names with source when setting transponder data 2012-07-14 12:15:00 +02:00
Klaus Schmidinger
45d261fb74 The new setup option "Miscellaneous/Show channel names with source" can be used to turn on adding the source character to channel names whenever they are displayed 2012-06-17 12:27:07 +02:00
Klaus Schmidinger
1912d36f00 Changed some of the colors in the LCARS skin 2012-06-13 13:37:13 +02:00
Klaus Schmidinger
0192c6023f Fixed a crash with instant recordings 2012-06-13 13:03:26 +02:00
Klaus Schmidinger
2a18fb9687 Fixed checking for a visible live programme in case a menu or the channel display is currently open 2012-06-13 11:35:16 +02:00
Klaus Schmidinger
a8dc76a8ac Fixed displaying messages in the LCARS skin 2012-06-13 10:19:15 +02:00
Klaus Schmidinger
13ee94de2c Reduced default font sizes 2012-06-13 09:12:53 +02:00
Klaus Schmidinger
8f39242ba5 Changed foreground colors of messages 2012-06-12 13:15:53 +02:00
Klaus Schmidinger
10b708b79e Changed email address of Andreas Mair 2012-06-12 13:13:43 +02:00
Klaus Schmidinger
478027b5e9 Setting the "broken link" or "TEI" flags when cutting recordings is now suppressed if the editing point merges two seamlessly fitting parts of the same stream 2012-06-10 14:33:36 +02:00
Klaus Schmidinger
6dec09a376 Fixed the type of MBperMinute in cVideoDiskUsage::HasChanged() 2012-06-10 13:46:41 +02:00
Klaus Schmidinger
e595e3b1d4 Fixed handling recording with more than two bonded devices 2012-06-10 13:26:37 +02:00
Klaus Schmidinger
c020b708a5 Fixed several spelling errors 2012-06-09 14:40:26 +02:00
Klaus Schmidinger
440c119b0a Implemented sort mode for recordings 2012-06-09 14:32:29 +02:00
Klaus Schmidinger
0b6c96a515 The LCARS skin's main menu now only displays timers that are actually activated 2012-06-08 10:29:03 +02:00
Klaus Schmidinger
e496fac87a Fixed some copy&paste errors in PLUGINS.html 2012-06-07 22:03:20 +02:00
Klaus Schmidinger
d623479e32 Fixed displaying the number of devices in the LCARS skin in case of non-receiving devices 2012-06-07 11:43:35 +02:00
Klaus Schmidinger
ab62437ac6 Removed the gap from the main menu buttons in the LCARS skin 2012-06-07 10:41:53 +02:00
Klaus Schmidinger
f93fc58f3d Changed the button colors in the LCARS skin to better fit with the rest of the theme 2012-06-07 10:32:35 +02:00
Klaus Schmidinger
8a5764c5e5 Updated the Italian OSD text 2012-06-07 09:39:39 +02:00
Klaus Schmidinger
04f176b248 Added SetComponents() to the EPG handler interface 2012-06-04 10:29:19 +02:00
Klaus Schmidinger
8d8dd8ecbd Added HandledExternally() to the EPG handler interface 2012-06-04 10:19:23 +02:00
Klaus Schmidinger
4bce65eb10 Removed DeleteEvent() from the EPG handler interface (turned out not to be useful) 2012-06-04 09:49:48 +02:00
Klaus Schmidinger
cd4a7e3ef4 Fixed the call to ChannelString() in cSkinLCARSDisplayChannel::SetChannel() 2012-06-04 09:41:06 +02:00
Klaus Schmidinger
bfc2c41c12 Updated the Finnish OSD texts 2012-06-04 09:33:28 +02:00
Klaus Schmidinger
f15bb1f9af Adjusted the default values for OSD and font sizes to better fit HDTV 2012-06-04 09:18:51 +02:00
Klaus Schmidinger
f8fc3b502a Fixed making LCARS the default skin 2012-06-04 09:07:51 +02:00
Klaus Schmidinger
857e29a43d Now scaling down the Transfer Mode indicator bitmap in the LCARS skin in case it doesn't fit with the selected font size 2012-06-04 08:59:10 +02:00
Klaus Schmidinger
e16e8b182f The LCARS skin now only displays devices that can actually receive channels 2012-06-04 08:09:19 +02:00
Klaus Schmidinger
95e180a3e3 Fixed the background color of the Transfer Mode indicator bitmap in the LCARS skin 2012-06-04 07:54:51 +02:00
Klaus Schmidinger
1bb441e699 Added a missing template specification to the c'tor of cSortedTimers 2012-06-03 13:06:15 +02:00
Klaus Schmidinger
3efb79c855 Speeded up opening menus on systems with many (several thousands) of recordings, by caching the information whether a recording is stored on the video directory file system within the cRecording data 2012-06-03 10:03:55 +02:00
Klaus Schmidinger
47e3b4afe2 Changed the color for devices 2012-06-03 09:45:00 +02:00
Klaus Schmidinger
95e5cf0fdd Added a section on 'Standard compliance' to INSTALL 2012-06-03 09:24:21 +02:00
Klaus Schmidinger
56c8464774 Updated the German OSD texts 2012-06-03 09:14:47 +02:00
Klaus Schmidinger
ad5ef06857 Added DeleteEvent() to the EPG handler interface, so that an EPG handler can trigger deleting of an event 2012-06-02 14:10:37 +02:00
Klaus Schmidinger
78e11d8c6f Extended the interface to the script that gets called for recordings, so that in the "edited" case it also provides the name of the original recording 2012-06-02 13:57:41 +02:00
Klaus Schmidinger
ebf8a285b2 Fixed font handling with fontconfig 2.9.0 or newer 2012-06-02 13:41:23 +02:00
Klaus Schmidinger
2de28295fc Now making sure that the "small font" is never larger than the "osd font" 2012-06-02 13:35:54 +02:00
Klaus Schmidinger
eec6b1d818 Finally removed the code marked with __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS and LEGACY_CRECEIVER 2012-06-02 13:22:53 +02:00
Klaus Schmidinger
68d5e7b548 Implemented LCARS skin 2012-06-02 13:17:16 +02:00
Klaus Schmidinger
4e57f40096 The new class cSortedTimers can be used to quickly get a list of all timers, sorted by their start time 2012-06-02 12:10:36 +02:00
Klaus Schmidinger
7548639021 Fixed setting the recording title for the replay display of old skins 2012-06-02 11:44:14 +02:00
Klaus Schmidinger
41b1160f01 The new function RgbShade() (include osd.h) can be used to generate a brighter or darker version of a given color 2012-06-02 10:44:24 +02:00
Klaus Schmidinger
5ee947a492 Fixed resetting CAMs 2012-05-29 11:19:56 +02:00
Klaus Schmidinger
d2030debc0 cVector::Clear() now reinitializes any previously used members 2012-05-20 14:01:02 +02:00
Klaus Schmidinger
cdaf99121b If a recording has no info file, the 'title' of the recording's info is now set to the recording's name 2012-05-20 13:55:34 +02:00
Klaus Schmidinger
2e393c6e1f Fixed increasing size of cVector; added a note about not using cVector with class objects 2012-05-19 12:32:32 +02:00
Klaus Schmidinger
1378f599c2 Fixed checking for UTF-8 support in cFont::Bidi() 2012-05-19 10:20:16 +02:00
Klaus Schmidinger
c1ddc63fda Implemented taBorder alignment flag 2012-05-17 16:38:50 +02:00
Klaus Schmidinger
4f889749b3 Fixed a mismatched 'delete' in cSchedules::SetEpgDataFileName() 2012-05-13 13:46:56 +02:00
Klaus Schmidinger
5f93700e07 The new member function cSkinDisplayReplay::SetRecording() allows a skin to display more information about the currently played recording 2012-05-12 14:20:41 +02:00
Klaus Schmidinger
2193ea32f6 Making sure setup strings don't contain any newline characters 2012-05-11 11:08:38 +02:00
Klaus Schmidinger
0b4069c91f Removed the "bondedMasterFailed" mechanism from cDvbTuner 2012-05-09 08:33:59 +02:00
Klaus Schmidinger
06b8fe94ef Renamed the function cString::sprintf(const char *fmt, va_list &ap) to vsprintf() 2012-05-08 11:23:56 +02:00
Klaus Schmidinger
4f7523a3a2 Fixed character comparisons in cSubtitleObject::DecodeCharacterString() 2012-05-08 08:27:24 +02:00
Klaus Schmidinger
353233a27e Fixed a possible high CPU load when pausing replay 2012-05-06 11:04:07 +02:00
Klaus Schmidinger
97e242d1b5 The new functions cControl::GetRecording() and cControl::GetHeader() can be used to retrieve information about what the current player is playing 2012-04-28 13:09:42 +02:00
Klaus Schmidinger
109586571a cControl::Control() now has an additional boolean parameter, which can be set to true to get the current player control even if it is hidden 2012-04-28 10:56:05 +02:00
Klaus Schmidinger
299f1f312c Fixed handling menu categories for plugin menus 2012-04-28 10:40:16 +02:00
Klaus Schmidinger
2cd697d146 Credits to Marcus Roscher 2012-04-27 08:25:44 +02:00
Klaus Schmidinger
71d53f2c63 Fixed the SVDRP command UPDR, which didn't update the global recordings list 2012-04-26 10:48:18 +02:00
Klaus Schmidinger
b5ddaedfb3 Fixed cDevice::StillPicture(), making sure it doesn't call the derived class's function if no buffer has been allocated 2012-04-26 10:28:39 +02:00
Klaus Schmidinger
fb3e5ca4ee The Timers list is now marked as modified whenever a recording starts or ends 2012-04-25 11:14:12 +02:00
Klaus Schmidinger
53d0825515 OSD and skin are now reinitialized after a plugin setup page has been confirmed 2012-04-24 09:19:48 +02:00
Klaus Schmidinger
28685f9895 A cOsdMenu can now handle skins that display different numbers of items in the various menu categories 2012-04-23 09:47:26 +02:00
Klaus Schmidinger
3d32b07862 The disk usage is no longer automatically added to the title of the main and "Recordings" menus 2012-04-23 09:07:55 +02:00
Klaus Schmidinger
09e58657a1 Added a function to get a cRecordControl for a given cTimer 2012-04-22 10:44:20 +02:00
Klaus Schmidinger
f822cdf261 The new setup option "DVB/Standard compliance" can be used to switch between different variations of the DVB standard 2012-04-15 10:52:34 +02:00
Klaus Schmidinger
c650904794 Fixed a typo 2012-04-09 09:30:52 +02:00
Klaus Schmidinger
170e05e1e6 Skins can now inquire the menu category for which their cSkinDisplayMenu is currently being used 2012-04-08 11:52:56 +02:00
Klaus Schmidinger
c24a891568 Fixed EPG scan on systems with only a single DVB device that use software output 2012-04-07 14:41:39 +02:00
Klaus Schmidinger
4e8dedb7ad Now limiting the number of characters of a channel's (short) name to 16 in the schedules menus 2012-04-06 12:35:39 +02:00
Klaus Schmidinger
d5aa5f7294 The new function cDevice::DeviceType() returns a string identifying the type of the given device 2012-04-04 09:52:15 +02:00
Klaus Schmidinger
0ac4d23cab Added some comments 2012-04-01 11:36:10 +02:00
Klaus Schmidinger
01c55ad694 Fixed getting the maximum short channel name length in case there are no short names at all 2012-04-01 09:28:39 +02:00
Klaus Schmidinger
8f628ceb8c Fixed a typo 2012-03-31 10:18:29 +02:00
Klaus Schmidinger
16967a231e Fixed formatting 2012-03-31 10:15:26 +02:00
Klaus Schmidinger
1f5cf1db58 Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4 2012-03-28 10:43:15 +02:00
Klaus Schmidinger
55b6ab1dc6 Fixed handling IDLEPRIORITY in cDvbDevice::ProvidesChannel() 2012-03-25 10:44:04 +02:00
Klaus Schmidinger
bf970b5bf4 Reverted some improvements to Make.config.template 2012-03-20 11:22:30 +01:00
Klaus Schmidinger
adce2fe42d Updated the Italian OSD texts 2012-03-19 08:16:33 +01:00
Klaus Schmidinger
6504e55b76 Fixed reduced bpp support for DVB subtitles 2012-03-16 12:01:31 +01:00
Klaus Schmidinger
c8b0ee3289 Added missing channel locking to cEIT 2012-03-14 10:41:48 +01:00
Klaus Schmidinger
cd676fda36 Moved setting LC_NUMERIC further up to make sure any floating point numbers use a decimal point 2012-03-14 09:12:58 +01:00
Klaus Schmidinger
d62f710413 Fixed a memory leak in cSubtitleRegion::UpdateTextData() 2012-03-13 15:38:00 +01:00
Klaus Schmidinger
2781c337b1 No longer using GetFont() (which is not thread safe) in cSubtitleRegion::UpdateTextData() 2012-03-13 15:30:47 +01:00
Klaus Schmidinger
4bc2a502a4 No longer using GetFont() (which is not thread safe) in the 'osddemo' plugin 2012-03-13 15:28:15 +01:00
Klaus Schmidinger
71f02e4f80 When estimating the remaining disk space (in hours), the average data rate of all existing recordings is now taken into account 2012-03-13 13:22:06 +01:00
Klaus Schmidinger
845d6f36c1 When toggling a timer between "Single" and "Repeating", the previous setting is now retained in case the user toggles back to the original value 2012-03-13 11:27:54 +01:00
Klaus Schmidinger
4dcbf19ea2 The new function cDevice::DeviceName() returns a string identifying the name of the given device 2012-03-13 10:20:42 +01:00
Klaus Schmidinger
ed10aaf68b Improved fast forwarding to the end of a timeshift recording 2012-03-12 14:53:59 +01:00
Klaus Schmidinger
9fa1654d04 Updated the Estonian OSD texts 2012-03-12 10:03:55 +01:00
Klaus Schmidinger
66639dc187 Made the "overloaded-virtual" warning an error to detect hidden overloaded virtual functions 2012-03-11 16:01:52 +01:00
Klaus Schmidinger
d43ab41c02 Deactivated definition of __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS (recording.h) and LEGACY_CRECEIVER (receiver.h) 2012-03-11 15:30:19 +01:00
Klaus Schmidinger
2050f7ac7b Added new parameter LiveView to ChannelSwitch() 2012-03-11 14:50:04 +01:00
Klaus Schmidinger
ea16f64773 Adapted menu column widths of 'skincurses' to the wider HD OSD sizes 2012-03-11 14:44:49 +01:00
Klaus Schmidinger
7958688ae1 Removed the obsolete typedef tI18nPhrase 2012-03-11 14:08:13 +01:00
Klaus Schmidinger
42b40aecf5 Removed the obsolete function cPlugin::RegisterI18n() 2012-03-11 13:56:35 +01:00
Klaus Schmidinger
526310bdcc Dropped the meanwhile obsolete script 'i18n-to-gettext' 2012-03-11 13:38:06 +01:00
Klaus Schmidinger
a05b544414 Replaced some non-ASCII characters 2012-03-11 13:34:12 +01:00
Klaus Schmidinger
c174dc0f5b The channel name column in the "What's on now/next" menu now adjusts its width to display the full short name of each channel 2012-03-11 13:29:06 +01:00
Klaus Schmidinger
2be049f5f7 Fixed some typos in HISTORY and CONTRIBUTORS 2012-03-11 11:18:56 +01:00
Klaus Schmidinger
daf25f300d Changed the Green button in the "Edit timer" menu from "Once" to "Single" 2012-03-11 10:46:17 +01:00
Klaus Schmidinger
5cf69d18ba Updated the Finnish OSD texts 2012-03-11 10:42:13 +01:00
Klaus Schmidinger
860786f809 Added a new plugin interface for implementing EPG handlers 2012-03-10 15:10:43 +01:00
Klaus Schmidinger
bc06fc2ce3 Changed displaying modified sections 2012-03-09 09:25:18 +01:00
Klaus Schmidinger
0863c5b065 Revoked "If the first event in a schedule has a table id of 0x00, any incoming EIT data for that schedule from the DVB stream will be completely ignored" 2012-03-08 15:06:58 +01:00
Klaus Schmidinger
baf473aedf The Green button in the "Edit timer" menu can now be used to toggle between single shot and repeating timers 2012-03-08 13:51:00 +01:00
Klaus Schmidinger
120fb54d49 Fixed checking pids in case a channel has only Dolby Digital audio 2012-03-08 10:04:16 +01:00
Klaus Schmidinger
9b68c100b2 Fixed parsing channel data in case the audio pid is 0 2012-03-08 09:37:17 +01:00
Klaus Schmidinger
57f58a1546 Removed the obsolete function cEITScanner::UsesDevice(); added new parameter LiveView to cStatus::ChannelSwitch() 2012-03-07 14:39:38 +01:00
Klaus Schmidinger
680b1b8f87 Removed the calls to EITScanner.UsesDevice(this) from dvb[hs]ddevice.c 2012-03-07 14:00:28 +01:00
Klaus Schmidinger
40d06559bb Fixed selecting devices for the EPG scan in case the primary device is bonded with an other one 2012-03-07 13:46:13 +01:00
Klaus Schmidinger
61e420bdf6 Fixed switching devices to the transponders of VPS recordings in case there are only bonded devices 2012-03-06 12:32:38 +01:00
Klaus Schmidinger
a57acf570d Improved displaying signal strength and quality in the ST:TNG skin's channel display 2012-03-05 12:05:53 +01:00
Klaus Schmidinger
90f5779228 Made the ST:TNG skin the default in case the user selected skin is not available 2012-03-05 10:46:26 +01:00
Klaus Schmidinger
f1441cebf6 Improved displaying the play mode in the ST:TNG skin 2012-03-05 10:35:16 +01:00
Klaus Schmidinger
55f0978c32 Added some missing member initializations in cBitmap 2012-03-05 10:34:49 +01:00
Klaus Schmidinger
4bdc69eb92 Fixed a possible race condition with the SVDRP commands CLRE and PUTE 2012-03-04 12:05:56 +01:00
Klaus Schmidinger
f35e4acf88 Toggling a mark now restarts the timeout of the replay progress display 2012-03-03 15:03:09 +01:00
Klaus Schmidinger
31cca0c85b The replay progress display is now turned on whenever a mark is toggled (not only when one is set) 2012-03-03 14:49:59 +01:00
Klaus Schmidinger
0127bf264c Fixed the German translation of "VDR will shut down in %s minutes" 2012-03-03 14:06:14 +01:00
Klaus Schmidinger
78c1fee7f8 Now checking for NULL in cOsd::AddPixmap() 2012-03-03 13:25:22 +01:00
Klaus Schmidinger
0432198e0b Moved the call to cStatus::MsgChannelSwitch(this, 0) to the beginning of cDevice::SetChannel() 2012-03-03 11:51:32 +01:00
Klaus Schmidinger
c5eb60f07a Fixed handling OSD color button texts in case a menu item has texts of its own 2012-03-02 15:49:57 +01:00
Klaus Schmidinger
e7b0f909ff Fixed some typos 2012-03-02 10:56:49 +01:00
Klaus Schmidinger
1e3f6d6da2 Replaced min(max()) calls with the new function constrain() 2012-03-02 10:51:46 +01:00
Klaus Schmidinger
c8808a854b Added a Query parameter to cDevice::GetDevice(), so that devices can be queried without side effects when zapping 2012-03-02 10:43:26 +01:00
Klaus Schmidinger
28bc34b245 Revised priority handling to allow receivers with a priority that is lower than that of live viewing 2012-03-02 10:19:00 +01:00
Klaus Schmidinger
a188928e6e Added support for automatically selecting subtitles when playing old PES recordings made with the subtitles plugin 2012-02-28 09:28:54 +01:00
Klaus Schmidinger
d2d4dacf5b Added a missing blurb 2012-02-27 12:40:37 +01:00
Klaus Schmidinger
f2d8f17018 Removed an obsolete command line option 2012-02-27 12:35:45 +01:00
Klaus Schmidinger
083ee1f74e The code for the RCU remote control unit has been moved into a separate plugin named "rcu" 2012-02-27 12:30:45 +01:00
Klaus Schmidinger
6d34a8a7a0 Fixed handling overlapping timers in case a VPS timer with higher priority needs to interrupt a timer with lower priority 2012-02-27 10:21:28 +01:00
Klaus Schmidinger
cd0f403bbc Added some typecasts to silence gcc compiler warnings 2012-02-26 14:02:17 +01:00
Klaus Schmidinger
aaca30f2ac If the first event in a schedule has a table id of 0x00, any incoming EIT data for that schedule from the DVB stream will be completely ignored 2012-02-25 15:52:16 +01:00
Klaus Schmidinger
d0cd92a455 Fixed getting the video aspect ratio for scaling subtitles (cont'd) 2012-02-25 14:47:44 +01:00
Klaus Schmidinger
42c42b554a Removed the "PrimaryLimit" 2012-02-25 14:44:43 +01:00
Klaus Schmidinger
f2c396ee07 Fixed a typo 2012-02-25 11:19:53 +01:00
Klaus Schmidinger
0206157558 Fixed getting the video aspect ratio for scaling subtitles 2012-02-24 11:27:04 +01:00
Klaus Schmidinger
1b104953ae Removed obsolete code 2012-02-23 09:20:36 +01:00
Klaus Schmidinger
a3d37dfc71 Fixed upscaling cBitmaps with anti-aliasing 2012-02-22 17:15:31 +01:00
Klaus Schmidinger
a949b9c7d2 Fixed handling subtitle color palettes on channels where subtitles appear "word by word" 2012-02-22 11:25:57 +01:00
Klaus Schmidinger
7519c21a51 Updated the Finnish OSD texts 2012-02-21 12:15:43 +01:00
Klaus Schmidinger
7685196e60 Updated the Estonian OSD texts 2012-02-21 11:43:17 +01:00
Klaus Schmidinger
42d3d99ae1 Revoked "Fixed a possible deadlock in time shift mode" 2012-02-21 11:36:49 +01:00
Klaus Schmidinger
1f22931a77 Changed the return value of cTimer::SetFile() to 'void' 2012-02-20 15:53:33 +01:00
Klaus Schmidinger
f6cdae50ef Added several cTimer::Set...() functions 2012-02-20 15:37:01 +01:00
Klaus Schmidinger
5b2bdf2049 Fixed getting the subsystem ids of DVB devices in case they have been rearranged via udev rules 2012-02-20 12:54:01 +01:00
Klaus Schmidinger
343ca17b17 Increased the average character estimate for calculating tab positions in skins, to better suit wide fonts 2012-02-20 11:53:47 +01:00
Klaus Schmidinger
73314207dc The fps value for channels where it differs from the default is now set correctly when pausing live video 2012-02-19 14:34:50 +01:00
Klaus Schmidinger
23ec57d822 Fixed switching into time shift mode when pausing live video 2012-02-19 11:50:20 +01:00
Klaus Schmidinger
50e09d1232 Fixed a possible deadlock in time shift mode 2012-02-18 11:22:01 +01:00
Klaus Schmidinger
882691e32f cReadDir::Next() now skips directory entries "." and ".." 2012-02-17 14:02:13 +01:00
Klaus Schmidinger
f1eecdeb1c The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory instead of looping through adapter/frontend numbers 2012-02-17 12:38:57 +01:00
Klaus Schmidinger
6a93cfe0c9 Removed code stub for obsolete SVDRP command MOVT 2012-02-16 12:38:48 +01:00
Klaus Schmidinger
6c7b28705e The SVDRP command DELR now won't delete a recording that is currently being edited 2012-02-16 12:29:27 +01:00
Klaus Schmidinger
26d2fe51d1 An ongoing editing process is now canceled if either the original or the edited version of the recording is deleted from the Recordings menu 2012-02-16 12:20:46 +01:00
Klaus Schmidinger
3432b2638c Updated storage requirements 2012-02-16 10:23:32 +01:00
Klaus Schmidinger
7a8cadd393 Removed superfluous calls to SetVideoFormat() from device constructors 2012-02-15 13:22:03 +01:00
Klaus Schmidinger
825dd70bc4 Fixed handling the PrimaryLimit when requesting a device for live viewing 2012-02-15 12:22:21 +01:00
Klaus Schmidinger
8dc6eb0cda Added some missing 'const' to cDevice 2012-02-14 14:47:59 +01:00
Klaus Schmidinger
63e2507b15 Credits to Ralf Schueler for some backports to version 1.6.0-3 2012-02-14 14:40:15 +01:00
Klaus Schmidinger
b74cb56d2b Added a missing '.' after the month in VPS strings 2012-02-13 15:00:24 +01:00
Klaus Schmidinger
5e16ed7aab No longer using tabs as delimiter in the EPG bugfix log 2012-02-13 14:54:42 +01:00
Klaus Schmidinger
adc88b3790 Reactivated "Fixed handling symbolic links in cRecordings::ScanVideoDir()" 2012-02-13 11:49:43 +01:00
Klaus Schmidinger
573449e935 Improved handling subtitles of BBC channels 2012-02-13 09:49:33 +01:00
Klaus Schmidinger
1e74f596b2 Fixed a possible crash when canceling VDR while displaying subtitles, and the primary device is no longer available 2012-02-12 15:45:59 +01:00
Klaus Schmidinger
cace8bed8d Fixed selecting the primary device for receiving the live viewing channel in case it is bonded with an other device and has no receiver attached to it 2012-02-12 12:45:35 +01:00
Klaus Schmidinger
2772964f99 The epg.data file is now read in a separate thread 2012-02-11 13:41:29 +01:00
Klaus Schmidinger
b3891d8319 Symbolic links are no longer resolved in cRecordings::ScanVideoDir() 2012-01-26 10:04:01 +01:00
Klaus Schmidinger
9e7a2134b4 Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full minutes 2012-01-25 09:34:24 +01:00
Klaus Schmidinger
fbe4f2a056 Some improvements to the Makefiles 2012-01-18 12:40:17 +01:00
Klaus Schmidinger
6469b666bd Fixed some typos 2012-01-18 12:12:49 +01:00
Klaus Schmidinger
d3bf039f3f Fixed a crash in a plugin using cDeviceHook when VDR ends 2012-01-18 10:51:01 +01:00
Klaus Schmidinger
33342fb17b Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html 2012-01-18 09:09:30 +01:00
Klaus Schmidinger
f8d0f77307 Fixed asserting there is a live programme if the primary device is bonded with a device that starts a recording on a different band 2012-01-17 15:37:52 +01:00
Klaus Schmidinger
9cd835b35e Fixed indentation 2012-01-16 16:57:00 +01:00
Klaus Schmidinger
d2f4fbb0b2 Updated the Finnish OSD texts 2012-01-16 15:54:25 +01:00
Klaus Schmidinger
f1b0011a10 Improved the way DVB_API_VERSION is checked 2012-01-16 12:53:38 +01:00
Klaus Schmidinger
41f185b000 Fixed a high load in case a transponder can't be received 2012-01-16 12:43:33 +01:00
Klaus Schmidinger
98a443cc61 Revoked "Fixed handling symbolic links in cRecordings::ScanVideoDir()" 2012-01-16 12:09:38 +01:00
Klaus Schmidinger
3a0f7d314a Updated the Italian OSD texts 2012-01-16 09:50:03 +01:00
Klaus Schmidinger
2d3fa1416f Fixed frozen live view with device bonding in case the bonded master is used for live viewing 2012-01-15 14:31:47 +01:00
Klaus Schmidinger
c36c65416e Fixed wrongfully displaying the length of a recording in the title of the replay progress display 2012-01-15 11:12:58 +01:00
Klaus Schmidinger
81f349bf58 Implemented setup option "Replay/Show remaining time" 2012-01-14 13:20:16 +01:00
Klaus Schmidinger
5f86af093e Added option -N to the msgmerge call in the Makefile 2012-01-14 13:02:21 +01:00
Klaus Schmidinger
262f20eaa0 Changed IndexToHMSF() so that it can handle negative Index values 2012-01-14 13:00:47 +01:00
Klaus Schmidinger
a7d8c92ddc Removed '998 QAM_AUTO' 2012-01-14 10:45:33 +01:00
Klaus Schmidinger
9b754a6729 The parameters that are only used by "second generation" delivery systems (DVB-S2 and DVB-T2) are no longer written into channels.conf for "first generation" delivery systems 2012-01-13 12:27:18 +01:00
Klaus Schmidinger
64f23b27d9 Added member functions Adapter() and Frontend() to cDvbDevice 2012-01-13 11:41:04 +01:00
Klaus Schmidinger
0730f502c5 BIDI support now checks at runtime whether the system runs with UTF-8 2012-01-13 09:45:08 +01:00
Klaus Schmidinger
ea6c6d370e Change Frank Neumann's email address 2012-01-13 09:38:20 +01:00
Klaus Schmidinger
4bd9756caf Fixed the SVDRP command CLRE for a single channel in case there are events that have a timer 2012-01-12 15:11:50 +01:00
Klaus Schmidinger
70d4e5105b Fixed a possible memory corruption in cTsToPes::GetPes() 2012-01-12 12:25:54 +01:00
Klaus Schmidinger
44da06f384 Fixes from Rolf Ahrenberg 2012-01-12 08:43:52 +01:00
Klaus Schmidinger
303e85e3a3 Added the required driver version for DVB-T2 2012-01-12 08:38:36 +01:00
Klaus Schmidinger
de4780fad2 Fixed cConfig::Load() for g++ version 4.7.0 2012-01-11 15:41:55 +01:00
Klaus Schmidinger
875aebe14b Added support for handling DVB-T2 transponders 2012-01-11 13:22:51 +01:00
Klaus Schmidinger
ed118b079f Added support for DVB-T2 to libsi 2012-01-11 11:38:00 +01:00
Klaus Schmidinger
48de95f5d2 Fixed cListBase::Move() in case From and To are equal 2012-01-11 11:23:38 +01:00
Klaus Schmidinger
73ccde16e8 Fixed cDvbSubtitleConverter::SetOsdData() 2012-01-11 10:37:11 +01:00
Klaus Schmidinger
4d30033936 cEvent::FixEpgBugs() now replaces any newline characters in stream component descriptions with blanks 2012-01-08 15:40:17 +01:00
Klaus Schmidinger
2b3821cc88 cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands at any given time 2012-01-08 14:32:39 +01:00
Klaus Schmidinger
acaa549404 Updated the Hungarian language texts 2012-01-08 14:15:24 +01:00
Klaus Schmidinger
d661735e15 Added option -o to pic2mpg 2012-01-08 13:29:01 +01:00
Klaus Schmidinger
e197b04e4d Added support for devices with more than one delivery system per frontend 2012-01-08 09:27:59 +01:00
Klaus Schmidinger
76b6ae2cab Added support for HbbTV to libsi 2011-12-10 15:51:35 +01:00
Klaus Schmidinger
96160f91db Updated the Finnish OSD texts 2011-12-10 15:25:52 +01:00
Klaus Schmidinger
8a49851b05 Added HasSnr to the DEBUG_SIGNALQUALITY output in cDvbTuner::GetSignalQuality() 2011-12-10 15:01:23 +01:00
Klaus Schmidinger
b25efc415e Removed a redundant NULL check in cDvbSpuDecoder::setTime() 2011-12-10 14:40:16 +01:00
Klaus Schmidinger
da352e63c6 Removed redundant memset() in the ctor of cSatCableNumbers 2011-12-10 14:37:55 +01:00
Klaus Schmidinger
7d590428ec Removed redundant thanks 2011-12-10 14:31:00 +01:00
Klaus Schmidinger
4dd52ffe39 Fixed a memory leak in cRecordings::ScanVideoDir() in case there are too many link levels 2011-12-10 14:29:38 +01:00
Klaus Schmidinger
773c4419ea Fixed handling symbolic links in cRecordings::ScanVideoDir() 2011-12-10 14:14:58 +01:00
Klaus Schmidinger
97d47b6a91 Fixed bonding more than two devices 2011-12-10 13:49:04 +01:00
Klaus Schmidinger
96647c3c3d Removed the '.pl' suffix from svdrpsend.pl 2011-12-04 21:46:30 +01:00
Klaus Schmidinger
8db58ff99e Fixed a crash with malformed SI data 2011-12-04 15:09:45 +01:00
Klaus Schmidinger
04e5380723 Replaced all calls to sleep() with cCondWait::SleepMs() 2011-12-04 14:53:41 +01:00
Klaus Schmidinger
989fa21a21 Added file name and line number to LOG_ERROR_STR() 2011-12-04 14:48:53 +01:00
Klaus Schmidinger
7584780dbf Changed the default location for the LIRC socket to /var/run/lirc/lircd 2011-12-04 14:43:13 +01:00
Klaus Schmidinger
a613816050 Removed the '.pl' suffix from all scripts 2011-12-04 14:36:37 +01:00
Klaus Schmidinger
7ab9d4fcfd Removed 'Requires: freetype2 fontconfig' from the vdr.pc target 2011-12-04 14:12:49 +01:00
Klaus Schmidinger
c298ed0330 Added generating a pkg-config file to the Makefile 2011-12-04 14:11:20 +01:00
Klaus Schmidinger
abb95de8a9 Implemented the SVDRP command UPDR 2011-12-04 13:58:33 +01:00
Klaus Schmidinger
fe0a011611 Fixed several spelling errors 2011-12-04 13:40:52 +01:00
Klaus Schmidinger
ada6766c19 Fixed a crash when deleting a recording while cutting it 2011-12-04 12:56:55 +01:00
Klaus Schmidinger
9eeecef612 Fixed handling images that are rotated by 180 degrees in pic2mpg 2011-12-04 12:50:00 +01:00
Klaus Schmidinger
a49ce434f6 Implemented "Device Bonding" 2011-12-04 12:45:26 +01:00
Klaus Schmidinger
a964269fe9 Implemented 'occupied' for devices 2011-10-16 14:02:34 +02:00
Klaus Schmidinger
ae8627e6fc Fixed setting the start time of an edited recording 2011-10-09 16:12:21 +02:00
Klaus Schmidinger
583f840990 Added note about L and R polarization 2011-09-25 13:51:34 +02:00
Klaus Schmidinger
0f320c7d88 Added cap_net_raw to the capabilities that are not dropped 2011-09-23 13:11:36 +02:00
Klaus Schmidinger
0ecf6b00d4 Fixed handling DVB subtitles and implemented decoding textual DVB subtitles 2011-09-18 11:36:38 +02:00
Klaus Schmidinger
b1f6b586d4 Added device number selection to scr.conf 2011-09-17 14:13:31 +02:00
Klaus Schmidinger
b40cd95dcc Added random timeout to avoid SCR device interference 2011-09-17 12:53:46 +02:00
Klaus Schmidinger
b228086355 Disabled SCR code in cDvbTuner's dtor 2011-09-17 11:41:01 +02:00
Klaus Schmidinger
ffaf10c3f3 Added a note about rounding 2011-09-17 10:41:00 +02:00
Klaus Schmidinger
fea8c9a64f Added reference to EN50494 2011-09-17 10:10:54 +02:00
Klaus Schmidinger
7d637b588f The SVDRP command LSTC now also accepts channel IDs 2011-09-11 14:49:33 +02:00
Klaus Schmidinger
56bdd34c07 Updated sources.conf 2011-09-11 14:32:29 +02:00
Klaus Schmidinger
413a0e6373 VDR now supports "Satellite Channel Routing" (SCR) 2011-09-11 14:09:03 +02:00
Klaus Schmidinger
78e89efee8 The DiSEqC codes are now copied in the call to cDiseqc::Execute() 2011-09-10 13:55:08 +02:00
Klaus Schmidinger
873b14ac0c Fixed scaling subtitles in case the primary device's GetVideoSize() function doesn't return actual values 2011-09-10 09:45:55 +02:00
Klaus Schmidinger
699fd6d5d7 Detecting frames in case the Picture Start Code or Access Unit Delimiter extends over TS packet boundaries is now done by locally skipping TS packets in cFrameDetector 2011-09-04 13:09:06 +02:00
Klaus Schmidinger
96061c5b40 Revoked the changes to cFrameDetector that have been introduced in version 1.7.19 2011-09-04 10:13:14 +02:00
Klaus Schmidinger
6c110a7272 Fixed detecting frames on radio channels 2011-08-27 14:27:22 +02:00
Klaus Schmidinger
d2342ae2ef The dvbsddevice plugin now supports the new option --outputonly 2011-08-27 11:40:21 +02:00
Klaus Schmidinger
6700e772e5 The Recordings menu now displays the length (in hours:minutes) of each recording 2011-08-27 11:14:54 +02:00
Klaus Schmidinger
ac5f296f20 The SVDRP command HITK now accepts multiple keys 2011-08-27 10:43:18 +02:00
Klaus Schmidinger
048d0df54a The Audio and Subtitles options are now available through the Green and Yellow keys in the Setup/DVB menu 2011-08-27 09:55:35 +02:00
Klaus Schmidinger
e4892e536c Moved ProvidesEIT() check further up 2011-08-26 13:10:00 +02:00
Klaus Schmidinger
6b5e9f56ed Implemented cDevice::ProvidesEIT() 2011-08-26 13:03:14 +02:00
Klaus Schmidinger
2d3cb812fb Moved scanning tpid back to where Rolf Ahrenberg's patch originally did it 2011-08-26 12:44:21 +02:00
Klaus Schmidinger
d00941c1fd The subtitle PIDs are now stored in the channels.conf file as an extension to the TPID field 2011-08-21 14:18:37 +02:00
Klaus Schmidinger
dac837d38d Implemented cRecording::NumFrames() and cRecording::LengthInSeconds() 2011-08-21 13:47:07 +02:00
Klaus Schmidinger
97ad2fa95d Direct access to several class members is now deprecated 2011-08-21 11:34:30 +02:00
Klaus Schmidinger
e5d2240bbb The start time of an edited recording is now set to the time of the first editing mark 2011-08-20 10:09:05 +02:00
Klaus Schmidinger
12f60ee151 Now initializing Setup.InitialChannel to an empty string 2011-08-20 09:25:48 +02:00
Klaus Schmidinger
3a19051c76 Fixed detecting frames for channels that split frames into several payloads 2011-08-20 09:07:26 +02:00
Klaus Schmidinger
f4007c7ff3 cTimeMs is no longer initialized to the current time if the value given to the constructor is negative 2011-08-15 14:13:42 +02:00
Klaus Schmidinger
4a9fd9b097 Implemented command line options --filesize and --split 2011-08-15 12:45:40 +02:00
Klaus Schmidinger
9ebdb61995 Fixed maximum video file size 2011-08-15 10:46:20 +02:00
Klaus Schmidinger
4bbbd89ee9 Fixed language code entry for Portuguese 2011-08-15 10:05:19 +02:00
Klaus Schmidinger
adb92a1999 The cutter now sets the 'broken link' flag for MPEG2 TS recordings 2011-08-15 09:52:43 +02:00
Klaus Schmidinger
fc4bed511d Added a mutex to protect cOsd::Osds from simultaneous access from different threads 2011-08-15 09:37:54 +02:00
Klaus Schmidinger
c13d6e6070 The pic2mpg script of the 'pictures' plugin now generates HD images 2011-08-14 13:50:26 +02:00
Klaus Schmidinger
5e2f8e7613 Made frame type buffer size a multiple of TS_SIZE 2011-08-13 14:56:36 +02:00
Klaus Schmidinger
ff866ef828 Made DELETENULL() thread safe 2011-08-13 13:38:09 +02:00
Klaus Schmidinger
da8cde8615 Fixed some crashes in subtitle display 2011-08-13 13:34:32 +02:00
Klaus Schmidinger
06513252b1 Marked some comments for doxygen 2011-08-13 12:51:23 +02:00
Klaus Schmidinger
3000906715 The length (as number of frames) of a recording's index file can now be determined by a call to cIndexFile::GetLength() 2011-08-13 12:45:42 +02:00
Klaus Schmidinger
ef611229f3 Implemented static cIndexFile::IndexFileName() 2011-08-13 11:16:41 +02:00
Klaus Schmidinger
67e7f93d29 Now scanning new transponders before old ones, to make sure transponder changes are recognized 2011-08-12 14:37:25 +02:00
Klaus Schmidinger
d2e0898d64 Reduced frame type buffer to 1KB 2011-08-12 14:14:57 +02:00
Klaus Schmidinger
ce14873e89 cStringList::Sort() can now be called with a boolean parameter that controls case insensitive sorting 2011-08-12 14:05:56 +02:00
Klaus Schmidinger
b863d9a702 Fixed handling the channelID in cMenuEditChanItem 2011-08-12 13:21:42 +02:00
Klaus Schmidinger
2c2ed53adf Fixed distortions that happened when splitting recording into several files 2011-08-07 13:49:32 +02:00
Klaus Schmidinger
0f8495f1d8 Added a mechanism to defer timer handling in case of problems 2011-08-06 13:20:07 +02:00
Klaus Schmidinger
15007f76cf Fixed a typo 2011-08-06 11:27:37 +02:00
Klaus Schmidinger
5cfd39dfca Fixed handling DiSEqC codes 2011-08-06 10:45:05 +02:00
Klaus Schmidinger
69aa850d1e Increased MAXCAIDS to 12 2011-08-06 09:57:25 +02:00
Klaus Schmidinger
570656b073 Fixed the return value of the svdrpsend.pl script in case of an error 2011-08-06 09:51:09 +02:00
Klaus Schmidinger
fdd82cd972 cSkins::Message() now blocks calls from background threads 2011-08-06 09:41:57 +02:00
Klaus Schmidinger
4278458e69 Now checking Setup.InitialChannel for NULL before using it 2011-07-31 13:48:49 +02:00
Klaus Schmidinger
404124eca4 The isnumber() function now checks the given pointer for NULL 2011-07-31 13:23:31 +02:00
Klaus Schmidinger
ba5bae0d1c Fixed handling rotated images 2011-07-23 14:29:18 +02:00
Klaus Schmidinger
c066f803f1 Added some missing 'const' to tChannelID 2011-06-21 21:45:08 +02:00
Klaus Schmidinger
8ee2c5e293 Adjusted release date 2011-06-19 09:53:58 +02:00
Klaus Schmidinger
b2812b7e71 Added support for "content identifier descriptor" and "default authority descriptor" to 'libsi' 2011-06-15 21:29:03 +02:00
Klaus Schmidinger
263dc29508 The initial channel is now stored by the channel ID in the setup.conf file 2011-06-13 14:48:41 +02:00
Klaus Schmidinger
61a9b09403 Keeping signal display from slowing things down during heavy zapping 2011-06-12 15:20:59 +02:00
Klaus Schmidinger
edb85b014c Fixed signal display in case of a message 2011-06-12 14:40:50 +02:00
Klaus Schmidinger
b0fd7ed933 Fixed overwriting the fps value in a recording's info file 2011-06-12 14:24:09 +02:00
Klaus Schmidinger
72d342ce02 Fixed detecting frames in case the Picture Start Code or Access Unit Delimiter extends over TS packet boundaries (cont'd) 2011-06-12 14:06:11 +02:00
Klaus Schmidinger
098d21117e Improved signal strength and quality handling (cont'd) 2011-06-11 14:34:24 +02:00
Klaus Schmidinger
c90e87d71f The frame detector now only starts collecting PTS values after it has seen the first I-frame 2011-06-11 11:40:18 +02:00
Klaus Schmidinger
b226ab46d6 Fixed detecting frames in case the Picture Start Code or Access Unit Delimiter extends over TS packet boundaries 2011-06-11 11:28:13 +02:00
Klaus Schmidinger
1afb2cf1c2 Improved signal strength and quality handling 2011-06-05 16:22:51 +02:00
Klaus Schmidinger
e572cbda47 Implemented signal strength and quality handling 2011-06-02 13:28:42 +02:00
Klaus Schmidinger
40278ec121 Added some missing braces 2011-05-22 15:18:59 +02:00
Klaus Schmidinger
d7c07ecbfd Fixed a possible race condition in cDiseqc::Execute() 2011-05-22 10:51:03 +02:00
Klaus Schmidinger
7978112850 Better avoiding the primary device for recording 2011-05-22 09:42:57 +02:00
Klaus Schmidinger
7c1a04d7c3 Fixed a typo 2011-05-21 22:07:08 +02:00
Klaus Schmidinger
80e3c06fa7 Subtitle PIDs are now also decrypted 2011-05-21 15:24:10 +02:00
Klaus Schmidinger
8cb8e6333a The primary device is now only avoided for recording if it is an old SD full featured card 2011-05-21 13:40:47 +02:00
Klaus Schmidinger
2993351536 Now sorting the source file names in the call to xgettext 2011-05-21 12:40:42 +02:00
Klaus Schmidinger
85af76ab63 TsGetPayload() now checks if there actually is a payload in the given TS packet 2011-05-21 10:03:48 +02:00
Klaus Schmidinger
ee382b4ad2 Avoiding a gcc 4.6 compiler error in the skincurses plugin 2011-05-15 21:44:08 +02:00
Klaus Schmidinger
464552dd91 Fixed cString's operator=(const char *String) in case the given string is the same as the existing one 2011-05-15 11:46:30 +02:00
Klaus Schmidinger
914b04c1d2 Fixed handling the bitmap color depth for scaled subtitles 2011-04-17 14:40:58 +02:00
Klaus Schmidinger
c670c0645f Avoiding an unecessary call to Recordings.ResetResume() 2011-04-17 13:58:29 +02:00
Klaus Schmidinger
71dacdce96 Added handling of "ANSI/SCTE 57" descriptors 2011-04-17 13:48:20 +02:00
Klaus Schmidinger
31d80e527e The Makefile now also installs the include files 2011-04-17 13:37:50 +02:00
Klaus Schmidinger
bcdd5cb886 Now using pkg-config to get fribidi, freetype and fontconfig cflags and libs 2011-04-17 13:29:42 +02:00
Klaus Schmidinger
e33a38a542 Now using pkg-config to get fribidi cflags and libs 2011-04-17 13:26:57 +02:00
Klaus Schmidinger
5138ccc1ce Added a patch from Udo Richter 2011-04-17 13:22:44 +02:00
Klaus Schmidinger
8e3c9f553f Fixed a possible NULL pointer dereference in osddemo.c 2011-04-17 13:05:13 +02:00
Klaus Schmidinger
79f8c5f38e Removed an obsolete local variable in dvbsdffosd.c 2011-04-17 12:57:29 +02:00
Klaus Schmidinger
475e64eeec The dvbhddevice plugin is now part of the VDR distribution archive 2011-04-17 12:35:46 +02:00
Klaus Schmidinger
05ea68e2bb Made cRecordingInfo::Read(FILE *f) private 2011-04-03 11:22:16 +02:00
Klaus Schmidinger
c23b6a7e13 Added HD stream content identifiers to vdr.5 2011-04-03 10:23:12 +02:00
Klaus Schmidinger
4b8fd4e1af Fixed a buffer overflow in cFont::Bidi() 2011-03-28 16:30:37 +02:00
Klaus Schmidinger
fa85bb7c01 Some fixes in the "osddemo" plugin 2011-03-28 16:26:49 +02:00
Klaus Schmidinger
4ed9d95394 Replaced "%lld" and "%llX" print format specifiers with "PRId64" and "PRIX64" 2011-03-27 15:12:20 +02:00
Klaus Schmidinger
9f0ac31f0d Added a missing initialization to sDvbSpuRect 2011-03-27 14:52:31 +02:00
Klaus Schmidinger
1387660744 Fixed scaling subtitles in case the OSD size is exactly the same as the display size of the subtitles 2011-03-27 14:12:58 +02:00
Klaus Schmidinger
48d2caa73e Fixed the description of cReceiver in PLUGINS.html 2011-03-27 13:12:03 +02:00
Klaus Schmidinger
08d5ad047a Renamed cBitmap::Scale() to Scaled() 2011-03-27 11:54:07 +02:00
Klaus Schmidinger
8768a9c321 Added anti-aliasing when upscaling bitmaps 2011-03-27 11:50:17 +02:00
Klaus Schmidinger
16bd3bd5b9 Fixed horizontal scaling of subtitles (cont'd) 2011-03-26 10:45:05 +01:00
Klaus Schmidinger
53942c3d9a Fixed the Language header of the Serbian translation file 2011-03-21 17:42:26 +01:00
Klaus Schmidinger
a914aed05a Fixed cUnbufferedFile::Seek() in case it is compiled without USE_FADVISE 2011-03-20 15:25:06 +01:00
Klaus Schmidinger
d7d57c3d2a Fixed horizontal scaling of subtitles 2011-03-20 15:19:28 +01:00
Klaus Schmidinger
31d4abab37 Made updating the editing marks during replay react faster in case the marks file has just been written 2011-03-20 11:46:58 +01:00
Klaus Schmidinger
d1dd7df17a Fixed detecting frames on channels that broadcast with separate "fields" instead of complete frames 2011-03-20 10:22:22 +01:00
Klaus Schmidinger
22f70b02e2 Revoked 'Reduced CPU load when pausing a replay' because it broke moving editing marks 2011-03-13 21:30:00 +01:00
Klaus Schmidinger
5f35ff690f Fixed some direct comparisons of double values 2011-03-13 13:58:22 +01:00
Klaus Schmidinger
06a16e7fba Added a missing 'default' case in cPixmapMemory::DrawEllipse() 2011-03-13 13:53:08 +01:00
Klaus Schmidinger
1c86e0127e Changed -O2 to -O3 in Make.config.template 2011-03-13 13:42:57 +01:00
Klaus Schmidinger
580aafd8cc Reduced CPU load when pausing a replay 2011-03-13 13:32:47 +01:00
Klaus Schmidinger
2bd17596a0 The original display size of subtitles is now used to scale them properly when displaying them on an HD OSD 2011-03-12 16:08:08 +01:00
Klaus Schmidinger
11cca8015c Now storing the original display size when handling DVB subtitles 2011-03-12 13:09:30 +01:00
Klaus Schmidinger
39c0065fe0 Updated the Romanian OSD texts 2011-03-12 10:30:39 +01:00
Klaus Schmidinger
5e09783947 Added some notes about locking cPixmaps 2011-03-08 15:52:12 +01:00
Klaus Schmidinger
75861a97bc Removed checking for minimum line length of 21 characters in the LIRC receiver code 2011-03-08 15:38:58 +01:00
Klaus Schmidinger
e8406def02 Now reducing the thread and I/O priority cCuttingThread::Action() 2011-03-06 14:59:57 +01:00
Klaus Schmidinger
607c860c81 New email address for Marcus Hilbrich 2011-02-27 16:32:05 +01:00
Klaus Schmidinger
83a3136228 Credits to Marcus Hilbrich 2011-02-27 13:49:18 +01:00
Klaus Schmidinger
61c6b36bbc While replaying, the editing marks are now updated every 10 seconds 2011-02-27 13:40:43 +01:00
Klaus Schmidinger
cd3c26b815 Fixed rendering pixmaps in case there is more than one dirty rectangle 2011-02-27 11:57:37 +01:00
Klaus Schmidinger
8253754cc3 Improved alpha blending 2011-02-27 10:14:43 +01:00
Klaus Schmidinger
9f4a264454 Changed the compiler optimization flag to -O3 2011-02-27 10:06:06 +01:00
Klaus Schmidinger
63fb010fc5 Setting the audio type of language descriptors to 0x00 in the PAT/PMT generator 2011-02-26 15:53:12 +01:00
Klaus Schmidinger
387ee5b604 Fixed setting up the 'Recordings' menu in case there are several recordings with exactly the same name 2011-02-26 15:35:30 +01:00
Klaus Schmidinger
750d98f1e6 Added a note about how to implement cOsd::Flush() for true color OSDs 2011-02-26 14:10:30 +01:00
Klaus Schmidinger
0b8356aa92 Improved and cleaned up transparent text drawing 2011-02-26 12:13:59 +01:00
Klaus Schmidinger
d1ab9dbc5f Now checking the result of all realloc() calls 2011-02-25 15:25:42 +01:00
Klaus Schmidinger
e145ee45e2 Optimization in AlphaBlend() 2011-02-20 21:35:48 +01:00
Klaus Schmidinger
76d9240395 Updated Serbian language texts 2011-02-20 18:03:05 +01:00
Klaus Schmidinger
82a13c7a0e Fixed reallocating memory in cTsToPes::PutTs() 2011-02-20 17:37:24 +01:00
Klaus Schmidinger
e85852672f Fixed reallocating memory in the "pictures" plugin 2011-02-20 17:19:54 +01:00
Klaus Schmidinger
698ffdc970 Added Serbian language texts 2011-02-20 16:08:39 +01:00
Klaus Schmidinger
1722cb7bd1 Updated the Slovakian language texts 2011-02-20 15:43:24 +01:00
Klaus Schmidinger
6c7089afd2 Implemented support for TrueColor OSD 2011-02-20 15:12:56 +01:00
Klaus Schmidinger
343071cc6a The include path to the freetype2 header files is now retrieved via a call to 'pkg-config --cflags freetype2' 2010-12-29 11:35:40 +01:00
Klaus Schmidinger
9f60bd2fc4 Now updating the 'frames per second' data in the list of recordings when a new recording is started that has a frame rate other than the default 2010-12-27 12:25:19 +01:00
Klaus Schmidinger
6c0612546e Added LDFLAGS to the linker calls in the Makefiles 2010-12-26 12:11:58 +01:00
Klaus Schmidinger
c60c8b9e4f Removing a cRemote from the Remotes list in case its initialization failed 2010-12-24 15:32:40 +01:00
Klaus Schmidinger
9cc9553c63 Changed "frame duration" to "frame rate" in vdr.5 2010-12-24 15:21:29 +01:00
Klaus Schmidinger
b5aad148d6 Fixed location of 'Language:' line 2010-12-24 11:36:42 +01:00
Klaus Schmidinger
c8cc3a6e36 Fixed inclusion of <stdarg.h> 2010-12-24 11:34:11 +01:00
Klaus Schmidinger
5bc4b0072c Changed the HISTORY entry on include paths not being overwritten 2010-12-12 15:53:03 +01:00
Klaus Schmidinger
4d3167231d Added 'Language:' line 2010-12-12 14:44:56 +01:00
Klaus Schmidinger
7b77774a99 Added typecasts to avoid gcc 4.5 warnings in switch statements on eKeys variables where additional 'k_...' flags are used 2010-12-12 13:42:00 +01:00
Klaus Schmidinger
1e166490c8 Removed displaying the "contents" information from the "Classic VDR" and "ST:TNG Panels" skins 2010-11-07 15:13:34 +01:00
Klaus Schmidinger
5eef32b558 Added support for "registration descriptor" (cont'd) 2010-11-07 13:47:16 +01:00
Klaus Schmidinger
6c176e0e7b Added an include of VDR's 'Make.global' to libsi's Makefile 2010-11-07 13:32:09 +01:00
Klaus Schmidinger
eff0655b1d Fixed unjustified log entries about changed channel pids 2010-11-07 12:27:25 +01:00
Klaus Schmidinger
cfb37a7edf Added support for "registration descriptor" 2010-11-01 15:47:59 +01:00
Klaus Schmidinger
4f50c34824 Fixed detecting frames on channels that broadcast with 50 or 60 fps 2010-11-01 12:31:52 +01:00
Klaus Schmidinger
55d0d8f9ba Updated the Lithuanian OSD texts 2010-10-30 09:56:38 +02:00
Klaus Schmidinger
0542371ead Added Language and fixed Language-Team header of *.po (cont'd) 2010-10-24 14:43:13 +02:00
Klaus Schmidinger
1cad1a89be Added Language and fixed Language-Team header of *.po 2010-10-24 13:55:43 +02:00
Klaus Schmidinger
61f4576808 Made 'dist' target dependent on up to date *.po 2010-10-24 13:47:36 +02:00
Klaus Schmidinger
dfae319686 Passing package name and version to xgettext 2010-10-24 13:36:47 +02:00
Klaus Schmidinger
e0dcecf96d Some spelling fixes 2010-10-24 13:26:10 +02:00
Klaus Schmidinger
1c5ece6100 Added cString::operator=(const char *String) 2010-10-24 13:08:55 +02:00
Klaus Schmidinger
fbbcb8e9c8 Removed the check for positive STC values from cDvbSubtitleConverter::Action() 2010-10-24 12:29:04 +02:00
Klaus Schmidinger
ad650b5883 Changed the description of cDevice::GetSTC() to make it mandatory for devices that can replay 2010-10-24 12:12:07 +02:00
Klaus Schmidinger
208b703e5b Fixed following symbolic links in RemoveFileOrDir() (cont'd) 2010-10-24 11:33:46 +02:00
Klaus Schmidinger
12870faf87 Updated the Estonian OSD texts 2010-10-24 11:23:04 +02:00
Klaus Schmidinger
ab0beb2ddb Added support for languages that are written right-to-left 2010-09-19 12:36:07 +02:00
Klaus Schmidinger
f1d4e66582 Added Arabian language texts 2010-09-12 11:30:00 +02:00
Klaus Schmidinger
07c7bc2951 Fixed some include statements 2010-09-12 11:29:00 +02:00
Klaus Schmidinger
2009716599 Fixed following symbolic links in RemoveFileOrDir() 2010-08-29 15:03:08 +02:00
Klaus Schmidinger
5203fa03e8 Fixed DDS detection for HD resolution subtitles 2010-08-29 14:10:47 +02:00
Klaus Schmidinger
505574fa98 Added locking to the cCutter functions to avoid a crash in case CutRecording() is called from a plugin 2010-08-29 13:40:37 +02:00
Klaus Schmidinger
22a4f5a504 Fixed the array size of Atypes in cPatFilter::Process() 2010-06-13 11:14:26 +02:00
Klaus Schmidinger
27852272bc Updated the Finnish OSD texts 2010-06-13 11:10:32 +02:00
Klaus Schmidinger
d2376946f4 Updated the Portuguese language texts 2010-06-13 10:39:09 +02:00
Klaus Schmidinger
00541fe531 Added missing Dtypes for ATSC 2010-06-13 10:29:53 +02:00
Klaus Schmidinger
24ec693c2d Updated the Italian OSD texts 2010-06-13 10:23:30 +02:00
Klaus Schmidinger
8a13fc45c7 Removed old 8psk remark 2010-06-06 12:23:23 +02:00
Klaus Schmidinger
3aba9ec4e0 Implemented setup option 'OSD/Number keys for characters' 2010-06-06 10:56:11 +02:00
Klaus Schmidinger
fd42609883 Implemented handling of HD resolution subtitles according to v1.3.1 of ETSI EN 300 743, chapter 7.2.1 (cont'd) 2010-06-05 14:03:55 +02:00
Klaus Schmidinger
9377d831b3 Added full handling of the stream types of Dolby Digital pids 2010-06-05 13:50:56 +02:00
Klaus Schmidinger
174eaaffbd Fixed a typo 2010-06-05 13:10:54 +02:00
Klaus Schmidinger
b4b3c8a3dd Fixed a wrong error message 2010-06-03 13:35:02 +02:00
Klaus Schmidinger
a096fcb88c 'TVDR TV Done Right' is now a registered trademark 2010-05-16 14:50:16 +02:00
Klaus Schmidinger
c6d1b4574f Added detecting channels that use service type 0x16 2010-05-16 14:25:58 +02:00
Klaus Schmidinger
7f3d21f867 Added handling MPEG audio types "ISO/IEC 14496-3 Audio with LATM transport syntax" and "ISO/IEC 13818-7 Audio with ADTS transport sytax" 2010-05-16 13:36:55 +02:00
Klaus Schmidinger
0f9b247122 Fixed a problem with external Dolby Digital processing via the '-a' option in live mode and with TS recordings 2010-05-16 11:00:52 +02:00
Klaus Schmidinger
225f7ab641 The EPG data now handles stream components 5 (H.264-video) and 6 (HEAAC-audio) 2010-05-16 10:23:55 +02:00
Klaus Schmidinger
08e6d87a86 Implemented handling of HD resolution subtitles according to v1.3.1 of ETSI EN 300 743, chapter 7.2.1 2010-05-13 14:51:48 +02:00
Klaus Schmidinger
539c0da853 Fixed a possible out of buffer memory access in case of bad TS data 2010-05-13 14:39:41 +02:00
Klaus Schmidinger
e2a995f3e7 Updated the Czech OSD texts 2010-05-13 13:54:52 +02:00
Klaus Schmidinger
3c51267763 Fixed initializing channel name when editing a new channel 2010-05-13 13:32:01 +02:00
Klaus Schmidinger
88dc4e3351 Fixed a crash when creating a new channel if the channel list is empty 2010-05-02 15:09:59 +02:00
Klaus Schmidinger
c19c63530e Fixed handling "none" color entries in XPM files 2010-05-02 13:59:11 +02:00
Klaus Schmidinger
fd554d9750 Fixed modulation check 2010-05-01 09:47:13 +02:00
Klaus Schmidinger
774e77b26e Updated the Ukrainian OSD texts 2010-04-25 13:50:52 +02:00
Klaus Schmidinger
b79436fd76 Now handling 'turbo fec' transponders 2010-04-25 13:05:37 +02:00
Klaus Schmidinger
515966cdea Fixed generating PMT language descriptors for multi language PIDs 2010-04-18 13:44:56 +02:00
Klaus Schmidinger
512522f259 The various modulation types are now taken into account when selecting a device 2010-04-11 13:02:42 +02:00
Klaus Schmidinger
5a67f86207 Include paths are now added instead of overwriting INCLUDES in the Makefile 2010-04-10 12:44:01 +02:00
Klaus Schmidinger
123bd2fec0 Added check for FE_CAN_PSK_8 2010-04-10 12:17:34 +02:00
Klaus Schmidinger
f1ded40a55 'VDR Video Disk Recorder' is now a registered trademark 2010-04-09 13:58:21 +02:00
Klaus Schmidinger
d5df309df4 Extended modulation check for all frontend types 2010-04-05 20:13:05 +02:00
Klaus Schmidinger
7a5d64a984 Added user defined key kUser0 2010-04-05 10:14:19 +02:00
Klaus Schmidinger
c270adfaa5 Added a note about not deleting cDeviceHook objects to device.h 2010-04-05 09:52:11 +02:00
Klaus Schmidinger
db5c3cd36a Fixed cFrameDetector::Analyze() in case part of the data has been processed and there is less than MIN_TS_PACKETS_FOR_FRAME_DETECTOR left 2010-04-05 09:38:13 +02:00
Klaus Schmidinger
1bf0c3d23a cDvbDevice::ProvidesTransponder() now checks the modulation capabilities of the device (as far as the driver allows this) 2010-04-04 11:37:10 +02:00
Klaus Schmidinger
d23f609dd8 Improved description of device lines in diseqc.conf 2010-04-02 14:46:21 +02:00
Klaus Schmidinger
1f72e039d1 Updated the Italian OSD texts 2010-04-02 12:33:08 +02:00
Klaus Schmidinger
5646b49ceb Changed the default SVDRP port to 6419 (officially registered with ICANN/IANA) 2010-04-02 12:25:50 +02:00
Klaus Schmidinger
d7bdbcc80a Added handling of EnhancedAC3DescriptorTag 2010-03-27 15:19:06 +01:00
Klaus Schmidinger
e306849159 Updated the Finnish OSD texts 2010-03-27 14:52:09 +01:00
Klaus Schmidinger
9fcdfc1808 Updated the Estonian OSD texts 2010-03-27 14:47:39 +01:00
Klaus Schmidinger
e2a2422151 Added Macedonian language texts 2010-03-27 14:36:40 +01:00
Klaus Schmidinger
84b386c4a1 The new setup option "Folders in timer menu" controls whether the file names in the timer menu are shown with their full folder path 2010-03-12 16:46:45 +01:00
Klaus Schmidinger
6564d8e928 Fixed "attempt to drop wrong frame from ring buffer" when skipping +/- one minute during replay 2010-03-07 14:32:22 +01:00
Klaus Schmidinger
42928ff2d3 The full timer file name is now displayed if it ends with "TITLE" or "EPISODE" 2010-03-07 14:15:04 +01:00
Klaus Schmidinger
c07dd4c35b Changed the polarization characters in cDvbSourceParam::GetOsdItem() to uppercase 2010-03-07 13:59:11 +01:00
Klaus Schmidinger
1c922cbb54 Added cChannel::IsSourceType() to test if a channel's source is of a given type 2010-03-07 13:56:09 +01:00
Klaus Schmidinger
74d6d35bce Implemented automatic deleting of timeshift recording 2010-03-07 12:43:30 +01:00
Klaus Schmidinger
2f16565bc8 Fixed editing channel parameters 2010-03-06 15:19:17 +01:00
Klaus Schmidinger
d01a497a09 Added a note about plugins defining additional sources 2010-03-06 14:04:54 +01:00
Klaus Schmidinger
179e129c09 Added note about obsolete ANALOGTV patch 2010-03-06 13:35:02 +01:00
Klaus Schmidinger
e7148f3bee The "Source" item in the "Edit channel" menu now wraps around the list of sources 2010-03-06 12:47:47 +01:00
Klaus Schmidinger
ab9af4cea1 Added support for ATSC devices 2010-03-06 12:01:17 +01:00
Klaus Schmidinger
3e09f8565d Assigned the source character 'V' to "Analog Video" 2010-03-05 16:00:09 +01:00
Klaus Schmidinger
b874b0aa7f Assigned the source character 'I' to "IPTV" 2010-03-05 15:56:41 +01:00
Klaus Schmidinger
2a7a20945a Fixed a typo 2010-02-28 15:51:17 +01:00
Klaus Schmidinger
44fdf30170 Fixed handling empty strings in cSource::FromString() 2010-02-28 15:18:31 +01:00
Klaus Schmidinger
9424ab26a6 The option "Setup/DVB/Use Dolby Digital" now only controls whether Dolby Digital tracks appear in the "Audio" menu 2010-02-28 14:42:07 +01:00
Klaus Schmidinger
7506867fbe cSafeFile::Close() now flushes the file 2010-02-28 13:36:26 +01:00
Klaus Schmidinger
cdea3827d3 Updated the Lithuanian OSD texts 2010-02-28 12:50:41 +01:00
Klaus Schmidinger
e3cc20ed3e Added notes about obsolete patches 2010-02-28 12:31:30 +01:00
Klaus Schmidinger
1eb033576f Added plugin-defined sources 2010-02-28 12:19:50 +01:00
Klaus Schmidinger
d255ad785d Updated the Estonian OSD texts 2010-02-16 14:40:35 +01:00
Klaus Schmidinger
0aad780fbe Fixed the German translation of "Folder name must not contain %c!" 2010-02-16 10:52:57 +01:00
Klaus Schmidinger
f4a9b33b6d Improved scalability of the default skins 2010-02-13 13:48:19 +01:00
Klaus Schmidinger
7949793f00 Exported some libsi functions 2010-02-13 10:37:27 +01:00
Klaus Schmidinger
24a2b4680c Updated the Romanian OSD texts 2010-02-13 10:23:41 +01:00
Klaus Schmidinger
94d2bad657 The file name in the "Timers" menu now shows only the base name of the recording without the folder path 2010-02-07 13:35:58 +01:00
Klaus Schmidinger
1d2eef218b Fixed rev. 2.27 2010-02-07 13:21:05 +01:00
Klaus Schmidinger
08e05d3fcd Fixed adding new transponders in case there is only a single channel in the channel list 2010-02-07 12:14:02 +01:00
Klaus Schmidinger
978807e4d1 Keeping subtitles visible when pausing replay 2010-02-07 12:08:13 +01:00
Klaus Schmidinger
184db9ec8a Added device definitions to the diseqc.conf file format 2010-02-06 15:56:01 +01:00
Klaus Schmidinger
91115a64e4 Moved strictly necessary Makefile options into Make.global 2010-02-06 15:02:35 +01:00
Klaus Schmidinger
f7831543b3 Implemented cDevice::GetCurrentlyTunedTransponder() 2010-02-06 14:43:42 +01:00
Klaus Schmidinger
644a9f07f2 Implemented cDeviceHook 2010-02-06 14:23:03 +01:00
Klaus Schmidinger
2517b2ee8d Improved handling frames at the beginning and end of a recording in cDvbPlayer for devices with large buffers 2010-02-06 12:43:16 +01:00
Klaus Schmidinger
cabf18db73 Added a note to the MANUAL, saying that adding new transponders only works if the "EPG scan" is active 2010-02-06 10:37:59 +01:00
Klaus Schmidinger
4bf5c793f4 Moved the declaration of cMenuCommands to menu.h, so that plugins can use it 2010-02-06 10:18:20 +01:00
Klaus Schmidinger
19e256d792 Updated the Finnish OSD texts 2010-02-05 15:59:38 +01:00
Klaus Schmidinger
01329040ad Changed the position of Sirius 4 to S4.8E in sources.conf 2010-02-05 15:43:35 +01:00
Klaus Schmidinger
b9f4f4f805 Updated the Italian OSD texts 2010-02-05 15:38:54 +01:00
Klaus Schmidinger
86291b6205 The files "commands.conf" and "reccmd.conf" can now contain nested lists of commands 2010-01-31 12:59:50 +01:00
Klaus Schmidinger
0889960232 The PCR pid is now recorded for channels where this is different from the video PID 2010-01-30 11:10:25 +01:00
Klaus Schmidinger
a9543347af Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 3600 2010-01-24 16:14:13 +01:00
Klaus Schmidinger
9ff0e7ef27 The PCR pid in generated PMTs is now set to the channel's PCR pid again 2010-01-24 15:20:49 +01:00
Klaus Schmidinger
96ce981713 Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 1800 2010-01-23 15:39:15 +01:00
Klaus Schmidinger
eb394c68f1 cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved cDvbSpuBitmap::getMinBpp() (cont'd) 2010-01-22 15:58:39 +01:00
Klaus Schmidinger
27aaf4fc06 The new setup option "Miscellaneous/Channels wrap" controls whether the current channel wraps around the beginning or end of the channel list when zapping 2010-01-17 15:21:28 +01:00
Klaus Schmidinger
b19650251c Fixed a typo 2010-01-17 14:08:32 +01:00
Klaus Schmidinger
40bb2f21e0 cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved cDvbSpuBitmap::getMinBpp() 2010-01-17 13:48:44 +01:00
Klaus Schmidinger
27939266f1 Added plain text error messages to log entries from cOsd::SetAreas() 2010-01-17 13:32:12 +01:00
Klaus Schmidinger
3c5b11abbb Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR in 'make install' 2010-01-17 12:45:44 +01:00
Klaus Schmidinger
c198a25943 If svdrphosts.conf contains only the address of the local host, the SVDRP port is opened only for the local host 2010-01-17 12:27:01 +01:00
Klaus Schmidinger
97e4dbe773 Updated the Italian OSD texts 2010-01-17 12:15:36 +01:00
Klaus Schmidinger
a503c6ab3f The "Edit timer" menu can now set the folder for the recording from a list of folders stored in "folders.conf" 2010-01-17 12:08:03 +01:00
Klaus Schmidinger
61c1df7004 Updated the Estonian OSD texts 2010-01-10 10:36:26 +01:00
Klaus Schmidinger
c5dcea7de6 Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group" 2010-01-08 15:23:34 +01:00
Klaus Schmidinger
2cc10815ed Fixed plugin arguments corruption with glibc 2.11 on x86_64 2010-01-06 11:41:14 +01:00
Klaus Schmidinger
af494287cf Added support for DVB cards with multiple fontends 2010-01-04 14:16:11 +01:00
Klaus Schmidinger
4743fc349c After a CLRE command, no further EPG processing is now done for 10 seconds 2010-01-03 15:45:23 +01:00
Klaus Schmidinger
3e05217a5f Displaying genre and parental rating in the recording info 2010-01-03 14:59:16 +01:00
Klaus Schmidinger
708230bee9 Rearranged cEvent members to minimize memory waste 2010-01-03 14:40:37 +01:00
Klaus Schmidinger
fc3b402d43 Implemented handling the "Parental Rating Descriptor" 2010-01-03 14:28:33 +01:00
Klaus Schmidinger
56627cd12d Implemented handling the "Content Descriptor" 2010-01-03 12:20:37 +01:00
Klaus Schmidinger
4b5f232e59 Avoiding setting the video stream type to 2 if the vpid is 0 2010-01-03 10:28:08 +01:00
Klaus Schmidinger
4577bfdd9e Improved the description of the transponder parameters in vdr.5 2010-01-02 14:56:03 +01:00
Klaus Schmidinger
b5edaaa7cc Implemented --edit and --genindex options 2010-01-02 14:02:48 +01:00
Klaus Schmidinger
0faae7c3f0 Fixed handling the "CA PMT" generation (cont'd) 2010-01-02 10:39:50 +01:00
Klaus Schmidinger
68d59e2921 Fixed compiler warnings "format not a string literal and no format arguments" in some syslog calls 2010-01-01 15:44:52 +01:00
Klaus Schmidinger
491c6d0a85 Fixed stopping subtitle display when switching the primary device 2010-01-01 15:15:36 +01:00
Klaus Schmidinger
39f1ba7e03 Fixed handling the "CA PMT" generation 2010-01-01 13:38:02 +01:00
Klaus Schmidinger
2b7c81f72d Moved support for full featured DVB cards of the TT/FuSi design into the new plugin 'dvbsddevice' 2009-12-31 15:38:18 +01:00
Klaus Schmidinger
3d7338de5a cPatPmtParser now also stores the audio stream types 2009-12-31 15:35:37 +01:00
Klaus Schmidinger
a8260204c3 Added cFont::FontName() and cFont::Size() 2009-12-31 15:21:51 +01:00
Klaus Schmidinger
6a4d4607e4 Fixed zero-terminating the pid lists 2009-12-29 15:46:12 +01:00
Klaus Schmidinger
b6e76b3bce Removed an unnecessary include 2009-12-26 15:51:15 +01:00
Klaus Schmidinger
c1b01bdc61 cDevice::AddPid() now stores the stream type of the given pid 2009-12-25 15:26:16 +01:00
Klaus Schmidinger
3124c7598e cPatFilter::Process() now only stores CA descriptors for video and audio pids 2009-12-24 13:25:40 +01:00
Klaus Schmidinger
07d50dc8c4 cParsePatPmt now has functions to retrieve the audio, dolby and subtitle pids 2009-12-24 12:28:01 +01:00
Klaus Schmidinger
25148b7b05 Fixed handling STREAMTYPE_11172_AUDIO in cPatPmtParser::ParsePmt() 2009-12-24 11:56:50 +01:00
Klaus Schmidinger
0bfc5e2f71 cDevice now logs the device number when a new device is created 2009-12-24 11:15:22 +01:00
Klaus Schmidinger
37850dfa87 Reverted change to cDvbSpuBitmap::getMinBpp() 2009-12-24 10:52:23 +01:00
Klaus Schmidinger
64b6642851 Channel names containing commas are now handled correctly in channels.conf 2009-12-24 10:49:16 +01:00
Klaus Schmidinger
d8d65c7536 Modified cCharSetConv so that it can be used to convert from "whatever VDR uses" to a given code 2009-12-23 15:25:05 +01:00
Klaus Schmidinger
1bb58100b0 Updated sources.conf 2009-12-23 14:35:49 +01:00
Klaus Schmidinger
d3684149ca Fixed a busy loop when moving editing marks 2009-12-13 13:50:56 +01:00
Klaus Schmidinger
140ed23e7e Some fixes to dvbspu.[hc] 2009-12-13 12:16:44 +01:00
Klaus Schmidinger
a648187de4 Removed the workaround for short channel names of "Kabel Deutschland" 2009-12-13 11:57:44 +01:00
Klaus Schmidinger
89b5e0da05 Added defines for large files to the 'newplugin' script 2009-12-06 15:33:06 +01:00
Klaus Schmidinger
15961bb34a Removed debug output of '-' from cTransfer::Receive() 2009-12-06 14:23:02 +01:00
Klaus Schmidinger
5c2a51a7cf Added stream type 11172 AUDIO to cPatPmtParser::ParsePmt() 2009-12-06 14:05:36 +01:00
Klaus Schmidinger
6a208294be Several code modifications to avoid compiler warnings 2009-12-06 12:57:45 +01:00
Klaus Schmidinger
1b973fd8eb Improved SPU handling on devices with limited OSD capabilities 2009-12-05 14:45:07 +01:00
Klaus Schmidinger
fa5db6d777 The 'sky' plugin is no longer part of the VDR source 2009-12-05 14:27:57 +01:00
Klaus Schmidinger
82fe2cc0ad Updated the Estonian OSD texts 2009-12-05 13:39:29 +01:00
Klaus Schmidinger
8335ba0a7e The PCR pid in generated PMTs is now set to 0x1FFF ("no PCR pid") in cPatPmtGenerator::GeneratePmt(), because VDR doesn't record the PCR pid 2009-12-05 13:16:34 +01:00
Klaus Schmidinger
ed3783e08e Updated the Italian OSD texts 2009-12-05 12:47:37 +01:00
Klaus Schmidinger
62901748b3 The new function cDevice::PatPmtParser() can be used in derived devices to access the PAT/PMT of the currently replayed material 2009-12-05 11:32:31 +01:00
Klaus Schmidinger
a5e9da1de3 Fixed resetting the file size when regenerating the index file 2009-11-22 19:55:45 +01:00
Klaus Schmidinger
2d5dfd72de Fixed the default value for "Pause key handling" in the MANUAL 2009-11-22 14:29:33 +01:00
Klaus Schmidinger
561d41c0d4 Reverted "Removed limitation to PAL resolution from SPU handling" because it cause nothing but trouble 2009-11-22 14:20:36 +01:00
Klaus Schmidinger
2e8f2b8557 Fixed references to old *.vdr file names in MANUAL 2009-11-22 14:03:27 +01:00
Klaus Schmidinger
c8402639f6 Added the audio id to the call of PlayAudio() in cDevice::PlayTsAudio() 2009-11-22 13:25:16 +01:00
Klaus Schmidinger
d8857154a1 Fixed handling DVB subtitles for PES recordings 2009-11-22 12:30:17 +01:00
Klaus Schmidinger
8ffbea3788 Fixed generating the index for recordings from channels that put a whole GOP into one payload unit; regenerating index file 2009-11-22 11:30:27 +01:00
Klaus Schmidinger
2db303d6f5 Fixed starting a recording at an I-frame 2009-11-15 15:33:55 +01:00
Klaus Schmidinger
ff858b78a3 Fixed EntriesOnSameFileSystem() to avoid using f_fsid, which may be 0 2009-11-06 15:23:52 +01:00
Klaus Schmidinger
b2715518f8 Added Slovakian language texts 2009-11-01 15:51:18 +01:00
Klaus Schmidinger
999df31b8d Fixed writing the PCR pid into the PMT in cPatPmtGenerator::GeneratePmt() 2009-11-01 15:35:34 +01:00
Klaus Schmidinger
95c9d3cf51 Fixed cFrameDetector::Analyze() to handle video streams where the frame type is not detectable from the first TS packet of a frame 2009-11-01 15:02:49 +01:00
Klaus Schmidinger
cb0b4768ad Fixed saving terminal settings when running in background 2009-10-25 14:49:19 +01:00
Klaus Schmidinger
2fc5e35eb9 Only checking DVB_API_VERSION to be >=5 in order to stay compileable in case the DVB API version number is increased 2009-10-25 13:58:20 +01:00
Klaus Schmidinger
611625ca3d Updated Chinese language texts 2009-10-18 15:28:23 +02:00
Klaus Schmidinger
5f3b995200 Added Lithuanian language translations 2009-10-18 14:23:21 +02:00
Klaus Schmidinger
20c8cd161f Changed the project's URLs and email to tvdr.de 2009-10-18 14:18:22 +02:00
Klaus Schmidinger
98d2cd84dc Fixed a typo 2009-10-09 19:11:49 +02:00
Klaus Schmidinger
c9a27b09af Fixed not logging changes for channels that have no number 2009-08-30 11:32:39 +02:00
Klaus Schmidinger
0709d357ce Fixed wrong bracketing in cChannel::SubtitlingType() etc 2009-08-30 11:19:39 +02:00
Klaus Schmidinger
e9e277e409 Updated the Italian OSD texts 2009-08-29 12:47:03 +02:00
Klaus Schmidinger
ff29045d14 Updated date 2009-08-23 13:21:39 +02:00
Klaus Schmidinger
9b61b20f9a Implemented full handling of subtitling descriptors 2009-08-16 15:32:39 +02:00
Klaus Schmidinger
be3ea31119 Fixed handling QUERY 2009-08-16 13:21:07 +02:00
Klaus Schmidinger
99468a776d Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the buffer has been accepted by the device (cont'd) 2009-08-16 10:54:36 +02:00
Klaus Schmidinger
fbc3a77d60 Increased the value of MAXFRAMESIZE to better suit HD recordings 2009-08-16 10:45:58 +02:00
Klaus Schmidinger
a397b8a512 Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4 2009-08-16 10:42:05 +02:00
Klaus Schmidinger
78fc3f2b30 Updated vdr.1 to use the new file names in recording directories 2009-08-16 10:31:05 +02:00
Klaus Schmidinger
6d060a98f2 Fixed generating CaPmts in case audio and video are encrypted using different ECM pids 2009-08-15 22:19:42 +02:00
Klaus Schmidinger
23b5b1336d Fixed handling file name length on VFAT systems in case they contain UTF-8 characters 2009-08-09 12:45:36 +02:00
Klaus Schmidinger
c5910f7987 Fixed deleting expired timers if they have the VPS flag set, but the event they are assigned to doesn't have a VPS tag 2009-06-21 14:08:51 +02:00
Klaus Schmidinger
8a85d7cd31 Changed the EIT filter setup to save a few handles on devices that do hardware filtering 2009-06-21 13:59:22 +02:00
Klaus Schmidinger
e33ba08af4 Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the buffer has been accepted by the device 2009-06-21 13:34:40 +02:00
Klaus Schmidinger
b14d498613 Fixed storing the current OSD size in case the device has changed it in its setup menu 2009-06-21 10:02:49 +02:00
Klaus Schmidinger
a492a999a5 Fixed a typo 2009-06-13 17:10:38 +02:00
Klaus Schmidinger
884d10fbf6 Fixed variable types in cIndexFile 2009-06-13 13:35:49 +02:00
Klaus Schmidinger
e392051752 Fixed index types in cIndexFile::GetNextIFrame() 2009-06-13 12:25:22 +02:00
Klaus Schmidinger
e093d4c8a8 Added a plausibility check for the OSD percentage parameters 2009-06-13 10:26:37 +02:00
Klaus Schmidinger
82ed7c1723 Fixed calculating menu colum widths in case the font has a size other than the default size 2009-06-06 15:20:40 +02:00
Klaus Schmidinger
abd5a81c89 Modified cSVDRP::CmdGRAB() to avoid writing into const data 2009-06-06 14:07:02 +02:00
Klaus Schmidinger
1d03f30e93 Added some missing 'const' keywords to avoid compilation errors with gcc 4.4 2009-06-06 13:48:41 +02:00
Klaus Schmidinger
96d25c3be1 Fixed unwanted track modifications when parsing PAT/PMT for recording 2009-06-06 13:26:23 +02:00
Klaus Schmidinger
1f798b0f8e Using different names for the Aspect parameter 2009-06-06 11:20:52 +02:00
Klaus Schmidinger
03245bdaf6 Removed obsolete constant 2009-06-01 15:07:10 +02:00
Klaus Schmidinger
e639e3a76a Improved cDvbDevice::GetOsdSize() 2009-06-01 14:56:28 +02:00
Klaus Schmidinger
78d2fd3d0e Fixed cOsdMenu::Display() in case the menu size has changed 2009-06-01 11:57:46 +02:00
Klaus Schmidinger
6f912d247f Fixed handling the length of DiSEqC command sequences 2009-06-01 11:45:52 +02:00
Klaus Schmidinger
bad922e955 Added a workaround for the broken linux-dvb driver header files 2009-06-01 11:33:12 +02:00
Klaus Schmidinger
23099d7ba0 Updated the Ukrainian OSD texts 2009-05-31 14:30:07 +02:00
Klaus Schmidinger
e92739086e Moved buffer handling into cNonBlockingFileReader 2009-05-31 14:12:42 +02:00
Klaus Schmidinger
81cc592c33 Fixed calling close(-1) in cUnbufferedFile::Close() 2009-05-31 11:47:05 +02:00
Klaus Schmidinger
3de4811a42 Fixed a memory leak when reaching the end of a recording during replay 2009-05-31 10:02:20 +02:00
Klaus Schmidinger
ea5ee20db1 Updated the Ukrainian OSD texts 2009-05-31 09:13:19 +02:00
Klaus Schmidinger
e51e38bc33 Fixed generating PAT/PMT version numbers in case the PIDs change during recording 2009-05-24 15:11:28 +02:00
Klaus Schmidinger
6cdfb489ae Added a note about cFont::GetFont() not being thread-safe 2009-05-23 10:12:04 +02:00
Klaus Schmidinger
02921f8851 Added a note to cTsToPes regarding the 'payload start' flag for video data 2009-05-23 09:53:50 +02:00
Klaus Schmidinger
2c5faf0b65 Implemented setup option "Recording/Pause key handling" 2009-05-21 11:35:37 +02:00
Klaus Schmidinger
d007c8c0d4 Fixed a typo 2009-05-17 10:09:35 +02:00
Klaus Schmidinger
d41461ad40 Added a note about the meaning of PERCENTAGEDELTA in cRingBuffer::UpdatePercentage() 2009-05-17 10:07:17 +02:00
Klaus Schmidinger
877d4851e8 Added a note to cTsToPes about all TS packets having to belong to the same PID 2009-05-17 09:54:16 +02:00
Klaus Schmidinger
b250709407 Removed unused 'synced' member from cTsToPes 2009-05-17 09:48:14 +02:00
Klaus Schmidinger
941c4360e2 EIT events are now only processed if a plausible system time is available, to avoid wrong handling of PDC descriptors 2009-05-15 12:41:50 +02:00
Klaus Schmidinger
e81b822a5f Removed unnecessary checks 2009-05-15 11:08:18 +02:00
Klaus Schmidinger
448f95f817 Added missing update of lastOsdSizeUpdate 2009-05-12 21:08:23 +02:00
Klaus Schmidinger
8a7dbd1e56 Fixed use of time_t in cEIT::cEIT() 2009-05-10 14:55:15 +02:00
Klaus Schmidinger
aae1aa5271 Added MPEG 1 handling to remux.c 2009-05-10 14:32:03 +02:00
Klaus Schmidinger
7e4aed4927 Added a note to cTsToPes::GetPes() about having to call it repeatedly, once it has returned a non-NULL value 2009-05-10 13:52:46 +02:00
Klaus Schmidinger
ac3db05853 Checking fd_video in cDvbDevice::GetVideoSize() to avoid error messages on systems with no real primary replay device 2009-05-10 13:18:20 +02:00
Klaus Schmidinger
74646c0487 Removed limitation to PAL resolution from SPU handling 2009-05-09 16:41:59 +02:00
Klaus Schmidinger
bf543736b6 Implemented cSetup::OSDAspect 2009-05-09 10:42:35 +02:00
Klaus Schmidinger
5227621a02 Proper credit for cDevice::GetOsdSize() 2009-05-09 10:31:14 +02:00
Klaus Schmidinger
0b79ecc193 Increased MAXOSDHEIGHT to 1200 2009-05-09 10:28:15 +02:00
Klaus Schmidinger
f936db2ac6 Implemented cDevice::GetOsdSize(); fixed the way the OSD size is determined on full featured DVB cards 2009-05-09 10:11:16 +02:00
Klaus Schmidinger
61c811ac70 Fixed a typo in aspect ratio 2.21:1 2009-05-08 13:29:42 +02:00
Klaus Schmidinger
b0d380ba06 cFrameDetector::Analyze() now syncs on the TS packet sync bytes 2009-05-03 14:45:53 +02:00
Klaus Schmidinger
f161d1b2fe OSD sizes in percent; automatic update of OSD size 2009-05-03 14:15:21 +02:00
Klaus Schmidinger
34b3d46784 Adjusted release date 2009-04-26 09:43:16 +02:00
Klaus Schmidinger
509fc7f098 Added a note to the INSTALL file about using subdirectories to split a large disk into separate areas for VDR's video data and other stuff 2009-04-25 14:23:58 +02:00
Klaus Schmidinger
6aeeae28ef Using CA_USER_MAX instead of 0x00FF 2009-04-25 13:57:32 +02:00
Klaus Schmidinger
e7c18af94c Only storing non-zero Pts values in ptsIndex 2009-04-19 15:19:10 +02:00
Klaus Schmidinger
85645317ae cDvbPlayer::Empty() subtracts 1 from readIndex, because Action() will first increment it 2009-04-19 15:17:17 +02:00
Klaus Schmidinger
3f492c4f57 Implemented TsSetTeiOnBrokenPackets() 2009-04-19 11:07:07 +02:00
Klaus Schmidinger
457208b101 Added missing 'const' to cRecording::FramesPerSecond() 2009-04-19 09:02:16 +02:00
Klaus Schmidinger
ce4c062e0d Fixed detecting the frame rate for streams with PTS distances of 1800 2009-04-18 14:59:55 +02:00
Klaus Schmidinger
efd7427bbe Fixed distortions when switching to the next file during replay 2009-04-18 14:28:15 +02:00
Klaus Schmidinger
fc54164405 Added cDevice::NumProvidedSystems() to PLUGINS.html 2009-04-18 09:50:32 +02:00
Klaus Schmidinger
73b4cecacb No longer resetting the patPmtParser in cDevice::PlayTs() (cont'd) 2009-04-18 09:41:00 +02:00
Klaus Schmidinger
b83439b87e Fixed the MEGABYTE() macro to make it correctly handle parameters resulting in values larger than 2GB 2009-04-18 09:37:54 +02:00
Klaus Schmidinger
5b57bdebdc Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread 2009-04-13 13:55:23 +02:00
Klaus Schmidinger
b36d06e1ea The SVDRP command PUTE now supports reading the EPG data from a given file 2009-04-13 13:35:29 +02:00
Klaus Schmidinger
c674d80762 No longer resetting the patPmtParser in cDevice::PlayTs() 2009-04-13 12:55:28 +02:00
Klaus Schmidinger
7f314c07b6 Reverted back to previous version of RemoveDeletedRecordings(), because the thread was started every minute 2009-04-13 12:29:10 +02:00
Klaus Schmidinger
27c061e449 Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets 2009-04-13 11:12:54 +02:00
Klaus Schmidinger
3628bbbfa1 cDevice::PlayTs() now syncs on the TS packet sync bytes 2009-04-13 11:08:05 +02:00
Klaus Schmidinger
1d829aaf6d No longer checking for deleted recordings to be removed from the foreground thread 2009-04-12 14:20:52 +02:00
Klaus Schmidinger
ffc0f49c12 Improved efficiency of cEIT::cEIT() 2009-04-12 09:09:47 +02:00
Klaus Schmidinger
af89f39e82 No longer writing the video type into channels.conf if VPID is 0 2009-04-10 11:34:33 +02:00
Klaus Schmidinger
ee97c6abee Added a note about VDR requiring S2API 2009-04-10 10:29:21 +02:00
Klaus Schmidinger
fc0d238194 Added missing AUDIO_PAUSE/AUDIO_CONTINUE calls to cDvbDevice 2009-04-10 10:27:16 +02:00
Klaus Schmidinger
0a2de94d07 Fixed detecting the frame rate for radio recordings 2009-04-05 14:15:25 +02:00
Klaus Schmidinger
daa6799705 Making sure any floating point numbers written use a decimal point 2009-04-05 13:23:58 +02:00
Klaus Schmidinger
5a42f6b29f Fixed replay of TS recordings in case the index file is missing 2009-04-05 13:04:33 +02:00
Klaus Schmidinger
371a9a9025 cDevice::PlayTs() now plays as many TS packets as possible in one call 2009-04-05 12:29:27 +02:00
Klaus Schmidinger
43d25f07de Fixed the 'VideoOnly' condition in the PlayPes() and PlayTs() calls in cDvbPlayer::Action() 2009-04-05 11:01:21 +02:00
Klaus Schmidinger
5ee2a21c8a Fixed a crash when jumping to an editing mark in an audio recording 2009-04-05 10:45:01 +02:00
Klaus Schmidinger
8114d7c63e Now freeing configDirectory before setting it to a new value in cPlugin::SetConfigDirectory() 2009-04-05 10:21:20 +02:00
Klaus Schmidinger
9ff445dce4 Added missing virtual destructor to cPalette 2009-04-05 10:20:58 +02:00
Klaus Schmidinger
168907fd0b Added missing '[]' to the delete operator in cMenuEditStrItem::~cMenuEditStrItem() 2009-04-05 10:15:12 +02:00
Klaus Schmidinger
d666dca6a4 Fixed switching to Play mode when hitting the end of a timeshifted recording 2009-04-05 10:11:26 +02:00
Klaus Schmidinger
c886e69bc6 Improved replay at the begin and end of a recording; cDvbPlayer::Action() no longer calls DeviceFlush() 2009-04-05 09:08:02 +02:00
Klaus Schmidinger
1b02cc9c94 Using the result of DeviceFlush() when hitting end of recording 2009-03-28 21:56:56 +01:00
Klaus Schmidinger
b3931e646f Fixed a typo 2009-03-28 21:53:26 +01:00
Klaus Schmidinger
d0a42e9c81 Fixed cDvbPlayer::NextFile() to handle files larger than 2GB 2009-03-28 17:14:53 +01:00
Klaus Schmidinger
2e4aa1a595 Added command line help for the '-i' option 2009-03-27 15:54:42 +01:00
Klaus Schmidinger
e3de25dd11 Modified cFrameDetector::Analyze() to minimize file I/O overhead during recording 2009-03-27 14:11:43 +01:00
Klaus Schmidinger
323969e58d Adapted cFrameDetector::Analyze() to HD NTSC broadcasts that split frames over several payload units 2009-03-27 13:38:59 +01:00
Klaus Schmidinger
e7ea3b3c70 Replaced cBackTrace with cPtsIndex 2009-03-13 14:45:12 +01:00
Klaus Schmidinger
4c0ab3d3e7 Added cRecordingInfo::GetEvent() 2009-02-28 10:51:42 +01:00
Klaus Schmidinger
3d309c498c Updated the Italian OSD texts 2009-02-22 12:51:46 +01:00
Klaus Schmidinger
a8d053b66d Added credits for Derek Kelly 2009-02-08 11:28:34 +01:00
Klaus Schmidinger
6a6aac9dd3 Added cap_sys_nice to the capabilities that are not dropped 2009-02-01 10:15:47 +01:00
Klaus Schmidinger
9a7473eaf3 Fixed handling the 'new' indicator in the recordings menu for TS recordings 2009-01-30 16:48:40 +01:00
Klaus Schmidinger
2bc0af882c Fixed a hangup when replaying a TS recording with subtitles activated 2009-01-30 16:07:32 +01:00
Klaus Schmidinger
cf7867ebe7 Fixed a typo 2009-01-25 12:07:29 +01:00
Klaus Schmidinger
f9c1974f2d Improved fast-forward/-rewind for audio recordings 2009-01-25 11:39:43 +01:00
Klaus Schmidinger
73be47a4b1 Added credit to Winfried Koehler 2009-01-24 15:27:06 +01:00
Klaus Schmidinger
f01af488e1 Fixed handling the maximum video file size 2009-01-24 15:24:19 +01:00
Klaus Schmidinger
85e34776ff The PAT/PMT is now only processed if its version changes 2009-01-24 13:47:46 +01:00
Klaus Schmidinger
f311ce508a av7110_v4ldvb_api5_audiobuf_test_1.diff is still necessary 2009-01-24 13:20:23 +01:00
Klaus Schmidinger
c5553f9187 Fixed editing PES recordings 2009-01-24 13:16:43 +01:00
Klaus Schmidinger
a02868c90c Fixed detecting frames for pure audio recordings 2009-01-24 12:30:18 +01:00
Klaus Schmidinger
fa848a6f2e Added an 'int' typecast to calculations involving FramesPerSecond() to avoid compiler warnings 2009-01-24 11:42:24 +01:00
Klaus Schmidinger
c2ecee3d40 Fixed cDevice::PlayTsAudio() and made cDevice::PlayTsVideo() return 0 if PlayVideo() didn't play anything 2009-01-24 11:20:24 +01:00
Klaus Schmidinger
2b174b07bd Changed cPatPmtGenerator to make sure the PMT pid doesn't collide with any of the actual pids of the channel 2009-01-23 16:44:46 +01:00
Klaus Schmidinger
1ca753003b Checking the pointer field in cPatPmtParser::ParsePmt() only in 'payload start' packets 2009-01-23 16:43:23 +01:00
Klaus Schmidinger
4895d6b9e2 Checking the remaining packet length after processing the pointer field 2009-01-23 14:34:05 +01:00
Klaus Schmidinger
a1e7922938 Fixed handling the pointer field in cPatPmtParser::ParsePmt() 2009-01-23 14:19:58 +01:00
Klaus Schmidinger
1789a813f7 Added checking mutexCurrentAudioTrack to cDevice::PlayTs() 2009-01-18 11:45:28 +01:00
Klaus Schmidinger
3434f061b3 Implemented option '-i' 2009-01-18 11:10:29 +01:00
Klaus Schmidinger
3def525dc4 Added "DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to Make.config.template 2009-01-18 10:46:13 +01:00
Klaus Schmidinger
c7ce1c37e3 Fixed removing deleted recordings in case there is a problem 2009-01-16 15:59:47 +01:00
Klaus Schmidinger
036c292460 Fixed incrementing the continuity counter in cPatPmtGenerator::GetPmt() 2009-01-16 15:28:18 +01:00
Klaus Schmidinger
d500f17d50 Added clearing the TS buffers in cDevice::Detach() 2009-01-16 15:20:29 +01:00
Klaus Schmidinger
70ec0dfa1b Added a missing Detach() in cTransfer::Activate() 2009-01-16 15:16:08 +01:00
Klaus Schmidinger
71dc09e788 Fixed returning complete PES packets in cTsToPes::GetPes() 2009-01-16 14:44:55 +01:00
Klaus Schmidinger
329d7da4ec Added some missing 'const' statements to cBitmap 2009-01-16 14:39:27 +01:00
Klaus Schmidinger
0c5374ce7d Added a typecast in cUnbufferedFile::Write() to avoid an error message when compiling on 64 bit systems 2009-01-16 14:31:26 +01:00
Klaus Schmidinger
970622ccf2 The full-featured DVB cards are now given the TS data directly for replay 2009-01-16 14:27:22 +01:00
Klaus Schmidinger
60c5248a36 Removed the '#define FE_CAN_2ND_GEN_MODULATION' 2009-01-06 16:56:27 +01:00
Klaus Schmidinger
1f3af22711 Fixed outdated remarks 2009-01-06 15:13:26 +01:00
Klaus Schmidinger
d1ea5ca06d cDvbDevice now uses the FE_CAN_2G_MODULATION flag 2009-01-06 14:52:54 +01:00
Klaus Schmidinger
f9a2758205 Fixed cPatPmtParser::ParsePmt() to reset vpid and vtype when switching from a video to an audio channel 2009-01-06 14:47:53 +01:00
Klaus Schmidinger
7de7ede26f The recording format is now Transport Stream 2009-01-06 14:41:11 +01:00
Klaus Schmidinger
7470253c60 Added a poll to cDvbDevice::PlayVideo() and cDvbDevice::PlayAudio() to avoid excessive CPU load 2008-12-28 11:03:00 +01:00
Klaus Schmidinger
7b2085b575 Changed cDvbDevice::GrabImage() to use V4L2 2008-12-22 10:26:16 +01:00
Klaus Schmidinger
7702a6c7e3 Fixed handling modulation types for DVB-S transponders when processing the NIT 2008-12-20 11:05:22 +01:00
Klaus Schmidinger
5cbc33d897 Fixed handling the 'pointer field' in generating and parsing PAT/PMT 2008-12-20 10:46:53 +01:00
Klaus Schmidinger
051f0def47 Updated the Russian OSD texts 2008-12-17 17:10:17 +01:00
Klaus Schmidinger
07defaad3a Added notes about driver patches 2008-12-14 15:04:56 +01:00
Klaus Schmidinger
22feb7bf1c Improved handling PES video packets with zero length when converting from TS to PES 2008-12-13 14:43:22 +01:00
Klaus Schmidinger
3c7d1a16ac Switched to the new S2API driver API; cDvbTuner::IsTunedTo()now also checks the symbol rate in case of DVB-S and DVB-C 2008-12-13 12:22:36 +01:00
Klaus Schmidinger
3abe4f2b91 Switched to the new S2API driver API 2008-11-22 13:30:00 +01:00
Klaus Schmidinger
8ad7803a46 Added a note about 'Id' being obsolete to the description of cDevice::PlayAudio() 2008-09-14 13:46:13 +02:00
Klaus Schmidinger
86b8a2ec24 Fixed renamed constants 2008-09-07 11:55:36 +02:00
Klaus Schmidinger
b203807818 Removed unneeded include files <linux/dvb/dmx.h> und <time.h> from remux.h 2008-09-06 14:49:19 +02:00
Klaus Schmidinger
0206d90a49 Updated the Turkish language texts of the hello plugin 2008-09-06 14:30:00 +02:00
Klaus Schmidinger
a079bc9c25 Errors in config files no longer keep VDR from starting 2008-09-06 14:20:20 +02:00
Klaus Schmidinger
089b421dca Fixed wrong value for TableIdBAT in libsi/si.h 2008-09-06 12:44:51 +02:00
Klaus Schmidinger
ad19b83ff2 Replaced the Finnish language code "smi" with "suo" 2008-09-06 12:25:32 +02:00
Klaus Schmidinger
4f9b3175d0 Fixed a problem with calling isyslog() from within the SignalHandler() 2008-09-06 11:26:01 +02:00
Klaus Schmidinger
4844235c77 Updated the Italian OSD texts 2008-09-06 10:17:44 +02:00
Klaus Schmidinger
2e66fdd634 Fixed a possible integer overflow in GetAbsTime() 2008-09-06 09:41:15 +02:00
Klaus Schmidinger
248b7424be Updated the sources.conf file 2008-08-16 10:10:51 +02:00
Klaus Schmidinger
d9e56db9fc First step towards switching to TS (Transport Stream) as recording format 2008-08-15 14:49:34 +02:00
Klaus Schmidinger
2ee1e61d35 Fixed formatting 2008-05-22 10:40:08 +02:00
Klaus Schmidinger
cc3afcfc68 Fixed a typo 2008-05-22 10:26:57 +02:00
Klaus Schmidinger
0b1886875a Removed the compile time option VFAT 2008-05-03 10:19:31 +02:00
Klaus Schmidinger
80f7e64f22 Backported 'No longer calling FcFini() to avoid problems with older (broken) versions of fontconfig' to version 1.6.0 2008-05-03 10:01:19 +02:00
Klaus Schmidinger
8ce144c607 No longer calling FcFini() to avoid problems with older (broken) versions of fontconfig 2008-05-02 20:34:46 +02:00
Klaus Schmidinger
b6eaa08dbf Backported 'The SVDRP signon message now indicates the character encoding in use' to version 1.6.0 2008-05-02 14:31:05 +02:00
Klaus Schmidinger
4ecf7e1728 The SVDRP signon message now indicates the character encoding in use 2008-05-02 14:22:23 +02:00
Klaus Schmidinger
2af47cfb18 Added missing description of the 'S' channel parameter to vdr.5 2008-05-02 13:50:34 +02:00
Klaus Schmidinger
7d1b84a997 Implemented handling the standard component descriptor for AC3 2008-05-01 15:41:04 +02:00
Klaus Schmidinger
df12c00ff8 Removed obsolete $(NCURSESLIB) from the Makefile 2008-04-19 10:59:23 +02:00
Klaus Schmidinger
c915c27fda Updated the Italian OSD texts 2008-04-19 10:23:43 +02:00
Klaus Schmidinger
17354c3cf5 Adapted the tuning code to the new DVBFE_SET_DELSYS API 2008-04-19 09:23:59 +02:00
Klaus Schmidinger
db1da33b7f Backported 'Increased the time between checking the CAM status to 500ms to avoid problems with some CAMs' to version 1.6.0 2008-04-13 13:35:09 +02:00
Klaus Schmidinger
4ea6edc5a8 Fixed formatting 2008-04-13 13:31:00 +02:00
Klaus Schmidinger
7bc94dbcf4 Increased the time between checking the CAM status to 500ms to avoid problems with some CAMs 2008-04-13 13:30:55 +02:00
Klaus Schmidinger
c7c6394e10 Fixed setting the OSD level in the 'osddemo' example 2008-04-13 13:02:53 +02:00
Klaus Schmidinger
fc3ac12d39 Backported 'Fixed initializing the timer's flags in the cTimer copy constructor' to version 1.6.0 2008-04-13 12:48:51 +02:00
Klaus Schmidinger
e325ba4e26 Fixed initializing the timer's flags in the cTimer copy constructor 2008-04-13 12:45:15 +02:00
Klaus Schmidinger
2427a1b12c Now setting the thread name, so that it can be seen in 'top -H' 2008-04-13 12:14:58 +02:00
Klaus Schmidinger
bb808bf78e Backported 'Improved logging system time changes to avoid problems on slow systems under heavy load' to version 1.6.0 2008-04-13 11:49:13 +02:00
Klaus Schmidinger
00125a258d Improved logging system time changes to avoid problems on slow systems under heavy load 2008-04-13 11:44:48 +02:00
Klaus Schmidinger
aa6110ef56 Backported 'Fixed handling the counter in detection of pre 1.3.19 PS data' to version 1.6.0 2008-04-13 11:21:00 +02:00
Klaus Schmidinger
9d17559caf Fixed handling the counter in detection of pre 1.3.19 PS data 2008-04-12 14:14:07 +02:00
Klaus Schmidinger
0e5bc7773a Fixed displaying transponder data when it is modified 2008-04-12 13:52:57 +02:00
Klaus Schmidinger
e59c6ac433 Re-implemented handling of DVB-S2 2008-04-12 13:39:12 +02:00
Klaus Schmidinger
0b82b38533 Version 1.6.0 2008-03-23 11:00:31 +01:00
Klaus Schmidinger
175fa41fd4 Some fixes 2008-03-22 12:30:32 +01:00
Klaus Schmidinger
d0ac879e64 Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file 2008-03-22 11:09:35 +01:00
Klaus Schmidinger
127100a625 Removed the full path from the 'logger' call in the getskyepg.pl script 2008-03-22 10:20:10 +01:00
Klaus Schmidinger
65e049279d Updated the Portuguese language texts 2008-03-22 10:03:25 +01:00
Klaus Schmidinger
de5bd271c3 Some fixes 2008-03-21 10:03:26 +01:00
Klaus Schmidinger
25d97f6d68 Added Chinese language texts 2008-03-18 17:34:00 +01:00
Klaus Schmidinger
11d81e4213 Updated the Croatian language texts 2008-03-18 17:19:26 +01:00
Klaus Schmidinger
b265cb473f Changed the description of VDR_CHARSET_OVERRIDE 2008-03-16 11:48:13 +01:00
Klaus Schmidinger
efb0303fd9 Version 1.5.18 2008-03-16 11:37:13 +01:00
Klaus Schmidinger
6b678bcbda Resetting a timer's 'pending' flag when it has ended 2008-03-16 11:16:28 +01:00
Klaus Schmidinger
e68d8ab41c Fixed tuning to a live channel after a recording has been stopped using the 'Back' key 2008-03-14 13:27:39 +01:00
Klaus Schmidinger
864acdeed4 Fixed displaying the free disk space 2008-03-14 13:11:28 +01:00
Klaus Schmidinger
0e0a1dfdda Added Russian translations to the 'skincurses' and 'pictures' plugins 2008-03-14 13:00:08 +01:00
Klaus Schmidinger
89fa411ab6 Updated the Swedish OSD texts 2008-03-12 17:27:27 +01:00
Klaus Schmidinger
025e0c2bec Fixed formatting the name section in the VDR man pages 2008-03-09 16:07:46 +01:00
Klaus Schmidinger
d1578fd95a Updated the Polish OSD texts 2008-03-09 15:43:42 +01:00
Klaus Schmidinger
3b39c8c18f Updated the Italian OSD texts 2008-03-09 10:33:28 +01:00
Klaus Schmidinger
25eb5fd2e1 Fixed a typo 2008-03-09 10:03:34 +01:00
Klaus Schmidinger
28e7052461 Updated the Ukrainian OSD texts 2008-03-07 16:27:14 +01:00
Klaus Schmidinger
8bfee7a1b4 Fixed automatically selecting the preferred subtitle language 2008-03-07 15:44:52 +01:00
Klaus Schmidinger
21e7de9ec5 Updated the Spanish and Catalanian OSD texts 2008-03-05 17:42:28 +01:00
Klaus Schmidinger
f040eed489 Fixed a signed character used as index in cBase64Encoder::NextLine() 2008-03-05 17:25:44 +01:00
Klaus Schmidinger
620eb8150b Revoked the fixed change of the default character set for SI data and introduced an environment variable to control it 2008-03-05 17:16:31 +01:00
Klaus Schmidinger
22805840fb Added a missing reset of maxNumber in cChannels::Renumber() 2008-03-05 16:45:54 +01:00
Klaus Schmidinger
5323db268d Adjusted release date 2008-03-02 10:25:13 +01:00
Klaus Schmidinger
2d88d1fe86 Cleanups in *.po files 2008-03-01 14:33:17 +01:00
Klaus Schmidinger
4b4ef2df60 Changed the default character set for SI data from ISO6937 to ISO-8859-9 2008-03-01 12:06:27 +01:00
Klaus Schmidinger
3bd7f7a0e0 Rendering the non-breaking space symbol as a blank 2008-03-01 10:21:12 +01:00
Klaus Schmidinger
de5e737027 Updated Tobias Grimm's email address 2008-03-01 09:44:45 +01:00
Klaus Schmidinger
2497217096 The 'plugins' target in the Makefile now returns an error exit code if one of the plugins failed to compile 2008-03-01 09:42:36 +01:00
Klaus Schmidinger
e2c3582834 Made the 'pic2mpg' script of the 'pictures' plugin work with relative paths 2008-02-29 14:38:44 +01:00
Klaus Schmidinger
bca18a19c9 Updated the Turkish OSD texts 2008-02-29 14:11:49 +01:00
Klaus Schmidinger
acd56a9501 Updated the Czech OSD texts 2008-02-29 13:50:24 +01:00
Klaus Schmidinger
b402f4f603 Updated the Slovenian OSD texts 2008-02-29 13:43:34 +01:00
Klaus Schmidinger
91dff73cf4 Fixed a crash in cFreetypeFont::DrawText() if an unknown symbol is encountered; unknown symbols are replaced with a '?' 2008-02-29 13:41:11 +01:00
Klaus Schmidinger
ff04bc72fd Fixed handling 3 and 4 byte UTF-8 symbols in Utf8CharGet() 2008-02-29 13:23:02 +01:00
Klaus Schmidinger
4d6f0fb4c4 Updated French language texts 2008-02-27 17:15:28 +01:00
Klaus Schmidinger
d5dc5de97a Stripping control codes 0x86 and 0x87 from SI strings 2008-02-26 16:26:12 +01:00
Klaus Schmidinger
4c1ab4f82d Updated the Dutch OSD texts 2008-02-26 16:22:59 +01:00
Klaus Schmidinger
564c3cec99 Updated the Romanian OSD texts (thanks to Lucian Muresan) 2008-02-25 18:17:12 +01:00
Klaus Schmidinger
3a2246a12b Made the 'pic2mpg' script of the 'pictures' plugin work with uppercase filename extensions 2008-02-25 18:11:33 +01:00
Klaus Schmidinger
5a40d9aff2 Updated the Swedish OSD texts 2008-02-24 12:29:54 +01:00
Klaus Schmidinger
ce7b0c94f7 Added the backslash ('\') to the list of characters that need to be escaped when executing external commands 2008-02-24 10:30:49 +01:00
Klaus Schmidinger
088c325e8f Increased the valid range of the "Subtitle offset" setup option to -100...100 2008-02-24 10:11:14 +01:00
Klaus Schmidinger
25cc41854e No longer trying to switch to an available channel if the primary device has no valid programme and a menu is open 2008-02-23 15:41:14 +01:00
Klaus Schmidinger
300d402663 The CAM menu now stays open as long as it is automatically updated 2008-02-23 14:40:58 +01:00
Klaus Schmidinger
edfe582941 Attempting to stay on the current channel in case of an upcoming recording 2008-02-23 13:19:10 +01:00
Klaus Schmidinger
1b1267674f The scrollbar handle now always has a height that is at least the width of the scrollbar 2008-02-23 10:50:28 +01:00
Klaus Schmidinger
3a70484121 Revised the fix of calculating the scrollbar height in the skins 2008-02-22 17:02:31 +01:00
Klaus Schmidinger
8bf512690a Fixed the format in cRemote::Put() to use "%016llX" instead of "%016LX" 2008-02-22 15:36:42 +01:00
Klaus Schmidinger
0e7aa50a38 Updated the Italian OSD texts 2008-02-22 13:26:13 +01:00
Klaus Schmidinger
f10368dddb Fixed various spelling errors and improved PLUGINS.html 2008-02-18 20:40:08 +01:00
Klaus Schmidinger
39084a1afd Fixed various spelling errors and made PLUGINS.html valid HTML 4.01 2008-02-18 17:15:35 +01:00
Klaus Schmidinger
a3fb7946b5 Updated the Dutch OSD texts 2008-02-18 16:51:40 +01:00
Klaus Schmidinger
084ac0c334 Updated the Danish OSD texts 2008-02-18 16:46:01 +01:00
Klaus Schmidinger
0b481b18e2 Fixed setting the current subtitle track in Transfer-Mode 2008-02-17 16:04:52 +01:00
Klaus Schmidinger
31a0318de4 Implemented cSkinCursesDisplayMenu::SetScrollbar(); fixed calculating the scrollbar sizes in the skins 2008-02-17 14:29:24 +01:00
Klaus Schmidinger
484821fa0a Fixed a missing blank line 2008-02-17 13:55:54 +01:00
Klaus Schmidinger
dc7c5464fc Introduced 'operator const void * ()' in cString 2008-02-17 13:47:12 +01:00
Klaus Schmidinger
54b4d4e4e7 Implemented cSkin::SetScrollbar() 2008-02-17 12:31:16 +01:00
Klaus Schmidinger
28a82b3186 Added missing #include <limits.h> to epg.c and menuitems.h 2008-02-16 16:12:21 +01:00
Klaus Schmidinger
1a0beec1bf Added new cStatus functions to the 'status' plugin 2008-02-16 15:41:05 +01:00
Klaus Schmidinger
6140c49f14 Added cStatus::TimerChange() 2008-02-16 15:04:49 +01:00
Klaus Schmidinger
6b35173789 Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks in plugins 2008-02-16 13:59:09 +01:00
Klaus Schmidinger
741400fa66 Fixed handling recordings on other file systems than the video directory 2008-02-16 13:38:22 +01:00
Klaus Schmidinger
47d6f9d187 Refreshing the free disk space display when leaving a Recordings submenu 2008-02-16 12:04:12 +01:00
Klaus Schmidinger
856c1953c4 Updated the Russian OSD texts 2008-02-15 16:33:36 +01:00
Klaus Schmidinger
6bef17cdec When deleting the recording that is currently replayed, the replay is now stopped immediately 2008-02-15 16:13:10 +01:00
Klaus Schmidinger
a81e3699d1 Limiting the length of the recording name in timers in case VDR is run with --vfat (replaces the previous change to svdrp.c) 2008-02-15 15:46:07 +01:00
Klaus Schmidinger
9495aa9923 Using cString::sprintf() instead of asprintf() 2008-02-15 14:57:48 +01:00
Klaus Schmidinger
c8584521f7 Added the UPDATE-1.6.0 file 2008-02-10 15:34:09 +01:00
Klaus Schmidinger
fc81e337cb Prepared version number and copyright year for version 1.6 2008-02-10 14:25:07 +01:00
Klaus Schmidinger
56f1b1b741 Some code cleanup 2008-02-10 14:11:47 +01:00
Klaus Schmidinger
e1eb84db49 Limiting the length of the recording name in timers created via SVDRP in case VDR is run with --vfat 2008-02-10 13:41:43 +01:00
Klaus Schmidinger
5a44b8b801 Running the thread that removes deleted recordings at a low priority 2008-02-10 12:52:14 +01:00
Klaus Schmidinger
47ea5cb1d0 Fixed detecting directories in cFileNameList::Load() 2008-02-10 12:41:18 +01:00
Klaus Schmidinger
b678d5812c Fixed a loss of a timer's 'recording' flag after modifying it via MODT 2008-02-10 12:25:52 +01:00
Klaus Schmidinger
dcbcd18890 Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because it applies to non-VPS recordings as well 2008-02-10 11:58:21 +01:00
Klaus Schmidinger
9622a5b6ec The free disk space is now also displayed in the title of the "Recordings" menu 2008-02-10 11:46:20 +01:00
Klaus Schmidinger
5f9f793d7b Fixed setting the date in the channel display of the classic and sttng skins, to avoid unnecessary OSD access 2008-02-10 10:10:44 +01:00
Klaus Schmidinger
df0e2f0dc8 The section handler is now stopped before the device is destroyed 2008-02-09 16:28:15 +01:00
Klaus Schmidinger
7ad17726d8 Improved sending all frames to devices that can handle them in fast forward trick speeds, including subtitles 2008-02-09 15:12:55 +01:00
Klaus Schmidinger
6520725bb2 Ignoring "repeat" and "release" keys in the time search entry mode during replay 2008-02-09 12:29:04 +01:00
Klaus Schmidinger
8f5da3f68b Fixed setting the OSD area in the pictures plugin 2008-02-09 12:15:52 +01:00
Klaus Schmidinger
197d6a9c85 Speeded up anti-aliased font rendering by caching the blend indexes 2008-02-09 11:52:25 +01:00
Klaus Schmidinger
dc23636d62 Updated the Estonian OSD texts 2008-02-08 16:33:46 +01:00
Klaus Schmidinger
c2c3617539 Added description of option --localedir 2008-02-08 15:58:59 +01:00
Klaus Schmidinger
e6f806d602 Implemented option --userdump 2008-02-08 15:55:30 +01:00
Klaus Schmidinger
f54c810bcd Revoked the switch to the "multiproto" driver in order to make a new stable version 2008-02-08 13:48:31 +01:00
Klaus Schmidinger
538cbdb26a Added option -i to the pictures plugin's pic2mpg to ignore unknown file types 2008-02-02 11:34:43 +01:00
Klaus Schmidinger
317240e970 Updated the Italian OSD texts 2008-02-01 15:25:56 +01:00
Klaus Schmidinger
dc2fb473a7 Added french texts 2008-01-27 15:44:58 +01:00
Klaus Schmidinger
6a4852710b Removed switching to the next higher or lower channel if the current channel is not available 2008-01-27 14:40:11 +01:00
Klaus Schmidinger
d0af2f90e7 Implemented handling of DVB-S2 2008-01-27 14:35:54 +01:00
Klaus Schmidinger
f8274a9a9f Fixed finding new transponders 2008-01-25 14:55:39 +01:00
Klaus Schmidinger
6d8f92e240 The new option --localedir can be used to set the locale directory at runtime 2008-01-19 12:25:54 +01:00
Klaus Schmidinger
a51eb0895c Updated the Makefile of the skincurses plugin 2008-01-19 11:42:41 +01:00
Klaus Schmidinger
f75b1f2e77 Updated the Finnish OSD texts 2008-01-19 11:37:21 +01:00
Klaus Schmidinger
b013f4ce83 Fixed the Play function in the pictures plugin 2008-01-19 11:21:32 +01:00
Klaus Schmidinger
dc0665ebf3 Enhanced the SVDRP command CLRE to allow clearing the EPG data of a particular channel 2008-01-13 15:06:25 +01:00
Klaus Schmidinger
5e3374539c Added a section about "Logging" to PLUGINS.html 2008-01-13 14:48:15 +01:00
Klaus Schmidinger
d39cd60ef6 The automatic shutdown is now suppressed if the remote control is currently disabled 2008-01-13 14:31:47 +01:00
Klaus Schmidinger
28f34ab67b Added a note about te new 'pictures' plugin 2008-01-13 14:19:08 +01:00
Klaus Schmidinger
819e4b9f10 Fixed displaying weekday names in the Schedule menu if the system uses UTF-8 2008-01-13 14:05:26 +01:00
Klaus Schmidinger
96288c2974 Updated the Hungarian language texts 2008-01-13 13:22:56 +01:00
Klaus Schmidinger
95764d4bd5 Added '-Wno-parentheses' to the compiler options in order to avoid silly compiler warnings 2008-01-13 13:00:23 +01:00
Klaus Schmidinger
4337f88820 Added a missing setting of lastFreeMB in cMenuMain::Update() 2008-01-13 12:44:19 +01:00
Klaus Schmidinger
39a3ad2b2e Fixed a loss of the date display in the "classic" skin's main menu 2008-01-13 12:40:05 +01:00
Klaus Schmidinger
29871d8585 Fixed error handling in cCuttingThread::Action() 2008-01-13 12:23:39 +01:00
Klaus Schmidinger
2355fa852b Fixed handling the '-l' option 2008-01-13 11:52:22 +01:00
Klaus Schmidinger
1e69c4a578 Fixed the "i18n:" target in the "newplugin" script, so that it can create the initial *.pot file 2008-01-13 11:49:55 +01:00
Klaus Schmidinger
d607265f69 Added the 'pictures' plugin 2008-01-13 11:44:38 +01:00
Klaus Schmidinger
0ec2063b5a Added cString::Truncate() 2008-01-13 11:26:30 +01:00
Klaus Schmidinger
fe2568082a Added a missing newline 2008-01-06 11:48:14 +01:00
Klaus Schmidinger
49f7a7f574 Fixed cVector::Clear() and cStringList::Clear() 2008-01-01 15:10:07 +01:00
Klaus Schmidinger
6f76e10038 cTimeMs now uses the monotonic clock, if available 2007-12-27 15:58:18 +01:00
Klaus Schmidinger
bd411a6620 The kInfo key is now propagated to any open menu 2007-11-25 15:27:10 +01:00
Klaus Schmidinger
ade33990f5 Implemented setup option "Miscellaneous/Emergency exit" 2007-11-25 14:20:03 +01:00
Klaus Schmidinger
a97119d0b4 Fixed the declaration of cSubtitleObject::Decode8BppCodeString() 2007-11-25 13:35:08 +01:00
Klaus Schmidinger
4227b6f082 Fixed suddenly stopping subtitles in live mode 2007-11-18 15:21:51 +01:00
Klaus Schmidinger
db4c8c3c76 Fixed stopping live subtitles when a player is attached to the device 2007-11-17 15:58:55 +01:00
Klaus Schmidinger
e47d73715b Fixed handling small PES packets that caused subtitles to be displayed late in live mode 2007-11-17 13:59:08 +01:00
Klaus Schmidinger
b88420b23b Updated the Russian OSD texts 2007-11-16 16:40:38 +01:00
Klaus Schmidinger
5793a99d3d Fixed assembling PS1 packets in cTS2PES::instant_repack() 2007-11-10 13:40:51 +01:00
Klaus Schmidinger
c568200d2e Fixed decoding filename characters in case there are not two hex digits after the '#' 2007-11-04 11:24:07 +01:00
Klaus Schmidinger
c01249ffe5 Fixed a crash if no fonts are found 2007-11-04 11:11:34 +01:00
Klaus Schmidinger
7823790beb Improved the 'i18n' target in plugin Makefiles 2007-11-04 11:00:16 +01:00
Klaus Schmidinger
993235bdcc Improved the 'i18n' target in the Makefile to avoid unnecessary work 2007-11-04 10:18:45 +01:00
Klaus Schmidinger
612bbc0e06 Added a missing '.' to the date returned by DayDateTime() 2007-11-03 15:36:41 +01:00
Klaus Schmidinger
46b9d18368 The 'Allowed' parameter in cMenuEditStrItem() is now NULL by default, which results in using tr(FileNameChars) 2007-11-03 15:06:00 +01:00
Klaus Schmidinger
b54da2e0eb Added some missing 'const' keywords 2007-11-03 14:52:08 +01:00
Klaus Schmidinger
672c8c3d0e Fixed handling CONFDIR 2007-11-03 14:48:07 +01:00
Klaus Schmidinger
db3e2a122d Fixed a possible blocking in replay when subtitles are active; fixed displaying subtitles in live mode 2007-11-03 14:39:25 +01:00
Klaus Schmidinger
06f813d2a8 Added a workaround for recovering from wrongfully interpreted "pre 1.3.19 PS1 packets" 2007-11-03 14:32:03 +01:00
Klaus Schmidinger
2fa568654d Added Ukrainian language texts 2007-11-01 10:38:27 +01:00
Klaus Schmidinger
92ae9f154e Added more special characters to the list of allowed characters when entering strings 2007-10-21 12:32:51 +02:00
Klaus Schmidinger
cd6041f9ae Housekeeping now waits for a while after a replay has ended 2007-10-19 14:46:23 +02:00
Klaus Schmidinger
1e4c80799f Improved shutdown handling 2007-10-19 14:37:03 +02:00
Klaus Schmidinger
eeaa969186 The "Play" key now starts replay of the selected recording in the Recordings menu 2007-10-19 14:22:03 +02:00
Klaus Schmidinger
eca4c9fcea Updated the Italian OSD texts 2007-10-19 14:13:41 +02:00
Klaus Schmidinger
b389c31428 Updated the Estonian OSD texts 2007-10-19 13:58:59 +02:00
Klaus Schmidinger
cc95f37a09 Updated the French OSD texts 2007-10-19 13:54:24 +02:00
Klaus Schmidinger
dd26d8873f Fixed checking compatibility mode for old subtitles plugin 2007-10-17 18:34:17 +02:00
Klaus Schmidinger
67df515c06 Added cDevice::CloseFilter(); some fixes to PLUGINS.html 2007-10-14 13:11:23 +02:00
Klaus Schmidinger
7780e3664a Added cRecording::Undelete() 2007-10-14 10:23:19 +02:00
Klaus Schmidinger
c6ef96a6ae Made the default copy ctor and the assign operator of cRecording private 2007-10-14 10:09:08 +02:00
Klaus Schmidinger
72983f3e4c Added the '' character to the "allowed charcaters" in the de_DE.po file 2007-10-14 09:37:32 +02:00
Klaus Schmidinger
ce377ef416 Removed a duplicate ',' from the ca_ES.po file 2007-10-14 09:32:59 +02:00
Klaus Schmidinger
714e61b090 Added a note about how to initiate internationalization support to the README.i18n file; the Makefile generated by the 'newplugin' script now has the 'i18n' target automatically create an initial 'po/pluginname.pot' file 2007-10-14 09:29:59 +02:00
Klaus Schmidinger
de45da896a Improved the description of where logging goes in the INSTALL file 2007-10-13 13:03:57 +02:00
Klaus Schmidinger
913d4657c7 Fixed description of DeviceSetAvailableTrack() and cReceiver(), and added an example ~cMyReceiver() in PLUGINS.html 2007-10-13 12:57:15 +02:00
Klaus Schmidinger
ecc90d55bb Updated the Hungarian language texts 2007-10-13 12:46:25 +02:00
Klaus Schmidinger
78ecc96e17 Implemented sending all frames to devices that can handle them in fast forward trick speeds 2007-10-13 12:28:35 +02:00
Klaus Schmidinger
b943bf2c50 Fixed a new[]/delete mismatch in cMenuEditStrItem::LeaveEditMode() 2007-10-13 12:07:27 +02:00
Klaus Schmidinger
929d3e9ba2 Fixed handling reallocated memory in cCharSetConv::Convert() 2007-10-13 12:03:39 +02:00
Klaus Schmidinger
441b002be9 Updated the Italian OSD texts 2007-10-13 11:52:42 +02:00
Klaus Schmidinger
a20bd2a42f Only creating a new cDvbOsdProvider in cDvbDevice::MakePrimaryDevice() if 'On' is true 2007-10-13 11:17:56 +02:00
Klaus Schmidinger
42a8041352 Fixed a crash when pressing Left while at the first character of a cMenuEditStrItem 2007-10-13 10:41:37 +02:00
Klaus Schmidinger
f99b293de4 Added a missing SetVolumeDevice() call in cDevice::SetPrimaryDevice() 2007-10-13 10:34:30 +02:00
Klaus Schmidinger
20fd2553ff Fixed a missing '-' at the next to last line of SVDRP help texts 2007-10-13 10:23:19 +02:00
Klaus Schmidinger
8945e9e296 Added a missing Channels.SetModified(true) call when deleting or moving a channel in the Channels menu 2007-10-13 10:12:28 +02:00
Klaus Schmidinger
59bc94fba2 Now generating translation files without line numbers; updated the Finnish OSD texts 2007-10-13 09:54:09 +02:00
Klaus Schmidinger
0c8cda9bd0 Implemented handling DVB subtitles 2007-10-12 14:52:30 +02:00
Klaus Schmidinger
3a4b7f065c Adapted to the new Level parameter of cOsd 2007-08-26 20:36:59 +02:00
Klaus Schmidinger
ad1e138e5b Fixed checking for ttDolbyLast in cDevice::SetCurrentAudioTrack() 2007-08-26 11:13:10 +02:00
Klaus Schmidinger
a80915ff22 There can now be more than one OSD at the same time 2007-08-26 09:58:10 +02:00
Klaus Schmidinger
6a737033ad Added a missing error report to cCuttingThread::Action() 2007-08-25 10:36:10 +02:00
Klaus Schmidinger
fd60644895 The SVDRP command LSTC can now list the channels with group separators if the option ':groups' is given 2007-08-25 09:31:13 +02:00
Klaus Schmidinger
742f4cc378 VDR now uses the default configuration directory as defined in the CONFDIR varable in the Makefile 2007-08-25 08:58:44 +02:00
Klaus Schmidinger
a241ad38b8 Added the new i18n macro trVDR() 2007-08-24 14:03:47 +02:00
Klaus Schmidinger
98bdd0cfea Changed the default for LOCDIR in Makefile and Make.config.template to "./locale" 2007-08-24 13:30:07 +02:00
Klaus Schmidinger
840821fc00 Fixed setting the locale file name in i18n-to-gettext.pl 2007-08-24 13:20:58 +02:00
Klaus Schmidinger
91ad06409b Fixed some compiler warnings with gcc-4.2.0 2007-08-24 13:18:21 +02:00
Klaus Schmidinger
529becb865 Added a note about LANG having to be set to a valid locale in INSTALL 2007-08-24 13:13:08 +02:00
Klaus Schmidinger
1998a2fb62 Fixed detecting whether a particular locale is actually supported 2007-08-24 13:09:09 +02:00
Klaus Schmidinger
f075b1cea7 Fixed stripping the context in I18nTranslate() 2007-08-24 12:56:57 +02:00
Klaus Schmidinger
0a2fe2b6e8 Updated Turkish language texts 2007-08-24 12:39:26 +02:00
Klaus Schmidinger
c9ccd0ae1d Fixed handling locale directories with a large number of entries 2007-08-19 16:04:22 +02:00
Klaus Schmidinger
69db18ef8f Explicitly looking for vdr.mo; text files for plugins named 'vdr-name.mo'; revoked 'best match' 2007-08-19 14:34:44 +02:00
Klaus Schmidinger
aebcc9d15c Fixed initializing 'Now' in main loop 2007-08-18 13:03:46 +02:00
Klaus Schmidinger
8014316a31 The "Setup/OSD/Language" menu now only shows those languages that actually have a locale (suggested by Anssi Hannula) 2007-08-18 09:21:52 +02:00
Klaus Schmidinger
48da9ba9c8 Changed cBitmap::DrawText() to always draw the background unless ColorBg is clrTransparent 2007-08-17 15:31:18 +02:00
Klaus Schmidinger
4d0297b804 Reduced the number of time(NULL) calls in vdr.c's main loop to a single call 2007-08-17 14:36:45 +02:00
Klaus Schmidinger
cb03e38a07 Optimized cNitFilter::Process() 2007-08-17 14:06:09 +02:00
Klaus Schmidinger
9fa6d9f9dd Optimized cMenuEditChrItem::Set() 2007-08-17 13:50:20 +02:00
Klaus Schmidinger
1f3dbe585b Some optimizations in cDvbDevice::SetChannelDevice() 2007-08-17 13:41:06 +02:00
Klaus Schmidinger
7bb744ccb0 I18nInitialize() now uses best matching default locale 2007-08-17 12:38:55 +02:00
Klaus Schmidinger
00328c31e1 Updated the French OSD texts 2007-08-17 11:51:03 +02:00
Klaus Schmidinger
61fe65f5bb Combined entries for Andreas Mair 2007-08-15 14:34:03 +02:00
Klaus Schmidinger
e48d4293e5 Checking the string for NULL in I18nTranslate() 2007-08-15 14:18:26 +02:00
Klaus Schmidinger
3883fb8e16 Added i18n to the 'skincurses' plugin 2007-08-15 14:11:11 +02:00
Klaus Schmidinger
bc580d781a Updated the Finnish OSD texts 2007-08-15 13:52:58 +02:00
Klaus Schmidinger
1acc20266e Added DESTDIR and PREFIX handling to the Makefile 2007-08-15 13:49:27 +02:00
Klaus Schmidinger
a551b5b124 Moved the "all" target in plugin Makefiles before the "Implicit rules" 2007-08-15 13:20:04 +02:00
Klaus Schmidinger
0979904dfc Improved i18n-to-gettext.pl 2007-08-15 12:52:00 +02:00
Klaus Schmidinger
fdcce1c153 Fixed a faulty comment in Make.config.template 2007-08-12 20:44:29 +02:00
Klaus Schmidinger
310c5dc757 Added missing install-i18n to the install target in the Makefile 2007-08-12 20:38:10 +02:00
Klaus Schmidinger
1c7f9c81b4 Added a debug error message to cReceiver::~cReceiver() in case it is still attached to a device 2007-08-12 12:30:00 +02:00
Klaus Schmidinger
4c28809e2d No more default for OSDLanguage 2007-08-12 12:18:23 +02:00
Klaus Schmidinger
365eda6cdd Added a note on how to run locally 2007-08-12 12:04:17 +02:00
Klaus Schmidinger
dbcc517354 cBitmap::SetXpm() now checks whether the given Xpm pointer is not NULL 2007-08-12 11:36:14 +02:00
Klaus Schmidinger
ab7fd0a903 Fixed the link to the GPL2 at http://www.gnu.org in vdr.c 2007-08-12 11:25:05 +02:00
Klaus Schmidinger
8edb431b2c Added the "...or (at your option) any later version" phrase to the license information of all plugins, and also the "newplugin" script 2007-08-12 11:13:43 +02:00
Klaus Schmidinger
6f568625d7 Fixed handling kLeft in the calls to cStatus::MsgOsdTextItem() 2007-08-12 10:45:43 +02:00
Klaus Schmidinger
33e5ef3a58 The list of tracks given in cStatus::SetAudioTrack() is now NULL terminated 2007-08-12 10:37:58 +02:00
Klaus Schmidinger
b12403458e Now writing modified Makefile to Makefile.new 2007-08-12 10:02:01 +02:00
Klaus Schmidinger
84faea7f0d Put the three letter language codes and aliases into i18n.c 2007-08-12 09:54:23 +02:00
Klaus Schmidinger
26e2e4dee2 Using system locale for i18n by default 2007-08-11 14:27:02 +02:00
Klaus Schmidinger
84184e2c03 Updated German OSD language texts 2007-08-11 13:18:35 +02:00
Klaus Schmidinger
0f7a4af168 Switched I18N to gettext 2007-08-11 12:39:06 +02:00
Klaus Schmidinger
5b8fe34a0e Fixes in preparation for 'gettext' 2007-07-29 11:35:03 +02:00
Klaus Schmidinger
cad9843166 Fixed a bug I introduced when simplifying the original patch for detecting Premiere NVOD channel links 2007-07-28 13:23:37 +02:00
Klaus Schmidinger
031000493d Fixed a problem with characters >0x7F in the modified version of skipspace() 2007-07-28 12:59:48 +02:00
Klaus Schmidinger
6ab7d34010 Updated the Estonian OSD texts 2007-07-28 11:20:25 +02:00
Klaus Schmidinger
1476966099 All logging now goes to LOG_ERR 2007-07-28 09:45:27 +02:00
Klaus Schmidinger
54e8fd121a Added a credit 2007-07-28 09:39:53 +02:00
Klaus Schmidinger
2cf50221c2 Added a missing 'P' to vdr.c's SHUTDOWNCANCELROMPT macro 2007-07-22 11:40:01 +02:00
Klaus Schmidinger
1858245fc8 Added a table of the used trick speed values to the description of cDevice::TrickSpeed() 2007-07-22 11:29:37 +02:00
Klaus Schmidinger
a1663a3612 Fixed detection of Premiere NVOD channel links 2007-07-21 15:05:20 +02:00
Klaus Schmidinger
593013c94c Fixed some whitespace formatting 2007-07-21 13:49:48 +02:00
Klaus Schmidinger
4c90306502 Made skipspace() an inline function and changed it to handle the most common case of 'no leading space' very fast, and avoid calling isspace() 2007-07-21 13:39:02 +02:00
Klaus Schmidinger
214c12289f Improved cControl::Launch() to keep 'control' from pointing to uninitialized memory 2007-07-20 15:26:13 +02:00
Klaus Schmidinger
a8eaa2538c Updated the Finnish OSD texts 2007-07-20 15:04:56 +02:00
Klaus Schmidinger
2f528db30a Fixed a typo in the function name of cOsd::SetOsdPosition() and added a range check to it 2007-07-20 14:57:37 +02:00
Klaus Schmidinger
8ff2c73d9b Fixed clearing color buttons in the 'curses' skin 2007-07-20 14:45:44 +02:00
Klaus Schmidinger
bd36fb5111 Improved numdigits(), isnumber() and strreplace() 2007-07-20 14:25:46 +02:00
Klaus Schmidinger
57c2b211e4 Fixed handling single byte characters >0x7F in Utf8ToArray() 2007-07-20 13:56:38 +02:00
Klaus Schmidinger
3796bebfc5 Updated the Russian OSD texts 2007-07-20 12:35:53 +02:00
Klaus Schmidinger
c9094aad18 Fixed a buffer overflow in initializing the system character table 2007-07-20 12:31:38 +02:00
Klaus Schmidinger
7c86dcaa27 Added WeekDayNameFull() 2007-06-23 13:40:04 +02:00
Klaus Schmidinger
d66eba77c2 Improved performance of the SVDRP commands LSTC and CHAN when used with a channel name 2007-06-23 13:24:00 +02:00
Klaus Schmidinger
24232a0010 Fixed stripping i18n stuff from font names 2007-06-23 11:28:18 +02:00
Klaus Schmidinger
e5def7917b Added full weekday names to i18n.c for plugins to use 2007-06-23 10:54:31 +02:00
Klaus Schmidinger
d9a8e282e5 Fonts can now be created with a width that overwrites the default width 2007-06-23 10:41:10 +02:00
Klaus Schmidinger
95f4ddd4e5 Fixed handling address masks in SVDRP host settings 2007-06-23 09:43:55 +02:00
Klaus Schmidinger
62f3d4c797 Changed the parameter "OSD font size" to "Default font size" in "Setup/OSD" 2007-06-23 09:28:05 +02:00
Klaus Schmidinger
63f4369849 Updated the Finnish OSD texts 2007-06-23 09:16:56 +02:00
Klaus Schmidinger
9ebd38230c Fixed a name clash between skincurses.c and the new cOsd position functions 2007-06-23 09:08:21 +02:00
Klaus Schmidinger
549a26af27 Implemented cOsd::SetOsdPosition() etc 2007-06-17 14:02:02 +02:00
Klaus Schmidinger
da376c0603 The info.vdr file now also stores the name of the channel 2007-06-17 13:13:47 +02:00
Klaus Schmidinger
efbb48dbaf Fixed handling detached processes in SystemExec() 2007-06-17 12:45:57 +02:00
Klaus Schmidinger
3ad941de73 Changed the parameter "OSD font" to "Default font" in "Setup/OSD" 2007-06-17 12:33:53 +02:00
Klaus Schmidinger
671bad0400 Updated the Finnish OSD texts 2007-06-17 12:28:59 +02:00
Klaus Schmidinger
d2b11bf712 Implemented cFont::CreateFont() 2007-06-17 12:15:24 +02:00
Klaus Schmidinger
5fec367e60 Centralized default font names 2007-06-17 11:54:54 +02:00
Klaus Schmidinger
3c68ef28d0 Using dummy font if no fonts are installed 2007-06-17 11:47:18 +02:00
Klaus Schmidinger
79b1c68ffb Now using 'fontconfig' to determine which fonts to use 2007-06-17 11:12:46 +02:00
Klaus Schmidinger
b1e0df2b27 Added missing note about adjusting the 'skincurses' plugin to UTF-8 handling 2007-06-16 10:45:21 +02:00
Klaus Schmidinger
b532dc8229 Replaced strncpy() and strn0cpy() with Utf8Strn0Cpy() where necessary 2007-06-16 10:41:21 +02:00
Klaus Schmidinger
81e44bce19 Renamed Utf8NumSyms() to Utf8StrLen() 2007-06-16 09:05:22 +02:00
Klaus Schmidinger
4011e244ff Modified handling invalid characters in VFAT mode 2007-06-16 08:59:39 +02:00
Klaus Schmidinger
61dd9815ae More credits for 'Fixed a crash in i18n character set conversion' 2007-06-15 14:40:12 +02:00
Klaus Schmidinger
d1934a7cfd Using nl_langinfo(CODESET) to determine the local codeset to use; libsi uses canonical codeset names 2007-06-15 13:25:35 +02:00
Klaus Schmidinger
1f7c70cd49 Fixed a crash in i18n character set conversion 2007-06-15 13:01:18 +02:00
Klaus Schmidinger
3224fffe87 Implemented UTF-8 handling in skincurses 2007-06-15 12:24:06 +02:00
Klaus Schmidinger
824b974b81 Increased APIVERSION (forgot to do that in 1.5.2 and 1.5.3) 2007-06-13 06:38:33 +02:00
Klaus Schmidinger
02d34e0657 Added a note about font names and sizes 2007-06-10 13:37:03 +02:00
Klaus Schmidinger
8555722582 channels.conf 2007-06-10 13:28:09 +02:00
Klaus Schmidinger
8875b16ee7 Removed note about not using UTF-8 2007-06-10 13:13:09 +02:00
Klaus Schmidinger
c6f8a14957 Freetype font support; full UTF-8 support; dropped pixel fonts 2007-06-10 13:02:43 +02:00
Klaus Schmidinger
32dd727d05 Fixed checking iconv_open() return value 2007-05-28 10:22:42 +02:00
Klaus Schmidinger
df463b5a2a Fixed getting the code setting from the locale 2007-05-12 09:35:07 +02:00
Klaus Schmidinger
d472e8b63b Official release of version 1.4.7 2007-05-12 09:05:06 +02:00
Klaus Schmidinger
37cca63f31 Increased the maximum number of CA system ids to cope with the AlphaCrypt CAM's version 3.11 firmware 2007-04-30 13:03:29 +02:00
Klaus Schmidinger
6e93ac9525 Implemented the SVDRP command REMO 2007-04-30 12:53:35 +02:00
Klaus Schmidinger
d8264ee1b2 Fixed handling ChannelUp/Down keys if there is currently a replay running 2007-04-30 09:53:34 +02:00
Klaus Schmidinger
fcbb206fdf Non-primary devices in Transfer mode are now also used for recording 2007-04-30 09:40:34 +02:00
Klaus Schmidinger
f935c03c79 Fixed a race condition with signal handlers at program exit 2007-04-30 09:24:30 +02:00
Klaus Schmidinger
853f6064bf Fixed handling frequencies in NitFilter::Process() 2007-04-29 11:40:31 +02:00
Klaus Schmidinger
27c7603276 Fixed a busy loop in fast forward if the next video data file is missing 2007-04-28 15:18:02 +02:00
Klaus Schmidinger
32c689258a Fixed some spelling errors in 'newplugin' 2007-04-28 14:49:05 +02:00
Klaus Schmidinger
2ac9030e65 Implemented character set conversion in 'libsi' 2007-04-22 14:49:26 +02:00
Klaus Schmidinger
6d88da9385 Added missing rules for generating iso8859-13 font to Makefile 2007-03-11 10:22:18 +01:00
Klaus Schmidinger
567033135d Added Turkish language texts 2007-03-11 10:17:55 +01:00
Klaus Schmidinger
93ad92da14 Fixed handling user activity for shutdown 2007-03-10 13:02:05 +01:00
Klaus Schmidinger
df2f3335eb Release of version 1.4.6 2007-03-03 16:26:25 +01:00
Klaus Schmidinger
6bb8b86ff4 Updated the Finnish OSD texts 2007-03-03 15:39:05 +01:00
Klaus Schmidinger
16fe4d783f Made "Channel entry timeout" a setup parameter 2007-02-25 14:14:06 +01:00
Klaus Schmidinger
197d3762e4 Increased the maximum number of DVB devices to 8 2007-02-25 12:25:57 +01:00
Klaus Schmidinger
44479aab2a Updated the Finnish OSD texts 2007-02-25 11:57:55 +01:00
Klaus Schmidinger
cb0bd2e009 Added changes from version 1.4.5-2 to version 1.5.1 2007-02-25 11:54:17 +01:00
Klaus Schmidinger
1a4456d981 Simplified the error handling in cDvbTuner::GetFrontendStatus() 2007-02-25 11:52:09 +01:00
Klaus Schmidinger
7b59d84be3 Changed "Menu button closes" to "Menu key closes"; cleaned up "button" vs. "key" in MANUAL 2007-02-25 11:39:40 +01:00
Klaus Schmidinger
ddb7f33567 Rewrite of shutdown handling; implemented cPlugin::WakeupTime(); SIGHUP forces reload; cThread::EmergencyExit() replaced by ShutdownHandler.RequestEmergencyExit() 2007-02-25 10:56:29 +01:00
Klaus Schmidinger
50b14be807 Fixed handling error status in cDvbTuner::GetFrontendStatus() 2007-02-24 11:20:42 +01:00
Klaus Schmidinger
328d8b6494 Updated satellite names in 'sources.conf' 2007-02-17 16:19:18 +01:00
Klaus Schmidinger
cc385f5292 Fixed a possible crash when loading an invalid XPM file 2007-02-17 16:10:46 +01:00
Klaus Schmidinger
f3bc8d1988 Adapted 'libsi' to DVB-S2 2007-02-03 12:13:08 +01:00
Klaus Schmidinger
31820a5175 Removed 'assert(0)' from cDvbSpuDecoder::setTime() 2007-02-03 10:26:17 +01:00
Klaus Schmidinger
d919573037 Adjusted release date 2007-01-28 09:59:03 +01:00
Klaus Schmidinger
0a766bc257 Now using cPipe instead of popen() in cCommand::Execute() 2007-01-27 11:48:54 +01:00
Klaus Schmidinger
d46a55a8f1 Updated Hermann Gausterer's email address 2007-01-26 14:12:57 +01:00
Klaus Schmidinger
8597e120c6 Added a clear note about CA values 0...F no longer working with encrypted channels 2007-01-26 13:59:23 +01:00
Klaus Schmidinger
cb25286394 Now using cPipe instead of popen() in cCommand::Execute() 2007-01-26 13:38:32 +01:00
Klaus Schmidinger
d1d5825136 Fixed i18n characters for the Hungarian texts 2007-01-26 13:28:47 +01:00
Klaus Schmidinger
7751b6abb0 Added cDevice::HasCi() so that devices with Common Interface can be avoided when tuning to an FTA channel 2007-01-13 12:14:51 +01:00
Klaus Schmidinger
87dd5139ff CAM handling refactored; multiple recordings with one CAM; automatic CAM selection 2007-01-07 14:46:14 +01:00
Klaus Schmidinger
b4cab10eca Official release of version 1.4.5 2007-01-07 14:04:12 +01:00
Klaus Schmidinger
b473582b4e Added a missing break statement in cCiHandler::OpenSession() 2007-01-05 10:09:22 +01:00
Klaus Schmidinger
dbd4c7329b When entering text via the numeric keys, the characters are now checked against the allowed characters 2007-01-04 13:38:40 +01:00
Klaus Schmidinger
50ff4d3b79 Fixed the INSTALL section on retrying shutdown later 2007-01-04 13:23:42 +01:00
Klaus Schmidinger
dcff08512e Fixed a possible segfault if VDR gets terminated while a message is displayed 2007-01-04 13:11:52 +01:00
Klaus Schmidinger
e72bff8938 Fixed a typo 2007-01-04 13:05:45 +01:00
Klaus Schmidinger
9e2fcf1ebf Added '#include <stdint.h>' to font.h; added a compatibility define for 'uint64' to tools.h (cont'd) 2006-12-03 17:40:00 +01:00
Klaus Schmidinger
f9efdeab55 Removed the '__attribute__' - didn't work with function parameters 2006-12-03 17:38:38 +01:00
Klaus Schmidinger
0efa7a757a Added '#include <stdint.h>' to font.h; added a compatibility define for 'uint64' to tools.h 2006-12-03 16:52:19 +01:00
Klaus Schmidinger
fb22b61299 Adjusted release date 2006-12-03 09:57:09 +01:00
Klaus Schmidinger
3f7090887b Moved the cPluginManager::Active() call further down 2006-12-02 16:22:12 +01:00
Klaus Schmidinger
19f39258f0 Replaced 'unsigned long long' with 'uint32_t' and 'uint64' with 'uint64_t' to avoid problems on 64-bit machines 2006-12-02 11:30:19 +01:00
Klaus Schmidinger
661da094e1 Now calling cPluginManager::Active() only if VDR is really trying to shut down, and waiting for 5 minutes before calling it again 2006-12-02 10:35:27 +01:00
Klaus Schmidinger
ddcb37300f The getskyepg.pl script now replaces "&amp;" with "&" 2006-12-02 10:00:08 +01:00
Klaus Schmidinger
83ad7bf6e4 Added a missing 'const' to cRecordingInfo::ChannelID() 2006-12-01 15:09:10 +01:00
Klaus Schmidinger
2bdf515ace Fixed a typo in the change to the "Use small font" setup option in version 1.3.47 2006-12-01 15:03:37 +01:00
Klaus Schmidinger
78b78ffd64 Fixed a possible crash in remux.c on 64-bit machines 2006-12-01 14:53:11 +01:00
Klaus Schmidinger
bab6955557 Made the getskyepg.pl script of the 'sky' plugin send a user agent message to the server 2006-12-01 14:39:59 +01:00
Klaus Schmidinger
3e0659a10a Fixed a possible segfault in cSkins::Message() 2006-12-01 13:35:41 +01:00
Klaus Schmidinger
5945e2b1cb Some improvements to the man pages 2006-11-19 10:05:58 +01:00
Klaus Schmidinger
3dc4a71fe6 Fixed displaying the replay mode symbol in case of "Multi speed mode" 2006-11-04 13:19:31 +01:00
Klaus Schmidinger
b8b41e4138 Adjusted release date 2006-10-29 10:09:53 +01:00
Klaus Schmidinger
6bee1b1f3d Fixed handling NITs with more than one delivery system descriptor tag for the same transponder 2006-10-28 12:38:13 +02:00
Klaus Schmidinger
af0e7a6193 Fixed deleting EPG events that have a running status of "pausing" or higher 2006-10-28 09:16:24 +02:00
Klaus Schmidinger
d67543b9ac Adjusted release date again 2006-10-22 09:11:29 +02:00
Klaus Schmidinger
9a6e81fc3a Fixed setting audio track descriptions after a replay has been stopped 2006-10-20 13:42:14 +02:00
Klaus Schmidinger
a47b2bfc75 Adjusted release date 2006-10-15 09:03:01 +02:00
Klaus Schmidinger
24da36dd8d Increased the size of the key queue to avoid problems with long key macros 2006-10-14 11:47:32 +02:00
Klaus Schmidinger
f2c619568f Fixed handling plugins from cRemote::PutMacro() and cRemote::CallPlugin() 2006-10-14 11:09:01 +02:00
Klaus Schmidinger
3a9deab56c cRemote::PutMacro() now sets a lock while it expands the macro 2006-10-14 10:46:19 +02:00
Klaus Schmidinger
93d2941ebe Keys from expanded key macros are now put into the front of the key queue 2006-10-14 10:41:20 +02:00
Klaus Schmidinger
7bed3fd6ba Fixed displaying the error log message in case an unknown plugin was requested in a key macro 2006-10-14 10:06:16 +02:00
Klaus Schmidinger
6a15d77429 Fixed a possible crash if cPluginManager::GetPlugin() is called with a NULL pointer 2006-10-14 09:57:09 +02:00
Klaus Schmidinger
bb335fecba Updated the Hungarian language texts 2006-10-14 09:27:13 +02:00
Klaus Schmidinger
c65fc15934 Fixed clearing an event's Title, ShortText and Description in case the data comes from an external source 2006-10-09 16:22:07 +02:00
Klaus Schmidinger
a9d6bb256d Replacing blanks in language codes with underlines 2006-10-08 11:28:15 +02:00
Klaus Schmidinger
29c0f9e1e0 Fixed handling language codes and descriptions of recorded audio tracks 2006-10-07 13:59:21 +02:00
Klaus Schmidinger
09c6bced8d Fixed handling video directory updates in case an other process has touched the .update file after the last NeedsUpdate() check 2006-10-07 12:50:24 +02:00
Klaus Schmidinger
f951fb2f9c Now clearing an event's Title, ShortText and Description if there is no ShortEventDescriptor or ExtendedEventDescriptor, respectively 2006-10-07 12:37:59 +02:00
Klaus Schmidinger
94e43892a5 Changed the I18nNormalizeLanguageCode() check to also allow blanks (and all other printable characters) in the language codes 2006-10-07 12:22:04 +02:00
Klaus Schmidinger
2d68b323c7 The function cThread::Cancel() now only sets 'running' to false and does not actually kill the thread if the special value -1 is given 2006-09-24 12:54:47 +02:00
Klaus Schmidinger
0b8cee6f2a Official release of version 1.4.3 2006-09-23 13:57:19 +02:00
Klaus Schmidinger
8ebd403363 Adjusted release date 2006-09-17 09:18:57 +02:00
Klaus Schmidinger
2d29eb90fe Fixed handling video directory updates in case the timestamp of the .update file is in the future 2006-09-16 12:14:06 +02:00
Klaus Schmidinger
59b6005a0c Updated the Hungarian language texts 2006-09-16 09:08:53 +02:00
Klaus Schmidinger
fd4ffed37b Fixed deleting expired VPS timers 2006-09-15 15:01:40 +02:00
Klaus Schmidinger
1b79274fae The 'skincurses' plugin now adjusts the size of the OSD to the size of the console window 2006-09-10 14:25:55 +02:00
Klaus Schmidinger
2aa6df4b7c Added --remove-destination to the 'cp' command for binaries in the Makefiles of the plugins 2006-09-10 14:10:51 +02:00
Klaus Schmidinger
06debdd830 Adjusted release date 2006-09-09 09:27:45 +02:00
Klaus Schmidinger
782f2683d9 Fixed cTimer::operator=() in case a cTimer variable is assigned to itself; implemented a copy constructor for cTimer 2006-09-08 15:06:09 +02:00
Klaus Schmidinger
5ff1d35711 Fixed handling relative volume settings that unmute the audio in the call to cStatus::MsgSetVolume() 2006-09-03 11:49:32 +02:00
Klaus Schmidinger
2e97eed6ad Fixed processing the PDCDescriptor in 'libsi' on big endian systems 2006-09-02 20:25:16 +02:00
Klaus Schmidinger
4c88f1da7e Fixed the cTimer::operator=() so that it won't mess up the cListObject's pointers; fixed a memory leak in the cTimer::operator=() when using the 'aux' string 2006-09-02 10:22:40 +02:00
Klaus Schmidinger
4ae577fcb4 Added LC_ALL to the checks for UTF-8 at startup 2006-09-01 12:59:35 +02:00
Klaus Schmidinger
c2e2673629 Revoked the change to cDevice::GetDevice() that was introduced in version 1.4.1-2 2006-08-27 08:42:31 +02:00
Klaus Schmidinger
1305406f0a channels.conf 2006-08-26 14:00:00 +02:00
Klaus Schmidinger
cac5cd37b8 Fixed handling "Ca Info" in case the CAM sends this again if the smart card is replaced with a different one 2006-08-20 11:54:56 +02:00
Klaus Schmidinger
a7c9905236 Added --remove-destination to the 'cp' command for binaries in the Makefile 2006-08-20 10:46:02 +02:00
Klaus Schmidinger
ef01c6d8bb Adapted cThread::ThreadId() to recent kernels 2006-08-20 10:28:35 +02:00
Klaus Schmidinger
e68171626e Fixed setting additional audio PIDs in CAMs 2006-08-14 09:56:28 +02:00
Klaus Schmidinger
dc32738b27 Added a log error message to cPlugin::ConfigDirectory() in case a plugin calls it from a separate thread 2006-08-13 08:58:50 +02:00
Klaus Schmidinger
1c3acf28af No longer stopping removing empty directories if an error occurs 2006-08-12 13:32:06 +02:00
Klaus Schmidinger
713093670f Changed the way a device is selected for receiving in order to keep devices with CAMs better available 2006-08-12 11:33:34 +02:00
Klaus Schmidinger
7390eaf765 Made the cCiSession members sessionId and resourceId uint16_t and uint32_t 2006-08-12 10:26:43 +02:00
Klaus Schmidinger
9e6b12aa20 Fixed converting the port number in the "connect from..." log message of SVDRP 2006-08-12 09:12:34 +02:00
Klaus Schmidinger
f413879936 Modified the cSVDRP::Close() function to avoid code duplication 2006-08-06 09:20:04 +02:00
Klaus Schmidinger
c78a784fb2 Fixed getting the next active timer when shutting down 2006-08-05 12:06:11 +02:00
Klaus Schmidinger
394865b3d9 Avoiding shutdown message "Recording in ... minutes, shut down anyway?" with a negative number of minutes 2006-08-05 10:55:52 +02:00
Klaus Schmidinger
8bfe599830 Modified the shutdown mechanism, so that the shutdown script is never given a time in the past 2006-08-05 10:42:23 +02:00
Klaus Schmidinger
c325fe76ee Fixed handling the running status of EPG events before the currently running one, in case they are added after the current event (cont'd from version 1.4.1-2) 2006-08-05 10:15:34 +02:00
Klaus Schmidinger
ae4633feb0 Now invalidating /video cache _after_ cutting 2006-07-30 10:29:24 +02:00
Klaus Schmidinger
cacd58d036 Fixed deleting the last character of a string menu item in insert mode 2006-07-30 09:09:30 +02:00
Klaus Schmidinger
cdad4a6b4e Fixed cDevice::ToggleMute() 2006-07-29 10:17:35 +02:00
Klaus Schmidinger
afb7ae3295 Increased the APIVERSION to allow plugins that relied on the cStatus::MsgSetVolume() bug to react properly 2006-07-29 09:57:57 +02:00
Klaus Schmidinger
173e0bea90 Fixed assigning schedules to channels in case there is no initial EPG information 2006-07-29 09:40:41 +02:00
Klaus Schmidinger
8f2f3e9ac2 Menu items derived from cMenuEditIntItem now loop though their values if they have a dedicated minimum or maximum limit 2006-07-23 09:48:51 +02:00
Klaus Schmidinger
35884ec732 Added credits for Bernd Melcher 2006-07-23 09:38:51 +02:00
Klaus Schmidinger
2aa43cb3e2 Fixed handling numeric keys in the channel display after switching channel groups 2006-07-23 09:26:50 +02:00
Klaus Schmidinger
92e4e131d0 cDevice::GetDevice() now prefers any device that's already receiving and doesn't require detatching receivers 2006-07-22 14:11:02 +02:00
Klaus Schmidinger
375aa2563a Fixed handling client side termination of SVDRP connections 2006-07-22 14:04:51 +02:00
Klaus Schmidinger
ee4fa90032 Added a missing initialization of 'mutex' in cCiMenu::cCiMenu() and removed some superfluous semicolons in ci.c 2006-07-22 13:43:01 +02:00
Klaus Schmidinger
8f3ae72e9d Fixed handling relative volume settings in the call to cStatus::MsgSetVolume() 2006-07-22 13:26:44 +02:00
Klaus Schmidinger
bd6046c37d Fixed handling network masks in the svdrphosts.conf file 2006-07-22 11:59:28 +02:00
Klaus Schmidinger
5f0b2fbf2e Newlines in title and short text of an EPG event are now changed into blanks only after all other fixes 2006-07-22 10:48:22 +02:00
Klaus Schmidinger
e9a90f7972 cEIT::cEIT() now calls pSchedule->SetPresentSeen() even if OnlyRunningStatus is true 2006-07-22 09:25:11 +02:00
Klaus Schmidinger
c4743d1d26 Fixed handling the running status of EPG events before the currently running one, in case they are added after the current event 2006-07-22 09:20:32 +02:00
Klaus Schmidinger
f936447c25 Fixed a comment 2006-06-24 10:22:57 +02:00
Klaus Schmidinger
1b0ac71a33 Removed a double fdopen() in cPipe::Open() 2006-06-24 10:12:09 +02:00
Klaus Schmidinger
7b3d0ce03e Added '--vfat' to the vdr.1 man page 2006-06-24 10:08:35 +02:00
Klaus Schmidinger
830d86017a Fixed the Makefile of the 'servicedemo' plugin, so that it defines the PLUGIN macro; added a comment regarding the PLUGIN macro to the 'newplugin' script 2006-06-24 09:15:17 +02:00
Klaus Schmidinger
2be1771869 Now making sure a VPS timer has a schedule in case the epg.data file didn't contain one when VDR was started 2006-06-18 08:50:04 +02:00
Klaus Schmidinger
9fe7b98cdb Fixed handling relative link targets in the ReadLink() function 2006-06-17 09:48:50 +02:00
Klaus Schmidinger
182224b65f Added a missing variable initialization in cRingBufferLinear::cRingBufferLinear() 2006-06-16 09:33:30 +02:00
Klaus Schmidinger
b99c700f1d Modified rcu.c to better handle RC5 codes 2006-06-16 09:30:11 +02:00
Klaus Schmidinger
1d4512cbea Now making sure VPS timers don't get stuck with outdated events, and that the actual device isn't used for updating a VPS timer's event as long as other free devices are available 2006-06-16 09:22:20 +02:00
Klaus Schmidinger
3ed538f496 Updated 'S13E' in 'sources.conf' 2006-06-15 10:03:53 +02:00
Klaus Schmidinger
3644347545 Added some comment to cDevice::GetDevice() 2006-06-15 10:00:40 +02:00
Klaus Schmidinger
4a98f33782 Added "-fPIC" to the compiler options in Make.config.template when compiling plugins 2006-06-15 09:29:21 +02:00
Klaus Schmidinger
d324b2de88 Reduced logging for the SVDRP GRAB command 2006-06-11 09:14:22 +02:00
Klaus Schmidinger
99876fdab3 Fixed a message 2006-06-11 08:50:35 +02:00
Klaus Schmidinger
50c0b03f0c Now switching to non-VPS timers' channels 60 seconds before the timer starts 2006-06-04 09:10:59 +02:00
Klaus Schmidinger
0d4cf40b79 When the 'skincurses' plugin is loaded, it automatically sets the 'curses' skin as the current one 2006-06-03 14:46:36 +02:00
Klaus Schmidinger
56744b1f4e Increased the column spacing in the "Recordings" menu 2006-06-03 13:36:07 +02:00
Klaus Schmidinger
9966e03e29 Fixed handling tabbed item display in 'skincurses' 2006-06-03 13:21:33 +02:00
Klaus Schmidinger
a12a504fad Fixed handling the display of the '*' indicator in the "What's on now/next?" menu 2006-06-03 09:42:12 +02:00
Klaus Schmidinger
dc6666d53c Applied the fixes to moving and deleting channels from version 1.4.0-2 to the SVDRP commands MOVC and DELC as well 2006-06-03 09:25:13 +02:00
Klaus Schmidinger
833d649e13 Fixed the 'clean-plugins' target in the Makefile to also remove additional plugin libraries 2006-06-02 14:48:21 +02:00
Klaus Schmidinger
7997b678f2 Removed the call to pthread_setschedparam(childTid, SCHED_RR, 0) in thread.c 2006-06-02 13:54:04 +02:00
Klaus Schmidinger
9847c7571d Removed all the compatibility '#if APIVERSNUM...' stuff and instead increased the API version number 2006-05-28 15:10:08 +02:00
Klaus Schmidinger
4355183150 Fixed the PremiereContentTransmissionDescriptor in 'libsi' 2006-05-28 14:42:21 +02:00
Klaus Schmidinger
e892171736 Fixed deleting channels in case the current channel's number changes 2006-05-28 10:48:50 +02:00
Klaus Schmidinger
39162a98f0 Fixed moving channels, which sometimes stopped the current replay session 2006-05-28 09:19:30 +02:00
Klaus Schmidinger
9b3b98f88f Improved the repeat function for LIRC remote controls 2006-05-28 08:49:52 +02:00
Klaus Schmidinger
e4d3a28acd Now processing the "frequency list descriptor" 2006-05-27 15:35:16 +02:00
Klaus Schmidinger
ebd579a64a Avoiding a compiler warning in libsi's TypeLoop::operator[] 2006-05-27 14:13:06 +02:00
Klaus Schmidinger
ba0a06bf0d Fixed a typo 2006-05-27 11:14:42 +02:00
Klaus Schmidinger
d1617c84ca Modifed the device selection to better handle timer conflicts 2006-05-27 09:43:37 +02:00
Klaus Schmidinger
6b3376f4de Fixed description of DevceNumber() 2006-05-26 12:46:59 +02:00
Klaus Schmidinger
07093f79de Removed -fPIC from VDR's and libsi's Makefile 2006-05-26 10:46:12 +02:00
Klaus Schmidinger
af9266d21c Fixed calculating the cache size in cUnbufferedFile::Read() 2006-05-26 10:13:48 +02:00
Klaus Schmidinger
09386e621d Fixed handling VPS timers in case the EPG event hasn't been 'seen' in a while 2006-05-25 14:59:33 +02:00
Klaus Schmidinger
8d4dc7bc77 Fixed handling the running status of EPG events in case the "Schedule" menu is currently open 2006-05-25 14:53:15 +02:00
Klaus Schmidinger
ae37eae8e3 Now setting a timer's cached start time to 0 after a call to Skip() 2006-05-25 14:38:04 +02:00
Klaus Schmidinger
6496d879e5 Fixed calculating the start time of repeated timers with "first day" 2006-05-25 12:44:07 +02:00
Klaus Schmidinger
2e01178e54 Fixed deleting the 'skinDescriptions' in cMenuSetupOSD::~cMenuSetupOSD() 2006-05-25 12:26:09 +02:00
Klaus Schmidinger
a512b9a9fa Fixed handling Transfer Mode when replaying Dolby Digital audio and the option '-a' was given 2006-05-20 10:17:44 +02:00
Klaus Schmidinger
c8c22ad49b Modified the Makefile to copy additional libraries a plugin might provide 2006-05-19 12:14:19 +02:00
Klaus Schmidinger
cd7aaa0213 Removed leftover LSMOD=... line from 'runvdr' 2006-05-14 16:03:34 +02:00
Klaus Schmidinger
f9b0db0610 Fixed automatically updating the CAM menu in case the whole operation takes longer than the menu timeout 2006-05-14 11:22:13 +02:00
Klaus Schmidinger
6d670724e0 Now only using devices that provide a transponder exclusively for updating a VPS timers EPG event if the timer has actually entered the "VPS margin" 2006-05-13 09:10:56 +02:00
Klaus Schmidinger
946f9dfb78 Now always making sure the EPG scan is paused when a VPS timer needs to see its transponder to update its event 2006-05-13 09:09:34 +02:00
Klaus Schmidinger
046595a803 Now giving the start time precedence when searching for existing EPG events 2006-05-12 13:28:22 +02:00
Klaus Schmidinger
81bd99a674 Fixed handling unknown codes when learning LIRC remote control codes 2006-05-12 12:42:57 +02:00
Klaus Schmidinger
ae7103e984 Fixed the character #207 in fontosd for iso8859-2 2006-05-07 11:37:18 +02:00
Klaus Schmidinger
465ddf3ffc If VPS timers are active, their events are now being kept up to date 2006-05-07 09:13:36 +02:00
Klaus Schmidinger
93d0120c3f Now using the event's start time when checking against VPS margin 2006-05-07 09:01:59 +02:00
Klaus Schmidinger
452eec70a7 Fixed the character 'r' in fontosd and fontsml for iso8859-2 2006-05-05 13:49:57 +02:00
Klaus Schmidinger
c7af51870a Fixed handling the "Power" key in case a timer is about to start recording 2006-05-05 13:45:42 +02:00
Klaus Schmidinger
8bd9bf5e1b Updated the Czech OSD texts 2006-05-05 13:29:40 +02:00
Klaus Schmidinger
fd3cd16158 Fixed missing ',' in the Italian and Polish OSD texts 2006-05-01 21:04:37 +02:00
Klaus Schmidinger
98fe8d8f86 Added 'eval' to the $VDRCMD call in 'runvdr' to avoid problems with quoting 2006-05-01 14:52:19 +02:00
Klaus Schmidinger
87f7e826a1 Adjusted the 'runvdr' script so that the user can fill in the functions to detect, load and unload the necessary driver modules 2006-05-01 13:47:28 +02:00
Klaus Schmidinger
57207a3d72 Updated 'S110W' in 'sources.conf' 2006-05-01 09:35:06 +02:00
Klaus Schmidinger
d1d0ca114f Updated the Estonian OSD texts 2006-04-30 08:51:32 +02:00
Klaus Schmidinger
e7b365ffc6 Updated the Italian OSD texts 2006-04-29 14:42:46 +02:00
Klaus Schmidinger
bb237d9327 Adjusted release date 2006-04-29 13:30:00 +02:00
Klaus Schmidinger
7367b6a832 Fixed a memory leak in closing the video file during replay 2006-04-29 13:23:15 +02:00
Klaus Schmidinger
56468f72ad Fixed a memory leak in handling external EPG data 2006-04-29 11:40:37 +02:00
Klaus Schmidinger
b42e1f73db Updated the Polish OSD texts 2006-04-29 10:06:34 +02:00
Klaus Schmidinger
42ce340670 Fixed handling the "Power" key in case a recording is going on and no plugin is active 2006-04-29 09:24:07 +02:00
Klaus Schmidinger
70297ef174 Fixed tuning to the channel of a VPS timer if the device is the actual device 2006-04-28 13:29:22 +02:00
Klaus Schmidinger
a302fd67af Set all version numbers in doc files to 1.4 2006-04-28 13:07:14 +02:00
Klaus Schmidinger
1cc9809a45 Removed the obsolete "'1' for encrypted radio channels" part from the description of the VPID in vdr.5 2006-04-28 13:02:18 +02:00
Klaus Schmidinger
ce991f442b Changed the "Really restart?" prompt in the call to cPluginManager::Active() in menu.c to "restart anyway?" 2006-04-28 12:53:07 +02:00
Klaus Schmidinger
1cfeb4625e Added a hint about commenting out the line '#define USE_FADVISE' in tools.c 2006-04-28 12:42:20 +02:00
Klaus Schmidinger
40832856f7 Fixed handling the cPluginManager::Active() result when pressing the "Power" key 2006-04-28 12:33:13 +02:00
Klaus Schmidinger
4ebc8393ee Added a note about adding 'INCLUDES += -I/include' to an existing Make.config 2006-04-25 21:37:32 +02:00
Klaus Schmidinger
782f4e022d Updated the Italian OSD texts 2006-04-25 21:24:33 +02:00
Klaus Schmidinger
754a4de85e Fixed entering '0' in a cMenuEditIntItem 2006-04-25 16:04:55 +02:00
Klaus Schmidinger
bf4f8e0da3 Fixed extracting APIVERSION to work with older versions of 'sed'; Fixed broken APIVERSION extraction line in 'newplugin' 2006-04-24 17:53:19 +02:00
Klaus Schmidinger
c4d90dff6b Fixed initializing 'noapiv' in the Makefile 2006-04-24 17:09:32 +02:00
Klaus Schmidinger
b37a4d3c7a Ignoring k_Repeat when deciding whether the same key has been pressed in string input fields 2006-04-23 11:43:54 +02:00
Klaus Schmidinger
42b2676d82 channels.conf 2006-04-23 11:30:00 +02:00
Klaus Schmidinger
33397874da Fixed a format string in recording.c to avoid a compiler warning on 64bit systems 2006-04-23 11:23:17 +02:00
Klaus Schmidinger
d7c8025fba Added an error message about plugins that don't honor APIVERSION in their Makefile 2006-04-23 09:04:32 +02:00
Klaus Schmidinger
a9060d6290 Fixed some missing '-' in the German OSD texts 2006-04-23 08:40:09 +02:00
Klaus Schmidinger
6e79b7f894 Fixed a Finnish OSD text 2006-04-23 08:35:58 +02:00
Klaus Schmidinger
130889e72f Moved 'VPS' to a separate section 2006-04-22 13:56:23 +02:00
Klaus Schmidinger
9c984d4443 Fixed handling empty titles in cEvent::FixEpgBugs() 2006-04-22 12:03:55 +02:00
Klaus Schmidinger
f353cb7c64 Extended the version number reported with the '-V' option to also show the current APIVERSION 2006-04-22 11:28:37 +02:00
Klaus Schmidinger
d48630a04e Modified the German OSD texts to be "less technical" 2006-04-22 10:59:36 +02:00
Klaus Schmidinger
5c84f86158 Updated the Swedish OSD texts 2006-04-22 10:50:51 +02:00
Klaus Schmidinger
86950d4d98 Simplified the 'grep|awk|sed' command to retrieve the VDR/APIVERSION to a single 'sed' call 2006-04-22 10:08:41 +02:00
Klaus Schmidinger
ea122312dd Fixed wrong credits for the patch that was used to implement cPlugin::Active() 2006-04-22 09:47:59 +02:00
Klaus Schmidinger
43d6ddc8e0 Updated the Slovenian OSD texts 2006-04-22 09:45:41 +02:00
Klaus Schmidinger
54ca4d5763 Updated the Finnish OSD texts 2006-04-22 09:32:30 +02:00
Klaus Schmidinger
7457a2f388 Updated the Russian OSD texts 2006-04-22 09:28:33 +02:00
Klaus Schmidinger
70ab64f7cd Updated the Danish OSD texts 2006-04-22 09:21:57 +02:00
Klaus Schmidinger
d19497efe7 Updated the Romanian OSD texts 2006-04-22 09:19:34 +02:00
Klaus Schmidinger
4b291ed7a9 Updated the Estonian OSD texts 2006-04-22 09:15:53 +02:00
Klaus Schmidinger
1dff8e2f22 Updated the French OSD texts 2006-04-22 09:12:36 +02:00
Klaus Schmidinger
175d17eca5 Updated the Finnish OSD texts 2006-04-22 09:05:37 +02:00
Klaus Schmidinger
18283da81b Updated the Polish OSD texts 2006-04-22 09:00:32 +02:00
Klaus Schmidinger
44878cdb6c Fixed several spelling errors 2006-04-21 15:15:18 +02:00
Klaus Schmidinger
2e76e74597 Updated the GPL copies 2006-04-21 14:53:26 +02:00
Klaus Schmidinger
e84a565bfa Stripped some trailing whitespace 2006-04-17 12:19:31 +02:00
Klaus Schmidinger
5355b3345c channels.conf 2006-04-17 11:46:31 +02:00
Klaus Schmidinger
333c14f0c0 Added the UPDATE-1.4.0 file 2006-04-17 11:10:00 +02:00
Klaus Schmidinger
915af4efff Some comment cleanups 2006-04-17 11:00:00 +02:00
Klaus Schmidinger
7010c67945 Moved calling PluginManager.MainThreadHook() to the end of the main loop 2006-04-17 10:30:00 +02:00
Klaus Schmidinger
8433190d5a The new function cPlugin::MainThreadHook() can be used by plugins to perform actions in the context of the main program thread 2006-04-17 10:02:18 +02:00
Klaus Schmidinger
acf716f1ef The cRemote::CallPlugin() function now has a boolean return value that tells the caller whether initiating the plugin call was successful 2006-04-17 09:10:39 +02:00
Klaus Schmidinger
8c6deb20f2 No longer using characters 0x01 and 0x02 for mapping single quote and slash in recording names 2006-04-16 12:55:28 +02:00
Klaus Schmidinger
58facabfb6 Changed the behaviour of the "Use small font" setup option to *always* use the small font if set to '3' - even if it would have been a fixed font 2006-04-16 11:08:32 +02:00
Klaus Schmidinger
a320d4eedd Updated the INSTALL file's section about non-VDR files in the video directory 2006-04-16 10:50:08 +02:00
Klaus Schmidinger
53819a9aff Added format check to syslog_with_tid() 2006-04-16 10:43:22 +02:00
Klaus Schmidinger
1354141eab Now going into the "Edit timer" menu if a newly created timer starts soon 2006-04-16 10:29:48 +02:00
Klaus Schmidinger
73917abf60 Implemented APIVERSION for the VDR plugin API version number 2006-04-16 09:36:10 +02:00
Klaus Schmidinger
5dccc91c62 Added diff for removing DVBDIR from plugin Makefiles 2006-04-16 08:45:08 +02:00
Klaus Schmidinger
94c729a6fa The "Update channels" parameter in the "Setup/DVB" menu has been extended to allow updating only the PIDs 2006-04-15 14:18:25 +02:00
Klaus Schmidinger
50b77a6d4b Implemented kChanPrev 2006-04-15 13:56:03 +02:00
Klaus Schmidinger
4611af4339 Implemented kNext and kPrev keys 2006-04-15 13:46:55 +02:00
Klaus Schmidinger
12ea50fceb Removed DVBDIR from Makefile; it's now defined in Make.config if necessary 2006-04-15 12:39:35 +02:00
Klaus Schmidinger
b49df33917 Fixed setting the 'Delta' parameter when calling the shutdown script with no active timer 2006-04-15 11:33:34 +02:00
Klaus Schmidinger
4ba450b737 Implemented cPlugin::Active() 2006-04-15 11:18:36 +02:00
Klaus Schmidinger
3d8a9c9653 Updated the Danish OSD texts 2006-04-15 09:23:13 +02:00
Klaus Schmidinger
08fb5e2dbd The preferred audio language is now automatically selected when starting replay 2006-04-14 14:47:01 +02:00
Klaus Schmidinger
c9e0393d80 Fixed the vdr.1 man page (a single DVB card can record and do live tv) 2006-04-14 13:05:12 +02:00
Klaus Schmidinger
b7181930c8 Reintroduced the log message "deleting plugin: ..." when shutting down VDR 2006-04-14 11:51:13 +02:00
Klaus Schmidinger
6635a1d69e Added a missing "Key$" in skincurses.c 2006-04-14 11:36:41 +02:00
Klaus Schmidinger
f13959a9f2 Using geteuid() to check whether VDR is running as user 'root' 2006-04-14 11:04:20 +02:00
Klaus Schmidinger
f3feda52cd Added VBITeletextDescriptorTag, TeletextDescriptorTag, LocalTimeOffsetDescriptorTag and PremiereContentTransmissionDescriptor to 'libsi' 2006-04-14 10:59:03 +02:00
Klaus Schmidinger
90affbed35 Allowing a tolerance for symbol rate values that are off by one 2006-04-14 10:48:14 +02:00
Klaus Schmidinger
a27aafc74b Fixed setting time transponder to 0 2006-04-14 10:41:28 +02:00
Klaus Schmidinger
360a403f91 Fixed unnecessary Set() calls in cMenuEditIntItem::ProcessKey() 2006-04-14 10:40:12 +02:00
Klaus Schmidinger
2168d73400 Fixed the initial setting of the time transponder setup parameter 2006-04-14 10:26:46 +02:00
Klaus Schmidinger
b1dad5cb3c Removed the unnecessary 'value' member from cMenuEditItem 2006-04-14 10:02:43 +02:00
Klaus Schmidinger
a45c1c9a28 Added NULL checks to some strdup() calls in menuitems.c 2006-04-14 10:00:44 +02:00
Klaus Schmidinger
cb50726989 Fixed a crash when setting the time transponder in the Setup menu, caused by the new 'noneString' in cMenuEditChanItem 2006-04-14 09:53:46 +02:00
Klaus Schmidinger
c2448acaaa Updated the Finnish OSD texts 2006-04-14 09:46:32 +02:00
Klaus Schmidinger
753c1e1a7f Now checking whether there is any text before calling cStatus::MsgOsdTextItem() 2006-04-09 14:31:33 +02:00
Klaus Schmidinger
8c75fd1ead channels.conf 2006-04-09 14:25:00 +02:00
Klaus Schmidinger
ceafe62671 No longer calling cPlugin::ProcessArgs() if VDR is run with the --help or --version option 2006-04-09 14:21:30 +02:00
Klaus Schmidinger
a452010760 Changed the behaviour when hitting the end of a recording in fast forward mode 2006-04-09 13:57:39 +02:00
Klaus Schmidinger
765f8267a5 Changed Thomas Keil's email address 2006-04-09 13:32:05 +02:00
Klaus Schmidinger
87ba3ae558 The initial channel and volume can now be defined in the "Setup/Miscellaneous" menu 2006-04-09 13:26:56 +02:00
Klaus Schmidinger
e36da7ab8d Additional label strings for cMenuEditIntItem and cMenuEditChanItem 2006-04-09 12:05:05 +02:00
Klaus Schmidinger
060c3f3ddc Fixed handling the color button texts when switching from the 'Schedule' menu of a channel without EPG info to the 'What's on now' menu 2006-04-09 12:03:31 +02:00
Klaus Schmidinger
56d49abc22 cSkins::QueueMessage() called from a background thread with an empty message now clears all messages that have been previously queued by that thread 2006-04-09 11:28:59 +02:00
Klaus Schmidinger
2cd5bf83fb Fixed a typo in skins.h 2006-04-09 11:16:11 +02:00
Klaus Schmidinger
a6d5d36043 Now avoiding the 'actual' device when starting a recording, so that a Transfer Mode for live tv isn't interrupted 2006-04-09 10:47:53 +02:00
Klaus Schmidinger
bfce2b3dba Fixed VPS recording in case there is more than one timer in the VPS margin 2006-04-09 09:12:47 +02:00
Klaus Schmidinger
24b3579d14 VPS timers now record only events that have exactly the given start time 2006-04-01 13:27:14 +02:00
Klaus Schmidinger
6b968a6b27 Fixed handling the system time transponder setting in the Setup/EPG menu, which was broken by the min/max fix in cMenuEditIntItem 2006-04-01 09:12:38 +02:00
Klaus Schmidinger
daa9047247 Fixed learning keys when VDR is already running 2006-03-31 14:24:58 +02:00
Klaus Schmidinger
8c55ada0af Fixed 'sources.conf' and 'diseqc.conf' 2006-03-31 14:12:53 +02:00
Klaus Schmidinger
1b1935de0e Added a missing "Key$" in skinclassic.c 2006-03-31 14:02:06 +02:00
Klaus Schmidinger
359d43076a Added a missing "Button$" for the Timer button 2006-03-31 13:00:05 +02:00
Klaus Schmidinger
513b24ccd7 Fixed handling broken PMT records 2006-03-31 12:41:50 +02:00
Klaus Schmidinger
5f7e788ae8 Improved deleting expired single shot timers 2006-03-26 14:38:46 +02:00
Klaus Schmidinger
e789efcb96 channels.conf 2006-03-26 14:30:00 +02:00
Klaus Schmidinger
3dbd45235b Fixed some #include sequences 2006-03-26 14:12:08 +02:00
Klaus Schmidinger
5c90a6eba3 The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning for events before present event 2006-03-26 13:53:58 +02:00
Klaus Schmidinger
4546708841 Ignoring 'version' in EPG data when reading from 'epg.data' or SVDRP/PUTE 2006-03-26 13:45:17 +02:00
Klaus Schmidinger
22b60d9610 The new function cDevice::ForceTransferMode() can be used to force the primary device into transfer mode 2006-03-26 09:46:58 +02:00
Klaus Schmidinger
1fe46dfa9f Fixed format string handling 2006-03-26 09:27:30 +02:00
Klaus Schmidinger
8a3dae1e8b Enhanced logging EPG event data 2006-03-25 12:51:29 +01:00
Klaus Schmidinger
daaab1dfc8 Speeded up cRemux::ScanVideoPacket() 2006-03-25 12:29:04 +01:00
Klaus Schmidinger
172e3d6cd5 Made cMenuRecordings::GetRecording() 'protected' 2006-03-25 12:17:12 +01:00
Klaus Schmidinger
a4ee22ed85 Updated the Russian OSD texts 2006-03-25 11:57:43 +01:00
Klaus Schmidinger
a3405ded17 Fixed calling a plugin's main menu function while a message is being displayed 2006-03-25 11:53:25 +01:00
Klaus Schmidinger
3dd002cc2b Fixed getting the present EPG event in case none is currently 'running' 2006-03-25 11:43:05 +01:00
Klaus Schmidinger
51be693f62 Timer log messages now show "VPS" if this is a VPS timer 2006-03-25 11:41:24 +01:00
Klaus Schmidinger
c55be788f3 Fixed handling repeating VPS timers (they stopped recording too early) 2006-03-25 11:39:57 +01:00
Klaus Schmidinger
7bba79ef0a Fixed deleting recordings that have been removed externally when running out of disk space 2006-03-19 14:36:43 +01:00
Klaus Schmidinger
cf1941ca01 Only calling RemoveEmptyVideoDirectories() once in case a recording has been deleted 2006-03-19 14:12:57 +01:00
Klaus Schmidinger
7fb99e696f Fixed the shutdown timeout 2006-03-19 13:32:27 +01:00
Klaus Schmidinger
dc5df40aa3 Updated 'sources.conf' 2006-03-19 13:09:40 +01:00
Klaus Schmidinger
bcacfad057 Fixed cDvbDevice::SetAudioBypass() in case setTransferModeForDolbyDigital is false 2006-03-19 12:37:03 +01:00
Klaus Schmidinger
2eab16a310 Fixed cReadLine::Read() for lines that end with the infamous "\r\n" 2006-03-19 12:28:16 +01:00
Klaus Schmidinger
94afe13373 Removed the log message "deleting plugin: ..." when shutting down VDR 2006-02-28 14:23:10 +01:00
Klaus Schmidinger
457f5dd14c The status changes of EPG events are now logged for all channels that have timers 2006-02-28 14:00:28 +01:00
Klaus Schmidinger
9887c0765b cMenuEditIntItem now checks the given value and forces it to be between the given min and max limits 2006-02-28 12:54:38 +01:00
Klaus Schmidinger
085b1c4dda Reduced the number of events to actually check when setting events to timers 2006-02-28 12:44:00 +01:00
Klaus Schmidinger
c174de392b Fixed updating the "Info" button in the "Timers" menu 2006-02-28 12:36:52 +01:00
Klaus Schmidinger
58985f6dc1 Fixed cSchedule::GetFollowingEvent() in case there is currently no present event running 2006-02-26 15:10:02 +01:00
Klaus Schmidinger
46ad11bcf8 channels.conf 2006-02-26 15:00:00 +01:00
Klaus Schmidinger
1bb79d05b0 Added some missing comment 2006-02-26 14:45:05 +01:00
Klaus Schmidinger
3cd87d3c47 The DrawBitmap() function now has a new parameter 'Overlay' that allows a bitmap to be drawn with a transparent background 2006-02-26 14:43:00 +01:00
Klaus Schmidinger
c3f5c97ead The 'event id' in EPG data has been extended to 32 bit 2006-02-26 14:13:30 +01:00
Klaus Schmidinger
168348e7e4 Lines tagged with '#' in the 'info.vdr' file of a recording are now silently ignored when reading that file 2006-02-26 12:03:28 +01:00
Klaus Schmidinger
655b2297b9 There is now a log message "timer ... set to event ..." when defining a timer from the EPG menu 2006-02-26 10:52:51 +01:00
Klaus Schmidinger
9488c94133 Fixed setting events to timers in case a non-VPS event has expired 2006-02-26 10:25:59 +01:00
Klaus Schmidinger
450c7ef1af Parsing 'E' record when reading 'info.vdr' 2006-02-25 17:05:48 +01:00
Klaus Schmidinger
8dec381664 Improved setting events to timers 2006-02-25 15:57:56 +01:00
Klaus Schmidinger
8650649b18 Removed leftover cMenuTimers::Move() 2006-02-25 15:00:09 +01:00
Klaus Schmidinger
c631893066 In the "Timers" menu the blue key is now "Info" and the red key is "On/Off" 2006-02-25 14:39:29 +01:00
Klaus Schmidinger
9dc73da7f5 The option "Setup/OSD/Sort timers" has been removed 2006-02-25 14:17:56 +01:00
Klaus Schmidinger
40f4cef75e The 'info.vdr' file of a recording now also contains the 'E' and 'V' records of the EPG event 2006-02-25 12:39:23 +01:00
Klaus Schmidinger
7881effd9b Implemented cRecordingInfo::ChannelID() 2006-02-25 12:25:54 +01:00
Klaus Schmidinger
60e937f57b The upper 16 bit of a timer's "flags" are no longer treated specially when a timer is modified in the "Edit timer" menu 2006-02-25 12:22:02 +01:00
Klaus Schmidinger
bc2e59909f The 'summary' field of a timer definition has been renamed to 'aux' 2006-02-25 12:09:22 +01:00
Klaus Schmidinger
6b74723336 The "Ok" key in the "Jump" mode of the replay progress display now confirms the jump instead of closing the display 2006-02-25 10:29:37 +01:00
Klaus Schmidinger
6a0a6c15c0 Fixed the 'libsi' function CharArray::checkSize(), which made a previous workaround in libsi/descriptor.c obsolete 2006-02-25 10:21:29 +01:00
Klaus Schmidinger
39cefd4b27 Replaced some 'displayChannel->SetEvents(NULL, NULL)/DisplayChannel()' sequences with 'Refresh()' 2006-02-24 14:56:18 +01:00
Klaus Schmidinger
3d9654a22f Fixed removing the '-' when entering a channel number where there is no other one that fits the input 2006-02-24 14:55:20 +01:00
Klaus Schmidinger
f40a6e9b85 Fixed setting the audio language codes in 'Transfer-Mode' 2006-02-24 14:14:41 +01:00
Klaus Schmidinger
b4962e5217 Added a comment to tChannelID::nid, explaining that is is actually the "original" network id 2006-02-19 14:41:15 +01:00
Klaus Schmidinger
e37240fd63 channels.conf 2006-02-19 14:30:00 +01:00
Klaus Schmidinger
8186544e10 Fixed replaying recordings of radio channels with many audio tracks 2006-02-19 14:23:17 +01:00
Klaus Schmidinger
8409c68e44 Fixed handling DPID when deciding whether to switch to 'Transfer Mode' 2006-02-19 13:53:30 +01:00
Klaus Schmidinger
47519e0536 If a recording starts and the channel's audio PID data has more language code information than the EPG's component data, the code from the channel is taken 2006-02-19 13:27:51 +01:00
Klaus Schmidinger
1781a77e0b Fixed handling multiple language codes 2006-02-19 11:15:44 +01:00
Klaus Schmidinger
0d6ce369c6 When setting the audio track descriptions, the language codes are now also set in case this is a replay session 2006-02-19 10:18:28 +01:00
Klaus Schmidinger
b5bbfe0589 Externally provided EPG data (with table ID 0x00) now gets its component descriptors set from the broadcast data 2006-02-19 09:51:02 +01:00
Klaus Schmidinger
91a5940bc4 Generating 'X' audio component records for recording if there is no EPG data 2006-02-18 16:03:40 +01:00
Klaus Schmidinger
492f06175a The language code in the 'X' component records of EPG data can now consist of two codes, separated by '+' 2006-02-18 15:59:43 +01:00
Klaus Schmidinger
53f77ddded Now resetting the channel number if the number entered through the numeric keys exceeds the maximum channel number 2006-02-18 12:47:01 +01:00
Klaus Schmidinger
273d6c53a6 Made CharArray::DataOwnData::assign() in 'libsi' more robust against invalid data and changed CharArray::DataOwnData::Delete() so that it sets 'size' and 'data' to 0 2006-02-18 11:21:00 +01:00
Klaus Schmidinger
b8cdca858b Checking data size in CaDescriptor::Parse() and LinkageDescriptor::Parse() of 'libsi' to avoid crashes with invalid data 2006-02-18 11:08:55 +01:00
Klaus Schmidinger
5ed4504ce0 Changed offset and size handling in 'libsi' from 'unsigned' to 'signed', so that overflows can be better detected 2006-02-18 10:42:55 +01:00
Klaus Schmidinger
afebd4b2fb Fixed some typos in the CONTRIBUTORS file 2006-02-17 16:04:54 +01:00
Klaus Schmidinger
5db8309b87 The ST:TNG skin now uses the fixed font if requested when displaying texts 2006-02-17 15:58:31 +01:00
Klaus Schmidinger
10d3ad00ae cMenuText now uses the given font 2006-02-17 15:45:25 +01:00
Klaus Schmidinger
be2dbbd938 Now logging the description (if present) in case a thread is canceled 2006-02-12 12:26:06 +01:00
Klaus Schmidinger
0e22c9ff9e Improved OSD area handling in cDvbSpuDecoder 2006-02-12 11:52:53 +01:00
Klaus Schmidinger
23d7402c00 Now stopping scanning the video directory if there are too many levels of symbolic links 2006-02-12 11:46:44 +01:00
Klaus Schmidinger
c9b5fd6588 The "Back" key now restores the original string when pressed while editing a string item 2006-02-12 10:35:10 +01:00
Klaus Schmidinger
5820beed02 Removed an unnecessary toFile->SetReadAhead() from cutter.c 2006-02-12 10:08:52 +01:00
Klaus Schmidinger
c5a5f09845 Added cSkin::GetTextAreaWidth() and cSkin::GetTextAreaFont() 2006-02-05 15:09:51 +01:00
Klaus Schmidinger
36b720b1cf channels.conf 2006-02-05 14:45:00 +01:00
Klaus Schmidinger
7e4662f982 Fixed scrolling with Up/Down in case there are non-selectable items at the beginning or end of the menu 2006-02-05 14:38:56 +01:00
Klaus Schmidinger
7b97eb6e97 Made all font and image data 'const' 2006-02-05 13:55:58 +01:00
Klaus Schmidinger
978462168c Renamed the Makefile target 'plugins-clean' to 'clean-plugins' 2006-02-05 13:39:12 +01:00
Klaus Schmidinger
2a91ee0fef Fixed handling the "Blue" key in the "Schedule" menu for the current channel 2006-02-05 13:32:14 +01:00
Klaus Schmidinger
d13a7457bd Enabled generating a core dump if VDR is run with a different user id 2006-02-05 12:58:59 +01:00
Klaus Schmidinger
0de4b0b043 Fixed multiple entries of the same subdirectory in the "Recordings" menu 2006-02-05 12:39:37 +01:00
Klaus Schmidinger
204f4a322e Further improvements to cUnbufferedFile 2006-02-05 11:06:47 +01:00
Klaus Schmidinger
b6920cd2d8 The 'runvdr' script no longer uses the $VDRUSR environment variable 2006-02-04 15:26:13 +01:00
Klaus Schmidinger
d5c739790b Implemented cDevice::Transferring() 2006-02-04 14:58:24 +01:00
Klaus Schmidinger
8831fe304f Made FadviseDrop() private 2006-02-04 14:21:08 +01:00
Klaus Schmidinger
dc4a1bca2e Fixed a missing ',' in the Swedish OSD texts 2006-02-04 14:19:46 +01:00
Klaus Schmidinger
116abbe05e Improved cUnbufferedFile 2006-02-04 14:12:17 +01:00
Klaus Schmidinger
c712027520 Fixed handling the "Setup/OSD/Menu button closes" option when set to 'yes' in case a replay is active 2006-02-04 13:03:03 +01:00
Klaus Schmidinger
cbd32dd914 Fixed auto advance in string entry fields when pressing Up/Down in insert mode 2006-02-04 12:50:11 +01:00
Klaus Schmidinger
0d6368ad4a Updated the Polish OSD texts 2006-02-04 11:01:25 +01:00
Klaus Schmidinger
ba17fe565e Added Czech language texts 2006-02-04 10:51:41 +01:00
Klaus Schmidinger
5fdc421a10 Added an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier process the audio data 2006-02-04 10:24:43 +01:00
Klaus Schmidinger
f0741c95c0 Speeded up cVideoRepacker 2006-02-03 16:20:14 +01:00
Klaus Schmidinger
5cd7945ab5 Fixed handling "pending" timers that blocked others that actually could record 2006-02-03 15:25:51 +01:00
Klaus Schmidinger
881c251bea Fixed channel up/down switching on single card systems 2006-02-03 13:27:40 +01:00
Klaus Schmidinger
dd7621f259 Fixed setting "No title" for broken event data 2006-02-03 13:19:15 +01:00
Klaus Schmidinger
e34ddc507d Removed leftover 'needsBufferReserve' variable from cTransfer 2006-01-29 17:26:38 +01:00
Klaus Schmidinger
913814a500 Separated the 'install' target into several individual targets; renamed the 'plugins-install' target to 'install-plugins' 2006-01-29 14:57:13 +01:00
Klaus Schmidinger
74b2f97c8a channels.conf 2006-01-29 14:45:00 +01:00
Klaus Schmidinger
07ba731503 If a shutdown is requested, but the shutdown script doesn't actually halt the system, it is now tried again after 5 minutes 2006-01-29 14:37:43 +01:00
Klaus Schmidinger
6078b31aab Now initializing the channels' schedule pointers when reading the epg.data file, so that the first WhatsOn menu will come up faster 2006-01-29 14:17:33 +01:00
Klaus Schmidinger
ea9a7eebd1 When looking for the present or following EPG event, the running status is now always taken into account 2006-01-29 14:04:37 +01:00
Klaus Schmidinger
778a6b47ca Dropped logging writing epg.data (comes too often) 2006-01-29 13:00:39 +01:00
Klaus Schmidinger
1a4526a3df Implemented a timeout for remote controls that don't deliver "repeat" keypresses very fast 2006-01-29 12:39:04 +01:00
Klaus Schmidinger
251e04d25a When reading epg.data (or data from PUTE), the version number of events with table IDs smaller than 0x50 is now ignored 2006-01-29 11:31:58 +01:00
Klaus Schmidinger
f03ed68807 Fixed displaying the current audio track in the channel display 2006-01-29 11:15:08 +01:00
Klaus Schmidinger
e93ff79da8 Changed DVBS_TUNE_TIMEOUT and DVBC_TUNE_TIMEOUT to 9000ms to avoid problems with channels that have low symbol rates 2006-01-28 15:39:23 +01:00
Klaus Schmidinger
a0f12dbc79 Fixed cTimers::GetNextActiveTimer() so that it won't return an expired timer 2006-01-28 15:10:27 +01:00
Klaus Schmidinger
b395bd614a There is now a log message when VDR writes the epg.data file 2006-01-28 14:45:24 +01:00
Klaus Schmidinger
8363901665 The epg.data file is now written when VDR exits 2006-01-28 14:44:32 +01:00
Klaus Schmidinger
5e623525e9 Removed the "buffer reserve" in Transfer Mode - it's no longer necessary with recent driver/firmware versions 2006-01-28 14:25:06 +01:00
Klaus Schmidinger
1530b5647b Increased the timeout in cInterface::GetKey() to avoid problems with remote controls that don't deliver "repeat" keypresses very fast 2006-01-28 12:48:33 +01:00
Klaus Schmidinger
759a45d508 Fixed channel switching with the Down (Up) key in case the current channel is already the first (last) in the list 2006-01-28 12:43:26 +01:00
Klaus Schmidinger
a919e02de6 Fixed some typos 2006-01-28 11:34:35 +01:00
Klaus Schmidinger
e101bc5658 Updated the Finnish OSD texts 2006-01-28 10:39:15 +01:00
Klaus Schmidinger
b0678c91ab Now trying to reestablish the connection to the LIRC daemon in case it breaks 2006-01-27 16:03:32 +01:00
Klaus Schmidinger
7398125f31 Now checking whether the channel exists before setting the PMT filter in cPatFilter::Process() 2006-01-27 15:53:08 +01:00
Klaus Schmidinger
8ab2383e18 Fixed handling the tfRecording flag when reading timers 2006-01-27 15:41:41 +01:00
Klaus Schmidinger
dd155f2aaf Updated the Estonian OSD texts 2006-01-27 14:25:39 +01:00
Klaus Schmidinger
533a3f26f9 Fixed a missing ',' in the Greek OSD texts 2006-01-27 14:23:27 +01:00
Klaus Schmidinger
136c8b57a2 Updated the Danish OSD texts 2006-01-27 14:17:56 +01:00
Klaus Schmidinger
aebc766ee7 Fixed a crash when pressing '0' in the "Schedule" menu on a channel that doesn't have any EPG data 2006-01-27 14:11:25 +01:00
Klaus Schmidinger
3c8faf1b8d Fixed checking toFile in cCuttingThread::Action() 2006-01-27 13:47:08 +01:00
Klaus Schmidinger
2f9af1b549 EPG events from epg.data or SVDRP's PUTE command now have their Title set to "No Title" if none was set 2006-01-27 13:42:10 +01:00
Klaus Schmidinger
48c8da8d15 Fixed handling the '0' key for switching between the last two channels 2006-01-22 16:10:35 +01:00
Klaus Schmidinger
1f2574fb12 Fixed detecting channel switches from SVDRP 2006-01-22 16:06:39 +01:00
Klaus Schmidinger
359d7c376a channels.conf 2006-01-22 16:05:00 +01:00
Klaus Schmidinger
4d0a37e7ae Updated the Spanish OSD texts 2006-01-22 15:56:37 +01:00
Klaus Schmidinger
89af89af10 Re-inserted initial lastTime.Set() calls 2006-01-22 14:49:54 +01:00
Klaus Schmidinger
9443b6999e Fixed detecting if there can be any useful further input when entering channel numbers 2006-01-22 14:38:54 +01:00
Klaus Schmidinger
6cd9124d08 Improved channel switching when repeat function kicks in; updating channel display before switching channel; added a missing initialization of 'timeout' in the cDisplayChannel constructor 2006-01-22 14:27:53 +01:00
Klaus Schmidinger
ac9f4bb48f Disabled the "buffer reserve" in Transfer Mode 2006-01-21 14:24:52 +01:00
Klaus Schmidinger
610703ca96 Updated the Polish OSD texts and the fontosd-iso8859-2.c file 2006-01-21 12:36:36 +01:00
Klaus Schmidinger
b2989899c0 When entering text via the numeric keys, the cursor now automatically advances 2006-01-21 12:27:14 +01:00
Klaus Schmidinger
d1668d768c Only calling AssertFreeDiskSpace() with 'Force' if timer is not pending 2006-01-21 10:02:19 +01:00
Klaus Schmidinger
611656bf46 Added AssertFreeDiskSpace() before starting a timer recording 2006-01-20 17:19:46 +01:00
Klaus Schmidinger
9038f45a0d Recordings are now only started if there is at least 300MB free disk space 2006-01-20 16:34:56 +01:00
Klaus Schmidinger
9e1b89ec5c Updated the Estonian OSD texts 2006-01-20 14:34:45 +01:00
Klaus Schmidinger
837f5e2ea9 Fixed a crash in the Schedule menu with events that have no title (cEvent::FixEpgBugs() now assigns a "No title" string to events that have no title) 2006-01-20 14:15:27 +01:00
Klaus Schmidinger
c60129ed78 Improved NULL checking in strreplace() 2006-01-20 14:02:17 +01:00
Klaus Schmidinger
ed9b548d6e Updated the Finnish OSD texts 2006-01-20 13:55:08 +01:00
Klaus Schmidinger
cd09f7a0df Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule' pointers from cChannel objects 2006-01-20 13:42:38 +01:00
Klaus Schmidinger
ef385702d0 Fixed a problem with @plugin in keymacros.conf in case the named plugin is not loaded 2006-01-20 13:19:35 +01:00
Klaus Schmidinger
29501203f7 Modified logging so that even on NPTL systems each line in the log file shows the individual thread's pid 2006-01-15 16:42:37 +01:00
Klaus Schmidinger
a321947e47 Fixed a second place where a message should be given when an instant recording is started 2006-01-15 16:04:05 +01:00
Klaus Schmidinger
806a7f6768 No longer displaying color buttons in the recording info menu if it has been invoked from a player 2006-01-15 15:06:19 +01:00
Klaus Schmidinger
408966aa0a channels.conf 2006-01-15 15:00:00 +01:00
Klaus Schmidinger
709caf59b2 Added 0x5B to more-byte sequence detection 2006-01-15 15:00:00 +01:00
Klaus Schmidinger
0676448937 Added a leading '0' to the day in the DayDateTime() function 2006-01-15 14:35:14 +01:00
Klaus Schmidinger
dda33ecb04 Now only writing Dolby Digital tracks into the 'info.vdr' file of a recording if Setup.UseDolbyDigital is true 2006-01-15 14:01:19 +01:00
Klaus Schmidinger
cad1a88a7b The status markers in the "Schedule" menu are now only updated if a submenu is closed in which a timer has been modified 2006-01-15 13:44:55 +01:00
Klaus Schmidinger
197b8c27fa Implemented '0' key function in the "Schedule" menu 2006-01-15 13:09:16 +01:00
Klaus Schmidinger
1de5335922 The SVDRP command GRAB allows file names without extension again 2006-01-14 16:12:13 +01:00
Klaus Schmidinger
dea4bf298a Made the log messages regarding lost lock of devices "info" instead of "error" 2006-01-14 16:04:36 +01:00
Klaus Schmidinger
cd43adac92 Made the "What's on now/next?" menus a lot faster by storing a pointer to each channel's schedule in the cChannel data 2006-01-14 15:52:40 +01:00
Klaus Schmidinger
0ef577f43a Added a missing '-' to the example for viewing a grabbed image on a remote host 2006-01-14 11:49:42 +01:00
Klaus Schmidinger
8763908621 Fixed canonicalizing the file name in the SVDRP command GRAB to allow full path names 2006-01-14 11:45:43 +01:00
Klaus Schmidinger
7962576727 Added a note about "modprobe capability" to INSTALL 2006-01-14 11:30:12 +01:00
Klaus Schmidinger
ee28d49598 Added missing description of L and R circular polarization to 'diseqc.conf' 2006-01-14 11:15:33 +01:00
Klaus Schmidinger
232eecd4b9 Removed the now obsolete "ca.conf" section from vdr.1 2006-01-14 11:10:24 +01:00
Klaus Schmidinger
1b9f7fd886 Adjusted the "KEY MACROS" section of vdr.5 to the new plugin calling mechanism introduced in version 1.3.32 2006-01-14 11:04:37 +01:00
Klaus Schmidinger
9efe1f9479 Key macros can now be defined for all non-modeless keys 2006-01-14 10:54:13 +01:00
Klaus Schmidinger
def74b48c4 Added missing default key macro description for "Yellow" 2006-01-14 10:15:39 +01:00
Klaus Schmidinger
75ae953e13 Added a missing comma 2006-01-13 16:24:07 +01:00
Klaus Schmidinger
b11dcb15de Dropped the default vdr user 2006-01-13 16:16:32 +01:00
Klaus Schmidinger
317b15f5a0 Implemented the option "Setup/OSD/Menu button closes" 2006-01-13 15:45:02 +01:00
Klaus Schmidinger
ff88f3bfed Updated the Finnish OSD texts 2006-01-13 15:02:54 +01:00
Klaus Schmidinger
3c855f0bea Added missing i18n entry for the "Timer" button 2006-01-13 14:58:37 +01:00
Klaus Schmidinger
d894c55215 Updated contact info for ZDF 2006-01-09 22:06:52 +01:00
Klaus Schmidinger
f415169064 Skipping all SetCaps() and SetUser() calls when it is started as 'root' and "-u root" is given 2006-01-09 16:54:35 +01:00
Klaus Schmidinger
df65f4a2f1 Fixed handling "more than 3 byte" key sequences in cKbdRemote::ReadKeySequence() 2006-01-08 17:17:20 +01:00
Klaus Schmidinger
227034f8e6 Fixed the "plugins-clean" and "plugins-install" targets in the Makefile 2006-01-08 16:14:12 +01:00
Klaus Schmidinger
f38b7871ad Added a missing #include <linux/unistd.h> to thread.c 2006-01-08 16:05:23 +01:00
Klaus Schmidinger
f993ff108b The SVDRP command LSTT now accepts the new option 'id' 2006-01-08 13:33:57 +01:00
Klaus Schmidinger
419f3ab5f7 Removed obsolete "scanning recordings..." text 2006-01-08 11:58:26 +01:00
Klaus Schmidinger
e39f8b9ffb Adjusted release date and version number 2006-01-08 11:53:08 +01:00
Klaus Schmidinger
3e47a9cdbc Updated copyright date 2006-01-08 11:49:03 +01:00
Klaus Schmidinger
2d863532cc Cleaned up some trailing white space 2006-01-08 11:44:37 +01:00
Klaus Schmidinger
dcda6676b3 channels.conf 2006-01-08 11:08:44 +01:00
Klaus Schmidinger
4016a630be Added a SleepMs() in cRecorder::Action() to avoid a busy loop 2006-01-08 11:03:44 +01:00
Klaus Schmidinger
3a5c65e594 Fixed a typo 2006-01-08 10:21:32 +01:00
Klaus Schmidinger
b464dc407d Added a mutex to synchronize cDevice::PlayPesPacket() and SetCurrentAudioTrack() 2006-01-08 10:13:38 +01:00
Klaus Schmidinger
f7bf9b4090 Preceded all button texts with "Button$"; Removed obsolete "Eject" and "Language" texts 2006-01-07 15:54:10 +01:00
Klaus Schmidinger
e8ee9a1c4b Adapted c(Dvb)Device::ProvidesCa() to the dynamic CA handling 2006-01-07 15:16:09 +01:00
Klaus Schmidinger
e0d5ebf8fd The file 'ca.conf' is obsolete and has been removed; revised all descriptions regarding CICAM 2006-01-07 14:10:17 +01:00
Klaus Schmidinger
2e0a3f273a Fixed the "Day" field of the "Edit timer" menu when pressing '0' to switch from "single shot" to "weekly", followed by the "Right" key 2006-01-07 11:24:08 +01:00
Klaus Schmidinger
9bbd68f357 Implemented letter input via numeric keys (Easy 2006-01-06 16:57:41 +01:00
Klaus Schmidinger
72e93b614b The "flags" of a timer are now handled as an unsigned integer value 2006-01-06 14:31:57 +01:00
Klaus Schmidinger
16f037e3c2 Any cReceivers still attached to a cDevice when that device switches to a different transponder are now automatically detached 2006-01-06 13:55:57 +01:00
Klaus Schmidinger
e87e649991 Fixed a typo 2006-01-06 12:56:44 +01:00
Klaus Schmidinger
700b88bc4d Implemented the "Info" key 2006-01-06 12:53:28 +01:00
Klaus Schmidinger
c0f1fc817e The default cOsdObject::Show() now automatically calls cOsdMenu::Display() if this is a menu 2006-01-05 15:35:06 +01:00
Klaus Schmidinger
526c94f017 Improved tuner timeout handling (cont'd) 2006-01-05 15:30:06 +01:00
Klaus Schmidinger
01bbd53fa1 The "Mark/Move" function in the "Channels" menu now also works in the non-numeric sort modes 2006-01-05 15:11:04 +01:00
Klaus Schmidinger
4ddd5fa944 Fixed initial channel display if Setup.TimeoutRequChInfo is 'no' 2006-01-05 13:54:04 +01:00
Klaus Schmidinger
739fcc7aff In the "Channels" menu the numeric keys now position the cursor to the channel with the given number 2006-01-05 13:43:07 +01:00
Klaus Schmidinger
02ae3e98d4 Removed unused 'offset' member from cOsdItem 2006-01-05 12:42:11 +01:00
Klaus Schmidinger
bc269db4fc Disabled the use of fadvise in cUnbufferedFile because there have been several reports that it causes more problems than it solves 2006-01-05 11:32:32 +01:00
Klaus Schmidinger
645170db0a Added missing #include "thread.h" to dvbspu.c 2006-01-05 10:19:30 +01:00
Klaus Schmidinger
69f125e705 Fixed entry for "Sky Two" 2006-01-04 21:07:12 +01:00
Klaus Schmidinger
d5d97c3d18 Removed an obsolete "Summary" text from i18n.c and preceded all key definition texts with "Key$" to avoid duplicates 2006-01-04 15:51:03 +01:00
Klaus Schmidinger
a4ed08b37a A message is now given when an instant recording is started 2006-01-04 15:21:55 +01:00
Klaus Schmidinger
951b3509ea Using the thread id in the "thread ... won't end" error message 2006-01-04 15:01:22 +01:00
Klaus Schmidinger
5821c26c5e Implemented "Setup/OSD/Timeout requested channel info" 2006-01-04 14:45:23 +01:00
Klaus Schmidinger
b1836290c9 The "Menu" key now behaves consistently 2006-01-04 13:22:53 +01:00
Klaus Schmidinger
fa0af7065e Now using FE_READ_STATUS to read the current frontend status 2006-01-04 11:48:38 +01:00
Klaus Schmidinger
a94f6a8443 Added an example for a remote GRAB and display command 2006-01-03 17:04:47 +01:00
Klaus Schmidinger
1f44f9adc2 Added cMenuEditStrItem::InEditMode() 2006-01-03 12:50:58 +01:00
Klaus Schmidinger
a9eed7bb7c Added cTimer::SetPriority() to set a timer's priority 2006-01-03 11:46:57 +01:00
Klaus Schmidinger
f00372190d Changed DELETEDLIFETIME to 300 2006-01-03 11:39:48 +01:00
Klaus Schmidinger
e9e8241d0d Fixed handling TS packets in cTS2PES 2006-01-03 11:00:38 +01:00
Klaus Schmidinger
fb641c9149 Improved tuner timeout handling 2006-01-03 10:42:47 +01:00
Klaus Schmidinger
c01259dbb5 Fixed setting the main thread id if VDR is running as a daemon 2006-01-03 10:20:41 +01:00
Klaus Schmidinger
86197f0206 The cTimer constructor can now take an optional cChannel 2006-01-01 15:44:29 +01:00
Klaus Schmidinger
76e7a59f69 The Makefile now reports a summary of failed plugins 2006-01-01 15:14:06 +01:00
Klaus Schmidinger
f50844d733 Fixed incrementing the 'state' variables in the repacker classes in remux.c to avoid warnings with g++ 4.1.0 2006-01-01 15:06:02 +01:00
Klaus Schmidinger
dbc2abadd8 Fixed initializing pthread_mutexattr_t and pthread_rwlockattr_t to avoid warnings with g++ 4.1.0 2006-01-01 14:53:03 +01:00
Klaus Schmidinger
7d84ddefb3 Made the static cControl functions thread safe 2006-01-01 14:46:24 +01:00
Klaus Schmidinger
fef0b70bb1 Removed unused variables in skinclassic.c and skinsttng.c 2006-01-01 14:40:09 +01:00
Klaus Schmidinger
26cb900ddf Fixed handling multi byte key sequences in cKbdRemote 2006-01-01 14:28:47 +01:00
Klaus Schmidinger
06b2245bcd The DVB devices now retune (and, if applicable, resend the DiSEqC data) if the lock is lost 2006-01-01 12:22:18 +01:00
Klaus Schmidinger
0e6296699e Changed the API of the functions cStatus::Recording() and cStatus::Replaying(), so that they can provide the full file name of the recording 2005-12-31 15:20:19 +01:00
Klaus Schmidinger
89df449715 When started as user 'root' VDR now switches to a lesser privileged user id, keeping the capability to set the system time 2005-12-31 13:30:11 +01:00
Klaus Schmidinger
c65133979f Changed all "illegal" to "invalid" in error messages 2005-12-30 15:43:21 +01:00
Klaus Schmidinger
54af5518e4 Updated the Greek OSD texts 2005-12-30 15:31:57 +01:00
Klaus Schmidinger
3f21bf20c5 New option '-g'; fixed security hole CAN-2005-0071 when grabbing to file 2005-12-30 15:11:16 +01:00
Klaus Schmidinger
924827fcbe Refined cBase64Encoder description 2005-12-30 11:27:23 +01:00
Klaus Schmidinger
12b4f37ca3 The SVDRP command GRAB now optionally writes the image data to the SVDRP connection (encoded in base64) 2005-12-30 10:27:23 +01:00
Klaus Schmidinger
61fefd00bf Implemented cBase64Encoder 2005-12-29 16:02:37 +01:00
Klaus Schmidinger
cb428520e6 cDevice::GrabImage() now returns a pointer to the image in memory; cDevice::GrabImageFile() grabs the image to a file 2005-12-29 14:51:59 +01:00
Klaus Schmidinger
5f7df33b1c The SVDRP command GRAB now determines the image type from the extension of the given file name 2005-12-29 12:18:27 +01:00
Klaus Schmidinger
aa64d64d90 Converting a grabbed image to JPEG is now done with the new function RgbToJpeg() 2005-12-29 11:24:02 +01:00
Klaus Schmidinger
d877846cc9 Dropped the unused "Stop recording on primary interface" stuff 2005-12-28 12:36:27 +01:00
Klaus Schmidinger
bf4655197d Revoked the check for low symbol rates on FF cards (some actually can do this) 2005-12-28 12:28:37 +01:00
Klaus Schmidinger
fbddcb2fd6 Removing deleted recordings is now done in a separate thread 2005-12-28 12:21:57 +01:00
Klaus Schmidinger
967d9b0b03 Fixed finding the actual timer for Record/Timer button 2005-12-28 11:35:33 +01:00
Klaus Schmidinger
0795050f6d Modified red button handling in the "Schedule" menu 2005-12-27 15:06:26 +01:00
Klaus Schmidinger
1314d03411 cTimer no longer has its own 'schedule' member 2005-12-27 14:39:14 +01:00
Klaus Schmidinger
0b3d9a95fd The "Schedules" and "What's on now/next?" menus are now updated if a timer is set or modified 2005-12-27 11:27:38 +01:00
Klaus Schmidinger
2892300d94 Improved cSchedule::DropOutdated() 2005-12-27 10:26:38 +01:00
Klaus Schmidinger
e79df5ee06 Forcing main menu update if a submenu was closed 2005-12-26 15:44:27 +01:00
Klaus Schmidinger
1e121f6eed Schedules are now cleaned up once every hour (not only at 05:00) 2005-12-26 15:10:27 +01:00
Klaus Schmidinger
2d5f3497bf Modified cSchedule::Cleanup() (events are always sorted by time) 2005-12-26 15:09:21 +01:00
Klaus Schmidinger
56f4907309 Removed an invalid access to Event->schedule in cSchedule::DelEvent() 2005-12-26 14:48:46 +01:00
Klaus Schmidinger
ad55230051 EPG events that are no longer in the currently broadcasted data stream are now automatically deleted 2005-12-26 14:44:28 +01:00
Klaus Schmidinger
f94046db2e The version number of EPG events is now also stored in the epg.data file 2005-12-25 11:13:33 +01:00
Klaus Schmidinger
186a3213d0 The main menu now dynamically updates its contents 2005-12-24 15:53:53 +01:00
Klaus Schmidinger
60d56fceb9 Fixed a crash in removing recordings 2005-12-18 13:38:30 +01:00
Klaus Schmidinger
587ea30ab4 Added a mutex to AssertFreeDiskSpace() to make sure calls from foreground and background threads won't interfere 2005-12-18 13:10:52 +01:00
Klaus Schmidinger
7a0af2292c Fixed handling OSD areas that have invalid sizes 2005-12-18 12:58:31 +01:00
Klaus Schmidinger
df13d22c6c Fixed a possible crash when displaying the "Low disk space!" message from a background thread 2005-12-18 12:43:17 +01:00
Klaus Schmidinger
78990eb188 Now avoiding unnecessary disk access when checking if there are deleted recordings that need to be removed; fixed handling the DELETEDLIFETIME 2005-12-18 12:14:11 +01:00
Klaus Schmidinger
579719a7f2 When displaying the amount of free disk space, the space consumed by "deleted" recordings is now taken into account 2005-12-18 10:41:26 +01:00
Klaus Schmidinger
db35165e25 Fixed the RCU remote control handling to avoid problems with NPTL 2005-12-16 14:53:58 +01:00
Klaus Schmidinger
72759ed131 Now using the gettid() syscall to get a thread's pid, so that we get a useful value on NPTL systems 2005-12-11 12:10:28 +01:00
Klaus Schmidinger
506b0de497 Fixed using MIN_LOG_INTERVAL 2005-12-04 13:56:50 +01:00
Klaus Schmidinger
dbb09c5ba1 Limited the frequency of log messages from the cRepackers 2005-12-03 15:01:01 +01:00
Klaus Schmidinger
48902e885f Now checking the channel's symbol rate in order to avoid problems on full featured DVB cards with symbol rates below 10000 2005-12-03 13:50:19 +01:00
Klaus Schmidinger
922649037f Improved TS/PES conversion to better handle lost TS packets 2005-12-03 12:18:15 +01:00
Klaus Schmidinger
2a379aaf7f Added some comments 2005-12-03 11:59:05 +01:00
Klaus Schmidinger
e3dd163461 Fixed handling second audio and Dolby Digital PIDs for encrypted channels (was broken in version 1.3.37) 2005-12-03 11:51:05 +01:00
Klaus Schmidinger
41f718987d Implemented message queueing 2005-11-27 15:57:03 +01:00
Klaus Schmidinger
074de78f04 channels.conf 2005-11-27 15:10:00 +01:00
Klaus Schmidinger
22c5a38364 Added a copy constructor to cString and fixed its assignment operator 2005-11-26 14:16:02 +01:00
Klaus Schmidinger
71ccb6acb6 Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 2005-11-26 13:55:38 +01:00
Klaus Schmidinger
3a97be4fe9 Implemented handling of the "CA PMT Reply" for CAMs; some preparations for being able to record several encrypted channels from the same transponder 2005-11-26 13:39:47 +01:00
Klaus Schmidinger
2fecf43be9 Removed a faulty lock advice 2005-11-13 16:23:58 +01:00
Klaus Schmidinger
2cae2ed28c Modified switching to Dolby Digital audio in live mode 2005-11-11 16:13:19 +01:00
Klaus Schmidinger
609a4cd6cf No longer removing superfluous hyphens in EPG data 2005-11-11 13:38:45 +01:00
Klaus Schmidinger
13e925c3f4 Fixed initializing the day index when editing the weekday parameter of a repeating timer 2005-11-11 13:31:02 +01:00
Klaus Schmidinger
a311ea003e Added compiler options "-fPIC -g" to all plugins 2005-11-11 13:22:02 +01:00
Klaus Schmidinger
d563468aec Fixed a typo 2005-11-06 15:35:01 +01:00
Klaus Schmidinger
40336edc2a Removed EPG bugfix #0, because it removed actually important data 2005-11-06 10:34:13 +01:00
Klaus Schmidinger
e67fe0983d channels.conf 2005-11-06 10:20:00 +01:00
Klaus Schmidinger
ff64419396 Fixed setting the help key display in the Recordings menu in case of several layers of subdirectories 2005-11-06 09:44:58 +01:00
Klaus Schmidinger
27ab07e80d The EPG scan no longer disturbs players that have also set live PIDs 2005-11-05 15:48:05 +01:00
Klaus Schmidinger
596e965a53 Fixed a race condition in the SPU decoder 2005-11-05 12:12:18 +01:00
Klaus Schmidinger
9607fd33a0 cSVDRP now dynamically allocates its command buffer 2005-11-05 11:21:38 +01:00
Klaus Schmidinger
92af12daac cReadLine now dynamically allocates its buffer; changed cConfig::Load() to use cReadLine instead of a fixed buffer 2005-11-04 17:18:33 +01:00
Klaus Schmidinger
903e929a85 Updated the Dutch OSD texts 2005-11-04 14:39:01 +01:00
Klaus Schmidinger
259ed3055e Fixed a memory leak in cString::operator=() 2005-11-04 14:27:51 +01:00
Klaus Schmidinger
fdfcfc021b Fixed missing '&' in the SetAreas() example in PLUGINS.html 2005-11-04 14:25:00 +01:00
Klaus Schmidinger
52f17c043b Removed '\n' from several syslog() calls 2005-11-04 14:22:04 +01:00
Klaus Schmidinger
159c7e283d A menu is no longer automatically closed when a replay ends 2005-11-04 13:52:31 +01:00
Klaus Schmidinger
23ee5bb4da Fixed a NULL pointer access with the cUnbufferedFile when a replay session runs all the way until the end of the recording 2005-11-04 13:19:49 +01:00
Klaus Schmidinger
697261c981 The new class cUnbufferedFile is used for the recording files to avoid thrashing the file system cache 2005-10-31 13:14:26 +01:00
Klaus Schmidinger
998e3bd2c7 channels.conf 2005-10-31 11:00:00 +01:00
Klaus Schmidinger
ccea93eb11 Fixed the cFilter example in PLUGINS.html 2005-10-30 14:06:40 +01:00
Klaus Schmidinger
cffc2595ac Updated the French OSD texts 2005-10-30 13:39:26 +01:00
Klaus Schmidinger
6fc1de063e Updated the Greek OSD texts 2005-10-30 13:26:17 +01:00
Klaus Schmidinger
6e982f765e Fixed lock handling in CAM communication to avoid problems with multiple CAMs per device or CAMs with more than one smart card 2005-10-30 13:21:23 +01:00
Klaus Schmidinger
3c59953017 Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() 2005-10-30 10:27:24 +01:00
Klaus Schmidinger
64c2b3b0de Updated the Estonian OSD texts 2005-10-14 13:21:09 +02:00
Klaus Schmidinger
96ccd4a16a Updated the Danish OSD texts 2005-10-14 13:17:00 +02:00
Klaus Schmidinger
53e840af50 Added more error messages and line numbers when reading EPG data and info.vdr 2005-10-09 13:13:36 +02:00
Klaus Schmidinger
bf779b3bfe Fixed a leftover 'summary.vdr' in vdr.1 2005-10-09 12:31:52 +02:00
Klaus Schmidinger
fdf54512ba Updated the Finnish OSD texts 2005-10-09 11:23:18 +02:00
Klaus Schmidinger
325163c0ef Added '__attribute__' to functions that use printf() like parameters 2005-10-09 11:14:14 +02:00
Klaus Schmidinger
22ee421be9 Making sure no item is displayed as "current" if Up, Down, Left or Right is pressed in a menu with no selectable items 2005-10-09 11:00:50 +02:00
Klaus Schmidinger
ccaa4e961e Fixed a possible endless loop in a menu with no selectable items if Setup.MenuScrollWrap is true 2005-10-09 10:45:48 +02:00
Klaus Schmidinger
6a8e2a99cb Now using daemon() instead of fork() to run VDR in daemon mode 2005-10-09 10:05:21 +02:00
Klaus Schmidinger
e83482945d Updated 'sources.conf' 2005-10-08 08:49:57 +02:00
Klaus Schmidinger
7346a03094 Improved the CAM enquiry menu (cont'd) 2005-10-03 13:00:00 +02:00
Klaus Schmidinger
5956f7eeec The CAM enquiry menu now aborts if Menu is pressed 2005-10-03 12:58:22 +02:00
Klaus Schmidinger
876ad5d5f6 Fixed a crash with automatically closing CAM menus 2005-10-03 12:48:13 +02:00
Klaus Schmidinger
b724e950d8 Improved the CAM enquiry menu 2005-10-03 12:27:15 +02:00
Klaus Schmidinger
adf99fb3e8 channels.conf 2005-10-03 12:20:00 +02:00
Klaus Schmidinger
4acbc0fd47 The 'sub-title' and 'bottom text' in the CAM menu can now consist of several lines 2005-10-03 11:26:07 +02:00
Klaus Schmidinger
c03de9e15e The character 0x8A in CAM menu strings is now mapped to a real newline 2005-10-03 10:32:51 +02:00
Klaus Schmidinger
1728fccfe2 Skipping blanks at the beginning of CAM menu strings 2005-10-02 15:06:07 +02:00
Klaus Schmidinger
2cc029066b Fixed handling of menus with no selectable items 2005-10-02 15:04:34 +02:00
Klaus Schmidinger
d808293a06 Quoting CAM menu texts to see blanks in logfile 2005-10-02 14:50:44 +02:00
Klaus Schmidinger
11be63aa2c Added status message "Opening CAM menu... for an immediate feedback when the CAM menu has been requested; speeded up initial opening of the CAM menu 2005-10-02 14:43:56 +02:00
Klaus Schmidinger
969cd51b68 Reduced MAX_CONNECT_RETRIES in ci.c to 2 2005-10-02 14:10:51 +02:00
Klaus Schmidinger
8365632b3f The CAM menu is now completely closed when pressing the Menu key while inside a sub menu 2005-10-02 13:54:34 +02:00
Klaus Schmidinger
283a6f83f9 Now skipping some funny characters sent by some CAMs at the beginning of strings 2005-10-02 13:13:31 +02:00
Klaus Schmidinger
2fc075f5f9 The CAM menu now automatically updates itself in case of a progress display 2005-10-02 12:59:53 +02:00
Klaus Schmidinger
8302d81af2 Added status message "Resetting CAM..." for an immediate feedback when the CAM reset has been triggered 2005-10-02 10:20:19 +02:00
Klaus Schmidinger
23aa374e3d Improved displaying 'sub-title' and 'bottom text' in the CAM menu 2005-10-02 09:59:30 +02:00
Klaus Schmidinger
704e17859f Fixed setting current menu item if the first one is non-selectable; cOsdItem::cOsdItem() now has a 'Selectable' parameter 2005-10-02 09:57:52 +02:00
Klaus Schmidinger
ba24e93d82 Added a check against MAXOSDAREAS in cOsd::CanHandleAreas() 2005-10-02 08:49:36 +02:00
Klaus Schmidinger
4b8ff61901 Fixed the FATALERRNO macro to check for a non-zero errno value 2005-10-01 12:48:34 +02:00
Klaus Schmidinger
3f0678244f Added a note about using this skin to the README file 2005-10-01 12:20:25 +02:00
Klaus Schmidinger
f3c99e697f Fixed a crash in cConfig::Load() when compiling on the PPC 2005-10-01 10:43:01 +02:00
Klaus Schmidinger
13f68c4787 Fixed handling the '.update' file in case the video directory is not at the default location 2005-10-01 10:33:38 +02:00
Klaus Schmidinger
46a89d211b Fixed an unjustified "Error while accessing recording!" after deleting a recording from a subfolder 2005-10-01 10:13:27 +02:00
Klaus Schmidinger
8f6bfd1ae7 Fixed opening recording folders in case the last replayed recording no longer exists 2005-10-01 10:11:33 +02:00
Klaus Schmidinger
ecc07e33f3 Fixed a leftover 'summary.vdr' in vdr.5 2005-09-26 21:40:16 +02:00
Klaus Schmidinger
8ae565d885 Made the function ExchangeChars() public 2005-09-25 14:31:23 +02:00
Klaus Schmidinger
976a2c7ffe channels.conf 2005-09-25 14:20:00 +02:00
Klaus Schmidinger
c3a76dfef6 The '.update' file in the video directory is now touched when a recording is added or deleted 2005-09-25 13:49:31 +02:00
Klaus Schmidinger
f2183f9ff5 Added missing lock and state change 2005-09-25 12:28:40 +02:00
Klaus Schmidinger
5e89427ffc Updated the Russian OSD texts 2005-09-25 12:22:13 +02:00
Klaus Schmidinger
a12bea799d Updated the Romanian OSD texts 2005-09-25 11:51:34 +02:00
Klaus Schmidinger
da501a4b82 The 'new' indicator in the Recordings menu is now kept up-to-date 2005-09-25 11:35:56 +02:00
Klaus Schmidinger
9e8aac3882 The list of recordings is now read in a separate thread 2005-09-25 11:00:57 +02:00
Klaus Schmidinger
83985eff47 The SVDRP command DELR no longer triggers a complete reload of the global Recordings list, but rather deletes that particular entry 2005-09-18 10:51:54 +02:00
Klaus Schmidinger
cfc1903408 Fixed a typo 2005-09-18 09:33:40 +02:00
Klaus Schmidinger
e7d98d2ee6 Removed obsolete 'shift' code in device.[hc] 2005-09-17 14:30:18 +02:00
Klaus Schmidinger
13249f12f2 Fixed error handling in cCiTransportConnection::RecvTPDU() 2005-09-17 12:08:54 +02:00
Klaus Schmidinger
be0151ca5c Fixed handling key macros with keys after @plugin 2005-09-17 11:30:37 +02:00
Klaus Schmidinger
cda89e7fb0 Added a missing include statement to the 'sky' plugin 2005-09-17 10:43:54 +02:00
Klaus Schmidinger
75587d1a17 Added cChannel::LinkChannels() and cChannel::RefChannel() 2005-09-17 10:03:19 +02:00
Klaus Schmidinger
547310a949 Fixed handling color buttons in cMenuEditStrItem 2005-09-17 09:42:45 +02:00
Klaus Schmidinger
5147d8abbc Fixed converting arbitrarily formatted summary.vdr files 2005-09-17 09:20:31 +02:00
Klaus Schmidinger
791fe6c40e Fixed two errors in 'newplugin' 2005-09-14 16:04:09 +02:00
Klaus Schmidinger
94d43abecf Implemented a hash for the channels to reduce the system load in the EIT scanning thread 2005-09-11 13:23:49 +02:00
Klaus Schmidinger
0c6ba1f928 channels.conf 2005-09-11 11:10:00 +02:00
Klaus Schmidinger
e785f39acb More cRepacker fixes 2005-09-11 11:00:00 +02:00
Klaus Schmidinger
1c9d172bc9 Fixed converting summary.vdr files that would result in a very long 'short text' 2005-09-10 12:46:01 +02:00
Klaus Schmidinger
1241db48d3 Fixed a typo 2005-09-10 11:54:02 +02:00
Klaus Schmidinger
defe0831f9 Fixed selecting preferred audio for multi audio channels (cont'd) 2005-09-10 10:20:48 +02:00
Klaus Schmidinger
7673d5124a Fixed defining timers that only differ in the day of week 2005-09-09 15:28:26 +02:00
Klaus Schmidinger
116cea5eb6 Fixed some typos 2005-09-09 15:14:16 +02:00
Klaus Schmidinger
099df13b6c Fixed the default value for "Setup/EPG bugfix level" 2005-09-09 15:10:11 +02:00
Klaus Schmidinger
7115b3b97b Fixed some typos in MANUAL 2005-09-09 15:07:32 +02:00
Klaus Schmidinger
5c2cb4df18 Fixed selecting preferred audio for multi audio channels 2005-09-09 14:50:35 +02:00
Klaus Schmidinger
faedc7862e More cRepacker fixes 2005-09-04 15:15:14 +02:00
Klaus Schmidinger
1bc5ba817c Changed the audio PID language codes to hold up to two 3 letter codes; automatic audio channel setting for two channel audio 2005-09-04 14:48:39 +02:00
Klaus Schmidinger
c4ff05bbca Fixed menu timeout handling while replaying 2005-09-04 08:57:15 +02:00
Klaus Schmidinger
2f4526e55e Added support for multiple audio language codes in ISO639LanguageDescriptors to 'libsi' 2005-09-03 15:19:00 +02:00
Klaus Schmidinger
9e864aba12 Implemented the SVDRP command MOVC 2005-09-03 14:10:01 +02:00
Klaus Schmidinger
06117cbaab Implemented option '--vfat'; replaced ':' with '.' in recording names 2005-09-03 13:35:55 +02:00
Klaus Schmidinger
a964a8d732 The SVDRP command PLUG now has a new option 'main' 2005-09-03 12:49:36 +02:00
Klaus Schmidinger
590d56bf59 The main menu function of a plugin can now be called programmatically 2005-09-03 12:36:51 +02:00
Klaus Schmidinger
32733e430a Added missing help for the 'help' keyword in the SVDRP command PLUG 2005-09-03 12:20:24 +02:00
Klaus Schmidinger
7148cf452c The menu timeout handling is now done centrally in the main program loop 2005-09-03 11:51:54 +02:00
Klaus Schmidinger
45a29e5b16 Key macros can now call plugins that don't have a main menu entry 2005-09-03 11:33:43 +02:00
Klaus Schmidinger
2a91de02ab Repeat keys are now ignored when waiting for a keypress to cancel an operation 2005-09-03 09:09:23 +02:00
Klaus Schmidinger
70bc836e3f Adjusted the Makefile to the dvb-kernel driver on kernel 2.6 and up 2005-09-02 14:54:29 +02:00
Klaus Schmidinger
2ffcc66af2 Re-introduced the code that waits for a tuner lock in VDR/device.c 2005-09-02 13:55:37 +02:00
Klaus Schmidinger
85904ae23d Introduced a separate 'plugins-install' target in the Makefile 2005-09-02 13:39:53 +02:00
Klaus Schmidinger
13b74854b3 Made LIRC command parsing more robust 2005-09-02 12:52:37 +02:00
Klaus Schmidinger
c95ee7d367 Updated the Danish OSD texts 2005-09-02 12:44:26 +02:00
Klaus Schmidinger
b40bef5e81 Updated the Slovenian OSD texts 2005-09-02 12:41:20 +02:00
Klaus Schmidinger
9ef997f18b Updated the Swedish OSD texts 2005-09-02 12:29:02 +02:00
Klaus Schmidinger
3f73166049 Fixed cDvbPlayer::SkipFrames() to properly handle radio recordings 2005-08-29 15:45:38 +02:00
Klaus Schmidinger
97b65c6645 Updated the Estonian OSD texts 2005-08-29 15:31:50 +02:00
Klaus Schmidinger
f418ef02f8 Now always using stream id 0xE0 for the video stream 2005-08-28 21:49:34 +02:00
Klaus Schmidinger
b28336340d Fixed syncing in cRepacker 2005-08-28 21:25:17 +02:00
Klaus Schmidinger
1f4f85a82e Fixed appending sequence end code cDvbPlayer::Goto() 2005-08-28 21:20:58 +02:00
Klaus Schmidinger
332dc1120b Removed unused MAINMENUENTRY from svdrpdemo.c 2005-08-28 21:12:12 +02:00
Klaus Schmidinger
db44b98eed Added some missing braces in remux.c 2005-08-28 21:07:37 +02:00
Klaus Schmidinger
d3cfd9721d Implemented SVDRP command EDIT 2005-08-28 14:18:24 +02:00
Klaus Schmidinger
7f8d96c1af channels.conf 2005-08-28 14:05:00 +02:00
Klaus Schmidinger
9d27c4bcad Added a note about reserved SVDRP command names 2005-08-28 14:00:00 +02:00
Klaus Schmidinger
c474f2c9a7 Changed credit 2005-08-28 11:46:44 +02:00
Klaus Schmidinger
62aa0902b0 More changes from Reinhard Nissl 2005-08-28 11:23:23 +02:00
Klaus Schmidinger
94c74762ab The new SVDRP command PLAY can be used to start replaying a recording 2005-08-28 10:45:19 +02:00
Klaus Schmidinger
786d8f2d88 Added a note about 'svdrpdemo' 2005-08-28 09:13:06 +02:00
Klaus Schmidinger
6445b9a086 Implemented SVDRP command for plugins 2005-08-27 16:42:28 +02:00
Klaus Schmidinger
110c64f56d Moved cMenuEditTimer and cMenuEvent to menu.h so that plugins can use it 2005-08-27 09:37:33 +02:00
Klaus Schmidinger
fe37211da0 Fixed detecting short channel names for "Kabel Deutschland" 2005-08-27 09:29:30 +02:00
Klaus Schmidinger
7ef6d79884 Added missing braces 2005-08-27 09:03:56 +02:00
Klaus Schmidinger
0c27583ba9 Removed the TUNER_LOCK_TIMEOUT in cDevice::AttachReceiver() since it caused more trouble than it fixed 2005-08-27 09:02:09 +02:00
Klaus Schmidinger
c23d35e267 Fixed the EPG scan, so that it doesn't use the primary device if that is currently in Transfer-Mode from itself 2005-08-26 16:05:29 +02:00
Klaus Schmidinger
7a57c099e5 Updated the Danish OSD texts 2005-08-26 13:39:20 +02:00
Klaus Schmidinger
0201f7cbf8 Modified handling of audio packets for radio channels in remux.c 2005-08-26 13:37:42 +02:00
Klaus Schmidinger
449ffebcac Implemented cAudioRepacker 2005-08-26 13:34:07 +02:00
Klaus Schmidinger
ed807972ac The Setup/CICAM menu now only contains the devices that actually have a CI and dynamically detects the number of slots a CI provides 2005-08-26 12:49:26 +02:00
Klaus Schmidinger
60d77a9171 Added missing German OSD texts for 'Audio language' 2005-08-21 16:18:02 +02:00
Klaus Schmidinger
b1172401f7 Fixed a typo 2005-08-21 15:22:50 +02:00
Klaus Schmidinger
a8fe90b28b Replaced the get/put_unaligned() macros from <asm/unaligned.h> with own inline functions 2005-08-21 14:15:00 +02:00
Klaus Schmidinger
0b9aa1c1a8 channels.conf 2005-08-21 14:00:00 +02:00
Klaus Schmidinger
3c01aba949 Adjusted 'Custom services' description to the actual implementation (cont'd) 2005-08-21 13:00:00 +02:00
Klaus Schmidinger
35de98e6a1 Adjusted 'Custom services' description to the actual implementation 2005-08-21 12:55:03 +02:00
Klaus Schmidinger
06a27f142b Added 'Service' functions to the plugin interface 2005-08-21 10:44:29 +02:00
Klaus Schmidinger
7533b69e9b Fixed cDvbTuner to avoid lockups on NPTL systems 2005-08-21 09:25:51 +02:00
Klaus Schmidinger
9dd6796702 Fixed cVideoRepacker to better handle errors in data 2005-08-21 09:00:31 +02:00
Klaus Schmidinger
6de23d7d96 Now waiting at startup until all DVB devices are ready 2005-08-21 08:56:49 +02:00
Klaus Schmidinger
ba3437f7cc Removed some outdated text 2005-08-20 13:27:32 +02:00
Klaus Schmidinger
4299056229 Added handling of the 'Close MMI' tag 2005-08-20 12:16:23 +02:00
Klaus Schmidinger
7683e67826 Improved responsiveness inside CAM menus 2005-08-20 11:24:42 +02:00
Klaus Schmidinger
101ee309e5 Added credits for Klaus Heppenheimer 2005-08-16 16:02:58 +02:00
Klaus Schmidinger
2fbc114c62 Removed the VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES stuff from cDvbDevice::StillPicture(), since apparently the VIDEO_STILLPICTURE call works 2005-08-15 14:06:44 +02:00
Klaus Schmidinger
996d46db7f channels.conf 2005-08-15 14:00:00 +02:00
Klaus Schmidinger
01ea9d7b0d Some missed places where cThread::Running() should be used 2005-08-15 12:30:21 +02:00
Klaus Schmidinger
69c17e7101 Avoiding unnecessary OSD draw operations caused by the audio track description display in the ST:TNG skin's channel display 2005-08-15 11:21:14 +02:00
Klaus Schmidinger
8680d92136 Pressing Ok while entering a channel number now immediately switches to that channel, without waiting for further input 2005-08-14 15:15:47 +02:00
Klaus Schmidinger
9c4401f5d9 Now discarding any previous numerical input to switch channels if Up, Down, Channel+, Channel-, Left or Right is pressed 2005-08-14 15:03:31 +02:00
Klaus Schmidinger
0aa18e1c39 Added credits for Wayne Keer 2005-08-14 14:14:12 +02:00
Klaus Schmidinger
3f341aae50 Fixed handling the frame number display if '7' is pressed before the first editing mark, or '9' after the last one 2005-08-14 13:01:27 +02:00
Klaus Schmidinger
437fd984ed Changed the title of the recording info menu 2005-08-14 12:06:40 +02:00
Klaus Schmidinger
d9817a3ebd Added some 'mkdir -p' to the Makefile's 'install' target 2005-08-14 11:46:29 +02:00
Klaus Schmidinger
af54ce4842 Changed cThread Active() vs. Running() 2005-08-14 11:24:57 +02:00
Klaus Schmidinger
8fe90254f6 Now storing the channel id in the info.vdr file even if there is no EPG info available 2005-08-13 14:39:34 +02:00
Klaus Schmidinger
098952e254 Increased the default value for 'Min. user inactivity' to 300 minutes 2005-08-13 13:48:46 +02:00
Klaus Schmidinger
7369545585 Fixed handling EPG data for time shifted events 2005-08-13 13:30:04 +02:00
Klaus Schmidinger
ccb0add798 Centralized 'thread active' handling 2005-08-13 13:17:24 +02:00
Klaus Schmidinger
1921c7465f Fixed a memory leak in the SVDRP command LSTE; fixed a typo in LSTE's help 2005-08-07 14:25:31 +02:00
Klaus Schmidinger
4217d30bff channels.conf 2005-08-07 14:00:00 +02:00
Klaus Schmidinger
5e4d7041b5 Updated channels.conf.sky 2005-08-07 14:00:00 +02:00
Klaus Schmidinger
5da7f10c3e Fixed setting system time to avoid time jumps in case of faulty data 2005-08-07 13:52:29 +02:00
Klaus Schmidinger
1173d8d359 Fixed cDvbSpuBitmap::putPixel() 2005-08-07 12:08:40 +02:00
Klaus Schmidinger
7d54c997ab Modified cEITScanner::Process() to use the primary device if replaying, and do a forced scan even if timeout is 0 2005-08-07 11:37:48 +02:00
Klaus Schmidinger
da0030deff Added cRemux::SetTimeouts() for better use of cRemux in a single thread 2005-08-07 10:29:36 +02:00
Klaus Schmidinger
e2bb5d3898 Added missing storing of the MenuScrollPage parameter 2005-08-07 09:04:14 +02:00
Klaus Schmidinger
80592dedb2 Updated the Finnish OSD texts 2005-08-06 16:10:08 +02:00
Klaus Schmidinger
16c3b8f0e7 Fixed an out-of-bounds memory access with audio language ids 2005-08-06 12:29:38 +02:00
Klaus Schmidinger
ff5df8f298 Fixed the cChannel copy constructor 2005-08-06 12:13:55 +02:00
Klaus Schmidinger
bc22ed879c Files and directories are now created with rights according to the shell's umask settings 2005-08-06 09:56:08 +02:00
Klaus Schmidinger
068e17303c Now checking whether timers or channels are currently being edited via the menu before making changes through SVDRP 2005-07-31 14:34:38 +02:00
Klaus Schmidinger
d6b8a28329 Added the command line options '--lirc', '--rcu' and '--no-kbd' 2005-07-31 11:38:40 +02:00
Klaus Schmidinger
44a4d12117 Avoiding duplicate components in EPG events when reading epg.data or in the PUTE SVDRP command 2005-07-30 14:53:29 +02:00
Klaus Schmidinger
aaa2284278 Fixed handling VPS timers, so that they only record if the event they are assigned to actually has the given VPS time (cont'd, fix, caused repeating VPS timers to stop recording prematurely) 2005-07-30 13:05:24 +02:00
Klaus Schmidinger
6ebed0fc86 Reactivated cVideoRepacker after some fixes 2005-07-30 10:25:03 +02:00
Klaus Schmidinger
856f22dbf1 cDvbPlayer::Goto() now appends a Sequence End Code to get the image shown immediately with softdevices 2005-07-30 10:04:18 +02:00
Klaus Schmidinger
a6f3a325d7 Updated Croatian language texts 2005-07-30 09:42:58 +02:00
Klaus Schmidinger
b36592dfa9 Modified the description of cDevice::Poll() to avoid misunderstandings 2005-07-30 09:32:51 +02:00
Klaus Schmidinger
af78bac2bb Added a sleep in cDvbPlayer::Action() in case there is no data to send to the device 2005-07-30 09:23:29 +02:00
Klaus Schmidinger
bef18ac382 Removed a superfluous return statement 2005-06-19 11:00:43 +02:00
Klaus Schmidinger
d68b0a87ae Implemented palette replace mode in the OSD bitmaps 2005-06-19 10:47:06 +02:00
Klaus Schmidinger
121678e0ba channels.conf 2005-06-19 10:30:00 +02:00
Klaus Schmidinger
f996f10099 Disabled cVideoRepacker in remux.c 2005-06-19 10:19:13 +02:00
Klaus Schmidinger
be1b6b5e88 Fixed handling VPS timers, so that they only record if the event they are assigned to actually has the given VPS time 2005-06-18 13:32:03 +02:00
Klaus Schmidinger
7e81649d68 Removed the NPTL check at startup 2005-06-18 11:21:12 +02:00
Klaus Schmidinger
806aeb3c07 Implemented wrapping around in menu lists 2005-06-18 10:44:30 +02:00
Klaus Schmidinger
f1ccf37128 Modified page scrolling behaviour 2005-06-17 15:47:27 +02:00
Klaus Schmidinger
80a7ef5a55 Fixed handling 'page down', which was broken in version 1.3.26 2005-06-17 14:25:08 +02:00
Klaus Schmidinger
0eb9abbf12 Fixed displaying the last page of a menu full screen 2005-06-12 15:06:19 +02:00
Klaus Schmidinger
7bbeca3b5b Added a note about MPEG1 not yet workign with cVideoRepacker 2005-06-12 14:16:12 +02:00
Klaus Schmidinger
d6f1f8d8bb channels.conf 2005-06-12 14:15:00 +02:00
Klaus Schmidinger
f41e3f327b Modified cEITScanner::Process() so that it works on systems with only budget cards or a mix of DVB-S, DVB-C or DVB-T cards 2005-06-12 14:09:45 +02:00
Klaus Schmidinger
eb8ad6b46d Added cOsdMenu::SetCols() to allow adjusting the menu columns 2005-06-12 10:46:34 +02:00
Klaus Schmidinger
7a990fcf88 Fixed handling page up/down in menu lists in case there are several non selectable items in a row 2005-06-12 10:02:59 +02:00
Klaus Schmidinger
903a2d5850 Fixed dropping EPG events that have a zero start time or duration, in case it's an NVOD event 2005-06-11 16:05:11 +02:00
Klaus Schmidinger
3513e3d07e Removed an unnecessary #include from osd.c 2005-06-11 14:32:26 +02:00
Klaus Schmidinger
858937f861 Fixed handling timers with a day given as MTWTF--@6 2005-06-11 14:30:26 +02:00
Klaus Schmidinger
48a10640e9 Fixed the call to Channels.Unlock() in cEITScanner::Process() 2005-06-05 14:44:27 +02:00
Klaus Schmidinger
c1055a6c8f Added the year (two digits) to recording dates in LSTR, and thus also in menus 2005-06-05 14:23:23 +02:00
Klaus Schmidinger
f4c63964a8 A device can now detach all receivers for a given PID 2005-06-05 13:37:37 +02:00
Klaus Schmidinger
393627abd5 EPG events without a title now display "No title" instead of "(null)" 2005-06-05 12:19:50 +02:00
Klaus Schmidinger
60a35366dd Implemented cVideoRepacker in remux.c to make sure every PES packet contains only data from one frame 2005-06-04 14:49:25 +02:00
Klaus Schmidinger
a8599c451e Improved resetting CAM connections 2005-06-04 11:59:19 +02:00
Klaus Schmidinger
eecf0b6616 Fixed handling 'summary.vdr' files with more than two empty lines 2005-06-04 11:33:09 +02:00
Klaus Schmidinger
7bffdb9e82 Updated the Finnish OSD texts 2005-06-03 12:42:04 +02:00
Klaus Schmidinger
42ab72c151 Updated the Estonian OSD texts 2005-06-03 12:39:16 +02:00
Klaus Schmidinger
e622406342 Added cThread::SetPriority() and using it in cSectionHandler::Action() to reduce the priority of the section handler threads 2005-05-29 11:44:52 +02:00
Klaus Schmidinger
961e7a9115 channels.conf 2005-05-29 11:30:00 +02:00
Klaus Schmidinger
27a43c7766 Added -fPIC 2005-05-29 11:30:00 +02:00
Klaus Schmidinger
ca66d29798 Fixed listing recordings with empty episode names in the LSTR command 2005-05-29 11:22:39 +02:00
Klaus Schmidinger
3b69903d23 Speeded up deleting duplicate channels 2005-05-29 10:33:21 +02:00
Klaus Schmidinger
bce13e7148 Not hashing events with StartTime < 0 2005-05-29 10:26:54 +02:00
Klaus Schmidinger
1f631bf667 Fixed a crash with negative hash ids (made them unsigned) 2005-05-29 10:24:54 +02:00
Klaus Schmidinger
1e63fa4174 Avoiding unnecessary calls to getLength() in libsi/si.c, and avoiding the '& 0xff' in CRC32::crc32() of libsi/util.c 2005-05-28 14:19:16 +02:00
Klaus Schmidinger
ae3da0bcec Made cChannel::GetChannelID() inline 2005-05-28 13:57:08 +02:00
Klaus Schmidinger
7701acd968 Now using hash tables to speed up cSchedule::GetEvent() 2005-05-28 13:17:20 +02:00
Klaus Schmidinger
b4cbb84489 cEvent no longer stores the channelID directly, but rather has a pointer to the schedule it is in 2005-05-28 10:09:06 +02:00
Klaus Schmidinger
7114258ebd cRecordingInfo stores channelID itself (preparation for change in cEvent) 2005-05-28 09:53:54 +02:00
Klaus Schmidinger
1855ab0ef3 Introduced cListBase::count for better performance 2005-05-26 11:41:33 +02:00
Klaus Schmidinger
373c69043a Made tChannelID::operator==() inline for better performance 2005-05-26 11:25:36 +02:00
Klaus Schmidinger
70ac6784ac Moved the NPTL and UTF-8 checks after the version and help output 2005-05-26 10:47:49 +02:00
Klaus Schmidinger
a05b921e29 No longer stopping Transfer Mode or replay immediately when the Power button is pressed 2005-05-26 10:33:17 +02:00
Klaus Schmidinger
425daa4ca5 Now dropping EPG events that have a zero start time or duration 2005-05-26 10:27:06 +02:00
Klaus Schmidinger
e3e40a14f3 Pressing the "Play" key in live viewing mode now resumes a previous replay session 2005-05-26 10:20:31 +02:00
Klaus Schmidinger
dc0209147e The SVDRP command DELR no longer deletes recordings that are currently being written to by a timer 2005-05-26 10:00:59 +02:00
Klaus Schmidinger
a05590796a Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp() is waiting 2005-05-22 11:29:19 +02:00
Klaus Schmidinger
6b25832913 No longer saving the setup in case of a fatal error 2005-05-22 11:23:22 +02:00
Klaus Schmidinger
710f6c37d1 Added cPlayer::DeviceSetVideoDisplayFormat() 2005-05-22 11:09:14 +02:00
Klaus Schmidinger
dc7f2d3624 Removed converting byte order on big endian systems from cDvbOsd::Flush() 2005-05-22 11:03:57 +02:00
Klaus Schmidinger
2d3702b850 Fall back to 'summary.vdr' if there is no 'info.vdr' 2005-05-22 10:43:10 +02:00
Klaus Schmidinger
a0e6585304 Fixed setting timer's summary for recording 2005-05-22 09:13:26 +02:00
Klaus Schmidinger
a8b3516607 Using cSource::IsSat() 2005-05-16 15:23:43 +02:00
Klaus Schmidinger
ed52b359bb Avoiding extra blanks at the end of names of instant recordings 2005-05-16 15:19:54 +02:00
Klaus Schmidinger
b0583e5373 Switched from 'summary.vdr' to 'info.vdr' 2005-05-16 14:45:11 +02:00
Klaus Schmidinger
6e274dfeef Updated the Danish OSD texts 2005-05-15 09:22:19 +02:00
Klaus Schmidinger
3688b801c7 Made cOsd::isOpen an integer counter to avoid problems with messages when a cOsdObject uses the raw OSD 2005-05-14 11:22:56 +02:00
Klaus Schmidinger
e096b86ef6 Made the Makefile patch friendlier 2005-05-14 10:33:37 +02:00
Klaus Schmidinger
faf7d4b743 Added a check for Setup.DiSEqC in cDvbDevice::ProvidesTransponder() 2005-05-14 10:04:04 +02:00
Klaus Schmidinger
d7053e30ac Using '>' as separator for short channel names on cable channels 2005-05-14 09:47:06 +02:00
Klaus Schmidinger
06e038b6fb Updated the Estonian OSD texts 2005-05-14 09:18:08 +02:00
Klaus Schmidinger
28084a44b7 Fixed a typo 2005-05-14 09:01:03 +02:00
Klaus Schmidinger
22bb343f12 Fixed a wrong inheritance in libsi's SubtitlingDescriptor::Subtitling 2005-05-08 14:10:04 +02:00
Klaus Schmidinger
d0be04aed5 channels.conf 2005-05-08 14:08:00 +02:00
Klaus Schmidinger
f429e2eab0 Moved the sleep in cDvbPlayer::Action() outside the locked area to avoid problems on NPTL systems 2005-05-08 14:07:00 +02:00
Klaus Schmidinger
7f5f26020b Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems 2005-05-08 14:06:21 +02:00
Klaus Schmidinger
1f246351b1 Recordings now avoid zero sized video data files 2005-05-07 15:29:23 +02:00
Klaus Schmidinger
f2bb5b3474 Now preferring budget cards when selecting a DVB device for recording 2005-05-07 15:12:09 +02:00
Klaus Schmidinger
89105812fb No longer retuning or restarting a recording if only the language code of a audio or dolby PID changes 2005-05-07 13:15:34 +02:00
Klaus Schmidinger
a20ddc1f22 Removed scaling coordinates in letterbox mode from cDvbSpu 2005-05-07 11:17:25 +02:00
Klaus Schmidinger
8b137f8ce5 Added status flag for timers that are currently recording 2005-05-07 11:10:56 +02:00
Klaus Schmidinger
9f7166a891 Fixed timeout handling in cRwLock::Lock() 2005-05-06 14:43:17 +02:00
Klaus Schmidinger
6ca56047ae Fixed handling lifetime when deciding whether to delete a recording 2005-05-06 14:00:45 +02:00
Klaus Schmidinger
b3c1f1bb73 Automatically deleting duplicate channels when reading channels.conf 2005-05-06 13:49:01 +02:00
Klaus Schmidinger
6db0e99996 Fixed a bug in libsi's SubtitlingDescriptor::getLength() 2005-05-06 09:00:36 +02:00
Klaus Schmidinger
1c62f19c8c Fixed handling fragments of less than 3 byte in cPesAssembler 2005-05-05 14:59:46 +02:00
Klaus Schmidinger
cfab3380c7 Now also considering the "EPG linger time" when saving the EPG data to file or listing it via LSTE 2005-05-05 13:55:12 +02:00
Klaus Schmidinger
49f9edc194 Fixed handling transparent areas in cDvbSpuBitmap 2005-05-05 13:20:43 +02:00
Klaus Schmidinger
8d84cc15b9 Updated the Finnish OSD texts 2005-05-05 13:13:21 +02:00
Klaus Schmidinger
6d0cb1beb0 Added missing text internationalization for "Starting EPG scan" 2005-05-05 13:08:07 +02:00
Klaus Schmidinger
ff0a48d3be Fixed a memory leak in cDvbPlayer 2005-05-05 12:53:43 +02:00
Klaus Schmidinger
fd2c54cec0 Fixed a memory leak in tComponent 2005-05-05 12:41:21 +02:00
Klaus Schmidinger
c8b103c37f Updated the Danish OSD texts 2005-05-05 11:09:09 +02:00
Klaus Schmidinger
8775419779 Now including the optional user defined Make.config from the 'libsi' Makefile 2005-05-05 11:04:18 +02:00
Klaus Schmidinger
f1494502a7 All log entries regarding timers now contain a short description of the timer 2005-03-20 15:15:42 +01:00
Klaus Schmidinger
f1c9ad7a5e No longer assigning expired events to timers 2005-03-20 14:18:04 +01:00
Klaus Schmidinger
db4701fd8f channels.conf 2005-03-20 14:00:00 +01:00
Klaus Schmidinger
de23bd7cb1 Added a missing cMutexLock to cRemote::HasKeys() 2005-03-20 13:27:01 +01:00
Klaus Schmidinger
fa512884b9 Additional fixes to cDolbyRepacker 2005-03-20 13:18:15 +01:00
Klaus Schmidinger
5d17dc3fdc Reduced the time window within EPG events are checked 2005-03-20 13:13:02 +01:00
Klaus Schmidinger
14a38b1dba Improved falling back to normal recording if the VPS data hasn't been seen for more than 30 seconds 2005-03-20 13:12:07 +01:00
Klaus Schmidinger
456ded045c Fixed setting the colored button help after deleting a recording in case the next menu entry is a directory 2005-03-20 11:27:44 +01:00
Klaus Schmidinger
ce0e97eb65 Single shot timers are now reliably deleted when they have expired 2005-03-20 11:19:36 +01:00
Klaus Schmidinger
e760b14f64 Some fixes to avoid compiler warnings in gcc 4.0 2005-03-20 10:10:38 +01:00
Klaus Schmidinger
86a9d179bd Improved displaying 'day' in Timers menu 2005-03-19 15:45:19 +01:00
Klaus Schmidinger
ccc7c4a2d8 The day of a timer is now stored as a full date in ISO notation 2005-03-19 15:38:43 +01:00
Klaus Schmidinger
ae5ee879d0 The running status of a VPS event is now only taken seriously if that event has been seen within the last 30 seconds 2005-03-13 13:19:30 +01:00
Klaus Schmidinger
3c0ea98ab3 Fixed cDvbDevice::SetVideoDisplayFormat() in case of 16:9 2005-03-13 12:34:45 +01:00
Klaus Schmidinger
76ca67473c Fixed cDolbyRepacker to allow recording ProSieben HD broadcasts 2005-03-13 12:05:30 +01:00
Klaus Schmidinger
57e34f6240 Improved matching timers to EPG events 2005-03-13 11:42:59 +01:00
Klaus Schmidinger
25b8a40eef Updated the Swedish OSD texts; fixed a few French OSD texts that were in the wrong place 2005-03-12 10:53:04 +01:00
Klaus Schmidinger
252bb7ef2b Updated the Russian OSD texts 2005-03-06 11:44:46 +01:00
Klaus Schmidinger
7259b28d52 Updated the Finnish OSD texts 2005-03-05 17:02:21 +01:00
Klaus Schmidinger
dc20f0f8cf Dropped CA support for the old '-icam' firmware 2005-03-05 16:13:26 +01:00
Klaus Schmidinger
8e37778946 Updated the Russian OSD texts 2005-03-05 15:51:55 +01:00
Klaus Schmidinger
379d4b7d63 The setup option "DVB/Video display format" is now only available if "Video format" is set to "4:3" 2005-03-05 15:48:26 +01:00
Klaus Schmidinger
e3be67dbaa Improved displaying the the current audio track in the ST:TNG channel display 2005-02-27 14:54:57 +01:00
Klaus Schmidinger
a0de3a6a08 channels.conf 2005-02-27 14:40:00 +01:00
Klaus Schmidinger
bed846c80c Fixed a typo 2005-02-27 14:37:37 +01:00
Klaus Schmidinger
627e70ce7e Fixed handling repeated kAudio keys 2005-02-27 14:12:03 +01:00
Klaus Schmidinger
87209df391 Keeping the track language codes and descriptions in Transfer Mode 2005-02-27 13:58:22 +01:00
Klaus Schmidinger
940d605f2e Revisited 'Fixed calling cStatus::MsgChannelSwitch() in cDevice::SetChannel()' to allow keeping language codes in Trandfer Mode 2005-02-27 13:40:33 +01:00
Klaus Schmidinger
59c0cc2edd Updated Dutch language texts 2005-02-27 11:36:19 +01:00
Klaus Schmidinger
43576a394f Improved automatic audio track selection 2005-02-27 10:36:19 +01:00
Klaus Schmidinger
6ef9ec9ac0 Fixed ensuring there is a current audio track in case there is only one track 2005-02-26 11:46:37 +01:00
Klaus Schmidinger
5350b65b37 Added 'smi' to the Finnish language codes 2005-02-26 10:42:55 +01:00
Klaus Schmidinger
a5673f5b05 Completed Dutch language texts 2005-02-26 10:28:35 +01:00
Klaus Schmidinger
ca4da1845c Changed MAXDPIDS to 16 (8xAC3 + 8xDTS) 2005-02-20 14:07:52 +01:00
Klaus Schmidinger
e8bd7c2369 Implemented setup option "DVB/Video display format" 2005-02-20 13:39:49 +01:00
Klaus Schmidinger
51f41252cf Added support for setting the video display mode 2005-02-20 12:01:05 +01:00
Klaus Schmidinger
f038aaefc8 Fixed the call to SetVideoFormat() in cDvbDevice::cDvbDevice() (parameter is _bool_) 2005-02-20 11:06:51 +01:00
Klaus Schmidinger
c6aa52c204 Increased POLLTIMEOUTS_BEFORE_DEVICECLEAR in transfer.c to 6 to avoid problems with the larger buffer reserve 2005-02-19 14:40:36 +01:00
Klaus Schmidinger
4871f1188e Replaced the call to system("sync") in SpinUpDisk() with fdatasync(f) to avoid problems on NPTL systems 2005-02-19 13:51:44 +01:00
Klaus Schmidinger
605cd54280 Fixed calling cStatus::MsgChannelSwitch() in cDevice::SetChannel() 2005-02-19 12:20:53 +01:00
Klaus Schmidinger
f226c84583 Avoiding unnecessary calls to SetPid() in cDvbDevice::SetAudioTrackDevice() 2005-02-19 12:18:18 +01:00
Klaus Schmidinger
f714ee0f55 Removed some unneeded code and fixed access to unallocated memory in cEvent::FixEpgBugs() 2005-02-19 11:37:15 +01:00
Klaus Schmidinger
7b9b2ad92d Changed Dolby Digital chapter 2005-02-16 17:03:32 +01:00
Klaus Schmidinger
1594333047 Added missing reset of the 'repacker' to cTS2PES::Clear() 2005-02-13 14:38:08 +01:00
Klaus Schmidinger
9055f754dd channels.conf 2005-02-13 14:30:00 +01:00
Klaus Schmidinger
84d57ed54d Implemented cDvbDevice::SetTransferModeForDolbyDigital() 2005-02-13 14:26:37 +01:00
Klaus Schmidinger
28976bf276 Added a missing 'resultSkipped = 0' to cRemux::Clear() 2005-02-13 10:29:27 +01:00
Klaus Schmidinger
20d5179ae4 The 'plugins-clean' target of the Makefile now only deletes the actual plugin library files from this version of VDR 2005-02-13 10:18:07 +01:00
Klaus Schmidinger
e972c0464a cAudio::Play() now also gets the 0xC0...0xDF audio 2005-02-13 09:54:51 +01:00
Klaus Schmidinger
78598e1a0a Making sure the first audio packet is not dropped when switching to "pre 1.3.19 Dolby Digital compatibility mode" 2005-02-12 16:32:54 +01:00
Klaus Schmidinger
3b871f8bb6 Now using twice the buffer reserve in cTransfer if the primary DVB card is an unmodified version with only 2MB of SDRAM 2005-02-12 15:54:06 +01:00
Klaus Schmidinger
a481a5200c Fixed a typo in detecting UTF-8 2005-02-12 15:07:09 +01:00
Klaus Schmidinger
dc22034e72 Added DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer 2005-02-12 14:48:06 +01:00
Klaus Schmidinger
7e0ffb0499 Removed the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(); Making sure the buffer reserve in cTransfer::Action() is re-established after clearing the buffer 2005-02-12 13:52:35 +01:00
Klaus Schmidinger
25c942c0e3 Added 'uchar Id' to cAudio::Play()' 2005-02-12 13:01:24 +01:00
Klaus Schmidinger
d1fb8d586d Forcing a new resync after a call to cRemux::Clear() 2005-02-12 10:59:03 +01:00
Klaus Schmidinger
efa2178430 Completed the Danish OSD texts 2005-02-12 10:27:04 +01:00
Klaus Schmidinger
5b4507da05 Fixed handling symbolic links in cRecordings::ScanVideoDir() 2005-02-12 10:19:03 +01:00
Klaus Schmidinger
7f244d5c9c Fixed handling Transfer Mode for radio channels 2005-02-08 14:18:18 +01:00
Klaus Schmidinger
74accfb1dc Restricted the "setting audio track" log message to automatic changes during replay 2005-02-08 13:21:34 +01:00
Klaus Schmidinger
93d2375299 Completed the Finnish OSD texts 2005-02-08 12:01:57 +01:00
Klaus Schmidinger
8cdd705fb4 Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function permanently returns 0 2005-02-08 11:47:15 +01:00
Klaus Schmidinger
34d51f5f83 Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching back to live mode if a recording is currently active on the primary device 2005-02-08 11:27:42 +01:00
Klaus Schmidinger
16e71e1363 Fixed a typo 2005-02-08 09:51:53 +01:00
Klaus Schmidinger
d3bd62a5fb Added MPEG1 replay capability to cPesAssembler 2005-02-06 14:22:08 +01:00
Klaus Schmidinger
2e6a990df4 channels.conf 2005-02-06 14:00:00 +01:00
Klaus Schmidinger
d824e95704 Calling pesAssembler->Reset() in cDevice::AttachPlayer() to avoid problems with residual data in replay and Transfer Mode 2005-02-06 13:49:13 +01:00
Klaus Schmidinger
e57611dfd3 Fixed the "pre 1.3.19" compatibility mode for old Dolby Digital recordings 2005-02-06 13:19:19 +01:00
Klaus Schmidinger
20b213201a Making sure the "Mute" and "Volume+/-" keys don't interfere with digital audio 2005-02-06 12:31:36 +01:00
Klaus Schmidinger
506eb479a5 Removed 'flags' from tTrackId 2005-02-06 11:44:56 +01:00
Klaus Schmidinger
1f677366c4 Making sure the current audio track is actually one of the ones available in a recording 2005-02-06 11:33:13 +01:00
Klaus Schmidinger
450e58439a Making sure the current audio track is actually one of the ones available in a recording (cont'd) 2005-02-06 10:26:35 +01:00
Klaus Schmidinger
fcbfc8e988 Added CMD_SPU_CHG_COLCON to cDvbSpuDecoder::setTime() 2005-02-06 09:58:08 +01:00
Klaus Schmidinger
c4292b81b8 Fixed several memory leaks that were introduced through the use of cString 2005-02-06 09:48:08 +01:00
Klaus Schmidinger
ef4ef632d5 Modified cDolbyRepacker to make sure PES packets don't exceed the requested length 2005-02-05 11:59:19 +01:00
Klaus Schmidinger
d067302bb6 Implemented setup option "OSD/Channel info time" 2005-02-05 11:40:04 +01:00
Klaus Schmidinger
0f8bdb31b6 Completed the French OSD texts 2005-02-05 10:37:53 +01:00
Klaus Schmidinger
f97ece8330 Completed the Danish OSD texts 2005-02-05 10:15:16 +01:00
Klaus Schmidinger
32e0b131c9 Fixed a memory leak in AddDirectory() and strescape() 2005-02-05 10:12:14 +01:00
Klaus Schmidinger
9484b537bc Making sure the current audio track is actually one of the ones available in a recording 2005-01-30 16:04:38 +01:00
Klaus Schmidinger
d3181d3d99 Moved the call to SetAudioChannel(0) into cDevice::ClrAvailableTracks() 2005-01-30 14:42:51 +01:00
Klaus Schmidinger
2bec1d5ca0 Added cPlugin::Stop() 2005-01-30 14:23:01 +01:00
Klaus Schmidinger
a430f64252 Fixed masking SubStreamType in cDevice::PlayPesPacket() 2005-01-30 13:38:06 +01:00
Klaus Schmidinger
250e79afbe Fixed a buffer overflow in case a station defines all 32 audio PIDs 2005-01-30 12:11:56 +01:00
Klaus Schmidinger
ac60bd7141 Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown() 2005-01-25 18:22:46 +01:00
Klaus Schmidinger
c7211d13be Fixed displaying the "Audio" menu with the "Green" button from the "Main" menu in case there is only one audio track 2005-01-23 19:27:43 +01:00
Klaus Schmidinger
039cdaecb5 Added PlayPes(NULL, 0) to cTransfer::Action() when clearing the transfer buffer 2005-01-23 14:29:35 +01:00
Klaus Schmidinger
211565c034 channels.conf 2005-01-23 14:20:00 +01:00
Klaus Schmidinger
3f7f4ffb89 Fixed DTS detection 2005-01-23 14:15:00 +01:00
Klaus Schmidinger
1743213a1d Recording and Transfer Mode can now handle up to 8 Dolby Digital tracks 2005-01-23 14:10:15 +01:00
Klaus Schmidinger
4549c74078 Completed the Danish OSD texts 2005-01-22 10:39:45 +01:00
Klaus Schmidinger
bde66cd4f5 Falling back to 'stereo' when switching channels 2005-01-16 16:10:44 +01:00
Klaus Schmidinger
af94ec6b2d Added 'channels.conf.terr' entries for Dsseldorf and Kln 2005-01-16 15:56:36 +01:00
Klaus Schmidinger
7276c54baf Extended some buffer sizes to allow handling HDTV streams 2005-01-16 15:30:43 +01:00
Klaus Schmidinger
8c0981583f Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action() 2005-01-16 14:50:33 +01:00
Klaus Schmidinger
c522225344 Recording and Transfer Mode now handle more than 2 audio PIDs 2005-01-16 14:40:47 +01:00
Klaus Schmidinger
9423c636a2 Fixed playing files with PES packets longer than 2048 byte through the full featured DVB card 2005-01-16 12:02:39 +01:00
Klaus Schmidinger
62390837ff Implemented cDolbyRepacker for better handling of Dolby Digital PES packets 2005-01-15 12:09:22 +01:00
Klaus Schmidinger
02be00c0df Added 'channels.conf.terr' entries for Mainz 2005-01-15 10:12:23 +01:00
Klaus Schmidinger
00187ff97c Fixed handling the '-E' option 2005-01-14 16:55:28 +01:00
Klaus Schmidinger
1d1b2f1275 The "Green" button in the "Main" menu is now always "Audio" 2005-01-14 14:28:47 +01:00
Klaus Schmidinger
0fc891340c Fixed canceling the LIRC thread 2005-01-14 14:21:52 +01:00
Klaus Schmidinger
0ad4b2a713 Made cCondWait::SleepMs() sleep at least 3ms to avoid a possible busy wait 2005-01-14 14:08:47 +01:00
Klaus Schmidinger
0d596d0478 Completed the Estonian OSD texts and switched to iso8859-13 character set 2005-01-14 13:30:57 +01:00
Klaus Schmidinger
326cf18915 Completed the Finnish OSD texts and fixed internationalization of the text for "Setup/DVB/Audio language(s)" 2005-01-14 13:19:21 +01:00
Klaus Schmidinger
43a4605eab Making sure at least the default skin is available at program start 2005-01-14 13:10:32 +01:00
Klaus Schmidinger
fbb4283bba Some aknowledgements 2005-01-09 13:21:15 +01:00
Klaus Schmidinger
bddac2bdf6 channels.conf 2005-01-09 13:20:00 +01:00
Klaus Schmidinger
0975bfc440 Added support for circular polarization 2005-01-09 13:18:15 +01:00
Klaus Schmidinger
e60ba0311b Changed 'Recording/Record Dobly Digital' to 'DVB/Use Dolby Digital' and using it for available audio tracks 2005-01-09 12:36:48 +01:00
Klaus Schmidinger
264fa085bd Implemented displaying audio channel 2005-01-09 12:08:34 +01:00
Klaus Schmidinger
f79f81dfd4 Implemented Setup.CurrentDolby 2005-01-08 13:53:30 +01:00
Klaus Schmidinger
ec27c329cf Displaying audio track description in channel display 2005-01-08 10:15:30 +01:00
Klaus Schmidinger
64623e762b Implemented displaying mandatory subtitles in the SPU decoder 2005-01-08 10:01:52 +01:00
Klaus Schmidinger
45e5859ae4 Revoked 'Fixed reusing OSD in cDvbSpuDecoder' by demand of Marco Schluessler 2005-01-08 09:54:32 +01:00
Klaus Schmidinger
451b268248 Selection the audio channel does work with the Siemens DVB-S Rev 1.3 2005-01-07 16:30:41 +01:00
Klaus Schmidinger
5b2aaeaedd Fixed deleting a menu item in case the next item is not selectable 2005-01-07 16:19:29 +01:00
Klaus Schmidinger
4162bff1e7 Fixed the default quality value when grabbing a JPEG image 2005-01-07 15:56:11 +01:00
Klaus Schmidinger
7326f697b6 Changed a variable name 2005-01-07 15:44:32 +01:00
Klaus Schmidinger
bbe24e4e62 Fixed a possible race condition in cDevice::Action() 2005-01-06 16:46:18 +01:00
Klaus Schmidinger
cb696731e6 Only waiting for data if there actually is a DPid 2005-01-06 16:23:11 +01:00
Klaus Schmidinger
05bd062f79 Fixed handling preferred audio language when switching via Channels menu to the same channel 2005-01-06 14:56:08 +01:00
Klaus Schmidinger
723537ccc8 kAudio closes temporary OSD displays 2005-01-06 14:36:40 +01:00
Klaus Schmidinger
b387538887 Implemented left/right/stereo selection 2005-01-06 13:50:17 +01:00
Klaus Schmidinger
42ab8c8797 Implemented preferred audio languages 2005-01-05 10:48:22 +01:00
Klaus Schmidinger
da59a45f61 Added special handling if no audio is available 2005-01-04 13:40:38 +01:00
Klaus Schmidinger
b62328b8ae Moved setting available tracks to cDevice 2005-01-04 13:19:22 +01:00
Klaus Schmidinger
5274b4c8b3 Explicitly switch to the selected audio track with kOk 2005-01-04 12:52:17 +01:00
Klaus Schmidinger
f37f5ee6be Using '*itoa()' for compatibility with gcc 2.95 2005-01-04 11:11:16 +01:00
Klaus Schmidinger
aa1738921b Changed objalloc.h to stddef.h for compatibility with gcc 2.95 2005-01-04 11:09:51 +01:00
Klaus Schmidinger
f894ce7e00 Made cTimeMs::Now() static 2005-01-04 11:06:45 +01:00
Klaus Schmidinger
ab177a1579 Fixed reusing OSD in cDvbSpuDecoder 2005-01-02 15:29:49 +01:00
Klaus Schmidinger
0b3a801ab4 Implemented audio track menu 2005-01-02 15:11:44 +01:00
Klaus Schmidinger
286af66cfb Made several functions threadsafe (cont'd) 2004-12-26 12:45:22 +01:00
Klaus Schmidinger
f97b1069c6 Added cDevice::mutexReceiver to avoid a race condition when attaching/detaching receivers from different threads 2004-12-24 15:37:11 +01:00
Klaus Schmidinger
c49253824a Replaced time_ms() with a threadsafe and non-overflowing cTimeMs 2004-12-19 18:08:09 +01:00
Klaus Schmidinger
ce8369251c Removed delay_ms(), using cCondWait::SleepMs() instead 2004-12-19 17:22:13 +01:00
Klaus Schmidinger
1d3495a0f0 Made several functions threadsafe 2004-12-19 16:33:34 +01:00
Klaus Schmidinger
9a8ef2b6c2 Fixed a race condition in starting a thread 2004-12-19 10:58:20 +01:00
Klaus Schmidinger
f5b1a74056 Added 'channels.conf.terr' entries for Lbeck 2004-12-19 09:58:38 +01:00
Klaus Schmidinger
b2e7a4daed Fixed some typos 2004-12-19 09:36:25 +01:00
Klaus Schmidinger
f8c17d95f1 Switched the character set to iso8859-15 for English, German and Finnish 2004-12-18 16:46:49 +01:00
Klaus Schmidinger
8db2fc2d24 Fixed the character width and shifted the codes; Renamed font???.c to font???-iso8859-1.c 2004-12-18 16:42:46 +01:00
Klaus Schmidinger
f5fc989ac7 Fixed genfontfile.c (wrong width, shifted values) 2004-12-18 13:30:19 +01:00
Klaus Schmidinger
9bbcf23a86 Removed the LOCK_THREAD from the LIRC thread 2004-12-18 13:26:07 +01:00
Klaus Schmidinger
c1b39c523d Fixed setting 'synced' in cRemux when recording radio channels 2004-12-18 13:17:10 +01:00
Klaus Schmidinger
0411cd6127 Completed the Italian OSD texts 2004-12-18 13:07:10 +01:00
Klaus Schmidinger
49b822a14d Escaped the '-' and '' characters in the man pages 2004-12-18 12:42:41 +01:00
Klaus Schmidinger
c77989ee70 Added support for AC3 replay over the DVB device 2004-12-17 14:55:49 +01:00
Klaus Schmidinger
69ecb6a4d8 Fixed a possible race condition in generating the DVB device names 2004-11-27 10:28:51 +01:00
Klaus Schmidinger
a05ed03631 Re-introduced a sleep to cDvbPlayer::Action() to avoid high CPU load in still picture mode 2004-11-27 10:12:20 +01:00
Klaus Schmidinger
5c6ed74aff Fixed the spelling of 'canceling' 2004-11-26 14:18:22 +01:00
Klaus Schmidinger
eb8405695b Some more changes to the 'childTid' handling in cThread 2004-11-26 14:05:36 +01:00
Klaus Schmidinger
4146ac1928 Removed an unused variable from cTimer::GetWDayFromMDay() 2004-11-22 16:51:19 +01:00
Klaus Schmidinger
4f65416bd1 Some improvements to cPoller 2004-11-21 14:37:36 +01:00
Klaus Schmidinger
0d63ccef21 channels.conf 2004-11-21 14:30:00 +01:00
Klaus Schmidinger
c2daf37ed1 Fixed toggling the 'Day' item in the 'Timers' menu, so that it selects the right day of week for timers in the future 2004-11-21 13:28:05 +01:00
Klaus Schmidinger
969864aacb Back to the old DVB driver due to tuning failures with dvb-kernel 2004-11-21 11:30:41 +01:00
Klaus Schmidinger
c33dccf9ba Fixed handling childTid in cThread to avoid possible race conditions 2004-11-20 16:27:18 +01:00
Klaus Schmidinger
ba85b34c62 Fixed some typos in the Makefile's 'font' target 2004-11-20 14:39:44 +01:00
Klaus Schmidinger
20f6194d4f Now checking available OSD memory at runtime 2004-11-20 14:31:13 +01:00
Klaus Schmidinger
edc1440ed8 Now setting the VPID before the APID in live mode to avoid unnecessary overhead in the firmware 2004-11-20 12:26:01 +01:00
Klaus Schmidinger
c07a3a371e Fixed a possible recursion in cControl::Shutdown() 2004-11-20 11:34:04 +01:00
Klaus Schmidinger
6533efdf67 Fixed some errors in the Croatian language texts 2004-11-20 11:24:27 +01:00
Klaus Schmidinger
4045acdd51 Fixed some characters in the iso8859-2 font file 2004-11-20 11:10:32 +01:00
Klaus Schmidinger
b04f71562d Fixed a possible crash when pausing live video and the recording was unable to start 2004-11-20 11:00:26 +01:00
Klaus Schmidinger
2eda0c4113 Switched to 'dvb-kernel' driver (build-2.4) 2004-11-19 15:59:14 +01:00
Klaus Schmidinger
1d8676e85f Fixed cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond the end of the given buffer 2004-11-16 16:57:43 +01:00
Klaus Schmidinger
ac8e03a89c Implemented handling of number keys in the 'Timers' menu for toggling days 2004-11-14 16:27:27 +01:00
Klaus Schmidinger
1ed36b04bc channels.conf 2004-11-14 15:00:00 +01:00
Klaus Schmidinger
c834d84db0 Checking PID language codes for ISO 639 compliance 2004-11-14 14:28:29 +01:00
Klaus Schmidinger
e656c86153 Added missing initialization of cEvent::seen 2004-11-07 10:43:52 +01:00
Klaus Schmidinger
2ef5ba5710 Fixed a short glitch when starting a recording on the primary device while in replay or transfer mode 2004-11-07 10:31:59 +01:00
Klaus Schmidinger
f2d44b3d60 Added a missing call to cStatus::MsgOsdStatusMessage(NULL) in cSkins::Message() 2004-11-07 09:52:21 +01:00
Klaus Schmidinger
f8475a1d20 Fixed handling of pmAudioOnlyBlack 2004-11-06 13:17:35 +01:00
Klaus Schmidinger
c3e52f8da9 Fixed the cDvbSpuDecoder 2004-11-06 11:59:19 +01:00
Klaus Schmidinger
0e79c2d76e Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() 2004-11-06 11:27:06 +01:00
Klaus Schmidinger
263c3c01a2 Reactivated the NPTL check at startup 2004-11-06 10:32:00 +01:00
Klaus Schmidinger
042523bf2b Added Danish language texts 2004-11-06 10:26:52 +01:00
Klaus Schmidinger
7fbd1c5675 Changed channel number of 'itv2' 2004-11-05 15:55:55 +01:00
Klaus Schmidinger
2a7f8325d1 Fixed cChannel::SetName() in case only the ShortName or Provider has changed 2004-11-02 18:07:05 +01:00
Klaus Schmidinger
6304820a0e Now displaying the name of the remote control for which the keys are being learned inside the menu 2004-11-01 14:27:43 +01:00
Klaus Schmidinger
5abadbf1a8 channels.conf 2004-11-01 14:15:00 +01:00
Klaus Schmidinger
6a70d31734 Fixed the buffer size in cRecording::SortName() 2004-11-01 14:05:16 +01:00
Klaus Schmidinger
c054f39620 Implemented sort modes for the 'Channels' menu 2004-11-01 13:59:58 +01:00
Klaus Schmidinger
0b62aff0e3 Now using qsort() to sort cListBase lists 2004-11-01 10:40:38 +01:00
Klaus Schmidinger
c88e65b638 Fixed handling key codes that start with 0x1B in the KBD remote control code 2004-10-31 14:05:55 +01:00
Klaus Schmidinger
bd62ca6abc Added the 'portal name' to cChannels 2004-10-31 13:01:35 +01:00
Klaus Schmidinger
fd9c2d298c Now handling the channel name, short name and provider separately 2004-10-31 12:53:00 +01:00
Klaus Schmidinger
5e731865a6 Making sure that timers and channels are only saved together 2004-10-31 10:22:32 +01:00
Klaus Schmidinger
4f67ade2dc Now calling pthread_cond_broadcast() in the desctructor of cCondWait and cCondVar; using pthread_cond_broadcast() instead of pthread_cond_signal() in cCondWait 2004-10-31 09:54:50 +01:00
Klaus Schmidinger
3e3f30d88d Moved the main program loop variables further up to allow compilation with older compiler versions 2004-10-31 09:37:56 +01:00
Klaus Schmidinger
fc0596d859 Immediately displaying the new channel info when switching channel groups 2004-10-30 15:37:16 +02:00
Klaus Schmidinger
664df0902e No longer explicitly waiting for a tuner lock when switching channels 2004-10-30 15:10:50 +02:00
Klaus Schmidinger
d5018de4fe Added more checks and polling when getting frontend events 2004-10-30 14:21:13 +02:00
Klaus Schmidinger
72bdd01b43 Fixed some typos in the Makefile's 'font' target 2004-10-30 11:52:41 +02:00
Klaus Schmidinger
313448ad0c Implemented 'modified' and 'seen' for EPG schedules/events 2004-10-24 15:01:50 +02:00
Klaus Schmidinger
e41261ae46 channels.conf 2004-10-24 13:00:00 +02:00
Klaus Schmidinger
9f51fcad22 Added cCondWait::Sleep() and using it to replace all usleep() calls 2004-10-24 11:12:05 +02:00
Klaus Schmidinger
70e6038056 Added some checks when cancelling a thread and removed the usleep() in cThread::Start(); removed 'running' from cThread 2004-10-24 10:34:20 +02:00
Klaus Schmidinger
73fde7480a Removed the signal handler and WakeUp() call from cThread 2004-10-24 09:53:12 +02:00
Klaus Schmidinger
343df6266e Increased the required free buffer space in the resultBuffer of cRemux 2004-10-24 09:26:23 +02:00
Klaus Schmidinger
d507645323 Not waiting for transponder lock for EITScanner 2004-10-24 08:50:15 +02:00
Klaus Schmidinger
f7dd342f52 Fixed missing cleanup at program exit in case there is a problem with a plugin 2004-10-23 15:17:03 +02:00
Klaus Schmidinger
5105187701 Some minor code cleanups 2004-10-23 14:24:17 +02:00
Klaus Schmidinger
8ce0247091 Now actually using the iso8859-15 fonts 2004-10-23 14:07:41 +02:00
Klaus Schmidinger
1cac277daa Updated Romanian language texts and the iso8859-2 fonts 2004-10-23 14:01:57 +02:00
Klaus Schmidinger
f0a7e75d8e Taking the complete size of available data into account when deciding whether to clear the transfer buffer to avoid overflows 2004-10-23 13:40:56 +02:00
Klaus Schmidinger
af6b8ff533 Removed the usleep() call from cDvbPlayer::Action() to make VDR run on NPTL systems; also removed the NPTL check at startup 2004-10-23 12:43:23 +02:00
Klaus Schmidinger
5b2784cc4f Fixed a case where the resultBuffer in cRemux ran full before getting a sync 2004-10-23 12:06:13 +02:00
Klaus Schmidinger
8ed9becabc Fixed attaching a cPlayer to a cDevice 2004-10-23 10:18:01 +02:00
Klaus Schmidinger
41669352b7 Added a sample setup for 'DisiCon-4 Single Cable Network' 2004-10-23 10:07:38 +02:00
Klaus Schmidinger
e73912d2e7 Fixed detecting transponder lock; removed WAIT_FOR_LOCK_AFTER_TUNING; added some missing 'const' to cChannel 2004-10-23 10:04:01 +02:00
Klaus Schmidinger
657b49a1d5 Adjusted release date 2004-10-17 13:53:58 +02:00
Klaus Schmidinger
69b4aaf6bd channels.conf 2004-10-17 13:50:00 +02:00
Klaus Schmidinger
c8e7ebf4b1 Updated 'channels.conf.terr' for Hannover 2004-10-17 13:09:52 +02:00
Klaus Schmidinger
501ffe5008 Removed the 'Log' parameter from the cChannel::Set... functions 2004-10-17 12:22:56 +02:00
Klaus Schmidinger
30dfd2e701 Now only saving channels.conf after a modification made by the user 2004-10-17 11:50:21 +02:00
Klaus Schmidinger
eb18d4a5b0 If one PID can't be added, the whole cDevice::AttachReceiver() will now fail 2004-10-17 09:42:36 +02:00
Klaus Schmidinger
1f726846f5 Refined formula for making volume control more linear 2004-10-17 09:12:16 +02:00
Klaus Schmidinger
9f18dbc8cf Fixed a crash in the time search mechanism 2004-10-16 16:12:02 +02:00
Klaus Schmidinger
1125f05384 Added missing Czech characters to fontosd-iso8859-2.c 2004-10-16 15:20:25 +02:00
Klaus Schmidinger
aa1085c0dd Now skipping code table info in SI data 2004-10-16 15:16:52 +02:00
Klaus Schmidinger
fe86d58ed8 Made volume control more linear 2004-10-16 14:39:45 +02:00
Klaus Schmidinger
7ba6dae69f Made the "Channel not available!" message and mtInfo instead of mtError 2004-10-16 13:51:05 +02:00
Klaus Schmidinger
d7482c8fed Avoiding unnecessary section filter start/stops 2004-10-16 13:47:37 +02:00
Klaus Schmidinger
b60120161a Fixed libsi/Makefile to use the compiler defined in for generating file dependencies 2004-10-16 13:33:45 +02:00
Klaus Schmidinger
7f3a706726 Completed the Russian OSD texts 2004-10-16 13:21:33 +02:00
Klaus Schmidinger
eff00653c5 Moved the initialization of aPid1 and aPid2 to the beginning of cDvbDevice::cDvbDevice() 2004-10-16 12:57:51 +02:00
Klaus Schmidinger
414548446b Fixed 'newplugin' to use the compiler defined in $(CXX) for generating file dependencies 2004-10-16 12:14:31 +02:00
Klaus Schmidinger
a31266c9ec Added Estonian language texts 2004-10-16 12:00:44 +02:00
Klaus Schmidinger
27895be475 cOsdProvider::NewOsd() now always returns a valid pointer 2004-10-16 11:05:14 +02:00
Klaus Schmidinger
1a2ddff60d Fixed showing the replay mode if the OSD is currently in use 2004-10-16 10:26:34 +02:00
Klaus Schmidinger
ac13b6e161 Fixed a possible crash with inconsistent SI data 2004-10-16 10:14:19 +02:00
Klaus Schmidinger
6415cc900d Improved buffer handling 2004-10-16 09:36:28 +02:00
Klaus Schmidinger
15030f6ace Fixed a crash in case the last line in channels.conf is a group separator 2004-08-08 14:31:33 +02:00
Klaus Schmidinger
c896678b0c Fixed a possible NULL pointer assignment in cMenuText::SetText() 2004-08-08 14:21:17 +02:00
Klaus Schmidinger
30da608c70 Making sure section filters are only set if the device actually has a lock 2004-08-08 14:12:43 +02:00
Klaus Schmidinger
4a72fd75c2 Added Croatian language texts 2004-08-07 22:43:00 +02:00
Klaus Schmidinger
d99901c2ad Fixed checking for the presence of NPTL 2004-07-27 07:22:34 +02:00
Klaus Schmidinger
bee9f13024 The 'radio' channel icon is now only displayed in the ST:TNG skin if the channel actually has an APID 2004-07-18 11:39:17 +02:00
Klaus Schmidinger
1d1d202eef channels.conf 2004-07-18 11:30:00 +02:00
Klaus Schmidinger
8d508dec84 Now storing the name of the service provider (aka "bouquet") in the channel name 2004-07-18 11:17:32 +02:00
Klaus Schmidinger
bf9e7df743 Experimental support for NVOD channels 2004-07-18 11:02:50 +02:00
Klaus Schmidinger
39ad1fe179 Avoiding flashing effects in the OSD of full featured DVB cards by explicitly clearing the OSD windows before opening them 2004-07-18 10:20:31 +02:00
Klaus Schmidinger
35724f07bd Making sure the OSD reports oeWrongAlignment errors before any oeAreasOverlap error 2004-07-18 09:28:38 +02:00
Klaus Schmidinger
d32f000861 Fixed handling error case '-1' when polling CAM connections 2004-07-17 14:36:11 +02:00
Klaus Schmidinger
4807f978e5 Fixed handling error case '-1' when polling section filters 2004-07-17 14:35:31 +02:00
Klaus Schmidinger
8d0a800391 No longer adding section filters to the list of filters if they can't be opened 2004-07-17 14:22:42 +02:00
Klaus Schmidinger
a7a2bc6b06 Fixed checking the last area for misalignment in cOsd::CanHandleAreas() 2004-07-17 13:46:15 +02:00
Klaus Schmidinger
ec3f722a4f Fixed handling menu status messages when the list contents is scrolled 2004-07-17 13:29:13 +02:00
Klaus Schmidinger
2dfe413351 The function cTimers::SetEvents() now immediately returns if there is some user input 2004-07-17 12:48:14 +02:00
Klaus Schmidinger
c99e16ec41 Removed all error messages from cRecordings::ScanVideoDir() 2004-07-17 11:22:29 +02:00
Klaus Schmidinger
70ea2cbbd1 Fixed switching channels while an encrypted channel is being recorded (cont'd) 2004-06-19 13:48:25 +02:00
Klaus Schmidinger
425cb11d61 channels.conf 2004-06-19 13:00:00 +02:00
Klaus Schmidinger
a20f952f70 Fixed cRingBufferLinear::Get() in case the buffer wraps around 2004-06-19 12:33:03 +02:00
Klaus Schmidinger
c4e0e6a54a Fixed the description of cRingBufferLinear 2004-06-19 10:34:27 +02:00
Klaus Schmidinger
e610c1a01b Added a note about 'iocharset=utf8' to the INSTALL file 2004-06-19 10:15:46 +02:00
Klaus Schmidinger
667643ec23 Fixed handling the color button texts in cMenuEditStrItem 2004-06-19 09:52:55 +02:00
Klaus Schmidinger
b1737a8bcb Added cDevice::Flush() 2004-06-19 08:58:14 +02:00
Klaus Schmidinger
480afc6bc8 Fixed a memory leak in theme description handling 2004-06-18 15:06:21 +02:00
Klaus Schmidinger
f3ea26c74f Credits to Mirco Dlle 2004-06-14 15:42:32 +02:00
Klaus Schmidinger
5ed57fa1c5 The list of recordings is now kept statically in memory 2004-06-13 20:26:51 +02:00
Klaus Schmidinger
1369239b53 Fixed switching channels while an encrypted channel is being recorded 2004-06-12 15:07:29 +02:00
Klaus Schmidinger
9b0070a420 Revisited the "Fixed missing audio after replaying a DVD" change 2004-06-12 14:42:55 +02:00
Klaus Schmidinger
dcee5cb967 Fixed calculating the OSD width and height 2004-06-12 14:04:01 +02:00
Klaus Schmidinger
8108d4587f Some improvements in cOsd creation 2004-06-12 13:30:11 +02:00
Klaus Schmidinger
c3144c9ab8 Some changes to the SPU decoder interface 2004-06-12 12:59:48 +02:00
Klaus Schmidinger
0e951afc2b Checking for UTF-8 at program start 2004-06-12 10:17:20 +02:00
Klaus Schmidinger
e199411a28 Revoked the "Fixed missing audio after replaying a DVD" change because it introduced a sound disturbance when switching between channels on the same transponder 2004-06-12 09:15:12 +02:00
Klaus Schmidinger
3e72d0cc0b Checking for NPTL at program start 2004-06-10 13:22:08 +02:00
Klaus Schmidinger
def0c7aaa0 Modified 'libsi' to require callers to state the buffer sizes when getting strings in order to avoid buffer overflows 2004-06-06 14:53:21 +02:00
Klaus Schmidinger
125f3fe07b channels.conf 2004-06-06 13:00:00 +02:00
Klaus Schmidinger
a369f1a2e1 Added a note about NPTL to the INSTALL file 2004-06-06 11:56:32 +02:00
Klaus Schmidinger
f1287e89fe Added a note about the default assignment of the color keys to MANUAL 2004-06-06 11:42:38 +02:00
Klaus Schmidinger
f882ddf588 Fixed missing audio after replaying a DVD 2004-06-06 11:31:33 +02:00
Klaus Schmidinger
d42c223826 Fixed displaying the current channel when switching via the SVDRP command CHAN 2004-06-06 09:48:17 +02:00
Klaus Schmidinger
2dc9309d2d Fixed ignoring unused "none" color entries in XPM files (there was an unnecessary log entry) 2004-06-05 16:52:51 +02:00
Klaus Schmidinger
51b02cade3 Fixed a typo 2004-06-05 16:33:35 +02:00
Klaus Schmidinger
41c96300f1 No longer setting lnb voltage if the frontend is not DVB-S 2004-06-05 14:37:26 +02:00
Klaus Schmidinger
32e9db211d Ignoring unused "none" color entries in XPM files written by some broken graphics tools 2004-06-05 13:20:19 +02:00
Klaus Schmidinger
00645daa93 Implemented drawing "transparent" texts 2004-06-05 11:42:08 +02:00
Klaus Schmidinger
2a5a55cee7 Fixed cBitmap::DrawPixel(), which messed with other bitmaps' palettes in case the pixel coordinates were outside this bitmap 2004-06-05 11:24:37 +02:00
Klaus Schmidinger
916b740d99 Fixed some default parameters in 'skincurses' 2004-05-31 15:44:56 +02:00
Klaus Schmidinger
b420ef67d2 New plugin 'skincurses' 2004-05-31 14:14:33 +02:00
Klaus Schmidinger
f1722a65fb channels.conf 2004-05-31 14:10:00 +02:00
Klaus Schmidinger
d6f2f1675c Made some functions of cFont virtual to allow implementing dummy fonts for the 'curses' skin 2004-05-31 14:09:52 +02:00
Klaus Schmidinger
e056cae892 Added credits for Wane Keer 2004-05-31 14:06:37 +02:00
Klaus Schmidinger
be5931e699 Fixed handling colors in cDvbSpuPalette::yuv2rgb() 2004-05-31 08:53:30 +02:00
Klaus Schmidinger
246a1c99bb Fixed handling descriptor loops in 'libsi' 2004-05-31 08:35:12 +02:00
Klaus Schmidinger
1bc35792d1 Fixed the height of the channel display in the "Classic VDR" skin 2004-05-29 13:31:29 +02:00
Klaus Schmidinger
6b60a35f8d Added SetMessage() functions to the Replay and Channel skin functions 2004-05-29 13:21:02 +02:00
Klaus Schmidinger
a4bdc1ada3 Fixed removing the "scanning recordings..." message in case the video directory is empty 2004-05-29 10:23:21 +02:00
Klaus Schmidinger
1924da2cfe Now using more separate areas in the "ST:TNG Panels" skin 2004-05-29 09:59:45 +02:00
Klaus Schmidinger
59d03df391 Fixed setting the title in the replay display of the "Classic VDR" skin 2004-05-29 09:24:48 +02:00
Klaus Schmidinger
887194ccc1 cBitmap::DrawBitmap() now also resets the palette if the entire bitmap area is covered 2004-05-28 15:33:22 +02:00
Klaus Schmidinger
3c0dbfe19e Updated 'channels.conf.terr' for Hannover 2004-05-28 14:35:15 +02:00
Klaus Schmidinger
d63e99d8ef Implemented a default cRemote::Initialize() 2004-05-28 14:28:36 +02:00
Klaus Schmidinger
eb13b8eadd New iso8859-2 font to fix the problem with program freezes 2004-05-28 13:25:01 +02:00
Klaus Schmidinger
e46c2eff52 Completed Croatian language texts 2004-05-28 13:20:06 +02:00
Klaus Schmidinger
66538308cd Fixed a typo 2004-05-23 14:49:04 +02:00
Klaus Schmidinger
41873ff43c Added some missing cStatus::MsgOsdTextItem() calls 2004-05-23 11:22:47 +02:00
Klaus Schmidinger
dfa0e4b38b channels.conf 2004-05-23 11:00:00 +02:00
Klaus Schmidinger
730dd6b51e No longer displaying unused color buttons in the "Classic VDR" skin 2004-05-23 10:46:28 +02:00
Klaus Schmidinger
a3d32f5862 Added a missing cStatus::MsgOsdClear() to cDisplayChannel::~cDisplayChannel() 2004-05-23 10:35:59 +02:00
Klaus Schmidinger
e912e48282 Added play mode pmVideoOnly 2004-05-23 10:12:44 +02:00
Klaus Schmidinger
4c5aedbd79 Added SetText() to cMenuText 2004-05-23 09:54:06 +02:00
Klaus Schmidinger
d10624fbca Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins 2004-05-23 09:40:38 +02:00
Klaus Schmidinger
d5533f2014 Added a few missing initializations 2004-05-23 09:29:59 +02:00
Klaus Schmidinger
ea04f80d95 Fixed a memory leak in NIT processing 2004-05-22 15:47:06 +02:00
Klaus Schmidinger
927a54403d Fixed freezing picture when a recording starts on a system that always uses 'Transfer Mode' 2004-05-22 15:36:09 +02:00
Klaus Schmidinger
b239e8e2ba Fixed the OSD alignment in the SPU decoder 2004-05-22 14:06:36 +02:00
Klaus Schmidinger
8eff25b8de When processing XPM data, the color name "None" is no mapped to #00000000 2004-05-22 13:53:32 +02:00
Klaus Schmidinger
5aacc51c14 Single shot timers and events now show the day of week 2004-05-22 13:23:22 +02:00
Klaus Schmidinger
bcbb3137e7 Completed the Finnish OSD texts 2004-05-22 11:47:32 +02:00
Klaus Schmidinger
474c53658e Added a hint to PLUGINS.html about how to name a plugin that implements a skin 2004-05-22 11:43:55 +02:00
Klaus Schmidinger
a767ff9c5d Fixed some issues with gcc 3.4 2004-05-22 11:29:52 +02:00
Klaus Schmidinger
b8c26cd482 Fixed a crash when switching the skin and having selected a non-default theme that is not available for the newly selected skin 2004-05-22 10:33:46 +02:00
Klaus Schmidinger
9b7c8ac102 Fixed a typo 2004-05-16 20:16:57 +02:00
Klaus Schmidinger
38c8159730 Fixed setting the time from the DVB data stream 2004-05-16 12:58:04 +02:00
Klaus Schmidinger
26b43bde81 channels.conf 2004-05-16 12:30:00 +02:00
Klaus Schmidinger
1b6a7085a5 Added missing NULL checks when accessing sectionHandler 2004-05-16 12:15:55 +02:00
Klaus Schmidinger
92f6e5d59a Added missing 'keymacros.conf' to FILES section 2004-05-16 12:10:52 +02:00
Klaus Schmidinger
c99d9c9ded Added Croatian language texts 2004-05-16 12:05:40 +02:00
Klaus Schmidinger
5d99df7b77 Implemented 'skins' and 'themes' 2004-05-16 10:35:36 +02:00
Klaus Schmidinger
7aab06d8b1 Fixed description of 'remote.conf' 2004-04-02 08:47:34 +02:00
Klaus Schmidinger
1c11b72619 The epg2html.pl script now handles '|' in description texts 2004-03-28 11:16:17 +02:00
Klaus Schmidinger
3c4010bb75 Moved several menu item classes from menu.c to menuitems.[hc] to make them available for plugins 2004-03-28 09:20:02 +02:00
Klaus Schmidinger
b5e7c11178 Added language code handling to the subtitling descriptor in 'libsi' 2004-03-26 15:29:38 +01:00
Klaus Schmidinger
6552474ca4 Added language code handling to the subtitling descriptor in 'libssi' 2004-03-26 15:26:03 +01:00
Klaus Schmidinger
f12adec8c7 Added some 3-letter language codes 2004-03-26 15:18:46 +01:00
Klaus Schmidinger
779238c359 Improved iso8859-7 fonts 2004-03-26 15:01:03 +01:00
Klaus Schmidinger
95962e8fe7 Fixed the help for LSTE and LSTR 2004-03-25 17:01:03 +01:00
Klaus Schmidinger
4671c10030 Changed channel number of 'itv2' 2004-03-24 22:01:05 +01:00
Klaus Schmidinger
9ba2825032 Fixed handling text lengths for itemized EPG texts 2004-03-20 10:56:24 +01:00
Klaus Schmidinger
458f9bba13 Fixed handling Setup.RecordDolbyDigital, which was broken since version 1.1.6 2004-03-20 10:38:34 +01:00
Klaus Schmidinger
25154b6245 Fixed a memory leak in thread handling when using NPTL 2004-03-14 16:51:13 +01:00
Klaus Schmidinger
faea9fed91 Now explicitly turning on the LNB power at startup 2004-03-14 14:47:46 +01:00
Klaus Schmidinger
3901e9e3e3 channels.conf 2004-03-14 14:30:00 +01:00
Klaus Schmidinger
ac89e31bde Avoiding occasional bad responsiveness to user interaction caused by assigning events to timers 2004-03-14 14:28:08 +01:00
Klaus Schmidinger
07dc53331e Removed cSchedule::GetEventNumber() and cSchedule::NumEvents() 2004-03-14 13:27:57 +01:00
Klaus Schmidinger
510a205c31 Fixed a typo 2004-03-14 10:47:01 +01:00
Klaus Schmidinger
5f39e62ea1 Improved performance when paging through very long menu lists 2004-03-14 10:34:56 +01:00
Klaus Schmidinger
99f54a7780 Added a separator between the long text and the items 2004-03-13 15:08:12 +01:00
Klaus Schmidinger
56b624d209 Fixed detecting the running status in case an empty EPG event is broadcast 2004-03-13 15:01:05 +01:00
Klaus Schmidinger
1fd16f6629 Any newline characters in the 'description' of EPG events are now preserved 2004-03-13 12:41:24 +01:00
Klaus Schmidinger
6dd6aea940 Some fixes to handling itemized texts 2004-03-13 11:07:02 +01:00
Klaus Schmidinger
e4b414bae3 Completed the Russian OSD texts 2004-03-13 11:00:41 +01:00
Klaus Schmidinger
4802cd0250 Fixed a Finnish OSD text 2004-03-13 10:52:33 +01:00
Klaus Schmidinger
4f6f05161e Taking the Sid into account when detecting version changes in processing the PMT 2004-03-13 10:35:38 +01:00
Klaus Schmidinger
9c1f56ec71 Avoiding too many consecutive "ring buffer overflow" messages 2004-03-07 14:41:45 +01:00
Klaus Schmidinger
2dc3a3d399 Fixed handling VPS times at year boundaries 2004-03-07 11:53:43 +01:00
Klaus Schmidinger
823081b59e Fixed handling itemized texts in EPG data 2004-03-07 11:13:54 +01:00
Klaus Schmidinger
e070d5462c Fixed handling timers in VPS margin if the EPG scan is turned on 2004-03-07 09:40:51 +01:00
Klaus Schmidinger
12c0b0dd15 Added log entries whenever the running status of an event changes 2004-03-06 14:33:22 +01:00
Klaus Schmidinger
18d3851b72 Fixed assigning events to timers (they no longer get "stuck") 2004-03-06 11:27:08 +01:00
Klaus Schmidinger
b845ef01b5 Fixed handling the current menu item 2004-03-05 15:29:04 +01:00
Klaus Schmidinger
8ae3142f94 Fixed some descriptor handling in 'libsi' 2004-03-05 15:22:38 +01:00
Klaus Schmidinger
ad557ab214 Completed the Finnish OSD texts 2004-03-05 14:35:15 +01:00
Klaus Schmidinger
b5fd038931 Added contact info for ARD and ZDF 2004-03-03 19:20:20 +01:00
Klaus Schmidinger
198fcf437b Implemented VPS controlled timers 2004-02-29 14:21:22 +01:00
Klaus Schmidinger
4063d72760 channels.conf 2004-02-24 11:00:00 +01:00
Klaus Schmidinger
e3171acd59 Disabled 'preliminary fix for UPT error' 2004-02-24 10:15:46 +01:00
Klaus Schmidinger
d9401eb27b Fixed a typo in libsi/si.h 2004-02-24 10:09:30 +01:00
Klaus Schmidinger
36e22ad6e2 Extended the SVDRP command LSTE to allow limiting the listed data 2004-02-22 15:36:36 +01:00
Klaus Schmidinger
98f3934a58 Added 'CheckRunningStatus' when getting present/following event 2004-02-22 14:14:55 +01:00
Klaus Schmidinger
5f0a84d1bf Checking group sep 2004-02-22 13:43:55 +01:00
Klaus Schmidinger
8e61663652 Implemented handling the VPS timestamps 2004-02-22 13:33:20 +01:00
Klaus Schmidinger
45eac6d946 Added PDCDescriptor handling to 'libsi' 2004-02-22 13:08:04 +01:00
Klaus Schmidinger
1601918327 Making sure the present event is displayed in the "Schedule" menu 2004-02-21 15:40:35 +01:00
Klaus Schmidinger
6fef98aa97 Implemented an "EPG linger time" 2004-02-21 15:30:35 +01:00
Klaus Schmidinger
c969c77d9c Now using the 'running status' in the channel display 2004-02-21 14:52:37 +01:00
Klaus Schmidinger
340d9bcb0f The EPG data is now always kept sorted chronologically in the internal data structures 2004-02-21 13:56:20 +01:00
Klaus Schmidinger
15e6b261ba Removed the obsolete 'present' and 'following' handling from the EPG data 2004-02-21 12:33:54 +01:00
Klaus Schmidinger
e9c6425168 Added the 'running status' to the EPG events 2004-02-21 12:28:17 +01:00
Klaus Schmidinger
062935a844 Fixed some Russian OSD texts 2004-02-21 09:58:49 +01:00
Klaus Schmidinger
402184b9da Added subtable ID and TSDT handling to 'libsi' 2004-02-20 13:54:14 +01:00
Klaus Schmidinger
c817c341ce Fixed handling receivers in the 'sky' plugin 2004-02-15 15:07:27 +01:00
Klaus Schmidinger
0a3f7e7ca2 Limited automatic retuning to devices that actually provide the transponder 2004-02-15 14:31:53 +01:00
Klaus Schmidinger
955d5eb012 Adapted the 'sky' plugin to use the actual channel IDs, and to fetch EPG data from www.bleb.org 2004-02-15 13:35:52 +01:00
Klaus Schmidinger
ce882e5cf0 Fixed a typo 2004-02-14 11:29:57 +01:00
Klaus Schmidinger
6281a196f1 Replacing control characters with blanks in EPG; deleting duplicate text in EPG's short text and description 2004-02-14 11:00:00 +01:00
Klaus Schmidinger
96055681fc Initiating an emergency exit on too many UPT errors per recording 2004-02-14 10:43:57 +01:00
Klaus Schmidinger
06d5342393 Fixed transponder handling to make it work with satellites that provide two transponders on the same frequency, with different polarization 2004-02-13 15:50:26 +01:00
Klaus Schmidinger
30d262fa88 Fixed editing and creating new channels 2004-02-13 13:36:52 +01:00
Klaus Schmidinger
f379b56d0e Fixed switching to a visible programme in case the current channel has neither a video nor an audio PID 2004-02-13 13:15:12 +01:00
Klaus Schmidinger
d828badbe0 Fixed reading the EPG preferred language parameter from 'setup.conf' 2004-02-09 17:04:50 +01:00
Klaus Schmidinger
a605ca5cdb Fixed a typo 2004-02-08 15:28:11 +01:00
Klaus Schmidinger
a5076ac2ba channels.conf 2004-02-08 15:20:00 +01:00
Klaus Schmidinger
327db5aee3 Removed the now obsolete CaCaps stuff 2004-02-08 15:11:07 +01:00
Klaus Schmidinger
0d6715d862 No longer closing the Channels menu after trying to switch to a channel that is currently not available 2004-02-08 14:15:01 +01:00
Klaus Schmidinger
64683c2438 Enabled switching to a channel even if it has no Vpid or Apid set 2004-02-08 14:08:03 +01:00
Klaus Schmidinger
1a91d46cf3 Fixed the validity check for channel IDs, because some providers use TIDs with value 0 2004-02-08 12:22:24 +01:00
Klaus Schmidinger
acc25ade19 Removed an unnecessary pointer check 2004-02-08 11:23:29 +01:00
Klaus Schmidinger
8f5deb8327 Preliminary fix for the "Unknown picture type error" 2004-02-08 11:13:36 +01:00
Klaus Schmidinger
da3c91f01b Now handling "linked services" 2004-02-08 11:05:22 +01:00
Klaus Schmidinger
8c71aab9bc Added a missing blank 2004-02-07 15:51:57 +01:00
Klaus Schmidinger
a09f209122 Fixed handling bitmap indexes for 256 color mode 2004-01-31 10:34:05 +01:00
Klaus Schmidinger
f48061576e Fixed the SVDRP command 'STAT DISK' to avoid a 'division by 0' in case the disk is full 2004-01-31 10:15:58 +01:00
Klaus Schmidinger
1884b72ff3 Fixed handling CA ids (was broken in 1.3.4) 2004-01-26 16:28:35 +01:00
Klaus Schmidinger
76866e7019 Fixed handling language codes in case there is no audio or Dolby PID 2004-01-25 16:10:04 +01:00
Klaus Schmidinger
926e83529d Added a call to cStatus::MsgOsdCurrentItem() to cMenuEditItem::SetValue() 2004-01-25 15:43:11 +01:00
Klaus Schmidinger
73b502bedd channels.conf 2004-01-25 15:36:07 +01:00
Klaus Schmidinger
958c84f00a Implemented 32 audio and Dolby PIDs; storing audio language in channels.conf 2004-01-25 15:32:08 +01:00
Klaus Schmidinger
da7edf6e97 Now setting CA descriptors even if Setup/DVB/Update 2004-01-25 14:07:24 +01:00
Klaus Schmidinger
3e3abc65f1 Fixed frequency handling when setting the CA descriptors in cDvbTuner::Action() 2004-01-25 14:04:03 +01:00
Klaus Schmidinger
12fd3cdeb4 Changed the 'languageCode' members in the descriptor classes of 'libsi' to 'char[4]' and setting the 4th byte to 0 for easier handling 2004-01-24 14:59:04 +01:00
Klaus Schmidinger
72189b5228 Added ISO639LanguageDescriptor to 'libsi' 2004-01-24 14:49:51 +01:00
Klaus Schmidinger
a4b743b355 Completed the Finnish OSD texts 2004-01-24 10:03:55 +01:00
Klaus Schmidinger
a3d995547f Fixed setting the source type for newly detected terrestrial transponders 2004-01-18 16:34:25 +01:00
Klaus Schmidinger
833a89289b Now only processing NITs that contain the transponder they are actually broadcast on 2004-01-18 16:31:58 +01:00
Klaus Schmidinger
5651c5542f channels.conf 2004-01-18 14:29:18 +01:00
Klaus Schmidinger
ca6aabe84b Added 'libsi' include files to the 'include' directory, so that plugins can use them 2004-01-18 14:18:11 +01:00
Klaus Schmidinger
dac9932ef0 Fixed some out of bounds parameter settings when scanning NITs for cable and satellite transponders 2004-01-18 10:09:47 +01:00
Klaus Schmidinger
043fe49ff8 Fixed wrong parameter settings when scanning NITs for terrestrial transponders 2004-01-18 09:56:31 +01:00
Klaus Schmidinger
1d5c378d20 Excess blanks in channel names read from the SDT are now removed 2004-01-17 17:32:22 +01:00
Klaus Schmidinger
b21d2c4f12 Fixed handling PID changes in 'Transfer Mode' 2004-01-17 17:19:34 +01:00
Klaus Schmidinger
48dc6d8710 New SVDRP command SCAN 2004-01-17 15:41:52 +01:00
Klaus Schmidinger
e4960d169e The "Red" button in the "Setup/EPG" menu can now be used to force an EPG scan on a single DVB card system 2004-01-17 15:38:11 +01:00
Klaus Schmidinger
004b82d3d4 The EPG scan now scans newly found transponders together with already existing ones 2004-01-17 13:13:47 +01:00
Klaus Schmidinger
12d9883261 Short channel names are now only stored if they actually differ from the full name 2004-01-17 11:31:12 +01:00
Klaus Schmidinger
caf282e406 Channels with a zero VPID no longer write a PPID into channels.conf 2004-01-16 15:52:15 +01:00
Klaus Schmidinger
6dd075fe53 Activated detection of radio channels 2004-01-16 15:09:22 +01:00
Klaus Schmidinger
7d3f63a402 Fixed a wrong 'delta' value in the call to the shutdown script 2004-01-16 14:01:48 +01:00
Klaus Schmidinger
00e08f5821 Some corrections and additions to the Finnish OSD texts 2004-01-16 13:50:04 +01:00
Klaus Schmidinger
9dfa448134 Added Russian language texts 2004-01-16 13:34:43 +01:00
Klaus Schmidinger
2a11c183b5 Added LinkageDescriptor handling to 'libsi' 2004-01-12 22:19:34 +01:00
Klaus Schmidinger
89ecc6b452 Fixed resetting the EPG data versions after changing the preferred languages 2004-01-11 21:42:23 +01:00
Klaus Schmidinger
7f9d14ee8b The actual transponder data is now taken from the NIT 2004-01-11 15:54:37 +01:00
Klaus Schmidinger
43ca916c20 Fixed a possible NULL pointer access in cEITScanner::Process() 2004-01-10 16:52:01 +01:00
Klaus Schmidinger
0a62be0274 Added %m to error message 2004-01-10 12:21:41 +01:00
Klaus Schmidinger
00d52b12c6 In case of incomplete sections an error message is now logged only every 10 seconds 2004-01-10 11:45:42 +01:00
Klaus Schmidinger
37a73ed5b4 Fixed testing for matching section filters in case they are turned off 2004-01-10 10:03:58 +01:00
Klaus Schmidinger
732387379d Fixed the 'su' call in 'runvdr' 2004-01-09 16:21:03 +01:00
Klaus Schmidinger
299a600c3c Fixed a 'const' in libsi/si.h 2004-01-09 16:18:45 +01:00
Klaus Schmidinger
6484771bf6 Added support for selecting preferred EPG languages 2004-01-09 15:53:59 +01:00
Klaus Schmidinger
bd38a10ff9 Changed 'subtitle' to 'short text' 2004-01-05 15:26:33 +01:00
Klaus Schmidinger
a8482ae3ff Fixed NumberedSection::moreThanOneSection() 2004-01-05 14:54:55 +01:00
Klaus Schmidinger
2bf718b62f Enhanced the SDT filter to handle multi part sections 2004-01-05 14:30:31 +01:00
Klaus Schmidinger
3f5c7e67ea Changed calculation of channel ids to make it work for tv stations that use the undefined NID value 0 2004-01-05 12:55:07 +01:00
Klaus Schmidinger
0901afcf6d Fixed a crash in case there is no DVB hardware present 2004-01-05 12:29:26 +01:00
Klaus Schmidinger
6096500940 Added 'Update channels' setup parameter 2004-01-05 12:08:09 +01:00
Klaus Schmidinger
eab7806f20 Fixed a warning about character comparison in libsi/si.c 2004-01-05 11:04:17 +01:00
Klaus Schmidinger
a84d559d2c Fixed a compiler warning about virtual cConfig::Load() functions 2004-01-05 10:15:19 +01:00
Klaus Schmidinger
113957107e Fixed a lockup in the EPG scanner when no non-primary device was available 2004-01-05 09:56:54 +01:00
Klaus Schmidinger
a80709f1dd Limited the line length in the EPG bugfix report 2004-01-04 15:20:42 +01:00
Klaus Schmidinger
f192a51002 Increased the maximum number of possible OSD colors to 256 2004-01-04 15:19:20 +01:00
Klaus Schmidinger
15be71c007 channels.conf 2004-01-04 14:59:42 +01:00
Klaus Schmidinger
06688d22ea Now delivering control character 0x86 and 0x87, which some stations use to mark short names 2004-01-04 14:26:53 +01:00
Klaus Schmidinger
97c3658803 Added README.developer 2004-01-04 14:16:28 +01:00
Klaus Schmidinger
8976ebcec5 Implemented automatic PID switching and channel detection 2004-01-04 12:30:00 +01:00
Klaus Schmidinger
3a1058fe1f Fixed the TypeLoop class 2003-12-25 13:30:56 +01:00
Klaus Schmidinger
36c9c8811d Now using the 'version number' of EPG events to avoid unnecessary work 2003-12-25 12:50:22 +01:00
Klaus Schmidinger
6c4e6cc666 Now the CA descriptors are sent to the CAM in the 'program' or 'ES level' sections 2003-12-24 10:30:35 +01:00
Klaus Schmidinger
1d32f7c059 Added 'StreamType' setting to CAM communication 2003-12-23 10:34:51 +01:00
Klaus Schmidinger
5433caa410 Added a note about deleting cFilter 2003-12-22 16:53:41 +01:00
Klaus Schmidinger
8841097e3a Fixed an alignment problem in CAM access on 64bit systems 2003-12-22 15:59:18 +01:00
Klaus Schmidinger
0acb4dc6d0 Fixed a problem with crc32 in SI handling on 64bit systems 2003-12-22 14:18:48 +01:00
Klaus Schmidinger
7ff59171e3 Changed section handling; replaced 'libdtv' with 'libsi' 2003-12-22 13:29:24 +01:00
Klaus Schmidinger
84b99ea810 Added instructions for new character encodings 2003-12-13 11:09:17 +01:00
Klaus Schmidinger
8f5407bc81 Removed superfluous white space; added RCS Id 2003-12-13 10:43:26 +01:00
Klaus Schmidinger
7559685c8c Cleaned up Makefile 2003-12-13 10:41:39 +01:00
Klaus Schmidinger
161927f9fc Added 'libsi' 2003-11-22 17:56:45 +01:00
Klaus Schmidinger
b8034ba390 Final release of version 1.2.6 2003-11-14 13:31:34 +01:00
Klaus Schmidinger
2c24c9494a Fixed processing EPG data in case there is no title 2003-11-09 12:08:22 +01:00
Klaus Schmidinger
8e4a745ada Fixed handling Priority -1 in cDvbDevice::ProvidesChannel() 2003-11-09 11:21:06 +01:00
Klaus Schmidinger
8b96cd93b9 Fixed getting the list of recordings in case VDR is started from a directory where it doesn't have access to 2003-11-08 15:46:29 +01:00
Klaus Schmidinger
71a2293fe9 Added North American satellites to 'sources.conf' 2003-11-07 16:22:34 +01:00
Klaus Schmidinger
7a47695182 Added Asia-Pacific satellites to 'sources.conf' 2003-11-07 15:33:16 +01:00
Klaus Schmidinger
85767a5405 Added cDevice::GetSTC() 2003-11-07 14:16:25 +01:00
Klaus Schmidinger
2a7467aed5 Added missing 'const' to some cChannel member functions 2003-10-26 13:32:24 +01:00
Klaus Schmidinger
eb63966268 Fixed handling CAM menus in case the CAM connection fails while the menu is being presented 2003-10-26 13:19:22 +01:00
Klaus Schmidinger
c23a93f302 Fixed handling comments in editing marks 2003-10-24 15:49:30 +02:00
Klaus Schmidinger
20168755e6 Continuing learning remote control keys in case one rc fails 2003-10-24 15:48:09 +02:00
Klaus Schmidinger
2ab8af3dd5 Improved cDvbDevice::StillPicture() (cont'd) 2003-10-24 15:46:33 +02:00
Klaus Schmidinger
27d95dfb39 Greek language texts now use iso8859-7 character set 2003-10-24 13:13:02 +02:00
Klaus Schmidinger
c94570e69d Changed font handling to allow language specific character sets; adopted the small font character set from the "Elchi" patch 2003-10-24 12:53:12 +02:00
Klaus Schmidinger
2b29a5ce36 Improved cDvbDevice::StillPicture() 2003-10-19 12:59:16 +02:00
Klaus Schmidinger
e7b6b2fff7 Mutexes are now created with PTHREAD_MUTEX_ERRORCHECK_NP 2003-10-18 13:20:01 +02:00
Klaus Schmidinger
b658b1fe16 Added "Slovak Link" and "Czech Link" to 'ca.conf' 2003-10-18 12:51:43 +02:00
Klaus Schmidinger
e53e43d2b8 The cThread class now accepts a 'Description' parameter 2003-10-18 12:29:08 +02:00
Klaus Schmidinger
15816ee8e4 Changed thread handling to make it work with NPTL 2003-10-18 11:14:33 +02:00
Klaus Schmidinger
f1a4d067be Channel IDs are now checked when reading 'channels.conf' to avoid later problems with timers 2003-10-17 15:42:40 +02:00
Klaus Schmidinger
d5c46a4ad5 Fixed a typo 2003-10-17 15:36:13 +02:00
Klaus Schmidinger
8de5fbcbe1 Edited recordings will now never be deleted automatically if the disk runs full 2003-10-17 14:40:37 +02:00
Klaus Schmidinger
1a22d480a8 Changed the default "Lifetime" to 99 2003-10-17 14:14:46 +02:00
Klaus Schmidinger
d800cf56f5 Fixed extracting the ES data and added MPEG1 handling to cDvbDevice::StillPicture() 2003-10-17 13:47:03 +02:00
Klaus Schmidinger
bbffcee572 Removed the unused 0x73 (TOT) filter in eit.c 2003-10-12 11:06:56 +02:00
Klaus Schmidinger
57239b8271 Now trying to get a timer's channel without RID when loading 'timers.conf' 2003-10-12 10:35:22 +02:00
Klaus Schmidinger
d14de196e8 Fixed initializing the highlight area in cDvbSpuDecoder 2003-10-12 09:45:51 +02:00
Klaus Schmidinger
f163e785fb Fixed handling rc key learning in case cRemote::Initialize() returns 'false' 2003-10-05 09:51:02 +02:00
Klaus Schmidinger
e4c3316bd2 Updated 'channels.conf.terr' for Berlin 2003-10-05 09:38:36 +02:00
Klaus Schmidinger
3f12ebbccb Fixed detecting the /dev/videoN devices for GRAB in case there are others before the DVB devices 2003-10-04 12:42:58 +02:00
Klaus Schmidinger
944ffee0a1 Fixed handling a channels.conf that contains a ":@nnn" line as its last entry 2003-10-03 15:16:08 +02:00
Klaus Schmidinger
4eecc59ef8 Fixed missing channel info after an incomplete channel group switch 2003-10-03 14:38:49 +02:00
Klaus Schmidinger
80c822c1c5 Updated the required driver version in INSTALL 2003-10-03 11:49:31 +02:00
Klaus Schmidinger
56e882fa6a Fixed a typo 2003-09-21 09:07:05 +02:00
Klaus Schmidinger
539e6623fd Updated 'channels.conf.cable' 2003-09-17 16:12:38 +02:00
Klaus Schmidinger
78fbdfa0f7 Updated 'ca.conf' 2003-09-14 11:17:07 +02:00
Klaus Schmidinger
e45b9d0be3 Made cOsdMenu::Display() virtual 2003-09-14 11:05:44 +02:00
Klaus Schmidinger
903148b5ad Added 'repeat' function keys '7' and '9' ("jump to mark") in replay mode 2003-09-14 10:53:06 +02:00
Klaus Schmidinger
c89a686254 Fixed checking for VIDEO_STREAM_S in cRemux::SetBrokenLink() 2003-09-14 10:43:46 +02:00
Klaus Schmidinger
e7ee82ad16 Set version to 1.2.5pre3 - there were too many changes to just release it as stable 2003-09-14 10:24:39 +02:00
Klaus Schmidinger
fc78971a28 VDR now starts up even if 'keymacros.conf' references a plugin that is currently not loaded 2003-09-14 10:07:47 +02:00
Klaus Schmidinger
07bc699dca Made 'diseqc.conf' a required file only if Setup.DiSEqC is activated 2003-09-14 09:38:44 +02:00
Klaus Schmidinger
ac4393b866 Completed Dutch language texts 2003-09-11 13:51:56 +02:00
Klaus Schmidinger
ddf1aa9664 Removed the obsolete chapter "Stopping a recording on the primary DVB interface" from MANUAL 2003-09-09 21:38:19 +02:00
Klaus Schmidinger
82afdd1574 Fixed the URL to the 'Doxygen' tool in INSTALL 2003-09-09 19:03:29 +02:00
Klaus Schmidinger
a4c7d7b8a7 Fixed handling ':' characters in channel names when reading channels.conf 2003-09-09 18:55:26 +02:00
Klaus Schmidinger
19efbe4503 Fixed dropping out of replay mode while viewing a recording that is still going on 2003-09-09 16:09:05 +02:00
Klaus Schmidinger
ec78dbe9e4 Adjusted date 2003-09-07 09:02:19 +02:00
Klaus Schmidinger
ee10028dc6 The DVB devices no longer send CA descriptors to the CAM while the EPG scanner is active 2003-09-06 13:22:24 +02:00
Klaus Schmidinger
6d677e2a89 When setting an editing mark while in "Pause" mode, replay now immediately jumps to the marked frame 2003-09-06 10:35:24 +02:00
Klaus Schmidinger
8d89fb4983 Fixed handling the "Red" button in the "Schedules" menu in case there are no events listed for a particular channel 2003-09-05 13:34:17 +02:00
Klaus Schmidinger
679dcebbb2 Fixed setting the primary device in case none of the devices provides an MPEG decoder 2003-09-05 13:15:51 +02:00
Klaus Schmidinger
483f6c3970 Added a note about the driver version needed for the still picture fix from version 1.2.5pre1 to work properly 2003-09-05 13:06:58 +02:00
Klaus Schmidinger
ca9e7b6937 Fixed a crash when using the --terminal option without having access to the given terminal 2003-09-05 13:02:15 +02:00
Klaus Schmidinger
2ac21ab000 Changed "Studio Universal" to "Sci-Fi" in channels.conf 2003-09-05 12:47:49 +02:00
Klaus Schmidinger
305d237bfa channels.conf 2003-09-05 12:46:20 +02:00
Klaus Schmidinger
aabe735f6c Updated VIVA, VIVA Plus, MTV Central and MTV 2 in channels.conf 2003-09-05 12:46:03 +02:00
Klaus Schmidinger
ec765ee91c Added a note about VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES 2003-08-31 13:06:18 +02:00
Klaus Schmidinger
ab622153ed Now clearing the player device if there are too many poll timeouts in 'Transfer Mode' 2003-08-31 12:41:19 +02:00
Klaus Schmidinger
105825f312 Actually implemented the SVDRP command DELC 2003-08-31 11:26:46 +02:00
Klaus Schmidinger
cf45c66062 Fixed handling extra blanks in plugin command lines 2003-08-30 14:52:58 +02:00
Klaus Schmidinger
7a64aeec74 Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call directly 2003-08-30 11:48:45 +02:00
Klaus Schmidinger
d07ae214f9 Updated 'channels.conf.terr' for Berlin 2003-08-30 10:32:54 +02:00
Klaus Schmidinger
a1b0d071fc Explicitly handling exit value 0 and 2 in runvdr 2003-08-30 10:23:04 +02:00
Klaus Schmidinger
37c340e51a Fixed a hangup in SVDRP when the client disappears without sending QUIT 2003-08-30 10:14:42 +02:00
Klaus Schmidinger
642f8c0f13 Added channels for DVB-T Hannover (Germany) to channels.cont.terr 2003-08-30 09:24:49 +02:00
Klaus Schmidinger
111b8c3f78 Explicitly handling exit value 0 and 2 2003-08-26 16:15:41 +02:00
Klaus Schmidinger
5e61dc1be3 Added a missing 'w' to the allowed characters for Finnish and Swedish 2003-08-26 15:28:29 +02:00
Klaus Schmidinger
2a58a468c8 Fixed an alleged typo 2003-08-26 15:23:38 +02:00
Klaus Schmidinger
00170e8275 Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a recording on the primary device 2003-08-24 14:49:53 +02:00
Klaus Schmidinger
056c902c21 Fixed starting a recording on the primary device if there is a replay session active 2003-08-24 14:47:34 +02:00
Klaus Schmidinger
7c2283b502 Fixed a bug in resetting OSD color palettes 2003-08-24 11:42:08 +02:00
Klaus Schmidinger
ca39b3f03a VDR now continues to start up, even if there is an error in setup.conf 2003-08-24 11:19:13 +02:00
Klaus Schmidinger
76e1427bde Added a note about the config files of plugins to INSTALL 2003-08-24 11:09:30 +02:00
Klaus Schmidinger
60f8afdfcc Empty values in setup.conf are no longer treated as an error 2003-08-24 11:01:42 +02:00
Klaus Schmidinger
b0069f3410 Completed the Finnish OSD texts 2003-08-24 10:52:20 +02:00
Klaus Schmidinger
60341fc883 Fixed 'runvdr' to stay in the loop only if VDR returns an exit status of '1' 2003-08-17 14:48:11 +02:00
Klaus Schmidinger
12d5d01faa Removing deleted recordings faster than normal when cutting 2003-08-17 09:18:40 +02:00
Klaus Schmidinger
b65687ebcf Made the "Zap timeout" a setup variable 2003-08-17 08:58:02 +02:00
Klaus Schmidinger
3a27bdfeda Fixed toggling channels with the '0' key 2003-08-16 15:27:26 +02:00
Klaus Schmidinger
2eec57fe18 Fixed freezing replay if a timer starts while in Transfer Mode 2003-08-16 13:24:23 +02:00
Klaus Schmidinger
2e9ef13f1c Fixed a crash when starting "Pause live video" twice within the same minute on the same channel 2003-08-16 10:41:21 +02:00
Klaus Schmidinger
57a95c6790 VDR now stops with result value 2 if one of the configuration files can't be read correctly at program startup 2003-08-16 09:18:52 +02:00
Klaus Schmidinger
fc19cf3527 Fixed staying off the end of an ongoing recording while replaying in time shift mode 2003-08-15 15:24:54 +02:00
Klaus Schmidinger
79c7d1fe9b Made crc32() a static function in libdtv/libsi/si_parser.c 2003-08-15 14:04:48 +02:00
Klaus Schmidinger
7a3c2df2f4 Fixed two warnings when compiling with gcc 3.3.1 2003-08-15 13:50:08 +02:00
Klaus Schmidinger
26ffdd1c83 Fixed scaling SPU bitmaps in Letterbox mode when playing NTSC material 2003-08-15 13:05:50 +02:00
Klaus Schmidinger
71283dbeb1 Made the plugin library directory configurable via Make.config 2003-08-09 11:09:45 +02:00
Klaus Schmidinger
d369eb9408 Fixed keeping track of the current channel number when moving channels in the "Channels" menu 2003-08-09 10:19:33 +02:00
Klaus Schmidinger
b9a8abbe93 Fixed the TS to PES repacker so that it works with MPEG1 streams 2003-08-06 14:52:50 +02:00
Klaus Schmidinger
f8386cdd8b Added the usual menu timeout to the CAM menus 2003-08-03 09:54:18 +02:00
Klaus Schmidinger
ba1c9fb534 Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile or Makefile.config as defaults 2003-08-02 14:32:53 +02:00
Klaus Schmidinger
746b232299 Fixed a possible crash in case a VFAT file system is used without compiling VDR with VFAT=1 2003-08-02 13:23:58 +02:00
Klaus Schmidinger
44992533f0 Fixed selecting the device, because sometimes an FTA recording terminated a CA recording 2003-08-02 11:52:29 +02:00
Klaus Schmidinger
a021b0f1bf Fixed checking CA capabilities with the dvb-kernel driver 2003-08-02 10:04:21 +02:00
Klaus Schmidinger
0485e5ad00 Fixed handling channel switching through numeric input in case the channel numbers contain gaps 2003-07-26 16:10:39 +02:00
Klaus Schmidinger
eb2cd2b73e Fixed an occasional "Broken pipe" error in SVDRP connections 2003-07-26 10:59:19 +02:00
Klaus Schmidinger
1ea8f44953 Fixed handling the color buttons in the "Edit channel" menu 2003-07-26 10:09:38 +02:00
Klaus Schmidinger
734941a285 Added missing I18N entry for "Ppid" 2003-07-26 09:40:19 +02:00
Klaus Schmidinger
954d00959c channels.conf 2003-06-22 13:41:17 +02:00
Klaus Schmidinger
7a79fef0c8 Now clearing the channel info display when entering numeric keys to switch channels 2003-06-19 10:10:14 +02:00
Klaus Schmidinger
1922b14010 Changed the behaviour of the '0' key in normal viewing mode to have a 3 second timeout 2003-06-19 10:06:07 +02:00
Klaus Schmidinger
8635511b28 Fixed creating a new channel in the "Channels" menu in case the 'channels.conf' contains ':@nnn' lines with no text 2003-06-15 12:29:56 +02:00
Klaus Schmidinger
bc16b8af53 Improved channel switching in case of numerical input 2003-06-13 14:44:31 +02:00
Klaus Schmidinger
68002f0037 Fixed a bug in channel switching after Left/Right has been pressed 2003-06-12 20:37:14 +02:00
Klaus Schmidinger
5bfe620b5b Some corrections to the Finnish OSD texts 2003-06-09 09:50:26 +02:00
Klaus Schmidinger
79b6aefb88 Fixed a wrong Hungarian text line 2003-06-09 09:47:20 +02:00
Klaus Schmidinger
60b8357463 Initializing the current channel to '1' 2003-06-08 09:25:07 +02:00
Klaus Schmidinger
50076b8059 Fixed device handling in the CICAM menu in case a VDR instance was started with a specific device using the -D option 2003-06-07 12:56:19 +02:00
Klaus Schmidinger
9652b45809 Completed Hungarian language texts 2003-06-06 15:43:49 +02:00
Klaus Schmidinger
2390d7b1fd Fixed a crash when cancelling a newly created timer 2003-06-06 15:02:37 +02:00
Klaus Schmidinger
3208f4eddd Fixed editing channels ('timers.conf' was not written) 2003-06-06 13:30:52 +02:00
Klaus Schmidinger
2a651d0ed0 Fixed OSD access in case none of the devices provides one 2003-06-06 12:28:29 +02:00
Klaus Schmidinger
60ef7abfb1 Official release of version 1.2.0 2003-06-01 08:58:38 +02:00
Klaus Schmidinger
add7057eb6 Some corrections to the Finnish OSD texts 2003-06-01 08:50:29 +02:00
Klaus Schmidinger
d55d87be1a Added a note about NPTL to the INSTALL file 2003-05-31 16:20:59 +02:00
Klaus Schmidinger
84fc25e97a Completed Polish language texts 2003-05-31 09:35:45 +02:00
Klaus Schmidinger
6676c08bf8 Updated Greek language texts 2003-05-31 09:10:58 +02:00
Klaus Schmidinger
416c85593c Completed Greek language texts 2003-05-31 09:09:45 +02:00
Klaus Schmidinger
77b56da51f Fixed breaking off replay in case the user hits "Play" or "Pause" too soon after going into "Pause live video" mode 2003-05-30 13:23:54 +02:00
Klaus Schmidinger
de86dc7d01 Added the UPDATE-1.2.0 file 2003-05-30 09:00:00 +02:00
Klaus Schmidinger
a3efbc248a Fixed a possible access of invalid file handles in cSIProcessor::Action() 2003-05-29 15:10:12 +02:00
Klaus Schmidinger
14790d6f7a Some touchups for version 1.2.0 2003-05-29 12:44:06 +02:00
Klaus Schmidinger
b8c2934668 Fixed an uninitialized variable in cDisplayChannel 2003-05-29 11:45:13 +02:00
Klaus Schmidinger
984c51ef91 Single event timers are now deleted if the recording they are doing is deleted before the timer ends 2003-05-29 11:39:29 +02:00
Klaus Schmidinger
33079db2de Fixed missing blanks 2003-05-29 11:06:07 +02:00
Klaus Schmidinger
dfca32a6a1 Some corrections to the Catalanian OSD texts 2003-05-29 10:39:25 +02:00
Klaus Schmidinger
d2d2b75b2c Added an additional sleep() after going into "Pause live video" mode 2003-05-29 09:47:31 +02:00
Klaus Schmidinger
b417112bd4 Completed the Italian OSD texts 2003-05-27 15:38:42 +02:00
Klaus Schmidinger
e20f6abae8 Some corrections to the Finnish OSD texts 2003-05-27 15:32:25 +02:00
Klaus Schmidinger
92395cb29d Fixed some missing commas 2003-05-27 07:30:43 +02:00
Klaus Schmidinger
21ba50c356 Some corrections to the French OSD texts 2003-05-26 15:52:44 +02:00
Klaus Schmidinger
ffc7a80577 It is now possible to directly delete a timer that is currently recording 2003-05-25 14:14:32 +02:00
Klaus Schmidinger
ecd74adeca Rearranged priority/lifetime texts 2003-05-25 14:03:00 +02:00
Klaus Schmidinger
1ddca1d2bc Removed change markers 2003-05-25 14:00:00 +02:00
Klaus Schmidinger
7e5878856f Fixed handling newly created timers in case they are not confirmed with "Ok" 2003-05-25 13:58:21 +02:00
Klaus Schmidinger
0eb11ea3de Checking for duplicate recordings with the same file name and disabling the second timer 2003-05-25 12:56:26 +02:00
Klaus Schmidinger
b92bb866f6 The cCiHandler now closes its file handle when it gets destroyed 2003-05-25 11:51:28 +02:00
Klaus Schmidinger
4289180a03 Changed the DEFAULTPRIORITY in device.c to -1 2003-05-25 11:02:58 +02:00
Klaus Schmidinger
3103fb6fba Completed the Slovenian OSD texts 2003-05-25 09:51:59 +02:00
Klaus Schmidinger
faafa62587 Fixed cReplayControl::Show() to avoid a compiler warning in g++ 3.2.3 2003-05-24 16:41:35 +02:00
Klaus Schmidinger
44dbfe9f38 Fixed channel switching in case the current channel becomes unavailable 2003-05-24 15:34:30 +02:00
Klaus Schmidinger
609285eb64 Completed the Swedish OSD texts 2003-05-24 14:04:45 +02:00
Klaus Schmidinger
e26e6b2e5a Fixed channel switching in the EPG scanner on single device systems 2003-05-24 13:38:28 +02:00
Klaus Schmidinger
755835ce44 Some more French OSD texts 2003-05-24 12:51:02 +02:00
Klaus Schmidinger
536669a139 Fixed volume display in case a plugin has its own OSD open 2003-05-24 12:17:59 +02:00
Klaus Schmidinger
7a5ef9e999 Fixed cutting a recording if there is only a single editing mark 2003-05-24 12:01:52 +02:00
Klaus Schmidinger
743a3ec123 Fixed resume file handling in case the resume.vdr file can't be written 2003-05-24 11:22:34 +02:00
Klaus Schmidinger
38fbbb469d Fixed I/O handling in case an explicit controlling terminal is given 2003-05-24 11:08:47 +02:00
Klaus Schmidinger
9e9b2b4caf Some more French OSD texts 2003-05-24 11:01:58 +02:00
Klaus Schmidinger
ac194b4722 Completed the Finnish OSD texts 2003-05-24 11:00:26 +02:00
Klaus Schmidinger
94d43a19e6 Completed the French OSD texts 2003-05-24 10:26:36 +02:00
Klaus Schmidinger
987c2f34e7 Fixed a memory leak in cNonBlockingFileReader 2003-05-24 09:10:07 +02:00
Klaus Schmidinger
24bbaa277c Modified handling of audio packets in cDvbPlayer for better sync with external AC3 replay 2003-05-24 08:48:49 +02:00
Klaus Schmidinger
a28e2ef5b5 No longer waiting inside cIndexFile::CatchUp() to avoid shortly blocking replay at the end of a recording 2003-05-18 15:21:14 +02:00
Klaus Schmidinger
c6f6e881f8 Changed comment since 'buffer empty' was removed from the driver 2003-05-18 15:15:00 +02:00
Klaus Schmidinger
2ec3f0342b Fixed EPG bugfix statistics to avoid log entires for undefined channels 2003-05-18 14:13:02 +02:00
Klaus Schmidinger
c58f61392b Fixed reading 'epg.data' for channels with non-zero RID 2003-05-18 13:13:31 +02:00
Klaus Schmidinger
e597b304ec Updated 'channels.conf.cable' 2003-05-18 12:59:31 +02:00
Klaus Schmidinger
98ac611779 Avoiding spurious section filter settings after a channel switch 2003-05-18 12:55:16 +02:00
Klaus Schmidinger
435ee39812 Fixed setting the locking pid after a timed wait 2003-05-18 12:46:39 +02:00
Klaus Schmidinger
88a4353378 channels.conf 2003-05-17 10:06:24 +02:00
Klaus Schmidinger
e944312b65 Moved the detection of a broken video data stream from the cDevice into the cRecorder 2003-05-16 13:36:06 +02:00
Klaus Schmidinger
0e10fc9599 Added Catalanian language texts 2003-05-16 13:04:52 +02:00
Klaus Schmidinger
7399d8eff4 No longer starting the editing process if no marks have been set 2003-05-16 12:46:15 +02:00
Klaus Schmidinger
6702994adc Moved the call to cPlugin::Start() further up in vdr.c, to make sure it gets called before trying to learn the keys 2003-05-16 12:27:58 +02:00
Klaus Schmidinger
1c1fdc5a3f Re-implemented the WaitForPut/WaitForGet stuff in cRingBuffer, since some plugins actually need this 2003-05-12 17:46:34 +02:00
Klaus Schmidinger
2a7472b00a Removed a faulty parameter initialization in menu.c 2003-05-11 16:10:06 +02:00
Klaus Schmidinger
7b9f3dc568 Implemented the TerrestrialDeliverySystemDescriptor in libdtv 2003-05-11 15:14:22 +02:00
Klaus Schmidinger
848e79eec8 Changed C++ style comments in libdtv into C style to avoid warnings in gcc 3.x 2003-05-11 14:42:36 +02:00
Klaus Schmidinger
c6e759f436 Implemented separate PausePriority and PauseLifetime parameters for the recordings created when pausing live video 2003-05-11 14:10:00 +02:00
Klaus Schmidinger
11df7f8100 Further increased the timeout until an index file is considerd no longer to be written 2003-05-11 13:09:28 +02:00
Klaus Schmidinger
9f2238885f Avoiding short display of the 'Main' menu when pressing the 'Recordings' button or the 'Back' button during replay 2003-05-11 12:21:58 +02:00
Klaus Schmidinger
236c8da4bf Updated 'channels.conf.terr' for Berlin 2003-05-11 12:02:06 +02:00
Klaus Schmidinger
018cc0d8e1 Disabled the 'Received stuffing section in EIT' log message 2003-05-11 11:25:31 +02:00
Klaus Schmidinger
afd0dd904b Fixed handling EPG data where the 'extended event descriptor' comes before the 'short event' or a 'time shifted event' 2003-05-11 11:19:37 +02:00
Klaus Schmidinger
e3e21837d0 Removed the WaitForPut/WaitForGet stuff from cRingBuffer 2003-05-11 10:30:27 +02:00
Klaus Schmidinger
d067e5eda4 Added VDRVERSNUM to config.h 2003-05-11 09:13:51 +02:00
Klaus Schmidinger
7a0054abbd Implemented cDevice::ActualDevice() 2003-05-11 09:01:51 +02:00
Klaus Schmidinger
823945204c Fixed keeping live video active in case the primary device doesn't have an MPEG decoder 2003-05-11 08:42:57 +02:00
Klaus Schmidinger
91b5114838 Implemented the CableDeliverySystemDescriptor in libdtv 2003-05-10 09:25:14 +02:00
Klaus Schmidinger
dc8fd12f91 Introduced cPlugin::Initialize() 2003-05-09 15:27:46 +02:00
Klaus Schmidinger
aaeaf4582d Adjusted release date 2003-05-04 15:04:55 +02:00
Klaus Schmidinger
b3a1b2e3c4 channels.conf 2003-05-04 15:00:00 +02:00
Klaus Schmidinger
1b74b2001c Added description of -P "*" 2003-05-03 16:16:05 +02:00
Klaus Schmidinger
9e650825c2 The red ('Record') and yellow ('Pause') button in the 'Main' menu are no longer available when replaying 2003-05-03 16:08:44 +02:00
Klaus Schmidinger
f1e5b591bd Added cStatus::OsdItem() to provide the entire list of menu items to a plugin 2003-05-03 14:55:17 +02:00
Klaus Schmidinger
2cd7928fc6 Removed the (no longer necessary) 'panic' stuff from cThread 2003-05-03 14:08:28 +02:00
Klaus Schmidinger
3fc00d2211 Restoring the current channel in case a recording has switched the transponder 2003-05-03 13:42:37 +02:00
Klaus Schmidinger
201364cd8a The RCU channel display no longer changes when a recording on a different channel starts on the primary device 2003-05-02 14:45:40 +02:00
Klaus Schmidinger
a6c1babf9a Now turning off live PIDs when replaying 2003-05-02 14:30:03 +02:00
Klaus Schmidinger
6ffb7912d8 Fixed handling dedicated keys 2003-05-02 10:59:07 +02:00
Klaus Schmidinger
03a4a3a618 Fixed double call to MainMenuAction() of a plugin if invoked via a hotkey 2003-05-02 10:54:00 +02:00
Klaus Schmidinger
240529710d Fixed setting the PCR-PID in case it is equal to one of the other PIDs 2003-05-02 09:24:31 +02:00
Klaus Schmidinger
5ddf78ade1 Fixed paging through lists with repeated Left/Right keys 2003-05-01 14:48:54 +02:00
Klaus Schmidinger
cfbf1eb98f Updated French OSD texts 2003-05-01 14:11:42 +02:00
Klaus Schmidinger
01687b0ff8 Changed Teemu Rantanen's email address back 2003-04-27 21:59:26 +02:00
Klaus Schmidinger
249a4ab959 Fixed minimum lifespan of deleted recordings 2003-04-27 15:56:04 +02:00
Klaus Schmidinger
a804b990fe Fixed faulty calculation of section length 2003-04-27 14:46:14 +02:00
Klaus Schmidinger
3874eab49b New SVDRP command STAT 2003-04-27 14:23:30 +02:00
Klaus Schmidinger
007c4a5a01 Reduced the time to wait for EPG data when starting a recording to 3 seconds 2003-04-27 12:51:01 +02:00
Klaus Schmidinger
cade7eb70e Avoiding short display of the main menu if a plugin displays its own OSD 2003-04-27 12:36:21 +02:00
Klaus Schmidinger
749b5090ab Skipping keys that come in too fast from LIRC 2003-04-27 11:41:51 +02:00
Klaus Schmidinger
7d3fa91850 Added a note regarding non-VDR files in the /videoX directories to INSTALL 2003-04-27 11:26:33 +02:00
Klaus Schmidinger
fab3ade64a Extended logging info when starting/stopping timers 2003-04-27 11:15:29 +02:00
Klaus Schmidinger
42afaecfe0 Updated 'channels.conf.terr' for Berlin 2003-04-27 10:10:44 +02:00
Klaus Schmidinger
9c3ff6e8da Setting the 'broken link' flag for GOPs during replay when necessary 2003-04-27 09:55:53 +02:00
Klaus Schmidinger
65b9d4a97f Removed the Mute() call from cDvbDevice::StillPicture() 2003-04-27 09:45:51 +02:00
Klaus Schmidinger
f67fef57ea channels.conf 2003-04-26 15:24:46 +02:00
Klaus Schmidinger
c4b9c58270 Now setting the 'broken link' flag for GOPs at the beginning of a new video sequence 2003-04-26 15:11:17 +02:00
Klaus Schmidinger
a86ed8181b Fixed deleting the last recording in the 'Recordings' menu, which started pausing live video 2003-04-26 13:53:50 +02:00
Klaus Schmidinger
fd0774c811 The PCR PID can now be set separately from the video PID 2003-04-26 11:58:54 +02:00
Klaus Schmidinger
f53912de1e Now sending CA descriptors to the CAM in the same sequence as they were originally received 2003-04-25 14:46:22 +02:00
Klaus Schmidinger
6fc02ebd08 Fixed detecting broken connection to the LIRC daemon 2003-04-25 13:46:56 +02:00
Klaus Schmidinger
a54427e28d Implemented 'pause live video' 2003-04-21 14:57:13 +02:00
Klaus Schmidinger
33d670f7d7 Now also taking providerId and caPid into account when handling CA descriptors 2003-04-21 13:22:06 +02:00
Klaus Schmidinger
6bdfa4638d Enhanced detection of pending user I/O from CAMs 2003-04-20 09:53:08 +02:00
Klaus Schmidinger
5573a03fdc channels.conf 2003-04-20 08:56:57 +02:00
Klaus Schmidinger
3c9a408d43 Simultaneous recording and replay of encrypted channels with a single DVB card 2003-04-19 14:46:58 +02:00
Klaus Schmidinger
2c4da57287 Re-enabled CAM communication during replay and on non-Ca channels 2003-04-19 10:59:53 +02:00
Klaus Schmidinger
d7c5e26d31 Closing CA file handle in case no LL firmware is present 2003-04-18 14:16:32 +02:00
Klaus Schmidinger
0f82d5c014 Missing LL support is no longer an error 2003-04-18 13:48:47 +02:00
Klaus Schmidinger
78d85cee06 Now only those Ca descriptors are sent to a CAM that are actually understood by that CAM 2003-04-18 12:48:49 +02:00
Klaus Schmidinger
b57eae00d3 Fixed handling Ca descriptors 2003-04-18 11:29:11 +02:00
Klaus Schmidinger
ed5027b5d5 Using masks in EIT filtering to reduce the number of filters 2003-04-13 14:06:25 +02:00
Klaus Schmidinger
da22081330 Adjusted release date 2003-04-13 10:00:25 +02:00
Klaus Schmidinger
639fdaba99 channels.conf 2003-04-12 15:43:39 +02:00
Klaus Schmidinger
a22a2b7218 Fixed handling of Ca parameters with values <= MAXDEVICES 2003-04-12 15:10:06 +02:00
Klaus Schmidinger
f20648eab2 The LIRC and RCU remote control no longer try to learn keys in case of errors during startup 2003-04-12 14:37:57 +02:00
Klaus Schmidinger
bd23375248 The 'epg.data' file is now read after all plugins have been started 2003-04-12 13:59:34 +02:00
Klaus Schmidinger
08c96c2f0d Updated 'channels.conf.cable' 2003-04-12 13:48:39 +02:00
Klaus Schmidinger
ad7b9f5ed5 Adjusted some Premiere channels in 'channels.conf' 2003-04-12 13:43:33 +02:00
Klaus Schmidinger
00166dac5f If no device with an MPEG decoder can be found at startup, the first device is now used as primary device 2003-04-12 12:20:07 +02:00
Klaus Schmidinger
f8a7e51d00 Now using 'libdtv' version 0.0.5 2003-04-12 11:32:31 +02:00
Klaus Schmidinger
7c84508417 Implemented a 'resume ID' which allows several users to each have their own resume.vdr files 2003-04-12 10:06:21 +02:00
Klaus Schmidinger
e58802d2a0 Fixed handling min/max borders when entering integer values 2003-04-12 09:24:48 +02:00
Klaus Schmidinger
c30aeec716 Fixed handling repeat function with LIRC 2003-04-06 15:46:06 +02:00
Klaus Schmidinger
2a7dd5e67d Avoiding high CPU load in case the connection to LIRC gets lost 2003-04-06 15:43:41 +02:00
Klaus Schmidinger
3d90c8c4ee Fixed displaying messages in the status line in case they exceed the OSD width 2003-04-06 12:51:50 +02:00
Klaus Schmidinger
9e9b85ede6 Switched to DST 2003-04-02 16:21:47 +02:00
Klaus Schmidinger
0f9f3f057a Fixed a crash in case the index file can't be accessed any more during replay 2003-03-30 13:31:32 +02:00
Klaus Schmidinger
f2517f2c3a Further increased the timeout until an index file is considerd no longer to be written 2003-03-30 13:07:44 +02:00
Klaus Schmidinger
4200055fe5 Replaced the 'for' loops in StripAudioPackets() with memset() calls 2003-03-30 12:56:30 +02:00
Klaus Schmidinger
c52b219131 Added some missing cAudio handling calls 2003-03-30 12:42:23 +02:00
Klaus Schmidinger
f79a442f44 Modified LOF handling to allow for C-band reception 2003-03-30 11:44:40 +02:00
Klaus Schmidinger
64d0ed856b Fixed faulty behaviour of the 'Mute' key in case the channel display is visible 2003-03-30 10:53:22 +02:00
Klaus Schmidinger
0cc3bf2e6c Updated Greek OSD texts 2003-03-30 10:06:20 +02:00
Klaus Schmidinger
918bcdc054 Made the log message 'OSD window width must be a multiple of 4...' a debug message 2003-03-23 15:54:52 +01:00
Klaus Schmidinger
b736f36e1e 'Left' and 'Right' now go to first/last item in single page lists 2003-03-23 15:47:48 +01:00
Klaus Schmidinger
be06e04d55 CAM access only for CA channels and no longer during replay 2003-03-23 15:20:00 +01:00
Klaus Schmidinger
e76f985840 Fixed support for Viaccess CAMs 2003-03-19 17:07:10 +01:00
Klaus Schmidinger
efcb48432d Modified the EPG scanner to avoid CPU load peaks 2003-03-16 13:29:55 +01:00
Klaus Schmidinger
c85272e94d Fixed the EPG bugfix code number for the MAX_USEFUL_SUBTITLE_LENGTH fix 2003-03-16 11:22:21 +01:00
Klaus Schmidinger
5261fd663f Fixed a possible deadlock when using the 'Blue' button in the 'Schedules' menu to switch to an other channel 2003-03-16 11:17:46 +01:00
Klaus Schmidinger
8d4d7f2b62 Trying harder to find a primary device 2003-03-09 14:10:12 +01:00
Klaus Schmidinger
dfc60da1d5 Removed signal handling and usleep(5000) from cDvbOsd::Cmd() 2003-03-09 10:01:02 +01:00
Klaus Schmidinger
6fae0a6d49 Broken CAM connections are now restored automatically (cont'd) 2003-02-16 15:20:00 +01:00
Klaus Schmidinger
16ce936996 Speeded up initial CAM connection after channel change 2003-02-16 15:10:39 +01:00
Klaus Schmidinger
9c04942eaa Broken CAM connections are now restored automatically 2003-02-16 11:20:55 +01:00
Klaus Schmidinger
96df157057 Fixed broken support for raw OSDs of plugins 2003-02-16 10:34:24 +01:00
Klaus Schmidinger
9dcfb9a2b8 Updated 'channels.conf.terr' 2003-02-15 16:22:46 +01:00
Klaus Schmidinger
33c8ad925a Improved keyboard detection 2003-02-15 15:46:19 +01:00
Klaus Schmidinger
69e9a07f8b Resetting the CAM slot in case communication breaks down 2003-02-15 14:25:30 +01:00
Klaus Schmidinger
f721c85b46 Now polling the output device in 'Transfer Mode' and retrying to put packets into the ring buffer 2003-02-15 14:12:41 +01:00
Klaus Schmidinger
05e2966b35 Fixed margin handling in cRingBufferLinear 2003-02-15 13:21:50 +01:00
Klaus Schmidinger
63ad7f1c71 Fixed high CPU load during replay 2003-02-15 11:01:04 +01:00
Klaus Schmidinger
8ddaaf9849 Timers are now processed even if a menu is open 2003-02-09 13:14:44 +01:00
Klaus Schmidinger
7db4f96252 channels.conf 2003-02-09 12:46:00 +01:00
Klaus Schmidinger
05c37e5f59 Improved CAM connection initialization (workaround) 2003-02-09 12:45:00 +01:00
Klaus Schmidinger
a6a25e48bf Turning SI filtering off and on when switching channels 2003-02-09 12:43:39 +01:00
Klaus Schmidinger
777f330c77 Improved CAM support 2003-02-09 11:54:22 +01:00
Klaus Schmidinger
b7777e230c Improved CAM handling 2003-02-02 15:49:52 +01:00
Klaus Schmidinger
5693873b9b Fixed a new/delete malloc/free mismatch 2003-01-26 19:50:19 +01:00
Klaus Schmidinger
829c834d30 Fixed skipping unavailable channels in the EPG scanner 2003-01-26 16:20:30 +01:00
Klaus Schmidinger
2da0c04c7c Fixed handling user defined CFLAGS in libdtv/libvdr/Makefile 2003-01-26 14:03:40 +01:00
Klaus Schmidinger
e2540aa898 Changed EIT processing to always read a full section 2003-01-26 12:21:15 +01:00
Klaus Schmidinger
d7bf76e9ba Fixed handling the LOG_LOCALn parameters in the -l option 2003-01-26 11:57:55 +01:00
Klaus Schmidinger
b5f874de0c Fixed the description of the 'Scroll pages' OSD setup parameter 2003-01-26 11:53:06 +01:00
Klaus Schmidinger
c4d7e16f80 Added/improved Swedish language texts 2003-01-26 11:48:30 +01:00
Klaus Schmidinger
e14caf09b0 Fixed a typo 2003-01-26 11:33:50 +01:00
Klaus Schmidinger
783d4c3e5e Updated 'channels.conf' 2003-01-26 10:55:41 +01:00
Klaus Schmidinger
2a9bf58e3d channels.conf 2003-01-26 10:54:37 +01:00
Klaus Schmidinger
28d1affa31 Modified cRingBufferLinear to avoid excessive memmove() calls in 'Transfer Mode' and during recordings 2003-01-26 09:59:35 +01:00
Klaus Schmidinger
54eb58e1eb Added TS error checking to remux.c 2003-01-24 17:22:29 +01:00
Klaus Schmidinger
a3d9b92615 Increased the maximum possible packet size to avoid corrupted streams 2003-01-24 14:30:02 +01:00
Klaus Schmidinger
cdcf28b051 Implemented non blocking file reader for cDvbPlayer 2003-01-19 15:43:58 +01:00
Klaus Schmidinger
413b22dc63 Implemented actual user input for CAM enquiry menus 2003-01-19 14:59:46 +01:00
Klaus Schmidinger
c1dcc3e5a5 Added 'Hrvatska radiotelevizija' and 'RTV Slovenija' to ca.conf 2003-01-12 09:44:55 +01:00
Klaus Schmidinger
5241699007 Fixed handling data available immediately at initial handshake 2003-01-11 11:15:19 +01:00
Klaus Schmidinger
7b364c7a43 Adjusted release date 2003-01-10 13:22:46 +01:00
Klaus Schmidinger
8de63a62e2 CAM menu now always returns osEnd when Ok is pressed 2003-01-06 16:13:53 +01:00
Klaus Schmidinger
bcb0aca954 Limiting Subtitle length when creating a recording file name from EPG data 2003-01-06 15:37:33 +01:00
Klaus Schmidinger
4b1440737a Added an EPG bugfix for too long Subtitles and empty Extended Description 2003-01-06 15:09:11 +01:00
Klaus Schmidinger
4e15f6d658 Implemented 'Link Layer' based CAM support 2003-01-06 14:44:27 +01:00
Klaus Schmidinger
43b582a04d Increased the timeout until an index file is considerd no longer to be written 2002-12-23 12:41:20 +01:00
Klaus Schmidinger
3b88ba1cd2 The SVDRP command CHAN now also accepts channel IDs 2002-12-22 14:07:51 +01:00
Klaus Schmidinger
de1366fc7e Fixed handling channels in the 'Channels' menu in case there are ':@nnn' group separators without names 2002-12-22 12:49:10 +01:00
Klaus Schmidinger
da98c3de72 Fixed the 'channels.conf' entries for 'Studio Universal' and 'Disney Channel' 2002-12-22 11:51:09 +01:00
Klaus Schmidinger
12cdcb774f channels.conf 2002-12-22 11:45:36 +01:00
Klaus Schmidinger
bbf14ae47a Fixed a typo 2002-12-22 11:33:08 +01:00
Klaus Schmidinger
fc0e1bdd28 Adjusted release date 2002-12-15 16:58:59 +01:00
Klaus Schmidinger
831d7b8524 Enhacements to cKbdRemote 2002-12-15 15:58:59 +01:00
Klaus Schmidinger
c7849b14a7 Using 'Doxygen' to generate source code documentation 2002-12-15 15:36:02 +01:00
Klaus Schmidinger
d610d95e50 Fixed deleting characters in string entry fields in 'insert' mode 2002-12-15 11:05:19 +01:00
Klaus Schmidinger
b90e708733 Implemented raw keyboard input 2002-12-15 10:58:00 +01:00
Klaus Schmidinger
0f01d92106 Fixed high CPU load in 'Transfer Mode' 2002-12-14 13:37:01 +01:00
Klaus Schmidinger
f3fdca49b9 No longer stopping/restarting the DMX when switching audio channels 2002-12-14 10:59:34 +01:00
Klaus Schmidinger
f784d52a39 Fixed recording overlapping timers on the same channel 2002-12-13 15:35:00 +01:00
Klaus Schmidinger
d7d4799236 Changed setting of CXX and CXXFLAGS variables in Makefile 2002-12-13 15:06:52 +01:00
Klaus Schmidinger
2343e7ec14 Fixed taking an active SVDRP connection into account when doing shutdown 2002-12-13 14:31:17 +01:00
Klaus Schmidinger
7d0596878b Checking if there is a connection to the keyboard and if VDR is running in the foreground 2002-12-13 13:41:55 +01:00
Klaus Schmidinger
b941f94486 Fixed a typo 2002-12-08 15:02:13 +01:00
Klaus Schmidinger
fb16fbafaa KBD active by default; no more 'ncurses' necessary for KBD 2002-12-08 14:30:32 +01:00
Klaus Schmidinger
a40c8b8a98 Added note about how to load the 'kfir' module 2002-12-08 12:00:00 +01:00
Klaus Schmidinger
b9422baff2 The actual tuning is now done in a separate thread 2002-12-08 09:55:26 +01:00
Klaus Schmidinger
2d2369fca0 The RCU now only sets the channel number display when there are no incoming remote control keys 2002-12-07 12:27:59 +01:00
Klaus Schmidinger
616ce3880a Improved handling of repeated remote keys 2002-12-07 11:48:10 +01:00
Klaus Schmidinger
4fc0e92350 Updated 'channels.conf.cable' 2002-12-06 14:27:25 +01:00
Klaus Schmidinger
e5499ed650 The character '|' in description texts of EPG records is now interpreted as a newline character 2002-12-06 14:21:00 +01:00
Klaus Schmidinger
9cb56dfea4 Revised README 2002-12-03 17:13:11 +01:00
Klaus Schmidinger
0945297d89 Added the 'sky' plugin 2002-12-01 11:25:22 +01:00
Klaus Schmidinger
816e6847aa Macros in 'keymacros.conf' can now use "@plugin" to directly access the main menu function of a given plugin 2002-12-01 10:48:08 +01:00
Klaus Schmidinger
125872e75f Added credits to Gerald Berwolf 2002-11-30 14:57:21 +01:00
Klaus Schmidinger
cf40f84b82 Now taking an active SVDRP connection into account when doing shutdown or housekeeping 2002-11-30 14:40:10 +01:00
Klaus Schmidinger
498db82e98 Timers now accept channel IDs even if the 'source' is 0 2002-11-30 13:30:33 +01:00
Klaus Schmidinger
7fcfd58f3c Deactivated some templates in in case some plugin needs to use the STL 2002-11-30 12:51:45 +01:00
Klaus Schmidinger
9f5e43f3df Removed transponders 10788, 11739 and 12266 from 'channels.conf' 2002-11-29 15:55:56 +01:00
Klaus Schmidinger
56db644f5a Changed the source directory name for plugins from 'SRC' to 'src' (ported back to versions V10100-V10117) 2002-11-29 15:25:36 +01:00
Klaus Schmidinger
1f4f3b5206 Added "Tele 5" to 'channels.conf' 2002-11-29 14:27:56 +01:00
Klaus Schmidinger
88db59f61a No longer displaying channel group delimiters without text 2002-11-29 14:19:08 +01:00
Klaus Schmidinger
4ab777e98a Fixed a misplaced ')' in the fix about the stale lock files 2002-11-24 20:18:55 +01:00
Klaus Schmidinger
161b963fc5 Fixed missing initialization of 'number' in cChannel 2002-11-24 20:13:56 +01:00
Klaus Schmidinger
b4d1358c50 Improved deleting stale lock files 2002-11-24 16:08:06 +01:00
Klaus Schmidinger
9ee568e199 Adjusted release date 2002-11-24 16:00:00 +01:00
Klaus Schmidinger
c24dfb7f43 Extended the '-l' option to allow logging to LOG_LOCALn 2002-11-24 15:56:24 +01:00
Klaus Schmidinger
9544973a10 Made some channels unique in 'channels.conf.terr' using the new RID 2002-11-24 15:18:14 +01:00
Klaus Schmidinger
3279d13a4d Updated 'channels.conf.cable' and made some channels unique using the new RID 2002-11-24 15:12:18 +01:00
Klaus Schmidinger
3c2e2b71e7 Updated URLs 2002-11-24 14:56:59 +01:00
Klaus Schmidinger
82ccabff8a Added NID, TID and RID to the channel definitions 2002-11-24 14:48:38 +01:00
Klaus Schmidinger
08e4f36ccd Plugins can now have their own raw OSD 2002-11-24 10:45:39 +01:00
Klaus Schmidinger
e3a8fb1065 Changed return type of MainMenuAction() 2002-11-16 13:20:26 +01:00
Klaus Schmidinger
f8950822dd Fixed disabling multiple recordings on a single DVB card 2002-11-16 12:36:50 +01:00
Klaus Schmidinger
1c97d69c04 Added more examples to 'diseqc.conf' 2002-11-15 16:22:19 +01:00
Klaus Schmidinger
2f49224c9c Fixed closing unused PID handles 2002-11-15 14:04:11 +01:00
Klaus Schmidinger
5198be3187 Added new entries to 'ca.conf' 2002-11-12 16:55:36 +01:00
Klaus Schmidinger
c05b788deb Fixed a compiler warning regarding cMenuChannels::Del() and MenuTimers::Del() 2002-11-10 16:07:58 +01:00
Klaus Schmidinger
9fee2b67ab First step towards a 'unique channel ID' 2002-11-10 15:50:21 +01:00
Klaus Schmidinger
c67fe26e66 channels.conf 2002-11-09 11:00:00 +01:00
Klaus Schmidinger
e45ff070ed Updated channels.conf.cable 2002-11-08 14:27:58 +01:00
Klaus Schmidinger
a0f020d604 Updated channels.conf.terr 2002-11-08 14:24:13 +01:00
Klaus Schmidinger
443d9b786d Fixed saving the polarization parameter of channels that have a number in the 'source' parameter 2002-11-08 14:19:22 +01:00
Klaus Schmidinger
700b92e99c Fixed formatting 2002-11-03 18:03:55 +01:00
Klaus Schmidinger
35a69ee743 Now checking the driver's DVB_API_VERSION 2002-11-03 12:31:51 +01:00
Klaus Schmidinger
7c40984f1b Removed displaying 'Recording' since this caused a lengthy black screen on single DVB card systems 2002-11-03 12:00:00 +01:00
Klaus Schmidinger
0a517afdf8 Implemented audio plugin interface 2002-11-03 11:53:58 +01:00
Klaus Schmidinger
2e26a1d607 Fixed closing all dup'ed file descriptors in cPipe 2002-11-02 14:00:25 +01:00
Klaus Schmidinger
dd59830a92 Removed some leftover debug outputs 2002-11-02 13:13:49 +01:00
Klaus Schmidinger
bc766ad04b Fixed reading EPG data via the SVDRP command PUTE 2002-11-02 12:46:53 +01:00
Klaus Schmidinger
5dd0c65e35 The Makefile now includes the file Make.config 2002-11-01 14:05:36 +01:00
Klaus Schmidinger
5a418a9efe Fixed displaying the group separators in the channel display 2002-11-01 12:18:45 +01:00
Klaus Schmidinger
0813564ed6 Updated channels.conf.terr 2002-11-01 11:49:05 +01:00
Klaus Schmidinger
413c2446be Fixed handling audio tracks in cDvbDevice 2002-11-01 11:26:28 +01:00
Klaus Schmidinger
7233a63680 Fixed the EPG scanner, which broke 'Transfer Mode' as soon as it kicked in 2002-11-01 11:11:20 +01:00
Klaus Schmidinger
c1a5a7d50c Only accepting key presses from the current remote control when learning 2002-11-01 10:53:07 +01:00
Klaus Schmidinger
fd3e819ba8 Adjusted the INSTALL file to the 1.1.x version 2002-11-01 10:43:16 +01:00
Klaus Schmidinger
0598e41418 Completely switched to the HEAD driver version 2002-11-01 10:26:45 +01:00
Klaus Schmidinger
8c18d579ef Fixed a crash when learning the keys of several remote controls 2002-10-27 16:02:27 +01:00
Klaus Schmidinger
9f713366dd channels.conf 2002-10-27 15:50:00 +01:00
Klaus Schmidinger
64fd9c4a1b Implemented key macros 2002-10-27 15:46:30 +01:00
Klaus Schmidinger
74c74fb5d2 Implemented additional dedicated keys 2002-10-27 14:32:06 +01:00
Klaus Schmidinger
462463404d Fixed a typo 2002-10-26 14:34:53 +02:00
Klaus Schmidinger
bd66898c78 Fixed learning RC keys with more than one RC; displaying RC name when learning keys 2002-10-26 12:56:53 +02:00
Klaus Schmidinger
41320eca4d Fixed blocking replaying in case an encrypted channel is being recorded on the primary device 2002-10-26 11:51:37 +02:00
Klaus Schmidinger
ffb6153326 Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device (cont'd) 2002-10-26 11:11:42 +02:00
Klaus Schmidinger
2f89413ca4 Fixed handling 'Transfer Mode' on single device systems when recording an encrypted channel 2002-10-26 11:08:12 +02:00
Klaus Schmidinger
294512863d Fixed a ternary expression in dvbspu.c 2002-10-26 10:47:36 +02:00
Klaus Schmidinger
4247bf58cf Fixed channel switching in case of an active 'Transfer Mode' on the primary device 2002-10-26 10:24:42 +02:00
Klaus Schmidinger
a51f4e83f0 Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device 2002-10-26 10:12:34 +02:00
Klaus Schmidinger
2c311093ba Fixed checking the Ca() status of a cDevice 2002-10-26 09:43:11 +02:00
Klaus Schmidinger
01ad12975c Fixed skipping unavailable channels when zapping downwards 2002-10-20 16:07:56 +02:00
Klaus Schmidinger
ff127786d0 Fixed log message when editing a channel 2002-10-20 14:22:09 +02:00
Klaus Schmidinger
bff56bb850 Frequency for DVB-C and DVB-T is now in MHz, kHz or Hz 2002-10-20 14:15:40 +02:00
Klaus Schmidinger
e3aaeccee3 Added KI.KA to channels.conf.cable 2002-10-20 13:47:45 +02:00
Klaus Schmidinger
6f72e823ad Added Telecom 2B to 'sources.conf' 2002-10-20 13:14:23 +02:00
Klaus Schmidinger
029dd8aa1c Fixed slow reaction on SVDRP input 2002-10-20 12:49:16 +02:00
Klaus Schmidinger
302abb7cd1 Added further satellites to 'sources.conf' (cont'd) 2002-10-20 12:34:42 +02:00
Klaus Schmidinger
ac9622bb8a Timers now internally have a pointer to their channel 2002-10-20 12:28:55 +02:00
Klaus Schmidinger
ab4ceb29a0 Implemented gaps in channel numbering 2002-10-19 15:33:37 +02:00
Klaus Schmidinger
16f3d3fc5d Fixed handling multiple 'CaCaps' entries in 'setup.conf' 2002-10-19 11:34:48 +02:00
Klaus Schmidinger
5e9d7e3c93 Fixed a small glitch when switching channels 2002-10-19 10:17:11 +02:00
Klaus Schmidinger
733b42a586 Updated Finnish OSD texts 2002-10-19 09:46:09 +02:00
Klaus Schmidinger
c9a4e58811 Added further satellites to 'sources.conf' 2002-10-19 09:08:12 +02:00
Klaus Schmidinger
15a2d36aca Fixed some faulty default parameter initializations 2002-10-13 16:12:55 +02:00
Klaus Schmidinger
b2ef221f40 Adjusted release date 2002-10-13 14:09:26 +02:00
Klaus Schmidinger
95c8c2b60c New configuration file 'reccmds.conf' 2002-10-13 12:14:49 +02:00
Klaus Schmidinger
44cb1a79a5 The SVDRP command PUTE now triggers an immediate write of the 'epg.data' file 2002-10-13 09:34:47 +02:00
Klaus Schmidinger
a19ea98cce Automatically closing 'Commands' menu if command doesn't return any output 2002-10-13 09:16:32 +02:00
Klaus Schmidinger
e2aee54d12 Changed a few leftover 'new char[...]' to MALLOC(char, ...) 2002-10-13 09:11:16 +02:00
Klaus Schmidinger
e58fa67e6c Implemented '?' handling for commands.conf 2002-10-13 09:03:53 +02:00
Klaus Schmidinger
fadc2565d4 Fixed a crash when closing down with remote control plugins 2002-10-12 15:22:29 +02:00
Klaus Schmidinger
ec5795bda2 Reactivated full handling of second audio PID (even in 'Transfer Mode') 2002-10-12 14:29:46 +02:00
Klaus Schmidinger
371b9be00b Fixed switching the video format in the Setup/DVB menu 2002-10-12 09:13:05 +02:00
Klaus Schmidinger
90ef5ff1ac Fixed radio channels in channels.conf.cable 2002-10-11 13:28:22 +02:00
Klaus Schmidinger
6439d37806 Adapted type names to the new HEAD version of the driver 2002-10-11 13:23:44 +02:00
Klaus Schmidinger
a3c772330a Changed Uwe Scheffler's email address 2002-10-11 11:53:50 +02:00
Klaus Schmidinger
e46c1b1aff Fixed fetching the current/next information 2002-10-07 16:24:04 +02:00
Klaus Schmidinger
10a7cf33d6 Added cDevice::DeviceNumber() 2002-10-07 16:21:46 +02:00
Klaus Schmidinger
186ee74748 Fixed a bug when pressing the Blue button in the main menu without having displayed it 2002-10-06 14:11:59 +02:00
Klaus Schmidinger
995493351e channels.conf 2002-10-06 14:05:00 +02:00
Klaus Schmidinger
ecde8e091d Fixed Andy Carter's real name 2002-10-06 14:03:09 +02:00
Klaus Schmidinger
eea21567df Updated channels.conf.cable 2002-10-06 14:01:18 +02:00
Klaus Schmidinger
b2b46e3630 Improved skipping channels that are (currently) not available (cont'd, fix, Transfer Mode blocked channels) 2002-10-06 13:49:38 +02:00
Klaus Schmidinger
f78f51431d Fixed storing channel parameters with 0 values 2002-10-06 12:44:33 +02:00
Klaus Schmidinger
c5b154f58a Updated channels.conf.terr 2002-10-06 12:12:11 +02:00
Klaus Schmidinger
4447023205 Writing and tolerating AUTO (=999) parameters for the moment 2002-10-06 11:53:45 +02:00
Klaus Schmidinger
34af5c0e05 Improved skipping channels that are (currently) not available 2002-10-06 11:34:02 +02:00
Klaus Schmidinger
b7d3273d92 Changed cMenuRecordings::Del() to cMenuRecordings::Delete() to avoid a warning in gcc-3.2 2002-10-06 10:40:27 +02:00
Klaus Schmidinger
53407825f9 Removed some unnecessary #includes from eit.c 2002-10-06 10:33:12 +02:00
Klaus Schmidinger
962596f4ab Modified channel handling; full DiSEqC support 2002-10-06 10:25:42 +02:00
Klaus Schmidinger
b7615a7ae1 Fixed a missing Flush() call in the remote control learning procedure 2002-09-30 15:57:23 +02:00
Klaus Schmidinger
2c8aa42043 Avoiding restarts due to 'panic level' when switching channels on the primary device during EPG scan 2002-09-29 13:57:10 +02:00
Klaus Schmidinger
3b89a2a97e Fixed handling DVD subtitles in the SPU decoder 2002-09-29 13:50:17 +02:00
Klaus Schmidinger
04abc3f313 channels.conf 2002-09-29 13:48:00 +02:00
Klaus Schmidinger
fc66860847 Made remote controls plugin aware 2002-09-29 13:40:45 +02:00
Klaus Schmidinger
f3af8e065a Fixed a race condition when starting 'Transfer Mode' 2002-09-22 09:52:38 +02:00
Klaus Schmidinger
95685c842a Added a missing 'public' keyword 2002-09-21 09:14:56 +02:00
Klaus Schmidinger
d39c72d088 Fixed the 'newplugin' script for use with the NEWSTRUCT driver 2002-09-21 09:11:36 +02:00
Klaus Schmidinger
f6640a25b8 Fixed Makefile for NEWSTRUCT driver 2002-09-21 08:46:01 +02:00
Klaus Schmidinger
3858cc9e65 Fixed an incomplete initialization of the filter parameters 2002-09-21 08:34:25 +02:00
Klaus Schmidinger
fbd75da596 Added an EPG bugfix for the latest VOX EPG data format 2002-09-15 14:35:32 +02:00
Klaus Schmidinger
849d5ba355 channels.conf 2002-09-15 14:35:00 +02:00
Klaus Schmidinger
dde36a3c56 Added a missing StripAudioPackets() to cDvbPlayer::Action() 2002-09-15 13:36:57 +02:00
Klaus Schmidinger
441258c7ea Fixed opening /dev/video in cDvbDevice::GrabImage() in case of NEWSTRUCT driver 2002-09-15 13:14:42 +02:00
Klaus Schmidinger
e165c9ad8b Dropping bogus EPG events 2002-09-15 13:05:57 +02:00
Klaus Schmidinger
3a3d4c2a5a Only calling cStatus::MsgChannelSwitch() for actual switching 2002-09-15 11:52:43 +02:00
Klaus Schmidinger
327c2a7dd2 Fixed attaching a Transfer Mode to a recording on a non-primary card Ca channel 2002-09-15 11:24:18 +02:00
Klaus Schmidinger
ec8748a2cc A previous 'Transfer Mode' is now automatically re-started after a replay stops 2002-09-15 11:08:35 +02:00
Klaus Schmidinger
6ef11b70be Starting Transfer Mode when recording current channel 2002-09-15 10:51:44 +02:00
Klaus Schmidinger
fd3cc6f997 Fixed clearing PIDs 2002-09-14 13:26:16 +02:00
Klaus Schmidinger
d9bf48ec5a Fixed setting PIDs for CA channels 2002-09-14 12:14:38 +02:00
Klaus Schmidinger
db20f08a58 Fixed starting a recording of the current channel with only one DVB card 2002-09-14 11:51:51 +02:00
Klaus Schmidinger
9a59ece83e Removed a superfluous error message from cLockFile::Unlock() 2002-09-09 21:44:00 +02:00
Klaus Schmidinger
c40fdb05a3 Added play mode pmAudioOnlyBlack 2002-09-08 15:04:33 +02:00
Klaus Schmidinger
706a6e1beb Fixed a crash when entering an integer value outside the limits 2002-09-08 14:51:28 +02:00
Klaus Schmidinger
f98ef07b51 channels.conf 2002-09-08 14:21:04 +02:00
Klaus Schmidinger
9133fdcf63 Implemented an SPU decoder 2002-09-08 14:17:51 +02:00
Klaus Schmidinger
1b396902e4 Skipping unavailable channels when switching with 'Up' and 'Down' keys 2002-09-08 11:46:53 +02:00
Klaus Schmidinger
f47655ef0f GetDevice() now prefers devices that are already receiving 2002-09-08 09:36:16 +02:00
Klaus Schmidinger
c792c55297 Implemented cTSBuffer 2002-09-08 09:03:10 +02:00
Klaus Schmidinger
f24f820e7d Changed NeedsSwitchChannel to NeedsDetachReceivers 2002-09-06 14:10:17 +02:00
Klaus Schmidinger
3e58bc64fe Implemented recording and replaying with a single DVB card 2002-09-04 17:26:02 +02:00
Klaus Schmidinger
1967d0cd3d Fixed the 'newplugin' script to make it name the target for creating the distribution package 'dist' 2002-08-28 19:32:29 +02:00
Klaus Schmidinger
9239d3e6df Fixed handling one-shot timers that were already recording and had their start time changed into the future 2002-08-25 10:59:49 +02:00
Klaus Schmidinger
2d487365a1 New SVDRP command CLRE 2002-08-25 10:49:02 +02:00
Klaus Schmidinger
e63b279d96 Added cPalette::AllColors() for plugins that need to get the color entries of a cPalette 2002-08-25 10:05:24 +02:00
Klaus Schmidinger
c6ed4da7a0 Added cDevice::NewOsd() to allow a derived cDevice class to implement its own OSD capabilities 2002-08-25 09:36:09 +02:00
Klaus Schmidinger
df5be87dc3 Added some missing #includes to files in libdtv for gcc 3.2 2002-08-24 15:42:45 +02:00
Klaus Schmidinger
02f34ec0bf Fixed replaying the last few seconds of a recording 2002-08-24 15:08:25 +02:00
Klaus Schmidinger
fd682083a4 Now running even w/o DVB devices, provided at least one device is implemented by a plugin 2002-08-16 09:57:10 +02:00
Klaus Schmidinger
435018bf4f Always doing the 'special handling to return from PCM replay' 2002-08-16 09:27:53 +02:00
Klaus Schmidinger
470415ad23 Using cPoller instead of NeedsData 2002-08-16 09:22:29 +02:00
Klaus Schmidinger
038766dccd Changed Christian Rienecker's email address 2002-08-15 12:00:34 +02:00
Klaus Schmidinger
3540d18855 Improved cCondVar::Wait() and implemented cCondVar::TimedWait() 2002-08-15 11:46:22 +02:00
Klaus Schmidinger
ac471850fe Moved FileNameChars into menuitems.h to make it available to plugins 2002-08-15 11:28:26 +02:00
Klaus Schmidinger
34710939ea Changed line height handling for progress bar 2002-08-15 11:20:44 +02:00
Klaus Schmidinger
c0ef9a35e2 Implemented several replay modes to allow players that play only audio 2002-08-15 11:16:34 +02:00
Klaus Schmidinger
d4ab35d1d9 Implemented cDevice::NeedsData() 2002-08-15 10:13:03 +02:00
Klaus Schmidinger
2f684611d4 Temporarily made cDevice::ProvidesCa() virtual 2002-08-11 13:39:00 +02:00
Klaus Schmidinger
9a1a16f3d4 Consistently using malloc/free and new/delete 2002-08-11 13:32:23 +02:00
Klaus Schmidinger
b9c4cb0ec9 Changed the log error message "can't record MPEG1!" to "error in data stream!" 2002-08-11 10:53:10 +02:00
Klaus Schmidinger
4d784a198d Added some missing #includes 2002-08-11 10:47:11 +02:00
Klaus Schmidinger
fd1f60e0e0 Adapted VDR to the NEWSTRUCT driver 2002-08-10 14:58:25 +02:00
Klaus Schmidinger
506c772bd7 Changed the cDevice class to allow plugins to implement their own devices (cont'd) 2002-08-04 15:20:05 +02:00
Klaus Schmidinger
d987c94909 Fixed recognizing 'Receiving()' 2002-08-04 15:18:05 +02:00
Klaus Schmidinger
15cc1733e0 Changed the cDevice class to allow plugins to implement their own devices 2002-08-04 14:57:29 +02:00
Klaus Schmidinger
61ccfd5fab Now using CC, CFLAGS, CXX and CXXFLAGS 2002-07-28 13:25:30 +02:00
Klaus Schmidinger
efc0502b6d Added a missing #include (cont'd) 2002-07-28 13:00:00 +02:00
Klaus Schmidinger
6ac15dd3fc Added a missing #include 2002-07-28 12:48:44 +02:00
Klaus Schmidinger
a4246cfd9a Fixed PID handling for cReceiver 2002-07-28 11:29:32 +02:00
Klaus Schmidinger
e77d5dfbfb Added some missing teletext PIDs 2002-07-27 12:58:23 +02:00
Klaus Schmidinger
fdbb731ab2 Made VFAT handling more tolerant 2002-07-27 12:55:14 +02:00
Klaus Schmidinger
4524f8f814 Re-visited the race condition fix in the cDvbPlayer 2002-07-27 12:00:30 +02:00
Klaus Schmidinger
771f0150b4 Added description of raw OSD access for plugins 2002-07-21 15:18:48 +02:00
Klaus Schmidinger
43d57df60e channels.conf 2002-07-21 14:42:09 +02:00
Klaus Schmidinger
6e002c2bf8 Disabled channels on Transponder 12070 2002-07-14 15:39:06 +02:00
Klaus Schmidinger
9b94097931 Fixed a possible race condition in the cDvbPlayer 2002-07-14 14:35:16 +02:00
Klaus Schmidinger
17699edebb Fixed a hangup when switching to the next file during replay 2002-07-14 12:34:44 +02:00
Klaus Schmidinger
562dbb818b Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs) (con't, fix in case of DEBUG_OSD) 2002-07-14 11:05:30 +02:00
Klaus Schmidinger
8be5a7b7b2 Changed the symantics of the Name parameter in cStatus::Recording() and cStatus::Replaying() 2002-07-14 11:03:30 +02:00
Klaus Schmidinger
5b040b1d92 Added direct access to the index data of cPalette (needed for displaying SPUs) (cont'd) 2002-07-13 14:45:55 +02:00
Klaus Schmidinger
5fb0a0ed18 Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs) 2002-07-13 12:47:06 +02:00
Klaus Schmidinger
f2b637ed85 Changed the interface of cStatus::Replaying() 2002-07-13 11:16:27 +02:00
Klaus Schmidinger
d5208be84b Added direct access to the index data of cPalette (needed for displaying SPUs) 2002-07-13 10:24:28 +02:00
Klaus Schmidinger
5122a2d12d Added limitations for this version 2002-06-23 13:13:38 +02:00
Klaus Schmidinger
e38b29ba03 Additional OSD languages 2002-06-23 13:05:59 +02:00
Klaus Schmidinger
26981fd7b1 Switched handling 'Transfer Mode' to the new cPlayer/cControl structures 2002-06-23 12:59:58 +02:00
Klaus Schmidinger
bd26fdf362 Description for cPlayer plugins 2002-06-23 11:40:24 +02:00
Klaus Schmidinger
cd030554e5 Switched VDR's own player to the new cPlayer/cControl structures 2002-06-23 11:23:34 +02:00
Klaus Schmidinger
0bb9a1a77b Moved handling of the Menu key entirely into vdr.c 2002-06-23 09:44:00 +02:00
Klaus Schmidinger
359e90b8a7 Activated transfer mode 2002-06-22 13:45:53 +02:00
Klaus Schmidinger
7ade39597a Activated cutting 2002-06-22 10:11:59 +02:00
Klaus Schmidinger
8a9898ea4f Added Hungarian language texts 2002-06-22 09:30:06 +02:00
Klaus Schmidinger
3ab746babd Changed 'cStatusMonitor' to 'cStatus' 2002-06-16 13:26:00 +02:00
Klaus Schmidinger
a4bfddd2f9 Totally rearranged device/player/recorder structures 2002-06-16 12:57:31 +02:00
Klaus Schmidinger
b005b8fc4a Removed compiler option '-m486' 2002-06-10 16:29:46 +02:00
Klaus Schmidinger
c4281473c3 Added Romanian language texts 2002-06-10 16:18:50 +02:00
Klaus Schmidinger
2107ffa7ee Fixed parsing 'E' records 2002-05-30 09:50:19 +02:00
Klaus Schmidinger
73c91b2672 Added Swedish language texts 2002-05-26 09:43:17 +02:00
Klaus Schmidinger
0161197360 Moved the cEITScanner out of dvbapi.h/.c, into the new eitscan.h/.c 2002-05-20 11:18:09 +02:00
Klaus Schmidinger
9f9d6a8a93 Implemented cStatusMonitor to allow plugins to set up a status monitor 2002-05-19 15:50:11 +02:00
Klaus Schmidinger
82725f53b5 Adopted the cutting fix to version 1.0.3 and rearranged setting Length 2002-05-18 14:26:08 +02:00
Klaus Schmidinger
bdccbbe93e Completely moved OSD handling out of the cDvbApi class, into the new cOsd 2002-05-18 14:03:22 +02:00
Klaus Schmidinger
3e5b31af5e Rearranged OSD class names to make 'cOsd' available for the main OSD interface 2002-05-18 12:41:18 +02:00
Klaus Schmidinger
4da8a8e066 Added an error message if the directory specified in the '-L' option can't be accessed 2002-05-18 10:36:35 +02:00
Klaus Schmidinger
26a2d98524 Fixed the cutting mechanism to make it re-sync in case a frame is larger than the buffer 2002-05-18 09:24:10 +02:00
Klaus Schmidinger
7da1dc6e1d Fixed some function headers to make them compile with gcc 3.x 2002-05-18 08:57:42 +02:00
Klaus Schmidinger
a5c2af7277 Makefile improvements 2002-05-17 16:29:02 +02:00
Klaus Schmidinger
57ff745d76 Added credit to Onno Kreuziger 2002-05-14 16:10:44 +02:00
Klaus Schmidinger
6ea22bf2f0 Improved the [eid]syslog() macros (cont'd) 2002-05-13 20:00:00 +02:00
Klaus Schmidinger
564403b4b1 Added 'insert' capabilities to cList (fix) 2002-05-13 17:56:17 +02:00
Klaus Schmidinger
d4893ad1fe Improved the [eid]syslog() macros 2002-05-13 16:35:49 +02:00
Klaus Schmidinger
49fcbf19fa Made the config directory available to plugins 2002-05-13 16:11:19 +02:00
Klaus Schmidinger
bbddf7e2db Plugin packages now expand into a dir with only the name and version number 2002-05-12 15:12:12 +02:00
Klaus Schmidinger
2cc450a67c Added 'insert' capabilities to cList 2002-05-12 14:46:46 +02:00
Klaus Schmidinger
97a5ac7cba Updated channels.conf.cable 2002-05-12 11:08:47 +02:00
Klaus Schmidinger
5d733e59ee Added the cPlugin::Housekeeping() function 2002-05-12 10:20:17 +02:00
Klaus Schmidinger
01c68def34 Changed the cPlugin::Start() function to return a boolean value 2002-05-12 09:24:45 +02:00
Klaus Schmidinger
7993e4c06f Added release notes for version 1.1.1 2002-05-11 15:00:00 +02:00
Klaus Schmidinger
2e2fbe6143 Added some advice regarding header files 2002-05-11 14:51:51 +02:00
Klaus Schmidinger
71c62d2ee9 Added _I18N__H macro 2002-05-11 14:48:16 +02:00
Klaus Schmidinger
64ed6cffd8 Added setup parameters and a Setup menu to adjust them 2002-05-11 14:17:20 +02:00
Klaus Schmidinger
51eb880da0 Improved implementation of setup menus for plugins 2002-05-11 13:44:58 +02:00
Klaus Schmidinger
0fac78954c Avoiding ambiguities in the cList template class in case one defines a 'list of lists' 2002-05-11 08:42:30 +02:00
Klaus Schmidinger
8162e30e1b Fixed leftover references to the file FORMATS 2002-05-10 15:08:51 +02:00
Klaus Schmidinger
37f89dca49 Separated the actual DVB hardware OSD implementation from the abstract OSD interface 2002-05-10 14:55:53 +02:00
Klaus Schmidinger
b527b27708 Implemented plugin interface 2002-05-09 16:26:56 +02:00
Klaus Schmidinger
bf4a5a678d Updated 'Premiere Sport 2' in channels.conf 2002-05-05 11:30:00 +02:00
Klaus Schmidinger
c10d97743e Updated channels.conf.cable 2002-05-05 11:03:06 +02:00
Klaus Schmidinger
632c5031f2 Updated PW channels 2002-05-05 10:43:48 +02:00
Klaus Schmidinger
176532cf84 Improved Greek language texts 2002-05-04 14:44:32 +02:00
Klaus Schmidinger
3c622adba8 Updated PW channels (cont'd) 2002-05-04 10:00:19 +02:00
Klaus Schmidinger
5d2cb386a0 Fixed skipping forward in time shift mode near the end of the recording 2002-05-03 16:06:54 +02:00
Klaus Schmidinger
04d356f805 Updated PW channels 2002-05-03 14:36:55 +02:00
Klaus Schmidinger
f492153edb Fixed a crash on systems with disks that have a block size larger than 1MB 2002-05-01 16:22:41 +02:00
Klaus Schmidinger
eefd2b88f1 Fixed the unit of the 'SVDRP timeout' setup parameter 2002-05-01 14:57:12 +02:00
Klaus Schmidinger
a0449f07ef Added Greek language texts 2002-05-01 10:35:01 +02:00
Klaus Schmidinger
41af69e833 Version 1.0.2 2002-04-26 13:56:30 +02:00
Klaus Schmidinger
2ac56b497d Default duration of instant recording is 3 hours (and configurable) 2002-04-26 13:43:46 +02:00
Klaus Schmidinger
3b656e9e46 Now taking an active video cutting process into account when doing shutdown or housekeeping 2002-04-26 12:17:38 +02:00
Klaus Schmidinger
2e3030a963 Now encoding '.' at the end of a directory name in case of VFAT=1 2002-04-21 14:10:31 +02:00
Klaus Schmidinger
fb38680302 No longer setting PIDs 0x1FFF, which apparently fixes problems with CAMs and AC3 sound only working the first time 2002-04-21 12:11:00 +02:00
Klaus Schmidinger
d628839eee Updated the Premiere World Formula 1 channels in 'channels.conf' 2002-04-21 10:30:29 +02:00
Klaus Schmidinger
dfb1d78abf Fixed a possible endless loop in shifting recordings between DVB cards 2002-04-21 10:09:56 +02:00
Klaus Schmidinger
c47891d786 Added usleep() in cRecordBuffer::Input() 2002-04-20 10:45:33 +02:00
Klaus Schmidinger
5153104e7e Fixed some missing ',' in i18n.c 2002-04-20 09:42:37 +02:00
Klaus Schmidinger
9b840b07c4 Fixed a crash when selecting the 'Jump' function directly after setting an editing mark 2002-04-20 09:23:02 +02:00
Klaus Schmidinger
59aecc0254 Improved enhanced string editing (cont'd) 2002-04-20 09:06:51 +02:00
Klaus Schmidinger
69d32fae06 Improved enhanced string editing 2002-04-19 15:46:14 +02:00
Klaus Schmidinger
982dcf09b4 Modified header text 2002-04-19 12:50:42 +02:00
Klaus Schmidinger
8ec5c0d926 Improved thread locking in the ring buffer to avoid possible race conditions under heavy load 2002-04-19 12:40:04 +02:00
Klaus Schmidinger
849ec98c3d Changed Robert Schneider's email address 2002-04-19 12:25:10 +02:00
Klaus Schmidinger
3554e3acad Improved enhanced string editing 2002-04-16 16:11:40 +02:00
Klaus Schmidinger
4a698e3fe4 Updated Thilo Wunderlich's email address 2002-04-14 08:33:52 +02:00
Klaus Schmidinger
73212bc1a1 Fixed a typo 2002-04-13 15:31:41 +02:00
Klaus Schmidinger
75643deaeb Updated the 'Blue Movie' channels to the new 'Premiere Erotik' 2002-04-13 11:49:36 +02:00
Klaus Schmidinger
7502d3e8ad Fixed color palette handling on 'big endian' systems 2002-04-13 11:38:57 +02:00
Klaus Schmidinger
cba5ef4373 Implemented enhanced string editing 2002-04-13 10:52:01 +02:00
Klaus Schmidinger
37fa217a09 Added some DVB-T channels for Berlin (Germany) to channels.conf.terr 2002-04-12 15:00:52 +02:00
Klaus Schmidinger
639c3ba0e3 Final version 1.0.0 2002-04-07 13:12:04 +02:00
Klaus Schmidinger
c5fac4ed21 Another fix to the still picture workaround 2002-04-07 09:48:32 +02:00
Klaus Schmidinger
3581c20976 Fixed a bug in the editing process 2002-04-06 15:28:08 +02:00
Klaus Schmidinger
367b3f8c7d Fixed a possible hangup when reading a broken epg.data file 2002-04-06 14:02:41 +02:00
Klaus Schmidinger
d00b5d8828 Now the EPG scan skips channels that have their 'Ca' parameter explicitly set to an other DVB card 2002-04-06 13:21:47 +02:00
Klaus Schmidinger
cb0e6f1b14 Fixed a problem with accessing the epg.data file before it is fully written 2002-04-06 11:49:04 +02:00
Klaus Schmidinger
7babc1034e Fixed the still picture workaround in case the progress display is active 2002-04-06 11:08:54 +02:00
Klaus Schmidinger
3985f8dd49 Fixed resetting the 'First day' timer parameter once the timer actually starts recording 2002-04-06 09:58:36 +02:00
Klaus Schmidinger
ea6f46d5fb Added Spanish language texts 2002-04-06 09:51:08 +02:00
Klaus Schmidinger
ab75db967e Added credits for Michael Moster 2002-04-02 21:21:45 +02:00
Klaus Schmidinger
967ec9f2d4 Fixed a problem with wrong EPG data in the Schedules menu 2002-04-02 20:59:05 +02:00
Klaus Schmidinger
76b86feca4 Added credits for Mirko Doelle 2002-04-02 16:48:28 +02:00
Klaus Schmidinger
46c8afe443 Fixed a bug in the EPG bugfix mechanism if the extended description is shorter than 3 characters 2002-04-01 13:01:27 +02:00
Klaus Schmidinger
5833ea922a Added making the /video directory and copying the config files 2002-04-01 12:50:48 +02:00
Klaus Schmidinger
c52d64f6cb Stripped last paragraph 2002-04-01 12:36:29 +02:00
Klaus Schmidinger
5526f6aaf9 Added KEYS section 2002-04-01 12:32:59 +02:00
Klaus Schmidinger
e4da7fc4a5 Added reference to vdr man pages 2002-04-01 12:25:38 +02:00
Klaus Schmidinger
71ee42fe96 Changed the default 'Ok' key when using the PC keyboard from '5' to 'Enter' 2002-04-01 12:24:35 +02:00
Klaus Schmidinger
53ecd41810 Fixed a bug in parsing group separators in channels.conf 2002-04-01 12:01:00 +02:00
Klaus Schmidinger
f4d9488718 Added Polish language texts 2002-04-01 11:38:27 +02:00
Klaus Schmidinger
5e4834e737 Fixed a bug when a timer records over midnight of a day that had a change in Daylight Saving Time 2002-04-01 11:04:47 +02:00
Klaus Schmidinger
a09bc76955 Changed Rainer Zocholl's email address 2002-04-01 09:18:24 +02:00
Klaus Schmidinger
0ec8d4c4a5 Added thanks to Klaus Wolf 2002-04-01 09:14:57 +02:00
Klaus Schmidinger
2331fb9cc1 Fixed skipping the next hit of a repeating timer 2002-03-31 21:24:10 +02:00
Klaus Schmidinger
94849cfde8 Now using statfs() to determine the amount of free disk space 2002-03-31 20:51:06 +02:00
Klaus Schmidinger
ca29ed0ca8 Completed Norwegian OSD texts 2002-03-31 16:32:04 +02:00
Klaus Schmidinger
758a4850fb Completed Slovenian OSD texts 2002-03-31 15:55:29 +02:00
Klaus Schmidinger
837ce0a299 Changed time entry in the 'Jump' command during replay, so that it is filled up from right to left 2002-03-31 15:26:18 +02:00
Klaus Schmidinger
cebd81cd60 Added units to Setup parameters 2002-03-31 13:39:56 +02:00
Klaus Schmidinger
767133a18e Fixed a bug in the 'First day' timer parameter for timers that record over midnight 2002-03-31 12:01:58 +02:00
Klaus Schmidinger
72962ccdd7 Fixed a bug in switching back the replay mode display in time shift mode 2002-03-31 10:57:28 +02:00
Klaus Schmidinger
9bfb79e15e Suppressing automatic hotkey assignment if entry starts with digit and blank 2002-03-29 16:45:36 +01:00
Klaus Schmidinger
b83ff7ab5d Completed Italian OSD texts 2002-03-29 16:20:39 +01:00
Klaus Schmidinger
ad1e292c2e New 'make' target 'install' 2002-03-29 14:24:47 +01:00
Klaus Schmidinger
de796b51e6 Added a manual page vdr(5) 2002-03-29 14:07:22 +01:00
Klaus Schmidinger
0358b2abb8 Checking the return value of '...FileReady...' calls in dvbapi.c for better performance under heavy system load 2002-03-29 11:43:58 +01:00
Klaus Schmidinger
d9b6236191 Adjusting column width for channel numbers in case there are more than 999 channels 2002-03-29 10:50:20 +01:00
Klaus Schmidinger
2625c46232 Added command line option -V 2002-03-29 10:10:04 +01:00
Klaus Schmidinger
ce5a52c906 Added a manual page vdr(1) 2002-03-24 14:32:39 +01:00
Klaus Schmidinger
1838c02c9e Fixed scrolling the 'Channels' menu in case the cursor ends up on a group delimiter 2002-03-24 11:23:23 +01:00
Klaus Schmidinger
c751c195c1 Improved usage of 'safe_write()' 2002-03-23 16:17:39 +01:00
Klaus Schmidinger
ef91debc4d Fixed safe_write() 2002-03-23 15:48:08 +01:00
Klaus Schmidinger
63a3eb076e Another Dutch OSD text 2002-03-23 15:33:26 +01:00
Klaus Schmidinger
56839d8d39 Fixed a memory leak 2002-03-23 15:17:14 +01:00
Klaus Schmidinger
ca479d90df Displaying command to be executed in status line 2002-03-23 15:16:12 +01:00
Klaus Schmidinger
a9e4cc7d63 Workaround for displaying still frames with the unpatched LinuxDVB driver 2002-03-23 14:24:27 +01:00
Klaus Schmidinger
460e907cb9 Now writing the title of a recording into the 'summary.vdr' file 2002-03-23 11:37:28 +01:00
Klaus Schmidinger
508d8a92bd Completed French OSD texts 2002-03-23 10:26:55 +01:00
Klaus Schmidinger
58901a7d18 Some more Dutch OSD texts 2002-03-22 15:37:52 +01:00
Klaus Schmidinger
0be1a13c60 Improved file I/O in case of EINTR 2002-03-22 15:18:58 +01:00
Klaus Schmidinger
70db7f17bc Added i18n of 'Disk' in main menu title 2002-03-22 14:39:45 +01:00
Klaus Schmidinger
f94627ab13 Completed Portuguese OSD texts 2002-03-22 14:30:41 +01:00
Klaus Schmidinger
26e9ec2d65 Completed Dutch OSD texts 2002-03-22 13:58:50 +01:00
Klaus Schmidinger
6607608f9a Completed Finnish OSD texts 2002-03-22 13:32:42 +01:00
Klaus Schmidinger
e4424b1550 Fixed restoring CICAM setup values for a fourth DVB card 2002-03-18 21:36:00 +01:00
Klaus Schmidinger
b305ea6b02 Changed 'TrustedTransponder' to 'TimeTransponder' 2002-03-17 14:24:11 +01:00
Klaus Schmidinger
dea51d37a9 Refined texts of the 'Setup' menu 2002-03-17 14:11:22 +01:00
Klaus Schmidinger
b72b15cf8f New Setup item 'Restart' 2002-03-17 12:04:35 +01:00
Klaus Schmidinger
ae3f18dd57 The 'Commands' menu now automatically assigns number keys as hotkeys to the commands 2002-03-16 16:48:14 +01:00
Klaus Schmidinger
986f467993 Replaced 'killproc' with 'killall' in 'runvdr' 2002-03-16 16:22:12 +01:00
Klaus Schmidinger
f7d6a96935 Fixed high CPU usage in transfer mode 2002-03-16 14:27:35 +01:00
Klaus Schmidinger
25abe47a3b The 'Left' and 'Right' keys are now used to page up and down in text displays 2002-03-16 14:08:12 +01:00
Klaus Schmidinger
45180b762f Physically removing a deleted recording if one with the same name shall be deleted again 2002-03-16 12:19:14 +01:00
Klaus Schmidinger
80bc132236 Fixed displaying a system message while the replay mode is being shown 2002-03-16 11:38:27 +01:00
Klaus Schmidinger
92358d6a4e Changed the title of the 'Main' menu to 'VDR' 2002-03-16 10:09:54 +01:00
Klaus Schmidinger
d9cfa43d85 Grouped the Setup parameters into several sub-menus 2002-03-16 10:03:04 +01:00
Klaus Schmidinger
f9a3885ef2 New Setup parameter TrustedTransponder 2002-03-10 12:45:58 +01:00
Klaus Schmidinger
550c79e411 Changed the MANUAL description of the 'Conditional Access' setup parameters 2002-03-10 10:20:53 +01:00
Klaus Schmidinger
70274665e3 Added the COPYING file 2002-03-10 10:05:20 +01:00
Klaus Schmidinger
d5c01bbe5a Implemented OSD for Volume and Mute 2002-03-09 17:11:49 +01:00
Klaus Schmidinger
cb90e9b8dc Now starting the Dolby Digital output thread only if the recording actually contains Dolby Digital audio data 2002-03-09 12:09:57 +01:00
Klaus Schmidinger
ac5aecb8eb Fixed 'zombie' processes when closing a pipe 2002-03-09 11:51:56 +01:00
Klaus Schmidinger
a9fd732a72 Added log messages when deleting recordings in case the disk runs full while recording 2002-03-09 10:45:10 +01:00
Klaus Schmidinger
eb89599c58 Fixed resetting 'mute' state when setting the volume to a non-zero value 2002-03-09 10:16:16 +01:00
Klaus Schmidinger
18ab84b0c1 New SVDRP command VOLU 2002-03-09 10:07:40 +01:00
Klaus Schmidinger
7ada973f6c New command line option '-m' 2002-03-08 16:37:42 +01:00
Klaus Schmidinger
9e20745fde Blue button is now 'Stop' in 'Main' menu if replaying 2002-03-08 16:11:34 +01:00
Klaus Schmidinger
5d666161d6 Fixed reacting on changes in CICAM settings (needed to restart VDR before) 2002-03-08 15:19:49 +01:00
Klaus Schmidinger
59b8e71d67 Fixed handling CICAM settings if the first one of a DVB card was FTA 2002-03-08 15:06:37 +01:00
Klaus Schmidinger
a5c7994c26 Fixed avoiding the primary DVB interface in case Setup.PrimaryLimit is 0 2002-03-08 14:24:19 +01:00
Klaus Schmidinger
3b46788bcd Added 'Ca' code 201 for 'Cryptoworks, GOD-DIGITAL' to 'ca.conf' 2002-03-08 13:56:34 +01:00
Klaus Schmidinger
0294221a0d Fixed a comment typo 2002-03-07 17:07:04 +01:00
Klaus Schmidinger
e18fca233e Updated French language texts 2002-03-03 16:39:54 +01:00
Klaus Schmidinger
9d4456a0a3 CICAM setup for conditional access channels 2002-03-03 16:12:29 +01:00
Klaus Schmidinger
9f5397b510 Fixed a deadlock when switching channels via Schedule/Now|Next/Switch 2002-03-02 09:37:56 +01:00
Klaus Schmidinger
90af5a1bd9 Fixed parsing 'E' records 2002-02-26 17:20:19 +01:00
Klaus Schmidinger
bddab7107d Fixed a crash in case there is no 'epg.data' at program start 2002-02-25 16:32:34 +01:00
337 changed files with 149278 additions and 34542 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,8 +278,8 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -305,14 +305,15 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

1792
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

34
Doxyfile.filter Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/perl
# Filter source files for use with Doxygen.
#
# Escapes special characters in comments marked with "///<".
#
# Usage: Doxyfile.filter filename
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Doxyfile.filter 2.1 2013/02/17 10:54:05 kls Exp $
$TAG = "///<";
while (<>) {
$t = $_;
$p = index($t, $TAG);
if ($p >= 0) {
$p += length($TAG);
print substr($t, 0, $p);
$quote = 0;
while (1) {
$s = substr($t, $p++, 1);
last if ($s eq "");
$quote ^= 1 if ($s eq '"');
print "\\" if (!$quote && $s =~ /[\\\@<>]/);
print $s;
}
}
else {
print $t;
}
}

216
FORMATS
View File

@ -1,216 +0,0 @@
Video Disk Recorder File Formats
--------------------------------
* channels.conf
This file contains the channel setup.
It consists of two types of lines: "group delimiters" and "channel
definitions".
A "group delimiter" is a line starting with a ':' as the very first
character, followed by arbitrary text.
Example: ":First group"
A "channel definition" is a line with channel data, where the fields
are separated by ':' characters:
Example: "RTL:12188:h:1:27500:163:104:105:0:12003"
The fields in a channel definition have the following meaning (from left
to right):
- Name: the channel's name (if the name originally contains a ':' character
it has to be replaced by '|')
- Frequency in MHz for DVB-S and DVB-C, kHz for DVB-T (as an integer)
- Polarization (one of 'h', 'H', 'v', 'V') **
- Diseqc number **
- Symbol rate ***
- Video PID (set to '0' for radio channels, '1' for encrypted radio channels)
- Audio PID (either one number, or two, separated by a comma)
If this channel also carries Dolby Digital sound, the Dolby PIDs follow
the audio PIDs, separated by a semicolon, as in "...:101,102;103,104:..."
- Teletext PID
- Conditional Access (0 = Free To Air, 1 = can be decrypted by the first
DVB card, 2 = can be decrypted by the second DVB card)
- Program Number
Fields marked with ** are only meaningful for DVB-S receivers.
DVB-C and DVB-T receivers simply ignore these.
Fields marked with *** are only meaningful for DVB-S and DVB-C receivers.
DVB-T receivers simply ignore these.
* timers.conf
This file contains the timer setup.
The fields in a timer definition have the following meaning (from left
to right):
- Timer active (0 = inactive, 1 = active, 3 = instant recording)
Values other than these can be used by external programs to mark active timers
and recognize if the user has modified them. When a user modifes an active
timer the 'active' field will be explicitly set to '1' (or '0', respectively,
if the user deactivates the timer).
Note: in order to allow future extensibility, external programs using the
'active' parameter should only use the upper 16 bit of this 32 bit parameter
and leave the lower 16 bit untouched.
- Program number of the channel to record
- Day of recording (in case of a repeating timer), either one or more of
M------ = Monday
-T----- = Tuesday
--W---- = Wednesday
---T--- = Thrusday
----F-- = Friday
-----S- = Saturday
------S = Sunday
(any combination is possible, for example MTWTF--, and the days may be
indicated by any characters except '-', so for example ABC---- would set
a timer that records on monday, tuesday and wednesday) or the "day of month"
(1..31) in case of a single shot timer.
The day definition of a repeating timer may be followed by the date when that
timer shall hit for the first time. The format for this is @YYYY-MM-DD,
so a complete definition could look like this: MTWTF--@2002-02-18. This
"first day" feature can be used to disable a repeating timer for a couple
of days, or for instance to define a new Mon...Fri timer on wednesday, which
actually starts "monday next week". The "first day" date given need not be
that of a day when the timer would actually hit.
- Start time (first two digits for the hour, second two digits for the minutes)
- End time (first two digits for the hour, second two digits for the minutes)
- Priority (from 0 to 99, 0 = lowest prioity, 99 = highest priority)
- Guaranteed lifetime of recording (in days); 0 means that this recording may
be automatically deleted by a new recording with higher priority, 99 means
that this recording will never be automatically deleted
- Name of timer (will be used to name the recording); if the name contains
any ':' characters, these have to be replaced with '|'. If the name shall
contain subdirectories, these have to be delimited by '~' (since the '/'
character may be part of a regular programme name).
The special keywords TITLE and EPISODE, if present, will be replaced
with the title and episode information from the EPG data at the time of
recording (if that data is available). If at the time of recording either
of these cannot be determined, TITLE will default to the channel name, and
EPISODE will default to a blank.
- Summary (any newline characters in the summary have to be replaced with '|';
the summary may contain ':' characters)
* setup.conf
This file contains the basic configuration options for VDR.
Each line contains one option in the format "Name = Value".
See the MANUAL file for a description of the available options.
* commands.conf
This file contains the definitions of commands that can be executed from
the "Main" menus "Commands" option.
Each line contains one command definition in the following format:
title : command
where 'title' is the string the will be displayed in the "Commands" menu,
and 'command' is the actual command string that will be executed when this
option is selected. The delimiting ':' may be surrounded by any number of
white space characters.
In order to avoid error messages to stderr, every command should have
stderr redirected to stdout. Everything the command prints to stdout will
be displayed in a result window, with 'title' as its title.
Examples:
1 Check for new mail: /usr/local/bin/checkmail 2>&1
2 CPU status : /usr/local/bin/cpustatus 2>&1
3 Disk space : df -h | grep '/video' | awk '{ print 100 - $5 "% free"; }'
If the first non-blank character of the 'title' is a digit in the range
1..9, the command can be selected directly by pressing the respective numerical
key on the remote control.
* svdrphosts.conf
This file contains the IP numbers of all hosts that are allowed to access the
SVDRP port.
Each line contains one IP number in the format
IP-Address[/Netmask]
where 'IP-Address' is the address of a host or a network in the usual dot
separated notation (as in 192.168.100.1). If the optional 'Netmask' is given
only the given number of bits of 'IP-Address' are taken into account. This
allows you to grant SVDRP access to all hosts of an entire network. 'Netmask'
can be any integer from 1 to 32. The special value of 0 is only accepted if
the 'IP-Address' is 0.0.0.0, because this will give access to any host (USE
THIS WITH CARE!).
Everything following (and including) a '#' character is considered to be
comment.
* marks.vdr
This file (if present in a recording directory) contains the editing marks
defined for this recording.
Each line contains the definition of one mark in the following format:
hh:mm:ss.ff comment
where 'hh:mm:ss.ff' is a frame position within the recording, given as "hours,
minutes, seconds and (optional) frame number". 'comment' can be any string
and may be used to describe this mark. If present, 'comment' must be separated
from the frame position by at least one blank.
The lines in this file need not necessarily appear in the correct temporal
sequence, they will be automatically sorted by time index.
CURRENT RESTRICTIONS:
- the 'comment' is currently not used by VDR
- marks must have a frame number, and that frame MUST be an I-frame (this
means that only marks generated by VDR itself can be used, since they
will always be guaranteed to mark I-frames).
* 001.vdr ... 255.vdr
These are the actual recorded MPEG data files. In order to keep the size of
an individual file below a given limit, a recording is split into several
files. The contents of these files is "Packetized Elementary Stream" (PES)
and contains ES packets with ids 0xE0 for video, 0xC0 for audio 1 and 0xC1
for audio 2 (if available). Dolby Digital data is stored in packets with
ids 0xBD.
* epg.data
This file contains the EPG data in an easily parsable format. The first
character of each line defines what kind of data this line contains.
The following tag characters are defined:
C <service id> <channel name>
E <event id> <start time> <duration> <table id>
T <title>
S <subtitle>
D <description>
e
c
Lowercase characters mark the end of a sequence that was started by the
corresponding uppercase character. The outer frame consists of a sequence
of one or more 'C'...'c' (Channel) entries. Inside these any number of
'E'...'e' (Event) entries are allowed. The 'T', 'S' and 'D' entries are
optional (although every event should at least have a 'T' entry).
<service id> is the "program number" as defined in 'channels.conf'
<channel name> is the "name" as in 'channels.conf' (for information only)
<start time> is the time (as a time_t integer) in UTC when this event starts
<duration> is the time (in seconds) that this event will take
<table id> is a hex number that indicates the table this event is contained
in (if this is left empty or 0 this event will not be overwritten
or modified by data that comes from the DVB stream)
<title> is the title of the event
<subtitle> is the subtitle (typically the name of the episode etc.)
<description> is the description of the event
This file will be read at program startup in order to restore the results of
previous EPG scans.

9085
HISTORY

File diff suppressed because it is too large Load Diff

412
INSTALL
View File

@ -1,74 +1,87 @@
Installation of the Video Disk Recorder
---------------------------------------
Version 2.7
-----------
Compiling and running the program:
----------------------------------
Make sure the files from this package are located in a
directory that is "parallel" to the DVB directory of the
driver source for the Siemens DVB-S PCI card (refer to
http://linuxtv.org/dvb/siemens_dvb.html for more information
about that driver). For example, if the DVB driver was
extracted into the directory /home/kls/vdr/DVB, then this
package should be extracted into /home/kls/vdr/VDR.
If you have the DVB driver source in a different location
you will have to change the definition of DVBDIR in the
Makefile.
VDR requires the Linux-DVB driver header files to compile.
As of kernel 2.6 these are part of the official Linux kernel
distribution, and so they should be automatically found in
/usr/include/linux/dvb. If your DVB driver header files are
in a different location, you can rename the file Make.config.template
to Make.config and adjust the definition of DVBDIR in that file.
VDR requires the Linux-DVB card driver version dated 2001-09-14 or higher
to work properly.
Refer to http://linuxtv.org for more information about the Linux-DVB driver.
VDR requires the Linux-DVB driver version that supports the S2API interface.
You will also need to install the following libraries, as well as their
"devel" packages to get the necessary header files for compiling VDR:
fontconfig
freetype2
fribidi (see "BiDi support" below)
gettext
libcap
libjpeg
If the "capability" module is not compiled into your kernel, you may
need to do "modprobe capability" before running VDR.
After extracting the package, change into the VDR directory
and type 'make'. This should produce an executable file
named 'vdr', which can be run after the DVB driver has been
installed.
If you want to build a 32-bit version of VDR on a 64-bit machine, you can
use 'make M32=1' to do so. Note that you also need to have a Make.config file
(derived from Make.config.template) to make this work.
IMPORTANT: See "Configuration files" below for information on how
========= to set up the configuration files at the proper location!
The 'vdr' program can be controlled via the PC keyboard or
an infrared remote control unit. Define the REMOTE macro to one of the
following values 'make' call to activate the respective control mode:
By default the 'vdr' program can be controlled via the PC keyboard.
If you want to disable control via the keyboard, you can add NO_KBD=1
to the 'make' call, or use the '--no-kbd' option at runtime.
If you have a LIRC compatible infrared remote control receiver you can define
the REMOTE macro to one of the following values in the 'make' call to make
the respective control the default:
REMOTE=KBD control via the PC keyboard (default)
REMOTE=RCU control via the "Remote Control Unit" receiver
(see http://www.cadsoft.de/people/kls/vdr/remote.htm)
REMOTE=LIRC control via the "Linux Infrared Remote Control"
(see http://www.lirc.org)
REMOTE=NONE no remote control (in case only SVDRP shall be used)
Adding "DEBUG_OSD=1" will use the PC screen (or current window)
to display texts instead of the DVB card's on-screen display
interface. These modes are useful when testing new menus if you
only have a remote connection to the VDR (which, in my case, is
located in the living room and has neither a monitor nor a keyboard).
Alternatively you can use the '--lirc' option at runtime.
This option accepts an optional path to the remote control device,
the default of which can be set via the LIRC_DEVICE macro.
If your video directory will be on a VFAT partition, add the compile
time switch
VFAT=1
to the 'make' command.
If you want to make your video directory available to other machines that
have limitations on directory name lengths and/or allowed characters in
directory names, you can call VDR with the command line option '--dirnames'
(see man vdr(1) for details).
When running, the 'vdr' program writes status information into the
system log file (/var/log/messages). You may want to watch these
messages (tail -f /var/log/mesages) to see if there are any problems.
system log file, which is usually /var/log/messages (or /var/log/user.log,
depending on your syslog configuration). You may want to watch these
messages (tail -f /var/log/messages) to see if there are any problems.
The program can be controlled via a network connection to its SVDRP
port ("Simple Video Disk Recorder Protocol"). By default, it listens
on port 2001 (use the --port=PORT option to change this). For details
on port 6419 (use the --port=PORT option to change this). For details
about the SVDRP syntax see the source file 'svdrp.c'.
WARNING: DUE TO THE OPEN SVDRP PORT THIS PROGRAM MAY CONSTITUTE A
======= POTENTIAL SECURITY HAZARD! IF YOU ARE NOT RUNNING VDR IN
A CONTROLLED ENVIRONMENT, YOU MAY WANT TO DISABLE SVDRP
BY USING '--port=0'!
The file 'svdrphosts.conf' can be used to define which hosts are allowed
to access the SVDRP port. By default only localhost (127.0.0.1) is granted
access. If you want to give other hosts access to your SVDRP port you need to
add their IP numbers to 'svdrphosts.conf'.
You can disable SVDRP access entirely by either running VDR with '--port=0',
or by removing all entries (including 127.0.0.1 for the localhost) from
'svdrphosts.conf'.
If the program shall run as a daemon, use the --daemon option. This
will completely detach it from the terminal and will continue as a
background process.
@ -78,6 +91,35 @@ option to set the controlling terminal, as in
vdr:123:respawn:/usr/local/bin/vdr --terminal=/dev/tty8 -w 60
See the man page vdr(1) for complete information about all command line options.
Output devices
--------------
VDR by itself doesn't produce any audio or video output. In order to watch
live tv or recordings, you will need to use a plugin that supports the actual
hardware in your system, for instance:
Plugin: Device:
dvbsddevice Full-Featured SD DVB cards (Fujitsu-Siemens Design)
ftp://ftp.tvdr.de/vdr/Plugins
dvbhddevice Full-featured HD DVB cards (Technotrend TT S2-6400)
https://bitbucket.org/powARman/dvbhddevice
rpihddevice Raspberry Pi
https://projects.vdr-developer.org/git/vdr-plugin-rpihddevice.git
See https://linuxtv.org/vdrwiki/index.php/Output_devices for more.
Standard compliance
-------------------
Basically VDR works according to the DVB standard, but there are countries/providers
that use other standards, which in some details deviate from the DVB standard.
This makes it necessary to handle things differently in some areas, depending on
which standard is actually used. If this is the case in your area, you may need
to adjust the option "DVB/Standard compliance" in the Setup menu accordingly.
Locale
------
@ -96,15 +138,56 @@ in the log file, it is sufficient to just set
which only influences the way strings are sorted and leaves error messages
in English.
Automatic restart in case of hangups:
-------------------------------------
Note that for VDR's internationalized texts to work, the LANG environment
variable must be set to a valid locale!
BiDi support
------------
Some languages are written right-to-left. In order to display such languages
correctly, you need to build VDR with BIDI=1. This will link to the "fribidi"
library and implement a function that prepares bidirectional texts to be
displayed correctly. Since BiDi support adds some runtime overhead by requiring
additional memory allocation and copying, this feature is not compiled in
by default, so that users that have no need for this don't get any overhead.
Workaround for providers not encoding their DVB SI table strings correctly
--------------------------------------------------------------------------
According to "ETSI EN 300 468" the default character set for SI data is
ISO6937. But unfortunately some broadcasters actually use ISO-8859-9 or
other encodings, but fail to correctly announce that.
Users who want to set the default character set to something different can
do this by using the command line option --chartab with something
like ISO-8859-9.
Start script with automatic restart in case of hangups:
-------------------------------------------------------
The VDR source directory contains a 'runvdr.template'. Just copy it as 'runvdr'
into your /usr/bin or /usr/local/bin directory and adjust it to your particular
requirements. (See the comments inside the script for more information.)
If you run VDR using the 'runvdr' shell script it will use the built-in
watchdog timer to restart the program in case something happens that
causes a program hangup. If you change the command line options for the
call to the VDR program, be sure to NOT use the '-d' option! Otherwise
VDR will go into 'deamon' mode and the initial program call will return
immediately!
VDR will go into 'daemon' mode and the initial program call will return
immediately! 'runvdr' needs to be started as user 'root'. Use the '-u'
option to run the actual 'vdr' program under a different user id.
Setting the system time:
------------------------
If you want VDR to set the system time according to the data received
from the transponder, you need to start VDR as user 'root'. For security
reasons you should then use the '-u' option to define a lesser privileged
user id under which VDR should actually run. It will then only keep the
capability to set the system time, and set its user id to the given one.
You also need to enable the "EPG/Set system time" option in VDR's
Setup menu, and select a transponder from which you want to receive
the time in "Use time from transponder". Make sure you select a transponder
that has a reliable clock - some transponders are quite off.
Automatic shutdown:
-------------------
@ -116,30 +199,33 @@ and the next timer event is at least MinEventTimeout minutes in the future
(see the Setup parameters in MANUAL).
The command given in the '-s' option will be called with five parameters.
The first one is the time (in UTC) of the next timer event (as a time_t
type number), and the second one is the number of seconds from the current
time until the next timer event. Your program can choose which one to use
for programming some sort of hardware device that makes sure the computer
will be restarted in time before the next timer event. Your program must
also initiate the actual shutdown procedure of the computer. After this
your program should return to VDR. VDR will not automatically exit after
calling the shutdown program, but will rather continue normally until it
receives a SIGTERM when the computer is actually shut down. So in case
the shutdown fails, or the shutdown program for some reason decides not to
perform a shutdown, VDR will stay up and running and will call the shutdown
program again after another MinUserInactivity minutes.
If there are currently no timers active, both parameters will be '0'.
In that case the program shall not set the hardware for automatic restart
and only perform the system shutdown. A program that uses the second parameter
to set the hardware for restart must therefore also check whether the first
parameter is '0'.
The first one is the time (in UTC) of the next timer event or plugin wakeup
time (as a time_t type number), and the second one is the number of
seconds from the current time until the next timer event. Your program can
choose which one to use for programming some sort of hardware device that
makes sure the computer will be restarted in time before the next timer
event. Your program must also initiate the actual shutdown procedure of the
computer. VDR will not automatically exit after calling the shutdown
program, but will rather continue normally until it receives a SIGTERM when
the computer is actually shut down. So in case the shutdown fails, or the
shutdown program for some reason decides not to perform a shutdown, VDR
will stay up and running and will call the shutdown program again after a
while. The command will be started in a separate background session, so it
can continue to run even after VDR has terminated.
The third parameter contains the number of the channel that will be recorded
by the next timer (or 0 if no timer is present), and the fourth parameter
contains the file name of the recording as defined in the timer (or an empty
string if no timer is present). These can be used by the shutdown program to
show that information on some display interface etc.
If there are currently no timers active and there is no plugin wakeup
time, both parameters will be '0'. In that case the program shall not set
the hardware for automatic restart and only perform the system shutdown.
A program that uses the second parameter to set the hardware for restart
must therefore also check whether the first parameter is '0'.
If the wakeup time is given by a timer, the third parameter will be the
number of the channel that will be recorded, otherwise it will be 0. The
fourth parameter contains the file name of the recording as defined in the
timer, the name of the plugin that requested the wakeup time, or an empty
string if no wakeup time is present. These can be used by the shutdown
program to show that information on some display interface etc.
The fifth parameter indicates the reason why the shutdown was requested.
'0' means this is an automatic shutdown due to some timeout, while '1' means
@ -147,18 +233,16 @@ that this is a user requested shutdown (resulting from pressing the "Power"
key). The shutdown program may use this information to decide whether or
not to actually perform the system shutdown.
If a timer is currently recording, the parameters will reflect the start
time of that timer. This means that the first parameter will be a time in
the past, and the second parameter will be a negative number. This only
happens if the user presses the "Power" key while a timer is currently
recording.
If a timer is currently recording, or a recording would start within the
next 30 minutes (default for the "Min. event timeout" setup parameter), and
the user insists in shutting down now, the first and second parameter will
correspond to a time that is "Min. event timeout" minutes in the future.
Before the shutdown program is called, the user will be prompted to inform
him that the system is about to shut down. If any remote control key is
pressed while this prompt is visible, the shutdown will be cancelled (and
tried again after another MinUserInactivity minutes). The shutdown prompt
will be displayed for 5 minutes, which should be enough time for the user
to react.
tried again later). The shutdown prompt will be displayed for 5 minutes, which
should be enough time for the user to react.
A sample shell script to be used with the '-s' option might look like this:
@ -180,19 +264,27 @@ Executing commands before and after a recording:
------------------------------------------------
You can use the '-r' option to define a program or script that gets called
before and after a recording is performed, and after an editing process
has finished.
at various stages of handling recordings.
The program will be called with two string parameters. The first parameter
is one of
The program will be called with two or three string parameters.
The first parameter is one of
before if this is *before* a recording starts
started if this is after a recording has *started*
after if this is *after* a recording has finished
editing if this is before *editing* a recording
edited if this is after a recording has been *edited*
deleted if this is after a recording has been *deleted*
copying if this is before *copying* a recording
copied if this is after a recording has been *copied*
renamed if this is after a recording has been *renamed*
moved if this is after a recording has been *moved*
(note that a move across file system borders triggers a sequence
of "copying", "copied" and "deleted")
and the second parameter contains the full name of the recording's
and the second and third parameter (if present) contain the full name of the recording's
directory (which may not yet exists at that moment in the "before" case).
In the "edited" case it will be the name of the edited version.
See the example below for the exact meaning of these parameters.
Within this program you can do anything you would like to do before and/or
after a recording or after an editing process. However, the program must return
@ -208,11 +300,38 @@ case "$1" in
before)
echo "Before recording $2"
;;
started)
echo "Started recording $2"
;;
after)
echo "After recording $2"
;;
editing)
echo "Editing recording $2"
echo "Source recording $3"
;;
edited)
echo "Edited recording $2"
echo "Source recording $3"
;;
deleted)
echo "Deleted recording $2"
;;
copying)
echo "Destination recording $2"
echo "Source recording $3"
;;
copied)
echo "Destination recording $2"
echo "Source recording $3"
;;
renamed)
echo "New name of recording $2"
echo "Old name of recording $3"
;;
moved)
echo "New path of recording $2"
echo "Old path of recording $3"
;;
*)
echo "ERROR: unknown state: $1"
@ -227,7 +346,9 @@ Use "vdr --help" for a list of available command line options.
Replaying Dolby Digital audio:
------------------------------
To replay Dolby Digital audio you need a program that reads the DD data
If you have a "full featured" DVB card with SPDIF output you can replay
Dolby Digital audio directly through the DVB card.
You can also use an external program that reads the DD data
from stdin and processes it in a way suitable for your audio hardware.
This program must be given to VDR with the '-a' option, as in
@ -236,7 +357,7 @@ This program must be given to VDR with the '-a' option, as in
The video data directory:
-------------------------
All recordings are written into directories below "/video". Please
All recordings are written into directories below "/srv/vdr/video". Please
make sure this directory exists, and that the user who runs the 'vdr'
program has read and write access to that directory.
If you prefer a different location for your video files, you can use
@ -245,51 +366,49 @@ name you use with '-v' is a clean and absolute path name (no '..' or
multiple slashes).
Note that the file system need not be 64-bit proof, since the 'vdr'
program splits video files into chunks of about 1GB. You should use
program splits video files into chunks of about 2GB. You should use
a disk with several gigabytes of free space. One GB can store roughly
half an hour of video data.
half an hour of SD video data, or 10 minutes of HD video.
Either use one of today's large terabyte disks (preferably with a backup disk
in a RAID-1 array), or use something like "mhddfs" to group several disks
into one large volume.
If you have more than one disk and don't want to combine them to form
one large logical volume, you can set up several video directories as
mount points for these disks. All of these directories must have the
same basic name and must end with a numeric part, which starts at 0 for
the main directory and has increasing values for the rest of the
directories. For example
Note that you should not copy any non-VDR files into the video directory,
since this might cause a lot of unnecessary disk access when VDR cleans up those
directories and there is a large number of files and/or subdirectories in
there. If you have a large disk that you want to use for VDR's video data as
well as other stuff, you may want to create a subdirectory for VDR, as in
/video0
/video1
/video2
/mydisk/video
would be a setup with three directories. You can use more than one
numeric digit, and the directories need not be directly under '/':
and put your other stuff into, say,
/mnt/MyVideos/vdr.00
/mnt/MyVideos/vdr.01
/mnt/MyVideos/vdr.02
...
/mnt/MyVideos/vdr.11
/mydisk/otherstuff
would set up twelve disks (wow, what a machine that would be!).
If your video directory is mounted via a Samba share, and you are experiencing
problems with replaying in fast forward mode, you can comment out the line
To use such a multi directory setup, you need to add the '-v' option
with the name of the basic directory when running 'vdr':
#define USE_FADVISE
vdr -v /video0
in the file tools.c, which may lead to better results.
Configuration files:
--------------------
There are three configuration files that hold information about
channels, remote control keys and timers. By default these files are
assumed to be located in the video directory, but a different directory
can be used with the '-c' option. For starters just copy all *.conf files from
the VDR directory into your video directory.
There are several configuration files that hold information about
channels, remote control keys, timers etc. By default these files are
spread around the system according to the FHS ("File system Hierarchy Standard").
If you prefer to have VDR built to run locally under the VDR source tree,
you can copy the file Make.config.template to Make.config and set the parameter
LCLBLD=1. If you also want to have all data files under one single directory,
set ONEDIR=1 in Make.config.
For starters just copy all *.conf files from the VDR directory into your
video directory.
The configuration files can be edited with any text editor, or will be written
by the 'vdr' program if any changes are made inside the on-screen menus.
The meaning of the data entries may still vary in future releases, so for the
moment please look at the source code (config.c) to see the meaning of the
various fields.
Take a look at man page vdr(5) for information about the file formats.
The files that come with this package contain the author's selections,
so please make sure you adapt these to your personal taste. Also make sure
@ -306,8 +425,30 @@ Setting up DiSEqC:
If you are using a DVB-S card with a satellite equipment that needs to be
accessed using DiSEqC, you have to go to the "Setup" menu and set the "DiSEqC"
parameter to "on". Also check the "DiSEqC" parameters for the various channels
and set them to the necessary values.
parameter to "on". You also need to set up the file 'diseqc.conf' to properly
access your DiSEqC equipment (see man vdr(5) for details).
A special form of DiSEqC is used to connect several receivers to one signal
source using only a single cable. This method, known as "Satellite Channel Routing"
according to EN50494 (aka "Unicable(TM)", "OLT(TM)", "SatCR", "Single Cable
Distribution", "Channel Stacking System" or "Single Cable Interface") or
EN50607 (aka "JESS") uses the file "scr.conf" to specify which SCR channels
use which user band frequency.
If DVB-S devices need to be connected to the same satellite cable, but no
"Satellite Channel Routing" is available, they can be set to be "bonded" in
the Setup/LNB menu. Bonded devices can only be tuned to the same polarization
and frequency band, which reduces the number of potentially receivable channels.
Note that it doesn't make sense to use "Satellite Channel Routing" and
"Device Bonding" at the same time with the same devices. If you use either
of these methods, it is necessary that your devices are always created in the
same sequence when the drivers are loaded. You may need to configure some
proper "udev" rules to make sure this happens.
If you use "Device Bonding" and you add devices to your setup that don't
provide DVB-S and take up a position in which there used to be a bonded DVB-S
device, make sure you open, adjust (if necessary) and confirm the Setup/LNB
menu to have the device bondings set correctly again.
Running VDR with DVB-C (cable) or DVB-T (terrestrial):
------------------------------------------------------
@ -318,20 +459,18 @@ cable or terrestrial reception is the 'channels.conf' file. The distribution
archive contains a default 'channels.conf.cable' and 'channels.conf.terr',
respectively, which users of such cards can rename or copy to 'channels.conf'
in order to receive digital cable or terrestrial channels. The format of these
files is exactly the same as for satellite channels (the fields containing
"Polarization" and "Diseqc" data are ignored in case of DVB-C and DVB-T, and
the "Frequency" is in kHz in case of DVB-T).
files is mostly the same as for satellite channels, however, some fields have
different or extended meanings (see man vdr(5) for details).
You can even use a mixture of DVB-S, DVB-C and DVB-T cards in the same system.
All you need to do is to put all the channel definitions into one big
'channels.conf' file and set the 'Ca' parameter of each channel to the number
of the card that can receive it.
'channels.conf' file. VDR will automatically know which channels can be
received with which card(s) by evaluating the 'source' parameter.
Learning the remote control keys:
---------------------------------
There is no default 'keys.conf' file, so if you compile the program
with 'REMOTE=RCU' you will have to go through a "teach-in"
There is no default 'remote.conf' file, so you will have to go through a "teach-in"
session that allows the program to learn your remote control codes.
It will first attempt to determine the basic data transfer mode and
timing of your remote control unit, and then will ask you to press one
@ -342,27 +481,26 @@ you define, the more you will be able to navigate through the menus and
control recording/replaying. The program uses only a very small number
of keys which have multiple meanings in the various modes (see MANUAL
for a detailed description).
If the program has been built with "REMOTE=KBD", it will use the
key configuration file 'keys-pc.conf', so that you won't loose data
when switching between remote control and keyboard mode.
The default PC key assignments are:
The recommended PC key assignments are:
Up, Down, Left, Right Crsr keys in numeric block
Menu 'Home' in numeric block
Ok '5' in numeric block
Back 'End' in numeric block
Up, Down, Left, Right Cursor keys
Menu 'Home'
Ok 'Enter'
Back 'Backspace'
Red, Green, Yellow, Blue 'F1'..'F4'
0..9 '0'..'9' in top row
Power 'P'
Volume+/- '+', '-'
Mute 'm'
0..9 '0'..'9'
Volume+/- 'PgUp', 'PgDn'
Mute 'F10'
If you prefer different key assignments, or if the default doesn't work for
your keyboard, simply delete the file 'keys-pc.conf' and restart 'vdr' to get
into learning mode.
If you want to change your key assignments later, simply delete the file
'remote.conf' and restart 'vdr' to get into learning mode.
If the program has been compiled with 'REMOTE=LIRC', no 'keys.conf' file
will be used. Instead, the key names as listed in the source file 'config.c'
must be used when setting up LIRC. See http://www.lirc.org for more about LIRC.
Generating source code documentation:
-------------------------------------
You can do a 'make srcdoc' to generate source code documentation using the
Doxygen tool. To do so you need the Doxygen package from http://www.doxygen.org
and the Graphviz package from http://www.research.att.com/sw/tools/graphviz.
After installing these two packages you can do 'make srcdoc' and then use your
HTML browser to read srcdoc/html/index.html.

1288
MANUAL

File diff suppressed because it is too large Load Diff

100
Make.config.template Normal file
View File

@ -0,0 +1,100 @@
#
# User defined Makefile options for the Video Disk Recorder
#
# Copy this file to 'Make.config' and change the parameters as necessary.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 5.2 2024/10/11 14:21:04 kls Exp $
### The C compiler and options:
CC = gcc
CFLAGS = -g -O3 -Wall
CXX = g++
CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
# Use 'make DEBUG=1 ...' to build a debug version of VDR and plugins:
ifdef DEBUG
CFLAGS += -O0
CXXFLAGS += -O0
endif
# Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine:
ifdef M32
CFLAGS += -m32
CXXFLAGS += -m32
endif
### The directory environment:
# Default directories (adjust as necessary or desired):
#PREFIX = /usr/local
#VDRROOT = $(PREFIX)
#BINDIR = $(VDRROOT)/bin
#INCDIR = $(VDRROOT)/include
#LIBDIR = $(VDRROOT)/lib
#LOCDIR = $(VDRROOT)/locale
#MANDIR = $(VDRROOT)/man
#PCDIR = $(VDRROOT)/pkgconfig
#RESDIR = $(VDRROOT)/share
#DVBDIR = /usr/include
#VIDEODIR = /srv/vdr/video
#CONFDIR = /var/lib/vdr
#ARGSDIR = /etc/vdr/conf.d
#CACHEDIR = /var/cache/vdr
# Overrides for preset/legacy configurations:
# Use 'make LCLBLD=1' to build locale and plugin files under the source directory:
ifdef LCLBLD
LOCDIR = $(CWD)/locale
PLUGINDIR = $(CWD)/PLUGINS
ifndef PLUGIN # don't overwrite for plugins with old makefiles
LIBDIR = $(PLUGINDIR)/lib
endif
HDRDIR = $(CWD)/include
endif
# Use 'make ONEDIR=1' to have all data in one single directory:
ifdef ONEDIR
VIDEODIR = /video
CACHEDIR = $(VIDEODIR)
CONFDIR = $(VIDEODIR)
ARGSDIR = $(VIDEODIR)/conf.d
RESDIR = $(VIDEODIR)
endif
# Use this if you want to have a central place where you configure compile time
# parameters for plugins:
#PLGCFG = $(CONFDIR)/plugins.mk
### The remote control:
LIRC_DEVICE = /var/run/lirc/lircd
### Use this for kernel based driver:
#LIRC_DEVICE = /dev/lirc0
### Define if you always want to use LIRC, independent of the --lirc option:
#REMOTE=LIRC
### Define if you don't want keyboard remote control:
#NO_KBD = 1
### Define if you want vdr to not run as root:
#VDR_USER = vdr
### Define if you want to compile in 'bidi' support:
#BIDI = 1
### Define if you want 'systemd' notification:
#SDNOTIFY = 1
### Fallback for plugins with old makefiles:
ifdef PLUGIN
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif

10
Make.global Normal file
View File

@ -0,0 +1,10 @@
#
# Strictly necessary Makefile options for the Video Disk Recorder
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.global 1.2 2012/12/29 12:03:01 kls Exp $
# This is just a dummy file for plugins that use old style (version 1.7.33
# or earlier) Makefiles.

370
Makefile
View File

@ -4,92 +4,364 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Makefile 1.31 2002/02/24 12:29:54 kls Exp $
# $Id: Makefile 5.4 2024/10/21 19:01:16 kls Exp $
.DELETE_ON_ERROR:
DVBDIR = ../DVB
DTVDIR = ./libdtv
# Compiler flags:
INCLUDES = -I$(DVBDIR)/ost/include
PKG_CONFIG ?= pkg-config
DTVLIB = $(DTVDIR)/libdtv.a
CC ?= gcc
CFLAGS ?= -g -O3 -Wall
OBJS = config.o dvbapi.o dvbosd.o eit.o font.o i18n.o interface.o menu.o osd.o\
recording.o remote.o remux.o ringbuffer.o svdrp.o thread.o tools.o vdr.o\
videodir.o
CXX ?= g++
CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
CXXFLAGS += $(CPPFLAGS)
OSDFONT = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-1
FIXFONT = -adobe-courier-bold-r-normal--25-*-100-100-m-*-iso8859-1
CDEFINES = -D_GNU_SOURCE
CDEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
ifndef REMOTE
REMOTE = KBD
LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell $(PKG_CONFIG) --libs freetype2 fontconfig)
INCLUDES ?= $(shell $(PKG_CONFIG) --cflags freetype2 fontconfig)
# Directories:
CWD ?= $(shell pwd)
LSIDIR ?= $(CWD)/libsi
PLUGINDIR ?= $(CWD)/PLUGINS
# Failsafe defaults for "make LCLBLD=1":
ifdef LCLBLD
DESTDIR ?= $(CWD)
LOCDIR ?= $(CWD)/locale
HDRDIR ?= $(CWD)/include
LIBDIR ?= $(PLUGINDIR)/lib
endif
ifeq ($(REMOTE), KBD)
NCURSESLIB = -lncurses
DESTDIR ?=
VIDEODIR ?= /srv/vdr/video
CONFDIR ?= /var/lib/vdr
ARGSDIR ?= /etc/vdr/conf.d
CACHEDIR ?= /var/cache/vdr
PREFIX ?= /usr/local
VDRROOT ?= $(PREFIX)
BINDIR ?= $(VDRROOT)/bin
INCDIR ?= $(VDRROOT)/include
LIBDIR ?= $(VDRROOT)/lib/vdr
LOCDIR ?= $(VDRROOT)/share/locale
MANDIR ?= $(VDRROOT)/share/man
PCDIR ?= $(VDRROOT)/lib/pkgconfig
RESDIR ?= $(VDRROOT)/share/vdr
# Source documentation
DOXYGEN ?= /usr/bin/doxygen
DOXYFILE = Doxyfile
# User configuration
-include Make.config
# Output control
ifdef VERBOSE
Q =
else
Q = @
endif
export Q
# Mandatory compiler flags:
CFLAGS += -fPIC
CXXFLAGS += -fPIC
# Common include files:
ifdef DVBDIR
CINCLUDES += -I$(DVBDIR)
endif
# Object files
SILIB = $(LSIDIR)/libsi.a
OBJS = args.o audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\
lirc.o menu.o menuitems.o mtd.o nit.o osdbase.o osd.o pat.o player.o plugin.o positioner.o\
receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\
skinclassic.o skinlcars.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\
timers.o tools.o transfer.o vdr.o videodir.o
DEFINES += $(CDEFINES)
INCLUDES += $(CINCLUDES)
ifdef HDRDIR
HDRDIR := -I$(HDRDIR)
endif
ifndef NO_KBD
DEFINES += -DREMOTE_KBD
endif
ifdef REMOTE
DEFINES += -DREMOTE_$(REMOTE)
DEFINES += -D_GNU_SOURCE
ifdef DEBUG_OSD
DEFINES += -DDEBUG_OSD
NCURSESLIB = -lncurses
endif
ifdef VDR_USER
DEFINES += -DVDR_USER=\"$(VDR_USER)\"
endif
ifdef BIDI
INCLUDES += $(shell $(PKG_CONFIG) --cflags fribidi)
DEFINES += -DBIDI
LIBS += $(shell $(PKG_CONFIG) --libs fribidi)
endif
ifdef SDNOTIFY
INCLUDES += $(shell $(PKG_CONFIG) --silence-errors --cflags libsystemd-daemon || $(PKG_CONFIG) --cflags libsystemd)
DEFINES += -DSDNOTIFY
LIBS += $(shell $(PKG_CONFIG) --silence-errors --libs libsystemd-daemon || $(PKG_CONFIG) --libs libsystemd)
endif
ifdef VFAT
# for people who want their video directory on a VFAT partition
DEFINES += -DVFAT
endif
LIRC_DEVICE ?= /var/run/lirc/lircd
all: vdr
font: genfontfile fontfix.c fontosd.c
@echo "font files created."
DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\"
DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
DEFINES += -DCONFDIR=\"$(CONFDIR)\"
DEFINES += -DARGSDIR=\"$(ARGSDIR)\"
DEFINES += -DCACHEDIR=\"$(CACHEDIR)\"
DEFINES += -DRESDIR=\"$(RESDIR)\"
DEFINES += -DPLUGINDIR=\"$(LIBDIR)\"
DEFINES += -DLOCDIR=\"$(LOCDIR)\"
# The version numbers of VDR and the plugin API (taken from VDR's "config.h"):
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
all: vdr i18n plugins
# Implicit rules:
%.o: %.c
g++ -g -O2 -Wall -Woverloaded-virtual -m486 -c $(DEFINES) $(INCLUDES) $<
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
# Dependencies:
MAKEDEP = g++ -MM -MG
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
include $(DEPFILE)
-include $(DEPFILE)
# The main program:
vdr: $(OBJS) $(DTVLIB)
g++ -g -O2 $(OBJS) $(NCURSESLIB) -ljpeg -lpthread $(LIBDIRS) $(DTVLIB) -o vdr
vdr: $(OBJS) $(SILIB)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(SILIB) -o vdr
# The font files:
# The libsi library:
fontfix.c:
./genfontfile "cFont::tPixelData FontFix" "$(FIXFONT)" > $@
fontosd.c:
./genfontfile "cFont::tPixelData FontOsd" "$(OSDFONT)" > $@
$(SILIB): make-libsi
@$(MAKE) --no-print-directory -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all
make-libsi: # empty rule makes sure the sub-make for libsi is always called
# The font file generator:
# pkg-config file:
genfontfile: genfontfile.c
gcc -o $@ -O2 -L/usr/X11R6/lib $< -lX11
.PHONY: vdr.pc
vdr.pc:
@echo "vdrrootdir=$(VDRROOT)" > $@
@echo "bindir=$(BINDIR)" >> $@
@echo "incdir=$(INCDIR)" >> $@
@echo "mandir=$(MANDIR)" >> $@
@echo "videodir=$(VIDEODIR)" >> $@
@echo "configdir=$(CONFDIR)" >> $@
@echo "argsdir=$(ARGSDIR)" >> $@
@echo "cachedir=$(CACHEDIR)" >> $@
@echo "resdir=$(RESDIR)" >> $@
@echo "libdir=$(LIBDIR)" >> $@
@echo "locdir=$(LOCDIR)" >> $@
@echo "plgcfg=$(PLGCFG)" >> $@
@echo "apiversion=$(APIVERSION)" >> $@
@echo "cflags=$(CFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@
@echo "cxxflags=$(CXXFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@
@echo "" >> $@
@echo "Name: VDR" >> $@
@echo "Description: Video Disk Recorder" >> $@
@echo "URL: https://www.tvdr.de/" >> $@
@echo "Version: $(VDRVERSION)" >> $@
@echo "Cflags: \$${cflags}" >> $@
# The libdtv library:
# Internationalization (I18N):
$(DTVLIB) $(DTVDIR)/libdtv.h:
make -C $(DTVDIR) all
PODIR = po
LOCALEDIR = locale
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/vdr.pot
%.mo: %.po
@echo MO $@
$(Q)msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
@echo GT $@
$(Q)xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^`
%.po: $(I18Npot)
@echo PO $@
$(Q)msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo
@echo IN $@
$(Q)install -D -m644 $< $@
.PHONY: i18n
i18n: $(I18Nmsgs)
install-i18n: i18n
@mkdir -p $(DESTDIR)$(LOCDIR)
cp -r $(LOCALEDIR)/* $(DESTDIR)$(LOCDIR)
# The 'include' directory (for plugins):
include-dir:
@mkdir -p include/vdr
@(cd include/vdr; for i in ../../*.h; do ln -fs $$i .; done)
@mkdir -p include/libsi
@(cd include/libsi; for i in ../../libsi/*.h; do ln -fs $$i .; done)
# Plugins:
plugins: include-dir vdr.pc
@failed="";\
noapiv="";\
oldmakefile="";\
for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
echo; echo "*** Plugin $$i:";\
# No APIVERSION: Skip\
if ! grep -q "\$$(LIBDIR)/.*\$$(APIVERSION)" "$(PLUGINDIR)/src/$$i/Makefile" ; then\
echo "ERROR: plugin $$i doesn't honor APIVERSION - not compiled!";\
noapiv="$$noapiv $$i";\
continue;\
fi;\
# Old Makefile\
if ! grep -q "PKGCFG" "$(PLUGINDIR)/src/$$i/Makefile" ; then\
echo "WARNING: plugin $$i is using an old Makefile!";\
oldmakefile="$$oldmakefile $$i";\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" CFLAGS="$(CFLAGS) $(CDEFINES) $(CINCLUDES)" CXXFLAGS="$(CXXFLAGS) $(CDEFINES) $(CINCLUDES)" LIBDIR="$(PLUGINDIR)/lib" VDRDIR="$(CWD)" all || failed="$$failed $$i";\
continue;\
fi;\
# New Makefile\
INCLUDES="-I$(CWD)/include"\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" || failed="$$failed $$i";\
if [ -n "$(LCLBLD)" ] ; then\
(cd $(PLUGINDIR)/src/$$i; for l in `find -name "libvdr-*.so" -o -name "lib$$i-*.so"`; do install -D $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
if [ -d $(PLUGINDIR)/src/$$i/po ]; then\
for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\
install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. -f1`/LC_MESSAGES/vdr-$$i.mo;\
done;\
fi;\
fi;\
done;\
# Conclusion\
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\
if [ -n "$$oldmakefile" ] ; then\
echo; echo "*** plugins with old Makefile:$$oldmakefile"; echo;\
echo "**********************************************************************";\
echo "*** While this currently still works, it is strongly recommended";\
echo "*** that you convert old Makefiles to the new style used since";\
echo "*** VDR version 1.7.36. Support for old style Makefiles may be dropped";\
echo "*** in future versions of VDR.";\
echo "**********************************************************************";\
fi;\
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
clean-plugins: vdr.pc
@for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" clean; done
@-rm -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION)
# Install the files (note that 'install-pc' must be first!):
install: install-pc install-bin install-conf install-doc install-plugins install-i18n install-includes
# VDR binary:
install-bin: vdr
@mkdir -p $(DESTDIR)$(BINDIR)
@cp --remove-destination vdr svdrpsend $(DESTDIR)$(BINDIR)
# Configuration files:
install-dirs:
@mkdir -p $(DESTDIR)$(VIDEODIR)
@mkdir -p $(DESTDIR)$(CONFDIR)
@mkdir -p $(DESTDIR)$(ARGSDIR)
@mkdir -p $(DESTDIR)$(CACHEDIR)
@mkdir -p $(DESTDIR)$(RESDIR)
install-conf: install-dirs
# 'cp -n' may be broken, so let's do it the hard way
@for i in *.conf; do\
if ! [ -e $(DESTDIR)$(CONFDIR)/$$i ] ; then\
cp -p $$i $(DESTDIR)$(CONFDIR);\
fi\
done
# Documentation:
install-doc:
@mkdir -p $(DESTDIR)$(MANDIR)/man1
@mkdir -p $(DESTDIR)$(MANDIR)/man5
@gzip -c vdr.1 > $(DESTDIR)$(MANDIR)/man1/vdr.1.gz
@gzip -c vdr.5 > $(DESTDIR)$(MANDIR)/man5/vdr.5.gz
@gzip -c svdrpsend.1 > $(DESTDIR)$(MANDIR)/man1/svdrpsend.1.gz
# Plugins:
install-plugins: plugins
@-for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
echo; echo "*** Plugin $$i:";\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR=$(CWD) DESTDIR=$(DESTDIR) install;\
done
@if [ -d $(PLUGINDIR)/lib ] ; then\
for i in `find $(PLUGINDIR)/lib -name 'lib*-*.so.$(APIVERSION)'`; do\
install -D $$i $(DESTDIR)$(LIBDIR);\
done;\
fi
# Includes:
install-includes: include-dir
@mkdir -p $(DESTDIR)$(INCDIR)
@cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
# pkg-config file:
install-pc: vdr.pc
if [ -n "$(PCDIR)" ] ; then\
mkdir -p $(DESTDIR)$(PCDIR) ;\
cp vdr.pc $(DESTDIR)$(PCDIR) ;\
fi
# Source documentation:
srcdoc:
@cat $(DOXYFILE) > $(DOXYFILE).tmp
@echo PROJECT_NUMBER = $(VDRVERSION) >> $(DOXYFILE).tmp
@chmod +x $(DOXYFILE).filter
$(DOXYGEN) $(DOXYFILE).tmp
@rm $(DOXYFILE).tmp
# Housekeeping:
clean:
make -C $(DTVDIR) clean
-rm -f $(OBJS) $(DEPFILE) vdr genfontfile genfontfile.o core* *~
fontclean:
-rm -f fontfix.c fontosd.c
CLEAN: clean fontclean
@$(MAKE) --no-print-directory -C $(LSIDIR) clean
@-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~
@-rm -rf $(LOCALEDIR) $(PODIR)/*~ $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -rf include
@-rm -rf srcdoc
CLEAN: clean
distclean: clean-plugins clean

2417
PLUGINS.html Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,8 +278,8 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -305,14 +305,15 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,34 @@
VDR Plugin 'epgtableid0' Revision History
-----------------------------------------
2012-03-10: Version 0.0.1
- Initial revision.
2012-12-27: Version 0.0.2
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.0.3
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2018-04-15: Version 2.4.0
- Official release.
2021-12-27: Version 2.6.0
- Official release.

View File

@ -0,0 +1,97 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = epgtableid0
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE)
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -0,0 +1,19 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description:
The special handling of EPG events with table id 0x00 has been dropped
in VDR version 1.7.26, and replaced by a more felxible "EPG Handler"
concept. You can use this plugin to get the previous functionality back.

View File

@ -0,0 +1,98 @@
/*
* epgtableid0.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: epgtableid0.c 4.1 2018/04/10 13:00:18 kls Exp $
*/
#include <vdr/epg.h>
#include <vdr/plugin.h>
static const char *VERSION = "2.4.0";
static const char *DESCRIPTION = "EPG handler for events with table id 0x00";
// --- cTable0Handler --------------------------------------------------------
class cTable0Handler : public cEpgHandler {
private:
bool Ignore(cEvent *Event) { return Event->TableID() == 0x00; }
public:
virtual bool SetEventID(cEvent *Event, tEventID EventID);
virtual bool SetStartTime(cEvent *Event, time_t StartTime);
virtual bool SetDuration(cEvent *Event, int Duration);
virtual bool SetTitle(cEvent *Event, const char *Title);
virtual bool SetShortText(cEvent *Event, const char *ShortText);
virtual bool SetDescription(cEvent *Event, const char *Description);
virtual bool SetContents(cEvent *Event, uchar *Contents);
virtual bool SetParentalRating(cEvent *Event, int ParentalRating);
virtual bool SetVps(cEvent *Event, time_t Vps);
virtual bool FixEpgBugs(cEvent *Event);
};
bool cTable0Handler::SetEventID(cEvent *Event, tEventID EventID)
{
return Ignore(Event);
}
bool cTable0Handler::SetStartTime(cEvent *Event, time_t StartTime)
{
return Ignore(Event);
}
bool cTable0Handler::SetDuration(cEvent *Event, int Duration)
{
return Ignore(Event);
}
bool cTable0Handler::SetTitle(cEvent *Event, const char *Title)
{
return Ignore(Event);
}
bool cTable0Handler::SetShortText(cEvent *Event, const char *ShortText)
{
return Ignore(Event);
}
bool cTable0Handler::SetDescription(cEvent *Event, const char *Description)
{
return Ignore(Event);
}
bool cTable0Handler::SetContents(cEvent *Event, uchar *Contents)
{
return Ignore(Event);
}
bool cTable0Handler::SetParentalRating(cEvent *Event, int ParentalRating)
{
return Ignore(Event);
}
bool cTable0Handler::SetVps(cEvent *Event, time_t Vps)
{
return Ignore(Event);
}
bool cTable0Handler::FixEpgBugs(cEvent *Event)
{
return Ignore(Event);
}
// --- cPluginEpgtableid0 ----------------------------------------------------
class cPluginEpgtableid0 : public cPlugin {
public:
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual bool Initialize(void);
};
bool cPluginEpgtableid0::Initialize(void)
{
new cTable0Handler;
return true;
}
VDRPLUGINCREATOR(cPluginEpgtableid0); // Don't touch this!

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,8 +278,8 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -305,14 +305,15 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

105
PLUGINS/src/hello/HISTORY Normal file
View File

@ -0,0 +1,105 @@
VDR Plugin 'hello' Revision History
-----------------------------------
2002-05-09: Version 0.0.1
- Initial revision.
2002-05-11: Version 0.0.2
- Added setup parameters and a Setup menu to adjust them.
2002-05-12: Version 0.0.3
- Changed return type of cPluginHello::Start().
- Added cPluginHello::Housekeeping().
- Modified package generation.
2002-05-17: Version 0.0.4
- Makefile improvements.
2002-08-04: Version 0.0.5
- Added a missing #include.
2002-09-21: Version 0.0.6
- Fixed Makefile for NEWSTRUCT driver.
2002-10-26: Version 0.0.7
- Fixed a typo.
2002-11-01: Version 0.0.8
- Completely switched to the new CVS HEAD version of the linux-dvb driver.
The NEWSTRUCT compile time switch is now obsolete. The required driver is now
the CVS HEAD version dated 2002-11-01 or later.
- Introduced Make.config.
2002-11-23: Version 0.0.9
- Changed return type of MainMenuAction().
2002-12-13: Version 0.1.0
- Changed setting of CXX and CXXFLAGS variables in Makefile.
2006-04-22: Version 0.1.1
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
2007-08-11: Version 0.2.0
- Switched to 'gettext' internationalization.
2007-08-15: Version 0.2.1
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
2008-03-18: Version 0.2.2
- Updated the Croatian language texts (thanks to Adrian Caval).
2008-09-06: Version 0.2.3
- Updated the Turkish language texts (thanks to Oktay Yolgeçen).
2009-12-06: Version 0.2.4
- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler).
2010-02-28: Version 0.2.5
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
2012-12-27: Version 0.2.6
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.2.7
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2018-04-15: Version 2.4.0
- Updated the French OSD texts (thanks to Bernard Jaulin).
- Official release.
2021-12-27: Version 2.6.0
- Official release.

128
PLUGINS/src/hello/Makefile Normal file
View File

@ -0,0 +1,128 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = hello
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE) i18n
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Internationalization (I18N):
PODIR = po
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po
@echo MO $@
$(Q)msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
@echo GT $@
$(Q)xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot)
@echo PO $@
$(Q)msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@
$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
install -D -m644 $< $@
.PHONY: i18n
i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

15
PLUGINS/src/hello/README Normal file
View File

@ -0,0 +1,15 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description: This is a small demo of the VDR plugin interface.

149
PLUGINS/src/hello/hello.c Normal file
View File

@ -0,0 +1,149 @@
/*
* hello.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: hello.c 4.1 2018/04/10 13:00:22 kls Exp $
*/
#include <getopt.h>
#include <stdlib.h>
#include <vdr/i18n.h>
#include <vdr/interface.h>
#include <vdr/plugin.h>
static const char *VERSION = "2.4.0";
static const char *DESCRIPTION = trNOOP("A friendly greeting");
static const char *MAINMENUENTRY = trNOOP("Hello");
class cPluginHello : public cPlugin {
private:
// Add any member variables or functions you may need here.
const char *option_a;
bool option_b;
public:
cPluginHello(void);
virtual ~cPluginHello();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Start(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
// Global variables that control the overall behaviour:
int GreetingTime = 3;
int UseAlternateGreeting = false;
// --- cMenuSetupHello -------------------------------------------------------
class cMenuSetupHello : public cMenuSetupPage {
private:
int newGreetingTime;
int newUseAlternateGreeting;
protected:
virtual void Store(void);
public:
cMenuSetupHello(void);
};
cMenuSetupHello::cMenuSetupHello(void)
{
newGreetingTime = GreetingTime;
newUseAlternateGreeting = UseAlternateGreeting;
Add(new cMenuEditIntItem( tr("Greeting time (s)"), &newGreetingTime));
Add(new cMenuEditBoolItem(tr("Use alternate greeting"), &newUseAlternateGreeting));
}
void cMenuSetupHello::Store(void)
{
SetupStore("GreetingTime", GreetingTime = newGreetingTime);
SetupStore("UseAlternateGreeting", UseAlternateGreeting = newUseAlternateGreeting);
}
// --- cPluginHello ----------------------------------------------------------
cPluginHello::cPluginHello(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
option_a = NULL;
option_b = false;
}
cPluginHello::~cPluginHello()
{
// Clean up after yourself!
}
const char *cPluginHello::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return " -a ABC, --aaa=ABC do something nice with ABC\n"
" -b, --bbb activate 'plan B'\n";
}
bool cPluginHello::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
static struct option long_options[] = {
{ "aaa", required_argument, NULL, 'a' },
{ "bbb", no_argument, NULL, 'b' },
{ NULL, no_argument, NULL, 0 }
};
int c;
while ((c = getopt_long(argc, argv, "a:b", long_options, NULL)) != -1) {
switch (c) {
case 'a': option_a = optarg;
break;
case 'b': option_b = true;
break;
default: return false;
}
}
return true;
}
bool cPluginHello::Start(void)
{
// Start any background activities the plugin shall perform.
return true;
}
void cPluginHello::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
cOsdObject *cPluginHello::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
Interface->Confirm(UseAlternateGreeting ? tr("Howdy folks!") : tr("Hello world!"), GreetingTime);
return NULL;
}
cMenuSetupPage *cPluginHello::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return new cMenuSetupHello;
}
bool cPluginHello::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
if (!strcasecmp(Name, "GreetingTime")) GreetingTime = atoi(Value);
else if (!strcasecmp(Name, "UseAlternateGreeting")) UseAlternateGreeting = atoi(Value);
else
return false;
return true;
}
VDRPLUGINCREATOR(cPluginHello); // Don't touch this!

View File

@ -0,0 +1,37 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Marc Rovira Vall <tm05462@salleURL.edu>, 2003
# Ramon Roca <ramon.roca@xcombo.com>, 2003
# Jordi Vilà <jvila@tinet.org>, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Jordi Vilà <jvila@tinet.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Vladimír Bárta <vladimir.barta@k2atmitec.cz>, 2006
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Pøátelský pozdrav"
msgid "Hello"
msgstr "Ahoj"
msgid "Greeting time (s)"
msgstr "Èas pozdravu (s)"
msgid "Use alternate greeting"
msgstr "Pou¾ít alternativní pozdrav"
msgid "Howdy folks!"
msgstr "Nazdar vespolek!"
msgid "Hello world!"
msgstr "Ahoj svìte!"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Mogens Elneff <mogens@elneff.dk>, 2004
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2000
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Ein freundlicher Gruß"
msgid "Hello"
msgstr "Hallo"
msgid "Greeting time (s)"
msgstr "Dauer des Grußes (s)"
msgid "Use alternate greeting"
msgstr "Alternativen Gruß verwenden"
msgid "Howdy folks!"
msgstr "Tach zusammen!"
msgid "Hello world!"
msgstr "Hallo Welt!"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Dimitrios Dimitrakos <mail@dimitrios.de>, 2002
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-7\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Ruben Nunez Francisco <ruben.nunez@tang-it.com>, 2002
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Ruben Nunez Francisco <ruben.nunez@tang-it.com>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <artlov@gmail.com>, 2004, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Sõbralik tervitus"
msgid "Hello"
msgstr "Tere"
msgid "Greeting time (s)"
msgstr "Tervituse kestus (s)"
msgid "Use alternate greeting"
msgstr "Vahelduv tervitus"
msgid "Howdy folks!"
msgstr "Kuidas käsi käib?"
msgid "Hello world!"
msgstr "Tere, maailm!"

View File

@ -0,0 +1,38 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Hannu Savolainen <hannu@opensound.com>, 2002
# Jaakko Hyvätti <jaakko@hyvatti.iki.fi>, 2002
# Niko Tarnanen <niko.tarnanen@hut.fi>, 2003
# Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Ystävällisin terveisin"
msgid "Hello"
msgstr "Hei"
msgid "Greeting time (s)"
msgstr "Tervehdysaika (s)"
msgid "Use alternate greeting"
msgstr "Käytä vaihtoehtoista tervehdystä"
msgid "Howdy folks!"
msgstr "Mitä kuuluu?"
msgid "Hello world!"
msgstr "Hei maailma!"

View File

@ -0,0 +1,39 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Jean-Claude Repetto <jc@repetto.org>, 2001
# Olivier Jacques <jacquesolivier@hotmail.com>, 2003
# Gregoire Favre <greg@magma.unil.ch>, 2003
# Nicolas Huillard <nhuillard@e-dition.fr>, 2005
# Bernard Jaulin <bernard.jaulin@gmail.com>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2018-04-14 8:34+0200\n"
"Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Bien le bonjour"
msgid "Hello"
msgstr "Hello"
msgid "Greeting time (s)"
msgstr "Durée pour le salut (s)"
msgid "Use alternate greeting"
msgstr "Changer de salutation"
msgid "Howdy folks!"
msgstr "Bonjour à tous !"
msgid "Hello world!"
msgstr "Bonjour le monde !"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Adrian Caval <anrxc@sysphere.org>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-03-17 19:52+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Prijateljska dobrodo¹lica"
msgid "Hello"
msgstr "Pozdrav"
msgid "Greeting time (s)"
msgstr "Trajanje dobrodo¹lice (s)"
msgid "Use alternate greeting"
msgstr "Koristi alternativni pozdrav"
msgid "Howdy folks!"
msgstr "Pozdrav ljudi!"
msgid "Hello world!"
msgstr "Pozdrav svijete!"

View File

@ -0,0 +1,36 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Istvan Koenigsberger <istvnko@hotmail.com>, 2002
# Guido Josten <guido.josten@t-online.de>, 2002
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>\n"
"Language-Team: Hungarian <vdr@linuxtv.org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Diego Pierotto <vdr-italian@tiscali.it>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-01-27 20:11+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Un saluto cordiale"
msgid "Hello"
msgstr "Ciao"
msgid "Greeting time (s)"
msgstr "Tempo saluto (s)"
msgid "Use alternate greeting"
msgstr "Utilizza saluto alternativo"
msgid "Howdy folks!"
msgstr "Come state gente!"
msgid "Hello world!"
msgstr "Ciao mondo!"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Valdemaras Pipiras <varas@ambernet.lt>, 2009
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-12-08 12:18+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Draugiškas labas"
msgid "Hello"
msgstr "Labas!"
msgid "Greeting time (s)"
msgstr "Pasveikinomo laikas (s)"
msgid "Use alternate greeting"
msgstr "Naudoti alternatyvų pasveikinimą"
msgid "Howdy folks!"
msgstr "Kaip yr chebryte?"
msgid "Hello world!"
msgstr "Labas pasauli!"

View File

@ -0,0 +1,37 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>, 2001
# Hans Dingemans <hans.dingemans@tacticalops.nl>, 2003
# Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>, 2005
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,36 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Jørgen Tvedt <pjtvedt@online.no>, 2001
# Truls Slevigen <truls@slevigen.no>, 2002
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"
"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,38 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Michael Rakowski <mrak@gmx.de>, 2002
# Tomasz Maciej Nowak <tmn505@gmail.com>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2018-02-19 00:41+0100\n"
"Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.6\n"
msgid "A friendly greeting"
msgstr "Przyjazne pozdrowienie"
msgid "Hello"
msgstr "Witaj"
msgid "Greeting time (s)"
msgstr "Czas pozdrowienia (s)"
msgid "Use alternate greeting"
msgstr "Użyj alternatywnego pozdrowienia"
msgid "Howdy folks!"
msgstr "Siema ziomy!"
msgid "Hello world!"
msgstr "Witaj świecie!"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Paulo Lopes <pmml@netvita.pt>, 2001
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Paulo Lopes <pmml@netvita.pt>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,36 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Paul Lacatus <paul@campina.iiruc.ro>, 2002
# Lucian Muresan <lucianm@users.sourceforge.net>, 2004
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Vyacheslav Dikonov <sdiconov@mail.ru>, 2004
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Vyacheslav Dikonov <sdiconov@mail.ru>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "´àãÖÕáÚÞÕ ßàØÒÕâáâÒØÕ"
msgid "Hello"
msgstr "¿àØÒÕâ!"
msgid "Greeting time (s)"
msgstr "¿àÞÔÞÛÖØâÕÛìÝÞáâì ßàØÒÕâáâÒØï"
msgid "Use alternate greeting"
msgstr "°ÛìâÕàÝÐâØÒÝÞÕ ßàØÒÕâáâÒØÕ"
msgid "Howdy folks!"
msgstr "ºÐÚ ßÞÖØÒÐÕâÕ?"
msgid "Hello world!"
msgstr "·ÔàÐÒáâÒãÙ ÜØà!"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Vladimír Bárta <vladimir.barta@k2atmitec.cz>, 2006
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-09-30 09:48+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Priateµský pozdrav"
msgid "Hello"
msgstr "Ahoj"
msgid "Greeting time (s)"
msgstr "Èas pozdravu (s)"
msgid "Use alternate greeting"
msgstr "Pou¾i» náhradný pozdrav"
msgid "Howdy folks!"
msgstr "Ahojte v¹etci!"
msgid "Hello world!"
msgstr "Ahoj svet!"

View File

@ -0,0 +1,36 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Miha Setina <mihasetina@softhome.net>, 2000
# Matjaz Thaler <matjaz.thaler@guest.arnes.si>, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,36 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Tomas Prybil <tomas@prybil.se>, 2002
# Jan Ekholm <chakie@infa.abo.fi>, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2007-08-11 12:34+0200\n"
"Last-Translator: Tomas Prybil <tomas@prybil.se>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr ""
msgid "Hello"
msgstr ""
msgid "Greeting time (s)"
msgstr ""
msgid "Use alternate greeting"
msgstr ""
msgid "Howdy folks!"
msgstr ""
msgid "Hello world!"
msgstr ""

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Oktay Yolgeçen <oktay_73@yahoo.de>, 2007
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2008-05-12 22:34:4800\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-9\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "Dostça selam"
msgid "Hello"
msgstr "Merhaba"
msgid "Greeting time (s)"
msgstr "Selam vakiti (s)"
msgid "Use alternate greeting"
msgstr "Alternatif selam kullan"
msgid "Howdy folks!"
msgstr "Selam dostlar!"
msgid "Hello world!"
msgstr "Merhaba dünya!"

View File

@ -0,0 +1,38 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Marc Rovira Vall <tm05462@salleURL.edu>, 2003
# Ramon Roca <ramon.roca@xcombo.com>, 2003
# Jordi Vilà <jvila@tinet.org>, 2003
# Nan Feng VDR <nfgx@21cn.com>, 2009
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-hello 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 14:04+0100\n"
"PO-Revision-Date: 2009-01-23 09:48+0800\n"
"Last-Translator: senin\n"
"Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A friendly greeting"
msgstr "友好的问候"
msgid "Hello"
msgstr "你好"
msgid "Greeting time (s)"
msgstr "问候时间 (s)"
msgid "Use alternate greeting"
msgstr "使用替代贺卡"
msgid "Howdy folks!"
msgstr "你好人!"
msgid "Hello world!"
msgstr "世界您好!"

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,8 +278,8 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -305,14 +305,15 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,93 @@
VDR Plugin 'osddemo' Revision History
-------------------------------------
2002-11-23: Version 0.0.1
- Initial revision.
2002-12-13: Version 0.1.0
- Changed setting of CXX and CXXFLAGS variables in Makefile.
2004-04-30: Version 0.1.1
- New OSD handling.
2007-08-15: Version 0.1.2
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
2008-04-13: Version 0.1.3
- Fixed setting the OSD level (thanks to Wolfgang Rohdewald).
2011-02-20: Version 0.2.0
- Added support for TrueColor OSD.
2011-03-28: Version 0.2.1
- Added Cancel(3) to ~cTrueColorDemo() (thanks to Reinhard Nissl).
- Added a missing font deletion in cTrueColorDemo::Action() (thanks to Reinhard Nissl).
2011-04-17: Version 0.2.2
- Fixed a possible NULL pointer dereference in osddemo.c (reported by Paul Menzel).
2012-03-13: Version 0.2.3
- No longer using GetFont() (which is not thread safe) in the 'osddemo' plugin,
2012-12-27: Version 0.2.4
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.2.5
- Adapted Makefile to changes introduced in recent VDR versions.
2013-02-13: Version 0.3.0
- Added demos of the DrawEllipse() and DrawSlope() function (press '1' or '2',
respectively).
2013-02-19: Version 0.3.1
- The demos can now also be ended with the "Back" key.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2014-02-06: Version 2.1.2
- Fixed flickering if subtitles are active while the OSD demo is running.
- Fixed a possible crash in the OSD demo (reported by Christopher Reimer).
2015-02-19: Version 2.2.0
- Official release.
2015-03-08: Version 2.3.1
- Now using cOsd::MaxPixmapSize().
- Fixed a vertical black line in the "TiledPixmaps" area on the rpihddevice OSD with
1280x800 pixel (thanks to Thomas Reufer).
- Added a demo case for storing images (thanks to Thomas Reufer).
2018-04-15: Version 2.4.0
- Official release.
2020-10-12: Version 2.4.1
- Added test cases for alignment of semi-circles (press key '4').
2021-12-27: Version 2.6.0
- Official release.

View File

@ -0,0 +1,97 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = osddemo
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE)
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -0,0 +1,34 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description:
Demonstration of how a plugin can have its very own OSD setup.
It's a very primitive game that opens a small window in which the
user can draw lines with the Up, Down, Left and Right buttons.
The color buttons are used to switch color.
On a VDR system with TrueColor support it displays some of the
possibilities available with the TrueColor OSD. Once the "Animation"
pixmap is displayed, it can be moved around with the Up, Down, Left
and Right buttons. The Red button turns off the "Tiled Pixmaps"
display, and the Green button toggles the color display.
In both variants of the demo, pressing the '1' key displays all
possible ellipses that can be drawn with the DrawEllipse() function,
while pressing the '2' key shows all possible slopes the DrawSlope()
function can draw.
Press Ok to close the window.

View File

@ -0,0 +1,766 @@
/*
* osddemo.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: osddemo.c 4.5 2020/10/14 20:32:41 kls Exp $
*/
#include <vdr/osd.h>
#include <vdr/plugin.h>
static const char *VERSION = "2.4.1";
static const char *DESCRIPTION = "Demo of arbitrary OSD setup";
static const char *MAINMENUENTRY = "Osd Demo";
// --- DrawEllipses ----------------------------------------------------------
void DrawEllipse(cOsd *Osd, int x1, int y1, int x2, int y2, int Quadrants)
{
Osd->DrawRectangle(x1 + 2, y1 + 2, x2 - 2, y2 - 2, clrGreen);
Osd->DrawEllipse(x1 + 3, y1 + 3, x2 - 3, y2 - 3, clrRed, Quadrants);
}
void DrawEllipses(cOsd *Osd)
{
int xa = 0;
int ya = 0;
int xb = Osd->Width() - 1;
int yb = Osd->Height() - 1;
int x0 = xa;
int x5 = xb;
int x1 = x0 + (xb - xa) / 5;
int x2 = x0 + (xb - xa) * 2 / 5;
int x3 = x0 + (xb - xa) * 3 / 5;
int x4 = x0 + (xb - xa) * 4 / 5;
int y0 = ya;
int y4 = yb;
int y2 = (y0 + y4) / 2;
int y1 = (y0 + y2) / 2;
int y3 = (y2 + y4) / 2;
Osd->DrawRectangle(xa, ya, xb, yb, clrGray50);
DrawEllipse(Osd, x4, y0, x5, y4, 0);
DrawEllipse(Osd, x2, y1, x3, y2, 1);
DrawEllipse(Osd, x1, y1, x2, y2, 2);
DrawEllipse(Osd, x1, y2, x2, y3, 3);
DrawEllipse(Osd, x2, y2, x3, y3, 4);
DrawEllipse(Osd, x3, y1, x4, y3, 5);
DrawEllipse(Osd, x1, y0, x3, y1, 6);
DrawEllipse(Osd, x0, y1, x1, y3, 7);
DrawEllipse(Osd, x1, y3, x3, y4, 8);
DrawEllipse(Osd, x3, y0, x4, y1, -1);
DrawEllipse(Osd, x0, y0, x1, y1, -2);
DrawEllipse(Osd, x0, y3, x1, y4, -3);
DrawEllipse(Osd, x3, y3, x4, y4, -4);
Osd->Flush();
}
// --- DrawSlopes ------------------------------------------------------------
void DrawSlope(cOsd *Osd, int x1, int y1, int x2, int y2, int Type)
{
Osd->DrawRectangle(x1 + 2, y1 + 2, x2 - 2, y2 - 2, clrGreen);
Osd->DrawSlope(x1 + 3, y1 + 3, x2 - 3, y2 - 3, clrRed, Type);
}
void DrawSlopes(cOsd *Osd)
{
int xa = 0;
int ya = 0;
int xb = Osd->Width() - 1;
int yb = Osd->Height() - 1;
int x0 = xa;
int x4 = xb;
int x2 = (x0 + x4) / 2;
int x1 = (x0 + x2) / 2;
int x3 = (x2 + x4) / 2;
int y0 = ya;
int y3 = yb;
int y2 = (y0 + y3) / 2;
int y1 = (y0 + y2) / 2;
Osd->DrawRectangle(xa, ya, xb, yb, clrGray50);
DrawSlope(Osd, x0, y0, x2, y1, 0);
DrawSlope(Osd, x2, y0, x4, y1, 1);
DrawSlope(Osd, x0, y1, x2, y2, 2);
DrawSlope(Osd, x2, y1, x4, y2, 3);
DrawSlope(Osd, x0, y2, x1, y3, 4);
DrawSlope(Osd, x1, y2, x2, y3, 5);
DrawSlope(Osd, x2, y2, x3, y3, 6);
DrawSlope(Osd, x3, y2, x4, y3, 7);
Osd->Flush();
}
// --- DrawImages ------------------------------------------------------------
struct tOsdImageRef {
int image;
cSize size;
};
#define NUMOSDIMAGES 16
#define NUMOSDIMAGEVARIANTS 8
void DrawImages(cOsd *Osd)
{
// Create images:
cImage *images[NUMOSDIMAGEVARIANTS];
for (int i = 0; i < NUMOSDIMAGEVARIANTS; i++) {
images[i] = new cImage(cSize(
i == 0 || i == 1 ? Osd->MaxPixmapSize().Width() + 1 : rand() % Osd->Width(),
i == 0 || i == 2 ? Osd->MaxPixmapSize().Height() + 1 : rand() % Osd->Height()));
for (int x = 0; x < images[i]->Width(); x++) {
for (int y = 0; y < images[i]->Height(); y++) {
images[i]->SetPixel(cPoint(x, y),
(!x || !y || x == images[i]->Width() - 1 || y == images[i]->Height() - 1) ? clrWhite :
(x > images[i]->Width() / 2 ?
(y > images[i]->Height() / 2 ? clrBlue : clrGreen) :
(y > images[i]->Height() / 2 ? clrRed : clrYellow)));
}
}
}
// Store images:
tOsdImageRef osdImages[NUMOSDIMAGES];
for (int i = 0; i < NUMOSDIMAGES; i++) {
osdImages[i].image = cOsdProvider::StoreImage(*images[i % NUMOSDIMAGEVARIANTS]);
osdImages[i].size.Set(images[i % NUMOSDIMAGEVARIANTS]->Size());
}
// Delete images:
for (int i = 0; i < NUMOSDIMAGEVARIANTS; i++)
delete images[i];
// Draw images:
for (int i = 0; i < NUMOSDIMAGES; i++)
Osd->DrawImage(cPoint(rand() % (Osd->Width() + osdImages[i].size.Width()), rand() % (Osd->Height() + osdImages[i].size.Height())).Shifted(-osdImages[i].size.Width(), -osdImages[i].size.Height()), osdImages[i].image);
// Drop image references:
for (int i = 0; i < NUMOSDIMAGES; i++)
cOsdProvider::DropImage(osdImages[i].image);
Osd->Flush();
}
// --- DrawEllipseAlignments -------------------------------------------------
void DrawEllipseAlignments(cOsd *Osd)
{
cFont *Font = cFont::CreateFont(Setup.FontOsd, 20);
int xa = 0;
int ya = 0;
int xb = Osd->Width() - 1;
int yb = Osd->Height() - 1;
Osd->DrawRectangle(xa, ya, xb, yb, clrBlack);
int d = 50;
int a = d / 2 + 1;
int t = a * 2;
int n = 30;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(a, t, a + d - 1, t + d - 1, clrGreen);
Osd->DrawEllipse(a, t - d / 2, a + d - 1, t, clrGreen, 6);
Osd->DrawEllipse(a, t + d, a + d - 1, t + d + d / 2, clrGreen, 8);
Osd->DrawText(a + d / 3, t + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
d = 50;
a = d * 3;
n = 20;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(t, a, t + d - 1, a + d - 1, clrGreen);
Osd->DrawEllipse(t - d / 2, a, t, a + d - 1, clrGreen, 7);
Osd->DrawEllipse(t + d, a, t + d + d / 2, a + d - 1, clrGreen, 5);
Osd->DrawText(t + d / 3, a + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
d = 50;
a = d * 3;
t = d * 5;
n = 30;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(a, t, a + d - 1, t + d - 1, clrGreen);
Osd->DrawEllipse(a, t - d, a + d - 1, t, clrGreen, 2);
Osd->DrawEllipse(a, t + d, a + d - 1, t + d + d, clrGreen, 3);
Osd->DrawText(a + d / 3, t + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
d = 50;
a = d * 3;
t = d * 9;
n = 30;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(a, t, a + d - 1, t + d - 1, clrGreen);
Osd->DrawEllipse(a, t - d, a + d - 1, t, clrGreen, 1);
Osd->DrawEllipse(a, t + d, a + d - 1, t + d + d, clrGreen, 4);
Osd->DrawText(a + d / 3, t + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
d = 50;
a = d * 12;
t = d * 5;
n = 20;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(t, a, t + d - 1, a + d - 1, clrGreen);
Osd->DrawEllipse(t - d, a, t, a + d - 1, clrGreen, 2);
Osd->DrawEllipse(t + d, a, t + d + d, a + d - 1, clrGreen, 1);
Osd->DrawText(t + d / 3, a + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
d = 50;
a = d * 12;
t = d * 9;
n = 20;
for (int i = 0; i < n; i++) {
Osd->DrawRectangle(t, a, t + d - 1, a + d - 1, clrGreen);
Osd->DrawEllipse(t - d, a, t, a + d - 1, clrGreen, 3);
Osd->DrawEllipse(t + d, a, t + d + d, a + d - 1, clrGreen, 4);
Osd->DrawText(t + d / 3, a + d / 3, itoa(d), clrRed, clrGreen, Font);
a += d + 5;
d++;
}
Osd->Flush();
delete Font;
}
// --- cLineGame -------------------------------------------------------------
class cLineGame : public cOsdObject {
private:
cOsd *osd;
int x;
int y;
tColor color;
public:
cLineGame(void);
virtual ~cLineGame();
virtual void Show(void);
virtual eOSState ProcessKey(eKeys Key);
};
cLineGame::cLineGame(void)
{
osd = NULL;
x = y = 0;
color = clrRed;
}
cLineGame::~cLineGame()
{
delete osd;
}
void cLineGame::Show(void)
{
osd = cOsdProvider::NewOsd(cOsd::OsdLeft(), cOsd::OsdTop());
if (osd) {
int x1 = cOsd::OsdWidth() - 1;
int y1 = cOsd::OsdHeight() - 1;
while (x1 > 0 && y1 > 0) {
tArea Area = { 0, 0, x1, y1, 4 };
if (osd->CanHandleAreas(&Area, 1) == oeOk) {
osd->SetAreas(&Area, 1);
osd->DrawRectangle(0, 0, osd->Width() - 1, osd->Height() - 1, clrGray50);
osd->Flush();
x = osd->Width() / 2;
y = osd->Height() / 2;
break;
}
x1 = x1 * 9 / 10;
y1 = y1 * 9 / 10;
}
}
}
eOSState cLineGame::ProcessKey(eKeys Key)
{
eOSState state = cOsdObject::ProcessKey(Key);
if (state == osUnknown) {
const int d = 4;
switch (Key & ~k_Repeat) {
case kUp: y = max(0, y - d); break;
case kDown: y = min(osd->Height() - d, y + d); break;
case kLeft: x = max(0, x - d); break;
case kRight: x = min(osd->Width() - d, x + d); break;
case kRed: color = clrRed; break;
case kGreen: color = clrGreen; break;
case kYellow: color = clrYellow; break;
case kBlue: color = clrBlue; break;
case k1: DrawEllipses(osd);
return osContinue;
case k2: DrawSlopes(osd);
return osContinue;
case kBack:
case kOk: return osEnd;
default: return state;
}
osd->DrawRectangle(x, y, x + d - 1, y + d - 1, color);
osd->Flush();
state = osContinue;
}
return state;
}
// --- cTrueColorDemo --------------------------------------------------------
class cTrueColorDemo : public cOsdObject, public cThread {
private:
cOsd *osd;
cPoint cursor;
cRect cursorLimits;
bool clockwise;
cPixmap *destroyablePixmap;
cPixmap *toggleablePixmap;
bool SetArea(void);
virtual void Action(void);
cPixmap *CreateTextPixmap(const char *s, int Line, int Layer, tColor ColorFg, tColor ColorBg, const cFont *Font);
public:
cTrueColorDemo(void);
virtual ~cTrueColorDemo();
virtual void Show(void);
virtual eOSState ProcessKey(eKeys Key);
};
cTrueColorDemo::cTrueColorDemo(void)
{
osd = NULL;
clockwise = true;
destroyablePixmap = NULL;
toggleablePixmap = NULL;
}
cTrueColorDemo::~cTrueColorDemo()
{
Cancel(3);
delete osd;
}
cPixmap *cTrueColorDemo::CreateTextPixmap(const char *s, int Line, int Layer, tColor ColorFg, tColor ColorBg, const cFont *Font)
{
const int h = Font->Height(s);
int w = Font->Width(s);
cPixmap *Pixmap = osd->CreatePixmap(Layer, cRect((osd->Width() - w) / 2, Line, w, h));
if (Pixmap) {
Pixmap->Clear();
Pixmap->SetAlpha(0);
Pixmap->DrawText(cPoint(0, 0), s, ColorFg, ColorBg, Font, w);
}
return Pixmap;
}
void cTrueColorDemo::Action(void)
{
cPixmap *FadeInPixmap = NULL;
cPixmap *FadeOutPixmap = NULL;
cPixmap *MovePixmap = NULL;
cPixmap *NextPixmap = NULL;
cPixmap *TilePixmap = NULL;
cPixmap *ScrollPixmap = NULL;
cPixmap *AnimPixmap = NULL;
cFont *OsdFont = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize);
cFont *SmlFont = cFont::CreateFont(Setup.FontSml, Setup.FontSmlSize);
cFont *LrgFont = cFont::CreateFont(Setup.FontOsd, osd->Height() / 10);
int FrameTime = 40; // ms
int FadeTime = 1000; // ms
int MoveTime = 4000; // ms
int TileTime = 6000; // ms
int ScrollWaitTime = 1000; // ms
int ScrollLineTime = 200; // ms
int ScrollTotalTime = 8000; // ms
uint64_t Start = 0;
uint64_t ScrollStartTime = 0;
int ScrollLineNumber = 0;
cPoint MoveStart, MoveEnd;
cPoint TileStart, TileEnd;
cPoint ScrollStart, ScrollEnd;
int Line = osd->Height() / 20;
int StartLine = Line;
cPoint OldCursor;
int State = 0;
while (Running()) {
cPixmap::Lock();
bool Animated = false;
uint64_t Now = cTimeMs::Now();
if (FadeInPixmap) {
double t = min(double(Now - Start) / FadeTime, 1.0);
int Alpha = t * ALPHA_OPAQUE;
FadeInPixmap->SetAlpha(Alpha);
if (t >= 1)
FadeInPixmap = NULL;
Animated = true;
}
if (FadeOutPixmap) {
double t = min(double(Now - Start) / FadeTime, 1.0);
int Alpha = ALPHA_OPAQUE - t * ALPHA_OPAQUE;
FadeOutPixmap->SetAlpha(Alpha);
if (t >= 1)
FadeOutPixmap = NULL;
Animated = true;
}
if (MovePixmap) {
double t = min(double(Now - Start) / MoveTime, 1.0);
int x = MoveStart.X() + t * (MoveEnd.X() - MoveStart.X());
int y = MoveStart.Y() + t * (MoveEnd.Y() - MoveStart.Y());
cRect r = MovePixmap->ViewPort();
r.SetPoint(x, y);
MovePixmap->SetViewPort(r);
if (t >= 1)
MovePixmap = NULL;
Animated = true;
}
if (TilePixmap) {
double t = min(double(Now - Start) / TileTime, 1.0);
int x = TileStart.X() + t * (TileEnd.X() - TileStart.X());
int y = TileStart.Y() + t * (TileEnd.Y() - TileStart.Y());
TilePixmap->SetDrawPortPoint(cPoint(x, y));
if (t >= 1) {
destroyablePixmap = TilePixmap;
TilePixmap = NULL;
}
Animated = true;
}
if (ScrollPixmap) {
if (int(Now - Start) > ScrollWaitTime) {
if (ScrollStartTime) {
double t = min(double(Now - ScrollStartTime) / ScrollLineTime, 1.0);
int x = ScrollStart.X() + t * (ScrollEnd.X() - ScrollStart.X());
int y = ScrollStart.Y() + t * (ScrollEnd.Y() - ScrollStart.Y());
ScrollPixmap->SetDrawPortPoint(cPoint(x, y));
if (t >= 1) {
if (int(Now - Start) < ScrollTotalTime) {
cRect r = ScrollPixmap->DrawPort();
r.SetPoint(-r.X(), -r.Y());
ScrollPixmap->Pan(cPoint(0, 0), r);
cString s = cString::sprintf("Line %d", ++ScrollLineNumber);
ScrollPixmap->DrawRectangle(cRect(0, ScrollPixmap->ViewPort().Height(), ScrollPixmap->DrawPort().Width(), ScrollPixmap->DrawPort().Height()), clrTransparent);
ScrollPixmap->DrawText(cPoint(0, ScrollPixmap->ViewPort().Height()), s, clrYellow, clrTransparent, OsdFont);
ScrollStartTime = Now;
}
else {
FadeOutPixmap = ScrollPixmap;
ScrollPixmap = NULL;
Start = cTimeMs::Now();
}
}
}
else
ScrollStartTime = Now;
}
Animated = true;
}
if (AnimPixmap) {
int d = AnimPixmap->ViewPort().Height();
if (clockwise)
d = -d;
cPoint p = AnimPixmap->DrawPort().Point().Shifted(0, d);
if (clockwise && p.Y() <= -AnimPixmap->DrawPort().Height())
p.SetY(0);
else if (!clockwise && p.Y() > 0)
p.SetY(-(AnimPixmap->DrawPort().Height() - AnimPixmap->ViewPort().Height()));
AnimPixmap->SetDrawPortPoint(p);
}
if (!Animated) {
switch (State) {
case 0: {
FadeInPixmap = CreateTextPixmap("VDR", Line, 1, clrYellow, clrTransparent, LrgFont);
if (FadeInPixmap)
Line += FadeInPixmap->DrawPort().Height();
Start = cTimeMs::Now();
State++;
}
break;
case 1: {
FadeInPixmap = CreateTextPixmap("Video Disk Recorder", Line, 3, clrYellow, clrTransparent, OsdFont);
if (FadeInPixmap)
Line += FadeInPixmap->DrawPort().Height();
Start = cTimeMs::Now();
State++;
}
break;
case 2: {
FadeInPixmap = CreateTextPixmap("True Color OSD Demo", Line, 1, clrYellow, clrTransparent, OsdFont);
if (FadeInPixmap)
Line += FadeInPixmap->DrawPort().Height();
Start = cTimeMs::Now();
State++;
}
break;
case 3: {
NextPixmap = CreateTextPixmap("Millions of colors", Line, 1, clrYellow, clrTransparent, LrgFont);
if (NextPixmap) {
FadeInPixmap = NextPixmap;
Start = cTimeMs::Now();
StartLine = Line;
Line += NextPixmap->DrawPort().Height();
}
State++;
}
break;
case 4: {
Line += osd->Height() / 10;
int w = osd->Width() / 2;
int h = osd->Height() - Line - osd->Height() / 10;
cImage Image(cSize(w, h));
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++)
Image.SetPixel(cPoint(x, y), HsvToColor(360 * double(x) / w, 1 - double(y) / h, 1) | 0xDF000000);
}
if (cPixmap *Pixmap = osd->CreatePixmap(2, cRect((osd->Width() - w) / 2, Line, w, h))) {
Pixmap->DrawImage(cPoint(0, 0), Image);
toggleablePixmap = Pixmap;
}
State++;
}
break;
case 5: {
if (NextPixmap) {
MovePixmap = NextPixmap;
MoveStart = MovePixmap->ViewPort().Point();
MoveEnd.Set(osd->Width() - MovePixmap->ViewPort().Width(), osd->Height() - MovePixmap->ViewPort().Height());
Start = cTimeMs::Now();
}
State++;
}
break;
case 6: {
TilePixmap = CreateTextPixmap("Tiled Pixmaps", StartLine, 1, clrRed, clrWhite, OsdFont);
if (TilePixmap) {
TilePixmap->SetViewPort(TilePixmap->ViewPort().Grown(TilePixmap->DrawPort().Width(), TilePixmap->DrawPort().Height()));
TilePixmap->SetAlpha(200);
TilePixmap->SetTile(true);
TileStart = TilePixmap->DrawPort().Point();
TileEnd = TileStart.Shifted(TilePixmap->ViewPort().Width(), TilePixmap->ViewPort().Height());
MovePixmap = TilePixmap;
MoveStart = MovePixmap->ViewPort().Point();
MoveEnd.Set(10, osd->Height() - MovePixmap->ViewPort().Height() - 10);
Start = cTimeMs::Now();
}
State++;
}
break;
case 7: {
const char *Text = "Scrolling Pixmaps";
int w = OsdFont->Width(Text);
int h = OsdFont->Height();
if (cPixmap *Pixmap = osd->CreatePixmap(2, cRect((osd->Width() - w) / 2, StartLine, w, 2 * h), cRect(0, 0, w, 3 * h))) {
Pixmap->Clear();
Pixmap->DrawText(cPoint(0, 0), Text, clrYellow, clrTransparent, OsdFont);
cString s = cString::sprintf("Line %d", ++ScrollLineNumber);
Pixmap->DrawText(cPoint(0, Pixmap->ViewPort().Height()), s, clrYellow, clrTransparent, OsdFont);
ScrollPixmap = Pixmap;
ScrollStart.Set(0, 0);
ScrollEnd.Set(0, -h);
Start = cTimeMs::Now();
}
State++;
}
break;
case 8: {
const char *Text = "Animation";
const int Size = SmlFont->Width(Text) + 10;
const int NumDots = 12;
const int AnimFrames = NumDots;
int Rows = min(osd->MaxPixmapSize().Height() / Size, AnimFrames);
int Cols = (AnimFrames + Rows - 1) / Rows;
// Temporarily using pixmap layer 0 to have the text alpha blended:
AnimPixmap = osd->CreatePixmap(0, cRect((osd->Width() - Size) / 2, StartLine, Size, Size), cRect(0, 0, Size * Cols, Size * Rows));
if (AnimPixmap) {
AnimPixmap->SetAlpha(0);
AnimPixmap->Clear();
const int Diameter = Size / 5;
for (int Frame = 0; Frame < AnimFrames; Frame++) {
int x0 = Frame / Rows * Size;
int y0 = Frame % Rows * Size;
AnimPixmap->DrawEllipse(cRect(x0, y0, Size, Size), 0xDDFFFFFF);
int xc = x0 + Size / 2 - Diameter / 2;
int yc = y0 + Size / 2 - Diameter / 2;
int Color = 0xFF;
int Delta = Color / NumDots / 3;
for (int a = 0; a < NumDots; a++) {
double t = 2 * M_PI * (Frame + a) / NumDots;
int x = xc + ((Size - Diameter) / 2 - 5) * cos(t);
int y = yc + ((Size - Diameter) / 2 - 5) * sin(t);
AnimPixmap->DrawEllipse(cRect(x, y, Diameter, Diameter), ArgbToColor(0xFF, Color, Color, Color));
Color -= Delta;
}
AnimPixmap->DrawText(cPoint(x0, y0), Text, clrBlack, clrTransparent, SmlFont, Size, Size, taCenter);
}
AnimPixmap->SetLayer(3); // now setting the actual pixmap layer
FadeInPixmap = AnimPixmap;
LOCK_THREAD;
OldCursor = cursor = AnimPixmap->ViewPort().Point();
cursorLimits.Set(0, 0, osd->Width(), osd->Height());
cursorLimits.SetRight(cursorLimits.Right() - Size);
cursorLimits.SetBottom(cursorLimits.Bottom() - Size);
cursorLimits.Grow(-10, -10);
Start = cTimeMs::Now();
}
State++;
}
break;
case 9: {
LOCK_THREAD;
if (cursor != OldCursor) {
MovePixmap = AnimPixmap;
MoveStart = MovePixmap->ViewPort().Point();
MoveEnd = OldCursor = cursor;
MoveTime = 500;
Start = cTimeMs::Now();
}
}
break;
}
}
osd->Flush();
cPixmap::Unlock();
int Delta = cTimeMs::Now() - Now;
if (Delta < FrameTime)
cCondWait::SleepMs(FrameTime - Delta);
}
destroyablePixmap = NULL;
toggleablePixmap = NULL;
delete OsdFont;
delete SmlFont;
delete LrgFont;
}
bool cTrueColorDemo::SetArea(void)
{
if (osd) {
tArea Area = { 0, 0, cOsd::OsdWidth() - 1, cOsd::OsdHeight() - 1, 32 };
return osd->SetAreas(&Area, 1) == oeOk;
}
return false;
}
void cTrueColorDemo::Show(void)
{
osd = cOsdProvider::NewOsd(cOsd::OsdLeft(), cOsd::OsdTop());
if (osd) {
if (SetArea()) {
osd->DrawRectangle(0, 0, osd->Width() - 1, osd->Height() - 1, clrGray50);
osd->Flush();
Start();
}
}
}
eOSState cTrueColorDemo::ProcessKey(eKeys Key)
{
eOSState state = cOsdObject::ProcessKey(Key);
if (state == osUnknown) {
LOCK_PIXMAPS;
LOCK_THREAD;
const int d = 80;
switch (Key & ~k_Repeat) {
case kUp: cursor.SetY(max(cursorLimits.Top(), cursor.Y() - d)); clockwise = false; break;
case kDown: cursor.SetY(min(cursorLimits.Bottom(), cursor.Y() + d)); clockwise = true; break;
case kLeft: cursor.SetX(max(cursorLimits.Left(), cursor.X() - d)); clockwise = false; break;
case kRight: cursor.SetX(min(cursorLimits.Right(), cursor.X() + d)); clockwise = true; break;
case kRed: if (destroyablePixmap) {
osd->DestroyPixmap(destroyablePixmap);
destroyablePixmap = NULL;
}
break;
case kGreen: if (toggleablePixmap)
toggleablePixmap->SetLayer(-toggleablePixmap->Layer());
break;
case k1: Cancel(3);
SetArea();
DrawEllipses(osd);
break;
case k2: Cancel(3);
SetArea();
DrawSlopes(osd);
break;
case k3: Cancel(3);
SetArea();
DrawImages(osd);
break;
case k4: Cancel(3);
SetArea();
DrawEllipseAlignments(osd);
return osContinue;
case kBack:
case kOk: return osEnd;
default: return state;
}
state = osContinue;
}
return state;
}
// --- cPluginOsddemo --------------------------------------------------------
class cPluginOsddemo : public cPlugin {
private:
// Add any member variables or functions you may need here.
public:
cPluginOsddemo(void);
virtual ~cPluginOsddemo();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Start(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return MAINMENUENTRY; }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
cPluginOsddemo::cPluginOsddemo(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
}
cPluginOsddemo::~cPluginOsddemo()
{
// Clean up after yourself!
}
const char *cPluginOsddemo::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return NULL;
}
bool cPluginOsddemo::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
return true;
}
bool cPluginOsddemo::Start(void)
{
// Start any background activities the plugin shall perform.
return true;
}
void cPluginOsddemo::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
cOsdObject *cPluginOsddemo::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
if (cOsdProvider::SupportsTrueColor())
return new cTrueColorDemo;
return new cLineGame;
}
cMenuSetupPage *cPluginOsddemo::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return NULL;
}
bool cPluginOsddemo::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
return false;
}
VDRPLUGINCREATOR(cPluginOsddemo); // Don't touch this!

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,122 @@
VDR Plugin 'pictures' Revision History
--------------------------------------
2008-01-13: Version 0.0.1
- Initial revision.
2008-01-19: Version 0.0.2
- Fixed the Play function (when used from a directory in the pictures menu
it always started with the next directory).
- Added Finnish texts (thanks to Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>).
2008-01-27: Version 0.0.3
- Added French texts (thanks to Patrice Staudt <patrice.staudt@laposte.net>).
2008-02-02: Version 0.0.4
- Added option -i to pic2mpg to ignore unknown file types.
2008-02-17: Version 0.0.5
- Fixed setting the OSD area.
- Introduced 'operator const void * ()' in cString to catch cases where operator*()
should be used.
2008-02-29: Version 0.0.6
- Made the 'pic2mpg' script of the 'pictures' plugin work with uppercase filename
extensions and relative paths (reported by Stefan Wagner <stefanwag@gmx.at>).
2008-03-14: Version 0.0.7
- Added Russian translations (thanks to Alexander Gross).
2009-12-06: Version 0.0.8
- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler).
2010-02-28: Version 0.0.9
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
2011-02-20: Version 0.1.0
- Fixed reallocating memory (reported by Paul Menzel).
2011-07-23:
- Now rotating images according to the EXIF 'Orientation' parameter.
2011-08-14:
- The pic2mpg script now generates HD images (thanks to Andre Weidemann for his
support in using convert/ffmpeg). The old SD version is still available as
pic2mpg-sd.
2011-11-02:
- Fixed handling images that are rotated by 180 degrees in pic2mpg.
2012-01-08:
- Added option -o to pic2mpg.
2012-02-17:
- cReadDir::Next() now skips directory entries "." and "..".
2012-02-27: Version 0.1.2
- Removed an obsolete command line option.
2012-04-28: Version 0.1.3
- Added cPictureControl::GetHeader().
2012-12-27: Version 0.1.4
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.1.5
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2013-07-01:
- Added option -x to pic2mpg.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2015-07-23: Version 2.3.1
- Added a missing 'const'.
2017-10-06: Version 2.3.2
- Adapted the pic2mpg script to new ffmpeg options.
- No longer using 'convert' to scale/rotate the pictures.
2018-04-15: Version 2.4.0
- Official release.
2021-12-27: Version 2.6.0
- Official release.
2022-12-05: Version 2.6.1
Fixed initializing cPictureControl.

View File

@ -0,0 +1,128 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = pictures
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o entry.o menu.o player.o
### The main target:
all: $(SOFILE) i18n
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Internationalization (I18N):
PODIR = po
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po
@echo MO $@
$(Q)msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
@echo GT $@
$(Q)xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot)
@echo PO $@
$(Q)msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@
$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
install -D -m644 $< $@
.PHONY: i18n
i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

119
PLUGINS/src/pictures/README Normal file
View File

@ -0,0 +1,119 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description:
============
The 'pictures' plugin implements a simple picture viewer.
There is already an 'image' plugin out there which has a lot more
functionality than this one, but it's way too complex for my taste,
and also converts the image files on-the-fly, which makes it slow
on slow hardware.
This plugin assumes that the pictures have already been converted to
MPEG frames (with the 'pic2mpg' script that comes with this archive),
and doesn't implement any fancy features like zooming, panning or
tiled previews. It's just a very simple viewer.
It also assumes a rather particular directory structure (see below),
which I have found to fit well for my needs. If you use a different
structure, the plugin should still work, but the information displayed
in the caption may not be as expected.
Remote control key functions while in the Pictures menu:
========================================================
- Left/right/Up/Down: navigate in the menu as usual.
- Ok: opens a directory or displays the selected
picture.
- Red/Play: start a slide show at the first picture in the
selected directory (or at the selected picture).
Remote control key functions while displaying pictures:
=======================================================
- Left/Right: advances to the previous/next picture. At the end of a directory
it automatically advances to the first picture of the next
directory and displays the caption.
- Up/Play: start the slide show.
- Down/Pause: stop the slide show.
- Blue/Stop: exit from the picture viewer.
- Green/Prev: skip to the first picture in the previous directory.
- Yellow/Next: skip to the first picture in the next directory.
- Ok: toggle the caption display.
- Back: return to the picture selection menu.
The slide show starts with the picture immediately following the one that
is currently visible, and continues until the last available picture,
automatically crossing directories as necessary.
Pressing any of the Left/Right, Green/Prev, Yellow/Next or Back keys
automatically stops an ongoing slide show.
Directory structure:
====================
The 'pictures' plugin requires a particular directory structure in order to
work properly. Starting at some base directory (e.g. "/path/to/pictures"),
there is one directory level marking the year in which the pictures were
taken, followed by a level with a properly sortable combination of month
and description, and finally the plain picture files, as in
/path/to/pictures/YEAR/MONTH_DESCRIPTION/*.jpg
For example
/path/to/pictures/2007/06a_Vacation_in_Colorado/dsc01234.jpg
/path/to/pictures/2007/06a_Vacation_in_Colorado/dsc01235.jpg
/path/to/pictures/2007/06b_Our_cat/dsc01236.jpg
The MONTH is "01" for January through "12" for December. If there is more
than one entry for one month, it should be followed by a letter to make them
sort correctly. Note that this is just a suggestion on how to make the
directories sort in the correct chronological order. Instead of the two digit
month number, optionally followed by a letter, you can use anything else you
like. There must be an underscore between the MONTH and the DESCRIPTION part,
and any underscores within the DESCRIPTION will be converted to blanks when
displaying the description (this is done so that blanks can be avoided in
the directory names).
Preparing the files:
====================
In order to display the pictures as "still pictures" on the DVB device, they
need to be converted into MPEG frames. This procedure takes some time, and
would make viewing pictures sluggish, especially on slow hardware. Therefore
the script "pic2mpg" must be used to convert all picture files before
using this plugin, as in
pic2mpg /path/to/pictures /path/to/pictures.MPG
This will recursively walk through all pictures in the source directory and
convert them into MPEG frames, stored in the destination directory. The
extension ".MPG" is just a suggestion, you can name the directory anything
you like, and it doesn't have to start with the same path as the source
directory. Just don't make the destination directory a subdirectory of
the source directory, because this would surely lead to problems.
See "pic2mpg -h" for a list of available options.
The pic2mpg conversion can be run any time, even if converted pictures
already exist. It will only convert pictures that haven't been converted
yet. Any changes to the source directory will be reflected in the destination
directory accordingly after pic2mpg has finished (note that this especially
means that any files or directories in the destination tree that have no
corresponding entry in the source tree will be deleted!). So you can run
pic2mpg, for instance, after copying new pictures into your picture
directory, or after making any other kind of changes to your existing
pictures. It might even be a good idea to run pic2mpg in a (nightly)
cron job.

View File

@ -0,0 +1,147 @@
/*
* entry.c: Data structure to handle still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: entry.c 2.1 2012/02/17 14:00:28 kls Exp $
*/
#include "entry.h"
cPictureEntry::cPictureEntry(const char *Name, const cPictureEntry *Parent, bool IsDirectory)
{
name = strdup(Name);
parent = Parent;
isDirectory = IsDirectory;
entries = NULL;
}
cPictureEntry::~cPictureEntry()
{
free(name);
delete entries;
}
int cPictureEntry::Compare(const cListObject &ListObject) const
{
cPictureEntry *p = (cPictureEntry *)&ListObject;
if (IsDirectory() && !p->IsDirectory())
return -1;
if (!IsDirectory() && p->IsDirectory())
return +1;
if (IsDirectory())
return strcoll(name, p->name);
else
return strcmp(name, p->name); // correctly sorts dsc01234.jpg and dsc01234a.jpg in case pictures have been "squeezed in"
}
cString cPictureEntry::Path(void) const
{
return parent ? *AddDirectory(parent->Path(), name) : name;
}
void cPictureEntry::Load(void) const
{
if (isDirectory && !entries) {
cString Directory = Path();
cReadDir d(Directory);
if (d.Ok()) {
struct dirent *e;
while ((e = d.Next()) != NULL) {
struct stat ds;
if (stat(AddDirectory(Directory, e->d_name), &ds) == 0) {
if (!entries)
entries = new cList<cPictureEntry>;
entries->Add(new cPictureEntry(e->d_name, this, S_ISDIR(ds.st_mode)));
}
}
if (entries)
entries->Sort();
}
else
LOG_ERROR_STR(*Directory);
}
}
const cList<cPictureEntry> *cPictureEntry::Entries(void) const
{
Load();
return entries;
}
const cPictureEntry *cPictureEntry::FirstPicture(void) const
{
Load();
if (entries) {
for (cPictureEntry *pe = entries->First(); pe; pe = entries->Next(pe)) {
if (pe->IsDirectory()) {
const cPictureEntry *p = pe->FirstPicture();
if (p)
return p;
}
else
return pe;
}
}
return NULL;
}
const cPictureEntry *cPictureEntry::LastPicture(void) const
{
Load();
if (entries) {
for (cPictureEntry *pe = entries->Last(); pe; pe = entries->Prev(pe)) {
if (pe->IsDirectory()) {
const cPictureEntry *p = pe->LastPicture();
if (p)
return p;
}
else
return pe;
}
}
return NULL;
}
const cPictureEntry *cPictureEntry::PrevPicture(const cPictureEntry *This) const
{
if (This) {
const cPictureEntry *pe = (cPictureEntry *)entries->Prev(This);
if (pe) {
if (pe->IsDirectory()) {
const cPictureEntry *p = pe->LastPicture();
if (p)
return p;
return PrevPicture(pe);
}
return pe;
}
}
if (parent)
return parent->PrevPicture(this);
return NULL;
}
const cPictureEntry *cPictureEntry::NextPicture(const cPictureEntry *This) const
{
if (This) {
cPictureEntry *pe = (cPictureEntry *)entries->Next(This);
if (pe) {
if (pe->IsDirectory()) {
const cPictureEntry *p = pe->FirstPicture();
if (p)
return p;
return NextPicture(pe);
}
return pe;
}
}
else if (IsDirectory()) {
const cPictureEntry *p = FirstPicture();
if (p)
return p;
}
if (parent)
return parent->NextPicture(this);
return NULL;
}

View File

@ -0,0 +1,36 @@
/*
* entry.h: Data structure to handle still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: entry.h 1.1 2008/01/13 11:29:27 kls Exp $
*/
#ifndef _ENTRY_H
#define _ENTRY_H
#include <vdr/tools.h>
class cPictureEntry : public cListObject {
private:
char *name;
const cPictureEntry *parent;
bool isDirectory;
mutable cList<cPictureEntry> *entries;
void Load(void) const;
public:
cPictureEntry(const char *Name, const cPictureEntry *Parent, bool IsDirectory);
virtual ~cPictureEntry();
virtual int Compare(const cListObject &ListObject) const;
const char *Name(void) const { return name; }
const cPictureEntry *Parent(void) const { return parent; }
bool IsDirectory(void) const { return isDirectory; }
cString Path(void) const;
const cList<cPictureEntry> *Entries(void) const;
const cPictureEntry *FirstPicture(void) const;
const cPictureEntry *LastPicture(void) const;
const cPictureEntry *PrevPicture(const cPictureEntry *This = NULL) const;
const cPictureEntry *NextPicture(const cPictureEntry *This = NULL) const;
};
#endif //_ENTRY_H

129
PLUGINS/src/pictures/menu.c Normal file
View File

@ -0,0 +1,129 @@
/*
* menu.c: A menu for still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: menu.c 4.1 2015/07/17 10:13:56 kls Exp $
*/
#include "menu.h"
#include <vdr/tools.h>
#include "entry.h"
#include "player.h"
char PictureDirectory[PATH_MAX] = "";
static bool PathStartsWith(const char *Path, const char *Name)
{
if (Path && Name) {
while (*Name) {
if (*Path++ != *Name++)
return false;
}
if (*Path && *Path != '/')
return false;
return true;
}
return false;
}
static const char *NextLevel(const char *Path)
{
if (Path) {
const char *p = strchr(Path, '/');
return p ? p + 1 : NULL;
}
return Path;
}
cPictureEntry *cPictureMenu::pictures = NULL;
cPictureMenu::cPictureMenu(const cPictureEntry *PictureEntry, const char *Path)
:cOsdMenu(tr("Pictures"))
{
pictureEntry = PictureEntry;
if (!pictureEntry)
pictureEntry = pictures = new cPictureEntry(PictureDirectory, NULL, true);
if (pictureEntry->Parent()) {
if (!pictureEntry->Parent()->Parent())
SetTitle(pictureEntry->Name()); // Year
else
SetTitle(cString::sprintf("%s: %s", pictureEntry->Parent()->Name(), *HandleUnderscores(pictureEntry->Name()))); // Year/Description
}
Set(Path);
}
cPictureMenu::~cPictureMenu()
{
if (pictures && pictureEntry && !pictureEntry->Parent())
DELETENULL(pictures);
}
void cPictureMenu::Set(const char *Path)
{
Clear();
const cList<cPictureEntry> *l = pictureEntry->Entries();
if (l) {
for (const cPictureEntry *e = l->First(); e; e = l->Next(e)) {
cString Name = HandleUnderscores(e->Name());
if (!e->IsDirectory())
Name.Truncate(-4); // don't display the ".mpg" extension
Add(new cOsdItem(HandleUnderscores(Name)), PathStartsWith(Path, e->Name()));
}
}
SetHelp(Count() ? trVDR("Button$Play") : NULL, NULL, NULL, cPictureControl::Active() ? trVDR("Button$Stop") : NULL);
if (Current() >= 0) {
const char *p = NextLevel(Path);
if (p)
SelectItem(p);
}
}
eOSState cPictureMenu::SelectItem(const char *Path, bool SlideShow)
{
cOsdItem *Item = Get(Current());
if (Item) {
const cList<cPictureEntry> *l = pictureEntry->Entries();
if (l) {
const cPictureEntry *pe = l->Get(Current());
if (pe) {
if (SlideShow) {
cControl::Launch(new cPictureControl(pictures, pe, true));
pictures = NULL; // cPictureControl takes ownership
return osEnd;
}
if (pe->IsDirectory())
return AddSubMenu(new cPictureMenu(pe, Path));
else if (!Path) {
cControl::Launch(new cPictureControl(pictures, pe));
pictures = NULL; // cPictureControl takes ownership
return osEnd;
}
}
}
}
return osContinue;
}
eOSState cPictureMenu::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
switch (Key) {
case kRed:
case kPlay: return SelectItem(NULL, true);
case kBlue:
case kStop: if (cPictureControl::Active())
return osStopReplay;
break;
case kOk: return SelectItem();
default: break;
}
}
return state;
}
cPictureMenu *cPictureMenu::CreatePictureMenu(void)
{
return new cPictureMenu(NULL, cPictureControl::LastDisplayed());
}

View File

@ -0,0 +1,31 @@
/*
* menu.h: A menu for still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: menu.h 1.1 2008/01/13 11:32:52 kls Exp $
*/
#ifndef _MENU_H
#define _MENU_H
#include <vdr/osdbase.h>
#include <vdr/tools.h>
#include "entry.h"
extern char PictureDirectory[PATH_MAX];
class cPictureMenu : public cOsdMenu {
private:
static cPictureEntry *pictures;
const cPictureEntry *pictureEntry;
void Set(const char *Path);
eOSState SelectItem(const char *Path = NULL, bool SlideShow = false);
public:
cPictureMenu(const cPictureEntry *PictureEntry, const char *Path = NULL);
~cPictureMenu();
virtual eOSState ProcessKey(eKeys Key);
static cPictureMenu *CreatePictureMenu(void);
};
#endif //_MENU_H

172
PLUGINS/src/pictures/pic2mpg Executable file
View File

@ -0,0 +1,172 @@
#!/usr/bin/perl
# pic2mpg: Convert picture files to MPEG still frames
#
# Converts either a single picture file or all files in a
# given directory (recursively) to MPEG still frames.
#
# See the README file for copyright information and how to reach the author.
#
# $Id: pic2mpg 4.1 2017/10/06 14:42:18 kls Exp $
use File::Path;
use File::Spec;
use Getopt::Std;
use Image::ExifTool qw(:Public);
$Usage = qq{
Usage: $0 [options] picture-dir mpeg-dir
$0 [options] picture-file mpeg-file
Options: -f Force conversion
-h print Help
-o percent overscan in percent
-s size Screen size (WIDTHxHEIGHT, default is 1920x1080)
-v num Verbose (0=none, 1=list files, 2=detailed)
-x dir[,...] eXclude the given directories
};
getopts("fho:s:v:x:") || die $Usage;
die $Usage if $opt_h;
$Force = $opt_f;
$Overscan = $opt_o || 0;
$Size = $opt_s || "1920x1080";
$Verbose = $opt_v;
@Exclude = split(',', $opt_x || "");
$ListFiles = $Verbose >= 1;
$Detailed = $Verbose >= 2;
# Supported picture types:
%PICTYPES = (
bmp => 1,
gif => 1,
jpeg => 1,
jpg => 1,
png => 1,
pnm => 1,
tif => 1,
tiff => 1,
);
# Command options:
die "$0: missing parameter\n" unless $ARGV[0] && $ARGV[1];
die "$0: file or directory not found: $ARGV[0]\n" unless -e $ARGV[0];
die "$0: source and destination must be different\n" if $ARGV[0] eq $ARGV[1];
$Extent = $Size;
if ($Overscan > 0) {
my ($x, $y) = $Size =~ /(.*)x(.*)/;
my $r = (100 + $Overscan) / 100;
$x = int($x * $r + 0.5);
$y = int($y * $r + 0.5);
$Extent = "${x}x$y";
}
# Convert a single file:
if (-f $ARGV[0]) {
die "$0: mixed file and directory ('$ARGV[0]' <-> '$ARGV[1]')\n" unless !-e $ARGV[1] || -f $ARGV[1];
ConvertFile($ARGV[0], $ARGV[1]);
exit;
}
die "$0: mixed directory and file ('$ARGV[0]' <-> '$ARGV[1]')\n" unless !-e $ARGV[1] || -d $ARGV[1];
$PICDIR = File::Spec->rel2abs($ARGV[0]);
$MPGDIR = File::Spec->rel2abs($ARGV[1]);
# Convert pictures to mpegs:
chdir($PICDIR) || die "$PICDIR: $!\n";
@Pictures = `find -type f | sort`;
chomp(@Pictures);
PIC:
for $pic (@Pictures) {
for (@Exclude) {
next PIC if ($pic =~ /\/$_\//);
}
my $mpg = "$MPGDIR/$pic.mpg";
if ($Force || !-e $mpg || -M $mpg > -M $pic) {
(my $dir = $mpg) =~ s/\/[^\/]*$//;
mkpath($dir);
ConvertFile($pic, $mpg);
}
}
# Remove mpegs without pictures:
chdir($MPGDIR) || die "$MPGDIR: $!\n";
@Mpegs = `find -type f`;
chomp(@Mpegs);
for $mpg (@Mpegs) {
my $pic = "$PICDIR/$mpg";
$pic =~ s/\.mpg$//;
if (!-e $pic) {
print "removing $mpg\n";
unlink($mpg);
}
}
# Remove empty directories:
chdir($MPGDIR) || die "$MPGDIR: $!\n";
for ($i = 0; $i < 10; $i++) { # dirs might become empty when removing empty subdirs
@Dirs = `find -type d -empty`;
chomp(@Dirs);
last unless @Dirs;
for $dir (@Dirs) {
$dir = EscapeMeta($dir);
print "removing $dir\n";
Exec("rm -rf $dir");
}
}
# Actual file conversion:
sub ConvertFile
{
my ($Pict, $Mpeg) = @_;
(my $Type) = lc($Pict) =~ /\.([^\.]*)$/;
return if (!defined $PICTYPES{$Type});
my $Exif = ImageInfo($Pict);
my $Orientation = $$Exif{"Orientation"};
my ($Degrees) = $Orientation =~ /Rotate ([0-9]+)/;
my $Rotate = ($Degrees == 90) ? "transpose=clock" : ($Degrees == 180) ? "hflip,vflip" : ($Degrees == 270) ? "transpose=cclock" : "";
$Rotate .= ',' if ($Rotate);
my $Background = '#000000@1';
print "orientation = '$Orientation' -> rotation = $Rotate\n" if ($Detailed);
$Pict = EscapeMeta($Pict);
$Mpeg = EscapeMeta($Mpeg);
print "$Pict -> $Mpeg $Rotate\n" if $ListFiles;
my $Cmd = "ffmpeg -i $Pict -vf '${Rotate}scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:$Background' -c:v libx264 -pix_fmt yuv420p -f mpegts -y $Mpeg "
. ($Detailed ? "" : "2>/dev/null");
Exec($Cmd);
$Cmd = "touch -r $Pict $Mpeg";
Exec($Cmd);
}
sub EscapeMeta
{
my $META = ' !"#$%&\'()*;<>?[\\]`{|}~';
my $s = shift;
$s =~ s/([$META])/\\$1/g;
return $s;
}
sub Exec
{
my $Cmd = shift;
print "==> '$Cmd'\n" if ($Verbose);
!system($Cmd) || die "$Cmd: $!\n";
}

193
PLUGINS/src/pictures/pic2mpg-sd Executable file
View File

@ -0,0 +1,193 @@
#!/usr/bin/perl
# pic2mpg: Convert picture files to MPEG still frames
#
# Converts either a single picture file or all files in a
# given directory (recursively) to MPEG still frames.
#
# See the README file for copyright information and how to reach the author.
#
# $Id: pic2mpg-sd 2.1 2011/07/23 14:23:59 kls Exp $
## TODO implement HDTV (1920 x 1080)
use File::Path;
use File::Spec;
use Getopt::Std;
use Image::ExifTool qw(:Public);
use Image::Size;
$Usage = qq{
Usage: $0 [options] picture-dir mpeg-dir
$0 [options] picture-file mpeg-file
Options: -a Aspect ratio 4:3 (default is 16:9)
-f Force conversion
-h print Help
-i Ignore unknown file types
-n NTSC (default is PAL)
-v num Verbose (0=none, 1=list files, 2=detailed)
-x percent X overscan in percent
-y percent Y overscan in percent
};
getopts("afhinv:x:y:") || die $Usage;
die $Usage if $opt_h;
$Aspect = $opt_a;
$Force = $opt_f;
$Ignore = $opt_i;
$NTSC = $opt_n;
$Verbose = $opt_v;
$OverscanX = $opt_x;
$OverscanY = $opt_y;
$ListFiles = $Verbose >= 1;
$Detailed = $Verbose >= 2;
# Screen size:
$SW = $NTSC ? 720 : 720;
$SH = $NTSC ? 480 : 576;
$ScreenRatio = $Aspect ? 4 / 3 : 16 / 9;
# Converter programs:
%PNMCONV = (
bmp => "bmptopnm",
gif => "giftopnm",
jpeg => "jpegtopnm",
jpg => "jpegtopnm",
png => "pngtopnm",
pnm => "cat",
tif => "tifftopnm",
tiff => "tifftopnm",
);
# Command options:
die "$0: missing parameter\n" unless $ARGV[0] && $ARGV[1];
die "$0: file or directory not found: $ARGV[0]\n" unless -e $ARGV[0];
die "$0: source and destination must be different\n" if $ARGV[0] eq $ARGV[1];
$verbose1 = $Detailed ? "--verbose" : "";
$verbose2 = $Detailed ? "-v 2" : "-v 0";
$system1 = $NTSC ? "" : "--pal";
$system2 = $NTSC ? "n" : "p";
$framerate = $NTSC ? "30000:1001" : "25:1";
$aspect = $Aspect ? "2" : "3";
# Convert a single file:
if (-f $ARGV[0]) {
die "$0: mixed file and directory ('$ARGV[0]' <-> '$ARGV[1]')\n" unless !-e $ARGV[1] || -f $ARGV[1];
ConvertFile($ARGV[0], $ARGV[1]);
exit;
}
die "$0: mixed directory and file ('$ARGV[0]' <-> '$ARGV[1]')\n" unless !-e $ARGV[1] || -d $ARGV[1];
$PICDIR = File::Spec->rel2abs($ARGV[0]);
$MPGDIR = File::Spec->rel2abs($ARGV[1]);
# Convert pictures to mpegs:
chdir($PICDIR) || die "$PICDIR: $!\n";
@Pictures = `find -type f`;
chomp(@Pictures);
for $pic (@Pictures) {
my $mpg = "$MPGDIR/$pic.mpg";
if ($Force || !-e $mpg || -M $mpg > -M $pic) {
(my $dir = $mpg) =~ s/\/[^\/]*$//;
mkpath($dir);
ConvertFile($pic, $mpg);
}
}
# Remove mpegs without pictures:
chdir($MPGDIR) || die "$MPGDIR: $!\n";
@Mpegs = `find -type f`;
chomp(@Mpegs);
for $mpg (@Mpegs) {
my $pic = "$PICDIR/$mpg";
$pic =~ s/\.mpg$//;
if (!-e $pic) {
print "removing $mpg\n";
unlink($mpg);
}
}
# Remove empty directories:
chdir($MPGDIR) || die "$MPGDIR: $!\n";
for ($i = 0; $i < 10; $i++) { # dirs might become empty when removing empty subdirs
@Dirs = `find -type d -empty`;
chomp(@Dirs);
last unless @Dirs;
for $dir (@Dirs) {
$dir = EscapeMeta($dir);
print "removing $dir\n";
!system("rm -rf $dir") || die "$dir: $!\n";
}
}
# Actual file conversion:
sub ConvertFile
{
my ($Pict, $Mpeg) = @_;
(my $Type) = lc($Pict) =~ /\.([^\.]*)$/;
if (!defined $PNMCONV{$Type}) {
return if ($Ignore);
die "unknown file type '$Type': '$Pict'\n";
}
my ($w, $h) = imgsize($Pict);
print "image size is $w x $h\n" if ($Detailed);
my $Exif = ImageInfo($Pict);
my $Orientation = $$Exif{"Orientation"};
my ($Degrees) = $Orientation =~ /Rotate ([0-9]+) /;
my $Rotate = "-null";
$Rotate = "-cw" if $Degrees eq "90";
$Rotate = "-ccw" if $Degrees eq "270";
$Rotate = "-r180" if $Degrees eq "180";
print "orientation = '$Orientation' -> rotation = $Rotate\n" if ($Detailed);
($w, $h) = ($h, $w) if ($Degrees eq "90" || $Degrees eq "270");
if ($w / $h <= $ScreenRatio) {
$w = $h * $ScreenRatio;
}
else {
$h = $w / $ScreenRatio;
}
my $ScaleW = $SW / $w * (100 - 2 * $OverscanX) / 100;
my $ScaleH = $SH / $h * (100 - 2 * $OverscanY) / 100;
$Pict = EscapeMeta($Pict);
$Mpeg = EscapeMeta($Mpeg);
print "$Pict -> $Mpeg $Rotate\n" if $ListFiles;
my $Cmd = "$PNMCONV{$Type} $Pict 2> /dev/null |"
. "pamflip $verbose1 $Rotate |"
. "pnmscale $verbose1 --xscale=$ScaleW --yscale=$ScaleH |"
. "pnmpad $verbose1 --black --width $SW --height $SH |"
. "ppmntsc $verbose1 $system1 |"
. "ppmtoy4m $verbose2 -F $framerate -I p -S 420mpeg2 |"
. "mpeg2enc $verbose2 -f 3 -b 12500 -a $aspect -q 1 -n $system2 -o $Mpeg";
!system($Cmd) || die "$Cmd: $!\n";
$Cmd = "touch -r $Pict $Mpeg";
!system($Cmd) || die "$Cmd: $!\n";
}
sub EscapeMeta
{
my $META = ' !"#$%&\'()*;<>?[\\]`{|}~';
my $s = shift;
$s =~ s/([$META])/\\$1/g;
return $s;
}

View File

@ -0,0 +1,124 @@
/*
* pictures.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: pictures.c 5.1 2022/12/05 15:26:23 kls Exp $
*/
#include <getopt.h>
#include <vdr/plugin.h>
#include "menu.h"
#include "player.h"
static const char *VERSION = "2.6.1";
static const char *DESCRIPTION = trNOOP("A simple picture viewer");
static const char *MAINMENUENTRY = trNOOP("Pictures");
// --- cMenuSetupPictures ----------------------------------------------------
class cMenuSetupPictures : public cMenuSetupPage {
private:
char newPictureDirectory[PATH_MAX];
int newSlideShowDelay;
protected:
virtual void Store(void);
public:
cMenuSetupPictures(void);
};
cMenuSetupPictures::cMenuSetupPictures(void)
{
strn0cpy(newPictureDirectory, PictureDirectory, sizeof(newPictureDirectory));
newSlideShowDelay = SlideShowDelay;
Add(new cMenuEditStrItem(tr("Picture directory"), newPictureDirectory, sizeof(newPictureDirectory)));
Add(new cMenuEditIntItem(tr("Slide show delay (s)"), &newSlideShowDelay));
}
void cMenuSetupPictures::Store(void)
{
SetupStore("PictureDirectory", strn0cpy(PictureDirectory, newPictureDirectory, sizeof(PictureDirectory)));
SetupStore("SlideShowDelay", SlideShowDelay = newSlideShowDelay);
}
// --- cPluginPictures -------------------------------------------------------
class cPluginPictures : public cPlugin {
private:
// Add any member variables or functions you may need here.
public:
cPluginPictures(void);
virtual ~cPluginPictures();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
cPluginPictures::cPluginPictures(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
}
cPluginPictures::~cPluginPictures()
{
// Clean up after yourself!
}
const char *cPluginPictures::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return " -d DIR, --dir=DIR set the picture directory to DIR\n";
}
bool cPluginPictures::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
static struct option long_options[] = {
{ "dir", required_argument, NULL, 'd' },
{ NULL, no_argument, NULL, 0 }
};
int c;
while ((c = getopt_long(argc, argv, "d:", long_options, NULL)) != -1) {
switch (c) {
case 'd': strn0cpy(PictureDirectory, optarg, sizeof(PictureDirectory));
break;
default: return false;
}
}
return true;
}
cOsdObject *cPluginPictures::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
if (*PictureDirectory)
return cPictureMenu::CreatePictureMenu();
Skins.Message(mtWarning, tr("No picture directory has been defined!"));
return NULL;
}
cMenuSetupPage *cPluginPictures::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return new cMenuSetupPictures;
}
bool cPluginPictures::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
if (!strcasecmp(Name, "PictureDirectory")) strn0cpy(PictureDirectory, Value, sizeof(PictureDirectory));
else if (!strcasecmp(Name, "SlideShowDelay")) SlideShowDelay = atoi(Value);
else
return false;
return true;
}
VDRPLUGINCREATOR(cPluginPictures); // Don't touch this!

View File

@ -0,0 +1,264 @@
/*
* player.c: A player for still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: player.c 5.1 2022/12/05 15:26:23 kls Exp $
*/
#include "player.h"
#include <vdr/remote.h>
#include <vdr/tools.h>
int SlideShowDelay = 3; // seconds
cString HandleUnderscores(const char *s)
{
// Skip anything before and including the first '_' and replace
// any remaining '_' with blanks:
const char *p = strchr(s, '_');
if (p) {
p++;
char buf[strlen(p) + 1];
strcpy(buf, p);
return strreplace(buf, '_', ' ');
}
return s;
}
// --- cPicturePlayer --------------------------------------------------------
class cPicturePlayer : public cPlayer {
private:
int size;
int length;
uchar *buffer;
virtual void Activate(bool On);
public:
cPicturePlayer(void);
~cPicturePlayer();
void SetPicture(const char *FileName);
};
cPicturePlayer::cPicturePlayer(void)
{
size = KILOBYTE(100); // will be adjusted automatically if files are larger
length = 0;
buffer = MALLOC(uchar, size);
}
cPicturePlayer::~cPicturePlayer()
{
free(buffer);
}
void cPicturePlayer::Activate(bool On)
{
if (length > 0)
DeviceStillPicture(buffer, length);
}
void cPicturePlayer::SetPicture(const char *FileName)
{
int f = open(FileName, O_RDONLY);
if (f >= 0) {
for (;;) {
length = read(f, buffer, size);
if (length > 0) {
if (length >= size) {
int NewSize = size * 3 / 2;
if (uchar *NewBuffer = (uchar *)realloc(buffer, NewSize)) {
buffer = NewBuffer;
size = NewSize;
}
else {
LOG_ERROR_STR("out of memory");
break;
}
lseek(f, 0, SEEK_SET);
continue;
}
DeviceStillPicture(buffer, length);
}
else
LOG_ERROR_STR(FileName);
break;
}
close(f);
}
else
LOG_ERROR_STR(FileName);
}
// --- cPictureControl -------------------------------------------------------
int cPictureControl::active = 0;
cString cPictureControl::lastDisplayed;
cPictureControl::cPictureControl(cPictureEntry *Pictures, const cPictureEntry *PictureEntry, bool SlideShow)
:cControl(NULL)
{
player = new cPicturePlayer;
SetPlayer(player);
pictures = Pictures;
pictureEntry = PictureEntry;
osd = NULL;
lastPath = "/";
slideShowDelay.Set(SlideShowDelay * 1000);
slideShow = SlideShow;
alwaysDisplayCaption = false;
NextPicture(slideShow && pictureEntry->IsDirectory() ? 1 : 0);
active++;
}
cPictureControl::~cPictureControl()
{
active--;
delete osd;
delete player;
delete pictures;
}
void cPictureControl::NextPicture(int Direction)
{
if (Direction) {
const cPictureEntry *pe = Direction > 0 ? pictureEntry->NextPicture() : pictureEntry->PrevPicture();
if (pe)
pictureEntry = pe;
}
if (pictureEntry) {
player->SetPicture(pictureEntry->Path());
DisplayCaption();
}
}
void cPictureControl::NextDirectory(int Direction)
{
// This only works reliable if a directory contains only subdirectories or pictures, not both!
if (Direction) {
const cPictureEntry *pe = Direction > 0 ? pictureEntry->Parent()->Entries()->Last()->NextPicture() : pictureEntry->Parent()->Entries()->First()->PrevPicture();
if (pe && Direction < 0)
pe = pe->Parent()->Entries()->First();
if (pe && pe != pictureEntry) {
pictureEntry = pe;
player->SetPicture(pictureEntry->Path());
DisplayCaption();
}
}
}
static void DrawTextOutlined(cOsd *Osd, int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font)
{
for (int dx = -1; dx <= 1; dx++) {
for (int dy = -1; dy <= 1; dy++) {
if (dx || dy)
Osd->DrawText(x + dx, y + dy, s, ColorBg, clrTransparent, Font);
}
}
Osd->DrawText(x, y, s, ColorFg, clrTransparent, Font);
}
void cPictureControl::DisplayCaption(void)
{
bool Force = false;
cString Path = pictureEntry->Path();
lastDisplayed = Path + strlen(pictures->Name()) + 1;
const char *p = strrchr(Path, '/');
const char *q = strrchr(lastPath, '/');
if (p && q) {
int lp = p - Path;
int lq = q - lastPath;
if (lp != lq || strncmp(lastPath, Path, lp)) {
lastPath = Path;
Force = true;
}
}
if (!alwaysDisplayCaption && !Force) {
DELETENULL(osd);
return;
}
const cFont *Font = cFont::GetFont(fontOsd);
int w = cOsd::OsdWidth();
int h = 2 * Font->Height();
if (!osd) {
osd = cOsdProvider::NewOsd(cOsd::OsdLeft(), cOsd::OsdTop() + cOsd::OsdHeight() - h, OSD_LEVEL_SUBTITLES);
tArea Areas[] = { { 0, 0, w - 1, h - 1, 8 } };
if (Setup.AntiAlias && osd->CanHandleAreas(Areas, sizeof(Areas) / sizeof(tArea)) == oeOk)
osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
else {
tArea Areas[] = { { 0, 0, w - 1, h - 1, 4 } };
osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
}
}
const char *Year = pictureEntry->Parent()->Parent() ? pictureEntry->Parent()->Parent()->Name() : "";
cString Description = HandleUnderscores(pictureEntry->Parent()->Name());
osd->DrawRectangle(0, 0, w - 1, h - 1, clrTransparent);
DrawTextOutlined(osd, 0, 0, Description, clrWhite, clrBlack, Font);
DrawTextOutlined(osd, 0, h / 2, Year, clrWhite, clrBlack, Font);
struct stat sb;
if (stat(Path, &sb) == 0) {
cString Time = DayDateTime(sb.st_mtime);
DrawTextOutlined(osd, w - Font->Width(Time), h / 2, Time, clrWhite, clrBlack, Font);
}
p++;
Path.Truncate(-4); // don't display the ".mpg" extension
DrawTextOutlined(osd, w - Font->Width(p), 0, p, clrWhite, clrBlack, Font);
osd->Flush();
}
cString cPictureControl::GetHeader(void)
{
return tr("Pictures");
}
eOSState cPictureControl::ProcessKey(eKeys Key)
{
switch (int(Key)) {
case kUp:
case kPlay: slideShowDelay.Set();
slideShow = true;
break;
case kDown:
case kPause: slideShow = false;
break;
case kLeft|k_Repeat:
case kLeft: NextPicture(-1);
slideShow = false;
break;
case kRight|k_Repeat:
case kRight: NextPicture(+1);
slideShow = false;
break;
case kOk: if (osd && !alwaysDisplayCaption)
DELETENULL(osd);
else {
alwaysDisplayCaption = !alwaysDisplayCaption;
DisplayCaption();
}
break;
case kGreen:
case kPrev: NextDirectory(-1);
slideShow = false;
break;
case kYellow:
case kNext: NextDirectory(+1);
slideShow = false;
break;
case kBlue:
case kStop: return osEnd;
case kBack: slideShow = false;
cRemote::CallPlugin(PLUGIN_NAME_I18N);
break;
default: break;
}
if (slideShow && slideShowDelay.TimedOut()) {
NextPicture(+1);
slideShowDelay.Set(SlideShowDelay * 1000);
}
return osContinue;
}
const char *cPictureControl::LastDisplayed(void)
{
return lastDisplayed;
}

View File

@ -0,0 +1,48 @@
/*
* player.h: A player for still pictures
*
* See the README file for copyright information and how to reach the author.
*
* $Id: player.h 2.1 2012/04/28 11:56:01 kls Exp $
*/
#ifndef _PLAYER_H
#define _PLAYER_H
#include <vdr/osd.h>
#include <vdr/player.h>
#include <vdr/tools.h>
#include "entry.h"
extern int SlideShowDelay;
cString HandleUnderscores(const char *s);
class cPicturePlayer;
class cPictureControl : public cControl {
private:
static int active;
static cString lastDisplayed;
cPictureEntry *pictures;
const cPictureEntry *pictureEntry;
cPicturePlayer *player;
cOsd *osd;
cString lastPath;
cTimeMs slideShowDelay;
bool slideShow;
bool alwaysDisplayCaption;
void NextPicture(int Direction);
void NextDirectory(int Direction);
void DisplayCaption(void);
virtual void Hide(void) {}
public:
cPictureControl(cPictureEntry *Pictures, const cPictureEntry *PictureEntry, bool SlideShow = false);
virtual ~cPictureControl();
virtual cString GetHeader(void);
virtual eOSState ProcessKey(eKeys Key);
static bool Active(void) { return active > 0; }
static const char *LastDisplayed(void);
};
#endif //_PLAYER_H

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Bilder"
msgid "A simple picture viewer"
msgstr "Ein einfacher Bildbetrachter"
msgid "Picture directory"
msgstr "Bilder-Verzeichnis"
msgid "Slide show delay (s)"
msgstr "Dia-Schau Wartezeit"
msgid "No picture directory has been defined!"
msgstr "Es wurde kein Bilder-Verzeichnis angegeben!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <artlov@gmail.com>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Pildid"
msgid "A simple picture viewer"
msgstr "Lihtne pildivaatur"
msgid "Picture directory"
msgstr "Pildikaust"
msgid "Slide show delay (s)"
msgstr "Slaidiseanssi viide (s)"
msgid "No picture directory has been defined!"
msgstr "Pildikaust on määramata!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Kuvat"
msgid "A simple picture viewer"
msgstr "Yksinkertainen kuvaselain"
msgid "Picture directory"
msgstr "Kuvahakemisto"
msgid "Slide show delay (s)"
msgstr "Diaesityksen viive (s)"
msgid "No picture directory has been defined!"
msgstr "Kuvahakemistoa ei ole määritelty!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Patrice Staudt <patrice.staudt@laposte.net>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-12 17:41+0100\n"
"Last-Translator: Patrice Staudt <patrice.staudt@laposte.net>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Images"
msgid "A simple picture viewer"
msgstr "Un simple visualiseur d'images"
msgid "Picture directory"
msgstr "Dossier des images"
msgid "Slide show delay (s)"
msgstr "Pause entre deux images (s)"
msgid "No picture directory has been defined!"
msgstr "Aucun dossier n'est définit!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Diego Pierotto <vdr-italian@tiscali.it>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-01-27 20:22+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Immagini"
msgid "A simple picture viewer"
msgstr "Un semplice visualizzatore immagini"
msgid "Picture directory"
msgstr "Directory immagini"
msgid "Slide show delay (s)"
msgstr "Ritardo diapositive (s)"
msgid "No picture directory has been defined!"
msgstr "Nessuna directory immagini impostata!"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Valdemaras Pipiras <varas@ambernet.lt>, 2009
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2009-12-08 12:41+0100\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>, 2009\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Pictures"
msgstr "Nuotraukos"
msgid "A simple picture viewer"
msgstr "Paprasta nuotraukų naršyklė"
msgid "Picture directory"
msgstr "Nuotraukų katalogas"
msgid "Slide show delay (s)"
msgstr "Skaidrių peržiūros užlaikymas (s)"
msgid "No picture directory has been defined!"
msgstr "Nenustatytas nuotraukų katalogas!"

View File

@ -0,0 +1,34 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Tomasz Maciej Nowak <tmn505@gmail.com>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2018-02-19 00:48+0100\n"
"PO-Revision-Date: 2018-02-19 00:53+0100\n"
"Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.6\n"
msgid "Pictures"
msgstr "Zdjęcia"
msgid "A simple picture viewer"
msgstr "Prosta przeglądarka zdjęć"
msgid "Picture directory"
msgstr "Katalog ze zdjęciami"
msgid "Slide show delay (s)"
msgstr "Pokaz slajdów opóźnienie (s)"
msgid "No picture directory has been defined!"
msgstr "Nie zdefiniowano katalogu ze zdjęciami!"

View File

@ -0,0 +1,34 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Alexander Gross <Bikalexander@gmail.com>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2008-03-14 00:45+0100\n"
"Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n"
msgid "Pictures"
msgstr "¸×ÞÑàÐÖÕÝØï"
msgid "A simple picture viewer"
msgstr "¿àÞáâÐï ßàÞÓàÐÜÜÐ ßàÞáÜÞâàÐ Ø×ÞÑàÐÖÕÝØÙ"
msgid "Picture directory"
msgstr "ºÐâÐÛÞÓ Ø×ÞÑàÐÖÕÝØÙ"
msgid "Slide show delay (s)"
msgstr "·ÐÔÕàÖÚÐ áÛÐÙÔ-èÞã (áÕÚ)"
msgid "No picture directory has been defined!"
msgstr "½Õ ÞßàÕÔÕÛñÝ ÚÐâÐÛÞÓ Ø×ÞÑàÐÖÕÝØÙ!"

View File

@ -0,0 +1,32 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-pictures 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2012-12-18 12:57+0100\n"
"PO-Revision-Date: 2009-09-30 12:54+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Pictures"
msgstr "Obrázky"
msgid "A simple picture viewer"
msgstr "Jednoduchý prehliadaè obrázkov"
msgid "Picture directory"
msgstr "Umiestnenie obrázkov"
msgid "Slide show delay (s)"
msgstr "Oneskorenie prezentácia (s)"
msgid "No picture directory has been defined!"
msgstr "Neboli preukázané ¾iadne fotky v adresári!"

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,39 @@
VDR Plugin 'servicedemo' Revision History
-----------------------------------------
2005-08-21: Version 0.1.1
- Initial revision.
2007-08-15: Version 0.1.2
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
2012-12-27: Version 0.1.3
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.1.4
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2018-04-15: Version 2.4.0
- Official release.
2021-12-27: Version 2.6.0
- Official release.

View File

@ -0,0 +1,99 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN1 = svccli
PLUGIN2 = svcsvr
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN1).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = svcintf-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN1).o $(PLUGIN2).o
### The main target:
all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Targets:
libvdr-$(PLUGIN1).so: $(PLUGIN1).o
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@
libvdr-$(PLUGIN2).so: $(PLUGIN2).o
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@
install-lib: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
install -D libvdr-$(PLUGIN1).so $(DESTDIR)$(LIBDIR)/libvdr-$(PLUGIN1).so.$(APIVERSION)
install -D libvdr-$(PLUGIN2).so $(DESTDIR)$(LIBDIR)/libvdr-$(PLUGIN2).so.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -0,0 +1,20 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Udo Richter <udo_richter@gmx.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description:
Demonstration of how plugins can communicate with each other.
Run VDR with '-Psvcsvr -Psvccli' and select the main menu
option "Service demo" to run the demo.

View File

@ -0,0 +1,90 @@
/*
* svccli.c: Sample service client plugin
*
* See the README file for copyright information and how to reach the author.
*
* $Id: svccli.c 4.1 2018/04/10 13:00:53 kls Exp $
*/
#include <stdlib.h>
#include <vdr/interface.h>
#include <vdr/plugin.h>
static const char *VERSION = "2.4.0";
static const char *DESCRIPTION = "Service demo client";
static const char *MAINMENUENTRY = "Service demo";
class cPluginSvcCli : public cPlugin {
public:
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual const char *MainMenuEntry(void) { return MAINMENUENTRY; }
virtual cOsdObject *MainMenuAction(void);
virtual bool Service(const char *Id, void *Data);
};
struct ReportBoredPlugin_v1_0 {
cPlugin *BoredPlugin;
};
struct AddService_v1_0 {
int a, b;
int sum;
};
// --- cPluginSvcCli ---------------------------------------------------------
cOsdObject *cPluginSvcCli::MainMenuAction(void)
{
char s[128];
cPlugin *p;
// Inform server plugin that we are bored
// (directed communication)
ReportBoredPlugin_v1_0 rbp;
rbp.BoredPlugin = this;
p = cPluginManager::GetPlugin("svcsvr");
if (p)
p->Service("ReportBoredPlugin-v1.0", &rbp);
// See if any plugin can add
// (detect capability)
p = cPluginManager::CallFirstService("AddService-v1.0", NULL);
if (p) {
snprintf(s, sizeof(s), "Plugin %s can add", p->Name());
Interface->Confirm(s);
}
// Perform add
// (use general service)
AddService_v1_0 adds;
adds.a = 1;
adds.b = 1;
if (cPluginManager::CallFirstService("AddService-v1.0", &adds)) {
snprintf(s, sizeof(s), "Plugin thinks that 1+1=%i", adds.sum);
Interface->Confirm(s);
}
// Inform other plugins that we are bored
// (broadcast)
rbp.BoredPlugin = this;
cPluginManager::CallAllServices("ReportBoredPlugin-v1.0", &rbp);
return NULL;
}
bool cPluginSvcCli::Service(const char *Id, void *Data)
{
if (strcmp(Id, "ReportBoredPlugin-v1.0") == 0) {
if (Data) {
ReportBoredPlugin_v1_0 *rbp = (ReportBoredPlugin_v1_0*)Data;
char s[128];
snprintf(s, sizeof(s), "Plugin %s informed client that it is bored.", rbp->BoredPlugin->Name());
Interface->Confirm(s);
}
return true;
}
return false;
}
VDRPLUGINCREATOR(cPluginSvcCli); // Don't touch this!

View File

@ -0,0 +1,57 @@
/*
* svcsvr.c: Sample service server plugin
*
* See the README file for copyright information and how to reach the author.
*
* $Id: svcsvr.c 4.1 2018/04/10 13:00:57 kls Exp $
*/
#include <stdlib.h>
#include <vdr/interface.h>
#include <vdr/plugin.h>
static const char *VERSION = "2.4.0";
static const char *DESCRIPTION = "Service demo server";
class cPluginSvcSvr : public cPlugin {
public:
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual bool Service(const char *Id, void *Data);
};
struct ReportBoredPlugin_v1_0 {
cPlugin *BoredPlugin;
};
struct AddService_v1_0 {
int a, b;
int sum;
};
// --- cPluginSvcSvr ---------------------------------------------------------
bool cPluginSvcSvr::Service(const char *Id, void *Data)
{
if (strcmp(Id,"ReportBoredPlugin-v1.0") == 0) {
if (Data) {
ReportBoredPlugin_v1_0 *rbp = (ReportBoredPlugin_v1_0*)Data;
char s[128];
snprintf(s, sizeof(s), "Plugin %s informed server that it is bored.", rbp->BoredPlugin->Name());
Interface->Confirm(s);
}
return true;
}
if (strcmp(Id,"AddService-v1.0") == 0) {
if (Data) {
AddService_v1_0 *data = (AddService_v1_0*)Data;
data->sum = data->a + data->b;
}
return true;
}
return false;
}
VDRPLUGINCREATOR(cPluginSvcSvr); // Don't touch this!

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,163 @@
VDR Plugin 'skincurses' Revision History
----------------------------------------
2004-05-31: Version 0.0.1
- Initial revision.
2004-05-31: Version 0.0.2
- Fixed some default parameters.
2005-01-02: Version 0.0.3
- Made several functions threadsafe.
- New audio track display.
2005-05-16: Version 0.0.4
- New "recording info" display.
2005-10-01:
- Added a note about using this skin to the README file.
2005-11-26: Version 0.0.5
- Fixed SetProgress() in case Total is 0.
2006-04-14: Version 0.0.6
- Added a missing "Key$" in skincurses.c.
2006-06-03: Version 0.0.7
- Fixed handling tabbed item display.
- When the 'skincurses' plugin is loaded, it automatically sets the 'curses'
skin as the current one.
2006-09-10: Version 0.0.8
- The size of the OSD is now adjusted to the size of the console window.
2007-06-15: Version 0.1.0
- Implemented UTF-8 handling.
2007-06-23: Version 0.1.1
- Fixed a name clash with the new cOsd position functions.
2007-07-20: Version 0.1.2
- Fixed clearing color buttons.
2007-08-15: Version 0.1.3
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
- Added internationalization.
2007-08-26: Version 0.1.4
- Adapted to the new Level parameter of cOsd.
2008-01-19:
- Updated the Makefile of the skincurses plugin (thanks to Rolf Ahrenberg).
2008-02-15: Version 0.1.5
- Using cString::sprintf() instead of asprintf().
- Implemented cSkinCursesDisplayMenu::SetScrollbar().
2008-02-23: Version 0.1.6
- Revised the fix of calculating the scrollbar height in the skins. The scrollbar
handle now always has a height that is at least the width of the scrollbar.
2008-03-14: Version 0.1.7
- Added Russian translations (thanks to Alexander Gross).
2010-01-03: Version 0.1.8
- Displaying "genre" in event descriptions.
- Displaying "parental rating" in event descriptions.
2010-02-28: Version 0.1.9
- Added Lithuanian language translations (thanks to Valdemaras Pipiras).
2011-05-15: Version 0.1.10
- Avoiding a gcc 4.6 compiler error (thanks to Tobias Grimm).
2012-03-11: Version 0.1.11
- Adapted menu column widths of 'skincurses' to the wider HD OSD sizes.
2012-04-23: Version 0.1.12
- Now displaying disk usage in the title of the main and "Recordings" menu,
which is no longer done by the VDR core.
2012-12-27: Version 0.1.13
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.1.14
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-03: Version 0.1.15
- The "Recording info" page now displays the name of the channel (if available)
from which this recording was taken.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-08: Version 2.1.2
- Added a missing trailing blank in some translations.
2015-02-19: Version 2.2.0
- Official release.
2016-12-22: Version 2.3.2
- Added cFont::Width(void) to get the default character width and allow stretched
font drawing in high level OSDs (dummy for skincurses).
- Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems
(reported by Sergey Chernyavskiy).
2018-04-15: Version 2.4.0
- Official release.
2019-03-12: Version 2.4.1
- Changes for ncurses version 6 (thanks to Ulrick Eckhardt).
2020-05-11: Version 2.4.2
- Fixed 'Changes for ncurses version 6'.
- Reacting to changes in screen size.
- Simplified color handling.
- Using 'stdscr' directly instead of an additional window.
2021-07-01: Version 2.4.3
- The number of errors (if any) of a recording is now displayed in the recording's
Info menu.
2021-12-27: Version 2.6.0
- Official release.

View File

@ -0,0 +1,128 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = skincurses
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE) i18n
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Internationalization (I18N):
PODIR = po
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po
@echo MO $@
$(Q)msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
@echo GT $@
$(Q)xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot)
@echo PO $@
$(Q)msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@
$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
install -D -m644 $< $@
.PHONY: i18n
i18n: $(I18Nmo) $(I18Npot)
install-i18n: $(I18Nmsgs)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib install-i18n
dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

View File

@ -0,0 +1,28 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description:
The 'skincurses' plugin implements a VDR skin that works in a
shell window, using only plain text output. It re-implements
what used to be available by compiling VDR versions before 1.3.7
with the DEBUG_OSD macro set.
To activate this skin you can either select it in the Setup/OSD
menu, or put the line
OSDSkin = curses
into your 'setup.conf' file before starting VDR. Make sure this
is the only OSDSkin line in that file.

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2007
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2007-08-15 16:07+0200\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Eine reine Text-Oberfläche"
msgid "errors"
msgstr "Fehler"
msgid "Key$Mute"
msgstr "Stumm"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Lautstärke "
msgid "Text mode"
msgstr "Text-Modus"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov <artlov@gmail.com>, 2015
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2007-08-14 20:48+0300\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Tekstipõhine kest"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Hääletu"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Helitugevus "
msgid "Text mode"
msgstr "Tekst"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>, 2007
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2007-08-14 20:48+0300\n"
"Last-Translator: Rolf Ahrenberg <Rolf.Ahrenberg@sci.fi>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Tekstipohjainen ulkoasu"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Mykistys"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Äänenvoimakkuus "
msgid "Text mode"
msgstr "Teksti"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Diego Pierotto <vdr-italian@tiscali.it>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2008-01-27 20:35+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Una interfaccia solo testo"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Muto"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Volume "
msgid "Text mode"
msgstr "Modalità testo"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Valdemaras Pipiras <varas@ambernet.lt>, 2010
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2010-02-22 18:18+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Tekstinis apvalkalas"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Išjungti garsą"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Garsas "
msgid "Text mode"
msgstr "Tekstinis ręžimas"

View File

@ -0,0 +1,35 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Tomasz Maciej Nowak <tmn505@gmail.com>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2018-02-19 01:02+0100\n"
"Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.6\n"
msgid "A text only skin"
msgstr "Skóra tekstowa"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Wycisz"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Głośność "
msgid "Text mode"
msgstr "Tryb tekstowy"

View File

@ -0,0 +1,34 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Alexander Gross <Bikalexander@gmail.com>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2008-03-14 00:21+0100\n"
"Last-Translator: Alexander Gross <Bikalexander@gmail.com>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
msgid "A text only skin"
msgstr "¿àÞáâÞ âÕÚáâÞÒëÙ ØÝâÕàäÕÙá"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "²ëÚÛ. ÓàÞÜÚÞáâì"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "³àÞÜÚÞáâì "
msgid "Text mode"
msgstr "ÀÕÖØÜ âÕÚáâÐ"

View File

@ -0,0 +1,33 @@
# VDR plugin language source file.
# Copyright (C) 2021 Klaus Schmidinger <vdr@tvdr.de>
# This file is distributed under the same license as the VDR package.
# Klaus Schmidinger <vdr@tvdr.de>, 2007
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-skincurses 2.6.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2021-07-01 17:28+0200\n"
"PO-Revision-Date: 2009-09-30 12:52+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "A text only skin"
msgstr "Iba text vzhµadu"
msgid "errors"
msgstr ""
msgid "Key$Mute"
msgstr "Stlmi» zvuk"
#. TRANSLATORS: note the trailing blank!
msgid "Volume "
msgstr "Hlasitos» "
msgid "Text mode"
msgstr "Textový re¾im"

View File

@ -0,0 +1,873 @@
/*
* skincurses.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: skincurses.c 5.1 2021/07/01 15:40:46 kls Exp $
*/
#include <ncurses.h>
#include <vdr/osd.h>
#include <vdr/plugin.h>
#include <vdr/skins.h>
#include <vdr/videodir.h>
static const char *VERSION = "2.4.3";
static const char *DESCRIPTION = trNOOP("A text only skin");
static const char *MAINMENUENTRY = NULL;
// --- cCursesFont -----------------------------------------------------------
class cCursesFont : public cFont {
public:
virtual int Width(void) const { return 1; }
virtual int Width(uint c) const { return 1; }
virtual int Width(const char *s) const { return s ? Utf8StrLen(s) : 0; }
virtual int Height(void) const { return 1; }
virtual void DrawText(cBitmap *Bitmap, int x, int y, const char *s, tColor ColorFg, tColor ColorBg, int Width) const {}
virtual void DrawText(cPixmap *Pixmap, int x, int y, const char *s, tColor ColorFg, tColor ColorBg, int Width) const {}
};
static const cCursesFont Font = cCursesFont(); // w/o the '= cCursesFont()' gcc 4.6 complains - can anybody explain why this is necessary?
// --- cCursesOsd ------------------------------------------------------------
#define clrBackground COLOR_BLACK
#define clrTransparent clrBackground
#define clrBlack clrBackground
#define clrRed COLOR_RED
#define clrGreen COLOR_GREEN
#define clrYellow COLOR_YELLOW
#define clrBlue COLOR_BLUE
#define clrMagenta COLOR_MAGENTA
#define clrCyan COLOR_CYAN
#define clrWhite COLOR_WHITE
static int clrMessage[] = {
clrBlack,
clrCyan,
clrBlack,
clrGreen,
clrBlack,
clrYellow,
clrWhite,
clrRed
};
static int ScOsdWidth = 50;
static int ScOsdHeight = 20;
class cCursesOsd : public cOsd {
private:
WINDOW *savedRegion;
cVector<int> colorPairs;
void SetColor(int colorFg, int colorBg = clrBackground);
public:
cCursesOsd(int Left, int Top);
virtual ~cCursesOsd();
virtual void SaveRegion(int x1, int y1, int x2, int y2);
virtual void RestoreRegion(void);
virtual void DrawText(int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font, int Width = 0, int Height = 0, int Alignment = taDefault);
virtual void DrawRectangle(int x1, int y1, int x2, int y2, tColor Color);
virtual void Flush(void);
};
cCursesOsd::cCursesOsd(int Left, int Top)
:cOsd(Left, Top, 0)
{
savedRegion = NULL;
start_color();
leaveok(stdscr, true);
refresh(); // to react on changes to screen size
int begy, begx;
int maxy, maxx;
getmaxyx(stdscr, maxy, maxx);
getbegyx(stdscr, begy, begx);
ScOsdWidth = maxx - begx;
ScOsdHeight = maxy - begy;
}
cCursesOsd::~cCursesOsd()
{
erase();
Flush();
}
void cCursesOsd::SetColor(int colorFg, int colorBg)
{
int color = (colorBg << 16) | colorFg | 0x80000000;
int i = colorPairs.IndexOf(color);
if (i < 0) {
colorPairs.Append(color);
i = colorPairs.Size() - 1;
init_pair(i + 1, colorFg, colorBg);
}
attrset(COLOR_PAIR(i + 1));
}
void cCursesOsd::SaveRegion(int x1, int y1, int x2, int y2)
{
if (savedRegion) {
delwin(savedRegion);
savedRegion = NULL;
}
savedRegion = newwin(y2 - y1 + 1, x2 - x1 + 1, y1, x1);
if (savedRegion)
copywin(stdscr, savedRegion, y1, x1, 0, 0, y2 - y1, x2 - x1, false);
}
void cCursesOsd::RestoreRegion(void)
{
if (savedRegion) {
overwrite(savedRegion, stdscr);
delwin(savedRegion);
savedRegion = NULL;
}
}
void cCursesOsd::DrawText(int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font, int Width, int Height, int Alignment)
{
int w = Font->Width(s);
int h = Font->Height();
if (Width || Height) {
int cw = Width ? Width : w;
int ch = Height ? Height : h;
DrawRectangle(x, y, x + cw - 1, y + ch - 1, ColorBg);
if (Width) {
if ((Alignment & taLeft) != 0)
;
else if ((Alignment & taRight) != 0) {
if (w < Width)
x += Width - w;
}
else { // taCentered
if (w < Width)
x += (Width - w) / 2;
}
}
if (Height) {
if ((Alignment & taTop) != 0)
;
else if ((Alignment & taBottom) != 0) {
if (h < Height)
y += Height - h;
}
else { // taCentered
if (h < Height)
y += (Height - h) / 2;
}
}
}
SetColor(ColorFg, ColorBg);
mvaddnstr(y, x, s, Width ? Width : ScOsdWidth - x);
}
void cCursesOsd::DrawRectangle(int x1, int y1, int x2, int y2, tColor Color)
{
SetColor(Color, Color);
int dx = x2 - x1;
int dy = y2 - y1;
if (dx >= dy) {
for (int y = y1; y <= y2; y++)
mvhline(y, x1, ' ', dx + 1);
}
else {
for (int x = x1; x <= x2; x++)
mvvline(y1, x, ' ', dy + 1);
}
}
void cCursesOsd::Flush(void)
{
refresh();
}
// --- cSkinCursesDisplayChannel ---------------------------------------------
class cSkinCursesDisplayChannel : public cSkinDisplayChannel {
private:
cOsd *osd;
int timeWidth;
bool message;
public:
cSkinCursesDisplayChannel(bool WithInfo);
virtual ~cSkinCursesDisplayChannel();
virtual void SetChannel(const cChannel *Channel, int Number);
virtual void SetEvents(const cEvent *Present, const cEvent *Following);
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void Flush(void);
};
cSkinCursesDisplayChannel::cSkinCursesDisplayChannel(bool WithInfo)
{
int Lines = WithInfo ? 5 : 1;
message = false;
osd = new cCursesOsd(0, Setup.ChannelInfoPos ? 0 : ScOsdHeight - Lines);
timeWidth = strlen("00:00");
osd->DrawRectangle(0, 0, ScOsdWidth - 1, Lines - 1, clrBackground);
}
cSkinCursesDisplayChannel::~cSkinCursesDisplayChannel()
{
delete osd;
}
void cSkinCursesDisplayChannel::SetChannel(const cChannel *Channel, int Number)
{
osd->DrawRectangle(0, 0, ScOsdWidth - 1, 0, clrBackground);
osd->DrawText(0, 0, ChannelString(Channel, Number), clrWhite, clrBackground, &Font);
}
void cSkinCursesDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following)
{
osd->DrawRectangle(0, 1, timeWidth - 1, 4, clrRed);
osd->DrawRectangle(timeWidth, 1, ScOsdWidth - 1, 4, clrBackground);
for (int i = 0; i < 2; i++) {
const cEvent *e = !i ? Present : Following;
if (e) {
osd->DrawText( 0, 2 * i + 1, e->GetTimeString(), clrWhite, clrRed, &Font);
osd->DrawText(timeWidth + 1, 2 * i + 1, e->Title(), clrCyan, clrBackground, &Font);
osd->DrawText(timeWidth + 1, 2 * i + 2, e->ShortText(), clrYellow, clrBackground, &Font);
}
}
}
void cSkinCursesDisplayChannel::SetMessage(eMessageType Type, const char *Text)
{
if (Text) {
osd->SaveRegion(0, 0, ScOsdWidth - 1, 0);
osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
message = true;
}
else {
osd->RestoreRegion();
message = false;
}
}
void cSkinCursesDisplayChannel::Flush(void)
{
if (!message) {
cString date = DayDateTime();
osd->DrawText(ScOsdWidth - Utf8StrLen(date), 0, date, clrWhite, clrBackground, &Font);
}
osd->Flush();
}
// --- cSkinCursesDisplayMenu ------------------------------------------------
class cSkinCursesDisplayMenu : public cSkinDisplayMenu {
private:
cOsd *osd;
cString title;
int lastDiskUsageState;
void DrawTitle(void);
void DrawScrollbar(int Total, int Offset, int Shown, int Top, int Height, bool CanScrollUp, bool CanScrollDown);
void SetTextScrollbar(void);
public:
cSkinCursesDisplayMenu(void);
virtual ~cSkinCursesDisplayMenu();
virtual void Scroll(bool Up, bool Page);
virtual int MaxItems(void);
virtual void Clear(void);
virtual void SetTitle(const char *Title);
virtual void SetButtons(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void SetItem(const char *Text, int Index, bool Current, bool Selectable);
virtual void SetScrollbar(int Total, int Offset);
virtual void SetEvent(const cEvent *Event);
virtual void SetRecording(const cRecording *Recording);
virtual void SetText(const char *Text, bool FixedFont);
virtual const cFont *GetTextAreaFont(bool FixedFont) const { return &Font; }
virtual void Flush(void);
};
cSkinCursesDisplayMenu::cSkinCursesDisplayMenu(void)
{
osd = new cCursesOsd(0, 0);
lastDiskUsageState = -1;
osd->DrawRectangle(0, 0, ScOsdWidth - 1, ScOsdHeight - 1, clrBackground);
}
cSkinCursesDisplayMenu::~cSkinCursesDisplayMenu()
{
delete osd;
}
void cSkinCursesDisplayMenu::DrawScrollbar(int Total, int Offset, int Shown, int Top, int Height, bool CanScrollUp, bool CanScrollDown)
{
if (Total > 0 && Total > Shown) {
int yt = Top;
int yb = yt + Height;
int st = yt;
int sb = yb;
int th = max(int((sb - st) * double(Shown) / Total + 0.5), 1);
int tt = min(int(st + (sb - st) * double(Offset) / Total + 0.5), sb - th);
int tb = min(tt + th, sb);
int xl = ScOsdWidth - 1;
osd->DrawRectangle(xl, st, xl, sb - 1, clrWhite);
osd->DrawRectangle(xl, tt, xl, tb - 1, clrCyan);
}
}
void cSkinCursesDisplayMenu::SetTextScrollbar(void)
{
if (textScroller.CanScroll())
DrawScrollbar(textScroller.Total(), textScroller.Offset(), textScroller.Shown(), textScroller.Top(), textScroller.Height(), textScroller.CanScrollUp(), textScroller.CanScrollDown());
}
void cSkinCursesDisplayMenu::Scroll(bool Up, bool Page)
{
cSkinDisplayMenu::Scroll(Up, Page);
SetTextScrollbar();
}
int cSkinCursesDisplayMenu::MaxItems(void)
{
return ScOsdHeight - 4;
}
void cSkinCursesDisplayMenu::Clear(void)
{
osd->DrawRectangle(0, 1, ScOsdWidth - 1, ScOsdHeight - 2, clrBackground);
textScroller.Reset();
}
void cSkinCursesDisplayMenu::DrawTitle(void)
{
bool WithDisk = MenuCategory() == mcMain || MenuCategory() == mcRecording;
osd->DrawText(0, 0, WithDisk ? cString::sprintf("%s - %s", *title, *cVideoDiskUsage::String()) : title, clrBlack, clrCyan, &Font, ScOsdWidth);
}
void cSkinCursesDisplayMenu::SetTitle(const char *Title)
{
title = Title;
DrawTitle();
}
void cSkinCursesDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue)
{
int w = ScOsdWidth;
int t0 = 0;
int t1 = 0 + w / 4;
int t2 = 0 + w / 2;
int t3 = w - w / 4;
int t4 = w;
int y = ScOsdHeight - 1;
osd->DrawText(t0, y, Red, clrWhite, Red ? clrRed : clrBackground, &Font, t1 - t0, 0, taCenter);
osd->DrawText(t1, y, Green, clrBlack, Green ? clrGreen : clrBackground, &Font, t2 - t1, 0, taCenter);
osd->DrawText(t2, y, Yellow, clrBlack, Yellow ? clrYellow : clrBackground, &Font, t3 - t2, 0, taCenter);
osd->DrawText(t3, y, Blue, clrWhite, Blue ? clrBlue : clrBackground, &Font, t4 - t3, 0, taCenter);
}
void cSkinCursesDisplayMenu::SetMessage(eMessageType Type, const char *Text)
{
if (Text)
osd->DrawText(0, ScOsdHeight - 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
else
osd->DrawRectangle(0, ScOsdHeight - 2, ScOsdWidth - 1, ScOsdHeight - 2, clrBackground);
}
void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable)
{
int y = 2 + Index;
int ColorFg, ColorBg;
if (Current) {
ColorFg = clrBlack;
ColorBg = clrCyan;
}
else {
ColorFg = Selectable ? clrWhite : clrCyan;
ColorBg = clrBackground;
}
for (int i = 0; i < MaxTabs; i++) {
const char *s = GetTabbedText(Text, i);
if (s) {
int xt = Tab(i) / AvgCharWidth();// Tab() is in "pixel" - see also skins.c!!!
osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, ScOsdWidth - 2 - xt);
}
if (!Tab(i + 1))
break;
}
SetEditableWidth(ScOsdWidth - 2 - Tab(1) / AvgCharWidth()); // Tab() is in "pixel" - see also skins.c!!!
}
void cSkinCursesDisplayMenu::SetScrollbar(int Total, int Offset)
{
DrawScrollbar(Total, Offset, MaxItems(), 2, MaxItems(), Offset > 0, Offset + MaxItems() < Total);
}
void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
{
if (!Event)
return;
int y = 2;
cTextScroller ts;
cString t = cString::sprintf("%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
if (Event->Vps() && Event->Vps() != Event->StartTime()) {
cString buffer = cString::sprintf(" VPS: %s", *Event->GetVpsString());
osd->DrawText(ScOsdWidth - Utf8StrLen(buffer), y, buffer, clrBlack, clrYellow, &Font);
}
y += ts.Height();
if (Event->ParentalRating()) {
cString buffer = cString::sprintf(" %s ", *Event->GetParentalRatingString());
osd->DrawText(ScOsdWidth - Utf8StrLen(buffer), y, buffer, clrBlack, clrYellow, &Font);
}
y += 1;
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Event->Title(), &Font, clrCyan, clrBackground);
y += ts.Height();
if (!isempty(Event->ShortText())) {
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Event->ShortText(), &Font, clrYellow, clrBackground);
y += ts.Height();
}
for (int i = 0; Event->Contents(i); i++) {
const char *s = Event->ContentToString(Event->Contents(i));
if (!isempty(s)) {
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, s, &Font, clrYellow, clrBackground);
y += 1;
}
}
y += 1;
if (!isempty(Event->Description())) {
textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Event->Description(), &Font, clrCyan, clrBackground);
SetTextScrollbar();
}
}
void cSkinCursesDisplayMenu::SetRecording(const cRecording *Recording)
{
if (!Recording)
return;
const cRecordingInfo *Info = Recording->Info();
int y = 2;
cTextScroller ts;
cString t = cString::sprintf("%s %s %s", *DateString(Recording->Start()), *TimeString(Recording->Start()), Info->ChannelName() ? Info->ChannelName() : "");
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
y += ts.Height();
int xt = ScOsdWidth;
if (Info->GetEvent()->ParentalRating()) {
cString buffer = cString::sprintf(" %s ", *Info->GetEvent()->GetParentalRatingString());
int w = Utf8StrLen(buffer);
osd->DrawText(xt - w, y, buffer, clrBlack, clrYellow, &Font);
xt -= w + 1;
}
if (Info->Errors() > 0) {
cString buffer = cString::sprintf(" %d %s ", Info->Errors(), tr("errors"));
int w = Utf8StrLen(buffer);
osd->DrawText(xt - w, y, buffer, clrBlack, clrYellow, &Font);
xt -= w + 1;
}
y += 1;
const char *Title = Info->Title();
if (isempty(Title))
Title = Recording->Name();
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Title, &Font, clrCyan, clrBackground);
y += ts.Height();
if (!isempty(Info->ShortText())) {
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, Info->ShortText(), &Font, clrYellow, clrBackground);
y += ts.Height();
}
for (int i = 0; Info->GetEvent()->Contents(i); i++) {
const char *s = Info->GetEvent()->ContentToString(Info->GetEvent()->Contents(i));
if (!isempty(s)) {
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, s, &Font, clrYellow, clrBackground);
y += 1;
}
}
y += 1;
if (!isempty(Info->Description())) {
textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Info->Description(), &Font, clrCyan, clrBackground);
SetTextScrollbar();
}
}
void cSkinCursesDisplayMenu::SetText(const char *Text, bool FixedFont)
{
textScroller.Set(osd, 0, 2, ScOsdWidth - 2, ScOsdHeight - 4, Text, &Font, clrWhite, clrBackground);
SetTextScrollbar();
}
void cSkinCursesDisplayMenu::Flush(void)
{
if (cVideoDiskUsage::HasChanged(lastDiskUsageState))
DrawTitle();
cString date = DayDateTime();
osd->DrawText(ScOsdWidth - Utf8StrLen(date) - 2, 0, date, clrBlack, clrCyan, &Font);
osd->Flush();
}
// --- cSkinCursesDisplayReplay ----------------------------------------------
class cSkinCursesDisplayReplay : public cSkinDisplayReplay {
private:
cOsd *osd;
bool message;
public:
cSkinCursesDisplayReplay(bool ModeOnly);
virtual ~cSkinCursesDisplayReplay();
virtual void SetTitle(const char *Title);
virtual void SetMode(bool Play, bool Forward, int Speed);
virtual void SetProgress(int Current, int Total);
virtual void SetCurrent(const char *Current);
virtual void SetTotal(const char *Total);
virtual void SetJump(const char *Jump);
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void Flush(void);
};
cSkinCursesDisplayReplay::cSkinCursesDisplayReplay(bool ModeOnly)
{
message = false;
osd = new cCursesOsd(0, ScOsdHeight - 3);
osd->DrawRectangle(0, 0, ScOsdWidth - 1, 2, ModeOnly ? clrTransparent : clrBackground);
}
cSkinCursesDisplayReplay::~cSkinCursesDisplayReplay()
{
delete osd;
}
void cSkinCursesDisplayReplay::SetTitle(const char *Title)
{
osd->DrawText(0, 0, Title, clrWhite, clrBackground, &Font, ScOsdWidth);
}
void cSkinCursesDisplayReplay::SetMode(bool Play, bool Forward, int Speed)
{
if (Setup.ShowReplayMode) {
const char *Mode;
if (Speed == -1) Mode = Play ? " > " : " || ";
else if (Play) Mode = Forward ? " X>> " : " <<X ";
else Mode = Forward ? " X|> " : " <|X ";
char buf[16];
strn0cpy(buf, Mode, sizeof(buf));
char *p = strchr(buf, 'X');
if (p)
*p = Speed > 0 ? '1' + Speed - 1 : ' ';
SetJump(buf);
}
}
void cSkinCursesDisplayReplay::SetProgress(int Current, int Total)
{
int p = Total > 0 ? ScOsdWidth * Current / Total : 0;
osd->DrawRectangle(0, 1, p, 1, clrGreen);
osd->DrawRectangle(p, 1, ScOsdWidth, 1, clrWhite);
}
void cSkinCursesDisplayReplay::SetCurrent(const char *Current)
{
osd->DrawText(0, 2, Current, clrWhite, clrBackground, &Font, Utf8StrLen(Current) + 3);
}
void cSkinCursesDisplayReplay::SetTotal(const char *Total)
{
osd->DrawText(ScOsdWidth - Utf8StrLen(Total), 2, Total, clrWhite, clrBackground, &Font);
}
void cSkinCursesDisplayReplay::SetJump(const char *Jump)
{
osd->DrawText(ScOsdWidth / 4, 2, Jump, clrWhite, clrBackground, &Font, ScOsdWidth / 2, 0, taCenter);
}
void cSkinCursesDisplayReplay::SetMessage(eMessageType Type, const char *Text)
{
if (Text) {
osd->SaveRegion(0, 2, ScOsdWidth - 1, 2);
osd->DrawText(0, 2, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
message = true;
}
else {
osd->RestoreRegion();
message = false;
}
}
void cSkinCursesDisplayReplay::Flush(void)
{
osd->Flush();
}
// --- cSkinCursesDisplayVolume ----------------------------------------------
class cSkinCursesDisplayVolume : public cSkinDisplayVolume {
private:
cOsd *osd;
public:
cSkinCursesDisplayVolume(void);
virtual ~cSkinCursesDisplayVolume();
virtual void SetVolume(int Current, int Total, bool Mute);
virtual void Flush(void);
};
cSkinCursesDisplayVolume::cSkinCursesDisplayVolume(void)
{
osd = new cCursesOsd(0, ScOsdHeight - 1);
}
cSkinCursesDisplayVolume::~cSkinCursesDisplayVolume()
{
delete osd;
}
void cSkinCursesDisplayVolume::SetVolume(int Current, int Total, bool Mute)
{
if (Mute) {
osd->DrawRectangle(0, 0, ScOsdWidth - 1, 0, clrTransparent);
osd->DrawText(0, 0, tr("Key$Mute"), clrGreen, clrBackground, &Font);
}
else {
// TRANSLATORS: note the trailing blank!
const char *Prompt = tr("Volume ");
int l = Utf8StrLen(Prompt);
int p = (ScOsdWidth - l) * Current / Total;
osd->DrawText(0, 0, Prompt, clrGreen, clrBackground, &Font);
osd->DrawRectangle(l, 0, l + p - 1, 0, clrGreen);
osd->DrawRectangle(l + p, 0, ScOsdWidth - 1, 0, clrWhite);
}
}
void cSkinCursesDisplayVolume::Flush(void)
{
osd->Flush();
}
// --- cSkinCursesDisplayTracks ----------------------------------------------
class cSkinCursesDisplayTracks : public cSkinDisplayTracks {
private:
cOsd *osd;
int itemsWidth;
int currentIndex;
void SetItem(const char *Text, int Index, bool Current);
public:
cSkinCursesDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
virtual ~cSkinCursesDisplayTracks();
virtual void SetTrack(int Index, const char * const *Tracks);
virtual void SetAudioChannel(int AudioChannel) {}
virtual void Flush(void);
};
cSkinCursesDisplayTracks::cSkinCursesDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks)
{
currentIndex = -1;
itemsWidth = Font.Width(Title);
for (int i = 0; i < NumTracks; i++)
itemsWidth = max(itemsWidth, Font.Width(Tracks[i]));
itemsWidth = min(itemsWidth, ScOsdWidth);
osd = new cCursesOsd(0, 0);
osd->DrawRectangle(0, 0, ScOsdWidth - 1, ScOsdHeight - 1, clrBackground);
osd->DrawText(0, 0, Title, clrBlack, clrCyan, &Font, itemsWidth);
for (int i = 0; i < NumTracks; i++)
SetItem(Tracks[i], i, false);
}
cSkinCursesDisplayTracks::~cSkinCursesDisplayTracks()
{
delete osd;
}
void cSkinCursesDisplayTracks::SetItem(const char *Text, int Index, bool Current)
{
int y = 1 + Index;
int ColorFg, ColorBg;
if (Current) {
ColorFg = clrBlack;
ColorBg = clrCyan;
currentIndex = Index;
}
else {
ColorFg = clrWhite;
ColorBg = clrBackground;
}
osd->DrawText(0, y, Text, ColorFg, ColorBg, &Font, itemsWidth);
}
void cSkinCursesDisplayTracks::SetTrack(int Index, const char * const *Tracks)
{
if (currentIndex >= 0)
SetItem(Tracks[currentIndex], currentIndex, false);
SetItem(Tracks[Index], Index, true);
}
void cSkinCursesDisplayTracks::Flush(void)
{
osd->Flush();
}
// --- cSkinCursesDisplayMessage ---------------------------------------------
class cSkinCursesDisplayMessage : public cSkinDisplayMessage {
private:
cOsd *osd;
public:
cSkinCursesDisplayMessage(void);
virtual ~cSkinCursesDisplayMessage();
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void Flush(void);
};
cSkinCursesDisplayMessage::cSkinCursesDisplayMessage(void)
{
osd = new cCursesOsd(0, ScOsdHeight - 1);
}
cSkinCursesDisplayMessage::~cSkinCursesDisplayMessage()
{
delete osd;
}
void cSkinCursesDisplayMessage::SetMessage(eMessageType Type, const char *Text)
{
osd->DrawText(0, 0, Text, clrMessage[2 * Type], clrMessage[2 * Type + 1], &Font, ScOsdWidth, 0, taCenter);
}
void cSkinCursesDisplayMessage::Flush(void)
{
osd->Flush();
}
// --- cSkinCurses -----------------------------------------------------------
class cSkinCurses : public cSkin {
public:
cSkinCurses(void);
virtual const char *Description(void);
virtual cSkinDisplayChannel *DisplayChannel(bool WithInfo);
virtual cSkinDisplayMenu *DisplayMenu(void);
virtual cSkinDisplayReplay *DisplayReplay(bool ModeOnly);
virtual cSkinDisplayVolume *DisplayVolume(void);
virtual cSkinDisplayTracks *DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
virtual cSkinDisplayMessage *DisplayMessage(void);
};
cSkinCurses::cSkinCurses(void)
:cSkin("curses")
{
}
const char *cSkinCurses::Description(void)
{
return tr("Text mode");
}
cSkinDisplayChannel *cSkinCurses::DisplayChannel(bool WithInfo)
{
return new cSkinCursesDisplayChannel(WithInfo);
}
cSkinDisplayMenu *cSkinCurses::DisplayMenu(void)
{
return new cSkinCursesDisplayMenu;
}
cSkinDisplayReplay *cSkinCurses::DisplayReplay(bool ModeOnly)
{
return new cSkinCursesDisplayReplay(ModeOnly);
}
cSkinDisplayVolume *cSkinCurses::DisplayVolume(void)
{
return new cSkinCursesDisplayVolume;
}
cSkinDisplayTracks *cSkinCurses::DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks)
{
return new cSkinCursesDisplayTracks(Title, NumTracks, Tracks);
}
cSkinDisplayMessage *cSkinCurses::DisplayMessage(void)
{
return new cSkinCursesDisplayMessage;
}
// --- cPluginSkinCurses -----------------------------------------------------
class cPluginSkinCurses : public cPlugin {
private:
// Add any member variables or functions you may need here.
public:
cPluginSkinCurses(void);
virtual ~cPluginSkinCurses();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
cPluginSkinCurses::cPluginSkinCurses(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
}
cPluginSkinCurses::~cPluginSkinCurses()
{
// Clean up after yourself!
endwin();
}
const char *cPluginSkinCurses::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return NULL;
}
bool cPluginSkinCurses::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
return true;
}
bool cPluginSkinCurses::Initialize(void)
{
// Initialize any background activities the plugin shall perform.
if (initscr())
return true;
return false;
}
bool cPluginSkinCurses::Start(void)
{
// Start any background activities the plugin shall perform.
cSkin *Skin = new cSkinCurses;
// This skin is normally used for debugging, so let's make it the current one:
Skins.SetCurrent(Skin->Name());
return true;
}
void cPluginSkinCurses::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
cOsdObject *cPluginSkinCurses::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
return NULL;
}
cMenuSetupPage *cPluginSkinCurses::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return NULL;
}
bool cPluginSkinCurses::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
return false;
}
VDRPLUGINCREATOR(cPluginSkinCurses); // Don't touch this!

340
PLUGINS/src/status/COPYING Normal file
View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,85 @@
VDR Plugin 'status' Revision History
------------------------------------
2002-05-18: Version 0.0.1
- Initial revision.
2002-07-13: Version 0.0.2
- Changed the interface of cStatus::Replaying().
2002-09-21: Version 0.0.3
- Fixed Makefile for NEWSTRUCT driver.
2002-10-26: Version 0.0.4
- Fixed a typo.
2002-11-01: Version 0.0.5
- Completely switched to the new CVS HEAD version of the linux-dvb driver.
The NEWSTRUCT compile time switch is now obsolete. The required driver is now
the CVS HEAD version dated 2002-11-01 or later.
- Introduced Make.config.
2002-11-23: Version 0.0.6
- Changed return type of MainMenuAction().
2002-12-13: Version 0.1.0
- Changed setting of CXX and CXXFLAGS variables in Makefile.
2005-12-31: Version 0.2.0
- API change in cStatus.
2007-08-15: Version 0.2.1
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
2008-02-16: Version 0.3.0
- Added new cStatus functions.
2012-03-11: Version 0.3.1
- Added new parameter LiveView to ChannelSwitch() (reported by Udo Richter).
2012-12-27: Version 0.3.2
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.3.3
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2018-04-15: Version 2.4.0
- Official release.
2021-12-27: Version 2.6.0
- Official release.
2025-02-10: Version 2.6.1
- Added cStatus::OsdItem2().
- Activated logging of OsdItem2().
- Added cStatus::OsdCurrentItem2().
- Added cStatus::OsdStatusMessage2().

View File

@ -0,0 +1,97 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = status
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE)
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

15
PLUGINS/src/status/README Normal file
View File

@ -0,0 +1,15 @@
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Klaus Schmidinger <vdr@tvdr.de>
Project's homepage: https://www.tvdr.de
Latest version available at: https://www.tvdr.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.
Description: This is an example that shows the use of cStatus.

209
PLUGINS/src/status/status.c Normal file
View File

@ -0,0 +1,209 @@
/*
* status.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: status.c 5.4 2025/02/12 21:18:53 kls Exp $
*/
#include <vdr/plugin.h>
#include <vdr/status.h>
static const char *VERSION = "2.6.1";
static const char *DESCRIPTION = "Status monitor test";
static const char *MAINMENUENTRY = NULL;
// ---
class cStatusTest : public cStatus {
protected:
virtual void TimerChange(const cTimer *Timer, eTimerChange Change);
virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView);
virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
virtual void Replaying(const cControl *Control, const char *Name, const char *FileName, bool On);
virtual void SetVolume(int Volume, bool Absolute);
virtual void SetAudioTrack(int Index, const char * const *Tracks);
virtual void SetAudioChannel(int AudioChannel);
virtual void SetSubtitleTrack(int Index, const char * const *Tracks);
virtual void OsdClear(void);
virtual void OsdTitle(const char *Title);
virtual void OsdStatusMessage2(eMessageType Type, const char *Message);
virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
virtual void OsdItem2(const char *Text, int Index, bool Selectable);
virtual void OsdCurrentItem2(const char *Text, int Index);
virtual void OsdTextItem(const char *Text, bool Scroll);
virtual void OsdChannel(const char *Text);
virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle);
};
void cStatusTest::TimerChange(const cTimer *Timer, eTimerChange Change)
{
dsyslog("status: cStatusTest::TimerChange %s %d", Timer ? *Timer->ToText(true) : "-", Change);
}
void cStatusTest::ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView)
{
dsyslog("status: cStatusTest::ChannelSwitch %d %d %d", Device->CardIndex(), ChannelNumber, LiveView);
}
void cStatusTest::Recording(const cDevice *Device, const char *Name, const char *FileName, bool On)
{
dsyslog("status: cStatusTest::Recording %d %s %s %d", Device->CardIndex(), Name, FileName, On);
}
void cStatusTest::Replaying(const cControl *Control, const char *Name, const char *FileName, bool On)
{
dsyslog("status: cStatusTest::Replaying %s %s %d", Name, FileName, On);
}
void cStatusTest::SetVolume(int Volume, bool Absolute)
{
dsyslog("status: cStatusTest::SetVolume %d %d", Volume, Absolute);
}
void cStatusTest::SetAudioTrack(int Index, const char * const *Tracks)
{
dsyslog("status: cStatusTest::SetAudioTrack %d %s", Index, Tracks[Index]);
}
void cStatusTest::SetAudioChannel(int AudioChannel)
{
dsyslog("status: cStatusTest::SetAudioChannel %d", AudioChannel);
}
void cStatusTest::SetSubtitleTrack(int Index, const char * const *Tracks)
{
dsyslog("status: cStatusTest::SetSubtitleTrack %d %s", Index, Tracks[Index]);
}
void cStatusTest::OsdClear(void)
{
dsyslog("status: cStatusTest::OsdClear");
}
void cStatusTest::OsdTitle(const char *Title)
{
dsyslog("status: cStatusTest::OsdTitle '%s'", Title);
}
void cStatusTest::OsdStatusMessage2(eMessageType Type, const char *Message)
{
dsyslog("status: cStatusTest::OsdStatusMessage2 %d '%s'", Type, Message);
}
void cStatusTest::OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
{
dsyslog("status: cStatusTest::OsdHelpKeys %s - %s - %s - %s", Red, Green, Yellow, Blue);
}
void cStatusTest::OsdItem2(const char *Text, int Index, bool Selected)
{
dsyslog("status: cStatusTest::OsdItem2 %s %d %d", Text, Index, Selected);
}
void cStatusTest::OsdCurrentItem2(const char *Text, int Index)
{
dsyslog("status: cStatusTest::OsdCurrentItem %s %d", Text, Index);
}
void cStatusTest::OsdTextItem(const char *Text, bool Scroll)
{
dsyslog("status: cStatusTest::OsdTextItem %s %d", Text, Scroll);
}
void cStatusTest::OsdChannel(const char *Text)
{
dsyslog("status: cStatusTest::OsdChannel %s", Text);
}
void cStatusTest::OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle)
{
char buffer[25];
struct tm tm_r;
dsyslog("status: cStatusTest::OsdProgramme");
strftime(buffer, sizeof(buffer), "%R", localtime_r(&PresentTime, &tm_r));
dsyslog("%5s %s", buffer, PresentTitle);
dsyslog("%5s %s", "", PresentSubtitle);
strftime(buffer, sizeof(buffer), "%R", localtime_r(&FollowingTime, &tm_r));
dsyslog("%5s %s", buffer, FollowingTitle);
dsyslog("%5s %s", "", FollowingSubtitle);
}
// ---
class cPluginStatus : public cPlugin {
private:
// Add any member variables or functions you may need here.
cStatusTest *statusTest;
public:
cPluginStatus(void);
virtual ~cPluginStatus();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Start(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return MAINMENUENTRY; }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
cPluginStatus::cPluginStatus(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
statusTest = NULL;
}
cPluginStatus::~cPluginStatus()
{
// Clean up after yourself!
delete statusTest;
}
const char *cPluginStatus::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return NULL;
}
bool cPluginStatus::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
return true;
}
bool cPluginStatus::Start(void)
{
// Start any background activities the plugin shall perform.
statusTest = new cStatusTest;
return true;
}
void cPluginStatus::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
cOsdObject *cPluginStatus::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
return NULL;
}
cMenuSetupPage *cPluginStatus::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return NULL;
}
bool cPluginStatus::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
return false;
}
VDRPLUGINCREATOR(cPluginStatus); // Don't touch this!

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,43 @@
VDR Plugin 'svdrpdemo' Revision History
---------------------------------------
2005-08-27: Version 0.0.1
- Initial revision.
2005-08-28: Version 0.0.2
- Removed unused MAINMENUENTRY.
2007-08-15: Version 0.0.3
- Moved the "all" target in the Makefile before the "Implicit rules",
so that a plain "make" will compile everything.
2012-12-27: Version 0.0.4
- Adapted Makefile to changes introduced in recent VDR versions.
2013-01-12: Version 0.0.5
- Adapted Makefile to changes introduced in recent VDR versions.
2013-03-31: Version 2.0.0
- Official release.
2014-01-01: Version 2.1.1
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
2015-02-19: Version 2.2.0
- Official release.
2018-04-15: Version 2.4.0
- Official release.
2021-12-27: Version 2.6.0
- Official release.

View File

@ -0,0 +1,97 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 4.3 2020/06/22 15:08:46 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
PLUGIN = svdrpdemo
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKG_CONFIG ?= pkg-config
PKGCFG = $(if $(VDRDIR),$(shell $(PKG_CONFIG) --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." $(PKG_CONFIG) --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
APIVERSION = $(call PKGCFG,apiversion)
### Allow user defined options to overwrite defaults:
-include $(PLGCFG)
### The name of the distribution archive:
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
### The name of the shared object file:
SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
INCLUDES +=
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
OBJS = $(PLUGIN).o
### The main target:
all: $(SOFILE)
### Implicit rules:
%.o: %.c
@echo CC $@
$(Q)$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
### Dependencies:
MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
### Targets:
$(SOFILE): $(OBJS)
@echo LD $@
$(Q)$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
install: install-lib
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

Some files were not shown because too many files have changed in this diff Show More