native: send PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED messages only to clients that understand it

This commit is contained in:
Lennart Poettering 2009-09-10 02:15:12 +02:00
parent b043207709
commit 807f2a9923

View file

@ -826,24 +826,26 @@ static int playback_stream_process_msg(pa_msgobject *o, int code, void*userdata,
pa_pstream_send_simple_ack(s->connection->pstream, PA_PTR_TO_UINT(userdata)); pa_pstream_send_simple_ack(s->connection->pstream, PA_PTR_TO_UINT(userdata));
break; break;
case PLAYBACK_STREAM_MESSAGE_UPDATE_TLENGTH: { case PLAYBACK_STREAM_MESSAGE_UPDATE_TLENGTH:
pa_tagstruct *t;
s->buffer_attr.tlength = (uint32_t) offset; s->buffer_attr.tlength = (uint32_t) offset;
t = pa_tagstruct_new(NULL, 0); if (s->connection->version >= 15) {
pa_tagstruct_putu32(t, PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED); pa_tagstruct *t;
pa_tagstruct_putu32(t, (uint32_t) -1); /* tag */
pa_tagstruct_putu32(t, s->index); t = pa_tagstruct_new(NULL, 0);
pa_tagstruct_putu32(t, s->buffer_attr.maxlength); pa_tagstruct_putu32(t, PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED);
pa_tagstruct_putu32(t, s->buffer_attr.tlength); pa_tagstruct_putu32(t, (uint32_t) -1); /* tag */
pa_tagstruct_putu32(t, s->buffer_attr.prebuf); pa_tagstruct_putu32(t, s->index);
pa_tagstruct_putu32(t, s->buffer_attr.minreq); pa_tagstruct_putu32(t, s->buffer_attr.maxlength);
pa_tagstruct_put_usec(t, s->configured_sink_latency); pa_tagstruct_putu32(t, s->buffer_attr.tlength);
pa_pstream_send_tagstruct(s->connection->pstream, t); pa_tagstruct_putu32(t, s->buffer_attr.prebuf);
pa_tagstruct_putu32(t, s->buffer_attr.minreq);
pa_tagstruct_put_usec(t, s->configured_sink_latency);
pa_pstream_send_tagstruct(s->connection->pstream, t);
}
break; break;
}
} }
return 0; return 0;