rendered paste bodyFrom 2988108dbdaa2dffb0870ee93d3c8c42f5c7af5e Mon Sep 17 00:00:00 2001From: Trent Nelson <althekiller@xbmc.org>Date: Sun, 14 Feb 2010 17:39:55 -0500Subject: [PATCH] fixed: Load libmodplug only when we need to. changed: Use system libmodplug on linux fixed: don't configure modplug for linux changed: [OSX] build dynamic libmodplug--- Makefile.in | 6 +- configure.in | 4 +- xbmc/DllPaths_generated.h.in | 2 + xbmc/cores/paplayer/DllModplug.h | 130 +++++++++++++++++++------------------- 4 files changed, 71 insertions(+), 71 deletions(-)diff --git a/Makefile.in b/Makefile.inindex a5ff416..579da74 100644--- a/Makefile.in+++ b/Makefile.in@@ -267,8 +267,9 @@ xbmc/cores/dvdplayer/Codecs/libbdnav/src/libbdnav/.libs/libbdnav.a: force $(MAKE) -C xbmc/cores/dvdplayer/Codecs/libbdnav xbmc/lib/libapetag/.libs/libapetag.a: force $(MAKE) -C xbmc/lib/libapetag-lib/libmodplug/src/.libs/libmodplug.a: force+system/players/paplayer/libmodplug-$(ARCH).so: force $(MAKE) -C lib/libmodplug+ cp lib/libmodplug/src/.libs/libmodplug.so $@ lib/xbmc-dll-symbols/dll-symbols.a: force $(MAKE) -C lib/xbmc-dll-symbols @@ -345,7 +346,7 @@ xcode_depends: \ skins \ xbmc/cores/dvdplayer/Codecs/libbdnav/src/libbdnav/.libs/libbdnav.a \ xbmc/lib/libapetag/.libs/libapetag.a \- lib/libmodplug/src/.libs/libmodplug.a \+ system/players/paplayer/libmodplug-$(ARCH).so \ xbmc/lib/cmyth/libcmyth/libcmyth.a \ xbmc/lib/cmyth/librefmem/librefmem.a \ xbmc/lib/libRTMP/librtmp.a \@@ -401,7 +402,6 @@ OBJSXBMC= \ xbmc/lib/sqLite/sqllite.a \ xbmc/lib/libsquish/libsquish-@ARCH@.a \ xbmc/lib/libapetag/.libs/libapetag.a \- lib/libmodplug/src/.libs/libmodplug.a \ xbmc/screensavers/screensaver.a \ xbmc/settings/settings.a \ xbmc/visualizations/visualization.adiff --git a/configure.in b/configure.inindex c90a62e..f943bf8 100644--- a/configure.in+++ b/configure.in@@ -1476,9 +1476,9 @@ XB_CONFIG_MODULE([lib/libmodplug], [ if test "$host_vendor" = "apple" ; then CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -fno-common" \ CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -fno-common" \- ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --with-pic --disable-shared --enable-static+ ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --with-pic --enable-shared --disable-static else- ./configure --with-pic --enable-static+ true fi ], [0]) diff --git a/xbmc/DllPaths_generated.h.in b/xbmc/DllPaths_generated.h.inindex f0c5723..0fb9f0f 100644--- a/xbmc/DllPaths_generated.h.in+++ b/xbmc/DllPaths_generated.h.in@@ -41,9 +41,11 @@ #if defined(_LINUX) && !defined(__APPLE__) #define DLL_PATH_FLAC_CODEC "libFLAC.so.8" #define DLL_PATH_OGG_CODEC "libvorbisfile.so.3"+#define DLL_PATH_MODPLUG_CODEC "libmodplug.so.0" #else #define DLL_PATH_FLAC_CODEC "special://xbmc/system/players/paplayer/libFLAC-@ARCH@.so" #define DLL_PATH_OGG_CODEC "special://xbmc/system/players/paplayer/vorbisfile-@ARCH@.so"+#define DLL_PATH_MODPLUG_CODEC "special://xbmc/system/players/paplayer/libmodplug-@ARCH@.so" #endif /* dvdplayer */diff --git a/xbmc/cores/paplayer/DllModplug.h b/xbmc/cores/paplayer/DllModplug.hindex efcbeb9..344d603 100644--- a/xbmc/cores/paplayer/DllModplug.h+++ b/xbmc/cores/paplayer/DllModplug.h@@ -27,7 +27,11 @@ #include "DynamicDll.h" #include "utils/log.h" +#ifdef __linux__+#include <libmodplug/modplug.h>+#else #include "lib/libmodplug/src/modplug.h"+#endif class DllModplugInterface {@@ -65,70 +69,64 @@ public: class DllModplug : public DllDynamic, DllModplugInterface {-public:- virtual ~DllModplug() {}- virtual ModPlugFile* ModPlug_Load(const void* data, int size)- { return ::ModPlug_Load(data, size); }- virtual void ModPlug_Unload(ModPlugFile* file)- { return ::ModPlug_Unload(file); }- virtual int ModPlug_Read(ModPlugFile* file, void* buffer, int size)- { return ::ModPlug_Read(file, buffer, size); }- virtual const char* ModPlug_GetName(ModPlugFile* file)- { return ::ModPlug_GetName(file); }- virtual int ModPlug_GetLength(ModPlugFile* file)- { return ::ModPlug_GetLength(file); }- virtual void ModPlug_Seek(ModPlugFile* file, int millisecond)- { return ::ModPlug_Seek(file, millisecond); }- virtual void ModPlug_GetSettings(ModPlug_Settings* settings)- { return ::ModPlug_GetSettings(settings); }- virtual void ModPlug_SetSettings(const ModPlug_Settings* settings)- { return ::ModPlug_SetSettings(settings); }- virtual unsigned int ModPlug_GetMasterVolume(ModPlugFile* file)- { return ::ModPlug_GetMasterVolume(file); }- virtual void ModPlug_SetMasterVolume(ModPlugFile* file,unsigned int cvol)- { return ::ModPlug_SetMasterVolume(file, cvol); }- virtual int ModPlug_GetCurrentSpeed(ModPlugFile* file)- { return ::ModPlug_GetCurrentSpeed(file); }- virtual int ModPlug_GetCurrentTempo(ModPlugFile* file)- { return ::ModPlug_GetCurrentTempo(file); }- virtual int ModPlug_GetCurrentOrder(ModPlugFile* file)- { return ::ModPlug_GetCurrentOrder(file); }- virtual int ModPlug_GetCurrentPattern(ModPlugFile* file)- { return ::ModPlug_GetCurrentPattern(file); }- virtual int ModPlug_GetCurrentRow(ModPlugFile* file)- { return ::ModPlug_GetCurrentRow(file); }- virtual int ModPlug_GetPlayingChannels(ModPlugFile* file)- { return ::ModPlug_GetPlayingChannels(file); }- virtual void ModPlug_SeekOrder(ModPlugFile* file,int order)- { return ::ModPlug_SeekOrder(file, order); }- virtual int ModPlug_GetModuleType(ModPlugFile* file)- { return ::ModPlug_GetModuleType(file); }- virtual char* ModPlug_GetMessage(ModPlugFile* file)- { return ::ModPlug_GetMessage(file); }- virtual unsigned int ModPlug_NumInstruments(ModPlugFile* file)- { return ::ModPlug_NumInstruments(file); }- virtual unsigned int ModPlug_NumSamples(ModPlugFile* file)- { return ::ModPlug_NumSamples(file); }- virtual unsigned int ModPlug_NumPatterns(ModPlugFile* file)- { return ::ModPlug_NumPatterns(file); }- virtual unsigned int ModPlug_NumChannels(ModPlugFile* file)- { return ::ModPlug_NumChannels(file); }- virtual unsigned int ModPlug_SampleName(ModPlugFile* file, unsigned int qual, char* buff)- { return ::ModPlug_SampleName(file, qual, buff); }- virtual unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsigned int qual, char* buff)- { return ::ModPlug_InstrumentName(file, qual, buff); }- virtual ModPlugNote* ModPlug_GetPattern(ModPlugFile* file, int pattern, unsigned int* numrows)- { return ::ModPlug_GetPattern(file, pattern, numrows); }- virtual void ModPlug_InitMixerCallback(ModPlugFile* file,ModPlugMixerProc proc)- { return ::ModPlug_InitMixerCallback(file, proc); }- virtual void ModPlug_UnloadMixerCallback(ModPlugFile* file)- { return ::ModPlug_UnloadMixerCallback(file); }-- // DLL faking.- virtual bool ResolveExports() { return true; }- virtual bool Load() {- CLog::Log(LOGDEBUG, "DllModplug: Using libmodplug library");- return true;- }- virtual void Unload() {}+ DECLARE_DLL_WRAPPER(DllModplug, DLL_PATH_MODPLUG_CODEC)+ DEFINE_METHOD2(ModPlugFile*, ModPlug_Load, (const void* p1, int p2))+ DEFINE_METHOD1(void, ModPlug_Unload, (ModPlugFile* p1))+ DEFINE_METHOD3(int, ModPlug_Read, (ModPlugFile* p1, void* p2, int p3))+ DEFINE_METHOD1(const char*, ModPlug_GetName, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetLength, (ModPlugFile* p1))+ DEFINE_METHOD2(void, ModPlug_Seek, (ModPlugFile* p1, int p2))+ DEFINE_METHOD1(void, ModPlug_GetSettings, (ModPlug_Settings* p1))+ DEFINE_METHOD1(void, ModPlug_SetSettings, (const ModPlug_Settings* p1))+ DEFINE_METHOD1(unsigned int, ModPlug_GetMasterVolume, (ModPlugFile* p1))+ DEFINE_METHOD2(void, ModPlug_SetMasterVolume, (ModPlugFile* p1, unsigned int p2))+ DEFINE_METHOD1(int, ModPlug_GetCurrentSpeed, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetCurrentTempo, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetCurrentOrder, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetCurrentPattern, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetCurrentRow, (ModPlugFile* p1))+ DEFINE_METHOD1(int, ModPlug_GetPlayingChannels, (ModPlugFile* p1))+ DEFINE_METHOD2(void, ModPlug_SeekOrder, (ModPlugFile* p1, int p2))+ DEFINE_METHOD1(int, ModPlug_GetModuleType, (ModPlugFile* p1))+ DEFINE_METHOD1(char*, ModPlug_GetMessage, (ModPlugFile* p1))+ DEFINE_METHOD1(unsigned int, ModPlug_NumInstruments, (ModPlugFile* p1))+ DEFINE_METHOD1(unsigned int, ModPlug_NumSamples, (ModPlugFile* p1))+ DEFINE_METHOD1(unsigned int, ModPlug_NumPatterns, (ModPlugFile* p1))+ DEFINE_METHOD1(unsigned int, ModPlug_NumChannels, (ModPlugFile* p1))+ DEFINE_METHOD3(unsigned int, ModPlug_SampleName, (ModPlugFile* p1, unsigned int p2, char* p3))+ DEFINE_METHOD3(unsigned int, ModPlug_InstrumentName, (ModPlugFile* p1, unsigned int p2, char* p3))+ DEFINE_METHOD3(ModPlugNote*, ModPlug_GetPattern, (ModPlugFile* p1, int p2, unsigned int* p3))+ DEFINE_METHOD2(void, ModPlug_InitMixerCallback, (ModPlugFile* p1, ModPlugMixerProc p2))+ DEFINE_METHOD1(void, ModPlug_UnloadMixerCallback, (ModPlugFile* p1))+ BEGIN_METHOD_RESOLVE()+ RESOLVE_METHOD(ModPlug_Load)+ RESOLVE_METHOD(ModPlug_Unload)+ RESOLVE_METHOD(ModPlug_Read)+ RESOLVE_METHOD(ModPlug_GetName)+ RESOLVE_METHOD(ModPlug_GetLength)+ RESOLVE_METHOD(ModPlug_Seek)+ RESOLVE_METHOD(ModPlug_GetSettings)+ RESOLVE_METHOD(ModPlug_SetSettings)+ RESOLVE_METHOD(ModPlug_GetMasterVolume)+ RESOLVE_METHOD(ModPlug_SetMasterVolume)+ RESOLVE_METHOD(ModPlug_GetCurrentSpeed)+ RESOLVE_METHOD(ModPlug_GetCurrentTempo)+ RESOLVE_METHOD(ModPlug_GetCurrentOrder)+ RESOLVE_METHOD(ModPlug_GetCurrentPattern)+ RESOLVE_METHOD(ModPlug_GetCurrentRow)+ RESOLVE_METHOD(ModPlug_GetPlayingChannels)+ RESOLVE_METHOD(ModPlug_SeekOrder)+ RESOLVE_METHOD(ModPlug_GetModuleType)+ RESOLVE_METHOD(ModPlug_GetMessage)+ RESOLVE_METHOD(ModPlug_NumInstruments)+ RESOLVE_METHOD(ModPlug_NumSamples)+ RESOLVE_METHOD(ModPlug_NumPatterns)+ RESOLVE_METHOD(ModPlug_NumChannels)+ RESOLVE_METHOD(ModPlug_SampleName)+ RESOLVE_METHOD(ModPlug_InstrumentName)+ RESOLVE_METHOD(ModPlug_GetPattern)+ RESOLVE_METHOD(ModPlug_InitMixerCallback)+ RESOLVE_METHOD(ModPlug_UnloadMixerCallback)+ END_METHOD_RESOLVE() };+-- 1.6.3.3