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; }