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

📄 vivi_ming.c

📁 Swfdec is a decoder/renderer for Macromedia Flash animations. The decoding and rendering engine is
💻 C
字号:
/* Vivified * Copyright (C) 2007 Benjamin Otte <otte@gnome.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor,  * Boston, MA  02110-1301  USA */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "vivi_ming.h"#include <string.h>static GString *ming_errors = NULL;static voidvivi_ming_error (const char *format, ...){  va_list varargs;  char *s;  if (ming_errors) {    g_string_append_c (ming_errors, '\n');  } else {    ming_errors = g_string_new ("");  }  va_start (varargs, format);  g_string_append_vprintf (ming_errors, format, varargs);  s = g_strdup_vprintf (format, varargs);  va_end (varargs);}static char *vivi_ming_get_error (void){  char *ret;  if (ming_errors == NULL)    return g_strdup ("Unknown error");  ret = g_string_free (ming_errors, FALSE);  ming_errors = NULL;  return ret;}static voidvivi_ming_clear_error (void){  char *ret;    if (ming_errors != NULL) {    ret = vivi_ming_get_error ();    g_free (ret);  }}static voidvivi_ming_init (void){  static gboolean ming_inited = FALSE;  if (ming_inited)    return;  ming_inited = TRUE;  Ming_init ();  Ming_useSWFVersion (8);  Ming_setErrorFunction (vivi_ming_error);  Ming_setWarnFunction (vivi_ming_error);}SwfdecScript *vivi_ming_compile (const char *code, char **error){  byte *data;  SWFAction action;  gsize len;  SwfdecBuffer *buffer;  SwfdecScript *script;  vivi_ming_init ();  action = newSWFAction (code);  data = SWFAction_getByteCode (action, &len);  if (data == NULL || len <= 1) {    if (error)      *error = vivi_ming_get_error ();    script = NULL;  } else {    buffer = swfdec_buffer_new_and_alloc (len);    memcpy (buffer->data, data, len);    script = swfdec_script_new (buffer, "compiled script", 8);  }  vivi_ming_clear_error ();  return script;}

⌨️ 快捷键说明

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