1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-19 22:35:07 +00:00
QB64-PE/internal/c/parts/audio/extras/libxmp-lite/loader.h

75 lines
2.9 KiB
C
Raw Normal View History

#ifndef XMP_LOADER_H
#define XMP_LOADER_H
#include "common.h"
#include "effects.h"
#include "format.h"
#include "hio.h"
/* Sample flags */
#define SAMPLE_FLAG_DIFF 0x0001 /* Differential */
#define SAMPLE_FLAG_UNS 0x0002 /* Unsigned */
#define SAMPLE_FLAG_8BDIFF 0x0004
#define SAMPLE_FLAG_7BIT 0x0008
#define SAMPLE_FLAG_NOLOAD 0x0010 /* Get from buffer, don't load */
#define SAMPLE_FLAG_BIGEND 0x0040 /* Big-endian */
#define SAMPLE_FLAG_VIDC 0x0080 /* Archimedes VIDC logarithmic */
/*#define SAMPLE_FLAG_STEREO 0x0100 Interleaved stereo sample */
#define SAMPLE_FLAG_FULLREP 0x0200 /* Play full sample before looping */
#define SAMPLE_FLAG_ADLIB 0x1000 /* Adlib synth instrument */
#define SAMPLE_FLAG_HSC 0x2000 /* HSC Adlib synth instrument */
#define SAMPLE_FLAG_ADPCM 0x4000 /* ADPCM4 encoded samples */
2023-06-17 08:37:50 +00:00
/* libxmp_test_name flags */
#define TEST_NAME_IGNORE_AFTER_0 0x0001
#define TEST_NAME_IGNORE_AFTER_CR 0x0002
#define DEFPAN(x) (0x80 + ((x) - 0x80) * m->defpan / 100)
int libxmp_init_instrument (struct module_data *);
int libxmp_realloc_samples (struct module_data *, int);
int libxmp_alloc_subinstrument (struct xmp_module *, int, int);
int libxmp_init_pattern (struct xmp_module *);
int libxmp_alloc_pattern (struct xmp_module *, int);
int libxmp_alloc_track (struct xmp_module *, int, int);
int libxmp_alloc_tracks_in_pattern (struct xmp_module *, int);
int libxmp_alloc_pattern_tracks (struct xmp_module *, int, int);
2023-06-17 08:37:50 +00:00
#ifndef LIBXMP_CORE_PLAYER
int libxmp_alloc_pattern_tracks_long(struct xmp_module *, int, int);
2023-06-17 08:37:50 +00:00
#endif
char *libxmp_instrument_name (struct xmp_module *, int, uint8 *, int);
char *libxmp_copy_adjust (char *, uint8 *, int);
int libxmp_copy_name_for_fopen (char *, const char *, int);
2023-06-17 08:37:50 +00:00
int libxmp_test_name (const uint8 *, int, int);
void libxmp_read_title (HIO_HANDLE *, char *, int);
void libxmp_set_xxh_defaults (struct xmp_module *);
2023-06-17 08:37:50 +00:00
void libxmp_decode_protracker_event (struct xmp_event *, const uint8 *);
void libxmp_decode_noisetracker_event(struct xmp_event *, const uint8 *);
void libxmp_disable_continue_fx (struct xmp_event *);
int libxmp_check_filename_case (const char *, const char *, char *, int);
void libxmp_get_instrument_path (struct module_data *, char *, int);
void libxmp_set_type (struct module_data *, const char *, ...);
int libxmp_load_sample (struct module_data *, HIO_HANDLE *, int,
struct xmp_sample *, const void *);
void libxmp_free_sample (struct xmp_sample *);
2023-06-17 08:37:50 +00:00
#ifndef LIBXMP_CORE_PLAYER
void libxmp_schism_tracker_string (char *, size_t, int, int);
2023-06-17 08:37:50 +00:00
void libxmp_apply_mpt_preamp (struct module_data *m);
#endif
extern uint8 libxmp_ord_xlat[];
extern const int libxmp_arch_vol_table[];
#define MAGIC4(a,b,c,d) \
(((uint32)(a)<<24)|((uint32)(b)<<16)|((uint32)(c)<<8)|(d))
#define LOAD_INIT()
#define MODULE_INFO() do { \
D_(D_WARN "Module title: \"%s\"", m->mod.name); \
D_(D_WARN "Module type: %s", m->mod.type); \
} while (0)
#endif