From e2f6c596390c50aa67a8c93f7ba714d2166f3437 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 28 Dec 2015 11:13:04 -0500 Subject: add required request buffer factory for Wiimote --- libs/surfaces/wiimote/interface.cc | 9 ++++++++- libs/surfaces/wiimote/wiimote.cc | 12 ++++++++++++ libs/surfaces/wiimote/wiimote.h | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) (limited to 'libs') 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::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 (); -- cgit v1.2.3