diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-07-20 18:17:12 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-07-20 18:17:12 +0000 |
| commit | b32851030de5d3706883afa87598cba8a8226f5d (patch) | |
| tree | c9ab233567dbd5e39119795bc75b77dc5fddec12 /lib/dvb | |
| parent | ec648cb137f7a02e63752b54be2ce3ac959c7c86 (diff) | |
| download | enigma2-b32851030de5d3706883afa87598cba8a8226f5d.tar.gz enigma2-b32851030de5d3706883afa87598cba8a8226f5d.zip | |
add support for markers in bouquets
< > are usable to jump from marker to marker
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/db.cpp | 10 | ||||
| -rw-r--r-- | lib/dvb/idvb.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index eb0721b6..eb62f1fb 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -12,13 +12,19 @@ DEFINE_REF(eDVBService); -RESULT eBouquet::addService(const eServiceReference &ref) +RESULT eBouquet::addService(const eServiceReference &ref, eServiceReference before) { list::iterator it = std::find(m_services.begin(), m_services.end(), ref); if ( it != m_services.end() ) return -1; - m_services.push_back(ref); + if (before.valid()) + { + it = std::find(m_services.begin(), m_services.end(), before); + m_services.insert(it, ref); + } + else + m_services.push_back(ref); return 0; } diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 5c427e7a..46d3e5d6 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -34,7 +34,7 @@ struct eBouquet list m_services; // the following five methods are implemented in db.cpp RESULT flushChanges(); - RESULT addService(const eServiceReference &); + RESULT addService(const eServiceReference &, eServiceReference before=eServiceReference()); RESULT removeService(const eServiceReference &); RESULT moveService(const eServiceReference &, unsigned int); RESULT setListName(const std::string &name); |
