summaryrefslogtreecommitdiff
path: root/tools.c
diff options
context:
space:
mode:
authorAndreas Mair <amair.sob@googlemail.com>2007-03-06 09:26:11 +0100
committerAndreas Mair <amair.sob@googlemail.com>2007-03-06 09:26:11 +0100
commitde39678a54ab87364a3c8c5e3b058d313451db5b (patch)
tree46ea3b911b6fb0982d910e5bcd398d373f86a887 /tools.c
parentb1fa489fdbd06712add00390966defbe9a96232a (diff)
downloadvdr-plugin-skinenigmang-0.0.3.tar.gz
vdr-plugin-skinenigmang-0.0.3.tar.bz2
2007-03-06: Version 0.0.3v0.0.3
- New command line option "-l" to set the logo path. - Added support for epgsearch's timer check auxiliary info in a recording's info. - Reorganized setup menu. - Don't use small font in a recording's replay info. - Show channel name and number in recording's info. - Don't use small font for description in event and recording info. - Added setup options for epgsearch features. - Use location set at "Channel info position" to display channel info. - Fixed transparent group titles in menus. (Reported by several users) - New (temporary) compile time option SKINENIGMA_FULL_CHANNELINFO_TITLE. - Fixed duration and elapsed/remaining time displaying in channel info. - Enhanced setup option "Show remaining/elapsed time". - Enhanced setup option "Show Symbols". - Changed alignment in bottom line of channel info. - New setup option to hide language flags; shows language name in channel info. (Suggested by balta @vdr-portal.de) - Redraw date in main menu and channel info only if time changed. (Based on suggestion by Hanspeter) - Changed detection for main menu; it now must start with "VDR - ". (Based on patch by triple955 @vdr-portal.de) - Fixed problems with floating text. (Patch by triple955 @vdr-portal.de) - Localized full weekday name. - Added new setup option for 8bpp or 4bpp single area. - Added Russian translation (Submitted by SergArb @vdr-portal.de). - Log "LOGO NOT FOUND" errors to syslog (Requested by Der_Pit). - Changed a false 4bpp area to 2bpp. - Corrected brackets (Reported by Sebastian Werner). - Many other fixes and graphical changes.
Diffstat (limited to 'tools.c')
-rw-r--r--tools.c70
1 files changed, 57 insertions, 13 deletions
diff --git a/tools.c b/tools.c
index 1219c91..2a2859e 100644
--- a/tools.c
+++ b/tools.c
@@ -14,17 +14,22 @@
#include <stdlib.h>
#include <string.h>
#include "common.h"
+#include "i18n.h"
#include "tools.h"
using namespace std;
-#define AUX_HEADER_EPGSEARCH "EPGSearch: "
-#define AUX_TAGS_EPGSEARCH_START "<epgsearch>"
-#define AUX_TAGS_EPGSEARCH_ITEM1_START "<Channel>"
-#define AUX_TAGS_EPGSEARCH_ITEM1_END "</Channel>"
-#define AUX_TAGS_EPGSEARCH_ITEM2_START "<Search timer>"
-#define AUX_TAGS_EPGSEARCH_ITEM2_END "</Search timer>"
-#define AUX_TAGS_EPGSEARCH_END "</epgsearch>"
+#define AUX_HEADER_EPGSEARCH "EPGSearch: "
+#define AUX_TAGS_EPGSEARCH_START "<epgsearch>"
+#define AUX_TAGS_EPGSEARCH_ITEM_1A_START "<Channel>"
+#define AUX_TAGS_EPGSEARCH_ITEM_1A_END "</Channel>"
+#define AUX_TAGS_EPGSEARCH_ITEM_2A_START "<Search timer>"
+#define AUX_TAGS_EPGSEARCH_ITEM_2A_END "</Search timer>"
+#define AUX_TAGS_EPGSEARCH_ITEM_1B_START "<update>"
+#define AUX_TAGS_EPGSEARCH_ITEM_1B_END "</update>"
+#define AUX_TAGS_EPGSEARCH_ITEM_2B_START "<eventid>"
+#define AUX_TAGS_EPGSEARCH_ITEM_2B_END "</eventid>"
+#define AUX_TAGS_EPGSEARCH_END "</epgsearch>"
#define AUX_HEADER_VDRADMIN "VDRAdmin-AM: "
#define AUX_TAGS_VDRADMIN_START "<vdradmin-am>"
@@ -51,11 +56,11 @@ const char *parseaux(const char *aux)
sstrReturn << AUX_HEADER_EPGSEARCH;
// parse first item
char *tmp;
- if ((tmp = strcasestr(start, AUX_TAGS_EPGSEARCH_ITEM1_START)) != NULL) {
+ if ((tmp = strcasestr(start, AUX_TAGS_EPGSEARCH_ITEM_1A_START)) != NULL) {
if (tmp < end) {
- tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM1_START);
+ tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM_1A_START);
char *tmp2;
- if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM1_END)) != NULL) {
+ if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM_1A_END)) != NULL) {
// add channel
sstrReturn << string(tmp, tmp2 - tmp);
founditem = true;
@@ -65,11 +70,11 @@ const char *parseaux(const char *aux)
}
}
// parse second item
- if ((tmp = strcasestr(start, "<Search timer>")) != NULL) {
+ if ((tmp = strcasestr(start, AUX_TAGS_EPGSEARCH_ITEM_2A_START)) != NULL) {
if (tmp < end) {
- tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM2_START);
+ tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM_2A_START);
char *tmp2;
- if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM2_END)) != NULL) {
+ if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM_2A_END)) != NULL) {
// add separator
if (founditem) {
sstrReturn << ", ";
@@ -82,6 +87,45 @@ const char *parseaux(const char *aux)
}
}
}
+ // timer check?
+ if ((tmp = strcasestr(start, AUX_TAGS_EPGSEARCH_ITEM_1B_START)) != NULL) {
+ if (tmp < end) {
+ tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM_1B_START);
+ char *tmp2;
+ if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM_1B_END)) != NULL) {
+ if (string(tmp, tmp2 - tmp) != "0") {
+ // add separator
+ if (founditem) {
+ sstrReturn << ", ";
+ }
+ founditem = true;
+ // add search item
+ sstrReturn << tr("Timer check");
+
+ // parse second item
+ if ((tmp = strcasestr(start, AUX_TAGS_EPGSEARCH_ITEM_2B_START)) != NULL) {
+ if (tmp < end) {
+ tmp += strlen(AUX_TAGS_EPGSEARCH_ITEM_2B_START);
+ char *tmp2;
+ if ((tmp2 = strcasestr(tmp, AUX_TAGS_EPGSEARCH_ITEM_2B_END)) != NULL) {
+ // add separator
+ if (founditem) {
+ sstrReturn << ", ";
+ }
+ // add search item
+ sstrReturn << "eventid=" << string(tmp, tmp2 - tmp);
+ }
+ }
+ }
+ } else {
+ founditem = false;
+ }
+ } else {
+ founditem = false;
+ }
+ }
+ }
+
// use old syntax
if (!founditem) {
start += strlen(AUX_HEADER_EPGSEARCH);