MIDI: Update BASS, BASSMIDI, BASSFLAC, and BASSOpus
parent
ea853109ed
commit
6b1d4e7350
|
@ -19,7 +19,9 @@ typedef uint8_t BYTE;
|
|||
typedef uint16_t WORD;
|
||||
typedef uint32_t DWORD;
|
||||
typedef uint64_t QWORD;
|
||||
#ifndef __OBJC__
|
||||
#ifdef __OBJC__
|
||||
#include <objc/objc.h>
|
||||
#else
|
||||
typedef int BOOL;
|
||||
#endif
|
||||
#ifndef TRUE
|
||||
|
@ -70,6 +72,7 @@ typedef DWORD HPLUGIN; // Plugin handle
|
|||
#define BASS_ERROR_START 9 // BASS_Start has not been successfully called
|
||||
#define BASS_ERROR_SSL 10 // SSL/HTTPS support isn't available
|
||||
#define BASS_ERROR_ALREADY 14 // already initialized/paused/whatever
|
||||
#define BASS_ERROR_NOTAUDIO 17 // file does not contain audio
|
||||
#define BASS_ERROR_NOCHAN 18 // can't get a free channel
|
||||
#define BASS_ERROR_ILLTYPE 19 // an illegal type was specified
|
||||
#define BASS_ERROR_ILLPARAM 20 // an illegal parameter was specified
|
||||
|
@ -93,7 +96,8 @@ typedef DWORD HPLUGIN; // Plugin handle
|
|||
#define BASS_ERROR_VERSION 43 // invalid BASS version (used by add-ons)
|
||||
#define BASS_ERROR_CODEC 44 // codec is not available/supported
|
||||
#define BASS_ERROR_ENDED 45 // the channel/file has ended
|
||||
#define BASS_ERROR_BUSY 46 // the device is busy
|
||||
#define BASS_ERROR_BUSY 46 // the device is busy
|
||||
#define BASS_ERROR_UNSTREAMABLE 47 // unstreamable file
|
||||
#define BASS_ERROR_UNKNOWN -1 // some other mystery problem
|
||||
|
||||
// BASS_SetConfig options
|
||||
|
@ -117,55 +121,65 @@ typedef DWORD HPLUGIN; // Plugin handle
|
|||
#define BASS_CONFIG_VERIFY 23
|
||||
#define BASS_CONFIG_UPDATETHREADS 24
|
||||
#define BASS_CONFIG_DEV_BUFFER 27
|
||||
#define BASS_CONFIG_REC_LOOPBACK 28
|
||||
#define BASS_CONFIG_VISTA_TRUEPOS 30
|
||||
#define BASS_CONFIG_IOS_MIXAUDIO 34
|
||||
#define BASS_CONFIG_DEV_DEFAULT 36
|
||||
#define BASS_CONFIG_NET_READTIMEOUT 37
|
||||
#define BASS_CONFIG_VISTA_SPEAKERS 38
|
||||
#define BASS_CONFIG_IOS_SPEAKER 39
|
||||
#define BASS_CONFIG_MF_DISABLE 40
|
||||
#define BASS_CONFIG_HANDLES 41
|
||||
#define BASS_CONFIG_UNICODE 42
|
||||
#define BASS_CONFIG_SRC 43
|
||||
#define BASS_CONFIG_SRC_SAMPLE 44
|
||||
#define BASS_CONFIG_ASYNCFILE_BUFFER 45
|
||||
#define BASS_CONFIG_OGG_PRESCAN 47
|
||||
#define BASS_CONFIG_MF_VIDEO 48
|
||||
#define BASS_CONFIG_AIRPLAY 49
|
||||
#define BASS_CONFIG_DEV_NONSTOP 50
|
||||
#define BASS_CONFIG_IOS_NOCATEGORY 51
|
||||
#define BASS_CONFIG_REC_LOOPBACK 28
|
||||
#define BASS_CONFIG_VISTA_TRUEPOS 30
|
||||
#define BASS_CONFIG_IOS_SESSION 34
|
||||
#define BASS_CONFIG_IOS_MIXAUDIO 34
|
||||
#define BASS_CONFIG_DEV_DEFAULT 36
|
||||
#define BASS_CONFIG_NET_READTIMEOUT 37
|
||||
#define BASS_CONFIG_VISTA_SPEAKERS 38
|
||||
#define BASS_CONFIG_IOS_SPEAKER 39
|
||||
#define BASS_CONFIG_MF_DISABLE 40
|
||||
#define BASS_CONFIG_HANDLES 41
|
||||
#define BASS_CONFIG_UNICODE 42
|
||||
#define BASS_CONFIG_SRC 43
|
||||
#define BASS_CONFIG_SRC_SAMPLE 44
|
||||
#define BASS_CONFIG_ASYNCFILE_BUFFER 45
|
||||
#define BASS_CONFIG_OGG_PRESCAN 47
|
||||
#define BASS_CONFIG_MF_VIDEO 48
|
||||
#define BASS_CONFIG_AIRPLAY 49
|
||||
#define BASS_CONFIG_DEV_NONSTOP 50
|
||||
#define BASS_CONFIG_IOS_NOCATEGORY 51
|
||||
#define BASS_CONFIG_VERIFY_NET 52
|
||||
#define BASS_CONFIG_DEV_PERIOD 53
|
||||
#define BASS_CONFIG_FLOAT 54
|
||||
#define BASS_CONFIG_DEV_PERIOD 53
|
||||
#define BASS_CONFIG_FLOAT 54
|
||||
#define BASS_CONFIG_NET_SEEK 56
|
||||
#define BASS_CONFIG_AM_DISABLE 58
|
||||
#define BASS_CONFIG_AM_DISABLE 58
|
||||
#define BASS_CONFIG_NET_PLAYLIST_DEPTH 59
|
||||
#define BASS_CONFIG_NET_PREBUF_WAIT 60
|
||||
#define BASS_CONFIG_WASAPI_PERSIST 65
|
||||
#define BASS_CONFIG_REC_WASAPI 66
|
||||
#define BASS_CONFIG_ANDROID_SESSIONID 62
|
||||
#define BASS_CONFIG_WASAPI_PERSIST 65
|
||||
#define BASS_CONFIG_REC_WASAPI 66
|
||||
#define BASS_CONFIG_ANDROID_AAUDIO 67
|
||||
|
||||
// BASS_SetConfigPtr options
|
||||
#define BASS_CONFIG_NET_AGENT 16
|
||||
#define BASS_CONFIG_NET_PROXY 17
|
||||
#define BASS_CONFIG_IOS_NOTIFY 46
|
||||
#define BASS_CONFIG_LIBSSL 64
|
||||
#define BASS_CONFIG_IOS_NOTIFY 46
|
||||
#define BASS_CONFIG_LIBSSL 64
|
||||
|
||||
// BASS_CONFIG_IOS_SESSION flags
|
||||
#define BASS_IOS_SESSION_MIX 1
|
||||
#define BASS_IOS_SESSION_DUCK 2
|
||||
#define BASS_IOS_SESSION_AMBIENT 4
|
||||
#define BASS_IOS_SESSION_SPEAKER 8
|
||||
#define BASS_IOS_SESSION_DISABLE 16
|
||||
|
||||
// BASS_Init flags
|
||||
#define BASS_DEVICE_8BITS 1 // 8 bit
|
||||
#define BASS_DEVICE_MONO 2 // mono
|
||||
#define BASS_DEVICE_3D 4 // enable 3D functionality
|
||||
#define BASS_DEVICE_16BITS 8 // limit output to 16 bit
|
||||
#define BASS_DEVICE_16BITS 8 // limit output to 16 bit
|
||||
#define BASS_DEVICE_LATENCY 0x100 // calculate device latency (BASS_INFO struct)
|
||||
#define BASS_DEVICE_CPSPEAKERS 0x400 // detect speakers via Windows control panel
|
||||
#define BASS_DEVICE_SPEAKERS 0x800 // force enabling of speaker assignment
|
||||
#define BASS_DEVICE_NOSPEAKER 0x1000 // ignore speaker arrangement
|
||||
#define BASS_DEVICE_DMIX 0x2000 // use ALSA "dmix" plugin
|
||||
#define BASS_DEVICE_FREQ 0x4000 // set device sample rate
|
||||
#define BASS_DEVICE_STEREO 0x8000 // limit output to stereo
|
||||
#define BASS_DEVICE_HOG 0x10000 // hog/exclusive mode
|
||||
#define BASS_DEVICE_AUDIOTRACK 0x20000 // use AudioTrack output
|
||||
#define BASS_DEVICE_DSOUND 0x40000 // use DirectSound output
|
||||
#define BASS_DEVICE_FREQ 0x4000 // set device sample rate
|
||||
#define BASS_DEVICE_STEREO 0x8000 // limit output to stereo
|
||||
#define BASS_DEVICE_HOG 0x10000 // hog/exclusive mode
|
||||
#define BASS_DEVICE_AUDIOTRACK 0x20000 // use AudioTrack output
|
||||
#define BASS_DEVICE_DSOUND 0x40000 // use DirectSound output
|
||||
|
||||
// DirectSound interfaces (for use with BASS_GetDSoundObject)
|
||||
#define BASS_OBJECT_DS 1 // IDirectSound
|
||||
|
@ -187,24 +201,24 @@ typedef struct {
|
|||
#define BASS_DEVICE_ENABLED 1
|
||||
#define BASS_DEVICE_DEFAULT 2
|
||||
#define BASS_DEVICE_INIT 4
|
||||
#define BASS_DEVICE_LOOPBACK 8
|
||||
#define BASS_DEVICE_LOOPBACK 8
|
||||
|
||||
#define BASS_DEVICE_TYPE_MASK 0xff000000
|
||||
#define BASS_DEVICE_TYPE_NETWORK 0x01000000
|
||||
#define BASS_DEVICE_TYPE_SPEAKERS 0x02000000
|
||||
#define BASS_DEVICE_TYPE_LINE 0x03000000
|
||||
#define BASS_DEVICE_TYPE_HEADPHONES 0x04000000
|
||||
#define BASS_DEVICE_TYPE_MICROPHONE 0x05000000
|
||||
#define BASS_DEVICE_TYPE_HEADSET 0x06000000
|
||||
#define BASS_DEVICE_TYPE_HANDSET 0x07000000
|
||||
#define BASS_DEVICE_TYPE_DIGITAL 0x08000000
|
||||
#define BASS_DEVICE_TYPE_SPDIF 0x09000000
|
||||
#define BASS_DEVICE_TYPE_HDMI 0x0a000000
|
||||
#define BASS_DEVICE_TYPE_DISPLAYPORT 0x40000000
|
||||
#define BASS_DEVICE_TYPE_NETWORK 0x01000000
|
||||
#define BASS_DEVICE_TYPE_SPEAKERS 0x02000000
|
||||
#define BASS_DEVICE_TYPE_LINE 0x03000000
|
||||
#define BASS_DEVICE_TYPE_HEADPHONES 0x04000000
|
||||
#define BASS_DEVICE_TYPE_MICROPHONE 0x05000000
|
||||
#define BASS_DEVICE_TYPE_HEADSET 0x06000000
|
||||
#define BASS_DEVICE_TYPE_HANDSET 0x07000000
|
||||
#define BASS_DEVICE_TYPE_DIGITAL 0x08000000
|
||||
#define BASS_DEVICE_TYPE_SPDIF 0x09000000
|
||||
#define BASS_DEVICE_TYPE_HDMI 0x0a000000
|
||||
#define BASS_DEVICE_TYPE_DISPLAYPORT 0x40000000
|
||||
|
||||
// BASS_GetDeviceInfo flags
|
||||
#define BASS_DEVICES_AIRPLAY 0x1000000
|
||||
|
||||
// BASS_GetDeviceInfo flags
|
||||
#define BASS_DEVICES_AIRPLAY 0x1000000
|
||||
|
||||
typedef struct {
|
||||
DWORD flags; // device capabilities (DSCAPS_xxx flags)
|
||||
DWORD hwsize; // size of total device hardware memory
|
||||
|
@ -242,7 +256,7 @@ typedef struct {
|
|||
|
||||
// BASS_RECORDINFO flags (from DSOUND.H)
|
||||
#define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER // device does NOT have hardware DirectSound recording support
|
||||
#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED // device driver has been certified by Microsoft
|
||||
#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED // device driver has been certified by Microsoft
|
||||
|
||||
// defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
|
||||
#ifndef WAVE_FORMAT_1M08
|
||||
|
@ -344,12 +358,12 @@ typedef struct {
|
|||
#define BASS_SPEAKER_REAR2LEFT BASS_SPEAKER_REAR2|BASS_SPEAKER_LEFT
|
||||
#define BASS_SPEAKER_REAR2RIGHT BASS_SPEAKER_REAR2|BASS_SPEAKER_RIGHT
|
||||
|
||||
#define BASS_ASYNCFILE 0x40000000
|
||||
#define BASS_ASYNCFILE 0x40000000
|
||||
#define BASS_UNICODE 0x80000000
|
||||
|
||||
#define BASS_RECORD_PAUSE 0x8000 // start recording paused
|
||||
#define BASS_RECORD_ECHOCANCEL 0x2000
|
||||
#define BASS_RECORD_AGC 0x4000
|
||||
#define BASS_RECORD_ECHOCANCEL 0x2000
|
||||
#define BASS_RECORD_AGC 0x4000
|
||||
|
||||
// DX7 voice allocation & management flags
|
||||
#define BASS_VAM_HARDWARE 1
|
||||
|
@ -376,14 +390,15 @@ typedef struct {
|
|||
#define BASS_CTYPE_SAMPLE 1
|
||||
#define BASS_CTYPE_RECORD 2
|
||||
#define BASS_CTYPE_STREAM 0x10000
|
||||
#define BASS_CTYPE_STREAM_VORBIS 0x10002
|
||||
#define BASS_CTYPE_STREAM_OGG 0x10002
|
||||
#define BASS_CTYPE_STREAM_MP1 0x10003
|
||||
#define BASS_CTYPE_STREAM_MP2 0x10004
|
||||
#define BASS_CTYPE_STREAM_MP3 0x10005
|
||||
#define BASS_CTYPE_STREAM_AIFF 0x10006
|
||||
#define BASS_CTYPE_STREAM_CA 0x10007
|
||||
#define BASS_CTYPE_STREAM_MF 0x10008
|
||||
#define BASS_CTYPE_STREAM_AM 0x10009
|
||||
#define BASS_CTYPE_STREAM_MF 0x10008
|
||||
#define BASS_CTYPE_STREAM_AM 0x10009
|
||||
#define BASS_CTYPE_STREAM_DUMMY 0x18000
|
||||
#define BASS_CTYPE_STREAM_DEVICE 0x18001
|
||||
#define BASS_CTYPE_STREAM_WAV 0x40000 // WAVE flag, LOWORD=codec
|
||||
|
@ -497,8 +512,7 @@ enum
|
|||
#define EAX_PRESET_PSYCHOTIC EAX_ENVIRONMENT_PSYCHOTIC,0.486F,7.563F,0.806F
|
||||
|
||||
typedef DWORD (CALLBACK STREAMPROC)(HSTREAM handle, void *buffer, DWORD length, void *user);
|
||||
/* User stream callback function. NOTE: A stream function should obviously be as quick
|
||||
as possible, other streams (and MOD musics) can't be mixed until it's finished.
|
||||
/* User stream callback function.
|
||||
handle : The stream that needs writing
|
||||
buffer : Buffer to write the samples in
|
||||
length : Number of bytes to write
|
||||
|
@ -543,7 +557,7 @@ typedef struct {
|
|||
#define BASS_FILEPOS_CONNECTED 4
|
||||
#define BASS_FILEPOS_BUFFER 5
|
||||
#define BASS_FILEPOS_SOCKET 6
|
||||
#define BASS_FILEPOS_ASYNCBUF 7
|
||||
#define BASS_FILEPOS_ASYNCBUF 7
|
||||
#define BASS_FILEPOS_SIZE 8
|
||||
#define BASS_FILEPOS_BUFFERING 9
|
||||
|
||||
|
@ -568,23 +582,19 @@ user : The 'user' parameter value given when calling BASS_StreamCreateURL */
|
|||
#define BASS_SYNC_OGG_CHANGE 12
|
||||
#define BASS_SYNC_DEV_FAIL 14
|
||||
#define BASS_SYNC_DEV_FORMAT 15
|
||||
#define BASS_SYNC_THREAD 0x20000000 // flag: call sync in other thread
|
||||
#define BASS_SYNC_MIXTIME 0x40000000 // flag: sync at mixtime, else at playtime
|
||||
#define BASS_SYNC_ONETIME 0x80000000 // flag: sync only once, else continuously
|
||||
|
||||
typedef void (CALLBACK SYNCPROC)(HSYNC handle, DWORD channel, DWORD data, void *user);
|
||||
/* Sync callback function. NOTE: a sync callback function should be very
|
||||
quick as other syncs can't be processed until it has finished. If the sync
|
||||
is a "mixtime" sync, then other streams and MOD musics can't be mixed until
|
||||
it's finished either.
|
||||
/* Sync callback function.
|
||||
handle : The sync that has occured
|
||||
channel: Channel that the sync occured in
|
||||
data : Additional data associated with the sync's occurance
|
||||
user : The 'user' parameter given when calling BASS_ChannelSetSync */
|
||||
|
||||
typedef void (CALLBACK DSPPROC)(HDSP handle, DWORD channel, void *buffer, DWORD length, void *user);
|
||||
/* DSP callback function. NOTE: A DSP function should obviously be as quick as
|
||||
possible... other DSP functions, streams and MOD musics can not be processed
|
||||
until it's finished.
|
||||
/* DSP callback function.
|
||||
handle : The DSP handle
|
||||
channel: Channel that the DSP is being applied to
|
||||
buffer : Buffer to apply the DSP to
|
||||
|
@ -611,15 +621,16 @@ RETURN : TRUE = continue recording, FALSE = stop */
|
|||
#define BASS_ATTRIB_VOL 2
|
||||
#define BASS_ATTRIB_PAN 3
|
||||
#define BASS_ATTRIB_EAXMIX 4
|
||||
#define BASS_ATTRIB_NOBUFFER 5
|
||||
#define BASS_ATTRIB_VBR 6
|
||||
#define BASS_ATTRIB_CPU 7
|
||||
#define BASS_ATTRIB_SRC 8
|
||||
#define BASS_ATTRIB_NET_RESUME 9
|
||||
#define BASS_ATTRIB_SCANINFO 10
|
||||
#define BASS_ATTRIB_NORAMP 11
|
||||
#define BASS_ATTRIB_NOBUFFER 5
|
||||
#define BASS_ATTRIB_VBR 6
|
||||
#define BASS_ATTRIB_CPU 7
|
||||
#define BASS_ATTRIB_SRC 8
|
||||
#define BASS_ATTRIB_NET_RESUME 9
|
||||
#define BASS_ATTRIB_SCANINFO 10
|
||||
#define BASS_ATTRIB_NORAMP 11
|
||||
#define BASS_ATTRIB_BITRATE 12
|
||||
#define BASS_ATTRIB_BUFFER 13
|
||||
#define BASS_ATTRIB_GRANULE 14
|
||||
#define BASS_ATTRIB_MUSIC_AMPLIFY 0x100
|
||||
#define BASS_ATTRIB_MUSIC_PANSEP 0x101
|
||||
#define BASS_ATTRIB_MUSIC_PSCALER 0x102
|
||||
|
@ -643,19 +654,19 @@ RETURN : TRUE = continue recording, FALSE = stop */
|
|||
#define BASS_DATA_FFT2048 0x80000003 // 2048 FFT
|
||||
#define BASS_DATA_FFT4096 0x80000004 // 4096 FFT
|
||||
#define BASS_DATA_FFT8192 0x80000005 // 8192 FFT
|
||||
#define BASS_DATA_FFT16384 0x80000006 // 16384 FFT
|
||||
#define BASS_DATA_FFT32768 0x80000007 // 32768 FFT
|
||||
#define BASS_DATA_FFT16384 0x80000006 // 16384 FFT
|
||||
#define BASS_DATA_FFT32768 0x80000007 // 32768 FFT
|
||||
#define BASS_DATA_FFT_INDIVIDUAL 0x10 // FFT flag: FFT for each channel, else all combined
|
||||
#define BASS_DATA_FFT_NOWINDOW 0x20 // FFT flag: no Hanning window
|
||||
#define BASS_DATA_FFT_REMOVEDC 0x40 // FFT flag: pre-remove DC bias
|
||||
#define BASS_DATA_FFT_COMPLEX 0x80 // FFT flag: return complex data
|
||||
#define BASS_DATA_FFT_NYQUIST 0x100 // FFT flag: return extra Nyquist value
|
||||
#define BASS_DATA_FFT_COMPLEX 0x80 // FFT flag: return complex data
|
||||
#define BASS_DATA_FFT_NYQUIST 0x100 // FFT flag: return extra Nyquist value
|
||||
|
||||
// BASS_ChannelGetLevelEx flags
|
||||
#define BASS_LEVEL_MONO 1
|
||||
#define BASS_LEVEL_STEREO 2
|
||||
#define BASS_LEVEL_RMS 4
|
||||
#define BASS_LEVEL_VOLPAN 8
|
||||
#define BASS_LEVEL_MONO 1
|
||||
#define BASS_LEVEL_STEREO 2
|
||||
#define BASS_LEVEL_RMS 4
|
||||
#define BASS_LEVEL_VOLPAN 8
|
||||
|
||||
// BASS_ChannelGetTags types : what's returned
|
||||
#define BASS_TAG_ID3 0 // ID3v1 tags : TAG_ID3 structure
|
||||
|
@ -664,30 +675,30 @@ RETURN : TRUE = continue recording, FALSE = stop */
|
|||
#define BASS_TAG_HTTP 3 // HTTP headers : series of null-terminated ANSI strings
|
||||
#define BASS_TAG_ICY 4 // ICY headers : series of null-terminated ANSI strings
|
||||
#define BASS_TAG_META 5 // ICY metadata : ANSI string
|
||||
#define BASS_TAG_APE 6 // APE tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_MP4 7 // MP4/iTunes metadata : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_WMA 8 // WMA tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_APE 6 // APE tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_MP4 7 // MP4/iTunes metadata : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_WMA 8 // WMA tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_VENDOR 9 // OGG encoder : UTF-8 string
|
||||
#define BASS_TAG_LYRICS3 10 // Lyric3v2 tag : ASCII string
|
||||
#define BASS_TAG_CA_CODEC 11 // CoreAudio codec info : TAG_CA_CODEC structure
|
||||
#define BASS_TAG_MF 13 // Media Foundation tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_WAVEFORMAT 14 // WAVE format : WAVEFORMATEEX structure
|
||||
#define BASS_TAG_AM_MIME 15 // Android Media MIME type : ASCII string
|
||||
#define BASS_TAG_AM_NAME 16 // Android Media codec name : ASCII string
|
||||
#define BASS_TAG_MF 13 // Media Foundation tags : series of null-terminated UTF-8 strings
|
||||
#define BASS_TAG_WAVEFORMAT 14 // WAVE format : WAVEFORMATEEX structure
|
||||
#define BASS_TAG_AM_MIME 15 // Android Media MIME type : ASCII string
|
||||
#define BASS_TAG_AM_NAME 16 // Android Media codec name : ASCII string
|
||||
#define BASS_TAG_RIFF_INFO 0x100 // RIFF "INFO" tags : series of null-terminated ANSI strings
|
||||
#define BASS_TAG_RIFF_BEXT 0x101 // RIFF/BWF "bext" tags : TAG_BEXT structure
|
||||
#define BASS_TAG_RIFF_CART 0x102 // RIFF/BWF "cart" tags : TAG_CART structure
|
||||
#define BASS_TAG_RIFF_DISP 0x103 // RIFF "DISP" text tag : ANSI string
|
||||
#define BASS_TAG_RIFF_CUE 0x104 // RIFF "cue " chunk : TAG_CUE structure
|
||||
#define BASS_TAG_RIFF_SMPL 0x105 // RIFF "smpl" chunk : TAG_SMPL structure
|
||||
#define BASS_TAG_APE_BINARY 0x1000 // + index #, binary APE tag : TAG_APE_BINARY structure
|
||||
#define BASS_TAG_RIFF_CART 0x102 // RIFF/BWF "cart" tags : TAG_CART structure
|
||||
#define BASS_TAG_RIFF_DISP 0x103 // RIFF "DISP" text tag : ANSI string
|
||||
#define BASS_TAG_RIFF_CUE 0x104 // RIFF "cue " chunk : TAG_CUE structure
|
||||
#define BASS_TAG_RIFF_SMPL 0x105 // RIFF "smpl" chunk : TAG_SMPL structure
|
||||
#define BASS_TAG_APE_BINARY 0x1000 // + index #, binary APE tag : TAG_APE_BINARY structure
|
||||
#define BASS_TAG_MUSIC_NAME 0x10000 // MOD music name : ANSI string
|
||||
#define BASS_TAG_MUSIC_MESSAGE 0x10001 // MOD message : ANSI string
|
||||
#define BASS_TAG_MUSIC_ORDERS 0x10002 // MOD order list : BYTE array of pattern numbers
|
||||
#define BASS_TAG_MUSIC_AUTH 0x10003 // MOD author : UTF-8 string
|
||||
#define BASS_TAG_MUSIC_INST 0x10100 // + instrument #, MOD instrument name : ANSI string
|
||||
#define BASS_TAG_MUSIC_SAMPLE 0x10300 // + sample #, MOD sample name : ANSI string
|
||||
|
||||
|
||||
// ID3v1 tag structure
|
||||
typedef struct {
|
||||
char id[3];
|
||||
|
@ -698,15 +709,15 @@ typedef struct {
|
|||
char comment[30];
|
||||
BYTE genre;
|
||||
} TAG_ID3;
|
||||
|
||||
|
||||
// Binary APE tag structure
|
||||
typedef struct {
|
||||
const char *key;
|
||||
const void *data;
|
||||
DWORD length;
|
||||
} TAG_APE_BINARY;
|
||||
|
||||
// BWF "bext" tag structure
|
||||
typedef struct {
|
||||
const char *key;
|
||||
const void *data;
|
||||
DWORD length;
|
||||
} TAG_APE_BINARY;
|
||||
|
||||
// BWF "bext" tag structure
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable:4200)
|
||||
|
@ -730,102 +741,102 @@ typedef struct {
|
|||
char CodingHistory[1]; // history
|
||||
#endif
|
||||
} TAG_BEXT;
|
||||
#pragma pack(pop)
|
||||
|
||||
// BWF "cart" tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwUsage; // FOURCC timer usage ID
|
||||
DWORD dwValue; // timer value in samples from head
|
||||
} TAG_CART_TIMER;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char Version[4]; // version of the data structure
|
||||
char Title[64]; // title of cart audio sequence
|
||||
char Artist[64]; // artist or creator name
|
||||
char CutID[64]; // cut number identification
|
||||
char ClientID[64]; // client identification
|
||||
char Category[64]; // category ID, PSA, NEWS, etc
|
||||
char Classification[64]; // classification or auxiliary key
|
||||
char OutCue[64]; // out cue text
|
||||
char StartDate[10]; // yyyy-mm-dd
|
||||
char StartTime[8]; // hh:mm:ss
|
||||
char EndDate[10]; // yyyy-mm-dd
|
||||
char EndTime[8]; // hh:mm:ss
|
||||
char ProducerAppID[64]; // name of vendor or application
|
||||
char ProducerAppVersion[64]; // version of producer application
|
||||
char UserDef[64]; // user defined text
|
||||
DWORD dwLevelReference; // sample value for 0 dB reference
|
||||
TAG_CART_TIMER PostTimer[8]; // 8 time markers after head
|
||||
char Reserved[276];
|
||||
char URL[1024]; // uniform resource locator
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
char TagText[0]; // free form text for scripts or tags
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
char TagText[]; // free form text for scripts or tags
|
||||
#else
|
||||
char TagText[1]; // free form text for scripts or tags
|
||||
#endif
|
||||
} TAG_CART;
|
||||
|
||||
// RIFF "cue " tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwName;
|
||||
DWORD dwPosition;
|
||||
DWORD fccChunk;
|
||||
DWORD dwChunkStart;
|
||||
DWORD dwBlockStart;
|
||||
DWORD dwSampleOffset;
|
||||
} TAG_CUE_POINT;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwCuePoints;
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
TAG_CUE_POINT CuePoints[0];
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
TAG_CUE_POINT CuePoints[];
|
||||
#else
|
||||
TAG_CUE_POINT CuePoints[1];
|
||||
#endif
|
||||
} TAG_CUE;
|
||||
|
||||
// RIFF "smpl" tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwIdentifier;
|
||||
DWORD dwType;
|
||||
DWORD dwStart;
|
||||
DWORD dwEnd;
|
||||
DWORD dwFraction;
|
||||
DWORD dwPlayCount;
|
||||
} TAG_SMPL_LOOP;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwManufacturer;
|
||||
DWORD dwProduct;
|
||||
DWORD dwSamplePeriod;
|
||||
DWORD dwMIDIUnityNote;
|
||||
DWORD dwMIDIPitchFraction;
|
||||
DWORD dwSMPTEFormat;
|
||||
DWORD dwSMPTEOffset;
|
||||
DWORD cSampleLoops;
|
||||
DWORD cbSamplerData;
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
TAG_SMPL_LOOP SampleLoops[0];
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
TAG_SMPL_LOOP SampleLoops[];
|
||||
#else
|
||||
TAG_SMPL_LOOP SampleLoops[1];
|
||||
#endif
|
||||
} TAG_SMPL;
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
// BWF "cart" tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwUsage; // FOURCC timer usage ID
|
||||
DWORD dwValue; // timer value in samples from head
|
||||
} TAG_CART_TIMER;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char Version[4]; // version of the data structure
|
||||
char Title[64]; // title of cart audio sequence
|
||||
char Artist[64]; // artist or creator name
|
||||
char CutID[64]; // cut number identification
|
||||
char ClientID[64]; // client identification
|
||||
char Category[64]; // category ID, PSA, NEWS, etc
|
||||
char Classification[64]; // classification or auxiliary key
|
||||
char OutCue[64]; // out cue text
|
||||
char StartDate[10]; // yyyy-mm-dd
|
||||
char StartTime[8]; // hh:mm:ss
|
||||
char EndDate[10]; // yyyy-mm-dd
|
||||
char EndTime[8]; // hh:mm:ss
|
||||
char ProducerAppID[64]; // name of vendor or application
|
||||
char ProducerAppVersion[64]; // version of producer application
|
||||
char UserDef[64]; // user defined text
|
||||
DWORD dwLevelReference; // sample value for 0 dB reference
|
||||
TAG_CART_TIMER PostTimer[8]; // 8 time markers after head
|
||||
char Reserved[276];
|
||||
char URL[1024]; // uniform resource locator
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
char TagText[0]; // free form text for scripts or tags
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
char TagText[]; // free form text for scripts or tags
|
||||
#else
|
||||
char TagText[1]; // free form text for scripts or tags
|
||||
#endif
|
||||
} TAG_CART;
|
||||
|
||||
// RIFF "cue " tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwName;
|
||||
DWORD dwPosition;
|
||||
DWORD fccChunk;
|
||||
DWORD dwChunkStart;
|
||||
DWORD dwBlockStart;
|
||||
DWORD dwSampleOffset;
|
||||
} TAG_CUE_POINT;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwCuePoints;
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
TAG_CUE_POINT CuePoints[0];
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
TAG_CUE_POINT CuePoints[];
|
||||
#else
|
||||
TAG_CUE_POINT CuePoints[1];
|
||||
#endif
|
||||
} TAG_CUE;
|
||||
|
||||
// RIFF "smpl" tag structures
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwIdentifier;
|
||||
DWORD dwType;
|
||||
DWORD dwStart;
|
||||
DWORD dwEnd;
|
||||
DWORD dwFraction;
|
||||
DWORD dwPlayCount;
|
||||
} TAG_SMPL_LOOP;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwManufacturer;
|
||||
DWORD dwProduct;
|
||||
DWORD dwSamplePeriod;
|
||||
DWORD dwMIDIUnityNote;
|
||||
DWORD dwMIDIPitchFraction;
|
||||
DWORD dwSMPTEFormat;
|
||||
DWORD dwSMPTEOffset;
|
||||
DWORD cSampleLoops;
|
||||
DWORD cbSamplerData;
|
||||
#if defined(__GNUC__) && __GNUC__<3
|
||||
TAG_SMPL_LOOP SampleLoops[0];
|
||||
#elif 1 // change to 0 if compiler fails the following line
|
||||
TAG_SMPL_LOOP SampleLoops[];
|
||||
#else
|
||||
TAG_SMPL_LOOP SampleLoops[1];
|
||||
#endif
|
||||
} TAG_SMPL;
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
// CoreAudio codec info structure
|
||||
typedef struct {
|
||||
DWORD ftype; // file format
|
||||
|
@ -833,33 +844,33 @@ typedef struct {
|
|||
const char *name; // description
|
||||
} TAG_CA_CODEC;
|
||||
|
||||
#ifndef _WAVEFORMATEX_
|
||||
#define _WAVEFORMATEX_
|
||||
#pragma pack(push,1)
|
||||
typedef struct tWAVEFORMATEX
|
||||
{
|
||||
WORD wFormatTag;
|
||||
WORD nChannels;
|
||||
DWORD nSamplesPerSec;
|
||||
DWORD nAvgBytesPerSec;
|
||||
WORD nBlockAlign;
|
||||
WORD wBitsPerSample;
|
||||
WORD cbSize;
|
||||
} WAVEFORMATEX, *PWAVEFORMATEX, *LPWAVEFORMATEX;
|
||||
typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
#ifndef _WAVEFORMATEX_
|
||||
#define _WAVEFORMATEX_
|
||||
#pragma pack(push,1)
|
||||
typedef struct tWAVEFORMATEX
|
||||
{
|
||||
WORD wFormatTag;
|
||||
WORD nChannels;
|
||||
DWORD nSamplesPerSec;
|
||||
DWORD nAvgBytesPerSec;
|
||||
WORD nBlockAlign;
|
||||
WORD wBitsPerSample;
|
||||
WORD cbSize;
|
||||
} WAVEFORMATEX, *PWAVEFORMATEX, *LPWAVEFORMATEX;
|
||||
typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
// BASS_ChannelGetLength/GetPosition/SetPosition modes
|
||||
#define BASS_POS_BYTE 0 // byte position
|
||||
#define BASS_POS_MUSIC_ORDER 1 // order.row position, MAKELONG(order,row)
|
||||
#define BASS_POS_OGG 3 // OGG bitstream number
|
||||
#define BASS_POS_OGG 3 // OGG bitstream number
|
||||
#define BASS_POS_RESET 0x2000000 // flag: reset user file buffers
|
||||
#define BASS_POS_RELATIVE 0x4000000 // flag: seek relative to the current position
|
||||
#define BASS_POS_RELATIVE 0x4000000 // flag: seek relative to the current position
|
||||
#define BASS_POS_INEXACT 0x8000000 // flag: allow seeking to inexact position
|
||||
#define BASS_POS_DECODE 0x10000000 // flag: get the decoding (not playing) position
|
||||
#define BASS_POS_DECODETO 0x20000000 // flag: decode to the position instead of seeking
|
||||
#define BASS_POS_SCAN 0x40000000 // flag: scan to the position
|
||||
#define BASS_POS_DECODETO 0x20000000 // flag: decode to the position instead of seeking
|
||||
#define BASS_POS_SCAN 0x40000000 // flag: scan to the position
|
||||
|
||||
// BASS_ChannelSetDevice/GetDevice option
|
||||
#define BASS_NODEVICE 0x20000
|
||||
|
@ -976,20 +987,20 @@ typedef struct {
|
|||
#define BASS_DX8_PHASE_ZERO 2
|
||||
#define BASS_DX8_PHASE_90 3
|
||||
#define BASS_DX8_PHASE_180 4
|
||||
|
||||
|
||||
typedef struct {
|
||||
float fTarget;
|
||||
float fCurrent;
|
||||
float fTime;
|
||||
DWORD lCurve;
|
||||
} BASS_FX_VOLUME_PARAM;
|
||||
|
||||
typedef void (CALLBACK IOSNOTIFYPROC)(DWORD status);
|
||||
/* iOS notification callback function.
|
||||
status : The notification (BASS_IOSNOTIFY_xxx) */
|
||||
|
||||
#define BASS_IOSNOTIFY_INTERRUPT 1 // interruption started
|
||||
#define BASS_IOSNOTIFY_INTERRUPT_END 2 // interruption ended
|
||||
|
||||
typedef void (CALLBACK IOSNOTIFYPROC)(DWORD status);
|
||||
/* iOS notification callback function.
|
||||
status : The notification (BASS_IOSNOTIFY_xxx) */
|
||||
|
||||
#define BASS_IOSNOTIFY_INTERRUPT 1 // interruption started
|
||||
#define BASS_IOSNOTIFY_INTERRUPT_END 2 // interruption ended
|
||||
|
||||
BOOL BASSDEF(BASS_SetConfig)(DWORD option, DWORD value);
|
||||
DWORD BASSDEF(BASS_GetConfig)(DWORD option);
|
||||
|
@ -1006,7 +1017,7 @@ BOOL BASSDEF(BASS_Init)(int device, DWORD freq, DWORD flags, void *win, void *ds
|
|||
BOOL BASSDEF(BASS_SetDevice)(DWORD device);
|
||||
DWORD BASSDEF(BASS_GetDevice)();
|
||||
BOOL BASSDEF(BASS_Free)();
|
||||
#if defined(_WIN32) && !defined(_WIN32_WCE) && !(WINAPI_FAMILY && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
|
||||
#if defined(_WIN32) && !defined(_WIN32_WCE) && !(WINAPI_FAMILY && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
|
||||
void *BASSDEF(BASS_GetDSoundObject)(DWORD object);
|
||||
#endif
|
||||
BOOL BASSDEF(BASS_GetInfo)(BASS_INFO *info);
|
||||
|
@ -1028,7 +1039,7 @@ BOOL BASSDEF(BASS_Get3DFactors)(float *distf, float *rollf, float *doppf);
|
|||
BOOL BASSDEF(BASS_Set3DPosition)(const BASS_3DVECTOR *pos, const BASS_3DVECTOR *vel, const BASS_3DVECTOR *front, const BASS_3DVECTOR *top);
|
||||
BOOL BASSDEF(BASS_Get3DPosition)(BASS_3DVECTOR *pos, BASS_3DVECTOR *vel, BASS_3DVECTOR *front, BASS_3DVECTOR *top);
|
||||
void BASSDEF(BASS_Apply3D)();
|
||||
#if defined(_WIN32) && !defined(_WIN32_WCE) && !(WINAPI_FAMILY && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
|
||||
#if defined(_WIN32) && !defined(_WIN32_WCE) && !(WINAPI_FAMILY && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
|
||||
BOOL BASSDEF(BASS_SetEAXParameters)(int env, float vol, float decay, float damp);
|
||||
BOOL BASSDEF(BASS_GetEAXParameters)(DWORD *env, float *vol, float *decay, float *damp);
|
||||
#endif
|
||||
|
@ -1094,7 +1105,7 @@ QWORD BASSDEF(BASS_ChannelGetLength)(DWORD handle, DWORD mode);
|
|||
BOOL BASSDEF(BASS_ChannelSetPosition)(DWORD handle, QWORD pos, DWORD mode);
|
||||
QWORD BASSDEF(BASS_ChannelGetPosition)(DWORD handle, DWORD mode);
|
||||
DWORD BASSDEF(BASS_ChannelGetLevel)(DWORD handle);
|
||||
BOOL BASSDEF(BASS_ChannelGetLevelEx)(DWORD handle, float *levels, float length, DWORD flags);
|
||||
BOOL BASSDEF(BASS_ChannelGetLevelEx)(DWORD handle, float *levels, float length, DWORD flags);
|
||||
DWORD BASSDEF(BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length);
|
||||
HSYNC BASSDEF(BASS_ChannelSetSync)(DWORD handle, DWORD type, QWORD param, SYNCPROC *proc, void *user);
|
||||
BOOL BASSDEF(BASS_ChannelRemoveSync)(DWORD handle, HSYNC sync);
|
||||
|
@ -1109,41 +1120,41 @@ BOOL BASSDEF(BASS_FXSetParameters)(HFX handle, const void *params);
|
|||
BOOL BASSDEF(BASS_FXGetParameters)(HFX handle, void *params);
|
||||
BOOL BASSDEF(BASS_FXReset)(HFX handle);
|
||||
BOOL BASSDEF(BASS_FXSetPriority)(HFX handle, int priority);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && !defined(NOBASSOVERLOADS)
|
||||
static inline HPLUGIN BASS_PluginLoad(const WCHAR *file, DWORD flags)
|
||||
{
|
||||
return BASS_PluginLoad((const char*)file, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HMUSIC BASS_MusicLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD flags, DWORD freq)
|
||||
{
|
||||
return BASS_MusicLoad(mem, (const void*)file, offset, length, flags|BASS_UNICODE, freq);
|
||||
}
|
||||
|
||||
static inline HSAMPLE BASS_SampleLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD max, DWORD flags)
|
||||
{
|
||||
return BASS_SampleLoad(mem, (const void*)file, offset, length, max, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HSTREAM BASS_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags)
|
||||
{
|
||||
return BASS_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HSTREAM BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user)
|
||||
{
|
||||
return BASS_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user);
|
||||
}
|
||||
|
||||
static inline BOOL BASS_SetConfigPtr(DWORD option, const WCHAR *value)
|
||||
{
|
||||
return BASS_SetConfigPtr(option|BASS_UNICODE, (const void*)value);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(NOBASSOVERLOADS)
|
||||
static inline HPLUGIN BASS_PluginLoad(const WCHAR *file, DWORD flags)
|
||||
{
|
||||
return BASS_PluginLoad((const char*)file, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HMUSIC BASS_MusicLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD flags, DWORD freq)
|
||||
{
|
||||
return BASS_MusicLoad(mem, (const void*)file, offset, length, flags|BASS_UNICODE, freq);
|
||||
}
|
||||
|
||||
static inline HSAMPLE BASS_SampleLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD max, DWORD flags)
|
||||
{
|
||||
return BASS_SampleLoad(mem, (const void*)file, offset, length, max, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HSTREAM BASS_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags)
|
||||
{
|
||||
return BASS_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE);
|
||||
}
|
||||
|
||||
static inline HSTREAM BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user)
|
||||
{
|
||||
return BASS_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user);
|
||||
}
|
||||
|
||||
static inline BOOL BASS_SetConfigPtr(DWORD option, const WCHAR *value)
|
||||
{
|
||||
return BASS_SetConfigPtr(option|BASS_UNICODE, (const void*)value);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
BASSMIDI 2.4 C/C++ header file
|
||||
Copyright (c) 2006-2018 Un4seen Developments Ltd.
|
||||
Copyright (c) 2006-2020 Un4seen Developments Ltd.
|
||||
|
||||
See the BASSMIDI.CHM file for more detailed documentation
|
||||
*/
|
||||
|
@ -32,9 +32,13 @@ typedef DWORD HSOUNDFONT; // soundfont handle
|
|||
#define BASS_CONFIG_MIDI_VOICES 0x10401
|
||||
#define BASS_CONFIG_MIDI_AUTOFONT 0x10402
|
||||
#define BASS_CONFIG_MIDI_IN_PORTS 0x10404
|
||||
#define BASS_CONFIG_MIDI_SAMPLETHREADS 0x10406
|
||||
#define BASS_CONFIG_MIDI_SAMPLEMEM 0x10407
|
||||
#define BASS_CONFIG_MIDI_SAMPLEREAD 0x10408
|
||||
|
||||
// Additional BASS_SetConfigPtr options
|
||||
#define BASS_CONFIG_MIDI_DEFFONT 0x10403
|
||||
#define BASS_CONFIG_MIDI_SFZHEAD 0x10408
|
||||
|
||||
// Additional sync types
|
||||
#define BASS_SYNC_MIDI_MARK 0x10000
|
||||
|
@ -62,6 +66,9 @@ typedef DWORD HSOUNDFONT; // soundfont handle
|
|||
#define BASS_MIDI_FONT_XGDRUMS 0x40000
|
||||
#define BASS_MIDI_FONT_NOFX 0x80000
|
||||
#define BASS_MIDI_FONT_LINATTMOD 0x100000
|
||||
#define BASS_MIDI_FONT_LINDECVOL 0x200000
|
||||
#define BASS_MIDI_FONT_NORAMPIN 0x400000
|
||||
#define BASS_MIDI_FONT_NOLIMITS 0x800000
|
||||
|
||||
typedef struct {
|
||||
HSOUNDFONT font; // soundfont
|
||||
|
@ -187,6 +194,9 @@ typedef struct {
|
|||
#define MIDI_EVENT_MOD_PITCH 77
|
||||
#define MIDI_EVENT_MOD_FILTER 78
|
||||
#define MIDI_EVENT_MOD_VOLUME 79
|
||||
#define MIDI_EVENT_VIBRATO_RATE 80
|
||||
#define MIDI_EVENT_VIBRATO_DEPTH 81
|
||||
#define MIDI_EVENT_VIBRATO_DELAY 82
|
||||
#define MIDI_EVENT_MIXLEVEL 0x10000
|
||||
#define MIDI_EVENT_TRANSPOSE 0x10001
|
||||
#define MIDI_EVENT_SYSTEMEX 0x10002
|
||||
|
@ -238,6 +248,9 @@ typedef struct {
|
|||
#define BASS_ATTRIB_MIDI_STATE 0x12005
|
||||
#define BASS_ATTRIB_MIDI_SRC 0x12006
|
||||
#define BASS_ATTRIB_MIDI_KILL 0x12007
|
||||
#define BASS_ATTRIB_MIDI_SPEED 0x12008
|
||||
#define BASS_ATTRIB_MIDI_REVERB 0x12009
|
||||
#define BASS_ATTRIB_MIDI_VOL 0x1200a
|
||||
#define BASS_ATTRIB_MIDI_TRACK_VOL 0x12100 // + track #
|
||||
|
||||
// Additional tag type
|
||||
|
@ -253,11 +266,19 @@ track : Track containing the event
|
|||
event : The event
|
||||
seeking: TRUE = the event is being processed while seeking, FALSE = it is being played
|
||||
user : The 'user' parameter value given when calling BASS_MIDI_StreamSetFilter
|
||||
RETURN : TRUE = process the event, FALSE = drop the event */
|
||||
RETURN : TRUE = process the event, FALSE = drop the event */
|
||||
|
||||
// BASS_MIDI_FontLoadEx flags
|
||||
#define BASS_MIDI_FONTLOAD_NOWAIT 1 // don't want for the samples to load
|
||||
#define BASS_MIDI_FONTLOAD_COMPACT 2 // compact samples
|
||||
#define BASS_MIDI_FONTLOAD_NOLOAD 4 // don't load (only compact)
|
||||
#define BASS_MIDI_FONTLOAD_TIME 8 // length is in milliseconds
|
||||
#define BASS_MIDI_FONTLOAD_KEEPDEC 16 // keep decoders
|
||||
|
||||
// BASS_MIDI_FontPack flags
|
||||
#define BASS_MIDI_PACK_NOHEAD 1 // don't send a WAV header to the encoder
|
||||
#define BASS_MIDI_PACK_16BIT 2 // discard low 8 bits of 24-bit sample data
|
||||
#define BASS_MIDI_PACK_48KHZ 4 // set encoding rate to 48000 Hz (else 44100 Hz)
|
||||
|
||||
typedef struct {
|
||||
const char *name; // description
|
||||
|
@ -299,6 +320,7 @@ BOOL BASSMIDIDEF(BASS_MIDI_FontGetInfo)(HSOUNDFONT handle, BASS_MIDI_FONTINFO *i
|
|||
BOOL BASSMIDIDEF(BASS_MIDI_FontGetPresets)(HSOUNDFONT handle, DWORD *presets);
|
||||
const char *BASSMIDIDEF(BASS_MIDI_FontGetPreset)(HSOUNDFONT handle, int preset, int bank);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_FontLoad)(HSOUNDFONT handle, int preset, int bank);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_FontLoadEx)(HSOUNDFONT handle, int preset, int bank, DWORD length, DWORD flags);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_FontUnload)(HSOUNDFONT handle, int preset, int bank);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_FontCompact)(HSOUNDFONT handle);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_FontPack)(HSOUNDFONT handle, const void *outfile, const void *encoder, DWORD flags);
|
||||
|
@ -306,7 +328,7 @@ BOOL BASSMIDIDEF(BASS_MIDI_FontUnpack)(HSOUNDFONT handle, const void *outfile, D
|
|||
BOOL BASSMIDIDEF(BASS_MIDI_FontSetVolume)(HSOUNDFONT handle, float volume);
|
||||
float BASSMIDIDEF(BASS_MIDI_FontGetVolume)(HSOUNDFONT handle);
|
||||
|
||||
DWORD BASSMIDIDEF(BASS_MIDI_ConvertEvents)(const BYTE *data, DWORD length, BASS_MIDI_EVENT *events, DWORD count, DWORD flags);
|
||||
DWORD BASSMIDIDEF(BASS_MIDI_ConvertEvents)(const BYTE *data, DWORD length, BASS_MIDI_EVENT *events, DWORD count, DWORD flags);
|
||||
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_InGetDeviceInfo)(DWORD device, BASS_MIDI_DEVICEINFO *info);
|
||||
BOOL BASSMIDIDEF(BASS_MIDI_InInit)(DWORD device, MIDIINPROC *proc, void *user);
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue