summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/msn/webcam.h
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/protocols/msn/webcam.h')
-rw-r--r--kopete/protocols/msn/webcam.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/kopete/protocols/msn/webcam.h b/kopete/protocols/msn/webcam.h
new file mode 100644
index 00000000..a056fe24
--- /dev/null
+++ b/kopete/protocols/msn/webcam.h
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2005 by Olivier Goffart <ogoffart@ kde.org>
+
+ *************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ *************************************************************************
+*/
+
+#ifndef P2PWEBCAM_H
+#define P2PWEBCAM_H
+
+#include "p2p.h"
+
+#if MSN_WEBCAM
+
+namespace KNetwork{ class TDEServerSocket; class TDEBufferedSocket; }
+
+class MimicWrapper;
+class TQLabel;
+class MSNWebcamDialog;
+class TQTimerEvent;
+
+namespace P2P {
+
+
+class Webcam : public TransferContext
+{ Q_OBJECT
+
+ public:
+ enum Who { wProducer , wViewer };
+
+ Webcam( Who who , const TQString& to, Dispatcher *parent, TQ_UINT32 sessionID);
+ ~Webcam( );
+
+ virtual void processMessage(const Message& message);
+
+ public slots:
+ void askIncommingInvitation();
+ virtual void acknowledged();
+ void sendBYEMessage();
+
+ private:
+ void makeSIPMessage(const TQString &message, TQ_UINT8 XX=0, TQ_UINT8 YY=9 , TQ_UINT8 ZZ=0);
+ void sendBigP2PMessage( const TQByteArray& dataMessage );
+ void closeAllOtherSockets();
+ TQString m_content;
+
+ TQString xml(uint session , uint rid);
+ int getAvailablePort();
+
+
+ KNetwork::TDEServerSocket *m_listener;
+ KNetwork::TDEBufferedSocket *m_webcamSocket;
+
+ enum WebcamStatus { wsNegotiating , wsConnecting, wsConnected, wsTransfer } ;
+
+ Who m_who;
+
+ TQString m_myAuth;
+ TQString m_peerAuth;
+
+ MimicWrapper *m_mimic;
+ MSNWebcamDialog *m_widget;
+
+ TQValueList<KNetwork::TDEBufferedSocket* > m_allSockets;
+ TQMap<KNetwork::TDEBufferedSocket*, WebcamStatus> m_webcamStates;
+
+ int m_timerId;
+ int m_timerFps;
+
+ private slots:
+ void slotListenError(int errorCode);
+ void slotAccept();
+ void slotSocketRead();
+ void slotSocketClosed();
+ void slotSocketError(int errorCode);
+ void slotSocketConnected();
+// void slotReadyWrite();
+ protected:
+ virtual void timerEvent( TQTimerEvent * );
+};
+
+}
+
+#endif
+
+#endif