📄 unimod_priv.h
字号:
/* MikMod sound library (c) 1998, 1999 Miodrag Vallat and others - see file AUTHORS for complete list. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *//*============================================================================== $Id: unimod_priv.h,v 1.23 1999/10/25 16:31:41 miod Exp $ MikMod sound library internal definitions==============================================================================*/#ifndef _UNIMOD_PRIV_H#define _UNIMOD_PRIV_H#ifdef __cplusplusextern "C"{#endif#if defined(HAVE_MALLOC_H) && !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)#include <malloc.h>#endif#include <stdarg.h>#if defined(__OS2__)||defined(__EMX__)||defined(__W32__)#ifndef strcasecmp#define strcasecmp(s,t) stricmp(s,t)#endif#endif#include "unimod.h"#include "url.h"#ifdef __W32__#pragma warning(disable:4761)#endif/*========== Error handling */#define _mm_errno ML_errno/*========== Memory allocation */extern void *_mm_malloc (size_t);extern void *_mm_calloc (size_t, size_t);#define _mm_free(p) do { if (p) free(p); p = NULL; } while(0)/*========== Portable file I/O */#define _mm_read_SBYTE(x) ((SBYTE)url_getc(x))#define _mm_read_UBYTE(x) ((UBYTE)url_getc(x))#define _mm_read_SBYTES(x,y,z) url_nread(z,(void *)x,y)#define _mm_read_UBYTES(x,y,z) url_nread(z,(void *)x,y)#define _mm_fseek(x,y,z) url_seek(x,y,z)#define _mm_ftell(x) url_tell(x)#define _mm_eof(x) url_eof(x)#define _mm_rewind(x) _mm_fseek(x,0,SEEK_SET)extern int _mm_read_string (CHAR *, int, URL);extern SWORD _mm_read_M_SWORD (URL);extern SWORD _mm_read_I_SWORD (URL);extern UWORD _mm_read_M_UWORD (URL);extern UWORD _mm_read_I_UWORD (URL);extern SLONG _mm_read_M_SLONG (URL);extern SLONG _mm_read_I_SLONG (URL);extern ULONG _mm_read_M_ULONG (URL);extern ULONG _mm_read_I_ULONG (URL);extern int _mm_read_M_SWORDS (SWORD *, int, URL);extern int _mm_read_I_SWORDS (SWORD *, int, URL);extern int _mm_read_M_UWORDS (UWORD *, int, URL);extern int _mm_read_I_UWORDS (UWORD *, int, URL);extern int _mm_read_M_SLONGS (SLONG *, int, URL);extern int _mm_read_I_SLONGS (SLONG *, int, URL);extern int _mm_read_M_ULONGS (ULONG *, int, URL);extern int _mm_read_I_ULONGS (ULONG *, int, URL);/*========== Loaders */typedef struct MLOADER{ struct MLOADER *next; CHAR *type; CHAR *version; BOOL (*Init) (void); BOOL (*Test) (void); BOOL (*Load) (BOOL); void (*Cleanup) (void); CHAR *(*LoadTitle) (void);}MLOADER;/* internal loader variables: */extern URL modreader;extern UWORD finetune[16];extern MODULE of; /* static unimod loading space */extern SBYTE remap[64]; /* for removing empty channels */extern UBYTE *poslookup; /* lookup table for pattern jumps after blank pattern removal */extern UBYTE poslookupcnt;extern UWORD *origpositions;extern BOOL filters; /* resonant filters in use */extern UBYTE activemacro; /* active midi macro number for Sxx */extern UBYTE filtermacros[16]; /* midi macros settings */extern FILTER filtersettings[256]; /* computed filter settings */extern int *noteindex;/* tracker identifiers */#define STM_NTRACKERS 3extern CHAR *STM_Signatures[];extern CHAR *STM_Version[];/*========== Internal loader interface */extern BOOL ReadComment (UWORD);extern BOOL ReadLinedComment (UWORD, UWORD);extern BOOL AllocPositions (int);extern BOOL AllocPatterns (void);extern BOOL AllocTracks (void);extern BOOL AllocInstruments (void);extern BOOL AllocSamples (void);extern CHAR *DupStr (CHAR *, UWORD, BOOL);/* loader utility functions */extern int *AllocLinear (void);extern void FreeLinear (void);extern int speed_to_finetune (ULONG, int);extern void S3MIT_ProcessCmd (UBYTE, UBYTE, BOOL);extern void S3MIT_CreateOrders (BOOL);#ifdef __cplusplus}#endif#endif/* ex:set ts=4: */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -