diff --git a/CMakeLists.txt b/CMakeLists.txt index 62560bac7..a29d5384c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,6 +125,7 @@ FIND_PACKAGE(Qt3) FIND_PACKAGE(Qt4) FIND_PACKAGE(Jasper) FIND_PACKAGE(COLLADA) +FIND_PACKAGE(Xine) # Platform specific: # (We can approach this one of two ways. We can try to FIND everything diff --git a/CMakeModules/FindXine.cmake b/CMakeModules/FindXine.cmake new file mode 100644 index 000000000..5753f9563 --- /dev/null +++ b/CMakeModules/FindXine.cmake @@ -0,0 +1,55 @@ +# Locate gdal +# This module defines +# XINE_LIBRARY +# XINE_FOUND, if false, do not try to link to gdal +# XINE_INCLUDE_DIR, where to find the headers +# +# $XINE_DIR is an environment variable that would +# correspond to the ./configure --prefix=$XINE_DIR +# +# Created by Robert Osfield. + +FIND_PATH(XINE_INCLUDE_DIR xine.h + $ENV{XINE_DIR}/include + $ENV{XINE_DIR} + $ENV{OSGDIR}/include + $ENV{OSGDIR} + $ENV{OSG_ROOT}/include + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include + /usr/include + /sw/include # Fink + /opt/local/include # DarwinPorts + /opt/csw/include # Blastwave + /opt/include + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/include + /usr/freeware/include +) + +FIND_LIBRARY(XINE_LIBRARY + NAMES xine + PATHS + $ENV{XINE_DIR}/lib + $ENV{XINE_DIR} + $ENV{OSGDIR}/lib + $ENV{OSGDIR} + $ENV{OSG_ROOT}/lib + ~/Library/Frameworks + /Library/Frameworks + /usr/local/lib + /usr/lib + /sw/lib + /opt/local/lib + /opt/csw/lib + /opt/lib + [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;OSG_ROOT]/lib + /usr/freeware/lib64 +) + +SET(XINE_FOUND "NO") +IF(XINE_LIBRARY AND XINE_INCLUDE_DIR) + SET(XINE_FOUND "YES") +ENDIF(XINE_LIBRARY AND XINE_INCLUDE_DIR) + + diff --git a/src/osgPlugins/CMakeLists.txt b/src/osgPlugins/CMakeLists.txt index fbba8b298..a5bf59d1e 100644 --- a/src/osgPlugins/CMakeLists.txt +++ b/src/osgPlugins/CMakeLists.txt @@ -119,14 +119,14 @@ IF (BUILD_OSG_OTHER_PLUGINS) ADD_SUBDIRECTORY(md2) ADD_SUBDIRECTORY(osgtgz) ADD_SUBDIRECTORY(tgz) - - # comment out txp plugin till it compiles cleanly... + ADD_SUBDIRECTORY(txp) - ADD_SUBDIRECTORY(shp) ADD_SUBDIRECTORY(txf) - #ADD_SUBDIRECTORY(xine) + IF(XINE_FOUND) + ADD_SUBDIRECTORY(xine) + ENDIF(XINE_FOUND) IF(QUICKTIME_FOUND) ADD_SUBDIRECTORY(quicktime) diff --git a/src/osgPlugins/xine/CMakeLists.txt b/src/osgPlugins/xine/CMakeLists.txt new file mode 100644 index 000000000..7e953b4ec --- /dev/null +++ b/src/osgPlugins/xine/CMakeLists.txt @@ -0,0 +1,11 @@ +INCLUDE_DIRECTORIES( ${XINE_INCLUDE_DIR} ) + +SET(TARGET_SRC + video_out_rgb.c + ReaderWriterXine.cpp +) + +SET(TARGET_LIBRARIES_VARS XINE_LIBRARY ) + +#### end var setup ### +SETUP_PLUGIN(xine) diff --git a/src/osgPlugins/xine/video_out_rgb.c b/src/osgPlugins/xine/video_out_rgb.c index 5606fffbd..c5e6927b2 100644 --- a/src/osgPlugins/xine/video_out_rgb.c +++ b/src/osgPlugins/xine/video_out_rgb.c @@ -81,6 +81,10 @@ static int s_debugMessages = 0; ptr = NULL;\ } +#ifdef __cplusplus +extern "C" { +#endif + static inline void clear(void* dest, uint32_t size) { @@ -2796,3 +2800,6 @@ void register_rgbout_plugin(xine_t *self) xine_register_plugins(self, xine_plugin_info); } +#ifdef __cplusplus +} +#endif