Skip to content

Commit 777d9e2

Browse files
committed
Import boxeebox support from boxeebox-xbmc project
1 parent aaebce8 commit 777d9e2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+7002
-49
lines changed

lib/libsquish/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
33
find_all_sources(. squish_SRCS)
44

5-
if (NOT TARGET_RPI)
5+
if (NOT TARGET_RPI AND NOT TARGET_BOXEEBOX)
66
if(CMAKE_SSE_CFLAGS)
77
add_definitions(-DSQUISH_USE_SSE=2)
88
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_SSE_CFLAGS}")

plex/CMakeModules/CMakeConfig.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ elseif("x${TARGET_PLATFORM}" STREQUAL "xAML")
6262
set(TARGET_AML 1 CACHE BOOL "Target is AMLogic")
6363
set(TARGET_COMMON_LINUX 1 CACHE BOOL "Common Linux platforms")
6464
set(TARGET_POSIX 1 CACHE BOOL "POSIX platform")
65+
elseif("x${TARGET_PLATFORM}" STREQUAL "xBOXEEBOX")
66+
set(TARGET_BOXEEBOX 1 CACHE BOOL "Target is BoxeeBox")
67+
set(TARGET_COMMON_LINUX 1 CACHE BOOL "Common Linux platforms")
68+
set(TARGET_POSIX 1 CACHE BOOL "POSIX platform")
6569
elseif("x${TARGET_PLATFORM}" STREQUAL "xIOS")
6670
set(TARGET_IOS 1 CACHE BOOL "Target is iOS")
6771
set(TARGET_COMMON_DARWIN 1 CACHE BOOL "Common Darwin platforms")
@@ -120,7 +124,7 @@ endif(ENABLE_DVD_DRIVE)
120124

121125
configure_file(${root}/xbmc/DllPaths_generated.h.in ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h)
122126

123-
if(NOT TARGET_AML)
127+
if(NOT TARGET_AML AND NOT TARGET_BOXEEBOX)
124128
find_package(SSE)
125129
if(NOT TARGET_WIN32)
126130
if(SSSE3_FOUND)
@@ -133,7 +137,7 @@ if(NOT TARGET_WIN32)
133137
else(NOT TARGET_WIN32)
134138
set(CMAKE_SSE_CFLAGS "/arch:SSE2")
135139
endif(NOT TARGET_WIN32)
136-
endif(NOT TARGET_AML)
140+
endif(NOT TARGET_AML AND NOT TARGET_BOXEEBOX)
137141

138142
find_package(Breakpad)
139143
if(HAVE_BREAKPAD)

plex/CMakeModules/FindDBUS.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ else (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES)
3434
/usr/include
3535
/usr/include/dbus-1.0
3636
/usr/local/include
37+
/usr/local/include/dbus-1.0
3738
)
3839

3940
FIND_PATH(DBUS_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h
@@ -44,6 +45,7 @@ else (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES)
4445
/usr/lib64/dbus-1.0/include
4546
/usr/lib/include
4647
/usr/lib/dbus-1.0/include
48+
/usr/local/lib/dbus-1.0/include
4749
)
4850

4951
FIND_LIBRARY(DBUS_LIBRARIES NAMES dbus-1 dbus

plex/CMakeModules/FindPython.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ set(PYTHON_EXEC "${PYTHON_EXEC_}" CACHE FILEPATH "Path to Python interpreter")
5959
string(REGEX REPLACE "/bin/python.*" "" PYTHON_PREFIX "${PYTHON_EXEC_}")
6060
string(REGEX REPLACE "/bin/python.*" "" PYTHON_PREFIX2 "${PYTHON_EXEC}")
6161

62-
if (TARGET_RPI OR TARGET_AML)
62+
if (TARGET_RPI OR TARGET_AML OR TARGET_BOXEEBOX)
6363
string(REGEX REPLACE ".*/bin/python" "" PYTHON_VERSION "${PYTHON_EXEC}") # grab version from executable name
6464
else()
6565
execute_process(COMMAND "${PYTHON_EXEC}" "-c"
@@ -84,7 +84,7 @@ find_path(PYTHON_INCLUDE_DIRS "Python.h"
8484
PATH_SUFFIXES python${PYTHON_VERSION} python${PYTHON_VERSION}m
8585
DOC "Python include directories" NO_DEFAULT_PATH)
8686

87-
if (TARGET_RPI OR TARGET_AML)
87+
if (TARGET_RPI OR TARGET_AML OR TARGET_BOXEEBOX)
8888
set(PYTHON_SITE_MODULES "${PYTHON_PREFIX}/lib/site-packages" CACHE FILEPATH "Path to Python site modules")
8989
else()
9090
execute_process(COMMAND "${PYTHON_EXEC}" "-c"
@@ -108,7 +108,7 @@ function(find_python_module module)
108108
if(NOT PY_${module_upper})
109109
# A module's location is usually a directory, but for binary modules
110110
# it's a .so file.
111-
if (NOT TARGET_RPI AND NOT TARGET_AML)
111+
if (NOT TARGET_RPI AND NOT TARGET_AML AND NOT TARGET_BOXEEBOX)
112112
execute_process(COMMAND "${PYTHON_EXEC}" "-c"
113113
"import re, ${module}; print(re.compile('/__init__.py.*').sub('',${module}.__file__))"
114114
RESULT_VARIABLE _${module}_status
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# vim: setlocal syntax=cmake:
2+
3+
add_definitions(-DTARGET_BOXEEBOX)
4+
5+
message(STATUS "Building for BoxeeBox")
6+
7+
######################### Compiler CFLAGS
8+
set(EXTRA_CFLAGS "-fPIC -DPIC")
9+
10+
######################### CHECK LIBRARIES / FRAMEWORKS
11+
option(USE_INTERNAL_FFMPEG "Use internal FFmpeg?" OFF)
12+
13+
set(LINK_PKG
14+
Freetype
15+
ZLIB
16+
JPEG
17+
SQLite3
18+
PCRE
19+
Lzo2
20+
FriBiDi
21+
Fontconfig
22+
YAJL
23+
microhttpd
24+
Crypto
25+
OpenSSL
26+
TinyXML
27+
Iconv
28+
Avahi
29+
LibDl
30+
LibRt
31+
FLAC
32+
DBUS
33+
)
34+
35+
if(NOT USE_INTERNAL_FFMPEG)
36+
list(APPEND LINK_PKG FFmpeg)
37+
else()
38+
set(FFMPEG_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/lib/ffmpeg ${CMAKE_BINARY_DIR}/lib/ffmpeg/ffmpeg/src/ffmpeg-build)
39+
endif()
40+
41+
if(ENABLE_PYTHON)
42+
list(APPEND LINK_PKG Python)
43+
endif(ENABLE_PYTHON)
44+
45+
foreach(l ${LINK_PKG})
46+
plex_find_package(${l} 1 1)
47+
endforeach()
48+
49+
find_package(Boost COMPONENTS thread system REQUIRED)
50+
if(Boost_FOUND)
51+
include_directories(${Boost_INCLUDE_DIRS})
52+
list(APPEND CONFIG_PLEX_LINK_LIBRARIES boost_random ${Boost_LIBRARIES})
53+
set(HAVE_BOOST 1)
54+
endif()
55+
56+
### install libs
57+
set(INSTALL_LIB
58+
CURL
59+
PNG
60+
TIFF
61+
Vorbis
62+
Mpeg2
63+
Ass
64+
RTMP
65+
PLIST
66+
)
67+
68+
foreach(l ${INSTALL_LIB})
69+
plex_find_package(${l} 1 0)
70+
endforeach()
71+
72+
option(ENABLE_SHAIRPLAY "Enable ShairPlay?" ON)
73+
if(ENABLE_SHAIRPLAY)
74+
plex_find_package(ShairPlay 1 0)
75+
endif()
76+
77+
option(ENABLE_SHAIRPORT "Enable ShairPort?" OFF)
78+
if(ENABLE_SHAIRPORT AND NOT ENABLE_SHAIRPLAY)
79+
plex_find_package(ShairPort 1 0)
80+
endif()
81+
82+
option(ENABLE_CEC "Enable CEC?" ON)
83+
if(ENABLE_CEC)
84+
plex_find_package(CEC 1 0)
85+
endif()
86+
87+
plex_find_package(Threads 1 0)
88+
if(CMAKE_USE_PTHREADS_INIT)
89+
message(STATUS "Using pthreads: ${CMAKE_THREAD_LIBS_INIT}")
90+
list(APPEND CONFIG_PLEX_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
91+
set(HAVE_LIBPTHREAD 1)
92+
endif()
93+
94+
plex_find_package(PulseAudio 0 1)
95+
if(HAVE_LIBPULSEAUDIO)
96+
set(HAVE_LIBPULSE 1)
97+
endif()
98+
plex_find_package(Alsa 0 1)
99+
100+
plex_find_package(LibUSB 0 1)
101+
plex_find_package(LibUDEV 0 1)
102+
103+
if(NOT LIBUSB_FOUND AND NOT LIBUDEV_FOUND)
104+
message(WARNING "No USB support")
105+
endif()
106+
107+
list(APPEND CONFIG_PLEX_LINK_LIBRARIES util)
108+
list(APPEND CONFIG_PLEX_LINK_LIBRARIES gdl ismd_core ismd_viddec ismd_vidpproc ismd_audio ismd_vidrend ismd_demux ismd_bufmon osal platform_config)
109+
110+
plex_get_soname(CURL_SONAME ${CURL_LIBRARY})
111+
112+
####
113+
if(DEFINED DBUS_FOUND)
114+
include_directories(${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR})
115+
set(HAVE_DBUS 1)
116+
endif()
117+
118+
#### default lircdevice
119+
if(NOT DEFINED LIRC_DEVICE)
120+
set(LIRC_DEVICE "/run/lirc/lircd")
121+
endif()
122+
123+
#### on linux we want to use a "easy" name
124+
set(EXECUTABLE_NAME "plexhometheater")
125+
126+
set(ARCH "i686")
127+
set(USE_OPENGLES 1)
128+
set(USE_OMXLIB 0)
129+
set(USE_OPENMAX 0)
130+
set(USE_PULSE 0)
131+
set(DISABLE_PROJECTM 1)
132+
set(USE_TEXTUREPACKER_NATIVE_ROOT 0)
133+
134+
set(BUILD_DVDCSS 0)
135+
set(SKIP_CONFIG_DVDCSS 1)
136+
set(DVDREAD_CFLAGS "-D_XBMC -UHAVE_DVDCSS_DVDCSS_H")
137+
138+
## remove annying useless warnings
139+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
140+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
141+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function")
142+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
143+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
144+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")
145+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-address")
146+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-strict-aliasing")
147+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sequence-point")
148+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-parentheses")
149+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
150+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-value")
151+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch")
152+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pointer-arith")
153+
154+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
155+
156+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i686 -mmmx -msse -msse2 -msse3 -mfpmath=sse")
157+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -march=i686 -mmmx -msse -msse2 -msse3 -mfpmath=sse")
158+
159+
plex_find_library(EGL 0 0 system/usr/lib 1)
160+
plex_find_library(GLESv2 0 0 system/usr/lib 1)
161+
#plex_find_library(amadec 0 0 system/usr/lib 1)
162+
#plex_find_library(amavutils 0 0 system/usr/lib 1)
163+
#plex_find_library(amcodec 0 0 system/usr/lib 1)
164+
165+
#needed for the commandline flag CMAKE_INCLUDE_PATH
166+
foreach(path ${CMAKE_INCLUDE_PATH})
167+
include_directories(${path})
168+
endforeach()
169+
170+
set(LIBPATH bin)
171+
set(BINPATH bin)
172+
set(RESOURCEPATH share/XBMC)
173+
174+
set(PLEX_LINK_WRAPPED "-Wl,--unresolved-symbols=ignore-all -Wl,-wrap,_IO_getc -Wl,-wrap,_IO_getc_unlocked -Wl,-wrap,_IO_putc -Wl,-wrap,__fgets_chk -Wl,-wrap,__fprintf_chk -Wl,-wrap,__fread_chk -Wl,-wrap,__fxstat64 -Wl,-wrap,__lxstat64 -Wl,-wrap,__printf_chk -Wl,-wrap,__read_chk -Wl,-wrap,__vfprintf_chk -Wl,-wrap,__xstat64 -Wl,-wrap,_stat -Wl,-wrap,calloc -Wl,-wrap,clearerr -Wl,-wrap,close -Wl,-wrap,closedir -Wl,-wrap,dlopen -Wl,-wrap,fclose -Wl,-wrap,fdopen -Wl,-wrap,feof -Wl,-wrap,ferror -Wl,-wrap,fflush -Wl,-wrap,fgetc -Wl,-wrap,fgetpos -Wl,-wrap,fgetpos64 -Wl,-wrap,fgets -Wl,-wrap,fileno -Wl,-wrap,flockfile -Wl,-wrap,fopen -Wl,-wrap,fopen64 -Wl,-wrap,fprintf -Wl,-wrap,fputc -Wl,-wrap,fputs -Wl,-wrap,fread -Wl,-wrap,free -Wl,-wrap,freopen -Wl,-wrap,fseek -Wl,-wrap,fseeko64 -Wl,-wrap,fsetpos -Wl,-wrap,fsetpos64 -Wl,-wrap,fstat -Wl,-wrap,ftell -Wl,-wrap,ftello64 -Wl,-wrap,ftrylockfile -Wl,-wrap,funlockfile -Wl,-wrap,fwrite -Wl,-wrap,getc -Wl,-wrap,getc_unlocked -Wl,-wrap,getmntent -Wl,-wrap,ioctl -Wl,-wrap,lseek -Wl,-wrap,lseek64 -Wl,-wrap,malloc -Wl,-wrap,open -Wl,-wrap,open64 -Wl,-wrap,opendir -Wl,-wrap,popen -Wl,-wrap,printf -Wl,-wrap,read -Wl,-wrap,readdir -Wl,-wrap,readdir64 -Wl,-wrap,realloc -Wl,-wrap,rewind -Wl,-wrap,rewinddir -Wl,-wrap,setvbuf -Wl,-wrap,ungetc -Wl,-wrap,vfprintf -Wl,-wrap,write")
175+
176+
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} system/usr/lib )
177+
178+
set(PLEX_LINK_WHOLEARCHIVE -Wl,--whole-archive)
179+
set(PLEX_LINK_NOWHOLEARCHIVE -Wl,--no-whole-archive)
180+
181+
option(OPENELEC "Are we building OpenELEC dist?" ON)
182+
if(OPENELEC)
183+
add_definitions(-DTARGET_OPENELEC)
184+
endif(OPENELEC)
185+
186+
############ Add our definitions
187+
add_definitions(
188+
-DTARGET_LINUX
189+
-DTARGET_BOXEE
190+
-DHAS_GLES=2
191+
-DHAS_INTEL_SMD
192+
# -DHAS_BUILTIN_SYNC_ADD_AND_FETCH
193+
# -DHAS_BUILTIN_SYNC_SUB_AND_FETCH
194+
# -DHAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP
195+
)

plex/CMakeModules/PlatformConfigPOSIX.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ else()
4444
set(HAVE_PTHREAD_SETNAME_NP 1)
4545
endif()
4646

47-
if(NOT TARGET_RPI AND NOT TARGET_AML)
47+
if(NOT TARGET_RPI AND NOT TARGET_AML AND NOT TARGET_BOXEEBOX)
4848
set(HAS_SDL_JOYSTICK 1)
4949
endif()
5050
set(HAS_LIBRTMP 1)
@@ -70,4 +70,5 @@ add_definitions(
7070
-D_LINUX
7171
-D__STDC_LIMIT_MACROS
7272
-D__STDC_FORMAT_MACROS
73+
-DTIXML_USE_STL
7374
)

xbmc/cores/AudioEngine/AESinkFactory.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
#if defined(TARGET_WINDOWS)
2424
#include "Sinks/AESinkWASAPI.h"
2525
#include "Sinks/AESinkDirectSound.h"
26+
#elif defined(TARGET_BOXEE)
27+
#include "Sinks/AESinkIntelSMD.h"
2628
#elif defined(TARGET_ANDROID)
2729
#include "Sinks/AESinkAUDIOTRACK.h"
2830
#elif defined(TARGET_RASPBERRY_PI)
@@ -65,6 +67,8 @@ void CAESinkFactory::ParseDevice(std::string &device, std::string &driver)
6567
#if defined(TARGET_WINDOWS)
6668
driver == "WASAPI" ||
6769
driver == "DIRECTSOUND" ||
70+
#elif defined(TARGET_BOXEE)
71+
driver == "INTELSMD" ||
6872
#elif defined(TARGET_ANDROID)
6973
driver == "AUDIOTRACK" ||
7074
#elif defined(TARGET_RASPBERRY_PI)
@@ -109,6 +113,8 @@ IAESink *CAESinkFactory::TrySink(std::string &driver, std::string &device, AEAud
109113
sink = new CAESinkWASAPI();
110114
if (driver == "DIRECTSOUND")
111115
sink = new CAESinkDirectSound();
116+
#elif defined(TARGET_BOXEE)
117+
sink = new CAESinkIntelSMD();
112118
#elif defined(TARGET_ANDROID)
113119
sink = new CAESinkAUDIOTRACK();
114120
#elif defined(TARGET_RASPBERRY_PI)
@@ -197,6 +203,14 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force)
197203
if(!info.m_deviceInfoList.empty())
198204
list.push_back(info);
199205

206+
#elif defined(TARGET_BOXEE)
207+
208+
info.m_deviceInfoList.clear();
209+
info.m_sinkName = "INTELSMD";
210+
CAESinkIntelSMD::EnumerateDevicesEx(info.m_deviceInfoList, force);
211+
if(!info.m_deviceInfoList.empty())
212+
list.push_back(info);
213+
200214
#elif defined(TARGET_ANDROID)
201215

202216
info.m_deviceInfoList.clear();

0 commit comments

Comments
 (0)