aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/dcc/broker.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2009-11-12 15:12:14 +0000
committerGravatar Fabio Bas2009-11-12 15:12:14 +0000
commitadfa9fbec1f3fe1a4827e84d3ede0b141fee4d79 (patch)
tree10efcc82dbe63b6a4411be7adff98a5a6013c976 /src/modules/dcc/broker.cpp
parent[KVIrc] (trunk) Add -lXrender to ${LIBS} if built with X11/Xrender support. (diff)
downloadKVIrc-adfa9fbec1f3fe1a4827e84d3ede0b141fee4d79.tar.gz
KVIrc-adfa9fbec1f3fe1a4827e84d3ede0b141fee4d79.tar.bz2
KVIrc-adfa9fbec1f3fe1a4827e84d3ede0b141fee4d79.zip
first shy implementation of dcc video; highly instable and bandwitdth-sucker, bad coded, puppy-killer, you've been warned.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3597 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/dcc/broker.cpp')
-rw-r--r--src/modules/dcc/broker.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/modules/dcc/broker.cpp b/src/modules/dcc/broker.cpp
index 4d0453aa8..d0c64b145 100644
--- a/src/modules/dcc/broker.cpp
+++ b/src/modules/dcc/broker.cpp
@@ -27,6 +27,7 @@
#include "chat.h"
#include "send.h"
#include "voice.h"
+#include "video.h"
#ifdef COMPILE_DCC_CANVAS
#include "canvas.h"
@@ -398,6 +399,75 @@ void KviDccBroker::passiveVoiceExecute(KviDccDescriptor * dcc)
///////////////////////////////////////////////////////////////////////////////
+// ACTIVE VIDEO
+///////////////////////////////////////////////////////////////////////////////
+
+void KviDccBroker::activeVideoManage(KviDccDescriptor * dcc)
+{
+ if(!dcc->bAutoAccept)
+ {
+ // need confirmation
+ QString tmp = __tr2qs_ctx(
+ "<b>%1 [%2@%3]</b> requests a<br>" \
+ "<b>Direct Client Connection</b> in <b>VIDEO</b> mode.<br>" \
+ "The connection target will be host <b>%4</b> on port <b>%5</b><br>" \
+ ,"dcc" \
+ ).arg(dcc->szNick).arg(dcc->szUser).arg(dcc->szHost).arg(dcc->szIp).arg(dcc->szPort);
+
+ KviDccAcceptBox * box = new KviDccAcceptBox(this,dcc,tmp,__tr2qs_ctx("DCC VIDEO request","dcc"));
+ m_pBoxList->append(box);
+ connect(box,SIGNAL(accepted(KviDccBox *,KviDccDescriptor *)),
+ this,SLOT(activeVideoExecute(KviDccBox *,KviDccDescriptor *)));
+ connect(box,SIGNAL(rejected(KviDccBox *,KviDccDescriptor *)),
+ this,SLOT(cancelDcc(KviDccBox *,KviDccDescriptor *)));
+ box->show();
+ } else {
+ // auto accept
+ activeVideoExecute(0,dcc);
+ }
+}
+
+void KviDccBroker::activeVideoExecute(KviDccBox *box,KviDccDescriptor * dcc)
+{
+ if(box)box->forgetDescriptor();
+
+ if(!g_pApp->windowExists(dcc->console()))
+ {
+ // rebind to the first available console....
+ dcc->setConsole(g_pApp->activeConsole());
+ }
+
+ KviStr tmp(KviStr::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
+ KviDccVideo * v = new KviDccVideo(dcc->console()->frame(),dcc,tmp.ptr());
+
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
+ (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideo) || \
+ (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideoWhenAutoAccepted)));
+
+ dcc->console()->frame()->addWindow(v,!bMinimized);
+ if(bMinimized)v->minimize();
+
+ m_pDccWindowList->append(v);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+// PASSIVE VOICE
+///////////////////////////////////////////////////////////////////////////////
+
+void KviDccBroker::passiveVideoExecute(KviDccDescriptor * dcc)
+{
+ KviStr tmp(KviStr::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
+ KviDccVideo * v = new KviDccVideo(dcc->console()->frame(),dcc,tmp.ptr());
+ //#warning "Create minimized dcc video ?... or maybe it's too much ? :)"
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat);
+ dcc->console()->frame()->addWindow(v,!bMinimized);
+ if(bMinimized)v->minimize();
+ m_pDccWindowList->append(v);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
// ACTIVE CANVAS
///////////////////////////////////////////////////////////////////////////////