[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