diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2009-05-16 19:04:44 +0200 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2009-05-16 19:04:44 +0200 |
| commit | 34bb54f1a28201b896c06c6b4aedf11a1b25f6d2 (patch) | |
| tree | 5191729c40d0708d00254740c610bf7a4dff3059 /lib | |
| parent | 1bba7d19f64a7a2896bdb54a1c54c585f591cc8c (diff) | |
| parent | 9f2d37189bea613bb562a4e8b69121572d8efe5f (diff) | |
| download | enigma2-34bb54f1a28201b896c06c6b4aedf11a1b25f6d2.tar.gz enigma2-34bb54f1a28201b896c06c6b4aedf11a1b25f6d2.zip | |
Merge branch 'master' of /home/tmbinc/enigma2-git
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dvb/epgcache.cpp | 65 | ||||
| -rw-r--r-- | lib/dvb/epgcache.h | 8 | ||||
| -rw-r--r-- | lib/dvb/pmt.cpp | 10 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ServicePosition.py | 14 | ||||
| -rwxr-xr-x[-rw-r--r--] | lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py | 36 | ||||
| -rw-r--r-- | lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py | 52 | ||||
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 14 | ||||
| -rw-r--r-- | lib/python/Tools/Downloader.py | 53 | ||||
| -rw-r--r-- | lib/python/Tools/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/service/servicemp3.cpp | 4 |
10 files changed, 172 insertions, 87 deletions
diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index fdcbe0e9..5069e8c3 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -303,6 +303,13 @@ void eEPGCache::DVBChannelRunning(iDVBChannel *chan) eDebug("[eEPGCache] couldnt initialize schedule other reader!!"); return; } + + res = demux->createSectionReader( this, data.m_ViasatReader ); + if ( res ) + { + eDebug("[eEPGCache] couldnt initialize viasat reader!!"); + return; + } #ifdef ENABLE_PRIVATE_EPG res = demux->createSectionReader( this, data.m_PrivateReader ); if ( res ) @@ -1115,7 +1122,7 @@ bool eEPGCache::channel_data::finishEPG() eDebug("[EPGC] stop caching events(%ld)", ::time(0)); zapTimer->start(UPDATE_INTERVAL, 1); eDebug("[EPGC] next update in %i min", UPDATE_INTERVAL / 60000); - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1135,7 +1142,7 @@ void eEPGCache::channel_data::startEPG() eDebug("[EPGC] start caching events(%ld)", ::time(0)); state=0; haveData=0; - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1186,6 +1193,14 @@ void eEPGCache::channel_data::startEPG() m_ScheduleOtherReader->start(mask); isRunning |= SCHEDULE_OTHER; + mask.pid = 0x39; + + mask.data[0] = 0x40; + mask.mask[0] = 0x40; + m_ViasatReader->connectRead(slot(*this, &eEPGCache::channel_data::readDataViasat), m_ViasatConn); + m_ViasatReader->start(mask); + isRunning |= VIASAT; + abortTimer->start(7000,true); } @@ -1209,11 +1224,18 @@ void eEPGCache::channel_data::abortNonAvail() } if ( !(haveData&SCHEDULE_OTHER) && (isRunning&SCHEDULE_OTHER) ) { - eDebug("[EPGC] abort non avail schedule_other reading"); + eDebug("[EPGC] abort non avail schedule other reading"); isRunning &= ~SCHEDULE_OTHER; m_ScheduleOtherReader->stop(); m_ScheduleOtherConn=0; } + if ( !(haveData&VIASAT) && (isRunning&VIASAT) ) + { + eDebug("[EPGC] abort non avail viasat reading"); + isRunning &= ~VIASAT; + m_ViasatReader->stop(); + m_ViasatConn=0; + } #ifdef ENABLE_MHW_EPG if ( !(haveData&MHW) && (isRunning&MHW) ) { @@ -1225,12 +1247,14 @@ void eEPGCache::channel_data::abortNonAvail() m_MHWConn2=0; } #endif - if ( isRunning ) + if ( isRunning & VIASAT ) + abortTimer->start(300000, true); + else if ( isRunning ) abortTimer->start(90000, true); else { ++state; - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1259,7 +1283,7 @@ void eEPGCache::channel_data::startChannel() void eEPGCache::channel_data::abortEPG() { - for (int i=0; i < 3; ++i) + for (unsigned int i=0; i < sizeof(seenSections)/sizeof(tidMap); ++i) { seenSections[i].clear(); calcedSections[i].clear(); @@ -1287,6 +1311,12 @@ void eEPGCache::channel_data::abortEPG() m_ScheduleOtherReader->stop(); m_ScheduleOtherConn=0; } + if (isRunning & VIASAT) + { + isRunning &= ~VIASAT; + m_ViasatReader->stop(); + m_ViasatConn=0; + } #ifdef ENABLE_MHW_EPG if (isRunning & MHW) { @@ -1307,6 +1337,15 @@ void eEPGCache::channel_data::abortEPG() pthread_mutex_unlock(&channel_active); } + +void eEPGCache::channel_data::readDataViasat( const __u8 *data) +{ + __u8 *d=0; + memcpy(&d, &data, sizeof(__u8*)); + d[0] |= 0x80; + readData(data); +} + void eEPGCache::channel_data::readData( const __u8 *data) { int source; @@ -1329,6 +1368,12 @@ void eEPGCache::channel_data::readData( const __u8 *data) source=SCHEDULE_OTHER; map=2; break; + case 0xD0 ... 0xDF: + case 0xE0 ... 0xEF: + reader=m_ViasatReader; + source=VIASAT; + map=3; + break; default: eDebug("[EPGC] unknown table_id !!!"); return; @@ -1352,6 +1397,10 @@ void eEPGCache::channel_data::readData( const __u8 *data) m_ScheduleOtherConn=0; eDebugNoNewLine("schedule other"); break; + case VIASAT: + m_ViasatConn=0; + eDebugNoNewLine("viasat"); + break; default: eDebugNoNewLine("unknown");break; } eDebug(" finished(%ld)", ::time(0)); @@ -2983,7 +3032,7 @@ void eEPGCache::channel_data::readMHWData(const __u8 *data) if ( state > 1 || // aborted // have si data.. so we dont read mhw data - (haveData & (SCHEDULE|SCHEDULE_OTHER)) ) + (haveData & (SCHEDULE|SCHEDULE_OTHER|VIASAT)) ) { eDebug("[EPGC] mhw aborted %d", state); } @@ -3149,7 +3198,7 @@ void eEPGCache::channel_data::readMHWData2(const __u8 *data) if ( state > 1 || // aborted // have si data.. so we dont read mhw data - (haveData & (eEPGCache::SCHEDULE|eEPGCache::SCHEDULE_OTHER)) ) + (haveData & (SCHEDULE|SCHEDULE_OTHER|VIASAT)) ) { eDebug("[EPGC] mhw2 aborted %d", state); } diff --git a/lib/dvb/epgcache.h b/lib/dvb/epgcache.h index fc42ded5..dfd19482 100644 --- a/lib/dvb/epgcache.h +++ b/lib/dvb/epgcache.h @@ -159,9 +159,9 @@ class eEPGCache: public eMainloop, private eThread, public Object int prevChannelState; __u8 state, isRunning, haveData; ePtr<eDVBChannel> channel; - ePtr<eConnection> m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn; - ePtr<iDVBSectionReader> m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader; - tidMap seenSections[3], calcedSections[3]; + ePtr<eConnection> m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn, m_ViasatConn; + ePtr<iDVBSectionReader> m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader, m_ViasatReader; + tidMap seenSections[4], calcedSections[4]; #ifdef ENABLE_PRIVATE_EPG ePtr<eTimer> startPrivateTimer; int m_PrevVersion; @@ -198,6 +198,7 @@ class eEPGCache: public eMainloop, private eThread, public Object void storeTitle(std::map<__u32, mhw_title_t>::iterator itTitle, std::string sumText, const __u8 *data); #endif void readData(const __u8 *data); + void readDataViasat(const __u8 *data); void startChannel(); void startEPG(); bool finishEPG(); @@ -210,6 +211,7 @@ public: #ifdef ENABLE_MHW_EPG ,MHW=8 #endif + ,VIASAT=16 }; struct Message { diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 0198c8f7..da45c8eb 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -399,10 +399,16 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) case ISO_639_LANGUAGE_DESCRIPTOR: if (!isvideo) { + int cnt=0; const Iso639LanguageList *languages = ((Iso639LanguageDescriptor*)*desc)->getIso639Languages(); /* use last language code */ - for (Iso639LanguageConstIterator i(languages->begin()); i != languages->end(); ++i) - audio.language_code = (*i)->getIso639LanguageCode(); + for (Iso639LanguageConstIterator i(languages->begin()); i != languages->end(); ++i, ++cnt) + { + if (cnt == 0) + audio.language_code = (*i)->getIso639LanguageCode(); + else + audio.language_code += "/" + (*i)->getIso639LanguageCode(); + } } break; case STREAM_IDENTIFIER_DESCRIPTOR: diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py index b92af40b..56a6db67 100644 --- a/lib/python/Components/Converter/ServicePosition.py +++ b/lib/python/Components/Converter/ServicePosition.py @@ -21,11 +21,6 @@ class ServicePosition(Converter, Poll, object): self.showHours = 'ShowHours' in args self.showNoSeconds = 'ShowNoSeconds' in args - if self.detailed: - self.poll_interval = 100 - else: - self.poll_interval = 500 - if type == "Length": self.type = self.TYPE_LENGTH elif type == "Position": @@ -37,7 +32,14 @@ class ServicePosition(Converter, Poll, object): else: raise ElementError("type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|ShowNoSeconds} for ServicePosition converter") - self.poll_enabled = self.type != self.TYPE_LENGTH + if self.detailed: + self.poll_interval = 100 + elif self.type == self.TYPE_LENGTH: + self.poll_interval = 2000 + else: + self.poll_interval = 500 + + self.poll_enabled = True def getSeek(self): s = self.source.service diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py index 4c8167d4..6e444b7b 100644..100755 --- a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py @@ -18,8 +18,8 @@ from os import system, path as os_path class CIselectMainMenu(Screen): skin = """ - <screen position="205,150" size="310,270" title="CI Assignment" > - <widget name="CiList" position="10,10" size="290,200" scrollbarMode="showOnDemand" /> + <screen position="180,150" size="350,270" title="CI assignment" > + <widget name="CiList" position="10,10" size="330,200" scrollbarMode="showOnDemand" /> <ePixmap position="10,210" size="290,2" pixmap="skin_default/div-h.png" transparent="1" alphatest="on" /> <ePixmap pixmap="skin_default/buttons/red.png" position="10,220" size="140,40" alphatest="on" /> <ePixmap pixmap="skin_default/buttons/green.png" position="160,220" size="140,40" alphatest="on" /> @@ -54,7 +54,7 @@ class CIselectMainMenu(Screen): for slot in range(NUM_CI): state = eDVBCI_UI.getInstance().getState(slot) if state == 0: - appname = _("Slot %d") %(slot+1) + " - " + _("no module") + appname = _("Slot %d") %(slot+1) + " - " + _("no module found") elif state == 1: appname = _("Slot %d") %(slot+1) + " - " + _("init modules") elif state == 2: @@ -67,6 +67,10 @@ class CIselectMainMenu(Screen): menuList.list = self.list menuList.l.setList(self.list) self["CiList"] = menuList + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def greenPressed(self): cur = self["CiList"].getCurrent() @@ -100,7 +104,7 @@ class CIselectMainMenu(Screen): class CIconfigMenu(Screen): skin = """ - <screen position="60,80" size="595,436" title="CI Assignment" > + <screen position="60,80" size="595,436" title="CI assignment" > <widget name="CAidList.desc" position="10,10" size="575,22" font="Regular;20" /> <widget name="CAidList" position="10,40" size="575,45" font="Regular;20" /> <widget name="ServiceList.desc" position="10,90" size="575,22" font="Regular;20" /> @@ -121,7 +125,7 @@ class CIconfigMenu(Screen): Screen.__init__(self, session) self.ci_slot=ci_slot self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml" - + self["key_red"] = StaticText(_("delete")) self["key_green"] = StaticText(_("add Service")) self["key_yellow"] = StaticText(_("add Provider")) @@ -138,7 +142,7 @@ class CIconfigMenu(Screen): "ok": self.okPressed, "cancel": self.cancel }, -1) - + print "[CI_Wizzard_Config] Configuring CI Slots : %d " % self.ci_slot i=0 @@ -163,6 +167,10 @@ class CIconfigMenu(Screen): # if config mode !=advanced autoselect any caid if config.usage.setup_level.index <= 1: # advanced self.selectedcaid=self.caidlist + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) def redPressed(self): self.delete() @@ -197,7 +205,7 @@ class CIconfigMenu(Screen): service_name = service_ref.getServiceName() if find_in_list(self.servicelist, service_name, 0)==False: split_ref=service_ref.ref.toString().split(":") - if split_ref[0] == "1": #== dvb service und nicht muell von None + if split_ref[0] == "1":#== dvb service und nicht muell von None self.servicelist.append( (service_name , ConfigNothing(), 0, service_ref.ref.toString()) ) self["ServiceList"].l.setList(self.servicelist) @@ -301,7 +309,7 @@ class CIconfigMenu(Screen): class easyCIconfigMenu(CIconfigMenu): skin = """ - <screen position="80,80" size="470,420" title="CI Assignment" > + <screen position="80,80" size="470,420" title="CI assignment" > <widget name="ServiceList.desc" position="10,10" size="420,22" font="Regular;20" /> <widget name="ServiceList" position="10,40" size="450,340" scrollbarMode="showOnDemand" /> <ePixmap position="10,360" size="450,2" pixmap="skin_default/div-h.png" transparent="1" alphatest="on" /> @@ -317,7 +325,7 @@ class easyCIconfigMenu(CIconfigMenu): ci=ci_slot CIconfigMenu.__init__(self, session, ci_slot) self.skin = easyCIconfigMenu.skin - + self["actions"] = ActionMap(["ColorActions","SetupActions"], { "green": self.greenPressed, @@ -327,7 +335,7 @@ class easyCIconfigMenu(CIconfigMenu): "ok": self.okPressed, "cancel": self.cancel }, -1) - + def bluePressed(self): print "do nothing" @@ -341,7 +349,7 @@ class CAidSelect(Screen): <widget source="key_red" render="Label" position="10,240" zPosition="1" size="140,40" font="Regular;19" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> <widget source="key_green" render="Label" position="160,240" zPosition="1" size="140,40" font="Regular;19" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" /> </screen>""" - + def __init__(self, session, list, selected_caids): self.skin = CAidSelect.skin Screen.__init__(self, session) @@ -365,6 +373,10 @@ class CAidSelect(Screen): "green": self.greenPressed, "red": self.cancel }, -1) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("select CAId's")) def greenPressed(self): list = self.list.getSelectionsList() @@ -411,6 +423,7 @@ class myProviderSelection(ChannelSelectionBase): def __onExecCallback(self): self.showSatellites() + self.setTitle(_("Select provider to add...")) def channelSelected(self): # just return selected service ref = self.getCurrentSelection() @@ -516,6 +529,7 @@ class myChannelSelection(ChannelSelectionBase): def __onExecCallback(self): self.setModeTv() + self.setTitle(_("Select service to add...")) def doNothing(self): print "nothing to do..." diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py index c91c8588..6d404cf2 100644 --- a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py @@ -16,6 +16,7 @@ from enigma import eConsoleAppContainer, eListbox, gFont, eListboxPythonMultiCon from os import system, remove import re import urllib +from Tools.Downloader import downloadWithProgress from twisted.web import client from twisted.internet import reactor, defer from twisted.python import failure @@ -24,57 +25,6 @@ from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier class UserRequestedCancel(Exception): pass -class HTTPProgressDownloader(client.HTTPDownloader): - def __init__(self, url, outfile, headers=None): - client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox .NFI Download Plugin") - self.status = None - self.progress_callback = None - self.deferred = defer.Deferred() - - def noPage(self, reason): - if self.status == "304": - print reason.getErrorMessage() - client.HTTPDownloader.page(self, "") - else: - client.HTTPDownloader.noPage(self, reason) - - def gotHeaders(self, headers): - if self.status == "200": - if headers.has_key("content-length"): - self.totalbytes = int(headers["content-length"][0]) - else: - self.totalbytes = 0 - self.currentbytes = 0.0 - return client.HTTPDownloader.gotHeaders(self, headers) - - def pagePart(self, packet): - if self.status == "200": - self.currentbytes += len(packet) - if self.totalbytes and self.progress_callback: - self.progress_callback(self.currentbytes, self.totalbytes) - return client.HTTPDownloader.pagePart(self, packet) - - def pageEnd(self): - return client.HTTPDownloader.pageEnd(self) - -class downloadWithProgress: - def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs): - scheme, host, port, path = client._parse(url) - self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs) - self.connection = reactor.connectTCP(host, port, self.factory) - - def start(self): - return self.factory.deferred - - def stop(self): - print "[stop]" - self.connection.disconnect() - #self.factory.deferred.errback(failure.Failure(UserRequestedCancel)) - - def addProgress(self, progress_callback): - print "[addProgress]" - self.factory.progress_callback = progress_callback - class Feedlist(MenuList): def __init__(self, list=[], enableWrapAround = False): MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent) diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index c1618184..9adaa6db 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1631,12 +1631,20 @@ class InfoBarAudioSelection: idx = 0 while idx < n: + cnt = 0 i = audio.getTrackInfo(idx) - language = i.getLanguage() + languages = i.getLanguage().split('/') description = i.getDescription() + language = "" - if LanguageCodes.has_key(language): - language = LanguageCodes[language][0] + for lang in languages: + if cnt: + language += ' / ' + if LanguageCodes.has_key(lang): + language += LanguageCodes[lang][0] + else: + language += lang + cnt += 1 if len(description): description += " (" + language + ")" diff --git a/lib/python/Tools/Downloader.py b/lib/python/Tools/Downloader.py new file mode 100644 index 00000000..ffc24c1c --- /dev/null +++ b/lib/python/Tools/Downloader.py @@ -0,0 +1,53 @@ +from twisted.web import client +from twisted.internet import reactor, defer +from twisted.python import failure + +class HTTPProgressDownloader(client.HTTPDownloader): + def __init__(self, url, outfile, headers=None): + client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="Dreambox HTTP Downloader") + self.status = None + self.progress_callback = None + self.deferred = defer.Deferred() + + def noPage(self, reason): + if self.status == "304": + print reason.getErrorMessage() + client.HTTPDownloader.page(self, "") + else: + client.HTTPDownloader.noPage(self, reason) + + def gotHeaders(self, headers): + if self.status == "200": + if headers.has_key("content-length"): + self.totalbytes = int(headers["content-length"][0]) + else: + self.totalbytes = 0 + self.currentbytes = 0.0 + return client.HTTPDownloader.gotHeaders(self, headers) + + def pagePart(self, packet): + if self.status == "200": + self.currentbytes += len(packet) + if self.totalbytes and self.progress_callback: + self.progress_callback(self.currentbytes, self.totalbytes) + return client.HTTPDownloader.pagePart(self, packet) + + def pageEnd(self): + return client.HTTPDownloader.pageEnd(self) + +class downloadWithProgress: + def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs): + scheme, host, port, path = client._parse(url) + self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs) + self.connection = reactor.connectTCP(host, port, self.factory) + + def start(self): + return self.factory.deferred + + def stop(self): + print "[stop]" + self.connection.disconnect() + + def addProgress(self, progress_callback): + print "[addProgress]" + self.factory.progress_callback = progress_callback diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am index fd23bd12..e7904d66 100644 --- a/lib/python/Tools/Makefile.am +++ b/lib/python/Tools/Makefile.am @@ -4,4 +4,5 @@ install_PYTHON = \ FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \ KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \ RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \ - LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py + LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py \ + Downloader.py diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 5866d069..b179da84 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -708,7 +708,7 @@ int eServiceMP3::getInfo(int w) std::string eServiceMP3::getInfoString(int w) { - if ( !m_stream_tags ) + if ( !m_stream_tags && w < sUser && w > 26 ) return ""; const gchar *tag = 0; switch (w) @@ -806,7 +806,6 @@ std::string eServiceMP3::getInfoString(int w) case sTagChannelMode: tag = "channel-mode"; break; - case sUser+12: return m_error_message; default: @@ -1134,6 +1133,7 @@ eDebug("AUDIO STRUCT=%s", g_type); g_free (g_lang); // g_free (g_type); } + m_event((iPlayableService*)this, evUpdatedEventInfo); } case GST_MESSAGE_ELEMENT: { |
