Mercurial > audlegacy-plugins
changeset 5:54f9e753b511 trunk
[svn] - SDK pathchange fixes
- enforce use of SDK
- always link against libaudacious
author | nenolod |
---|---|
date | Mon, 18 Sep 2006 02:22:03 -0700 |
parents | 0ad4849f6219 |
children | 7cac35581bd0 |
files | ChangeLog configure.ac src/Input/aac/src/xmms-id3.h src/Input/cue/cuesheet.c src/Input/mpg123/http.c src/Input/mpg123/mpg123.h src/Input/mpg123/rtsp.c src/Input/mpg123/xmms-id3.h src/Input/vorbis/vcedit.c src/Input/vorbis/vcedit.h src/Input/wav/wav.h |
diffstat | 11 files changed, 30 insertions(+), 391 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Sep 18 02:02:50 2006 -0700 +++ b/ChangeLog Mon Sep 18 02:22:03 2006 -0700 @@ -1,3 +1,23 @@ +2006-09-18 09:02:50 +0000 William Pitcock <nenolod@nenolod.net> + revision [8] + - the first pass missed some libaudacious references, this fixes them + + + Changes: Modified: + +2 -2 trunk/src/General/scrobbler/xmms_scrobbler.c + +3 -3 trunk/src/Input/aac/src/libmp4.c + +3 -3 trunk/src/Input/cdaudio/cdaudio.c + +2 -2 trunk/src/Input/cdaudio/configure.c + +4 -4 trunk/src/Input/flac/configure.c + +3 -3 trunk/src/Input/mpg123/configure.c + +2 -2 trunk/src/Input/vorbis/fileinfo.c + +2 -2 trunk/src/Input/wav/wav-sndfile.c + +2 -2 trunk/src/Input/wav/wav.c + +2 -2 trunk/src/Output/OSS/configure.c + +2 -2 trunk/src/Output/alsa/alsa.h + +2 -2 trunk/src/Output/esd/mixer.c + + 2006-09-18 08:35:25 +0000 William Pitcock <nenolod@nenolod.net> revision [6] - move from (internal) libaudacious/ include path to audacious/ include path
--- a/configure.ac Mon Sep 18 02:02:50 2006 -0700 +++ b/configure.ac Mon Sep 18 02:22:03 2006 -0700 @@ -869,22 +869,8 @@ AM_CONDITIONAL(HAVE_CDROM, test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes") AM_CONDITIONAL(HAVE_LINUX_JOYSTICK,test "${ac_cv_header_linux_joystick_h}" = "yes") -if test -n "$GCC" -then - CFLAGS="$CFLAGS -Wall -Wno-unused-parameter -Wpointer-arith -finline-functions -ffast-math" - case "$CFLAGS" in - -g*) ;; - *\ -g*) ;; - *) CFLAGS="$CFLAGS -fomit-frame-pointer" ;; - esac - case "$host" in - *-*-freebsd*) - ;; - *) - CFLAGS="$CFLAGS -funroll-all-loops" - ;; - esac -fi +CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS" +LDFLAGS="$LDFLAGS $AUDACIOUS_LIBS" AC_MSG_CHECKING(if __ELF__ is defined) AC_EGREP_CPP(yes,
--- a/src/Input/aac/src/xmms-id3.h Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/aac/src/xmms-id3.h Mon Sep 18 02:22:03 2006 -0700 @@ -29,7 +29,7 @@ #define ID3_H #include <glib.h> -#include <libaudacious/vfs.h> +#include <audacious/vfs.h> /* * Option flags to id3_open_*().
--- a/src/Input/cue/cuesheet.c Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/cue/cuesheet.c Mon Sep 18 02:22:03 2006 -0700 @@ -21,7 +21,7 @@ #include <audacious/plugin.h> #include <audacious/output.h> #include <audacious/playlist.h> -#include <libaudacious/vfs.h> +#include <audacious/vfs.h> #define MAX_CUE_LINE_LENGTH 1000 #define MAX_CUE_TRACKS 1000
--- a/src/Input/mpg123/http.c Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/mpg123/http.c Mon Sep 18 02:22:03 2006 -0700 @@ -36,7 +36,7 @@ #include <arpa/inet.h> #include <netdb.h> -#include <libaudacious/util.h> +#include <audacious/util.h> #include "mpg123.h"
--- a/src/Input/mpg123/mpg123.h Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/mpg123/mpg123.h Mon Sep 18 02:22:03 2006 -0700 @@ -71,8 +71,8 @@ #include <gtk/gtk.h> #include "audacious/plugin.h" +#include "audacious/vfs.h" #include "dxhead.h" -#include "xmms-id3.h" #define SBLIMIT 32 #define SCALE_BLOCK 12
--- a/src/Input/mpg123/rtsp.c Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/mpg123/rtsp.c Mon Sep 18 02:22:03 2006 -0700 @@ -25,7 +25,7 @@ #include <nemesi/rtp.h> #include <nemesi/rtsp.h> -#include <libaudacious/util.h> +#include <audacious/util.h> #include "mpg123.h"
--- a/src/Input/mpg123/xmms-id3.h Mon Sep 18 02:02:50 2006 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,367 +0,0 @@ -/********************************************************************* - * - * Copyright (C) 1998, 1999, 2002, Espen Skoglund - * Department of Computer Science, University of Tromsų - * - * Filename: id3.h - * Description: Include file for accessing the ID3 library. - * Author: Espen Skoglund <espensk@stud.cs.uit.no> - * Created at: Thu Nov 5 15:55:10 1998 - * - * $Id: xmms-id3.h,v 1.1 2004/07/20 21:47:22 descender Exp $ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - ********************************************************************/ -#ifndef ID3_H -#define ID3_H - -#include <glib.h> -#include <libaudacious/vfs.h> - -/* - * Option flags to id3_open_*(). - */ -#define ID3_OPENF_NONE 0x0000 -#define ID3_OPENF_NOCHK 0x0001 -#define ID3_OPENF_CREATE 0x0002 - - -/* - * The size of the read buffer used by file operations. - */ -#define ID3_FD_BUFSIZE 8192 - - -/* - * Structure describing the ID3 tag. - */ -struct id3_tag { - int id3_type; /* Memory or file desriptor */ - int id3_oflags; /* Flags from open call */ - int id3_flags; /* Flags from tag header */ - int id3_altered; /* Set when tag has been altered */ - int id3_newtag; /* Set if this is a new tag */ - - int id3_version; /* Major ID3 version number */ - int id3_revision; /* ID3 revision number */ - - int id3_tagsize; /* Total size of ID3 tag */ - int id3_pos; /* Current position within tag */ - - char *id3_error_msg; /* Last error message */ - - char id3_buffer[256]; /* Used for various strings */ - - union { - /* - * Memory specific fields. - */ - struct { - void *id3_ptr; - } me; - - /* - * File desc. specific fields. - */ - struct { - int id3_fd; - void *id3_buf; - } fd; - - /* - * File ptr. specific fields. - */ - struct { - VFSFile *id3_fp; - void *id3_buf; - } fp; - } s; - - /* - * Functions for doing operations within ID3 tag. - */ - int (*id3_seek) (struct id3_tag *, int); - void *(*id3_read) (struct id3_tag *, void *, int); - - /* - * Linked list of ID3 frames. - */ - GList *id3_frame; -}; - -#define ID3_TYPE_NONE 0 -#define ID3_TYPE_MEM 1 -#define ID3_TYPE_FD 2 -#define ID3_TYPE_FP 3 - - -/* - * Structure describing an ID3 frame. - */ -struct id3_frame { - struct id3_tag *fr_owner; - struct id3_framedesc *fr_desc; - int fr_flags; - unsigned char fr_encryption; - unsigned char fr_grouping; - unsigned char fr_altered; - - void *fr_data; /* Pointer to frame data, excluding headers */ - int fr_size; /* Size of uncompressed frame */ - - void *fr_raw_data; /* Frame data */ - int fr_raw_size; /* Frame size */ - - void *fr_data_z; /* The decompressed compressed frame */ - int fr_size_z; /* Size of decompressed compressed frame */ -}; - - -/* - * Structure describing an ID3 frame type. - */ -struct id3_framedesc { - guint32 fd_id; - char fd_idstr[4]; - char *fd_description; -}; - - -/* - * Text encodings. - */ -#define ID3_ENCODING_ISO_8859_1 0x00 -#define ID3_ENCODING_UTF16 0x01 -#define ID3_ENCODING_UTF16BE 0x02 -#define ID3_ENCODING_UTF8 0x03 - - - -/* - * ID3 frame id numbers. - */ -#define ID3_FRAME_ID(a,b,c,d) ((a << 24) | (b << 16) | (c << 8) | d) - -#define ID3_AENC ID3_FRAME_ID('A','E','N','C') -#define ID3_APIC ID3_FRAME_ID('A','P','I','C') -#define ID3_ASPI ID3_FRAME_ID('A','S','P','I') -#define ID3_COMM ID3_FRAME_ID('C','O','M','M') -#define ID3_COMR ID3_FRAME_ID('C','O','M','R') -#define ID3_ENCR ID3_FRAME_ID('E','N','C','R') -#define ID3_EQUA ID3_FRAME_ID('E','Q','U','A') -#define ID3_EQU2 ID3_FRAME_ID('E','Q','U','2') -#define ID3_ETCO ID3_FRAME_ID('E','T','C','O') -#define ID3_GEOB ID3_FRAME_ID('G','E','O','B') -#define ID3_GRID ID3_FRAME_ID('G','R','I','D') -#define ID3_IPLS ID3_FRAME_ID('I','P','L','S') -#define ID3_LINK ID3_FRAME_ID('L','I','N','K') -#define ID3_MCDI ID3_FRAME_ID('M','C','D','I') -#define ID3_MLLT ID3_FRAME_ID('M','L','L','T') -#define ID3_OWNE ID3_FRAME_ID('O','W','N','E') -#define ID3_PRIV ID3_FRAME_ID('P','R','I','V') -#define ID3_PCNT ID3_FRAME_ID('P','C','N','T') -#define ID3_POPM ID3_FRAME_ID('P','O','P','M') -#define ID3_POSS ID3_FRAME_ID('P','O','S','S') -#define ID3_RBUF ID3_FRAME_ID('R','B','U','F') -#define ID3_RVAD ID3_FRAME_ID('R','V','A','D') -#define ID3_RVA2 ID3_FRAME_ID('R','V','A','2') -#define ID3_RVRB ID3_FRAME_ID('R','V','R','B') -#define ID3_SEEK ID3_FRAME_ID('S','E','E','K') -#define ID3_SIGN ID3_FRAME_ID('S','I','G','N') -#define ID3_SYLT ID3_FRAME_ID('S','Y','L','T') -#define ID3_SYTC ID3_FRAME_ID('S','Y','T','C') -#define ID3_TALB ID3_FRAME_ID('T','A','L','B') -#define ID3_TBPM ID3_FRAME_ID('T','B','P','M') -#define ID3_TCOM ID3_FRAME_ID('T','C','O','M') -#define ID3_TCON ID3_FRAME_ID('T','C','O','N') -#define ID3_TCOP ID3_FRAME_ID('T','C','O','P') -#define ID3_TDAT ID3_FRAME_ID('T','D','A','T') -#define ID3_TDEN ID3_FRAME_ID('T','D','E','N') -#define ID3_TDLY ID3_FRAME_ID('T','D','L','Y') -#define ID3_TDOR ID3_FRAME_ID('T','D','O','R') -#define ID3_TDRC ID3_FRAME_ID('T','D','R','C') -#define ID3_TDRL ID3_FRAME_ID('T','D','R','L') -#define ID3_TDTG ID3_FRAME_ID('T','D','T','G') -#define ID3_TENC ID3_FRAME_ID('T','E','N','C') -#define ID3_TEXT ID3_FRAME_ID('T','E','X','T') -#define ID3_TFLT ID3_FRAME_ID('T','F','L','T') -#define ID3_TIME ID3_FRAME_ID('T','I','M','E') -#define ID3_TIPL ID3_FRAME_ID('T','I','P','L') -#define ID3_TIT1 ID3_FRAME_ID('T','I','T','1') -#define ID3_TIT2 ID3_FRAME_ID('T','I','T','2') -#define ID3_TIT3 ID3_FRAME_ID('T','I','T','3') -#define ID3_TKEY ID3_FRAME_ID('T','K','E','Y') -#define ID3_TLAN ID3_FRAME_ID('T','L','A','N') -#define ID3_TLEN ID3_FRAME_ID('T','L','E','N') -#define ID3_TMCL ID3_FRAME_ID('T','M','C','L') -#define ID3_TMED ID3_FRAME_ID('T','M','E','D') -#define ID3_TMOO ID3_FRAME_ID('T','M','O','O') -#define ID3_TOAL ID3_FRAME_ID('T','O','A','L') -#define ID3_TOFN ID3_FRAME_ID('T','O','F','N') -#define ID3_TOLY ID3_FRAME_ID('T','O','L','Y') -#define ID3_TOPE ID3_FRAME_ID('T','O','P','E') -#define ID3_TORY ID3_FRAME_ID('T','O','R','Y') -#define ID3_TOWN ID3_FRAME_ID('T','O','W','N') -#define ID3_TPE1 ID3_FRAME_ID('T','P','E','1') -#define ID3_TPE2 ID3_FRAME_ID('T','P','E','2') -#define ID3_TPE3 ID3_FRAME_ID('T','P','E','3') -#define ID3_TPE4 ID3_FRAME_ID('T','P','E','4') -#define ID3_TPOS ID3_FRAME_ID('T','P','O','S') -#define ID3_TPRO ID3_FRAME_ID('T','P','R','O') -#define ID3_TPUB ID3_FRAME_ID('T','P','U','B') -#define ID3_TRCK ID3_FRAME_ID('T','R','C','K') -#define ID3_TRDA ID3_FRAME_ID('T','R','D','A') -#define ID3_TRSN ID3_FRAME_ID('T','R','S','N') -#define ID3_TRSO ID3_FRAME_ID('T','R','S','O') -#define ID3_TSIZ ID3_FRAME_ID('T','S','I','Z') -#define ID3_TSOA ID3_FRAME_ID('T','S','O','A') -#define ID3_TSOP ID3_FRAME_ID('T','S','O','P') -#define ID3_TSOT ID3_FRAME_ID('T','S','O','T') -#define ID3_TSRC ID3_FRAME_ID('T','S','R','C') -#define ID3_TSSE ID3_FRAME_ID('T','S','S','E') -#define ID3_TSST ID3_FRAME_ID('T','S','S','T') -#define ID3_TYER ID3_FRAME_ID('T','Y','E','R') -#define ID3_TXXX ID3_FRAME_ID('T','X','X','X') -#define ID3_UFID ID3_FRAME_ID('U','F','I','D') -#define ID3_USER ID3_FRAME_ID('U','S','E','R') -#define ID3_USLT ID3_FRAME_ID('U','S','L','T') -#define ID3_WCOM ID3_FRAME_ID('W','C','O','M') -#define ID3_WCOP ID3_FRAME_ID('W','C','O','P') -#define ID3_WOAF ID3_FRAME_ID('W','O','A','F') -#define ID3_WOAR ID3_FRAME_ID('W','O','A','R') -#define ID3_WOAS ID3_FRAME_ID('W','O','A','S') -#define ID3_WORS ID3_FRAME_ID('W','O','R','S') -#define ID3_WPAY ID3_FRAME_ID('W','P','A','Y') -#define ID3_WPUB ID3_FRAME_ID('W','P','U','B') -#define ID3_WXXX ID3_FRAME_ID('W','X','X','X') - -/* - * Version 2.2.0 - */ - -#define ID3_FRAME_ID_22(a, b, c) ((a << 16) | (b << 8) | c) - -#define ID3_BUF ID3_FRAME_ID_22('B', 'U', 'F') -#define ID3_CNT ID3_FRAME_ID_22('C', 'N', 'T') -#define ID3_COM ID3_FRAME_ID_22('C', 'O', 'M') -#define ID3_CRA ID3_FRAME_ID_22('C', 'R', 'A') -#define ID3_CRM ID3_FRAME_ID_22('C', 'R', 'M') -#define ID3_ETC ID3_FRAME_ID_22('E', 'T', 'C') -#define ID3_EQU ID3_FRAME_ID_22('E', 'Q', 'U') -#define ID3_GEO ID3_FRAME_ID_22('G', 'E', 'O') -#define ID3_IPL ID3_FRAME_ID_22('I', 'P', 'L') -#define ID3_LNK ID3_FRAME_ID_22('L', 'N', 'K') -#define ID3_MCI ID3_FRAME_ID_22('M', 'C', 'I') -#define ID3_MLL ID3_FRAME_ID_22('M', 'L', 'L') -#define ID3_PIC ID3_FRAME_ID_22('P', 'I', 'C') -#define ID3_POP ID3_FRAME_ID_22('P', 'O', 'P') -#define ID3_REV ID3_FRAME_ID_22('R', 'E', 'V') -#define ID3_RVA ID3_FRAME_ID_22('R', 'V', 'A') -#define ID3_SLT ID3_FRAME_ID_22('S', 'L', 'T') -#define ID3_STC ID3_FRAME_ID_22('S', 'T', 'C') -#define ID3_TAL ID3_FRAME_ID_22('T', 'A', 'L') -#define ID3_TBP ID3_FRAME_ID_22('T', 'B', 'P') -#define ID3_TCM ID3_FRAME_ID_22('T', 'C', 'M') -#define ID3_TCO ID3_FRAME_ID_22('T', 'C', 'O') -#define ID3_TCR ID3_FRAME_ID_22('T', 'C', 'R') -#define ID3_TDA ID3_FRAME_ID_22('T', 'D', 'A') -#define ID3_TDY ID3_FRAME_ID_22('T', 'D', 'Y') -#define ID3_TEN ID3_FRAME_ID_22('T', 'E', 'N') -#define ID3_TFT ID3_FRAME_ID_22('T', 'F', 'T') -#define ID3_TIM ID3_FRAME_ID_22('T', 'I', 'M') -#define ID3_TKE ID3_FRAME_ID_22('T', 'K', 'E') -#define ID3_TLA ID3_FRAME_ID_22('T', 'L', 'A') -#define ID3_TLE ID3_FRAME_ID_22('T', 'L', 'E') -#define ID3_TMT ID3_FRAME_ID_22('T', 'M', 'T') -#define ID3_TOA ID3_FRAME_ID_22('T', 'O', 'A') -#define ID3_TOF ID3_FRAME_ID_22('T', 'O', 'F') -#define ID3_TOL ID3_FRAME_ID_22('T', 'O', 'L') -#define ID3_TOR ID3_FRAME_ID_22('T', 'O', 'R') -#define ID3_TOT ID3_FRAME_ID_22('T', 'O', 'T') -#define ID3_TP1 ID3_FRAME_ID_22('T', 'P', '1') -#define ID3_TP2 ID3_FRAME_ID_22('T', 'P', '2') -#define ID3_TP3 ID3_FRAME_ID_22('T', 'P', '3') -#define ID3_TP4 ID3_FRAME_ID_22('T', 'P', '4') -#define ID3_TPA ID3_FRAME_ID_22('T', 'P', 'A') -#define ID3_TPB ID3_FRAME_ID_22('T', 'P', 'B') -#define ID3_TRC ID3_FRAME_ID_22('T', 'R', 'C') -#define ID3_TRD ID3_FRAME_ID_22('T', 'R', 'D') -#define ID3_TRK ID3_FRAME_ID_22('T', 'R', 'K') -#define ID3_TSI ID3_FRAME_ID_22('T', 'S', 'I') -#define ID3_TSS ID3_FRAME_ID_22('T', 'S', 'S') -#define ID3_TT1 ID3_FRAME_ID_22('T', 'T', '1') -#define ID3_TT2 ID3_FRAME_ID_22('T', 'T', '2') -#define ID3_TT3 ID3_FRAME_ID_22('T', 'T', '3') -#define ID3_TXT ID3_FRAME_ID_22('T', 'X', 'T') -#define ID3_TXX ID3_FRAME_ID_22('T', 'X', 'X') -#define ID3_TYE ID3_FRAME_ID_22('T', 'Y', 'E') -#define ID3_UFI ID3_FRAME_ID_22('U', 'F', 'I') -#define ID3_ULT ID3_FRAME_ID_22('U', 'L', 'T') -#define ID3_WAF ID3_FRAME_ID_22('W', 'A', 'F') -#define ID3_WAR ID3_FRAME_ID_22('W', 'A', 'R') -#define ID3_WAS ID3_FRAME_ID_22('W', 'A', 'S') -#define ID3_WCM ID3_FRAME_ID_22('W', 'C', 'M') -#define ID3_WCP ID3_FRAME_ID_22('W', 'C', 'P') -#define ID3_WPB ID3_FRAME_ID_22('W', 'P', 'B') -#define ID3_WXX ID3_FRAME_ID_22('W', 'X', 'X') - - -/* - * Prototypes. - */ - -/* From id3.c */ -struct id3_tag *id3_open_mem(void *, int); -struct id3_tag *id3_open_fd(int, int); -struct id3_tag *id3_open_fp(VFSFile *, int); -int id3_set_output(struct id3_tag *, char *); -int id3_close(struct id3_tag *); -int id3_tell(struct id3_tag *); -int id3_alter_file(struct id3_tag *); -int id3_write_tag(struct id3_tag *, int); - -/* From id3_frame.c */ -int id3_read_frame(struct id3_tag *id3); -struct id3_frame *id3_get_frame(struct id3_tag *, guint32, int); -int id3_delete_frame(struct id3_frame *frame); -struct id3_frame *id3_add_frame(struct id3_tag *, guint32); -int id3_decompress_frame(struct id3_frame *); -void id3_destroy_frames(struct id3_tag *id); -void id3_frame_clear_data(struct id3_frame *frame); - -/* From id3_frame_text.c */ -char *id3_utf16_to_ascii(void *); -gint8 id3_get_encoding(struct id3_frame *); -int id3_set_encoding(struct id3_frame *, gint8); -char *id3_get_text(struct id3_frame *); -char *id3_get_text_desc(struct id3_frame *); -int id3_get_text_number(struct id3_frame *); -int id3_set_text(struct id3_frame *, char *); -int id3_set_text_number(struct id3_frame *, int); -gboolean id3_frame_is_text(struct id3_frame *frame); - -/* From id3_frame_content.c */ -char *id3_get_content(struct id3_frame *); - -/* From id3_frame_url.c */ -char *id3_get_url(struct id3_frame *); -char *id3_get_url_desc(struct id3_frame *); - -/* From id3_tag.c */ -void id3_init_tag(struct id3_tag *id3); -int id3_read_tag(struct id3_tag *id3); - -#endif /* ID3_H */
--- a/src/Input/vorbis/vcedit.c Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/vorbis/vcedit.c Mon Sep 18 02:22:03 2006 -0700 @@ -17,7 +17,7 @@ #include <vorbis/codec.h> #include "vcedit.h" -#include <libaudacious/vfs.h> +#include <audacious/vfs.h> #define CHUNKSIZE 4096
--- a/src/Input/vorbis/vcedit.h Mon Sep 18 02:02:50 2006 -0700 +++ b/src/Input/vorbis/vcedit.h Mon Sep 18 02:22:03 2006 -0700 @@ -17,7 +17,7 @@ #include <stdio.h> #include <ogg/ogg.h> #include <vorbis/codec.h> -#include <libaudacious/vfs.h> +#include <audacious/vfs.h> typedef size_t (*vcedit_read_func)(void *, size_t, size_t, void *); typedef size_t (*vcedit_write_func)(const void *, size_t, size_t, void *);