projects
/
vuplus_dvbapp
/ 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
32b9007
..
f514507
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
59d4d92
..
8623336
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
d516795
..
71c2ae6
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
5e0cf0b
..
27f48b5
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: