aboutsummaryrefslogtreecommitdiff
path: root/lib/nav/pcore.cpp
blob: 0ee94cc64663e7172af1405f9be7d143f59caf18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <lib/nav/pcore.h>
#include <lib/service/service.h>
#include <lib/service/event.h>
#include <lib/base/eerror.h>

DEFINE_REF(pNavigation);

pNavigation::pNavigation()
{
	ePtr<iServiceHandler> service_center;
	eServiceCenter::getInstance(service_center);

	assert(service_center);
	m_core = new eNavigation(service_center);
	
	m_core->connectEvent(slot(*this, &pNavigation::navEvent), m_nav_event_connection);
}

RESULT pNavigation::playService(const eServiceReference &service)
{
	return m_core->playService(service);
}

RESULT pNavigation::recordService(const eServiceReference &ref, ePtr<iRecordableService> &service)
{
	return m_core->recordService(ref, service);
}

RESULT pNavigation::enqueueService(const eServiceReference &service)
{
	return m_core->enqueueService(service);
}

RESULT pNavigation::getCurrentService(ePtr<iPlayableService> &service)
{
	return m_core->getCurrentService(service);
}

RESULT pNavigation::getPlaylist(ePtr<ePlaylist> &playlist)
{
	return m_core->getPlaylist(playlist);
}

RESULT pNavigation::pause(int p)
{
	return m_core->pause(p);
}

RESULT pNavigation::stopService()
{
	return m_core->stopService();
}

void pNavigation::navEvent(eNavigation *nav, int event)
{
		/* just relay the events here. */
	switch (event)
	{
	case eNavigation::evStopService:
		m_event(evStopService);
		break;
	case eNavigation::evNewService:
		m_event(evNewService);
		break;
	case eNavigation::evPlayFailed:
		m_event(evPlayFailed);
		break;
	case eNavigation::evPlaylistDone:
		m_event(evPlaylistDone);
		break;
	case eNavigation::evUpdatedEventInfo:
		m_event(evUpdatedEventInfo);
		break;
	case eNavigation::evUpdatedInfo:
		m_event(evUpdatedInfo);
		break;
	}
}