PySemsB2ABCalleeDialog added, which has onPyB2ABEvent handler to pass events between b2ab sessions

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@366 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 19 years ago
parent 0aa130852f
commit 3ca9428fa7

@ -44,6 +44,11 @@ void PySemsB2ABDialog::onSessionStart(const AmSipRequest& req)
AmB2ABCallerSession::onSessionStart(req);
}
AmB2ABCalleeSession* PySemsB2ABDialog::createCalleeSession() {
return new PySemsB2ABCalleeDialog(getLocalTag());
}
void PySemsB2ABDialog::process(AmEvent* event)
{
DBG("PySemsB2ABDialog::process\n");
@ -68,3 +73,18 @@ void PySemsB2ABDialog::process(AmEvent* event)
return;
}
void PySemsB2ABCalleeDialog::onB2ABEvent(B2ABEvent* ev) {
PySemsB2ABEvent* py_ev = dynamic_cast<PySemsB2ABEvent*>(ev);
if (NULL != py_ev) {
DBG("calling onPyB2AB...\n");
onPyB2ABEvent(py_ev);
} else {
AmB2ABCalleeSession::onB2ABEvent(ev);
}
}
void PySemsB2ABCalleeDialog::onPyB2ABEvent(PySemsB2ABEvent* py_ev) {
DBG("ignoring PySemsB2ABEvent\n");
delete py_ev; //-- don't delete, ownership already been transfered to python?
}

@ -27,6 +27,8 @@
#include "AmB2ABSession.h"
#include "AmPlaylist.h"
class PySemsB2ABCalleeDialog;
class PySemsB2ABDialog : public AmB2ABCallerSession,
public PySemsDialogBase
{
@ -42,6 +44,28 @@ public:
// @see AmEventHandler
void process(AmEvent* event);
AmB2ABCalleeSession* createCalleeSession();
};
/** \brief base class for events in Py-B2AB sessions */
struct PySemsB2ABEvent: public B2ABEvent
{
public:
PySemsB2ABEvent(int ev_id)
: B2ABEvent(ev_id)
{}
};
class PySemsB2ABCalleeDialog : public AmB2ABCalleeSession
{
public:
PySemsB2ABCalleeDialog(const string& other_local_tag)
: AmB2ABCalleeSession(other_local_tag) { }
protected:
void onB2ABEvent(B2ABEvent* ev);
virtual void onPyB2ABEvent(PySemsB2ABEvent* py_ev);
};
#endif

@ -49,14 +49,14 @@ public:
protected:
virtual AmB2ABCalleeSession* createCalleeSession() /Factory/;
virtual void onB2ABEvent(B2ABEvent* /In,Out/);
virtual void onB2ABEvent(PySemsB2ABEvent* /TransferBack/);
virtual void relayEvent(AmEvent* ev);
virtual void relayEvent(PySemsB2ABEvent* ev /Transfer/);
private:
PySemsB2ABDialog(const PySemsB2ABDialog&);
};
class AmB2ABCalleeSession
class AmB2ABCalleeSession
{
%TypeHeaderCode
#include "../../../core/AmB2ABSession.h"
@ -64,8 +64,6 @@ class AmB2ABCalleeSession
public:
AmB2ABCalleeSession(const string& /*other_local_tag*/);
void onB2ABEvent(B2ABEvent* /*In,Out*/);
void connectSession();
void disconnectSession();
@ -74,13 +72,28 @@ private:
};
class B2ABEvent
: AmEvent
class PySemsB2ABCalleeDialog : AmB2ABCalleeSession
{
%TypeHeaderCode
#include "../PySemsB2ABDialog.h"
#include "../../../core/AmB2ABSession.h"
%End
public:
B2ABEvent(int /* ev_id */);
PySemsB2ABCalleeDialog(const string& /*other_local_tag*/);
protected:
virtual void onPyB2ABEvent(PySemsB2ABEvent* /TransferBack/);
private:
PySemsB2ABCalleeDialog(const PySemsB2ABCalleeDialog& /* other_s*/);
};
class PySemsB2ABEvent
{
%TypeHeaderCode
#include "../PySemsB2ABDialog.h"
%End
public:
PySemsB2ABEvent(int /* ev_id */);
};

@ -1,3 +1,3 @@
target = py_sems_lib
sources = sippy_sems_libcmodule.cpp sippy_sems_libB2ABEvent.cpp sippy_sems_libAmB2ABCalleeSession.cpp sippy_sems_libPySemsB2ABDialog.cpp sippy_sems_libPySemsB2BDialog.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmAudioFile.cpp sippy_sems_libAmAudioEvent.cpp sippy_sems_libAmEvent.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
headers = sipAPIpy_sems_lib.h sippy_sems_libB2ABEvent.h sippy_sems_libAmB2ABCalleeSession.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.h sippy_sems_libPySemsDialog.h sippy_sems_libAmAudioFile.h sippy_sems_libAmAudioEvent.h sippy_sems_libAmEvent.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsB2ABEvent.cpp sippy_sems_libPySemsB2ABCalleeDialog.cpp sippy_sems_libAmB2ABCalleeSession.cpp sippy_sems_libPySemsB2ABDialog.cpp sippy_sems_libPySemsB2BDialog.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmAudioFile.cpp sippy_sems_libAmAudioEvent.cpp sippy_sems_libAmEvent.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsB2ABEvent.h sippy_sems_libPySemsB2ABCalleeDialog.h sippy_sems_libAmB2ABCalleeSession.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.h sippy_sems_libPySemsDialog.h sippy_sems_libAmAudioFile.h sippy_sems_libAmAudioEvent.h sippy_sems_libAmEvent.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h

Loading…
Cancel
Save