git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5824a5d
)
small servicelist speedup
author
Andreas Monzner
<andreas.monzner@multimedia-labs.de>
Tue, 21 Nov 2006 20:17:09 +0000
(20:17 +0000)
committer
Andreas Monzner
<andreas.monzner@multimedia-labs.de>
Tue, 21 Nov 2006 20:17:09 +0000
(20:17 +0000)
lib/service/listboxservice.cpp
patch
|
blob
|
history
lib/service/listboxservice.h
patch
|
blob
|
history
lib/service/servicedvb.cpp
patch
|
blob
|
history
lib/service/servicedvb.h
patch
|
blob
|
history
diff --git
a/lib/service/listboxservice.cpp
b/lib/service/listboxservice.cpp
index 32b9007f71c41675f4f22c68e214e58ffb518afb..f51450745716d125db424bf9b967c4ec40fed9e2 100644
(file)
--- a/
lib/service/listboxservice.cpp
+++ b/
lib/service/listboxservice.cpp
@@
-51,12
+51,10
@@
void eListboxServiceContent::setRoot(const eServiceReference &root, bool justSet
return;
assert(m_service_center);
return;
assert(m_service_center);
- ePtr<iListableService> lst;
- if (m_service_center->list(m_root, lst))
+ if (m_service_center->list(m_root, m_lst))
eDebug("no list available!");
eDebug("no list available!");
- else
- if (lst->getContent(m_list))
- eDebug("getContent failed");
+ else if (m_lst->getContent(m_list))
+ eDebug("getContent failed");
FillFinished();
}
FillFinished();
}
@@
-227,10
+225,11
@@
void eListboxServiceContent::setPixmap(int type, ePtr<gPixmap> &pic)
void eListboxServiceContent::sort()
{
void eListboxServiceContent::sort()
{
- ePtr<iListableService> lst;
- if (!m_service_center->list(m_root, lst))
+ if (!m_lst)
+ m_service_center->list(m_root, m_lst);
+ if (m_lst)
{
{
- m_list.sort(iListableServiceCompare(lst));
+ m_list.sort(iListableServiceCompare(
m_
lst));
/* FIXME: is this really required or can we somehow keep the current entry? */
cursorHome();
if (m_listbox)
/* FIXME: is this really required or can we somehow keep the current entry? */
cursorHome();
if (m_listbox)
@@
-304,13
+303,12
@@
int eListboxServiceContent::setCurrentMarked(bool state)
m_listbox->entryChanged(m_cursor_number);
if (!state)
{
m_listbox->entryChanged(m_cursor_number);
if (!state)
{
- ePtr<iListableService> lst;
- if (m_service_center->list(m_root, lst))
- eDebug("no list available!");
- else
+ if (!m_lst)
+ m_service_center->list(m_root, m_lst);
+ if (m_lst)
{
ePtr<iMutableServiceList> list;
{
ePtr<iMutableServiceList> list;
- if (lst->startEdit(list))
+ if (
m_
lst->startEdit(list))
eDebug("no editable list");
else
{
eDebug("no editable list");
else
{
@@
-329,6
+327,8
@@
int eListboxServiceContent::setCurrentMarked(bool state)
}
}
}
}
}
}
+ else
+ eDebug("no list available!");
}
}
}
}
diff --git
a/lib/service/listboxservice.h
b/lib/service/listboxservice.h
index 59d4d9200c2c360f3146a34f02258ce4f2c7fdfd..8623336f61355d8c1e7fea3b6f3980fe8c53f023 100644
(file)
--- a/
lib/service/listboxservice.h
+++ b/
lib/service/listboxservice.h
@@
-106,6
+106,7
@@
private:
eSize m_itemsize;
ePtr<iServiceHandler> m_service_center;
eSize m_itemsize;
ePtr<iServiceHandler> m_service_center;
+ ePtr<iListableService> m_lst;
eServiceReference m_root;
eServiceReference m_root;
diff --git
a/lib/service/servicedvb.cpp
b/lib/service/servicedvb.cpp
index d5167952f477558d2540700f9b80062bdee33c21..71c2ae601b6d7fa339c862175ef1a02de92b4f4c 100644
(file)
--- a/
lib/service/servicedvb.cpp
+++ b/
lib/service/servicedvb.cpp
@@
-382,7
+382,7
@@
RESULT eDVBServiceList::getContent(std::list<eServiceReference> &list, bool sort
if (!m_query)
return -1;
if (!m_query)
return -1;
-
+
while (!m_query->getNextResult(ref))
list.push_back(ref);
while (!m_query->getNextResult(ref))
list.push_back(ref);
@@
-489,11
+489,6
@@
RESULT eDVBServiceList::getNext(eServiceReference &ref)
return m_query->getNextResult((eServiceReferenceDVB&)ref);
}
return m_query->getNextResult((eServiceReferenceDVB&)ref);
}
-int eDVBServiceList::compareLessEqual(const eServiceReference &a, const eServiceReference &b)
-{
- return m_query->compareLessEqual((const eServiceReferenceDVB&)a, (const eServiceReferenceDVB&)b);
-}
-
RESULT eDVBServiceList::startEdit(ePtr<iMutableServiceList> &res)
{
if (m_parent.flags & eServiceReference::flagDirectory) // bouquet
RESULT eDVBServiceList::startEdit(ePtr<iMutableServiceList> &res)
{
if (m_parent.flags & eServiceReference::flagDirectory) // bouquet
diff --git
a/lib/service/servicedvb.h
b/lib/service/servicedvb.h
index 5e0cf0b4e17b137232fd0787e9d1cd6222d35a2f..27f48b5735c8b2c51d0078801c6f8c91fc728926 100644
(file)
--- a/
lib/service/servicedvb.h
+++ b/
lib/service/servicedvb.h
@@
-44,7
+44,7
@@
public:
PyObject *getContent(const char* formatstr, bool sorted=false);
RESULT getContent(std::list<eServiceReference> &list, bool sorted=false);
RESULT getNext(eServiceReference &ptr);
PyObject *getContent(const char* formatstr, bool sorted=false);
RESULT getContent(std::list<eServiceReference> &list, bool sorted=false);
RESULT getNext(eServiceReference &ptr);
- int compareLessEqual(const eServiceReference &a, const eServiceReference &b);
+ in
line in
t compareLessEqual(const eServiceReference &a, const eServiceReference &b);
RESULT startEdit(ePtr<iMutableServiceList> &);
RESULT flushChanges();
RESULT startEdit(ePtr<iMutableServiceList> &);
RESULT flushChanges();
@@
-63,6
+63,11
@@
private:
eBouquet *m_bouquet;
};
eBouquet *m_bouquet;
};
+inline int eDVBServiceList::compareLessEqual(const eServiceReference &a, const eServiceReference &b)
+{
+ return m_query->compareLessEqual((const eServiceReferenceDVB&)a, (const eServiceReferenceDVB&)b);
+}
+
class eDVBServiceBase: public iFrontendInformation
{
protected:
class eDVBServiceBase: public iFrontendInformation
{
protected: