123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- #ifndef MODPLUG_MODPLUG_H
- #define MODPLUG_MODPLUG_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if defined(_WIN32) || defined(__CYGWIN__)
- # if defined(MODPLUG_BUILD) && defined(DLL_EXPORT)
- # define MODPLUG_EXPORT __declspec(dllexport)
- # elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC)
- # define MODPLUG_EXPORT
- # else
- # define MODPLUG_EXPORT __declspec(dllimport)
- # endif
- #elif defined(MODPLUG_BUILD) && defined(SYM_VISIBILITY)
- # define MODPLUG_EXPORT __attribute__((visibility("default")))
- #else
- #define MODPLUG_EXPORT
- #endif
- struct _ModPlugFile;
- typedef struct _ModPlugFile ModPlugFile;
- struct _ModPlugNote {
- unsigned char Note;
- unsigned char Instrument;
- unsigned char VolumeEffect;
- unsigned char Effect;
- unsigned char Volume;
- unsigned char Parameter;
- };
- typedef struct _ModPlugNote ModPlugNote;
- typedef void (*ModPlugMixerProc)(int*, unsigned long, unsigned long);
- MODPLUG_EXPORT ModPlugFile* ModPlug_Load(const void* data, int size);
- MODPLUG_EXPORT void ModPlug_Unload(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_Read(ModPlugFile* file, void* buffer, int size);
- MODPLUG_EXPORT const char* ModPlug_GetName(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetLength(ModPlugFile* file);
- MODPLUG_EXPORT void ModPlug_Seek(ModPlugFile* file, int millisecond);
- enum _ModPlug_Flags
- {
- MODPLUG_ENABLE_OVERSAMPLING = 1 << 0,
- MODPLUG_ENABLE_NOISE_REDUCTION = 1 << 1,
- MODPLUG_ENABLE_REVERB = 1 << 2,
- MODPLUG_ENABLE_MEGABASS = 1 << 3,
- MODPLUG_ENABLE_SURROUND = 1 << 4
- };
- enum _ModPlug_ResamplingMode
- {
- MODPLUG_RESAMPLE_NEAREST = 0,
- MODPLUG_RESAMPLE_LINEAR = 1,
- MODPLUG_RESAMPLE_SPLINE = 2,
- MODPLUG_RESAMPLE_FIR = 3
- };
- typedef struct _ModPlug_Settings
- {
- int mFlags;
-
- int mChannels;
- int mBits;
- int mFrequency;
- int mResamplingMode;
- int mStereoSeparation;
- int mMaxMixChannels;
- int mReverbDepth;
- int mReverbDelay;
- int mBassAmount;
- int mBassRange;
- int mSurroundDepth;
- int mSurroundDelay;
- int mLoopCount;
- } ModPlug_Settings;
- MODPLUG_EXPORT void ModPlug_GetSettings(ModPlug_Settings* settings);
- MODPLUG_EXPORT void ModPlug_SetSettings(const ModPlug_Settings* settings);
- MODPLUG_EXPORT unsigned int ModPlug_GetMasterVolume(ModPlugFile* file) ;
- MODPLUG_EXPORT void ModPlug_SetMasterVolume(ModPlugFile* file,unsigned int cvol) ;
- MODPLUG_EXPORT int ModPlug_GetCurrentSpeed(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetCurrentTempo(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetCurrentOrder(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetCurrentPattern(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetCurrentRow(ModPlugFile* file);
- MODPLUG_EXPORT int ModPlug_GetPlayingChannels(ModPlugFile* file);
- MODPLUG_EXPORT void ModPlug_SeekOrder(ModPlugFile* file,int order);
- MODPLUG_EXPORT int ModPlug_GetModuleType(ModPlugFile* file);
- MODPLUG_EXPORT char* ModPlug_GetMessage(ModPlugFile* file);
- #define MODPLUG_NO_FILESAVE
- #ifndef MODPLUG_NO_FILESAVE
- MODPLUG_EXPORT char ModPlug_ExportS3M(ModPlugFile* file, const char* filepath);
- MODPLUG_EXPORT char ModPlug_ExportXM(ModPlugFile* file, const char* filepath);
- MODPLUG_EXPORT char ModPlug_ExportMOD(ModPlugFile* file, const char* filepath);
- MODPLUG_EXPORT char ModPlug_ExportIT(ModPlugFile* file, const char* filepath);
- #endif
- MODPLUG_EXPORT unsigned int ModPlug_NumInstruments(ModPlugFile* file);
- MODPLUG_EXPORT unsigned int ModPlug_NumSamples(ModPlugFile* file);
- MODPLUG_EXPORT unsigned int ModPlug_NumPatterns(ModPlugFile* file);
- MODPLUG_EXPORT unsigned int ModPlug_NumChannels(ModPlugFile* file);
- MODPLUG_EXPORT unsigned int ModPlug_SampleName(ModPlugFile* file, unsigned int qual, char* buff);
- MODPLUG_EXPORT unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsigned int qual, char* buff);
- MODPLUG_EXPORT ModPlugNote* ModPlug_GetPattern(ModPlugFile* file, int pattern, unsigned int* numrows);
- MODPLUG_EXPORT void ModPlug_InitMixerCallback(ModPlugFile* file,ModPlugMixerProc proc) ;
- MODPLUG_EXPORT void ModPlug_UnloadMixerCallback(ModPlugFile* file) ;
- #ifdef __cplusplus
- }
- #endif
- #endif
|