http://www.op.net/~pbd/lcp-0.0.1.tar.gz

The API:

======================================================================

1) client side:
---------------

lcp_client_t *lcp_open  (const char *name);
int           lcp_close (lcp_client_t *client);

int           lcp_write (lcp_client_t *client, 
                         unsigned long plugin, 
                         unsigned long port, 
                         LADSPA_Data value);

int           lcp_read  (lcp_client_t *client, 
                         unsigned long plugin, 
                         unsigned long port, 
                         LADSPA_Data *value);

2) server side:
---------------

typedef void (*lcp_server_write_callback_t)(void *, 
                                            unsigned long, 
                                            unsigned long, 
                                            LADSPA_Data value);

typedef void (*lcp_server_read_callback_t)(void *, 
                                           unsigned long, 
                                           unsigned long, 
                                           LADSPA_Data *value);

lcp_server_t *lcp_server_start (const char *name, 
                                lcp_server_write_callback_t,
                                void *write_arg,
                                lcp_server_read_callback_t, 
                                void *read_arg);

void          lcp_server_stop (lcp_server_t *);
int           lcp_server_handle_message (lcp_server_t *server, int fd);
int           lcp_server_accept (int fd);

======================================================================

The tarball contains two tiny GTK programs:

    s: a sample server
    c: a sample client

that demonstrate the interfacing of the server and client side API
into a typical GUI (i.e. adding file descriptors to a "watch list"
managed by the GUI toolkits' main event loop).

There are no dependencies in the library itself upon any external
libraries (other than glibc, obviously).

Comments welcome. I will be merging this into Ardour after an initial
round of feedback. 

--p

Reply via email to