introspect: Fix a bug in sink/source info protocol handling related to ports.

Previously the active_profile was extracted from the tagstruct regardless of
the protocol version which caused errors while speaking to older version
servers.
This commit is contained in:
Colin Guthrie 2009-06-28 11:56:36 +01:00
parent a007d4740f
commit 59376b039e

View file

@ -201,6 +201,7 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
goto finish; goto finish;
} }
if (o->context->version >= 16) {
if (i.n_ports > 0) { if (i.n_ports > 0) {
i.ports = pa_xnew(pa_sink_port_info*, i.n_ports+1); i.ports = pa_xnew(pa_sink_port_info*, i.n_ports+1);
i.ports[0] = pa_xnew(pa_sink_port_info, i.n_ports); i.ports[0] = pa_xnew(pa_sink_port_info, i.n_ports);
@ -238,6 +239,7 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
break; break;
} }
} }
}
i.mute = (int) mute; i.mute = (int) mute;
i.flags = (pa_sink_flags_t) flags; i.flags = (pa_sink_flags_t) flags;
@ -428,6 +430,7 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command,
goto finish; goto finish;
} }
if (o->context->version >= 16) {
if (i.n_ports > 0) { if (i.n_ports > 0) {
i.ports = pa_xnew(pa_source_port_info*, i.n_ports+1); i.ports = pa_xnew(pa_source_port_info*, i.n_ports+1);
i.ports[0] = pa_xnew(pa_source_port_info, i.n_ports); i.ports[0] = pa_xnew(pa_source_port_info, i.n_ports);
@ -465,6 +468,7 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command,
break; break;
} }
} }
}
i.mute = (int) mute; i.mute = (int) mute;
i.flags = (pa_source_flags_t) flags; i.flags = (pa_source_flags_t) flags;