commit ef5c269992b32d67de7547e9f530b6c971381f45 Author: Ken Dreyer Date: Fri Aug 24 19:34:47 2012 -0600 Fedora: use external hdhomerun Original patch by Alex Lancaster diff --git a/Makefile.in b/Makefile.in index 39dc6f9..79877b4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -179,7 +179,6 @@ endif LIB_DIRS=\ lib/cximage-6.0 \ lib/libexif \ - lib/libhdhomerun \ lib/cpluff \ lib/xbmc-dll-symbols @@ -352,8 +351,6 @@ libexif: dllloader $(MAKE) -C lib/libexif cmyth: dllloader $(MAKE) -C lib/cmyth -libhdhomerun: dllloader - $(MAKE) -C lib/libhdhomerun papcodecs: dllloader dvdpcodecs test -d system/players/paplayer || mkdir system/players/paplayer $(MAKE) -C lib/xbadpcm @@ -382,7 +379,7 @@ endif codecs: papcodecs dvdpcodecs -libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) +libs: imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) externals: codecs libs visualizations screensavers libaddon pvraddons diff --git a/configure.in b/configure.in index e922043..b61f0dd 100644 --- a/configure.in +++ b/configure.in @@ -2331,7 +2331,6 @@ OUTPUT_FILES="Makefile \ lib/libexif/Makefile \ lib/libXDAAP/Makefile \ lib/cmyth/Makefile \ - lib/libhdhomerun/Makefile \ lib/libsquish/Makefile \ lib/cximage-6.0/Makefile \ lib/addons/script.module.pil/Makefile \ diff --git a/xbmc/filesystem/DllHDHomeRun.h b/xbmc/filesystem/DllHDHomeRun.h index 1667fde..48bdae3 100644 --- a/xbmc/filesystem/DllHDHomeRun.h +++ b/xbmc/filesystem/DllHDHomeRun.h @@ -20,7 +20,7 @@ */ #include "DynamicDll.h" -#include "lib/libhdhomerun/hdhomerun.h" +#include class DllHdHomeRunInterface { @@ -41,30 +41,56 @@ public: class DllHdHomeRun : public DllDynamic, public DllHdHomeRunInterface { - DECLARE_DLL_WRAPPER(DllHdHomeRun, DLL_PATH_LIBHDHOMERUN) - DEFINE_METHOD5(int, discover_find_devices_custom, (uint32_t p1, uint32_t p2, uint32_t p3, struct hdhomerun_discover_device_t p4[], int p5)) - DEFINE_METHOD2(struct hdhomerun_device_t*, device_create_from_str, (const char* p1, struct hdhomerun_debug_t *p2)) - DEFINE_METHOD1(void, device_destroy, (struct hdhomerun_device_t* p1)) - DEFINE_METHOD1(int, device_stream_start, (struct hdhomerun_device_t* p1)) - DEFINE_METHOD3(uint8_t*, device_stream_recv, (struct hdhomerun_device_t* p1, size_t p2, size_t* p3)) - DEFINE_METHOD1(void, device_stream_stop, (struct hdhomerun_device_t* p1)) - DEFINE_METHOD2(int, device_set_tuner_channel, (struct hdhomerun_device_t *p1, const char *p2)) - DEFINE_METHOD2(int, device_set_tuner_program, (struct hdhomerun_device_t *p1, const char *p2)) - DEFINE_METHOD2(int, device_set_tuner_from_str, (struct hdhomerun_device_t *p1, const char *p2)) - DEFINE_METHOD2(void, device_set_tuner, (struct hdhomerun_device_t *p1, unsigned int p2)) - DEFINE_METHOD3(int, device_get_tuner_status, (struct hdhomerun_device_t *p1, char **p2, struct hdhomerun_tuner_status_t *p3)); - BEGIN_METHOD_RESOLVE() - RESOLVE_METHOD_RENAME(hdhomerun_discover_find_devices_custom, discover_find_devices_custom) - RESOLVE_METHOD_RENAME(hdhomerun_device_create_from_str, device_create_from_str) - RESOLVE_METHOD_RENAME(hdhomerun_device_destroy, device_destroy) - RESOLVE_METHOD_RENAME(hdhomerun_device_stream_start, device_stream_start) - RESOLVE_METHOD_RENAME(hdhomerun_device_stream_recv, device_stream_recv) - RESOLVE_METHOD_RENAME(hdhomerun_device_stream_stop, device_stream_stop) - RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_channel, device_set_tuner_channel) - RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_program, device_set_tuner_program) - RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_from_str, device_set_tuner_from_str) - RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner, device_set_tuner) - RESOLVE_METHOD_RENAME(hdhomerun_device_get_tuner_status, device_get_tuner_status) - END_METHOD_RESOLVE() +public: + virtual ~DllHdHomeRun () {}; + + virtual int discover_find_devices_custom (uint32_t p1, uint32_t p2, uint32_t p3, struct hdhomerun_discover_device_t p4[], int p5) + { return ::hdhomerun_discover_find_devices_custom (p1, p2, p3, p4, p5); } + + virtual struct hdhomerun_device_t *device_create_from_str (const char* p1, struct hdhomerun_debug_t *p2) + { return ::hdhomerun_device_create_from_str (p1, p2); } + + virtual void device_destroy (struct hdhomerun_device_t* p1) + { ::hdhomerun_device_destroy (p1); } + + virtual int device_stream_start (struct hdhomerun_device_t* p1) + { return ::hdhomerun_device_stream_start (p1); } + + + virtual uint8_t *device_stream_recv (struct hdhomerun_device_t* p1, size_t p2, size_t* p3) + { + uint8_t *retval; + + size_t tmp = *p3; + retval = ::hdhomerun_device_stream_recv (p1, p2, &tmp); + *p3 = tmp; + + return retval; + } + + virtual void device_stream_stop (struct hdhomerun_device_t* p1) + { ::hdhomerun_device_stream_stop (p1); } + + virtual int device_set_tuner_channel (struct hdhomerun_device_t *p1, const char *p2) + { return ::hdhomerun_device_set_tuner_channel (p1, p2); } + + virtual int device_set_tuner_program (struct hdhomerun_device_t *p1, const char *p2) + { return ::hdhomerun_device_set_tuner_program (p1, p2); } + + + virtual int device_set_tuner_from_str (struct hdhomerun_device_t *p1, const char *p2) + { return ::hdhomerun_device_set_tuner_from_str (p1, p2); } + + + virtual void device_set_tuner (struct hdhomerun_device_t *p1, unsigned int p2) + { ::hdhomerun_device_set_tuner (p1, p2); } + + virtual int device_get_tuner_status (struct hdhomerun_device_t *p1, char **p2, struct hdhomerun_tuner_status_t *p3) + { return ::hdhomerun_device_get_tuner_status (p1, p2, p3); } + + // DLL faking. + virtual bool ResolveExports() { return true; } + virtual bool Load() { return true; } + virtual void Unload() {} };