IFND XMREPLAY_I XMREPLAY_I SET 1 ** ** XModule replay routine 1.0 ** ** Copyright (C) 1995 Bernardo Innocenti ** ** Assembler structure definitions for player ** IFND EXEC_TYPES_I include exec/types.i ENDC STRUCTURE PlayerCmd,MN_SIZE ULONG pcmd_ID APTR pcmd_Data LONG pcmd_Err LABEL PlayerCmd_size ENUM -1 EITEM PCMD_SETUP EITEM PCMD_PLAY EITEM PCMD_INIT EITEM PCMD_COUNT ENUM 0 EITEM PERR_OK EITEM PERR_UNKNOWN_COMMAND EITEM PERR_NO_AUDIO STRUCTURE NoteStruct,0 APTR nst_Channels ; pointer to a list of notechannels ULONG nst_Flags ; misc flags (see below) ULONG nst_MaxFrequency ; max. frequency of this player (28,867 Hz in DMA mode) UWORD nst_MaxVolume ; max. volume of this player (in most cases 64) STRUCT nst_Reserved,18 ; reserved for future use (must be 0 for now) LABEL NoteStruct_SIZE BITDEF NST,Dummy,0 ; only a dummy-NoteStruct (no NotePlayer needed) BITDEF NST,Period,1 ; Amiga period supplied instead of frequency BITDEF NST,ExtPeriod,2 ; Extended period (period*4) supplied instead of frequency BITDEF NST,NTSCTiming,3 ; Period/ExtPeriod supplied in NTSC instead of PAL BITDEF NST,EvenLength,4 ; Samplelength supplied as WORD instead of LONG BITDEF NST,AllRepeats,5 ; play Repeats even if no One-Shot part was played yet BITDEF NST,Reverse,8 ; little endian byte ordering BITDEF NST,Signed,9 ; sample data is signed linear (2's complement) BITDEF NST,Unsigned,10 ; -"- unsigned linear BITDEF NST,Ulaw,11 ; -"- U-law (logarithmic) BITDEF NST,Alaw,12 ; -"- A-law (logarithmic) BITDEF NST,Float,13 ; -"- IEEE floats BITDEF NST,7Bit,16 ; sample data is in 7-bit format BITDEF NST,8Bit,17 ; -"- bytes BITDEF NST,16Bit,18 ; -"- 16-bit words BITDEF NST,24Bit,19 ; -"- 24-bit data BITDEF NST,32Bit,20 ; -"- longwords BITDEF NST,64Bit,21 ; -"- quadwords NSTD_TypeMask EQU NSTF_Reverse!NSTF_Signed!NSTF_Unsigned!NSTF_Ulaw!NSTF_Alaw!NSTF_Float NSTD_SizeMask EQU NSTF_7Bit!NSTF_8Bit!NSTF_16Bit!NSTF_24Bit!NSTF_32Bit!NSTF_64Bit STRUCTURE NoteChannel,0 APTR nch_NextChannel ; next channel in the list (NULL if last) ULONG nch_NotePlayer ; for use by the noteplayer (the deliplayer must ignore this) WORD nch_Reserved0 ; reserved for future use (must be 0 for now) UBYTE nch_Private ; just what it says UBYTE nch_Changed ; what has changed since last call WORD nch_StereoPos ; set this field when the InitNote function is called WORD nch_Stereo ; describes "where" this channel is supposed to play APTR nch_SampleStart ; ^sampledata ULONG nch_SampleLength ; size of sample APTR nch_RepeatStart ; ^repeat part of sample ULONG nch_RepeatLength ; size of repeat part ULONG nch_Frequency ; frequency (or period) of sample UWORD nch_Volume ; volume of sample STRUCT nch_Reserved1,26 ; reserved for future use (must be 0 for now) LABEL NoteChannel_SIZE BITDEF NCH,Stereo,0 ; pan position of channel has changed (???) BITDEF NCH,Sample,1 ; one-shot part of sample has changed BITDEF NCH,Repeat,2 ; repeat part of sample has changed BITDEF NCH,Frequency,3 ; frequency has changed BITDEF NCH,Volume,4 ; volume (or pan position ???) has changed BITDEF NCH,Trigger,5 ; trigger sample BITDEF NCH,Loop,16 ; sample has looped at least once (set by DeliTracker) NCHD_Ignore EQU -32768 ; ignore this notechannel NCHD_Balanced EQU 0 ; play balanced on both sides NCHD_FarLeft EQU -32767 ; play only on left speaker NCHD_FarRight EQU 32767 ; play only on right speaker ENDC ; !XMREPLAY_I