source: roaraudio/roard/include/container_framework.h @ 2663:7927d9333368

Last change on this file since 2663:7927d9333368 was 2663:7927d9333368, checked in by phi, 15 years ago

dummys for cont_fw_new(), cont_fw_delete()

File size: 2.3 KB
Line 
1//container_framework.h:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2009
5 *
6 *  This file is part of roard a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  RoarAudio is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 */
24
25#ifndef _CONTAINER_FRAMEWORK_H_
26#define _CONTAINER_FRAMEWORK_H_
27
28#include <roaraudio.h>
29
30#define CONT_FW_MAX_CHILDS 8
31
32struct cont_fw_parent_inst;
33
34struct cont_fw_child {
35 int child;
36 void * u_inst;
37};
38
39struct cont_fw_child_vio_inst {
40 int child;
41 struct cont_fw_child       * inst;
42 struct cont_fw_parent_inst * parent;
43};
44
45struct cont_fw_parent_inst {
46 struct cont_fw_child * child[CONT_FW_MAX_CHILDS];
47 void * u_inst;
48 struct {
49  ssize_t (*read) (struct cont_fw_parent_inst * self, struct cont_fw_child * child, void *buf, size_t len);
50  ssize_t (*write)(struct cont_fw_parent_inst * self, struct cont_fw_child * child, void *buf, size_t len);
51  int     (*flush)(struct cont_fw_parent_inst * self, struct cont_fw_child * child);
52 } cb;
53};
54
55int     cont_fw_new     (struct cont_fw_parent_inst ** inst);
56int     cont_fw_delete  (struct cont_fw_parent_inst  * inst);
57int     cont_fw_init_vio(struct roar_vio_calls * vio, void * inst);
58ssize_t cont_fw_read    (struct roar_vio_calls * vio, void *buf, size_t count);
59ssize_t cont_fw_write   (struct roar_vio_calls * vio, void *buf, size_t count);
60off_t   cont_fw_lseek   (struct roar_vio_calls * vio, off_t offset, int whence);
61int     cont_fw_nonblock(struct roar_vio_calls * vio, int state);
62int     cont_fw_sync    (struct roar_vio_calls * vio);
63int     cont_fw_ctl     (struct roar_vio_calls * vio, int cmd, void * data);
64int     cont_fw_close   (struct roar_vio_calls * vio);
65
66#endif
67
68//ll
Note: See TracBrowser for help on using the repository browser.