📄 py_pjsua.c
字号:
pjsip_generic_string_hdr * p_hdr; len = pj_list_size(hdr); if (len > 0) { p_hdr = hdr; Py_XDECREF(py_hdr_list); py_hdr_list = PyList_New(len); for (i = 0; i < len && p_hdr != NULL; i++) { PyObject * tuple; PyObject * str; tuple = PyTuple_New(2); str = PyString_FromStringAndSize(p_hdr->name.ptr, p_hdr->name.slen); PyTuple_SetItem(tuple, 0, str); str = PyString_FromStringAndSize (hdr->hvalue.ptr, p_hdr->hvalue.slen); PyTuple_SetItem(tuple, 1, str); PyList_SetItem(py_hdr_list, i, tuple); p_hdr = p_hdr->next; } } }/* * pj_pool_Object */typedef struct{ PyObject_HEAD /* Type-specific fields go here. */ pj_pool_t * pool;} pj_pool_Object;/* * pj_pool_Type */static PyTypeObject pj_pool_Type ={ PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "py_pjsua.PJ_Pool", /*tp_name*/ sizeof(pj_pool_Object), /*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "pj_pool_t objects", /* tp_doc */};/* * pjsip_endpoint_Object */typedef struct{ PyObject_HEAD /* Type-specific fields go here. */ pjsip_endpoint * endpt;} pjsip_endpoint_Object;/* * pjsip_endpoint_Type */static PyTypeObject pjsip_endpoint_Type ={ PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "py_pjsua.PJSIP_Endpoint", /*tp_name*/ sizeof(pjsip_endpoint_Object),/*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "pjsip_endpoint objects", /* tp_doc */};/* * pjmedia_endpt_Object */typedef struct{ PyObject_HEAD /* Type-specific fields go here. */ pjmedia_endpt * endpt;} pjmedia_endpt_Object;/* * pjmedia_endpt_Type */static PyTypeObject pjmedia_endpt_Type ={ PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "py_pjsua.PJMedia_Endpt", /*tp_name*/ sizeof(pjmedia_endpt_Object), /*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "pjmedia_endpt objects", /* tp_doc */};/* * pj_pool_factory_Object */typedef struct{ PyObject_HEAD /* Type-specific fields go here. */ pj_pool_factory * pool_fact;} pj_pool_factory_Object;/* * pj_pool_factory_Type */static PyTypeObject pj_pool_factory_Type ={ PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "py_pjsua.PJ_Pool_Factory",/*tp_name*/ sizeof(pj_pool_factory_Object), /*tp_basicsize*/ 0, /*tp_itemsize*/ 0, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "pj_pool_factory objects", /* tp_doc */};/* * pjsip_cred_info_Object */typedef struct{ PyObject_HEAD /* Type-specific fields go here. */ PyObject * realm; PyObject * scheme; PyObject * username; int data_type; PyObject * data; } pjsip_cred_info_Object;/* * cred_info_dealloc * deletes a cred info from memory */static void pjsip_cred_info_dealloc(pjsip_cred_info_Object* self){ Py_XDECREF(self->realm); Py_XDECREF(self->scheme); Py_XDECREF(self->username); Py_XDECREF(self->data); self->ob_type->tp_free((PyObject*)self);}/* * cred_info_new * constructor for cred_info object */static PyObject * pjsip_cred_info_new(PyTypeObject *type, PyObject *args, PyObject *kwds){ pjsip_cred_info_Object *self; self = (pjsip_cred_info_Object *)type->tp_alloc(type, 0); if (self != NULL) { self->realm = PyString_FromString(""); if (self->realm == NULL) { Py_DECREF(self); return NULL; } self->scheme = PyString_FromString(""); if (self->scheme == NULL) { Py_DECREF(self); return NULL; } self->username = PyString_FromString(""); if (self->username == NULL) { Py_DECREF(self); return NULL; } self->data = PyString_FromString(""); if (self->data == NULL) { Py_DECREF(self); return NULL; } } return (PyObject *)self;}/* * pjsip_cred_info_members */static PyMemberDef pjsip_cred_info_members[] ={ { "realm", T_OBJECT_EX, offsetof(pjsip_cred_info_Object, realm), 0, "Realm" }, { "scheme", T_OBJECT_EX, offsetof(pjsip_cred_info_Object, scheme), 0, "Scheme" }, { "username", T_OBJECT_EX, offsetof(pjsip_cred_info_Object, username), 0, "User name" }, { "data", T_OBJECT_EX, offsetof(pjsip_cred_info_Object, data), 0, "The data, which can be a plaintext password or a hashed digest. " }, { "data_type", T_INT, offsetof(pjsip_cred_info_Object, data_type), 0, "Type of data" }, {NULL} /* Sentinel */};/* * pjsip_cred_info_Type */static PyTypeObject pjsip_cred_info_Type ={ PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "py_pjsua.PJSIP_Cred_Info", /*tp_name*/ sizeof(pjsip_cred_info_Object), /*tp_basicsize*/ 0, /*tp_itemsize*/ (destructor)pjsip_cred_info_dealloc,/*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /*tp_flags*/ "PJSIP Cred Info objects", /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ pjsip_cred_info_members, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ pjsip_cred_info_new, /* tp_new */};/* * py_pjsua_thread_register * !added @ 061206 */static PyObject *py_pjsua_thread_register(PyObject *pSelf, PyObject *pArgs){ pj_status_t status; const char *name; PyObject *py_desc; pj_thread_t *thread; void *thread_desc;#if 0 int size; int i; int *td;#endif if (!PyArg_ParseTuple(pArgs, "sO", &name, &py_desc)) { return NULL; }#if 0 size = PyList_Size(py_desc); td = (int *)malloc(size * sizeof(int)); for (i = 0; i < size; i++) { if (!PyArg_Parse(PyList_GetItem(py_desc,i),"i", td[i])) { return NULL; } } thread_desc = td;#else thread_desc = malloc(sizeof(pj_thread_desc));#endif status = pj_thread_register(name, thread_desc, &thread); if (status == PJ_SUCCESS) status = pj_thread_local_set(thread_id, (void*)1); return Py_BuildValue("i",status);}/* * py_pjsua_logging_config_default * !modified @ 051206 */static PyObject *py_pjsua_logging_config_default(PyObject *pSelf, PyObject *pArgs){ logging_config_Object *obj; pjsua_logging_config cfg; if (!PyArg_ParseTuple(pArgs, "")) { return NULL; } pjsua_logging_config_default(&cfg); obj = (logging_config_Object *) logging_config_new (&logging_config_Type,NULL,NULL); obj->msg_logging = cfg.msg_logging; obj->level = cfg.level; obj->console_level = cfg.console_level; obj->decor = cfg.decor; return (PyObject *)obj;}/* * py_pjsua_config_default * !modified @ 051206 */static PyObject *py_pjsua_config_default(PyObject *pSelf, PyObject *pArgs){ config_Object *obj; pjsua_config cfg; if (!PyArg_ParseTuple(pArgs, "")) { return NULL; } pjsua_config_default(&cfg); obj = (config_Object *) config_new(&config_Type, NULL, NULL); obj->max_calls = cfg.max_calls; obj->thread_cnt = cfg.thread_cnt; return (PyObject *)obj;}/* * py_pjsua_media_config_default * !modified @ 051206 */static PyObject * py_pjsua_media_config_default(PyObject *pSelf, PyObject *pArgs){ media_config_Object *obj; pjsua_media_config cfg; if (!PyArg_ParseTuple(pArgs, "")) { return NULL; } pjsua_media_config_default(&cfg); obj = (media_config_Object *)PyType_GenericNew (&media_config_Type, NULL, NULL); obj->clock_rate = cfg.clock_rate; obj->ec_options = cfg.ec_options; obj->ec_tail_len = cfg.ec_tail_len; obj->has_ioqueue = cfg.has_ioqueue; obj->ilbc_mode = cfg.ilbc_mode;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -