Skip to content

Commit 4cf2709

Browse files
committed
[eStreamServer]
* add hostname to streamStatusChanged callback
1 parent 03965b1 commit 4cf2709

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

lib/dvb/streamserver.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ void eStreamClient::notifier(int what)
175175
pos = serviceref.find('?');
176176
if (pos == std::string::npos)
177177
{
178-
parent->startStream(serviceref);
178+
parent->startStream(serviceref, m_remotehost);
179179

180180
eDebug("[eDVBServiceStream] stream ref: %s", serviceref.c_str());
181181
if (eDVBServiceStream::start(serviceref.c_str(), streamFd) >= 0)
@@ -200,7 +200,7 @@ void eStreamClient::notifier(int what)
200200
if (posdur != std::string::npos)
201201
{
202202

203-
parent->startStream(serviceref);
203+
parent->startStream(serviceref, m_remotehost);
204204

205205
if (eDVBServiceStream::start(serviceref.c_str(), streamFd) >= 0)
206206
{
@@ -360,15 +360,16 @@ void eStreamServer::connectionLost(eStreamClient *client)
360360
if (it != clients.end())
361361
{
362362
std::string serviceref = it->getServiceref();
363+
std::string client = it->getRemoteHost();
363364
clients.erase(it);
364-
streamStatusChanged(2,serviceref.c_str());
365+
streamStatusChanged(2,serviceref.c_str(), client.c_str());
365366
eNavigation::getInstance()->removeStreamService(serviceref);
366367
}
367368
}
368369

369-
void eStreamServer::startStream(const std::string serviceref)
370+
void eStreamServer::startStream(const std::string serviceref, const std::string remotehost)
370371
{
371-
streamStatusChanged(0,serviceref.c_str());
372+
streamStatusChanged(0,serviceref.c_str(), remotehost.c_str());
372373
eNavigation::getInstance()->addStreamService(serviceref);
373374
}
374375

@@ -377,7 +378,7 @@ void eStreamServer::stopStream()
377378
eSmartPtrList<eStreamClient>::iterator it = clients.begin();
378379
if (it != clients.end())
379380
{
380-
streamStatusChanged(1,it->getServiceref().c_str());
381+
streamStatusChanged(1,it->getServiceref().c_str(), it->getRemoteHost().c_str());
381382
eNavigation::getInstance()->removeStreamService(it->getServiceref());
382383
it->stopStream();
383384
}

lib/dvb/streamserver.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ class eStreamServer: public eServerSocket
7171

7272
static eStreamServer *getInstance();
7373
void stopStream();
74-
void startStream(const std::string serviceref);
74+
void startStream(const std::string serviceref, const std::string remotehost);
7575
bool stopStreamClient(const std::string remotehost, const std::string serviceref);
7676
PyObject *getConnectedClients();
7777
PyObject *getConnectedClientDetails(int index);
78-
PSignal2<void,int,const char *> streamStatusChanged;
78+
PSignal3<void,int,const char *,const char *> streamStatusChanged;
7979

8080
enum
8181
{

lib/python/Navigation.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,8 @@ def stopRecordService(self, service):
505505
ret = self.pnav and self.pnav.stopRecordService(service)
506506
return ret
507507

508-
def streamStatusChangedCB(self, status, sref):
508+
def streamStatusChangedCB(self, status, sref, host):
509+
print(f"[Navigation] Stream status changed: {status}, {sref}, {host}.")
509510
recService = iRecordableServicePtr() # This is only a dummy variable
510511
if status == 0:
511512
self.activeStreamings = [recService] # TODO: Check if this is correct. Add support for multiple streams.

lib/python/enigma_python.i

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,9 +340,15 @@ public:
340340
$1 = $input->get();
341341
}
342342
343-
%template(PSignal2VIS) PSignal2<void,int,const char *c>;
343+
template<class R, class P0, class P1, class P2> class PSignal3
344+
{
345+
public:
346+
PyObject *get();
347+
};
348+
349+
%template(PSignal3VISS) PSignal3<void,int,const char *,const char *>;
344350
345-
%typemap(out) PSignal2VIS {
351+
%typemap(out) PSignal3VISS {
346352
$1 = $input->get();
347353
}
348354

0 commit comments

Comments
 (0)