diff options
Diffstat (limited to 'lib/dvb/db.cpp')
| -rw-r--r-- | lib/dvb/db.cpp | 10 |
1 files changed, 8 insertions, 2 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; } |
