summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-12-28 11:13:04 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-12-28 11:13:04 -0500
commite2f6c596390c50aa67a8c93f7ba714d2166f3437 (patch)
treeeae5d1b06996a070819734bc4bb34282ef23aa37 /libs
parent0d9efc11484c901795ff4e9549a1a39715d0474d (diff)
add required request buffer factory for Wiimote
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaces/wiimote/interface.cc9
-rw-r--r--libs/surfaces/wiimote/wiimote.cc12
-rw-r--r--libs/surfaces/wiimote/wiimote.h2
3 files changed, 22 insertions, 1 deletions
diff --git a/libs/surfaces/wiimote/interface.cc b/libs/surfaces/wiimote/interface.cc
index 9a704e445e..69983743e6 100644
--- a/libs/surfaces/wiimote/interface.cc
+++ b/libs/surfaces/wiimote/interface.cc
@@ -48,6 +48,12 @@ probe_wiimote_protocol (ControlProtocolDescriptor*)
{
return WiimoteControlProtocol::probe ();
}
+static void*
+wiimote_request_buffer_factory (uint32_t num_requests)
+{
+ return WiimoteControlProtocol::request_factory (num_requests);
+}
+
static ControlProtocolDescriptor wiimote_descriptor = {
name : "Wiimote",
@@ -58,7 +64,8 @@ static ControlProtocolDescriptor wiimote_descriptor = {
supports_feedback : false,
probe : probe_wiimote_protocol,
initialize : new_wiimote_protocol,
- destroy : delete_wiimote_protocol
+ destroy : delete_wiimote_protocol,
+ request_buffer_factory : wiimote_request_buffer_factory
};
extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
diff --git a/libs/surfaces/wiimote/wiimote.cc b/libs/surfaces/wiimote/wiimote.cc
index db5fb55c2a..d86dbbc172 100644
--- a/libs/surfaces/wiimote/wiimote.cc
+++ b/libs/surfaces/wiimote/wiimote.cc
@@ -455,3 +455,15 @@ wiimote_control_protocol_mesg_callback (cwiid_wiimote_t *wiimote, int mesg_count
DEBUG_TRACE (DEBUG::WiimoteControl, "WiimoteControlProtocol::mesg_callback done\n");
}
+
+
+void*
+WiimoteControlProtocol::request_factory (uint32_t num_requests)
+{
+ /* AbstractUI<T>::request_buffer_factory() is a template method only
+ instantiated in this source module. To provide something visible for
+ use in the interface/descriptor, we have this static method that is
+ template-free.
+ */
+ return request_buffer_factory (num_requests);
+}
diff --git a/libs/surfaces/wiimote/wiimote.h b/libs/surfaces/wiimote/wiimote.h
index 6edadf6c64..c1fbcfd03f 100644
--- a/libs/surfaces/wiimote/wiimote.h
+++ b/libs/surfaces/wiimote/wiimote.h
@@ -43,6 +43,8 @@ public:
virtual ~WiimoteControlProtocol ();
static bool probe ();
+ static void* request_factory (uint32_t);
+
int set_active (bool yn);
XMLNode& get_state ();