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 ();