[commit] r9296 - in freeswitch/trunk/src/mod/languages: mod_lua mod_perl mod_python
Author: brian Date: Thu Aug 14 13:20:34 2008 New Revision: 9296 Modified: freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.cpp freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.h freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_wrap.cpp freeswitch/trunk/src/mod/languages/mod_perl/freeswitch.pm freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.cpp freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.h freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp freeswitch/trunk/src/mod/languages/mod_python/freeswitch.py freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.cpp freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.h freeswitch/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp Log: add unsetInputCallback method Modified: freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.cpp Thu Aug 14 13:20:34 2008 @@ -158,6 +158,16 @@ } } +void Session::unsetInputCallback(void) +{ + sanity_check_noreturn; + switch_safe_free(cb_function); + switch_safe_free(cb_arg); + args.input_callback = NULL; + switch_channel_set_private(channel, "CoreSession", NULL); + ap = NULL; +} + void Session::setInputCallback(char *cbfunc, char *funcargs) { Modified: freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.h ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.h (original) +++ freeswitch/trunk/src/mod/languages/mod_lua/freeswitch_lua.h Thu Aug 14 13:20:34 2008 @@ -29,6 +29,7 @@ virtual void check_hangup_hook(); virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype); + void unsetInputCallback(void); void setInputCallback(char *cbfunc, char *funcargs = NULL); void setHangupHook(char *func, char *arg = NULL); bool ready(); Modified: freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_wrap.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_wrap.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_lua/mod_lua_wrap.cpp Thu Aug 14 13:20:34 2008 @@ -7157,6 +7157,30 @@ } +static int _wrap_Session_unsetInputCallback(lua_State* L) { + int SWIG_arg = -1; + LUA::Session *arg1 = (LUA::Session *) 0 ; + + SWIG_check_num_args("unsetInputCallback",1,1) + if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("unsetInputCallback",1,"LUA::Session *"); + + if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_LUA__Session,0))){ + SWIG_fail_ptr("Session_unsetInputCallback",1,SWIGTYPE_p_LUA__Session); + } + + (arg1)->unsetInputCallback(); + SWIG_arg=0; + + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + static int _wrap_Session_setInputCallback__SWIG_0(lua_State* L) { int SWIG_arg = -1; LUA::Session *arg1 = (LUA::Session *) 0 ; @@ -7720,6 +7744,7 @@ {"end_allow_threads", _wrap_Session_end_allow_threads}, {"check_hangup_hook", _wrap_Session_check_hangup_hook}, {"run_dtmf_callback", _wrap_Session_run_dtmf_callback}, + {"unsetInputCallback", _wrap_Session_unsetInputCallback}, {"setInputCallback", _wrap_Session_setInputCallback}, {"setHangupHook", _wrap_Session_setHangupHook}, {"ready", _wrap_Session_ready}, Modified: freeswitch/trunk/src/mod/languages/mod_perl/freeswitch.pm ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_perl/freeswitch.pm (original) +++ freeswitch/trunk/src/mod/languages/mod_perl/freeswitch.pm Thu Aug 14 13:20:34 2008 @@ -481,6 +481,7 @@ *run_dtmf_callback = *freeswitchc::Session_run_dtmf_callback; *setME = *freeswitchc::Session_setME; *setInputCallback = *freeswitchc::Session_setInputCallback; +*unsetInputCallback = *freeswitchc::Session_unsetInputCallback; *setHangupHook = *freeswitchc::Session_setHangupHook; *ready = *freeswitchc::Session_ready; *swig_suuid_get = *freeswitchc::Session_suuid_get; Modified: freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.cpp Thu Aug 14 13:20:34 2008 @@ -166,6 +166,17 @@ } } +void Session::unsetInputCallback(void) +{ + sanity_check_noreturn; + switch_safe_free(cb_function); + switch_safe_free(cb_arg); + switch_channel_set_private(channel, "CoreSession", NULL); + args.input_callback = NULL; + ap = NULL; + +} + void Session::setInputCallback(char *cbfunc, char *funcargs) { Modified: freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.h ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.h (original) +++ freeswitch/trunk/src/mod/languages/mod_perl/freeswitch_perl.h Thu Aug 14 13:20:34 2008 @@ -39,6 +39,7 @@ virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype); void setME(SV *p); void setInputCallback(char *cbfunc = "on_input", char *funcargs = NULL); + void unsetInputCallback(void); void setHangupHook(char *func, char *arg=NULL); bool ready(); char *suuid; Modified: freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_perl/mod_perl_wrap.cpp Thu Aug 14 13:20:34 2008 @@ -9738,6 +9738,33 @@ } +XS(_wrap_Session_unsetInputCallback) { + { + PERL::Session *arg1 = (PERL::Session *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 1) || (items > 1)) { + SWIG_croak("Usage: Session_unsetInputCallback(self);"); + } + res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_PERL__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_unsetInputCallback" "', argument " "1"" of type '" "PERL::Session *""'"); + } + arg1 = reinterpret_cast< PERL::Session * >(argp1); + (arg1)->unsetInputCallback(); + + + XSRETURN(argvi); + fail: + + SWIG_croak_null(); + } +} + + XS(_wrap_Session_setHangupHook__SWIG_0) { { PERL::Session *arg1 = (PERL::Session *) 0 ; @@ -10602,6 +10629,7 @@ {"freeswitchc::Session_run_dtmf_callback", _wrap_Session_run_dtmf_callback}, {"freeswitchc::Session_setME", _wrap_Session_setME}, {"freeswitchc::Session_setInputCallback", _wrap_Session_setInputCallback}, +{"freeswitchc::Session_unsetInputCallback", _wrap_Session_unsetInputCallback}, {"freeswitchc::Session_setHangupHook", _wrap_Session_setHangupHook}, {"freeswitchc::Session_ready", _wrap_Session_ready}, {"freeswitchc::Session_suuid_set", _wrap_Session_suuid_set}, Modified: freeswitch/trunk/src/mod/languages/mod_python/freeswitch.py ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_python/freeswitch.py (original) +++ freeswitch/trunk/src/mod/languages/mod_python/freeswitch.py Thu Aug 14 13:20:34 2008 @@ -323,6 +323,7 @@ def check_hangup_hook(*args): return _freeswitch.Session_check_hangup_hook(*args) def run_dtmf_callback(*args): return _freeswitch.Session_run_dtmf_callback(*args) def setInputCallback(*args): return _freeswitch.Session_setInputCallback(*args) + def unsetInputCallback(*args): return _freeswitch.Session_unsetInputCallback(*args) def setHangupHook(*args): return _freeswitch.Session_setHangupHook(*args) def ready(*args): return _freeswitch.Session_ready(*args) __swig_setmethods__["cb_function"] = _freeswitch.Session_cb_function_set Modified: freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.cpp Thu Aug 14 13:20:34 2008 @@ -216,6 +216,24 @@ } +void Session::unsetInputCallback(void) +{ + if (cb_function) { + Py_XDECREF(cb_function); + cb_function = NULL; + } + + if (cb_arg) { + Py_XDECREF(cb_arg); + cb_arg = NULL; + } + + switch_channel_set_private(channel, "CoreSession", NULL); + args.input_callback = NULL; + ap = NULL; + +} + void Session::setInputCallback(PyObject *cbfunc, PyObject *funcargs) { Modified: freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.h ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.h (original) +++ freeswitch/trunk/src/mod/languages/mod_python/freeswitch_python.h Thu Aug 14 13:20:34 2008 @@ -30,6 +30,7 @@ virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype); void setInputCallback(PyObject *cbfunc, PyObject *funcargs = NULL); + void unsetInputCallback(void); void setHangupHook(PyObject *pyfunc, PyObject *arg = NULL); bool ready(); Modified: freeswitch/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp ============================================================================== --- freeswitch/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp (original) +++ freeswitch/trunk/src/mod/languages/mod_python/mod_python_wrap.cpp Thu Aug 14 13:20:34 2008 @@ -9153,6 +9153,27 @@ } +SWIGINTERN PyObject *_wrap_Session_unsetInputCallback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:Session_unsetInputCallback",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PYTHON__Session, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Session_unsetInputCallback" "', argument " "1"" of type '" "PYTHON::Session *""'"); + } + arg1 = reinterpret_cast< PYTHON::Session * >(argp1); + (arg1)->unsetInputCallback(); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_Session_setHangupHook__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PYTHON::Session *arg1 = (PYTHON::Session *) 0 ; @@ -9659,6 +9680,7 @@ { (char *)"Session_check_hangup_hook", _wrap_Session_check_hangup_hook, METH_VARARGS, NULL}, { (char *)"Session_run_dtmf_callback", _wrap_Session_run_dtmf_callback, METH_VARARGS, NULL}, { (char *)"Session_setInputCallback", _wrap_Session_setInputCallback, METH_VARARGS, NULL}, + { (char *)"Session_unsetInputCallback", _wrap_Session_unsetInputCallback, METH_VARARGS, NULL}, { (char *)"Session_setHangupHook", _wrap_Session_setHangupHook, METH_VARARGS, NULL}, { (char *)"Session_ready", _wrap_Session_ready, METH_VARARGS, NULL}, { (char *)"Session_cb_function_set", _wrap_Session_cb_function_set, METH_VARARGS, NULL},
participants (1)
-
Freeswitch SVN