From fc2f5b2cd655f1391f2abda1b39e37cdec98a951 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 17 Oct 2003 15:35:43 +0000 Subject: Initial revision --- lib/service/servicemp3.cpp | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 lib/service/servicemp3.cpp (limited to 'lib/service/servicemp3.cpp') diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp new file mode 100644 index 00000000..fb5993e4 --- /dev/null +++ b/lib/service/servicemp3.cpp @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#include +#include +#include + +// eServiceFactoryMP3 + +eServiceFactoryMP3::eServiceFactoryMP3(): ref(0) +{ + ePtr sc; + + eServiceCenter::getInstance(sc); + if (sc) + sc->addServiceFactory(eServiceFactoryMP3::id, this); +} + +eServiceFactoryMP3::~eServiceFactoryMP3() +{ + ePtr sc; + + eServiceCenter::getInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryMP3::id); +} + +DEFINE_REF(eServiceFactoryMP3) + + // iServiceHandler +RESULT eServiceFactoryMP3::play(const eServiceReference &ref, ePtr &ptr) +{ + RESULT res; + // check resources... + ptr = new eServiceMP3(ref.path.c_str()); + res = ptr->start(); + if (res) + { + ptr = 0; + return res; + } + return 0; +} + +RESULT eServiceFactoryMP3::record(const eServiceReference &ref, ePtr &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryMP3::list(const eServiceReference &, ePtr &ptr) +{ + ptr=0; + return -1; +} + +// eServiceMP3 + +eServiceMP3::eServiceMP3(const char *filename): filename(filename), ref(0) +{ + printf("MP3: %s start\n", filename); +} + +eServiceMP3::~eServiceMP3() +{ + printf("MP3: %s stop\n", filename.c_str()); +} + +void eServiceMP3::AddRef() +{ + ++ref; +} + +void eServiceMP3::Release() +{ + if (!--ref) + delete this; +} + +RESULT eServiceMP3::start() { printf("mp3 starts\n"); return 0; } +RESULT eServiceMP3::getIPausableService(ePtr &ptr) { ptr=this; return 0; } + + // iPausableService +RESULT eServiceMP3::pause() { printf("mp3 pauses!\n"); return 0; } +RESULT eServiceMP3::unpause() { printf("mp3 unpauses!\n"); return 0; } + + +eAutoInitP0 init_eServiceFactoryMP3(eAutoInitNumbers::service+1, "eServiceFactoryMP3"); -- cgit v1.2.3