add output stream draining
[profile/ivi/pulseaudio.git] / src / polyp.h
1 #ifndef foopolyphfoo
2 #define foopolyphfoo
3
4 #include <sys/types.h>
5
6 #include "sample.h"
7 #include "polypdef.h"
8 #include "mainloop-api.h"
9
10 struct pa_context;
11
12 struct pa_context *pa_context_new(struct pa_mainloop_api *mainloop, const char *name);
13
14 int pa_context_connect(
15     struct pa_context *c,
16     const char *server,
17     void (*complete) (struct pa_context*c, int success, void *userdata),
18     void *userdata);
19
20 int pa_context_drain(
21     struct pa_context *c, 
22     void (*complete) (struct pa_context*c, void *userdata),
23     void *userdata);
24
25 void pa_context_free(struct pa_context *c);
26
27 void pa_context_set_die_callback(struct pa_context *c, void (*cb)(struct pa_context *c, void *userdata), void *userdata);
28
29 int pa_context_is_dead(struct pa_context *c);
30 int pa_context_is_ready(struct pa_context *c);
31 int pa_context_errno(struct pa_context *c);
32
33 int pa_context_is_pending(struct pa_context *c);
34
35 struct pa_stream;
36
37 struct pa_stream* pa_stream_new(
38     struct pa_context *c,
39     enum pa_stream_direction dir,
40     const char *dev,
41     const char *name,
42     const struct pa_sample_spec *ss,
43     const struct pa_buffer_attr *attr,
44     void (*complete) (struct pa_stream*s, int success, void *userdata),
45     void *userdata);
46
47 void pa_stream_free(struct pa_stream *p);
48
49 void pa_stream_drain(
50     struct pa_stream *s, 
51     void (*complete) (struct pa_stream*s, void *userdata),
52     void *userdata);
53
54
55 void pa_stream_set_die_callback(struct pa_stream *s, void (*cb)(struct pa_stream *s, void *userdata), void *userdata);
56
57 void pa_stream_set_write_callback(struct pa_stream *p, void (*cb)(struct pa_stream *p, size_t length, void *userdata), void *userdata);
58 void pa_stream_write(struct pa_stream *p, const void *data, size_t length);
59 size_t pa_stream_writable_size(struct pa_stream *p);
60
61 void pa_stream_set_read_callback(struct pa_stream *p, void (*cb)(struct pa_stream *p, const void*data, size_t length, void *userdata), void *userdata);
62
63 int pa_stream_is_dead(struct pa_stream *p);
64 int pa_stream_is_ready(struct pa_stream*p);
65
66 struct pa_context* pa_stream_get_context(struct pa_stream *p);
67
68 #endif