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

📄 st-handlers.c

📁 linux下网络收音机的源码
💻 C
字号:
/* * Copyright (c) 2002, 2003, 2004 Jean-Yves Lefort * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of Jean-Yves Lefort nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include "config.h"#include <string.h>#include <glib/gi18n.h>#include "sg-util.h"#include "st-plugin.h"#include "st-dialog-api.h"#include "st-handler.h"#include "st-handlers.h"#include "st-bookmarks.h"#include "st-preselections.h"/*** variable declarations ***************************************************/GSList *st_handlers_list = NULL;GSList *st_handlers_full_list = NULL;/*** API implementation ******************************************************//** * st_handlers_add: * @handler: a handler to add. * * Adds @handler to streamtuner. The reference count of @handler will * not be incremented. **/voidst_handlers_add (STHandler *handler){  GError *err = NULL;  if (st_handler_validate(handler, &err))    {      st_handler_complete(handler);      st_handlers_list = g_slist_append(st_handlers_list, handler);      st_handlers_full_list = g_slist_append(st_handlers_full_list, handler);    }  else    {      if (st_plugin_current)	st_error_dialog(_("A plugin error has occurred"),			_("In %s, handler %s is malformed and cannot be registered (%s).\n"			  "\n"			  "You should report this problem to the plugin maintainer."),			st_plugin_get_filename(st_plugin_current),			st_handler_get_name(handler),			err->message);      else	st_error_dialog(_("A handler error has occurred"),			_("Handler %s is malformed and cannot be registered (%s).\n"			  "\n"			  "You should report this problem to the streamtuner maintainer."),			st_handler_get_name(handler), err->message);      g_error_free(err);    }}/*** private implementation **************************************************/voidst_handlers_load_static (void){  st_bookmarks_init();  st_preselections_init();}STHandler *st_handlers_find_by_name (const char *name){  GSList *l;  g_return_val_if_fail(name != NULL, NULL);  SG_LIST_FOREACH(l, st_handlers_list)    if (! strcmp(st_handler_get_name(l->data), name))      return l->data;  return NULL;}voidst_handlers_reorder (GSList *ordered_list){  GSList *l;  SG_LIST_FOREACH(l, st_handlers_list)    if (! g_slist_find(ordered_list, l->data))      ordered_list = g_slist_append(ordered_list, l->data);  g_slist_free(st_handlers_full_list);  st_handlers_full_list = ordered_list;  g_slist_free(st_handlers_list);  st_handlers_list = NULL;  SG_LIST_FOREACH(l, st_handlers_full_list)    if (! st_handler_is_dummy(l->data))      st_handlers_list = g_slist_append(st_handlers_list, l->data);}

⌨️ 快捷键说明

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