[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [libringclient] src: video: Add videoStopped call signal
From: Emmanuel Lepage Vallee <emmanuel.lepage () savoirfairelinux ! com>
Date: 2015-04-30 23:38:07
Message-ID: E1Yny1v-0002LU-WD () scm ! kde ! org
[Download RAW message or body]
Git commit dab9b6644f38219f3b9972b797e907d1dea5eb03 by Emmanuel Lepage Vallee.
Committed on 30/04/2015 at 23:37.
Pushed by lepagevalleeemmanuel into branch 'master'.
video: Add videoStopped call signal
Refs #71995
M +9 -0 src/call.cpp
M +2 -0 src/call.h
M +4 -0 src/callmodel.cpp
M +2 -0 src/callmodel.h
M +1 -0 src/private/call_p.h
M +6 -0 src/private/videorenderermanager.cpp
http://commits.kde.org/libringclient/dab9b6644f38219f3b9972b797e907d1dea5eb03
diff --git a/src/call.cpp b/src/call.cpp
index dbf91bf..633bb8c 100644
--- a/src/call.cpp
+++ b/src/call.cpp
@@ -872,6 +872,15 @@ void CallPrivate::registerRenderer(Video::Renderer* renderer)
#endif
}
+void CallPrivate::removeRenderer(Video::Renderer* renderer)
+{
+ #ifdef ENABLE_VIDEO
+ emit q_ptr->videoStopped(renderer);
+ #else
+ return;
+ #endif
+}
+
/*****************************************************************************
* *
diff --git a/src/call.h b/src/call.h
index 7531182..0e2697a 100644
--- a/src/call.h
+++ b/src/call.h
@@ -342,6 +342,8 @@ Q_SIGNALS:
void dialNumberChanged(const QString& number);
///Announce a new video renderer
void videoStarted(Video::Renderer* renderer);
+ ///Remove a new video renderer
+ void videoStopped(Video::Renderer* renderer);
};
Q_DECLARE_METATYPE(Call*)
diff --git a/src/callmodel.cpp b/src/callmodel.cpp
index 5bad310..a1be729 100644
--- a/src/callmodel.cpp
+++ b/src/callmodel.cpp
@@ -413,6 +413,9 @@ Call* CallModelPrivate::addCall2(Call* call, Call* parentCall)
connect(call,&Call::videoStarted,[this,call](Video::Renderer* r){
emit q_ptr->rendererAdded(call, r);
});
+ connect(call,&Call::videoStopped,[this,call](Video::Renderer* r){
+ emit q_ptr->rendererRemoved(call, r);
+ });
emit q_ptr->layoutChanged();
}
return call;
@@ -434,6 +437,7 @@ Call* CallModel::dialingCall(const QString& peerName, Account* \
account) ///Create a new incoming call when the daemon is being called
Call* CallModelPrivate::addIncomingCall(const QString& callId)
{
+ qDebug() << "New incoming call:" << callId;
Call* call = addCall2(CallPrivate::buildIncomingCall(callId));
//The call can already have been invalidated by the daemon, then do nothing
diff --git a/src/callmodel.h b/src/callmodel.h
index 1b83b9b..b145d4c 100644
--- a/src/callmodel.h
+++ b/src/callmodel.h
@@ -154,6 +154,8 @@ Q_SIGNALS:
void callAdded ( Call* call , Call* parent );
///Emitted when a new Video::Renderer is available
void rendererAdded ( Call* call, Video::Renderer* renderer );
+ ///Emitted when a new Video::Renderer is available
+ void rendererRemoved ( Call* call, Video::Renderer* renderer );
};
Q_DECLARE_METATYPE(CallModel*)
diff --git a/src/private/call_p.h b/src/private/call_p.h
index 8d8583e..382103e 100644
--- a/src/private/call_p.h
+++ b/src/private/call_p.h
@@ -225,6 +225,7 @@ public:
void setStartTimeStamp(time_t stamp);
void initTimer();
void registerRenderer(Video::Renderer* renderer);
+ void removeRenderer(Video::Renderer* renderer);
//Static getters
static Call::State startStateFromDaemonCallState ( const QString& \
daemonCallState, const QString& daemonCallType );
diff --git a/src/private/videorenderermanager.cpp \
b/src/private/videorenderermanager.cpp index f054cb2..e65c8a8 100644
--- a/src/private/videorenderermanager.cpp
+++ b/src/private/videorenderermanager.cpp
@@ -284,6 +284,12 @@ void VideoRendererManagerPrivate::stoppedDecoding(const QString& \
id, const QStri return;
}
+ Call* c = CallModel::instance()->getCall(id);
+
+ if (c) {
+ c->d_ptr->removeRenderer(r);
+ }
+
r->stopRendering();
qDebug() << "Video stopped for call" << id << "Renderer found:" << \
(m_hRenderers[id.toLatin1()] != nullptr);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic