diff options
Diffstat (limited to 'radio.c')
| -rw-r--r-- | radio.c | 32 |
1 files changed, 8 insertions, 24 deletions
@@ -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; |
