source: roaraudio/roard/include/streams.h @ 643:c3fc248024dd

Last change on this file since 643:c3fc248024dd was 643:c3fc248024dd, checked in by phi, 16 years ago

added primary flag to streams

File size: 2.1 KB
Line 
1//streams.h:
2
3#ifndef _STREAMS_H_
4#define _STREAMS_H_
5
6#include <roaraudio.h>
7
8/*
9  Defined in <roaraudio/streams.h>
10
11#define ROAR_STREAMS_MAX  64
12*/
13
14//#define ROAR_STREAM(x)        ((struct roar_stream*)(x))
15#define ROAR_STREAM_SERVER(x) ((struct roar_stream_server*)(x))
16
17struct roar_stream_server {
18 struct roar_stream _stream;
19 unsigned int pos_abs;
20 int client;
21 struct roar_buffer * buffer;
22 size_t need_extra;
23 void  * output;
24 struct roar_mixer_settings mixer;
25 struct roar_meta meta[ROAR_META_MAX_PER_STREAM];
26 int is_new;
27 int codecfilter;
28 int codec_orgi;
29 CODECFILTER_USERDATA_T codecfilter_inst;
30 int socktype;
31 int pre_underruns;
32 int post_underruns;
33 struct roar_vio_calls vio;
34 int primary;
35} * g_streams[ROAR_STREAMS_MAX];
36
37int streams_init   (void);
38int streams_free   (void);
39
40int streams_new    (void);
41int streams_delete (int id);
42
43int streams_set_client (int id, int client);
44
45int streams_set_fh     (int id, int fh);
46int streams_get_fh     (int id);
47int streams_get        (int id, struct roar_stream_server ** stream);
48
49int streams_set_socktype (int id, int socktype);
50int streams_get_socktype (int id);
51
52int streams_set_primary  (int id, int prim);
53int streams_mark_primary (int id);
54
55int stream_add_buffer     (int id, struct roar_buffer *  buf);
56//int stream_get_buffer     (int id, struct roar_buffer ** buf);
57int stream_shift_buffer   (int id, struct roar_buffer ** buf);
58int stream_unshift_buffer (int id, struct roar_buffer *  buf);
59
60int streams_check      (int id);
61int streams_send_mon   (int id);
62int streams_send_filter(int id);
63
64int streams_get_mixbuffers   (void *** bufferlist, struct roar_audio_info * info, unsigned int pos);
65int streams_get_outputbuffer (int id, void ** buffer, size_t size);
66int streams_fill_mixbuffer   (int id, struct roar_audio_info * info);
67
68ssize_t stream_vio_read (int stream, void *buf, size_t count);
69ssize_t stream_vio_write(int stream, void *buf, size_t count);
70ssize_t stream_vio_s_read (struct roar_stream_server * stream, void *buf, size_t count);
71ssize_t stream_vio_s_write(struct roar_stream_server * stream, void *buf, size_t count);
72
73#endif
74
75//ll
Note: See TracBrowser for help on using the repository browser.