Folgender Patch macht zumindest Singlekanalaufnahme unter Enigma auf der Dreambox wieder möglich.....
Code: Alles auswählen
--- mcrec-0.18/src/mcrec.cpp 2003-09-22 23:52:09.000000000 +0200
+++ mcrec-0.19-dream/src/mcrec.cpp 2005-01-24 23:23:27.000000000 +0100
@@ -1027,28 +1027,11 @@
urlbufptr = urlbuffer;
gotnew = true;
- while(true)
+ if ((urlbufptr = strstr(urlbuffer, "Titel:")) != NULL)
{
- //parse HTML-response for wanted data
- //first search the div id tags
- if ((urlbufptr = strstr(urlbufptr, "div id")) == NULL)
- break;
-
- //then extract name of tag
urlbufptr += 8;
- tagptr = tag;
- for (cpptr = urlbufptr, i = 0; *cpptr != '\"'; cpptr++, i++)
- {
- if (i < MAXTAG-1)
- *tagptr++ = *cpptr;
- }
- *tagptr = '\0';
-
- //and then the tagdata
- urlbufptr = strstr(urlbufptr, ">");
- urlbufptr++;
tagptr = tagdata;
- for (cpptr = urlbufptr, i = 0; *cpptr != '<'; cpptr++, i++)
+ for (cpptr = urlbufptr, i = 0; *cpptr != '\n'; cpptr++, i++)
{
if (i < MAXTAGDATA-1)
*tagptr++ = *cpptr;
@@ -1056,51 +1039,87 @@
*tagptr = '\0';
decode_string(tagdata);
- //now look what we got and store it
- if (strcmp(tag, "track") == 0)
+ //except we got the same as before
+ if (strcmp(tagdata, mysonginfo.track) == 0)
{
- //except we got the same as before
- if (strcmp(tagdata, mysonginfo.track) == 0)
+ if ((!getmsgdisplayed) && (!moption))
{
- if ((!getmsgdisplayed) && (!moption))
- {
- dbox2msg(getmsg);
- getmsgdisplayed = true;
- }
- logprintf("EPG not updated yet...waiting... \n");
- sleep(slp);
- if (slp < 30)
- slp += 5;
- gotnew = false;
-
- //set fetched again to avoid immediate restart of songinfo_thread
- mysonginfo.fetched = true;
- continue;
+ dbox2msg(getmsg);
+ getmsgdisplayed = true;
}
- strncpy(mysonginfo.track, tagdata, MAXTAGDATA);
+ logprintf("EPG not updated yet...waiting... \n");
+ sleep(slp);
+ if (slp < 30)
+ slp += 5;
+ gotnew = false;
+
+ //set fetched again to avoid immediate restart of songinfo_thread
+ mysonginfo.fetched = true;
+ continue;
}
- if (strcmp(tag, "album") == 0)
- {
- strncpy(mysonginfo.album, tagdata, MAXTAGDATA);
- }
- if (strcmp(tag, "label") == 0)
+ strncpy(mysonginfo.track, tagdata, MAXTAGDATA);
+ }
+
+ if ((urlbufptr = strstr(urlbuffer, "Interpret:")) != NULL)
+ {
+ urlbufptr += 11;
+ tagptr = tagdata;
+ for (cpptr = urlbufptr, i = 0; *cpptr != '<'; cpptr++, i++)
{
- strncpy(mysonginfo.label, tagdata, MAXTAGDATA);
+ if (i < MAXTAGDATA-1)
+ *tagptr++ = *cpptr;
}
- if (strcmp(tag, "year") == 0)
+ *tagptr = '\0';
+ decode_string(tagdata);
+
+ strncpy(mysonginfo.artist1, tagdata, MAXTAGDATA);
+ }
+
+ if ((urlbufptr = strstr(urlbuffer, "Album:")) != NULL)
+ {
+ urlbufptr += 8;
+ tagptr = tagdata;
+ for (cpptr = urlbufptr, i = 0; *cpptr != '\n'; cpptr++, i++)
{
- strncpy(mysonginfo.year, tagdata, MAXTAGDATA);
+ if (i < MAXTAGDATA-1)
+ *tagptr++ = *cpptr;
}
- if (strcmp(tag, "artist1") == 0)
+ *tagptr = '\0';
+ decode_string(tagdata);
+
+ strncpy(mysonginfo.album, tagdata, MAXTAGDATA);
+ }
+
+ if ((urlbufptr = strstr(urlbuffer, "Label:")) != NULL)
+ {
+ urlbufptr += 8;
+ tagptr = tagdata;
+ for (cpptr = urlbufptr, i = 0; *cpptr != '\n'; cpptr++, i++)
{
- strncpy(mysonginfo.artist1, tagdata, MAXTAGDATA);
+ if (i < MAXTAGDATA-1)
+ *tagptr++ = *cpptr;
}
- if (strcmp(tag, "artist2") == 0)
+ *tagptr = '\0';
+ decode_string(tagdata);
+
+ strncpy(mysonginfo.label, tagdata, MAXTAGDATA);
+ }
+
+ if ((urlbufptr = strstr(urlbuffer, "Jahr:")) != NULL)
+ {
+ urlbufptr += 8;
+ tagptr = tagdata;
+ for (cpptr = urlbufptr, i = 0; *cpptr != '\n'; cpptr++, i++)
{
- strncpy(mysonginfo.artist2, tagdata, MAXTAGDATA);
+ if (i < MAXTAGDATA-1)
+ *tagptr++ = *cpptr;
}
+ *tagptr = '\0';
+ decode_string(tagdata);
+ strncpy(mysonginfo.year, tagdata, MAXTAGDATA);
}
+
free(urlbuffer);
if (!gotnew)
mchost=<dreambox-ip>
mcbaseurl=/cgi-bin/getEIT?
...schon sollts wieder klappen mit dem EPG
Der Patch ist gegen jenes mcrec im Tuxbox-CVS gemacht. Er ist zugegeben quick&dirty, aber was solls, hauptsache es funkt wieder
Bei Neutrino wird es leider nicht ganz so einfach gehen, da man da wohl über http://dbox/control/epg?eventid= gehen muß. Dafür könnte man evtl. wieder multichannel aufnehmen was mir beim WebIF von Enigma derzeit nicht möglich scheint. Da ich aber kein Neutrino mehr hab, wird es solch einen Patch von mir nicht geben. Vielleicht hab ich ja jemanden inspiriert
Servus, MASHtm