aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/service.cpp10
-rw-r--r--lib/service/servicedvb.cpp2
-rw-r--r--lib/service/servicefs.cpp2
-rw-r--r--lib/service/servicemp3.cpp15
-rw-r--r--lib/service/servicemp3.h5
5 files changed, 25 insertions, 9 deletions
diff --git a/lib/service/service.cpp b/lib/service/service.cpp
index 99199aa9..6141516f 100644
--- a/lib/service/service.cpp
+++ b/lib/service/service.cpp
@@ -32,16 +32,22 @@ eString eServiceReference::toString() const
eServiceCenter *eServiceCenter::instance;
-eServiceCenter::eServiceCenter()
+eServiceCenter::eServiceCenter(): ref(0)
{
if (!instance)
+ {
+ eDebug("settings instance.");
instance = this;
+ }
}
eServiceCenter::~eServiceCenter()
{
if (instance == this)
+ {
+ eDebug("clear instance");
instance = 0;
+ }
}
DEFINE_REF(eServiceCenter);
@@ -91,4 +97,4 @@ RESULT eServiceCenter::removeServiceFactory(int id)
return 0;
}
-eAutoInitP0<eServiceCenter> init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter");
+eAutoInitPtr<eServiceCenter> init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter");
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 62dbee54..199b58aa 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -166,4 +166,4 @@ RESULT eDVBServicePlay::getName(eString &name)
DEFINE_REF(eDVBServicePlay)
-eAutoInitP0<eServiceFactoryDVB> init_eServiceFactoryDVB(eAutoInitNumbers::service+1, "eServiceFactoryDVB");
+eAutoInitPtr<eServiceFactoryDVB> init_eServiceFactoryDVB(eAutoInitNumbers::service+1, "eServiceFactoryDVB");
diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp
index ad40f0af..91ae44e3 100644
--- a/lib/service/servicefs.cpp
+++ b/lib/service/servicefs.cpp
@@ -109,4 +109,4 @@ RESULT eServiceFS::getContent(std::list<eServiceReference> &list)
return 0;
}
-eAutoInitP0<eServiceFactoryFS> init_eServiceFactoryFS(eAutoInitNumbers::service+1, "eServiceFactoryFS");
+eAutoInitPtr<eServiceFactoryFS> init_eServiceFactoryFS(eAutoInitNumbers::service+1, "eServiceFactoryFS");
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index 27ae1147..a6d19287 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -61,10 +61,12 @@ void eServiceMP3::test_end()
eServiceMP3::eServiceMP3(const char *filename): ref(0), filename(filename), test(eApp)
{
m_state = stIdle;
+ eDebug("SERVICEMP3 construct!");
}
eServiceMP3::~eServiceMP3()
{
+ eDebug("SERVICEMP3 destruct!");
if (m_state == stRunning)
stop();
}
@@ -73,7 +75,7 @@ DEFINE_REF(eServiceMP3);
RESULT eServiceMP3::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)
{
- connection = new eConnection(m_event.connect(event));
+ connection = new eConnection(this, m_event.connect(event));
return 0;
}
@@ -85,7 +87,7 @@ RESULT eServiceMP3::start()
printf("mp3 starts\n");
printf("MP3: %s start\n", filename.c_str());
- test.start(10000, 1);
+ test.start(1000, 1);
CONNECT(test.timeout, eServiceMP3::test_end);
m_event(this, evStart);
return 0;
@@ -109,7 +111,12 @@ RESULT eServiceMP3::getIPausableService(ePtr<iPauseableService> &ptr) { ptr=this
RESULT eServiceMP3::pause() { printf("mp3 pauses!\n"); return 0; }
RESULT eServiceMP3::unpause() { printf("mp3 unpauses!\n"); return 0; }
-RESULT eServiceMP3::getIServiceInformation(ePtr<iServiceInformation>&) { return -1; }
+RESULT eServiceMP3::getIServiceInformation(ePtr<iServiceInformation>&i) { i = this; return 0; }
+RESULT eServiceMP3::getName(eString &name)
+{
+ name = "MP3 File: " + filename;
+ return 0;
+}
-eAutoInitP0<eServiceFactoryMP3> init_eServiceFactoryMP3(eAutoInitNumbers::service+1, "eServiceFactoryMP3");
+eAutoInitPtr<eServiceFactoryMP3> init_eServiceFactoryMP3(eAutoInitNumbers::service+1, "eServiceFactoryMP3");
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h
index b443d6eb..d51207ff 100644
--- a/lib/service/servicemp3.h
+++ b/lib/service/servicemp3.h
@@ -17,7 +17,7 @@ public:
RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
};
-class eServiceMP3: public virtual iPlayableService, public virtual iPauseableService, public virtual iObject, public Object
+class eServiceMP3: public virtual iPlayableService, public virtual iPauseableService, public virtual iServiceInformation, public virtual iObject, public Object
{
DECLARE_REF;
private:
@@ -46,6 +46,9 @@ public:
RESULT unpause();
RESULT getIServiceInformation(ePtr<iServiceInformation>&);
+
+ // iServiceInformation
+ RESULT getName(eString &name);
};
#endif