Merge branch 'master' of git.opendreambox.org:/git/enigma2
authorghost <andreas.monzner@multimedia-labs.de>
Tue, 12 May 2009 10:54:28 +0000 (12:54 +0200)
committerghost <andreas.monzner@multimedia-labs.de>
Tue, 12 May 2009 10:54:28 +0000 (12:54 +0200)
lib/python/Components/Converter/ServicePosition.py
lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py
lib/python/Tools/Downloader.py [new file with mode: 0644]
lib/python/Tools/Makefile.am
lib/service/servicemp3.cpp

index b92af40b723e9b447be45338c7f6cd8c639b7f74..56a6db675aa344203a6e23990e8f01ef9c7a1889 100644 (file)
@@ -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
index c91c85888b91a73a31b97e66b9f26b360c74bae0..6d404cf2f1ce62edeae99ac7fa14ee85a78f3f7a 100644 (file)
@@ -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/Tools/Downloader.py b/lib/python/Tools/Downloader.py
new file mode 100644 (file)
index 0000000..ffc24c1
--- /dev/null
@@ -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
index fd23bd121c6cd6f20c84d2980b3b0b3148700ca4..e7904d668c17f9a77f8e338353f8d4b81c0f9dce 100644 (file)
@@ -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
index 79098f2c81eae0d2f91b2332fd766ef25deee6a9..5ac413b164ca35f1b7605c07a38bdc1178d73641 100644 (file)
@@ -702,7 +702,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 "";
        gchar *tag = 0;
        switch (w)
@@ -800,7 +800,6 @@ std::string eServiceMP3::getInfoString(int w)
        case sTagChannelMode:
                tag = "channel-mode";
                break;
-
        case sUser+12:
                return m_error_message;
        default:
@@ -1128,6 +1127,7 @@ eDebug("AUDIO STRUCT=%s", g_type);
                                g_free (g_lang);
 //                             g_free (g_type);
                        }
+                       m_event((iPlayableService*)this, evUpdatedEventInfo);
                }
                case GST_MESSAGE_ELEMENT:
                {