From 528e822d8e75c4efbbc62e787753fe35aa63ea30 Mon Sep 17 00:00:00 2001 From: csoler Date: Sat, 25 Feb 2012 21:03:06 +0000 Subject: [PATCH] added transmission of data from voip service to audio popup chat dialog git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4991 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- plugins/VOIP/VOIPPlugin.cpp | 4 +++- plugins/VOIP/gui/AudioPopupChatDialog.h | 3 +-- plugins/VOIP/gui/PluginGUIHandler.cpp | 27 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/plugins/VOIP/VOIPPlugin.cpp b/plugins/VOIP/VOIPPlugin.cpp index 18d1c08fb..122428c0a 100644 --- a/plugins/VOIP/VOIPPlugin.cpp +++ b/plugins/VOIP/VOIPPlugin.cpp @@ -63,7 +63,9 @@ ConfigPage *VOIPPlugin::qt_config_page() const PopupChatDialog *VOIPPlugin::qt_allocate_new_popup_chat_dialog() const { - return new AudioPopupChatDialog() ; + AudioPopupChatDialog *ap = new AudioPopupChatDialog() ; + + return ap ; } std::string VOIPPlugin::qt_transfers_tab_name() const diff --git a/plugins/VOIP/gui/AudioPopupChatDialog.h b/plugins/VOIP/gui/AudioPopupChatDialog.h index 7da117567..6236c588e 100644 --- a/plugins/VOIP/gui/AudioPopupChatDialog.h +++ b/plugins/VOIP/gui/AudioPopupChatDialog.h @@ -19,6 +19,7 @@ class AudioPopupChatDialog: public PopupChatDialog inputDevice->stop() ; } + void addAudioData(const QString name, QByteArray* array) ; private slots: void toggleAudioListen(); void toggleAudioMuteCapture(); @@ -34,8 +35,6 @@ class AudioPopupChatDialog: public PopupChatDialog virtual void updateStatus(const QString& peer_id,int status) ; - void addAudioData(const QString name, QByteArray* array) ; - QPushButton *audioListenToggleButton ; QPushButton *audioMuteCaptureToggleButton ; }; diff --git a/plugins/VOIP/gui/PluginGUIHandler.cpp b/plugins/VOIP/gui/PluginGUIHandler.cpp index f134701f7..262635127 100644 --- a/plugins/VOIP/gui/PluginGUIHandler.cpp +++ b/plugins/VOIP/gui/PluginGUIHandler.cpp @@ -1,5 +1,10 @@ #include +#include +#include +#include #include "PluginGUIHandler.h" +#include +#include void PluginGUIHandler::ReceivedInvitation(const QString& peer_id) { @@ -9,5 +14,27 @@ void PluginGUIHandler::ReceivedInvitation(const QString& peer_id) void PluginGUIHandler::ReceivedVoipData(const QString& peer_id) { std::cerr << "****** Plugin GUI handler: received invitation!" << std::endl; + + std::vector chunks ; + + if(!rsVoip->getIncomingData(peer_id.toStdString(),chunks)) + { + std::cerr << "PluginGUIHandler::ReceivedVoipData(): No data chunks to get. Weird!" << std::endl; + return ; + } + + ChatDialog *di = ChatDialog::getExistingChat(peer_id.toStdString()) ; + + AudioPopupChatDialog *adi = dynamic_cast(di) ; + + if(adi != NULL) + for(unsigned int i=0;i(chunks[i].data),chunks[i].size) ; + adi->addAudioData(peer_id,&qb) ; + free(chunks[i].data) ; + } + else + std::cerr << "Error: received audio data for a chat dialog that does not stand Audio (Peer id = " << peer_id.toStdString() << "!" << std::endl; }