From 6890d16836e85deed9e8ca91d095473347013ccc Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 21 Feb 2006 16:13:57 +0000 Subject: Structure reorganziation, added polyp plugin - Reorganized the directory structure: Now each plugin(s) is loaded in own subdirectory. - Added polypaudio plugin by Pierre Ossman - Fixed COPYING file to LGPL (under which all codes are released, so far) --- polyp/polyp.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 polyp/polyp.h (limited to 'polyp/polyp.h') diff --git a/polyp/polyp.h b/polyp/polyp.h new file mode 100644 index 0000000..60cf872 --- /dev/null +++ b/polyp/polyp.h @@ -0,0 +1,60 @@ +/* + * ALSA <-> Polypaudio plugins + * + * Copyright (c) 2006 by Pierre Ossman + * + * This library 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 library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include + +#include +#include + +#define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0])) + +typedef struct snd_polyp { + pa_mainloop *mainloop; + pa_context *context; + + int thread_fd, main_fd; + + pthread_t thread; + int thread_running; + + enum { + POLYP_STATE_INIT, + POLYP_STATE_CONNECTED, + POLYP_STATE_READY, + POLYP_STATE_POLLING, + } state; +} snd_polyp_t; + +int polyp_start_poll(snd_polyp_t *p); +int polyp_finish_poll(snd_polyp_t *p); + +int polyp_check_connection(snd_polyp_t *p); + +int polyp_wait_operation(snd_polyp_t *p, pa_operation *o); + +snd_polyp_t *polyp_new(); +void polyp_free(snd_polyp_t *p); + +int polyp_connect(snd_polyp_t *p, const char *server); +int polyp_start_thread(snd_polyp_t *p); + +int polyp_poll_descriptors_count(snd_polyp_t *p); +int polyp_poll_descriptors(snd_polyp_t *p, struct pollfd *pfd, unsigned int space); +int polyp_poll_revents(snd_polyp_t *p, struct pollfd *pfd, unsigned int nfds, unsigned short *revents); -- cgit