summaryrefslogtreecommitdiff
path: root/PLUGINS
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-02-17 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-02-17 18:00:00 +0100
commit9279cb21cd311cbb141d506ba9d17c3a057b4d3c (patch)
tree670ab22e83d5abd18c2e15e85504c58d09651b87 /PLUGINS
parente3887083391d10f8cfcd1d8ac65a99d9978f05f2 (diff)
downloadvdr-patch-lnbsharing-9279cb21cd311cbb141d506ba9d17c3a057b4d3c.tar.gz
vdr-patch-lnbsharing-9279cb21cd311cbb141d506ba9d17c3a057b4d3c.tar.bz2
Version 1.5.15vdr-1.5.15
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Added option -i to the pictures plugin's pic2mpg to ignore unknown file types. - Revoked the switch to the "multiproto" driver in order to make a new stable version before making this big switch and forcing all users to install a driver that is not yet in the kernel source. The removed code will reappear in version 1.7.0. Note that you may need to switch back to an older version of your channels.conf file if you have already used version 1.5.14, because it introduced new parameters. - Added the new command line option --userdump to enable core dumps in case VDR is run as root with option -u (thanks to Hans-Werner Hilse). - Speeded up anti-aliased font rendering by caching the blend indexes (based on a suggestion by Martin Wache). - Fixed setting the OSD area in the pictures plugin. - Ignoring "repeat" and "release" keys in the time search entry mode during replay, to avoid inadvertently leaving it in case a key is pressed too long (suggested by Andreas Brugger). - Improved sending all frames to devices that can handle them in fast forward trick speeds, including subtitles (thanks to Timo Eskola). - The section handler is now stopped before the device is destroyed, to avoid accessing file handles after they have become invalid (thanks to Reinhard Nissl for reporting an invalid access when ending VDR, and to Deti Fliegl for a patch that was used to implement StopSectionHandler()). - Fixed setting the date in the channel display of the classic and sttng skins, to avoid unnecessary OSD access (thanks to Marco Schlüßler). - The free disk space is now also displayed in the title of the "Recordings" menu (suggested by Walter Koch). - Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because it applies to non-VPS recordings as well. - Fixed a loss of a timer's 'recording' flag after modifying it via MODT. - Fixed detecting directories in cFileNameList::Load(). - Running the thread that removes deleted recordings at a low priority to (maybe) avoid stuttering replay in case the thread is run during replay. - Limiting the length of the recording name in timers in case VDR is run with --vfat, in order to avoid names that are too long for Windows (suggested by Rolf Ahrenberg). - Using cString::sprintf() instead of asprintf() (thanks to Wolfgang Rohdewald for pointing out a possible problem if the return value is not checked). Plugin authors may want to consider doing the same. For convenience there is now an additional version of cString::sprintf() that accepts a va_list parameter. - When deleting the recording that is currently replayed, the replay is now stopped immediately (thanks to Mikko Matilainen for reporting a possible crash if the Info key is pressed after deleting the currently replayed recording). - Updated the Russian OSD texts (thanks to Oleg Roitburd). - When determining the amount of free disk space, any deleted (but not yet removed) recordings on different file systems (that are mounted under the video directory) are no longer taken into account. - When running out of disk space during a recording, only such deleted or old recordings are removed, that actually are on the video directory file system(s). This prevents VDR from accidentally deleting recordings on other file systems, which would not add any free space to the video directory. - Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks in plugins (thanks to Petri Hintukainen). - Added cStatus::TimerChange() to inform plugins about changes to the list of timers (based on a patch from Benedikt Elser). - Added new cStatus functions to the 'status' plugin. - Added missing #include <limits.h> to epg.c and menuitems.h (thanks to Ville Skyttä). - The new function cSkin::SetScrollbar() can be implemented by skins to display a scrollbar in every list menu. The 'classic' and 'sttng' skins have been changed accordingly, as well as the 'skincurses' plugin. - Introduced 'operator const void * ()' in cString to catch cases where operator*() should be used. - Fixed calculating the scrollbar sizes in the skins.
Diffstat (limited to 'PLUGINS')
-rw-r--r--PLUGINS/src/hello/po/it_IT.po22
-rw-r--r--PLUGINS/src/pictures/HISTORY14
-rw-r--r--PLUGINS/src/pictures/entry.c4
-rwxr-xr-xPLUGINS/src/pictures/pic2mpg13
-rw-r--r--PLUGINS/src/pictures/pictures.c4
-rw-r--r--PLUGINS/src/pictures/player.c6
-rw-r--r--PLUGINS/src/pictures/po/fr_FR.po32
-rwxr-xr-xPLUGINS/src/pictures/po/it_IT.po32
-rw-r--r--PLUGINS/src/skincurses/HISTORY5
-rwxr-xr-xPLUGINS/src/skincurses/po/it_IT.po28
-rw-r--r--PLUGINS/src/skincurses/skincurses.c53
-rw-r--r--PLUGINS/src/status/HISTORY4
-rw-r--r--PLUGINS/src/status/status.c34
13 files changed, 205 insertions, 46 deletions
diff --git a/PLUGINS/src/hello/po/it_IT.po b/PLUGINS/src/hello/po/it_IT.po
index f3f0509..c6fbdb1 100644
--- a/PLUGINS/src/hello/po/it_IT.po
+++ b/PLUGINS/src/hello/po/it_IT.po
@@ -1,36 +1,34 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
-# Alberto Carraro <bertocar@tin.it>, 2001
-# Antonio Ospite <ospite@studenti.unina.it>, 2003
-# Sean Carlos <seanc@libero.it>, 2005
+# Diego Pierotto <vdr-italian@tiscali.it>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2007-10-13 11:52+0200\n"
-"PO-Revision-Date: 2007-08-11 12:34+0200\n"
-"Last-Translator: Sean Carlos <seanc@libero.it>\n"
-"Language-Team: <vdr@linuxtv.org>\n"
+"PO-Revision-Date: 2008-01-27 20:11+0100\n"
+"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
+"Language-Team: <vdr@linuxtv.org>\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 ""
+msgstr "Un saluto cordiale"
msgid "Hello"
-msgstr ""
+msgstr "Ciao"
msgid "Greeting time (s)"
-msgstr ""
+msgstr "Tempo saluto (s)"
msgid "Use alternate greeting"
-msgstr ""
+msgstr "Utilizza saluto alternativo"
msgid "Howdy folks!"
-msgstr ""
+msgstr "Come state gente!"
msgid "Hello world!"
-msgstr ""
+msgstr "Ciao mondo!"
diff --git a/PLUGINS/src/pictures/HISTORY b/PLUGINS/src/pictures/HISTORY
index 462c02f..174fd30 100644
--- a/PLUGINS/src/pictures/HISTORY
+++ b/PLUGINS/src/pictures/HISTORY
@@ -10,3 +10,17 @@ VDR Plugin 'pictures' Revision History
- 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 <rahrenbe@cc.hut.fi>).
+
+2008-01-27: Version 0.0.3
+
+- Added French texts (thanks to Patrice Staudt <ipatrice.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.
diff --git a/PLUGINS/src/pictures/entry.c b/PLUGINS/src/pictures/entry.c
index e03858c..427585e 100644
--- a/PLUGINS/src/pictures/entry.c
+++ b/PLUGINS/src/pictures/entry.c
@@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: entry.c 1.2 2008/01/18 15:49:51 kls Exp $
+ * $Id: entry.c 1.3 2008/02/17 13:42:34 kls Exp $
*/
#include "entry.h"
@@ -37,7 +37,7 @@ int cPictureEntry::Compare(const cListObject &ListObject) const
cString cPictureEntry::Path(void) const
{
- return parent ? AddDirectory(parent->Path(), name) : name;
+ return parent ? *AddDirectory(parent->Path(), name) : name;
}
void cPictureEntry::Load(void) const
diff --git a/PLUGINS/src/pictures/pic2mpg b/PLUGINS/src/pictures/pic2mpg
index 5791685..6cd7435 100755
--- a/PLUGINS/src/pictures/pic2mpg
+++ b/PLUGINS/src/pictures/pic2mpg
@@ -7,7 +7,7 @@
#
# See the README file for copyright information and how to reach the author.
#
-# $Id: pic2mpg 1.1 2008/01/13 11:09:12 kls Exp $
+# $Id: pic2mpg 1.2 2008/02/02 11:34:43 kls Exp $
## TODO implement HDTV (1920 x 1080)
@@ -20,20 +20,22 @@ Usage: $0 [options] picture-dir mpeg-dir
$0 [options] picture-file mpeg-file
Options: -a Aspect ratio 4:3 (default is 16:9)
- -h print Help
-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("ahfnv:x:y:") || die $Usage;
+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;
@@ -142,7 +144,10 @@ sub ConvertFile
{
my ($Pict, $Mpeg) = @_;
(my $Type) = $Pict =~ /\.([^\.]*)$/;
- die "unknown file type '$Type': '$Pict'\n" unless defined $PNMCONV{$Type};
+ 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);
if ($w / $h <= $ScreenRatio) {
diff --git a/PLUGINS/src/pictures/pictures.c b/PLUGINS/src/pictures/pictures.c
index e3015e4..6e64c4e 100644
--- a/PLUGINS/src/pictures/pictures.c
+++ b/PLUGINS/src/pictures/pictures.c
@@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: pictures.c 1.2 2008/01/19 11:20:03 kls Exp $
+ * $Id: pictures.c 1.5 2008/02/09 12:15:52 kls Exp $
*/
#include <getopt.h>
@@ -11,7 +11,7 @@
#include "menu.h"
#include "player.h"
-static const char *VERSION = "0.0.2";
+static const char *VERSION = "0.0.5";
static const char *DESCRIPTION = trNOOP("A simple picture viewer");
static const char *MAINMENUENTRY = trNOOP("Pictures");
diff --git a/PLUGINS/src/pictures/player.c b/PLUGINS/src/pictures/player.c
index b942be5..8981b60 100644
--- a/PLUGINS/src/pictures/player.c
+++ b/PLUGINS/src/pictures/player.c
@@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: player.c 1.2 2008/01/19 11:01:58 kls Exp $
+ * $Id: player.c 1.3 2008/02/09 12:13:10 kls Exp $
*/
#include "player.h"
@@ -173,11 +173,11 @@ void cPictureControl::DisplayCaption(void)
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, h, 8 } };
+ 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, h, 4 } };
+ tArea Areas[] = { { 0, 0, w - 1, h - 1, 4 } };
osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
}
}
diff --git a/PLUGINS/src/pictures/po/fr_FR.po b/PLUGINS/src/pictures/po/fr_FR.po
new file mode 100644
index 0000000..54933aa
--- /dev/null
+++ b/PLUGINS/src/pictures/po/fr_FR.po
@@ -0,0 +1,32 @@
+# VDR plugin language source file.
+# Copyright (C) 2008 Klaus Schmidinger <kls@cadsoft.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: pictures 0.0.1\n"
+"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
+"POT-Creation-Date: 2008-01-12 17:38+0100\n"
+"PO-Revision-Date: 2008-01-12 17:41+0100\n"
+"Last-Translator: Patrice Staudt <patrice.staudt@laposte.net>\n"
+"Language-Team: France\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!"
diff --git a/PLUGINS/src/pictures/po/it_IT.po b/PLUGINS/src/pictures/po/it_IT.po
new file mode 100755
index 0000000..d16fc4c
--- /dev/null
+++ b/PLUGINS/src/pictures/po/it_IT.po
@@ -0,0 +1,32 @@
+# VDR plugin language source file.
+# Copyright (C) 2008 Klaus Schmidinger <kls@cadsoft.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: pictures 0.0.1\n"
+"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
+"POT-Creation-Date: 2008-01-12 17:38+0100\n"
+"PO-Revision-Date: 2008-01-27 20:22+0100\n"
+"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
+"Language-Team: Italian\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!"
diff --git a/PLUGINS/src/skincurses/HISTORY b/PLUGINS/src/skincurses/HISTORY
index e5bfa49..45b79bb 100644
--- a/PLUGINS/src/skincurses/HISTORY
+++ b/PLUGINS/src/skincurses/HISTORY
@@ -65,3 +65,8 @@ VDR Plugin 'skincurses' Revision History
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().
diff --git a/PLUGINS/src/skincurses/po/it_IT.po b/PLUGINS/src/skincurses/po/it_IT.po
new file mode 100755
index 0000000..8dc4556
--- /dev/null
+++ b/PLUGINS/src/skincurses/po/it_IT.po
@@ -0,0 +1,28 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.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 1.5.7\n"
+"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
+"POT-Creation-Date: 2007-08-15 16:04+0200\n"
+"PO-Revision-Date: 2008-01-27 20:35+0100\n"
+"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
+"Language-Team: <vdr@linuxtv.org>\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 "Key$Mute"
+msgstr "Muto"
+
+msgid "Volume "
+msgstr "Volume "
+
+msgid "Text mode"
+msgstr "Modalità testo"
diff --git a/PLUGINS/src/skincurses/skincurses.c b/PLUGINS/src/skincurses/skincurses.c
index b9a4fc0..2f0bea9 100644
--- a/PLUGINS/src/skincurses/skincurses.c
+++ b/PLUGINS/src/skincurses/skincurses.c
@@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: skincurses.c 1.18 2007/08/26 20:16:59 kls Exp $
+ * $Id: skincurses.c 1.20 2008/02/17 14:28:19 kls Exp $
*/
#include <ncurses.h>
@@ -11,7 +11,7 @@
#include <vdr/plugin.h>
#include <vdr/skins.h>
-static const char *VERSION = "0.1.4";
+static const char *VERSION = "0.1.5";
static const char *DESCRIPTION = trNOOP("A text only skin");
static const char *MAINMENUENTRY = NULL;
@@ -166,7 +166,7 @@ void cCursesOsd::DrawText(int x, int y, const char *s, tColor ColorFg, tColor Co
}
SetColor(ColorFg, ColorBg);
wmove(window, y, x); // ncurses wants 'y' before 'x'!
- waddnstr(window, s, ScOsdWidth - x);
+ waddnstr(window, s, Width ? Width : ScOsdWidth - x);
}
void cCursesOsd::DrawRectangle(int x1, int y1, int x2, int y2, tColor Color)
@@ -261,7 +261,8 @@ void cSkinCursesDisplayChannel::Flush(void)
class cSkinCursesDisplayMenu : public cSkinDisplayMenu {
private:
cOsd *osd;
- void SetScrollbar(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();
@@ -272,6 +273,7 @@ public:
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);
@@ -290,25 +292,31 @@ cSkinCursesDisplayMenu::~cSkinCursesDisplayMenu()
delete osd;
}
-void cSkinCursesDisplayMenu::SetScrollbar(void)
+void cSkinCursesDisplayMenu::DrawScrollbar(int Total, int Offset, int Shown, int Top, int Height, bool CanScrollUp, bool CanScrollDown)
{
- if (textScroller.CanScroll()) {
- int yt = textScroller.Top();
- int yb = yt + textScroller.Height() - 1;
+ if (Total > 0 && Total > Shown) {
+ int yt = Top;
+ int yb = yt + Height - 1;
int st = yt;
int sb = yb;
- int tt = st + (sb - st) * textScroller.Offset() / textScroller.Total();
- int tb = tt + (sb - st) * textScroller.Shown() / textScroller.Total();
+ int tt = st + (sb - st + 1) * Offset / Total;
+ int tb = tt + (sb - st + 1) * Shown / Total;
int xl = ScOsdWidth - 1;
- osd->DrawRectangle(xl, st, xl, sb, clrCyan);
- osd->DrawRectangle(xl, tt, xl, tb, clrWhite);
+ osd->DrawRectangle(xl, st, xl, sb, clrWhite);
+ osd->DrawRectangle(xl, tt, xl, tb, 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);
- SetScrollbar();
+ SetTextScrollbar();
}
int cSkinCursesDisplayMenu::MaxItems(void)
@@ -366,12 +374,17 @@ void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current,
const char *s = GetTabbedText(Text, i);
if (s) {
int xt = Tab(i) / 12;// Tab() is in "pixel" - see also skins.c!!!
- osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, ScOsdWidth - xt);
+ osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, ScOsdWidth - 2 - xt);
}
if (!Tab(i + 1))
break;
}
- SetEditableWidth(ScOsdWidth - Tab(1) / 12); // Tab() is in "pixel" - see also skins.c!!!
+ SetEditableWidth(ScOsdWidth - 2 - Tab(1) / 12); // 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)
@@ -384,10 +397,8 @@ void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
snprintf(t, sizeof(t), "%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()) {
- char *buffer;
- asprintf(&buffer, " VPS: %s", *Event->GetVpsString());
+ cString buffer = cString::sprintf(" VPS: %s", *Event->GetVpsString());
osd->DrawText(ScOsdWidth - Utf8StrLen(buffer), y, buffer, clrBlack, clrYellow, &Font);
- free(buffer);
}
y += ts.Height();
y += 1;
@@ -400,7 +411,7 @@ void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
y += 1;
if (!isempty(Event->Description())) {
textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Event->Description(), &Font, clrCyan, clrBackground);
- SetScrollbar();
+ SetTextScrollbar();
}
}
@@ -428,14 +439,14 @@ void cSkinCursesDisplayMenu::SetRecording(const cRecording *Recording)
y += 1;
if (!isempty(Info->Description())) {
textScroller.Set(osd, 0, y, ScOsdWidth - 2, ScOsdHeight - y - 2, Info->Description(), &Font, clrCyan, clrBackground);
- SetScrollbar();
+ SetTextScrollbar();
}
}
void cSkinCursesDisplayMenu::SetText(const char *Text, bool FixedFont)
{
textScroller.Set(osd, 0, 2, ScOsdWidth - 2, ScOsdHeight - 4, Text, &Font, clrWhite, clrBackground);
- SetScrollbar();
+ SetTextScrollbar();
}
void cSkinCursesDisplayMenu::Flush(void)
diff --git a/PLUGINS/src/status/HISTORY b/PLUGINS/src/status/HISTORY
index 97bc7e2..f652068 100644
--- a/PLUGINS/src/status/HISTORY
+++ b/PLUGINS/src/status/HISTORY
@@ -40,3 +40,7 @@ VDR Plugin 'status' Revision History
- 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.
diff --git a/PLUGINS/src/status/status.c b/PLUGINS/src/status/status.c
index fa5f0d4..3959871 100644
--- a/PLUGINS/src/status/status.c
+++ b/PLUGINS/src/status/status.c
@@ -3,13 +3,13 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: status.c 1.9 2007/08/15 13:19:44 kls Exp $
+ * $Id: status.c 1.10 2008/02/16 15:41:05 kls Exp $
*/
#include <vdr/plugin.h>
#include <vdr/status.h>
-static const char *VERSION = "0.2.1";
+static const char *VERSION = "0.3.0";
static const char *DESCRIPTION = "Status monitor test";
static const char *MAINMENUENTRY = NULL;
@@ -17,20 +17,30 @@ 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);
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 OsdStatusMessage(const char *Message);
virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
+ virtual void OsdItem(const char *Text, int Index);
virtual void OsdCurrentItem(const char *Text);
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)
{
dsyslog("status: cStatusTest::ChannelSwitch %d %d", Device->CardIndex(), ChannelNumber);
@@ -51,6 +61,21 @@ 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");
@@ -71,6 +96,11 @@ void cStatusTest::OsdHelpKeys(const char *Red, const char *Green, const char *Ye
dsyslog("status: cStatusTest::OsdHelpKeys %s - %s - %s - %s", Red, Green, Yellow, Blue);
}
+void cStatusTest::OsdItem(const char *Text, int Index)
+{
+ //dsyslog("status: cStatusTest::OsdItem %s %d", Text, Index);
+}
+
void cStatusTest::OsdCurrentItem(const char *Text)
{
dsyslog("status: cStatusTest::OsdCurrentItem %s", Text);