summaryrefslogtreecommitdiff
path: root/radio.c
diff options
context:
space:
mode:
Diffstat (limited to 'radio.c')
-rw-r--r--radio.c32
1 files changed, 8 insertions, 24 deletions
diff --git a/radio.c b/radio.c
index 139ccd7..1a9ccd7 100644
--- a/radio.c
+++ b/radio.c
@@ -16,6 +16,7 @@
#include "radiotools.h"
#include "radioepg.h"
#include "inforx.h"
+#include "service.h"
#if VDRVERSNUM < 10737
#error This version of radio-plugin requires vdr >= 1.7.37
@@ -72,25 +73,6 @@ int IsRadioOrReplay;
bool DoInfoReq = false, InfoRequest = false;
int InfoTimeout = 3;
-struct RadioTextService_v1_0 {
- int rds_info; // 0= no / 1= Text / 2= Text + RTplus-Tags (Item,Artist)
- int rds_pty; // 0-31
- char *rds_text;
- char *rds_title;
- char *rds_artist;
- struct tm *title_start;
-};
-
-struct RadioTextService_v1_1 {
- int rds_info; // 0= no / 1= Text / 2= Text + RTplus-Tags (Item,Artist)
- int rds_pty; // 0-31
- std::string rds_text;
- std::string rds_title;
- std::string rds_artist;
- time_t title_start;
-};
-
-
// --- cRadioCheck -------------------------------------------------------
class cRadioCheck: public cThread {
@@ -622,13 +604,15 @@ bool cPluginRadio::Service(const char *Id, void *Data)
}
else if ((strcmp(Id,"RadioTextService-v1.1") == 0) && (S_Activate > 0) && (S_RtFunc >= 1)) {
if (Data) {
+ cCharSetConv conf(RT_Charset == 0 ? "ISO-8859-1" : 0);
RadioTextService_v1_1 *data = (RadioTextService_v1_1*)Data;
- data->rds_pty = RT_PTY;
- data->rds_info = (RT_Info < 0) ? 0 : RT_Info;
int ind = (RT_Index == 0) ? S_RtOsdRows - 1 : RT_Index - 1;
- data->rds_text = RT_Text[ind];
- data->rds_title = RTP_Title;
- data->rds_artist = RTP_Artist;
+ data->rds_pty = RT_PTY;
+ data->rds_info = RT_Info < 0 ? 0 : RT_Info;
+ data->rds_pty_info = RT_PTY > 0 ? ptynr2string(RT_PTY) : "";
+ data->rds_text = conf.Convert(RT_Text[ind]);
+ data->rds_title = conf.Convert(RTP_Title);
+ data->rds_artist = conf.Convert(RTP_Artist);
data->title_start = RTP_Starttime;
}
return true;