diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-07-22 21:30:39 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-07-22 21:30:39 +0000 |
| commit | 01e417060650f4e2cddb9bc838d8f9ab6c47a437 (patch) | |
| tree | a1e7f2f20950feba5f8bbc64254dcffba54c9ab7 /lib/service | |
| parent | 92f02a487b375ae936e7fa74b060bee9d495a106 (diff) | |
| download | enigma2-01e417060650f4e2cddb9bc838d8f9ab6c47a437.tar.gz enigma2-01e417060650f4e2cddb9bc838d8f9ab6c47a437.zip | |
- add markedQuery
Diffstat (limited to 'lib/service')
| -rw-r--r-- | lib/service/listboxservice.cpp | 13 | ||||
| -rw-r--r-- | lib/service/listboxservice.h | 10 |
2 files changed, 21 insertions, 2 deletions
diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp index db4f6b86..24090f73 100644 --- a/lib/service/listboxservice.cpp +++ b/lib/service/listboxservice.cpp @@ -54,6 +54,19 @@ int eListboxServiceContent::isMarked(const eServiceReference &ref) return m_marked.find(ref) != m_marked.end(); } +void eListboxServiceContent::markedQueryStart() +{ + m_marked_iterator = m_marked.begin(); +} + +int eListboxServiceContent::markedQueryNext(eServiceReference &ref) +{ + if (m_marked_iterator == m_marked.end()) + return -1; + ref = *m_marked_iterator++; + return 0; +} + int eListboxServiceContent::lookupService(const eServiceReference &ref) { /* shortcut for cursor */ diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index d5241933..36bb5bb4 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -20,9 +20,13 @@ public: void addMarked(const eServiceReference &ref); void removeMarked(const eServiceReference &ref); int isMarked(const eServiceReference &ref); - int lookupService(const eServiceReference &ref); - + + /* this is NOT thread safe! */ + void markedQueryStart(); + int markedQueryNext(eServiceReference &ref); + int lookupService(const eServiceReference &ref); + protected: void cursorHome(); void cursorEnd(); @@ -56,6 +60,8 @@ private: /* support for marked services */ std::set<eServiceReference> m_marked; + + std::set<eServiceReference>::const_iterator m_marked_iterator; }; #endif |
