]> code.delx.au - pulseaudio/blob - src/pstream-util.c
cdcde5faa61211c4ba8a9c1d0cfb3b15f36a3d48
[pulseaudio] / src / pstream-util.c
1 #include <assert.h>
2
3 #include "protocol-native-spec.h"
4 #include "pstream-util.h"
5
6 void pa_pstream_send_tagstruct(struct pa_pstream *p, struct pa_tagstruct *t) {
7 size_t length;
8 uint8_t *data;
9 struct pa_packet *packet;
10 assert(p && t);
11
12 data = pa_tagstruct_free_data(t, &length);
13 assert(data && length);
14 packet = pa_packet_new_dynamic(data, length);
15 assert(packet);
16 pa_pstream_send_packet(p, packet);
17 pa_packet_unref(packet);
18 }
19
20 void pa_pstream_send_error(struct pa_pstream *p, uint32_t tag, uint32_t error) {
21 struct pa_tagstruct *t = pa_tagstruct_new(NULL, 0);
22 assert(t);
23 pa_tagstruct_putu32(t, PA_COMMAND_ERROR);
24 pa_tagstruct_putu32(t, tag);
25 pa_tagstruct_putu32(t, error);
26 pa_pstream_send_tagstruct(p, t);
27 }
28
29 void pa_pstream_send_simple_ack(struct pa_pstream *p, uint32_t tag) {
30 struct pa_tagstruct *t = pa_tagstruct_new(NULL, 0);
31 assert(t);
32 pa_tagstruct_putu32(t, PA_COMMAND_REPLY);
33 pa_tagstruct_putu32(t, tag);
34 pa_pstream_send_tagstruct(p, t);
35 }