modplug.h | modplug.h | |||
---|---|---|---|---|
skipping to change at line 22 | skipping to change at line 22 | |||
#endif | #endif | |||
#if defined(_WIN32) || defined(__CYGWIN__) | #if defined(_WIN32) || defined(__CYGWIN__) | |||
# if defined(MODPLUG_BUILD) && defined(DLL_EXPORT) /* building libmodpl ug as a dll for windows */ | # if defined(MODPLUG_BUILD) && defined(DLL_EXPORT) /* building libmodpl ug as a dll for windows */ | |||
# define MODPLUG_EXPORT __declspec(dllexport) | # define MODPLUG_EXPORT __declspec(dllexport) | |||
# elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC) /* building or using static libmodplug for windows */ | # elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC) /* building or using static libmodplug for windows */ | |||
# define MODPLUG_EXPORT | # define MODPLUG_EXPORT | |||
# else | # else | |||
# define MODPLUG_EXPORT __declspec(dllimport) /* u sing libmodplug dll for windows */ | # define MODPLUG_EXPORT __declspec(dllimport) /* u sing libmodplug dll for windows */ | |||
# endif | # endif | |||
/* FIXME: USE VISIBILITY ATTRIBUTES HERE */ | #elif defined(MODPLUG_BUILD) && defined(SYM_VISIBILITY) | |||
#elif defined(MODPLUG_BUILD) | # define MODPLUG_EXPORT __attribute__((visibility("default"))) | |||
#define MODPLUG_EXPORT | ||||
#else | #else | |||
#define MODPLUG_EXPORT | #define MODPLUG_EXPORT | |||
#endif | #endif | |||
struct _ModPlugFile; | struct _ModPlugFile; | |||
typedef struct _ModPlugFile ModPlugFile; | typedef struct _ModPlugFile ModPlugFile; | |||
struct _ModPlugNote { | struct _ModPlugNote { | |||
unsigned char Note; | unsigned char Note; | |||
unsigned char Instrument; | unsigned char Instrument; | |||
skipping to change at line 109 | skipping to change at line 108 | |||
int mStereoSeparation; /* Stereo separation, 1 - 256 */ | int mStereoSeparation; /* Stereo separation, 1 - 256 */ | |||
int mMaxMixChannels; /* Maximum number of mixing channels (polyphony ), 32 - 256 */ | int mMaxMixChannels; /* Maximum number of mixing channels (polyphony ), 32 - 256 */ | |||
int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */ | int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */ | |||
int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */ | int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */ | |||
int mBassAmount; /* XBass level 0(quiet)-100(loud) */ | int mBassAmount; /* XBass level 0(quiet)-100(loud) */ | |||
int mBassRange; /* XBass cutoff in Hz 10-100 */ | int mBassRange; /* XBass cutoff in Hz 10-100 */ | |||
int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */ | int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */ | |||
int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */ | int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */ | |||
int mLoopCount; /* Number of times to loop. Zero prevents loop ing. | int mLoopCount; /* Number of times to loop. Zero prevents loop ing. | |||
-1 loops forever. */ | * -1 loops forever. */ | |||
} ModPlug_Settings; | } ModPlug_Settings; | |||
/* Get and set the mod decoder settings. All options, except for channels, bits-per-sample, | /* Get and set the mod decoder settings. All options, except for channels, bits-per-sample, | |||
* sampling rate, and loop count, will take effect immediately. Those opti ons which don't | * sampling rate, and loop count, will take effect immediately. Those opti ons which don't | |||
* take effect immediately will take effect the next time you load a mod. * / | * take effect immediately will take effect the next time you load a mod. * / | |||
MODPLUG_EXPORT void ModPlug_GetSettings(ModPlug_Settings* settings); | MODPLUG_EXPORT void ModPlug_GetSettings(ModPlug_Settings* settings); | |||
MODPLUG_EXPORT void ModPlug_SetSettings(const ModPlug_Settings* settings); | MODPLUG_EXPORT void ModPlug_SetSettings(const ModPlug_Settings* settings); | |||
/* New ModPlug API Functions */ | /* New ModPlug API Functions */ | |||
/* NOTE: Master Volume (1-512) */ | /* NOTE: Master Volume (1-512) */ | |||
skipping to change at line 134 | skipping to change at line 133 | |||
MODPLUG_EXPORT int ModPlug_GetCurrentTempo(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetCurrentTempo(ModPlugFile* file); | |||
MODPLUG_EXPORT int ModPlug_GetCurrentOrder(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetCurrentOrder(ModPlugFile* file); | |||
MODPLUG_EXPORT int ModPlug_GetCurrentPattern(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetCurrentPattern(ModPlugFile* file); | |||
MODPLUG_EXPORT int ModPlug_GetCurrentRow(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetCurrentRow(ModPlugFile* file); | |||
MODPLUG_EXPORT int ModPlug_GetPlayingChannels(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetPlayingChannels(ModPlugFile* file); | |||
MODPLUG_EXPORT void ModPlug_SeekOrder(ModPlugFile* file,int order); | MODPLUG_EXPORT void ModPlug_SeekOrder(ModPlugFile* file,int order); | |||
MODPLUG_EXPORT int ModPlug_GetModuleType(ModPlugFile* file); | MODPLUG_EXPORT int ModPlug_GetModuleType(ModPlugFile* file); | |||
MODPLUG_EXPORT char* ModPlug_GetMessage(ModPlugFile* file); | MODPLUG_EXPORT char* ModPlug_GetMessage(ModPlugFile* file); | |||
#define MODPLUG_NO_FILESAVE /* experimental yet. must match stdafx.h. */ | ||||
#ifndef MODPLUG_NO_FILESAVE | #ifndef MODPLUG_NO_FILESAVE | |||
/* | /* | |||
* EXPERIMENTAL Export Functions | * EXPERIMENTAL Export Functions | |||
*/ | */ | |||
/*Export to a Scream Tracker 3 S3M module. EXPERIMENTAL (only works on Litt le-Endian platforms)*/ | /*Export to a Scream Tracker 3 S3M module. EXPERIMENTAL (only works on Litt le-Endian platforms)*/ | |||
MODPLUG_EXPORT char ModPlug_ExportS3M(ModPlugFile* file, const char* filepa th); | MODPLUG_EXPORT char ModPlug_ExportS3M(ModPlugFile* file, const char* filepa th); | |||
/*Export to a Extended Module (XM). EXPERIMENTAL (only works on Little-Endi an platforms)*/ | /*Export to a Extended Module (XM). EXPERIMENTAL (only works on Little-Endi an platforms)*/ | |||
MODPLUG_EXPORT char ModPlug_ExportXM(ModPlugFile* file, const char* filepat h); | MODPLUG_EXPORT char ModPlug_ExportXM(ModPlugFile* file, const char* filepat h); | |||
/*Export to a Amiga MOD file. EXPERIMENTAL.*/ | /*Export to a Amiga MOD file. EXPERIMENTAL.*/ | |||
MODPLUG_EXPORT char ModPlug_ExportMOD(ModPlugFile* file, const char* filepa th); | MODPLUG_EXPORT char ModPlug_ExportMOD(ModPlugFile* file, const char* filepa th); | |||
/*Export to a Impulse Tracker IT file. Should work OK in Little-Endian & Bi g-Endian platforms :-) */ | /*Export to a Impulse Tracker IT file. Should work OK in Little-Endian & Bi g-Endian platforms :-) */ | |||
MODPLUG_EXPORT char ModPlug_ExportIT(ModPlugFile* file, const char* filepat h); | MODPLUG_EXPORT char ModPlug_ExportIT(ModPlugFile* file, const char* filepat h); | |||
#endif // MODPLUG_NO_FILESAVE | #endif /* MODPLUG_NO_FILESAVE */ | |||
MODPLUG_EXPORT unsigned int ModPlug_NumInstruments(ModPlugFile* file); | MODPLUG_EXPORT unsigned int ModPlug_NumInstruments(ModPlugFile* file); | |||
MODPLUG_EXPORT unsigned int ModPlug_NumSamples(ModPlugFile* file); | MODPLUG_EXPORT unsigned int ModPlug_NumSamples(ModPlugFile* file); | |||
MODPLUG_EXPORT unsigned int ModPlug_NumPatterns(ModPlugFile* file); | MODPLUG_EXPORT unsigned int ModPlug_NumPatterns(ModPlugFile* file); | |||
MODPLUG_EXPORT unsigned int ModPlug_NumChannels(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_SampleName(ModPlugFile* file, unsigned int qual, char* buff); | |||
MODPLUG_EXPORT unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsig ned int qual, char* buff); | MODPLUG_EXPORT unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsig ned int qual, char* buff); | |||
/* | /* | |||
* Retrieve pattern note-data | * Retrieve pattern note-data | |||
End of changes. 4 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
sndfile.h | sndfile.h | |||
---|---|---|---|---|
skipping to change at line 450 | skipping to change at line 450 | |||
BYTE param; | BYTE param; | |||
} MODCOMMAND, *LPMODCOMMAND; | } MODCOMMAND, *LPMODCOMMAND; | |||
//////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////// | |||
// Mix Plugins | // Mix Plugins | |||
#define MIXPLUG_MIXREADY 0x01 // Set when cleared | #define MIXPLUG_MIXREADY 0x01 // Set when cleared | |||
class MODPLUG_EXPORT IMixPlugin | class MODPLUG_EXPORT IMixPlugin | |||
{ | { | |||
public: | public: | |||
virtual ~IMixPlugin(); | virtual ~IMixPlugin() {}; | |||
virtual int AddRef() = 0; | virtual int AddRef() = 0; | |||
virtual int Release() = 0; | virtual int Release() = 0; | |||
virtual void SaveAllParameters() = 0; | virtual void SaveAllParameters() = 0; | |||
virtual void RestoreAllParameters() = 0; | virtual void RestoreAllParameters() = 0; | |||
virtual void Process(float *pOutL, float *pOutR, unsigned long nSamp les) = 0; | virtual void Process(float *pOutL, float *pOutR, unsigned long nSamp les) = 0; | |||
virtual void Init(unsigned long nFreq, int bReset) = 0; | virtual void Init(unsigned long nFreq, int bReset) = 0; | |||
virtual void MidiSend(DWORD dwMidiCode) = 0; | virtual void MidiSend(DWORD dwMidiCode) = 0; | |||
virtual void MidiCommand(UINT nMidiCh, UINT nMidiProg, UINT note, UI NT vol) = 0; | virtual void MidiCommand(UINT nMidiCh, UINT nMidiProg, UINT note, UI NT vol) = 0; | |||
}; | }; | |||
skipping to change at line 526 | skipping to change at line 526 | |||
#define NOTE_MAX 120 //Defines maximum notevalue as well as maximum number of notes. | #define NOTE_MAX 120 //Defines maximum notevalue as well as maximum number of notes. | |||
typedef VOID (* LPSNDMIXHOOKPROC)(int *, unsigned long, unsigned long); // buffer, samples, channels | typedef VOID (* LPSNDMIXHOOKPROC)(int *, unsigned long, unsigned long); // buffer, samples, channels | |||
//============== | //============== | |||
class MODPLUG_EXPORT CSoundFile | class MODPLUG_EXPORT CSoundFile | |||
//============== | //============== | |||
{ | { | |||
public: // Static Members | public: // Static Members | |||
static UINT m_nXBassDepth, m_nXBassRange; | static UINT m_nXBassDepth; | |||
static UINT m_nReverbDepth, m_nReverbDelay, gnReverbType; | static UINT m_nXBassRange; | |||
static UINT m_nProLogicDepth, m_nProLogicDelay; | static UINT m_nReverbDepth; | |||
static UINT m_nReverbDelay; | ||||
static UINT gnReverbType; | ||||
static UINT m_nProLogicDepth; | ||||
static UINT m_nProLogicDelay; | ||||
static UINT m_nStereoSeparation; | static UINT m_nStereoSeparation; | |||
static UINT m_nMaxMixChannels; | static UINT m_nMaxMixChannels; | |||
static LONG m_nStreamVolume; | static LONG m_nStreamVolume; | |||
static DWORD gdwSysInfo, gdwSoundSetup, gdwMixingFreq, gnBitsPerSamp | static DWORD gdwSysInfo; | |||
le, gnChannels; | static DWORD gdwSoundSetup; | |||
static UINT gnAGC, gnVolumeRampSamples, gnVUMeter, gnCPUUsage; | static DWORD gdwMixingFreq; | |||
static DWORD gnBitsPerSample; | ||||
static DWORD gnChannels; | ||||
static UINT gnAGC; | ||||
static UINT gnVolumeRampSamples; | ||||
static UINT gnVUMeter; | ||||
static UINT gnCPUUsage; | ||||
static LPSNDMIXHOOKPROC gpSndMixHook; | static LPSNDMIXHOOKPROC gpSndMixHook; | |||
static PMIXPLUGINCREATEPROC gpMixPluginCreateProc; | static PMIXPLUGINCREATEPROC gpMixPluginCreateProc; | |||
public: // for Editing | public: // for Editing | |||
MODCHANNEL Chn[MAX_CHANNELS]; // C hannels | MODCHANNEL Chn[MAX_CHANNELS]; // C hannels | |||
UINT ChnMix[MAX_CHANNELS]; // Channels to be mixed | UINT ChnMix[MAX_CHANNELS]; // Channels to be mixed | |||
MODINSTRUMENT Ins[MAX_SAMPLES]; // I nstruments | MODINSTRUMENT Ins[MAX_SAMPLES]; // I nstruments | |||
INSTRUMENTHEADER *Headers[MAX_INSTRUMENTS]; // Instrumen t Headers | INSTRUMENTHEADER *Headers[MAX_INSTRUMENTS]; // Instrumen t Headers | |||
MODCHANNELSETTINGS ChnSettings[MAX_BASECHANNELS]; // Channels settin gs | MODCHANNELSETTINGS ChnSettings[MAX_BASECHANNELS]; // Channels settin gs | |||
MODCOMMAND *Patterns[MAX_PATTERNS]; // P atterns | MODCOMMAND *Patterns[MAX_PATTERNS]; // P atterns | |||
WORD PatternSize[MAX_PATTERNS]; // P atterns Lengths | WORD PatternSize[MAX_PATTERNS]; // P atterns Lengths | |||
BYTE Order[MAX_ORDERS]; // Pattern Orders | BYTE Order[MAX_ORDERS]; // Pattern Orders | |||
MODMIDICFG m_MidiCfg; // Midi macro config table | MODMIDICFG m_MidiCfg; // Midi macro config table | |||
SNDMIXPLUGIN m_MixPlugins[MAX_MIXPLUGINS]; // Mix plugi ns | SNDMIXPLUGIN m_MixPlugins[MAX_MIXPLUGINS]; // Mix plugi ns | |||
UINT m_nDefaultSpeed, m_nDefaultTempo, m_nDefaultGlobalVolume; | UINT m_nDefaultSpeed, m_nDefaultTempo, m_nDefaultGlobalVolume; | |||
DWORD m_dwSongFlags; // Song flags SONG_XXXX | DWORD m_dwSongFlags; // Song flags SONG_XXXX | |||
UINT m_nChannels, m_nMixChannels, m_nMixStat, m_nBufferCount; | UINT m_nChannels, m_nMixChannels, m_nMixStat, m_nBufferCount; | |||
UINT m_nType, m_nSamples, m_nInstruments; | UINT m_nType, m_nSamples, m_nInstruments; | |||
UINT m_nTickCount, m_nTotalCount, m_nPatternDelay, m_nFrameDelay; | UINT m_nTickCount, m_nTotalCount, m_nPatternDelay, m_nFrameDelay; | |||
UINT m_nMusicSpeed, m_nMusicTempo; | UINT m_nMusicSpeed, m_nMusicTempo; | |||
UINT m_nNextRow, m_nRow; | UINT m_nNextRow, m_nRow, m_nNextStartRow; | |||
UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos; | UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos; | |||
UINT m_nMasterVolume, m_nGlobalVolume, m_nSongPreAmp; | UINT m_nMasterVolume, m_nGlobalVolume, m_nSongPreAmp; | |||
UINT m_nFreqFactor, m_nTempoFactor, m_nOldGlbVolSlide; | UINT m_nFreqFactor, m_nTempoFactor, m_nOldGlbVolSlide; | |||
LONG m_nMinPeriod, m_nMaxPeriod, m_nRepeatCount, m_nInitialRepeatCou nt; | LONG m_nMinPeriod, m_nMaxPeriod, m_nRepeatCount, m_nInitialRepeatCou nt; | |||
DWORD m_nGlobalFadeSamples, m_nGlobalFadeMaxSamples; | DWORD m_nGlobalFadeSamples, m_nGlobalFadeMaxSamples; | |||
UINT m_nMaxOrderPosition; | UINT m_nMaxOrderPosition; | |||
UINT m_nPatternNames; | UINT m_nPatternNames; | |||
LPSTR m_lpszSongComments, m_lpszPatternNames; | LPSTR m_lpszSongComments, m_lpszPatternNames; | |||
char m_szNames[MAX_INSTRUMENTS][32]; // changed from CHAR | char m_szNames[MAX_INSTRUMENTS][32]; // changed from CHAR | |||
CHAR CompressionTable[16]; | CHAR CompressionTable[16]; | |||
End of changes. 4 change blocks. | ||||
8 lines changed or deleted | 18 lines changed or added | |||
stdafx.h | stdafx.h | |||
---|---|---|---|---|
skipping to change at line 24 | skipping to change at line 24 | |||
# include "config.h" | # include "config.h" | |||
# define CONFIG_H_INCLUDED 1 | # define CONFIG_H_INCLUDED 1 | |||
#endif | #endif | |||
#ifdef HAVE_INTTYPES_H | #ifdef HAVE_INTTYPES_H | |||
# include <inttypes.h> | # include <inttypes.h> | |||
#endif | #endif | |||
#ifdef HAVE_STDINT_H | #ifdef HAVE_STDINT_H | |||
# include <stdint.h> | # include <stdint.h> | |||
#endif | #endif | |||
/* disable AGC and FILESAVE for all targets for uniformity. */ | ||||
#define NO_AGC | ||||
#define MODPLUG_NO_FILESAVE | ||||
#ifdef _WIN32 | #ifdef _WIN32 | |||
#ifdef MSC_VER | #ifdef MSC_VER | |||
#pragma warning (disable:4201) | #pragma warning (disable:4201) | |||
#pragma warning (disable:4514) | #pragma warning (disable:4514) | |||
#endif | #endif | |||
#define WIN32_LEAN_AND_MEAN | #define WIN32_LEAN_AND_MEAN | |||
#include <windows.h> | #include <windows.h> | |||
#include <windowsx.h> | #include <windowsx.h> | |||
skipping to change at line 45 | skipping to change at line 49 | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <malloc.h> | #include <malloc.h> | |||
#include <stdint.h> | #include <stdint.h> | |||
#define srandom(_seed) srand(_seed) | #define srandom(_seed) srand(_seed) | |||
#define random() rand() | #define random() rand() | |||
#define sleep(_ms) Sleep(_ms) | #define sleep(_ms) Sleep(_ms) | |||
inline void ProcessPlugins(int n) {} | inline void ProcessPlugins(int n) {} | |||
#define strncasecmp(a,b,c) strncmp(a,b,c) | #undef strcasecmp | |||
#define strcasecmp(a,b) strcmp(a,b) | #undef strncasecmp | |||
#define strnicmp(a,b,c) strncasecmp(a,b,c) | #define strcasecmp(a,b) _stricmp(a,b) | |||
#define strncasecmp(a,b,c) _strnicmp(a,b,c) | ||||
#define HAVE_SINF 1 | #define HAVE_SINF 1 | |||
#ifndef isblank | #ifndef isblank | |||
#define isblank(c) ((c) == ' ' || (c) == '\t') | #define isblank(c) ((c) == ' ' || (c) == '\t') | |||
#endif | #endif | |||
#else | #else | |||
#include <stdlib.h> | #include <stdlib.h> | |||
#include <stdio.h> | #include <stdio.h> | |||
skipping to change at line 87 | skipping to change at line 93 | |||
typedef bool BOOL; | typedef bool BOOL; | |||
typedef char* LPSTR; | typedef char* LPSTR; | |||
typedef void* LPVOID; | typedef void* LPVOID; | |||
typedef uint16_t* LPWORD; | typedef uint16_t* LPWORD; | |||
typedef const char* LPCSTR; | typedef const char* LPCSTR; | |||
typedef void* PVOID; | typedef void* PVOID; | |||
typedef void VOID; | typedef void VOID; | |||
inline LONG MulDiv (long a, long b, long c) | inline LONG MulDiv (long a, long b, long c) | |||
{ | { | |||
// if (!c) return 0; | /*if (!c) return 0;*/ | |||
return ((uint64_t) a * (uint64_t) b ) / c; | return ((uint64_t) a * (uint64_t) b ) / c; | |||
} | } | |||
#define MODPLUG_NO_FILESAVE | ||||
#define NO_AGC | ||||
#define LPCTSTR LPCSTR | #define LPCTSTR LPCSTR | |||
#define lstrcpyn strncpy | #define lstrcpyn strncpy | |||
#define lstrcpy strcpy | #define lstrcpy strcpy | |||
#define lstrcmp strcmp | #define lstrcmp strcmp | |||
#define wsprintf sprintf | ||||
#define WAVE_FORMAT_PCM 1 | #define WAVE_FORMAT_PCM 1 | |||
//#define ENABLE_EQ | ||||
#define GHND 0 | #define GHND 0 | |||
#define GlobalFreePtr(p) free((void *)(p)) | ||||
inline int8_t * GlobalAllocPtr(unsigned int, size_t size) | inline int8_t * GlobalAllocPtr(unsigned int, size_t size) | |||
{ | { | |||
int8_t * p = (int8_t *) malloc(size); | int8_t * p = (int8_t *) malloc(size); | |||
if (p != NULL) memset(p, 0, size); | if (p != NULL) memset(p, 0, size); | |||
return p; | return p; | |||
} | } | |||
inline void ProcessPlugins(int n) {} | inline void ProcessPlugins(int n) {} | |||
#define GlobalFreePtr(p) free((void *)(p)) | ||||
#define strnicmp(a,b,c) strncasecmp(a,b,c) | ||||
#define wsprintf sprintf | ||||
#ifndef FALSE | #ifndef FALSE | |||
#define FALSE false | #define FALSE false | |||
#endif | #endif | |||
#ifndef TRUE | #ifndef TRUE | |||
#define TRUE true | #define TRUE true | |||
#endif | #endif | |||
#endif // _WIN32 | #endif /* _WIN32 */ | |||
#if defined(_WIN32) || defined(__CYGWIN__) | #if defined(_WIN32) || defined(__CYGWIN__) | |||
# if defined(MODPLUG_BUILD) && defined(DLL_EXPORT) /* building libmodpl ug as a dll for windows */ | # if defined(MODPLUG_BUILD) && defined(DLL_EXPORT) /* building libmodpl ug as a dll for windows */ | |||
# define MODPLUG_EXPORT __declspec(dllexport) | # define MODPLUG_EXPORT __declspec(dllexport) | |||
# elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC) /* building or using static libmodplug for windows */ | # elif defined(MODPLUG_BUILD) || defined(MODPLUG_STATIC) /* building or using static libmodplug for windows */ | |||
# define MODPLUG_EXPORT | # define MODPLUG_EXPORT | |||
# else | # else | |||
# define MODPLUG_EXPORT __declspec(dllimport) /* u sing libmodplug dll for windows */ | # define MODPLUG_EXPORT __declspec(dllimport) /* u sing libmodplug dll for windows */ | |||
# endif | # endif | |||
/* FIXME: USE VISIBILITY ATTRIBUTES HERE */ | #elif defined(MODPLUG_BUILD) && defined(SYM_VISIBILITY) | |||
#elif defined(MODPLUG_BUILD) | # define MODPLUG_EXPORT __attribute__((visibility("default"))) | |||
#define MODPLUG_EXPORT | ||||
#else | #else | |||
#define MODPLUG_EXPORT | #define MODPLUG_EXPORT | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 10 change blocks. | ||||
17 lines changed or deleted | 16 lines changed or added | |||