]> code.delx.au - pulseaudio/blob - src/pstream.h
add alsa sink
[pulseaudio] / src / pstream.h
1 #ifndef foopstreamhfoo
2 #define foopstreamhfoo
3
4 #include <inttypes.h>
5
6 #include "packet.h"
7 #include "memblock.h"
8 #include "iochannel.h"
9 #include "mainloop-api.h"
10 #include "memchunk.h"
11
12 /* It is safe to destroy the calling pstream object from all callbacks */
13
14 struct pa_pstream;
15
16 struct pa_pstream* pa_pstream_new(struct pa_mainloop_api *m, struct pa_iochannel *io);
17 void pa_pstream_free(struct pa_pstream*p);
18
19 void pa_pstream_send_packet(struct pa_pstream*p, struct pa_packet *packet);
20 void pa_pstream_send_memblock(struct pa_pstream*p, uint32_t channel, int32_t delta, const struct pa_memchunk *chunk);
21
22 void pa_pstream_set_recieve_packet_callback(struct pa_pstream *p, void (*callback) (struct pa_pstream *p, struct pa_packet *packet, void *userdata), void *userdata);
23 void pa_pstream_set_recieve_memblock_callback(struct pa_pstream *p, void (*callback) (struct pa_pstream *p, uint32_t channel, int32_t delta, const struct pa_memchunk *chunk, void *userdata), void *userdata);
24 void pa_pstream_set_drain_callback(struct pa_pstream *p, void (*cb)(struct pa_pstream *p, void *userdata), void *userdata);
25
26 void pa_pstream_set_die_callback(struct pa_pstream *p, void (*callback)(struct pa_pstream *p, void *userdata), void *userdata);
27
28 int pa_pstream_is_pending(struct pa_pstream *p);
29
30 #endif