aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index 4d78292a..676c0633 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -297,7 +297,7 @@ RESULT eDVBResourceManager::getChannelList(ePtr<iDVBChannelList> &list)
}
-RESULT eDVBResourceManager::allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel)
+RESULT eDVBResourceManager::allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel, bool fake)
{
/* first, check if a channel is already existing. */
@@ -334,19 +334,22 @@ RESULT eDVBResourceManager::allocateChannel(const eDVBChannelID &channelid, eUse
if (allocateFrontend(fe, feparm))
return errNoFrontend;
-
- RESULT res;
- ePtr<eDVBChannel> ch;
- ch = new eDVBChannel(this, fe);
- res = ch->setChannel(channelid, feparm);
- if (res)
+ if (!fake)
{
- channel = 0;
- return errChidNotFound;
- }
+ RESULT res;
+ ePtr<eDVBChannel> ch;
+ ch = new eDVBChannel(this, fe);
+
+ res = ch->setChannel(channelid, feparm);
+ if (res)
+ {
+ channel = 0;
+ return errChidNotFound;
+ }
- channel = ch;
+ channel = ch;
+ }
return 0;
}