/*(LGPL) --------------------------------------------------------------------------- a_vvid.h - Virtual Voice ID Management --------------------------------------------------------------------------- * Copyright (C) 2002, David Olofson * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef ADY_VVID_D #define ADY_VVID_D /*-------------------------------------------------------------------- VVID API --------------------------------------------------------------------*/ /*FIXME: Better name for this...*/ typedef void *ADY_vvid_entry; /* * Allocate 'count' Virtual Voice IDs. * The return value is the index of the first VVID in the host's * array, or a negative value if an error occurred. */ int ady_vvid_alloc(int count); /* * Free a range of VVIDs previously allocated with ady_vvid_alloc(). */ void ady_vvid_free(int first); /* * Get the base address of the VVID table. * * IMPORTANT: * This may *change* between engine cycles! It is therefore * very important that plugins do not keep their own copies * of the VVID table base address across process() calls. */ ADY_vvid_entry *ady_vvid_table(void); /*-------------------------------------------------------------------- Host side management calls --------------------------------------------------------------------*/ /* * Initialize the VVID services. * 'count' is the number of VVIDs to allocate initially. */ int ady_vvid_open(int count); /* * Close the VVID services. */ void ady_vvid_close(void); #endif /* ADY_VVID_D */