13
0

Shuttle Surface: request_factory and MSVC compatible struct

This commit is contained in:
Robin Gareus 2019-05-25 16:48:48 +02:00
parent 3546a7291b
commit d28dc9ee08
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
3 changed files with 28 additions and 9 deletions

View File

@ -93,6 +93,17 @@ ContourDesignControlProtocol::probe ()
return true; return true;
} }
void*
ContourDesignControlProtocol::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);
}
int int
ContourDesignControlProtocol::set_active (bool yn) ContourDesignControlProtocol::set_active (bool yn)
{ {

View File

@ -78,6 +78,7 @@ public:
DeviceType device_type() const { return _device_type; } DeviceType device_type() const { return _device_type; }
static bool probe (); static bool probe ();
static void* request_factory (uint32_t);
int set_active (bool yn); int set_active (bool yn);

View File

@ -50,16 +50,23 @@ probe_contourdesign_protocol (ControlProtocolDescriptor*)
return ContourDesignControlProtocol::probe (); return ContourDesignControlProtocol::probe ();
} }
static void*
contourdesign_request_buffer_factory (uint32_t num_requests)
{
return ContourDesignControlProtocol::request_factory (num_requests);
}
static ControlProtocolDescriptor contourdesign_descriptor = { static ControlProtocolDescriptor contourdesign_descriptor = {
name : "ContourDesign", /* name : */ "ContourDesign",
id : "uri://ardour.org/surfaces/contourdesign:0", /* id : */ "uri://ardour.org/surfaces/contourdesign:0",
ptr : 0, /* ptr : */ 0,
module : 0, /* module : */ 0,
mandatory : 0, /* mandatory : */ 0,
supports_feedback : false, /* supports_feedback : */ false,
probe : probe_contourdesign_protocol, /* probe : */ probe_contourdesign_protocol,
initialize : new_contourdesign_protocol, /* initialize : */ new_contourdesign_protocol,
destroy : delete_contourdesign_protocol /* destroy : */ delete_contourdesign_protocol,
/* request_buffer_factory : */ contourdesign_request_buffer_factory
}; };
extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &contourdesign_descriptor; } extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &contourdesign_descriptor; }