All pastes #1796733 Raw Edit

Unnamed

public diff v1 · immutable
#1796733 ·published 2010-02-14 23:33 UTC
rendered paste body
From 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