⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pst-handler.c

📁 linux下网络收音机的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
{  return pst_handler_set_string(self, value, st_handler_set_label);}static intpst_handler_set_description (PSTHandler *self, PyObject *value, void *closure){  return pst_handler_set_string(self, value, st_handler_set_description);}static intpst_handler_set_home (PSTHandler *self, PyObject *value, void *closure){  return pst_handler_set_string(self, value, st_handler_set_home);}static intpst_handler_set_icon (PSTHandler *self, PyObject *value, void *closure){  GObject *pixbuf;  if (! value)    {      PyErr_SetString(PyExc_TypeError, _("cannot unset icon"));      return -1;    }    pixbuf = pst_pygobject_get(value, GDK_TYPE_PIXBUF);  if (! pixbuf)    return -1;  st_handler_set_icon_from_pixbuf(self->handler, GDK_PIXBUF(pixbuf));  return 0;}static intpst_handler_set_stock_categories (PSTHandler *self, PyObject *value, void *closure){  if (value)    {      GNode *categories;      if (! pst_categories_sequence_as_gnode(value, &categories))	return -1;      st_handler_set_stock_categories(self->handler, categories);    }  else    st_handler_set_stock_categories(self->handler, NULL);  return 0;}static intpst_handler_set_flags (PSTHandler *self, PyObject *value, void *closure){  if (value)    {      int flags;      flags = PyInt_AsLong(value);      if (flags == -1)	return -1;      st_handler_set_flags(self->handler, flags);    }  else    st_handler_set_flags(self->handler, 0);  return 0;}static intpst_handler_set_stream_version (PSTHandler *self, PyObject *value, void *closure){  if (value)    {      int version;      version = PyInt_AsLong(value);      if (version == -1)	return -1;      st_handler_set_stream_version(self->handler, version);    }  else    st_handler_set_stream_version(self->handler, 0);  return 0;}/*** object methods **********************************************************/static PyObject *pst_handler_add_field (PSTHandler *self, PyObject *args){  PSTHandlerField *pfield;  if (! PyArg_ParseTuple(args, "O!", &PSTHandlerField_Type, &pfield))    return NULL;  st_handler_add_field(self->handler, pfield->field);  return pst_none();}static PyObject *pst_handler_notice (PSTHandler *self, PyObject *args){  const char *message;  if (! PyArg_ParseTuple(args, "s", &message))    return NULL;  st_handler_notice(self->handler, "%s", message);  return pst_none();}/*** streamtuner callbacks ***************************************************/static gbooleanpst_handler_reload_cb (PythonCategory *category,		       GNode **categories,		       GList **streams,		       PSTCallbackInfo *info,		       GError **err){  PyObject *result;  gboolean status;  PST_THREADS_ENTER  result = PyObject_CallMethod(info->object, info->method, "O", category->p);  status = pst_handler_reload_parse_result(result,					   (Converter) pst_categories_sequence_as_gnode, categories,					   (Converter) pst_streams_sequence_as_glist, streams);  if (! status)    pst_set_error(err);        Py_XDECREF(result);  PST_THREADS_LEAVE  return status;}static gbooleanpst_handler_reload_multiple_cb (GNode **categories,				GHashTable **streams,				PSTCallbackInfo *info,				GError **err){  PyObject *result;  gboolean status;  PST_THREADS_ENTER  result = PyObject_CallMethod(info->object, info->method, NULL);  status = pst_handler_reload_parse_result(result,					   (Converter) pst_categories_sequence_as_gnode, categories,					   (Converter) pst_streams_mapping_as_ghashtable, streams);  if (! status)    pst_set_error(err);        Py_XDECREF(result);  PST_THREADS_LEAVE  return status;}static gbooleanpst_handler_reload_parse_result (PyObject *result,				 Converter converter1,				 gpointer ptr1,				 Converter converter2,				 gpointer ptr2){  int len;  g_return_val_if_fail(converter1 != NULL, FALSE);  g_return_val_if_fail(ptr1 != NULL, FALSE);  g_return_val_if_fail(converter2 != NULL, FALSE);  g_return_val_if_fail(ptr2 != NULL, FALSE);  if (! result)    return FALSE;  len = PySequence_Length(result);  if (len == -1)    return FALSE;  if (len != 2)    {      PyErr_SetString(PyExc_TypeError, _("sequence length must be 2"));      return FALSE;    }  if (! pst_handler_reload_convert(result, 0, converter1, ptr1))    return FALSE;  if (! pst_handler_reload_convert(result, 1, converter2, ptr2))    return FALSE;  return TRUE;}static gbooleanpst_handler_reload_convert (PyObject *sequence,			    int n,			    Converter converter,			    gpointer ptr){  PyObject *object;  gboolean status;  g_return_val_if_fail(sequence != NULL, FALSE);  g_return_val_if_fail(converter != NULL, FALSE);  g_return_val_if_fail(ptr != NULL, FALSE);  object = PySequence_ITEM(sequence, n);  if (! object)    return FALSE;  status = converter(object, ptr);  Py_DECREF(object);  return status;}static GtkWidget *pst_handler_preferences_widget_new_cb (PSTCallbackInfo *info){  PyObject *result;  GtkWidget *widget = NULL;  PST_THREADS_ENTER  result = PyObject_CallMethod(info->object, info->method, NULL);  if (result)    {      widget = (GtkWidget *) pst_pygobject_get(result, GTK_TYPE_WIDGET);      if (! widget)	PyErr_Print();      Py_DECREF(result);    }  else    PyErr_Print();  PST_THREADS_LEAVE  return widget;}/*** C API *******************************************************************/gbooleanpst_handler_register (PyObject *module){  PyTypeObject *ptr = &PSTHandler_Type;  g_return_val_if_fail(module != NULL, FALSE);  if (PyType_Ready(&PSTHandler_Type) < 0)    return FALSE;  Py_INCREF(&PSTHandler_Type);  PyModule_AddObject(module, "Handler", (PyObject *) ptr);  PyModule_AddIntConstant(module, "HANDLER_NO_CATEGORIES", ST_HANDLER_NO_CATEGORIES);  PyModule_AddIntConstant(module, "HANDLER_CONFIRM_DELETION", ST_HANDLER_CONFIRM_DELETION);  PyModule_AddIntConstant(module, "HANDLER_STOCK_FIELD_NAME", ST_HANDLER_STOCK_FIELD_NAME);  PyModule_AddIntConstant(module, "HANDLER_STOCK_FIELD_GENRE", ST_HANDLER_STOCK_FIELD_GENRE);  PyModule_AddIntConstant(module, "HANDLER_STOCK_FIELD_DESCRIPTION", ST_HANDLER_STOCK_FIELD_DESCRIPTION);  PyModule_AddIntConstant(module, "HANDLER_STOCK_FIELD_HOMEPAGE", ST_HANDLER_STOCK_FIELD_HOMEPAGE);  PyModule_AddIntConstant(module, "HANDLER_STOCK_FIELD_URI_LIST", ST_HANDLER_STOCK_FIELD_URI_LIST);  return TRUE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -