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

📄 mikmod.h.in

📁 wince下著名的视频播放器源码
💻 IN
📖 第 1 页 / 共 2 页
字号:
} ENVPT;/* Envelope point count */#define ENVPOINTS 32/* Instrument structure */typedef struct INSTRUMENT {	CHAR* insname;	UBYTE flags;	UWORD samplenumber[INSTNOTES];	UBYTE samplenote[INSTNOTES];	UBYTE nnatype;	UBYTE dca;              /* duplicate check action */	UBYTE dct;              /* duplicate check type */	UBYTE globvol;	UWORD volfade;	SWORD panning;          /* instrument-based panning var */	UBYTE pitpansep;        /* pitch pan separation (0 to 255) */	UBYTE pitpancenter;     /* pitch pan center (0 to 119) */	UBYTE rvolvar;          /* random volume varations (0 - 100%) */	UBYTE rpanvar;          /* random panning varations (0 - 100%) */	/* volume envelope */	UBYTE volflg;           /* bit 0: on 1: sustain 2: loop */	UBYTE volpts;	UBYTE volsusbeg;	UBYTE volsusend;	UBYTE volbeg;	UBYTE volend;	ENVPT volenv[ENVPOINTS];	/* panning envelope */	UBYTE panflg;           /* bit 0: on 1: sustain 2: loop */	UBYTE panpts;	UBYTE pansusbeg;	UBYTE pansusend;	UBYTE panbeg;	UBYTE panend;	ENVPT panenv[ENVPOINTS];	/* pitch envelope */	UBYTE pitflg;           /* bit 0: on 1: sustain 2: loop */	UBYTE pitpts;	UBYTE pitsusbeg;	UBYTE pitsusend;	UBYTE pitbeg;	UBYTE pitend;	ENVPT pitenv[ENVPOINTS];} INSTRUMENT;struct MP_CONTROL;struct MP_VOICE;/*	Module definition*//* maximum master channels supported */#define UF_MAXCHAN	64/* Module flags */#define UF_XMPERIODS	0x0001 /* XM periods / finetuning */#define UF_LINEAR		0x0002 /* LINEAR periods (UF_XMPERIODS must be set) */#define UF_INST			0x0004 /* Instruments are used */#define UF_NNA			0x0008 /* IT: NNA used, set numvoices rather								  than numchn */#define UF_S3MSLIDES	0x0010 /* uses old S3M volume slides */#define UF_BGSLIDES		0x0020 /* continue volume slides in the background */#define UF_HIGHBPM		0x0040 /* MED: can use >255 bpm */#define UF_NOWRAP		0x0080 /* XM-type (i.e. illogical) pattern break								  semantics */#define UF_ARPMEM		0x0100 /* IT: need arpeggio memory */#define UF_FT2QUIRKS	0x0200 /* emulate some FT2 replay quirks */#define UF_PANNING		0x0400 /* module uses panning effects or have								  non-tracker default initial panning */typedef struct MODULE {	/* general module information */		CHAR*       songname;    /* name of the song */		CHAR*       modtype;     /* string type of module loaded */		CHAR*       comment;     /* module comments */		UWORD       flags;       /* See module flags above */		UBYTE       numchn;      /* number of module channels */		UBYTE       numvoices;   /* max # voices used for full NNA playback */		UWORD       numpos;      /* number of positions in this song */		UWORD       numpat;      /* number of patterns in this song */		UWORD       numins;      /* number of instruments */		UWORD       numsmp;      /* number of samples */struct  INSTRUMENT* instruments; /* all instruments */struct  SAMPLE*     samples;     /* all samples */		UBYTE       realchn;     /* real number of channels used */		UBYTE       totalchn;    /* total number of channels used (incl NNAs) */	/* playback settings */		UWORD       reppos;      /* restart position */		UBYTE       initspeed;   /* initial song speed */		UWORD       inittempo;   /* initial song tempo */		UBYTE       initvolume;  /* initial global volume (0 - 128) */		UWORD       panning[UF_MAXCHAN]; /* panning positions */		UBYTE       chanvol[UF_MAXCHAN]; /* channel positions */		UWORD       bpm;         /* current beats-per-minute speed */		UWORD       sngspd;      /* current song speed */		SWORD       volume;      /* song volume (0-128) (or user volume) */		BOOL        extspd;      /* extended speed flag (default enabled) */		BOOL        panflag;     /* panning flag (default enabled) */		BOOL        wrap;        /* wrap module ? (default disabled) */		BOOL        loop;		 /* allow module to loop ? (default enabled) */		BOOL        fadeout;	 /* volume fade out during last pattern */		UWORD       patpos;      /* current row number */		SWORD       sngpos;      /* current song position */		ULONG       sngtime;     /* current song time in 2^-10 seconds */		SWORD       relspd;      /* relative speed factor */	/* internal module representation */		UWORD       numtrk;      /* number of tracks */		UBYTE**     tracks;      /* array of numtrk pointers to tracks */		UWORD*      patterns;    /* array of Patterns */		UWORD*      pattrows;    /* array of number of rows for each pattern */		UWORD*      positions;   /* all positions */		BOOL        forbid;      /* if true, no player update! */		UWORD       numrow;      /* number of rows on current pattern */		UWORD       vbtick;      /* tick counter (counts from 0 to sngspd) */		UWORD       sngremainder;/* used for song time computation */struct MP_CONTROL*  control;     /* Effects Channel info (size pf->numchn) */struct MP_VOICE*    voice;       /* Audio Voice information (size md_numchn) */		UBYTE       globalslide; /* global volume slide rate */		UBYTE       pat_repcrazy;/* module has just looped to position -1 */		UWORD       patbrk;      /* position where to start a new pattern */		UBYTE       patdly;      /* patterndelay counter (command memory) */		UBYTE       patdly2;     /* patterndelay counter (real one) */		SWORD       posjmp;      /* flag to indicate a jump is needed... */		UWORD		bpmlimit;	 /* threshold to detect bpm or speed values */} MODULE;/* This structure is used to query current playing voices status */typedef struct VOICEINFO {		INSTRUMENT* i;            /* Current channel instrument */		SAMPLE*     s;            /* Current channel sample */		SWORD       panning;      /* panning position */		SBYTE       volume;       /* channel's "global" volume (0..64) */		UWORD       period;       /* period to play the sample at */		UBYTE       kick;         /* if true = sample has been restarted */} VOICEINFO;/* *	========== Module loaders */struct MLOADER;MIKMODAPI extern CHAR*   MikMod_InfoLoader(void);MIKMODAPI extern void    MikMod_RegisterAllLoaders(void);MIKMODAPI extern void    MikMod_RegisterLoader(struct MLOADER*);MIKMODAPI extern struct MLOADER load_669; /* 669 and Extended-669 (by Tran/Renaissance) */MIKMODAPI extern struct MLOADER load_amf; /* DMP Advanced Module Format (by Otto Chrons) */MIKMODAPI extern struct MLOADER load_asy; /* ASYLUM Music Format 1.0 */MIKMODAPI extern struct MLOADER load_dsm; /* DSIK internal module format */MIKMODAPI extern struct MLOADER load_far; /* Farandole Composer (by Daniel Potter) */MIKMODAPI extern struct MLOADER load_gdm; /* General DigiMusic (by Edward Schlunder) */MIKMODAPI extern struct MLOADER load_it;  /* Impulse Tracker (by Jeffrey Lim) */MIKMODAPI extern struct MLOADER load_imf; /* Imago Orpheus (by Lutz Roeder) */MIKMODAPI extern struct MLOADER load_med; /* Amiga MED modules (by Teijo Kinnunen) */MIKMODAPI extern struct MLOADER load_m15; /* Soundtracker 15-instrument */MIKMODAPI extern struct MLOADER load_mod; /* Standard 31-instrument Module loader */MIKMODAPI extern struct MLOADER load_mtm; /* Multi-Tracker Module (by Renaissance) */MIKMODAPI extern struct MLOADER load_okt; /* Amiga Oktalyzer */MIKMODAPI extern struct MLOADER load_stm; /* ScreamTracker 2 (by Future Crew) */MIKMODAPI extern struct MLOADER load_stx; /* STMIK 0.2 (by Future Crew) */MIKMODAPI extern struct MLOADER load_s3m; /* ScreamTracker 3 (by Future Crew) */MIKMODAPI extern struct MLOADER load_ult; /* UltraTracker (by MAS) */MIKMODAPI extern struct MLOADER load_uni; /* MikMod and APlayer internal module format */MIKMODAPI extern struct MLOADER load_xm;  /* FastTracker 2 (by Triton) *//* *	========== Module player */MIKMODAPI extern MODULE* Player_Load(CHAR*,int,BOOL);MIKMODAPI extern MODULE* Player_LoadFP(FILE*,int,BOOL);MIKMODAPI extern MODULE* Player_LoadGeneric(MREADER*,int,BOOL);MIKMODAPI extern CHAR*   Player_LoadTitle(CHAR*);MIKMODAPI extern CHAR*   Player_LoadTitleFP(FILE*);MIKMODAPI extern void    Player_Free(MODULE*);MIKMODAPI extern void    Player_Start(MODULE*);MIKMODAPI extern BOOL    Player_Active(void);MIKMODAPI extern void    Player_Stop(void);MIKMODAPI extern void    Player_TogglePause(void);MIKMODAPI extern BOOL    Player_Paused(void);MIKMODAPI extern void    Player_NextPosition(void);MIKMODAPI extern void    Player_PrevPosition(void);MIKMODAPI extern void    Player_SetPosition(UWORD);MIKMODAPI extern BOOL    Player_Muted(UBYTE);MIKMODAPI extern void    Player_SetVolume(SWORD);MIKMODAPI extern MODULE* Player_GetModule(void);MIKMODAPI extern void    Player_SetSpeed(UWORD);MIKMODAPI extern void    Player_SetTempo(UWORD);MIKMODAPI extern void    Player_Unmute(SLONG,...);MIKMODAPI extern void    Player_Mute(SLONG,...);MIKMODAPI extern void    Player_ToggleMute(SLONG,...);MIKMODAPI extern int     Player_GetChannelVoice(UBYTE);MIKMODAPI extern UWORD   Player_GetChannelPeriod(UBYTE);MIKMODAPI extern int     Player_QueryVoices(UWORD numvoices, VOICEINFO *vinfo); typedef void (MikMod_player)(void);typedef MikMod_player *MikMod_player_t;MIKMODAPI extern MikMod_player_t MikMod_RegisterPlayer(MikMod_player_t);#define MUTE_EXCLUSIVE  32000#define MUTE_INCLUSIVE  32001/* *	========== Drivers */enum {	MD_MUSIC = 0,	MD_SNDFX};enum {	MD_HARDWARE = 0,	MD_SOFTWARE};/* Mixing flags *//* These ones take effect only after MikMod_Init or MikMod_Reset */#define DMODE_16BITS     0x0001 /* enable 16 bit output */#define DMODE_STEREO     0x0002 /* enable stereo output */#define DMODE_SOFT_SNDFX 0x0004 /* Process sound effects via software mixer */#define DMODE_SOFT_MUSIC 0x0008 /* Process music via software mixer */#define DMODE_HQMIXER    0x0010 /* Use high-quality (slower) software mixer */#define DMODE_FLOAT      0x0020 /* enable float output *//* These take effect immediately. */#define DMODE_SURROUND   0x0100 /* enable surround sound */#define DMODE_INTERP     0x0200 /* enable interpolation */#define DMODE_REVERSE    0x0400 /* reverse stereo */struct SAMPLOAD;typedef struct MDRIVER {struct MDRIVER* next;	CHAR*       Name;	CHAR*       Version;	UBYTE       HardVoiceLimit; /* Limit of hardware mixer voices */	UBYTE       SoftVoiceLimit; /* Limit of software mixer voices */	CHAR        *Alias;	CHAR        *CmdLineHelp;	void        (*CommandLine)      (CHAR*);	BOOL        (*IsPresent)        (void);	SWORD       (*SampleLoad)       (struct SAMPLOAD*,int);	void        (*SampleUnload)     (SWORD);	ULONG       (*FreeSampleSpace)  (int);	ULONG       (*RealSampleLength) (int,struct SAMPLE*);	BOOL        (*Init)             (void);	void        (*Exit)             (void);	BOOL        (*Reset)            (void);	BOOL        (*SetNumVoices)     (void);	BOOL        (*PlayStart)        (void);	void        (*PlayStop)         (void);	void        (*Update)           (void);	void		(*Pause)			(void);	void        (*VoiceSetVolume)   (UBYTE,UWORD);	UWORD       (*VoiceGetVolume)   (UBYTE);	void        (*VoiceSetFrequency)(UBYTE,ULONG);	ULONG       (*VoiceGetFrequency)(UBYTE);	void        (*VoiceSetPanning)  (UBYTE,ULONG);	ULONG       (*VoiceGetPanning)  (UBYTE);	void        (*VoicePlay)        (UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);	void        (*VoiceStop)        (UBYTE);	BOOL        (*VoiceStopped)     (UBYTE);	SLONG       (*VoiceGetPosition) (UBYTE);	ULONG       (*VoiceRealVolume)  (UBYTE);} MDRIVER;/* These variables can be changed at ANY time and results will be immediate */MIKMODAPI extern UBYTE md_volume;      /* global sound volume (0-128) */MIKMODAPI extern UBYTE md_musicvolume; /* volume of song */MIKMODAPI extern UBYTE md_sndfxvolume; /* volume of sound effects */MIKMODAPI extern UBYTE md_reverb;      /* 0 = none;  15 = chaos */MIKMODAPI extern UBYTE md_pansep;      /* 0 = mono;  128 == 100% (full left/right) *//* The variables below can be changed at any time, but changes will not be   implemented until MikMod_Reset is called. A call to MikMod_Reset may result   in a skip or pop in audio (depending on the soundcard driver and the settings   changed). */MIKMODAPI extern UWORD md_device;      /* device */MIKMODAPI extern UWORD md_mixfreq;     /* mixing frequency */MIKMODAPI extern UWORD md_mode;        /* mode. See DMODE_? flags above *//* The following variable should not be changed! */MIKMODAPI extern MDRIVER* md_driver;   /* Current driver in use. *//* Known drivers list */MIKMODAPI extern struct MDRIVER drv_nos;    /* no sound */MIKMODAPI extern struct MDRIVER drv_pipe;   /* piped output */MIKMODAPI extern struct MDRIVER drv_raw;    /* raw file disk writer [music.raw] */MIKMODAPI extern struct MDRIVER drv_stdout; /* output to stdout */MIKMODAPI extern struct MDRIVER drv_wav;    /* RIFF WAVE file disk writer [music.wav] */MIKMODAPI extern struct MDRIVER drv_ultra;  /* Linux Ultrasound driver */MIKMODAPI extern struct MDRIVER drv_sam9407;	/* Linux sam9407 driver */MIKMODAPI extern struct MDRIVER drv_AF;     /* Dec Alpha AudioFile */MIKMODAPI extern struct MDRIVER drv_aix;    /* AIX audio device */MIKMODAPI extern struct MDRIVER drv_alsa;   /* Advanced Linux Sound Architecture (ALSA) */MIKMODAPI extern struct MDRIVER drv_esd;    /* Enlightened sound daemon (EsounD) */MIKMODAPI extern struct MDRIVER drv_hp;     /* HP-UX audio device */MIKMODAPI extern struct MDRIVER drv_oss;    /* OpenSound System (Linux,FreeBSD...) */MIKMODAPI extern struct MDRIVER drv_sgi;    /* SGI audio library */MIKMODAPI extern struct MDRIVER drv_sun;    /* Sun/NetBSD/OpenBSD audio device */MIKMODAPI extern struct MDRIVER drv_dart;   /* OS/2 Direct Audio RealTime */MIKMODAPI extern struct MDRIVER drv_os2;    /* OS/2 MMPM/2 */MIKMODAPI extern struct MDRIVER drv_ds;     /* Win32 DirectSound driver */MIKMODAPI extern struct MDRIVER drv_win;    /* Win32 multimedia API driver */MIKMODAPI extern struct MDRIVER drv_mac;    /* Macintosh Sound Manager driver */MIKMODAPI extern struct MDRIVER drv_osx;	/* MacOS X CoreAudio Driver *//*========== Virtual channel mixer interface (for user-supplied drivers only) */MIKMODAPI extern BOOL  VC_Init(void);MIKMODAPI extern void  VC_Exit(void);MIKMODAPI extern BOOL  VC_SetNumVoices(void);MIKMODAPI extern ULONG VC_SampleSpace(int);MIKMODAPI extern ULONG VC_SampleLength(int,SAMPLE*);MIKMODAPI extern BOOL  VC_PlayStart(void);MIKMODAPI extern void  VC_PlayStop(void);MIKMODAPI extern SWORD VC_SampleLoad(struct SAMPLOAD*,int);MIKMODAPI extern void  VC_SampleUnload(SWORD);MIKMODAPI extern ULONG VC_WriteBytes(SBYTE*,ULONG);MIKMODAPI extern ULONG VC_SilenceBytes(SBYTE*,ULONG);MIKMODAPI extern void  VC_VoiceSetVolume(UBYTE,UWORD);MIKMODAPI extern UWORD VC_VoiceGetVolume(UBYTE);MIKMODAPI extern void  VC_VoiceSetFrequency(UBYTE,ULONG);MIKMODAPI extern ULONG VC_VoiceGetFrequency(UBYTE);MIKMODAPI extern void  VC_VoiceSetPanning(UBYTE,ULONG);MIKMODAPI extern ULONG VC_VoiceGetPanning(UBYTE);MIKMODAPI extern void  VC_VoicePlay(UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);MIKMODAPI extern void  VC_VoiceStop(UBYTE);MIKMODAPI extern BOOL  VC_VoiceStopped(UBYTE);MIKMODAPI extern SLONG VC_VoiceGetPosition(UBYTE);MIKMODAPI extern ULONG VC_VoiceRealVolume(UBYTE);#ifdef __cplusplus}#endif#endif/* ex:set ts=4: */

⌨️ 快捷键说明

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