- uns object = type & PA_SUBSCRIPTION_EVENT_FACILITY_MASK;
- uns action = type & PA_SUBSCRIPTION_EVENT_TYPE_MASK;
- switch (object)
- {
- case PA_SUBSCRIPTION_EVENT_CLIENT:
- if (action == PA_SUBSCRIPTION_EVENT_NEW || action == PA_SUBSCRIPTION_EVENT_CHANGE)
- PULSE_ASYNC_RUN(pa_context_get_client_info, ctx, idx, pulse_client_cb);
- else if (action == PA_SUBSCRIPTION_EVENT_REMOVE)
- pulse_client_gone(idx);
- break;
- case PA_SUBSCRIPTION_EVENT_SINK:
- if (action == PA_SUBSCRIPTION_EVENT_NEW || action == PA_SUBSCRIPTION_EVENT_CHANGE)
- PULSE_ASYNC_RUN(pa_context_get_sink_info_by_index, ctx, idx, pulse_sink_cb);
- else if (action == PA_SUBSCRIPTION_EVENT_REMOVE)
- pulse_sink_gone(idx);
- break;
- case PA_SUBSCRIPTION_EVENT_SINK_INPUT:
- if (action == PA_SUBSCRIPTION_EVENT_NEW || action == PA_SUBSCRIPTION_EVENT_CHANGE)
- PULSE_ASYNC_RUN(pa_context_get_sink_input_info, ctx, idx, pulse_sink_input_cb);
- else if (action == PA_SUBSCRIPTION_EVENT_REMOVE)
- pulse_sink_input_gone(idx);
- break;
- }
+ CLIST_FOR_EACH(struct pulse_sink_input *, s, pulse_sink_input_list)
+ if (s->noct_group_idx == i)
+ {
+ struct pulse_sink *sk = (s->sink_idx >= 0) ? pulse_sink_by_idx(s->sink_idx) : NULL;
+ const char *ss = sk ? sk->name : NULL;
+ if (!sink)
+ sink = ss;
+ else if (strcmp(sink, ss))
+ sink = "?";
+ }
+ return sink ? : "?";