[gmpi] Re: low level API - Abstract Factory summary

  • From: "Angus F. Hewlett" <angus@xxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Mon, 14 Feb 2005 10:37:46 +0000

The more I think about it, the more I reckon true COM may be overkill.

It's a very nice programming system, and one that I'm *generally* a big fan of.

HOWEVER, the idea of allowing 1001 VST noobs access to AddRef and Release on a smorgasbord of objects and interfaces within my host code... I shudder to think. Definite breeding ground for bugs. I see this in the same category as allowing 3rd party UI code to run in-process in a host - something that, if we want to deliver improvements in stability, should be avoided like the plague.

Regarding languages like VB, Java, scripting.. provided the interface is reasonably clean C or C++, it's relatively easy to create bindings for them via SWIG.

Best regards,

      Angus.



B.J. Buchalter wrote:

on 2/12/05 2:00 AM, Tim Hockin at thockin@xxxxxxxxxx wrote:


Seems like it, but QI is required for COM; again, think languages like
Visual Basic; I'm pretty sure that if these plugins are really COM
compliant, that you would be able to use them from VB or any of those COM
supporting languages. If they are not COM compliant, I don't think you would
be able to do so (but I am speculating here).

OTOH, it protects against mistakes; essentially it stong-types the Interface
instead of weak-typing it. If a host is built when GMPI v3 is in existance,
and utilizes the v3 API, and is tested with v3 plug-ins, but the only way to
know which version of the API the plug-in supplies is a version number, it
is possible that the host fails to check the version number of the API
support and crashes hard when it tries to use a v2 or v1 plug. If the API is
versioned through QI, the host will fail to acquire an interface for v3 on a
v1 or v2 plug; at this point it will know that it can't use that plug (just
as if the plug had failed to load for any number of other reasons).

Anyway, it may be that we really do want multiple disjoint interfaces on the
GMPI_Plugin object. But there is some implementational complexity that
appears to be related to doing that....

Best regards,


B.J. Buchalter

Metric Halo
5 Donovan Drive
Hopewell Junction, NY 12533 USA
tel +1 845 223-6112
fax +1 603 250-2451


---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe







--
=========================================================
Angus F. Hewlett, Managing Director (CEO)
FXpansion Audio UK Ltd - http://www.fxpansion.com
Registered in the UK - #4455834 - VAT: GB 798 7782 33
=========================================================



---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: