diff options
author | Ulrich Eckhardt <uli@uli-eckhardt.de> | 2018-02-20 18:42:50 +0100 |
---|---|---|
committer | Ulrich Eckhardt <uli@uli-eckhardt.de> | 2018-02-20 18:42:50 +0100 |
commit | 58d6446dd10bda93df6a5aaca144f3796d0b8178 (patch) | |
tree | 731453380bd391c87eef4b76ed6cb0ad3d85f074 | |
parent | 1962edecef0915f394f9e01812efd6c24879afdb (diff) | |
download | vdr-plugin-radio-58d6446dd10bda93df6a5aaca144f3796d0b8178.tar.gz vdr-plugin-radio-58d6446dd10bda93df6a5aaca144f3796d0b8178.tar.bz2 |
Update trigger for service by Jörg Wendel
-rw-r--r-- | radio.c | 18 | ||||
-rw-r--r-- | radioaudio.c | 8 | ||||
-rw-r--r-- | service.h | 6 |
3 files changed, 20 insertions, 12 deletions
@@ -419,7 +419,7 @@ cPluginRadio::cPluginRadio(void) DataDirParam = false; LiveFileParam = false; ReplayFileParam = false; - + rt_color[0] = 0xFF000000; //Black rt_color[1] = 0xFFFCFCFC; //White rt_color[2] = 0xFFFC1414; //Red @@ -470,7 +470,7 @@ bool cPluginRadio::ProcessArgs(int argc, char *argv[]) { "verbose", required_argument, NULL, 'v' }, { NULL } }; - + int c; while ((c = getopt_long(argc, argv, "f:d:l:r:e:v:", long_options, NULL)) != -1) { switch (c) { @@ -522,12 +522,12 @@ bool cPluginRadio::Start(void) if (!radioImage) return false; radioImage->Init(); - + radioAudio = new cRadioAudio; if (!radioAudio) return false; - - if (!ConfigDirParam) + + if (!ConfigDirParam) ConfigDir = strdup(ConfigDirectory(Name())); if (!DataDirParam) { DataDir = strdup("/tmp/vdr-radio.XXXXXX"); @@ -540,7 +540,7 @@ bool cPluginRadio::Start(void) asprintf(&ReplayFile, "%s/replay.mpg", ConfigDir); } - cRadioCheck::Init(); + cRadioCheck::Init(); return true; } @@ -558,7 +558,7 @@ void cPluginRadio::Stop(void) void cPluginRadio::Housekeeping(void) { // Perform any cleanup or other regular tasks. -} +} cOsdObject *cPluginRadio::MainMenuAction(void) { @@ -623,7 +623,7 @@ bool cPluginRadio::SetupParse(const char *Name, const char *Value) bool cPluginRadio::Service(const char *Id, void *Data) { static struct tm tm_store; - if ((strcmp(Id,"RadioTextService-v1.0") == 0) && (S_Activate > 0) && (S_RtFunc >= 1)) { + if ((strcmp(Id, RADIO_TEXT_SERVICE0) == 0) && (S_Activate > 0) && (S_RtFunc >= 1)) { if (Data) { RadioTextService_v1_0 *data = (RadioTextService_v1_0*)Data; data->rds_pty = RT_PTY; @@ -636,7 +636,7 @@ bool cPluginRadio::Service(const char *Id, void *Data) } return true; } - else if ((strcmp(Id,"RadioTextService-v1.1") == 0) && (S_Activate > 0) && (S_RtFunc >= 1)) { + else if ((strcmp(Id, RADIO_TEXT_SERVICE1) == 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; diff --git a/radioaudio.c b/radioaudio.c index c8922c9..0092114 100644 --- a/radioaudio.c +++ b/radioaudio.c @@ -11,6 +11,7 @@ #include "radioaudio.h" #include "radioskin.h" #include "radiotools.h" +#include "service.h" #include <math.h> // OSD-Symbols @@ -81,6 +82,7 @@ unsigned char rds_addchar[128] = { 0xe1, 0xe0, 0xe9, 0xe8, 0xed, 0xec, 0xf3, // announce text/items for lcdproc & other void radioStatusMsg(void) { + cPluginManager::CallAllServices(RADIO_TEXT_UPDATE, 0); if (!RT_MsgShow || S_RtMsgItems <= 0) return; @@ -934,7 +936,7 @@ void cRadioAudio::RadiotextDecode(unsigned char *mtext, int len) { // byte 5 = MEC (Message Element Code, 0x0a for RT, 0x46 for RTplus) if (mtext[5] == 0x0a) { - // byte 6+7 = DSN+PSN (DataSetNumber+ProgramServiceNumber, + // byte 6+7 = DSN+PSN (DataSetNumber+ProgramServiceNumber, // ignore here, always 0x00 ?) // byte 8 = MEL (MessageElementLength, max. 64+1 byte @ RT) if (mtext[8] == 0 || mtext[8] > RT_MEL || mtext[8] > leninfo - 4) { @@ -1360,7 +1362,7 @@ void cRadioAudio::RassDecode(unsigned char *mtext, int len) { // byte 1+2 = ADD (10bit SiteAdress + 6bit EncoderAdress) // byte 3 = SQC (Sequence Counter 0x00 = not used) - // byte 4 = MFL (Message Field Length), + // byte 4 = MFL (Message Field Length), if (len >= mtext[4] + 7) { // check complete length // byte 5 = MEC (0xda for Rass) // byte 6 = MEL @@ -2156,7 +2158,7 @@ void cRadioTextOsd::RassOsd(void) { clrTransparent, ftext, 97, fh); free(temp); } - // Marker gallery/index + // Marker gallery/index if (!mark) { if (Rass_Archiv > 0 && Rass_Archiv <= RASS_GALMAX) qosd->DrawBitmap(30, 240 + offs, marker, bcolor, fcolor); @@ -8,6 +8,8 @@ #ifndef __RADIO_SERVICE_H #define __RADIO_SERVICE_H +#include <string> + // --- Service Interface ------------------------------------------------------- struct RadioTextService_v1_0 { @@ -29,4 +31,8 @@ struct RadioTextService_v1_1 { time_t title_start; }; +#define RADIO_TEXT_SERVICE0 "RadioTextService-v1.0" +#define RADIO_TEXT_SERVICE1 "RadioTextService-v1.1" +#define RADIO_TEXT_UPDATE "RadioTextUpdate-v1.0" + #endif // __RADIO_SERVICE_H |