You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-plugins/vdr-graphlcd/files/0.1.5/graphlcd-0.1.5-radiotext-lc...

127 lines
4.3 KiB

diff -Naur graphlcd-0.1.4.orig/state.c graphlcd-0.1.4/state.c
--- graphlcd-0.1.4.orig/state.c 2007-02-04 23:35:16.317687570 +0100
+++ graphlcd-0.1.4/state.c 2007-02-04 23:42:12.065780817 +0100
@@ -16,6 +16,7 @@
#include <vdr/eitscan.h>
#include <vdr/i18n.h>
+#include <vdr/plugin.h>
#include "compat.h"
@@ -654,6 +655,8 @@
void cGraphLCDState::GetProgramme()
{
+ bool ptitle = false;
+
mutex.Lock();
#if VDRVERSNUM < 10300
const cEventInfo * present = NULL, * following = NULL;
@@ -670,9 +673,11 @@
{
event.presentTime = present->GetTime();
event.presentTitle = "";
- if (!isempty(present->GetTitle()))
+ if (!isempty(present->GetTitle())) {
event.presentTitle = present->GetTitle();
event.presentSubtitle = "";
+ ptitle = true;
+ }
if (!isempty(present->GetSubtitle()))
event.presentSubtitle = present->GetSubtitle();
}
@@ -704,9 +709,11 @@
{
event.presentTime = present->StartTime();
event.presentTitle = "";
- if (!isempty(present->Title()))
+ if (!isempty(present->Title())) {
event.presentTitle = present->Title();
event.presentSubtitle = "";
+ ptitle = true;
+ }
if (!isempty(present->ShortText()))
event.presentSubtitle = present->ShortText();
}
@@ -724,6 +731,54 @@
}
}
#endif
+
+#if VDRVERSNUM >= 10330
+ { // get&display Radiotext
+ cPlugin *p;
+ p = cPluginManager::CallFirstService("RadioTextService-v1.0", NULL);
+ if (p) {
+ RadioTextService_v1_0 rtext;
+ if (cPluginManager::CallFirstService("RadioTextService-v1.0", &rtext)) {
+ if (rtext.rds_info == 2 && strstr(rtext.rds_title, "---") == NULL) {
+ char rtpinfo[2][65], rtstr[140];
+ strcpy(rtpinfo[0], rtext.rds_title);
+ strcpy(rtpinfo[1], rtext.rds_artist);
+ sprintf(rtstr, "%02d:%02d %s | %s", rtext.title_start->tm_hour, rtext.title_start->tm_min, trim(((std::string)(rtpinfo[0]))).c_str(), trim(((std::string)(rtpinfo[1]))).c_str());
+ ptitle ? event.presentSubtitle = rtstr : event.presentTitle = rtstr;
+ }
+ else if (rtext.rds_info > 0) {
+ char rtstr[65];
+ strcpy(rtstr, rtext.rds_text);
+ ptitle ? event.presentSubtitle = trim(rtstr) : event.presentTitle = trim(rtstr);
+ }
+ }
+ }
+ }
+#endif
+
+#if VDRVERSNUM >= 10330
+ { // get&display LcrData
+ cPlugin *p;
+ p = cPluginManager::CallFirstService("LcrService-v1.0", NULL);
+ if (p)
+ {
+ LcrService_v1_0 lcrData;
+ if (cPluginManager::CallFirstService("LcrService-v1.0", &lcrData))
+ {
+ if ( strstr( lcrData.destination, "---" ) == NULL )
+ {
+ char lcrStringParts[3][25], lcrString[100];
+ strcpy( lcrStringParts[0], (const char *)lcrData.destination );
+ strcpy( lcrStringParts[1], (const char *)lcrData.price );
+ strcpy( lcrStringParts[2], (const char *)lcrData.pulse );
+ sprintf(lcrString, "%s | %s", trim((std::string)(lcrStringParts[1])).c_str(), trim((std::string)(lcrStringParts[2])).c_str());
+ event.presentTitle = trim(lcrStringParts[0]);
+ event.presentSubtitle = trim(lcrString);
+ }
+ }
+ }
+ }
+#endif
mutex.Unlock();
}
diff -Naur graphlcd-0.1.4.orig/state.h graphlcd-0.1.4/state.h
--- graphlcd-0.1.4.orig/state.h 2007-02-04 23:35:16.317687570 +0100
+++ graphlcd-0.1.4/state.h 2007-02-04 23:43:05.728759351 +0100
@@ -130,4 +130,21 @@
tVolumeState GetVolumeState();
};
+// Radiotext
+struct RadioTextService_v1_0 {
+ int rds_info;
+ int rds_pty;
+ char *rds_text;
+ char *rds_title;
+ char *rds_artist;
+ struct tm *title_start;
+};
+
+// LcrData
+struct LcrService_v1_0 {
+ cString destination;
+ cString price;
+ cString pulse;
+};
+
#endif