aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/iservice.h2
-rw-r--r--lib/service/listboxservice.h14
-rw-r--r--lib/service/servicedvb.cpp7
-rw-r--r--lib/service/servicedvb.h1
4 files changed, 16 insertions, 8 deletions
diff --git a/lib/service/iservice.h b/lib/service/iservice.h
index 5f861899..e21fd99f 100644
--- a/lib/service/iservice.h
+++ b/lib/service/iservice.h
@@ -252,6 +252,8 @@ TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);
class iMutableServiceList: public iObject
{
public:
+ /* flush changes */
+ virtual RESULT flushChanges()=0;
/* adds a service to a list */
virtual RESULT addService(eServiceReference &ref)=0;
/* removes a service from a list */
diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h
index b2fc311b..e65ffc8d 100644
--- a/lib/service/listboxservice.h
+++ b/lib/service/listboxservice.h
@@ -13,13 +13,13 @@ public:
eListboxServiceContent();
void setRoot(const eServiceReference &ref);
void getCurrent(eServiceReference &ref);
-
+
/* support for marked services */
void initMarked();
void addMarked(const eServiceReference &ref);
void removeMarked(const eServiceReference &ref);
int isMarked(const eServiceReference &ref);
-
+
/* this is NOT thread safe! */
void markedQueryStart();
int markedQueryNext(eServiceReference &ref);
@@ -46,17 +46,16 @@ public:
void setElementFont(int element, gFont *font);
void sort();
-
+
int setCurrentMarked(bool);
-
+ int cursorSet(int n);
+ int cursorGet();
protected:
void cursorHome();
void cursorEnd();
int cursorMove(int count=1);
int cursorValid();
- int cursorSet(int n);
- int cursorGet();
-
+
void cursorSave();
void cursorRestore();
int size();
@@ -87,7 +86,6 @@ private:
/* support for marked services */
std::set<eServiceReference> m_marked;
-
std::set<eServiceReference>::const_iterator m_marked_iterator;
/* support for movemode */
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index b1c18a1d..77fe3faf 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -312,6 +312,13 @@ RESULT eDVBServiceList::moveService(eServiceReference &ref, int pos)
return m_bouquet->moveService(ref, pos);
}
+RESULT eDVBServiceList::flushChanges()
+{
+ if (!m_bouquet)
+ return -1;
+ return m_bouquet->flushChanges();
+}
+
RESULT eServiceFactoryDVB::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr)
{
ePtr<eDVBService> service;
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index 165703dd..ac856ed7 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -37,6 +37,7 @@ public:
int compareLessEqual(const eServiceReference &a, const eServiceReference &b);
RESULT startEdit(ePtr<iMutableServiceList> &);
+ RESULT flushChanges();
RESULT addService(eServiceReference &ref);
RESULT removeService(eServiceReference &ref);
RESULT moveService(eServiceReference &ref, int pos);