summaryrefslogtreecommitdiffstats
path: root/kodi-14.0-hdhomerun.patch
blob: 85b38104af085d1a7d30648b8aede490ad2c2cf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
From 6c05d16be3bae96479363c2117c28c4261374ab4 Mon Sep 17 00:00:00 2001
From: Ken Dreyer <ktdreyer@ktdreyer.com>
Date: Fri, 24 Aug 2012 19:34:47 -0600
Subject: [PATCH 2/3] Fedora: use external hdhomerun

Original patch by Alex Lancaster <alexlan[AT]fedoraproject org>
(cherry picked from commit ef5c269992b32d67de7547e9f530b6c971381f45)
---
 Makefile.in                    |  5 +--
 configure.in                   |  1 -
 xbmc/filesystem/DllHDHomeRun.h | 78 ++++++++++++++++++++++++++++--------------
 3 files changed, 53 insertions(+), 31 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 8eda3c4..fbb19bd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -188,7 +188,6 @@
 LIB_DIRS=\
 	lib/cximage-6.0 \
 	lib/libexif \
-	lib/libhdhomerun \
 	lib/cpluff \
 	lib/xbmc-dll-symbols
 
@@ -404,15 +403,13 @@
 endif
 libexif: dllloader
 	$(MAKE) -C lib/libexif
-libhdhomerun: dllloader
-	$(MAKE) -C lib/libhdhomerun
 
 imagelib: dllloader
 	$(MAKE) -C lib/cximage-6.0
 
 codecs: dvdpcodecs dvdpextcodecs
 
-libs: $(LIBSSE4) libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so
+libs: $(LIBSSE4) imagelib libexif system/libcpluff-@ARCH@.so
 
 externals: codecs libs visualizations screensavers libaddon
 
diff --git a/configure.ac b/configure.ac
index 343292e..2060e24 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2478,7 +2478,6 @@
     xbmc/network/httprequesthandler/python/Makefile \
     xbmc/network/upnp/Makefile \
     lib/libexif/Makefile \
-    lib/libhdhomerun/Makefile \
     lib/cximage-6.0/Makefile \
     lib/libUPnP/Makefile \
     xbmc/DllPaths_generated.h \
diff --git a/xbmc/filesystem/DllHDHomeRun.h b/xbmc/filesystem/DllHDHomeRun.h
index 150b00f..57936be 100644
--- a/xbmc/filesystem/DllHDHomeRun.h
+++ b/xbmc/filesystem/DllHDHomeRun.h
@@ -20,7 +20,7 @@
  */
 
 #include "DynamicDll.h"
-#include "lib/libhdhomerun/hdhomerun.h"
+#include <hdhomerun/hdhomerun.h>
 
 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() {}
 };
 
-- 
1.8.5.3