[gmpi] Re: Topic 3: Cross Platform

  • From: "Ben Loftis" <ben@xxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 06 Mar 2003 09:42:47 CST

> 4. What programming languages are to be supported?
>
> Standard C (which supports C++ by extension), with very clearly specified
> calling conventions (cdecl vs. stdcall).

It seems that this topic has degenerated into a discussion of how to 
_instantiate_ plugins in a cross-platform way, rather than how to talk to them. 
 I think each platform (HW+OS+Host) will probably require a recompilation of a 
given plugin, and that is acceptable.

Instead I think we should talk about a cross-platform "control" API.  

Why not follow the precedent set by the MIDI standard?  (Particularly since 
this will be an MMA undertaking? :) )  For all of its faults, the MIDI standard 
is one of the most succesful specifications in the history of digital 
electronics.  Why not define GMPI as a "byte stream" API similar to MIDI?  The 
MIDI spec has demonstrated that a byte stream can be transmitted effectively 
over a physical wire or between software apps on the same host equally well.

So to define a cross-platform byte stream spec, what should we discuss?
Byte order (endian-ness)
Packetizing
Publishing of plugins to the host (add a firewire plugin, and it announces "I'm 
here! Use me!")
Addressing a packet to a given plugin on the local OR remote host
Time stamping
Definition of / querying for GMPI "optional" features
Querying for "extended" (vendor-specific) features


Of course, there will be many ways to "wrap" a byte stream into a more 
user-friendly API.  But from a host-to-plugin standpoint, there are 
conceptually only 2 functions: read() and write()


----------------------------------------------------------------------
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: